From 4451903ac24c4ca3acbf680b64f14d637f1d2c86 Mon Sep 17 00:00:00 2001 From: John Guibas Date: Wed, 30 Oct 2024 11:40:31 -0700 Subject: [PATCH 01/36] fix: remove stdin from SP1ProofWithPublicValues (#1714) --- Cargo.lock | 44 ++++++++++++++-------------- Cargo.toml | 42 +++++++++++++------------- crates/core/executor/src/executor.rs | 2 -- crates/sdk/src/proof.rs | 2 -- crates/sdk/src/provers/cpu.rs | 4 --- crates/sdk/src/provers/cuda.rs | 4 --- crates/sdk/src/provers/mock.rs | 4 --- 7 files changed, 43 insertions(+), 59 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a105054669..0c69c109db 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6702,7 +6702,7 @@ dependencies = [ [[package]] name = "sp1-build" -version = "3.0.0" +version = "3.1.0" dependencies = [ "anyhow", "cargo_metadata", @@ -6713,7 +6713,7 @@ dependencies = [ [[package]] name = "sp1-cli" -version = "3.0.0" +version = "3.1.0" dependencies = [ "anstyle", "anyhow", @@ -6741,7 +6741,7 @@ dependencies = [ [[package]] name = "sp1-core-executor" -version = "3.0.0" +version = "3.1.0" dependencies = [ "bincode", "bytemuck", @@ -6774,7 +6774,7 @@ dependencies = [ [[package]] name = "sp1-core-machine" -version = "3.0.0" +version = "3.1.0" dependencies = [ "bincode", "cfg-if", @@ -6823,7 +6823,7 @@ dependencies = [ [[package]] name = "sp1-cuda" -version = "3.0.0" +version = "3.1.0" dependencies = [ "bincode", "ctrlc", @@ -6840,7 +6840,7 @@ dependencies = [ [[package]] name = "sp1-curves" -version = "3.0.0" +version = "3.1.0" dependencies = [ "cfg-if", "curve25519-dalek", @@ -6862,7 +6862,7 @@ dependencies = [ [[package]] name = "sp1-derive" -version = "3.0.0" +version = "3.1.0" dependencies = [ "quote", "syn 1.0.109", @@ -6870,7 +6870,7 @@ dependencies = [ [[package]] name = "sp1-eval" -version = "3.0.0" +version = "3.1.0" dependencies = [ "anyhow", "bincode", @@ -6890,14 +6890,14 @@ dependencies = [ [[package]] name = "sp1-helper" -version = "3.0.0" +version = "3.1.0" dependencies = [ "sp1-build", ] [[package]] name = "sp1-lib" -version = "3.0.0" +version = "3.1.0" dependencies = [ "bincode", "serde", @@ -6905,7 +6905,7 @@ dependencies = [ [[package]] name = "sp1-perf" -version = "3.0.0" +version = "3.1.0" dependencies = [ "anyhow", "bincode", @@ -6927,7 +6927,7 @@ dependencies = [ [[package]] name = "sp1-primitives" -version = "3.0.0" +version = "3.1.0" dependencies = [ "bincode", "hex", @@ -6943,7 +6943,7 @@ dependencies = [ [[package]] name = "sp1-prover" -version = "3.0.0" +version = "3.1.0" dependencies = [ "anyhow", "bincode", @@ -6983,7 +6983,7 @@ dependencies = [ [[package]] name = "sp1-recursion-circuit" -version = "3.0.0" +version = "3.1.0" dependencies = [ "ff 0.13.0", "hashbrown 0.14.5", @@ -7019,7 +7019,7 @@ dependencies = [ [[package]] name = "sp1-recursion-compiler" -version = "3.0.0" +version = "3.1.0" dependencies = [ "backtrace", "criterion", @@ -7044,7 +7044,7 @@ dependencies = [ [[package]] name = "sp1-recursion-core" -version = "3.0.0" +version = "3.1.0" dependencies = [ "backtrace", "ff 0.13.0", @@ -7079,7 +7079,7 @@ dependencies = [ [[package]] name = "sp1-recursion-derive" -version = "3.0.0" +version = "3.1.0" dependencies = [ "quote", "syn 1.0.109", @@ -7087,7 +7087,7 @@ dependencies = [ [[package]] name = "sp1-recursion-gnark-cli" -version = "3.0.0" +version = "3.1.0" dependencies = [ "bincode", "clap", @@ -7096,7 +7096,7 @@ dependencies = [ [[package]] name = "sp1-recursion-gnark-ffi" -version = "3.0.0" +version = "3.1.0" dependencies = [ "anyhow", "bincode", @@ -7120,7 +7120,7 @@ dependencies = [ [[package]] name = "sp1-sdk" -version = "3.0.0" +version = "3.1.0" dependencies = [ "alloy-primitives 0.8.8", "alloy-signer", @@ -7166,7 +7166,7 @@ dependencies = [ [[package]] name = "sp1-stark" -version = "3.0.0" +version = "3.1.0" dependencies = [ "arrayref", "getrandom 0.2.15", @@ -7201,7 +7201,7 @@ dependencies = [ [[package]] name = "sp1-zkvm" -version = "3.0.0" +version = "3.1.0" dependencies = [ "cfg-if", "getrandom 0.2.15", diff --git a/Cargo.toml b/Cargo.toml index cad031a8a7..962c7d778a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace.package] -version = "3.0.0" +version = "3.1.0" edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/succinctlabs/sp1" @@ -46,26 +46,26 @@ debug-assertions = true [workspace.dependencies] # sp1 -sp1-build = { path = "crates/build", version = "3.0.0" } -sp1-cli = { path = "crates/cli", version = "3.0.0", default-features = false } -sp1-core-machine = { path = "crates/core/machine", version = "3.0.0" } -sp1-core-executor = { path = "crates/core/executor", version = "3.0.0" } -sp1-curves = { path = "crates/curves", version = "3.0.0" } -sp1-derive = { path = "crates/derive", version = "3.0.0" } -sp1-eval = { path = "crates/eval", version = "3.0.0" } -sp1-helper = { path = "crates/helper", version = "3.0.0", default-features = false } -sp1-primitives = { path = "crates/primitives", version = "3.0.0" } -sp1-prover = { path = "crates/prover", version = "3.0.0" } -sp1-recursion-compiler = { path = "crates/recursion/compiler", version = "3.0.0" } -sp1-recursion-core = { path = "crates/recursion/core", version = "3.0.0", default-features = false } -sp1-recursion-derive = { path = "crates/recursion/derive", version = "3.0.0", default-features = false } -sp1-recursion-gnark-ffi = { path = "crates/recursion/gnark-ffi", version = "3.0.0", default-features = false } -sp1-recursion-circuit = { path = "crates/recursion/circuit", version = "3.0.0", default-features = false } -sp1-sdk = { path = "crates/sdk", version = "3.0.0" } -sp1-cuda = { path = "crates/cuda", version = "3.0.0" } -sp1-stark = { path = "crates/stark", version = "3.0.0" } -sp1-lib = { path = "crates/zkvm/lib", version = "3.0.0", default-features = false } -sp1-zkvm = { path = "crates/zkvm/entrypoint", version = "3.0.0", default-features = false } +sp1-build = { path = "crates/build", version = "3.1.0" } +sp1-cli = { path = "crates/cli", version = "3.1.0", default-features = false } +sp1-core-machine = { path = "crates/core/machine", version = "3.1.0" } +sp1-core-executor = { path = "crates/core/executor", version = "3.1.0" } +sp1-curves = { path = "crates/curves", version = "3.1.0" } +sp1-derive = { path = "crates/derive", version = "3.1.0" } +sp1-eval = { path = "crates/eval", version = "3.1.0" } +sp1-helper = { path = "crates/helper", version = "3.1.0", default-features = false } +sp1-primitives = { path = "crates/primitives", version = "3.1.0" } +sp1-prover = { path = "crates/prover", version = "3.1.0" } +sp1-recursion-compiler = { path = "crates/recursion/compiler", version = "3.1.0" } +sp1-recursion-core = { path = "crates/recursion/core", version = "3.1.0", default-features = false } +sp1-recursion-derive = { path = "crates/recursion/derive", version = "3.1.0", default-features = false } +sp1-recursion-gnark-ffi = { path = "crates/recursion/gnark-ffi", version = "3.1.0", default-features = false } +sp1-recursion-circuit = { path = "crates/recursion/circuit", version = "3.1.0", default-features = false } +sp1-sdk = { path = "crates/sdk", version = "3.1.0" } +sp1-cuda = { path = "crates/cuda", version = "3.1.0" } +sp1-stark = { path = "crates/stark", version = "3.1.0" } +sp1-lib = { path = "crates/zkvm/lib", version = "3.1.0", default-features = false } +sp1-zkvm = { path = "crates/zkvm/entrypoint", version = "3.1.0", default-features = false } # p3 p3-air = "0.1.4-succinct" diff --git a/crates/core/executor/src/executor.rs b/crates/core/executor/src/executor.rs index cfbc8cacd5..cb6ef41934 100644 --- a/crates/core/executor/src/executor.rs +++ b/crates/core/executor/src/executor.rs @@ -1229,7 +1229,6 @@ impl<'a> Executor<'a> { let instruction = self.fetch(); // Log the current state of the runtime. - #[cfg(debug_assertions)] self.log(&instruction); // Execute the instruction. @@ -1661,7 +1660,6 @@ impl<'a> Executor<'a> { } #[inline] - #[cfg(debug_assertions)] fn log(&mut self, _: &Instruction) { // Write the current program counter to the trace buffer for the cycle tracer. if let Some(ref mut buf) = self.trace_buf { diff --git a/crates/sdk/src/proof.rs b/crates/sdk/src/proof.rs index d289bd4bfa..43988b6111 100644 --- a/crates/sdk/src/proof.rs +++ b/crates/sdk/src/proof.rs @@ -3,7 +3,6 @@ use std::{fmt::Debug, fs::File, path::Path}; use anyhow::Result; use serde::{Deserialize, Serialize}; use sp1_core_executor::SP1ReduceProof; -use sp1_core_machine::io::SP1Stdin; use sp1_primitives::io::SP1PublicValues; use strum_macros::{EnumDiscriminants, EnumTryAs}; @@ -26,7 +25,6 @@ pub enum SP1Proof { #[derive(Debug, Clone, Serialize, Deserialize)] pub struct SP1ProofWithPublicValues { pub proof: SP1Proof, - pub stdin: SP1Stdin, pub public_values: SP1PublicValues, pub sp1_version: String, } diff --git a/crates/sdk/src/provers/cpu.rs b/crates/sdk/src/provers/cpu.rs index 234e663909..467cca0c07 100644 --- a/crates/sdk/src/provers/cpu.rs +++ b/crates/sdk/src/provers/cpu.rs @@ -56,7 +56,6 @@ impl Prover for CpuProver { if kind == SP1ProofKind::Core { return Ok(SP1ProofWithPublicValues { proof: SP1Proof::Core(proof.proof.0), - stdin: proof.stdin, public_values: proof.public_values, sp1_version: self.version().to_string(), }); @@ -72,7 +71,6 @@ impl Prover for CpuProver { if kind == SP1ProofKind::Compressed { return Ok(SP1ProofWithPublicValues { proof: SP1Proof::Compressed(Box::new(reduce_proof)), - stdin, public_values, sp1_version: self.version().to_string(), }); @@ -97,7 +95,6 @@ impl Prover for CpuProver { return Ok(SP1ProofWithPublicValues { proof: SP1Proof::Plonk(proof), - stdin, public_values, sp1_version: self.version().to_string(), }); @@ -114,7 +111,6 @@ impl Prover for CpuProver { let proof = self.prover.wrap_groth16_bn254(outer_proof, &groth16_bn254_artifacts); return Ok(SP1ProofWithPublicValues { proof: SP1Proof::Groth16(proof), - stdin, public_values, sp1_version: self.version().to_string(), }); diff --git a/crates/sdk/src/provers/cuda.rs b/crates/sdk/src/provers/cuda.rs index 5f8ab983aa..2cb28b070f 100644 --- a/crates/sdk/src/provers/cuda.rs +++ b/crates/sdk/src/provers/cuda.rs @@ -52,7 +52,6 @@ impl Prover for CudaProver { if kind == SP1ProofKind::Core { return Ok(SP1ProofWithPublicValues { proof: SP1Proof::Core(proof.proof.0), - stdin: proof.stdin, public_values: proof.public_values, sp1_version: self.version().to_string(), }); @@ -67,7 +66,6 @@ impl Prover for CudaProver { if kind == SP1ProofKind::Compressed { return Ok(SP1ProofWithPublicValues { proof: SP1Proof::Compressed(Box::new(reduce_proof)), - stdin, public_values, sp1_version: self.version().to_string(), }); @@ -91,7 +89,6 @@ impl Prover for CudaProver { let proof = self.prover.wrap_plonk_bn254(outer_proof, &plonk_bn254_artifacts); return Ok(SP1ProofWithPublicValues { proof: SP1Proof::Plonk(proof), - stdin, public_values, sp1_version: self.version().to_string(), }); @@ -108,7 +105,6 @@ impl Prover for CudaProver { let proof = self.prover.wrap_groth16_bn254(outer_proof, &groth16_bn254_artifacts); return Ok(SP1ProofWithPublicValues { proof: SP1Proof::Groth16(proof), - stdin, public_values, sp1_version: self.version().to_string(), }); diff --git a/crates/sdk/src/provers/mock.rs b/crates/sdk/src/provers/mock.rs index ca317972ac..dc1df94681 100644 --- a/crates/sdk/src/provers/mock.rs +++ b/crates/sdk/src/provers/mock.rs @@ -59,7 +59,6 @@ impl Prover for MockProver { let (public_values, _) = self.prover.execute(&pk.elf, &stdin, context)?; Ok(SP1ProofWithPublicValues { proof: SP1Proof::Core(vec![]), - stdin, public_values, sp1_version: self.version().to_string(), }) @@ -102,7 +101,6 @@ impl Prover for MockProver { Ok(SP1ProofWithPublicValues { proof, - stdin, public_values, sp1_version: self.version().to_string(), }) @@ -119,7 +117,6 @@ impl Prover for MockProver { raw_proof: "".to_string(), plonk_vkey_hash: [0; 32], }), - stdin, public_values, sp1_version: self.version().to_string(), }) @@ -136,7 +133,6 @@ impl Prover for MockProver { raw_proof: "".to_string(), groth16_vkey_hash: [0; 32], }), - stdin, public_values, sp1_version: self.version().to_string(), }) From 31147b4a226e24cacd6e15008d9bf5d281ef339d Mon Sep 17 00:00:00 2001 From: Eugene Rabinovich Date: Wed, 6 Nov 2024 18:26:03 -0800 Subject: [PATCH 02/36] perf: remove proving single proofs (#60) * working with the 'pass-through' method * cleanup * making clippy happy --- crates/prover/src/lib.rs | 74 ++++++++++++++++++++++++++++++++-------- 1 file changed, 60 insertions(+), 14 deletions(-) diff --git a/crates/prover/src/lib.rs b/crates/prover/src/lib.rs index 5ffd096e43..bc134b9295 100644 --- a/crates/prover/src/lib.rs +++ b/crates/prover/src/lib.rs @@ -114,6 +114,18 @@ pub type CompressAir = RecursionAir; pub type ShrinkAir = RecursionAir; pub type WrapAir = RecursionAir; +#[allow(clippy::type_complexity)] +enum TracesOrInput { + ProgramRecordTraces( + Box<( + Arc>, + ExecutionRecord, + Vec<(String, RowMajorMatrix)>, + )>, + ), + CircuitWitness(Box), +} + /// A end-to-end prover implementation for the SP1 RISC-V zkVM. pub struct SP1Prover { /// The machine used for proving the core step. @@ -667,7 +679,7 @@ impl SP1Prover { // Spawn a worker that sends the first layer inputs to a bounded channel. let input_sync = Arc::new(TurnBasedSync::new()); - let (input_tx, input_rx) = sync_channel::<(usize, usize, SP1CircuitWitness)>( + let (input_tx, input_rx) = sync_channel::<(usize, usize, SP1CircuitWitness, bool)>( opts.recursion_opts.checkpoints_channel_capacity, ); let input_tx = Arc::new(Mutex::new(input_tx)); @@ -677,7 +689,7 @@ impl SP1Prover { s.spawn(move || { for (index, input) in first_layer_inputs.into_iter().enumerate() { input_sync.wait_for_turn(index); - input_tx.lock().unwrap().send((index, 0, input)).unwrap(); + input_tx.lock().unwrap().send((index, 0, input, false)).unwrap(); input_sync.advance_turn(); } }); @@ -686,13 +698,9 @@ impl SP1Prover { // Spawn workers who generate the records and traces. let record_and_trace_sync = Arc::new(TurnBasedSync::new()); let (record_and_trace_tx, record_and_trace_rx) = - sync_channel::<( - usize, - usize, - Arc>, - ExecutionRecord, - Vec<(String, RowMajorMatrix)>, - )>(opts.recursion_opts.records_and_traces_channel_capacity); + sync_channel::<(usize, usize, TracesOrInput)>( + opts.recursion_opts.records_and_traces_channel_capacity, + ); let record_and_trace_tx = Arc::new(Mutex::new(record_and_trace_tx)); let record_and_trace_rx = Arc::new(Mutex::new(record_and_trace_rx)); let input_rx = Arc::new(Mutex::new(input_rx)); @@ -705,7 +713,7 @@ impl SP1Prover { let _span = span.enter(); loop { let received = { input_rx.lock().unwrap().recv() }; - if let Ok((index, height, input)) = received { + if let Ok((index, height, input, false)) = received { // Get the program and witness stream. let (program, witness_stream) = tracing::debug_span!( "get program and witness stream" @@ -776,7 +784,29 @@ impl SP1Prover { record_and_trace_tx .lock() .unwrap() - .send((index, height, program, record, traces)) + .send(( + index, + height, + TracesOrInput::ProgramRecordTraces(Box::new(( + program, record, traces, + ))), + )) + .unwrap(); + + // Advance the turn. + record_and_trace_sync.advance_turn(); + } else if let Ok((index, height, input, true)) = received { + record_and_trace_sync.wait_for_turn(index); + + // Send the record and traces to the worker. + record_and_trace_tx + .lock() + .unwrap() + .send(( + index, + height, + TracesOrInput::CircuitWitness(Box::new(input)), + )) .unwrap(); // Advance the turn. @@ -806,7 +836,8 @@ impl SP1Prover { let _span = span.enter(); loop { let received = { record_and_trace_rx.lock().unwrap().recv() }; - if let Ok((index, height, program, record, traces)) = received { + if let Ok((index, height, TracesOrInput::ProgramRecordTraces(boxed_prt))) = received { + let (program, record, traces) = *boxed_prt; tracing::debug_span!("batch").in_scope(|| { // Get the keys. let (pk, vk) = tracing::debug_span!("Setup compress program") @@ -874,7 +905,22 @@ impl SP1Prover { // Advance the turn. prover_sync.advance_turn(); }); - } else { + } else if let Ok((index, height, TracesOrInput::CircuitWitness(witness_box))) = received { + let witness = *witness_box; + if let SP1CircuitWitness::Compress(inner_witness) = witness { + let SP1CompressWitnessValues { vks_and_proofs, is_complete: _ } = inner_witness; + assert!(vks_and_proofs.len()==1); + let (vk, proof) = vks_and_proofs.last().unwrap(); + // Wait for our turn to update the state. + prover_sync.wait_for_turn(index); + + // Send the proof. + proofs_tx.lock().unwrap().send((index, height, vk.clone(), proof.clone())).unwrap(); + + // Advance the turn. + prover_sync.advance_turn(); + } + } else { break; } } @@ -934,7 +980,7 @@ impl SP1Prover { input_tx .lock() .unwrap() - .send((count, next_input_height, input)) + .send((count, next_input_height, input, is_last)) .unwrap(); input_sync.advance_turn(); count += 1; From df14c7f0c932ad5b6ece242964a5d622d0be20d0 Mon Sep 17 00:00:00 2001 From: Yuwen Zhang Date: Thu, 7 Nov 2024 12:35:32 -0800 Subject: [PATCH 03/36] feat: verifier crate (#1765) --- .gitignore | 6 +- Cargo.lock | 912 +- Cargo.toml | 43 +- book/SUMMARY.md | 9 +- book/developers/common-issues.md | 99 +- book/generating-proofs/proof-types.md | 4 +- book/getting-started/quickstart.md | 10 +- book/sp1.png | Bin 3033933 -> 66629 bytes book/verification/off-chain-verification.md | 49 + .../onchain/contract-addresses.md | 101 + book/verification/onchain/getting-started.md | 33 + book/verification/onchain/solidity-sdk.md | 122 + book/writing-programs/patched-crates.md | 110 +- book/writing-programs/proof-aggregation.md | 4 +- crates/core/executor/src/executor.rs | 2 + crates/sdk/src/proof.rs | 2 + crates/sdk/src/provers/cpu.rs | 4 + crates/sdk/src/provers/cuda.rs | 4 + crates/sdk/src/provers/mock.rs | 4 + crates/verifier/Cargo.toml | 26 + crates/verifier/README.md | 37 + crates/verifier/bn254-vk/groth16_vk.bin | Bin 0 -> 396 bytes crates/verifier/bn254-vk/plonk_vk.bin | Bin 0 -> 34368 bytes crates/verifier/src/constants.rs | 33 + crates/verifier/src/converter.rs | 122 + crates/verifier/src/error.rs | 31 + crates/verifier/src/groth16/converter.rs | 53 + crates/verifier/src/groth16/error.rs | 15 + crates/verifier/src/groth16/mod.rs | 67 + crates/verifier/src/groth16/verify.rs | 71 + crates/verifier/src/lib.rs | 35 + crates/verifier/src/plonk/converter.rs | 178 + crates/verifier/src/plonk/error.rs | 33 + crates/verifier/src/plonk/hash_to_field.rs | 122 + crates/verifier/src/plonk/kzg.rs | 193 + crates/verifier/src/plonk/mod.rs | 76 + crates/verifier/src/plonk/proof.rs | 13 + crates/verifier/src/plonk/transcript.rs | 104 + crates/verifier/src/plonk/verify.rs | 405 + crates/verifier/src/tests.rs | 52 + crates/verifier/src/utils.rs | 29 + .../test_binaries/fibonacci-groth16.bin | Bin 0 -> 1449 bytes .../test_binaries/fibonacci-plonk.bin | Bin 0 -> 3825 bytes examples/Cargo.lock | 8652 +++++++++++++++++ examples/Cargo.toml | 26 +- .../program/elf/riscv32im-succinct-zkvm-elf | Bin 105020 -> 105052 bytes examples/fibonacci/script/Cargo.toml | 4 + .../fibonacci/script/bin/groth16_bn254.rs | 10 +- examples/fibonacci/script/bin/plonk_bn254.rs | 40 + examples/groth16/program/Cargo.toml | 9 + examples/groth16/program/src/main.rs | 28 + examples/groth16/script/Cargo.toml | 14 + examples/groth16/script/build.rs | 4 + examples/groth16/script/src/main.rs | 55 + 54 files changed, 11630 insertions(+), 425 deletions(-) create mode 100644 book/verification/off-chain-verification.md create mode 100644 book/verification/onchain/contract-addresses.md create mode 100644 book/verification/onchain/getting-started.md create mode 100644 book/verification/onchain/solidity-sdk.md create mode 100644 crates/verifier/Cargo.toml create mode 100644 crates/verifier/README.md create mode 100644 crates/verifier/bn254-vk/groth16_vk.bin create mode 100644 crates/verifier/bn254-vk/plonk_vk.bin create mode 100644 crates/verifier/src/constants.rs create mode 100644 crates/verifier/src/converter.rs create mode 100644 crates/verifier/src/error.rs create mode 100644 crates/verifier/src/groth16/converter.rs create mode 100644 crates/verifier/src/groth16/error.rs create mode 100644 crates/verifier/src/groth16/mod.rs create mode 100644 crates/verifier/src/groth16/verify.rs create mode 100644 crates/verifier/src/lib.rs create mode 100644 crates/verifier/src/plonk/converter.rs create mode 100644 crates/verifier/src/plonk/error.rs create mode 100644 crates/verifier/src/plonk/hash_to_field.rs create mode 100644 crates/verifier/src/plonk/kzg.rs create mode 100644 crates/verifier/src/plonk/mod.rs create mode 100644 crates/verifier/src/plonk/proof.rs create mode 100644 crates/verifier/src/plonk/transcript.rs create mode 100644 crates/verifier/src/plonk/verify.rs create mode 100644 crates/verifier/src/tests.rs create mode 100644 crates/verifier/src/utils.rs create mode 100644 crates/verifier/test_binaries/fibonacci-groth16.bin create mode 100644 crates/verifier/test_binaries/fibonacci-plonk.bin create mode 100644 examples/Cargo.lock create mode 100644 examples/fibonacci/script/bin/plonk_bn254.rs create mode 100644 examples/groth16/program/Cargo.toml create mode 100644 examples/groth16/program/src/main.rs create mode 100644 examples/groth16/script/Cargo.toml create mode 100644 examples/groth16/script/build.rs create mode 100644 examples/groth16/script/src/main.rs diff --git a/.gitignore b/.gitignore index 3dab66b55a..8252583295 100644 --- a/.gitignore +++ b/.gitignore @@ -33,4 +33,8 @@ crates/prover/pk crates/prover/powersOfTau28_hez_final.ptau crates/prover/semaphore-gnark-11 crates/prover/trusted-setup -crates/prover/vk \ No newline at end of file +crates/prover/vk + +# Example fibonacci groth16 / plonk proofs +examples/fibonacci/fibonacci-groth16.bin +examples/fibonacci/fibonacci-plonk.bin \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 0c69c109db..3bc6879a77 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -137,7 +137,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "629b62e38d471cc15fea534eb7283d2f8a4e8bdb1811bcc5d66dda6cfce6fae1" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.11", "alloy-rlp", "alloy-serde", "c-kzg", @@ -150,7 +150,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" dependencies = [ - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.11", "alloy-rlp", "serde", ] @@ -161,7 +161,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea59dc42102bc9a1905dc57901edc6dd48b9f38115df86c7d252acba70d71d04" dependencies = [ - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.11", "alloy-rlp", "serde", ] @@ -174,7 +174,7 @@ checksum = "f923dd5fca5f67a43d81ed3ebad0880bd41f6dd0ada930030353ac356c54cd0f" dependencies = [ "alloy-eip2930", "alloy-eip7702", - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.11", "alloy-rlp", "alloy-serde", "c-kzg", @@ -190,8 +190,8 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3c717b5298fad078cd3a418335b266eba91b511383ca9bd497f742d5975d5ab" dependencies = [ - "alloy-primitives 0.8.8", - "alloy-sol-types 0.8.8", + "alloy-primitives 0.8.11", + "alloy-sol-types 0.8.11", "serde", "serde_json", "thiserror", @@ -208,11 +208,11 @@ dependencies = [ "alloy-eips", "alloy-json-rpc", "alloy-network-primitives", - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.11", "alloy-rpc-types-eth", "alloy-serde", "alloy-signer", - "alloy-sol-types 0.8.8", + "alloy-sol-types 0.8.11", "async-trait", "auto_impl", "futures-utils-wasm", @@ -226,7 +226,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94ad40869867ed2d9cd3842b1e800889e5b49e6b92da346e93862b4a741bedf3" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.11", "alloy-serde", "serde", ] @@ -238,7 +238,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" dependencies = [ "alloy-rlp", - "bytes 1.7.2", + "bytes 1.8.0", "cfg-if", "const-hex", "derive_more 0.99.18", @@ -255,17 +255,17 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.8" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f35429a652765189c1c5092870d8360ee7b7769b09b06d89ebaefd34676446" +checksum = "fd58d377699e6cfeab52c4a9d28bdc4ef37e2bd235ff2db525071fe37a2e9af5" dependencies = [ "alloy-rlp", - "bytes 1.7.2", + "bytes 1.8.0", "cfg-if", "const-hex", "derive_more 1.0.0", "foldhash", - "hashbrown 0.15.0", + "hashbrown 0.15.1", "hex-literal", "indexmap 2.6.0", "itoa", @@ -283,24 +283,24 @@ dependencies = [ [[package]] name = "alloy-rlp" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" +checksum = "da0822426598f95e45dd1ea32a738dac057529a709ee645fcc516ffa4cbde08f" dependencies = [ "alloy-rlp-derive", "arrayvec", - "bytes 1.7.2", + "bytes 1.8.0", ] [[package]] name = "alloy-rlp-derive" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" +checksum = "2b09cae092c27b6f1bde952653a22708691802e57bfef4a2973b80bea21efd3f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -312,10 +312,10 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-network-primitives", - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.11", "alloy-rlp", "alloy-serde", - "alloy-sol-types 0.8.8", + "alloy-sol-types 0.8.11", "cfg-if", "derive_more 1.0.0", "hashbrown 0.14.5", @@ -330,7 +330,7 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "731f75ec5d383107fd745d781619bd9cedf145836c51ecb991623d41278e71fa" dependencies = [ - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.11", "serde", "serde_json", ] @@ -341,7 +341,7 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "307324cca94354cd654d6713629f0383ec037e1ff9e3e3d547212471209860c0" dependencies = [ - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.11", "async-trait", "auto_impl", "elliptic-curve 0.13.8", @@ -357,7 +357,7 @@ checksum = "9fabe917ab1778e760b4701628d1cae8e028ee9d52ac6307de4e1e9286ab6b5f" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.11", "alloy-signer", "async-trait", "k256", @@ -376,21 +376,21 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] name = "alloy-sol-macro" -version = "0.8.8" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2395336745358cc47207442127c47c63801a7065ecc0aa928da844f8bb5576" +checksum = "8a1b42ac8f45e2f49f4bcdd72cbfde0bb148f5481d403774ffa546e48b83efc1" dependencies = [ - "alloy-sol-macro-expander 0.8.8", - "alloy-sol-macro-input 0.8.8", + "alloy-sol-macro-expander 0.8.11", + "alloy-sol-macro-input 0.8.11", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -406,26 +406,26 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", "syn-solidity 0.7.7", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-expander" -version = "0.8.8" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed5047c9a241df94327879c2b0729155b58b941eae7805a7ada2e19436e6b39" +checksum = "06318f1778e57f36333e850aa71bd1bb5e560c10279e236622faae0470c50412" dependencies = [ - "alloy-sol-macro-input 0.8.8", + "alloy-sol-macro-input 0.8.11", "const-hex", "heck", "indexmap 2.6.0", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.79", - "syn-solidity 0.8.8", + "syn 2.0.87", + "syn-solidity 0.8.11", "tiny-keccak", ] @@ -440,23 +440,23 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", "syn-solidity 0.7.7", ] [[package]] name = "alloy-sol-macro-input" -version = "0.8.8" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dee02a81f529c415082235129f0df8b8e60aa1601b9c9298ffe54d75f57210b" +checksum = "eaebb9b0ad61a41345a22c9279975c0cdd231b97947b10d7aad1cf0a7181e4a5" dependencies = [ "const-hex", "dunce", "heck", "proc-macro2", "quote", - "syn 2.0.79", - "syn-solidity 0.8.8", + "syn 2.0.87", + "syn-solidity 0.8.11", ] [[package]] @@ -473,12 +473,12 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.8" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2841af22d99e2c0f82a78fe107b6481be3dd20b89bfb067290092794734343a" +checksum = "374d7fb042d68ddfe79ccb23359de3007f6d4d53c13f703b64fb0db422132111" dependencies = [ - "alloy-primitives 0.8.8", - "alloy-sol-macro 0.8.8", + "alloy-primitives 0.8.11", + "alloy-sol-macro 0.8.11", "const-hex", ] @@ -514,9 +514,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.15" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -529,43 +529,43 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.4" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.89" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" +checksum = "74f37166d7d48a0284b99dd824694c26119c700b53bf0d1540cdb147dbdaaf13" dependencies = [ "backtrace", ] @@ -748,7 +748,7 @@ dependencies = [ "async-task", "concurrent-queue", "fastrand 2.1.1", - "futures-lite 2.3.0", + "futures-lite 2.4.0", "slab", ] @@ -763,7 +763,7 @@ dependencies = [ "async-io", "async-lock", "blocking", - "futures-lite 2.3.0", + "futures-lite 2.4.0", "once_cell", ] @@ -777,7 +777,7 @@ dependencies = [ "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.3.0", + "futures-lite 2.4.0", "parking", "polling", "rustix", @@ -812,7 +812,7 @@ dependencies = [ "futures-channel", "futures-core", "futures-io", - "futures-lite 2.3.0", + "futures-lite 2.4.0", "gloo-timers 0.3.0", "kv-log-macro", "log", @@ -843,7 +843,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -873,7 +873,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -914,7 +914,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -925,9 +925,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "aws-config" -version = "1.5.8" +version = "1.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7198e6f03240fdceba36656d8be440297b6b82270325908c7381f37d826a74f6" +checksum = "2d6448cfb224dd6a9b9ac734f58622dd0d4751f3589f3b777345745f46b2eb14" dependencies = [ "aws-credential-types", "aws-runtime", @@ -941,7 +941,7 @@ dependencies = [ "aws-smithy-runtime-api", "aws-smithy-types", "aws-types", - "bytes 1.7.2", + "bytes 1.8.0", "fastrand 2.1.1", "hex", "http 0.2.12", @@ -980,7 +980,7 @@ dependencies = [ "aws-smithy-runtime-api", "aws-smithy-types", "aws-types", - "bytes 1.7.2", + "bytes 1.8.0", "fastrand 2.1.1", "http 0.2.12", "http-body 0.4.6", @@ -993,11 +993,10 @@ dependencies = [ [[package]] name = "aws-sdk-s3" -version = "1.57.0" +version = "1.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8888c238bf93c77c5df8274b3999fd7fc1bb3fb658616f40dfde9e4fcd9efd94" +checksum = "9f883bb1e349fa8343dc46336c252c0f32ceb6e81acb146aeef2e0f8afc9183e" dependencies = [ - "ahash", "aws-credential-types", "aws-runtime", "aws-sigv4", @@ -1011,7 +1010,7 @@ dependencies = [ "aws-smithy-types", "aws-smithy-xml", "aws-types", - "bytes 1.7.2", + "bytes 1.8.0", "fastrand 2.1.1", "hex", "hmac 0.12.1", @@ -1028,9 +1027,9 @@ dependencies = [ [[package]] name = "aws-sdk-sso" -version = "1.46.0" +version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc2faec3205d496c7e57eff685dd944203df7ce16a4116d0281c44021788a7b" +checksum = "ded855583fa1d22e88fe39fd6062b062376e50a8211989e07cf5e38d52eb3453" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1041,7 +1040,7 @@ dependencies = [ "aws-smithy-runtime-api", "aws-smithy-types", "aws-types", - "bytes 1.7.2", + "bytes 1.8.0", "http 0.2.12", "once_cell", "regex-lite", @@ -1050,9 +1049,9 @@ dependencies = [ [[package]] name = "aws-sdk-ssooidc" -version = "1.47.0" +version = "1.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c93c241f52bc5e0476e259c953234dab7e2a35ee207ee202e86c0095ec4951dc" +checksum = "9177ea1192e6601ae16c7273385690d88a7ed386a00b74a6bc894d12103cd933" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1063,7 +1062,7 @@ dependencies = [ "aws-smithy-runtime-api", "aws-smithy-types", "aws-types", - "bytes 1.7.2", + "bytes 1.8.0", "http 0.2.12", "once_cell", "regex-lite", @@ -1072,9 +1071,9 @@ dependencies = [ [[package]] name = "aws-sdk-sts" -version = "1.46.0" +version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b259429be94a3459fa1b00c5684faee118d74f9577cc50aebadc36e507c63b5f" +checksum = "823ef553cf36713c97453e2ddff1eb8f62be7f4523544e2a5db64caf80100f0a" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1095,16 +1094,16 @@ dependencies = [ [[package]] name = "aws-sigv4" -version = "1.2.4" +version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc8db6904450bafe7473c6ca9123f88cc11089e41a025408f992db4e22d3be68" +checksum = "5619742a0d8f253be760bfbb8e8e8368c69e3587e4637af5754e488a611499b1" dependencies = [ "aws-credential-types", "aws-smithy-eventstream", "aws-smithy-http", "aws-smithy-runtime-api", "aws-smithy-types", - "bytes 1.7.2", + "bytes 1.8.0", "crypto-bigint 0.5.5", "form_urlencoded", "hex", @@ -1135,13 +1134,13 @@ dependencies = [ [[package]] name = "aws-smithy-checksums" -version = "0.60.12" +version = "0.60.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "598b1689d001c4d4dc3cb386adb07d37786783aee3ac4b324bcadac116bf3d23" +checksum = "ba1a71073fca26775c8b5189175ea8863afb1c9ea2cceb02a5de5ad9dfbaa795" dependencies = [ "aws-smithy-http", "aws-smithy-types", - "bytes 1.7.2", + "bytes 1.8.0", "crc32c", "crc32fast", "hex", @@ -1161,7 +1160,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cef7d0a272725f87e51ba2bf89f8c21e4df61b9e49ae1ac367a6d69916ef7c90" dependencies = [ "aws-smithy-types", - "bytes 1.7.2", + "bytes 1.8.0", "crc32fast", ] @@ -1174,7 +1173,7 @@ dependencies = [ "aws-smithy-eventstream", "aws-smithy-runtime-api", "aws-smithy-types", - "bytes 1.7.2", + "bytes 1.8.0", "bytes-utils", "futures-core", "http 0.2.12", @@ -1207,15 +1206,15 @@ dependencies = [ [[package]] name = "aws-smithy-runtime" -version = "1.7.2" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a065c0fe6fdbdf9f11817eb68582b2ab4aff9e9c39e986ae48f7ec576c6322db" +checksum = "be28bd063fa91fd871d131fc8b68d7cd4c5fa0869bea68daca50dcb1cbd76be2" dependencies = [ "aws-smithy-async", "aws-smithy-http", "aws-smithy-runtime-api", "aws-smithy-types", - "bytes 1.7.2", + "bytes 1.8.0", "fastrand 2.1.1", "h2 0.3.26", "http 0.2.12", @@ -1234,13 +1233,13 @@ dependencies = [ [[package]] name = "aws-smithy-runtime-api" -version = "1.7.2" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e086682a53d3aa241192aa110fa8dfce98f2f5ac2ead0de84d41582c7e8fdb96" +checksum = "92165296a47a812b267b4f41032ff8069ab7ff783696d217f0994a0d7ab585cd" dependencies = [ "aws-smithy-async", "aws-smithy-types", - "bytes 1.7.2", + "bytes 1.8.0", "http 0.2.12", "http 1.1.0", "pin-project-lite", @@ -1251,12 +1250,12 @@ dependencies = [ [[package]] name = "aws-smithy-types" -version = "1.2.7" +version = "1.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147100a7bea70fa20ef224a6bad700358305f5dc0f84649c53769761395b355b" +checksum = "4fbd94a32b3a7d55d3806fe27d98d3ad393050439dd05eb53ece36ec5e3d3510" dependencies = [ "base64-simd", - "bytes 1.7.2", + "bytes 1.8.0", "bytes-utils", "futures-core", "http 0.2.12", @@ -1306,7 +1305,7 @@ checksum = "504e3947307ac8326a5437504c517c4b56716c9d98fac0028c2acc7ca47d70ae" dependencies = [ "async-trait", "axum-core", - "bytes 1.7.2", + "bytes 1.8.0", "futures-util", "http 1.1.0", "http-body 1.0.1", @@ -1339,7 +1338,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ "async-trait", - "bytes 1.7.2", + "bytes 1.8.0", "futures-util", "http 1.1.0", "http-body 1.0.1", @@ -1459,7 +1458,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -1561,7 +1560,7 @@ dependencies = [ "async-channel 2.3.1", "async-task", "futures-io", - "futures-lite 2.3.0", + "futures-lite 2.4.0", "piper", ] @@ -1617,6 +1616,20 @@ name = "bytemuck" version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] [[package]] name = "byteorder" @@ -1632,9 +1645,9 @@ checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" [[package]] name = "bytes" -version = "1.7.2" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" dependencies = [ "serde", ] @@ -1645,7 +1658,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dafe3a8757b027e2be6e4e5601ed563c55989fcf1546e933c66c8eb3a058d35" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "either", ] @@ -1704,9 +1717,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.1.30" +version = "1.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b16803a61b81d9eabb7eae2588776c4c1e584b738ede45fdbb4c972cec1e9945" +checksum = "baee610e9452a8f6f0a1b6194ec09ff9e2d85dea54432acdae41aa0761c95d70" dependencies = [ "jobserver", "libc", @@ -1834,7 +1847,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -1897,9 +1910,9 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "concurrent-queue" @@ -2240,7 +2253,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -2406,7 +2419,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -2426,7 +2439,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", "unicode-xid", ] @@ -2499,6 +2512,17 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "downcast-rs" version = "1.2.1" @@ -2602,9 +2626,9 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "encoding_rs" -version = "0.8.34" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if", ] @@ -2616,7 +2640,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" dependencies = [ "base64 0.21.7", - "bytes 1.7.2", + "bytes 1.8.0", "hex", "k256", "log", @@ -2645,7 +2669,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -2796,7 +2820,7 @@ dependencies = [ "regex", "serde", "serde_json", - "syn 2.0.79", + "syn 2.0.87", "toml", "walkdir", ] @@ -2814,7 +2838,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -2824,7 +2848,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" dependencies = [ "arrayvec", - "bytes 1.7.2", + "bytes 1.8.0", "cargo_metadata", "chrono", "const-hex", @@ -2840,7 +2864,7 @@ dependencies = [ "serde", "serde_json", "strum", - "syn 2.0.79", + "syn 2.0.87", "tempfile", "thiserror", "tiny-keccak", @@ -2882,7 +2906,7 @@ dependencies = [ "async-trait", "auto_impl", "base64 0.21.7", - "bytes 1.7.2", + "bytes 1.8.0", "const-hex", "enr", "ethers-core", @@ -2988,7 +3012,7 @@ checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" dependencies = [ "arrayvec", "auto_impl", - "bytes 1.7.2", + "bytes 1.8.0", ] [[package]] @@ -3173,9 +3197,9 @@ dependencies = [ [[package]] name = "futures-lite" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" +checksum = "3f1fa2f9765705486b33fd2acf1577f8ec449c2ba1f318ae5447697b7c08d210" dependencies = [ "fastrand 2.1.1", "futures-core", @@ -3202,7 +3226,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -3418,7 +3442,7 @@ version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "fnv", "futures-core", "futures-sink", @@ -3438,7 +3462,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" dependencies = [ "atomic-waker", - "bytes 1.7.2", + "bytes 1.8.0", "fnv", "futures-core", "futures-sink", @@ -3502,9 +3526,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" +checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" dependencies = [ "allocator-api2", "equivalent", @@ -3589,7 +3613,7 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "fnv", "itoa", ] @@ -3600,7 +3624,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "fnv", "itoa", ] @@ -3611,7 +3635,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "http 0.2.12", "pin-project-lite", ] @@ -3622,7 +3646,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "http 1.1.0", ] @@ -3632,7 +3656,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "futures-util", "http 1.1.0", "http-body 1.0.1", @@ -3693,7 +3717,7 @@ version = "0.14.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "futures-channel", "futures-core", "futures-util", @@ -3717,7 +3741,7 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "futures-channel", "futures-util", "h2 0.4.6", @@ -3758,7 +3782,7 @@ dependencies = [ "http 1.1.0", "hyper 1.5.0", "hyper-util", - "rustls 0.23.15", + "rustls 0.23.16", "rustls-pki-types", "tokio", "tokio-rustls 0.26.0", @@ -3768,9 +3792,9 @@ dependencies = [ [[package]] name = "hyper-timeout" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ "hyper 1.5.0", "hyper-util", @@ -3785,7 +3809,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "hyper 0.14.31", "native-tls", "tokio", @@ -3798,7 +3822,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "http-body-util", "hyper 1.5.0", "hyper-util", @@ -3810,11 +3834,11 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "futures-channel", "futures-util", "http 1.1.0", @@ -3850,6 +3874,124 @@ dependencies = [ "cc", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -3858,12 +4000,23 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", ] [[package]] @@ -3927,7 +4080,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.15.0", + "hashbrown 0.15.1", "serde", ] @@ -4146,9 +4299,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.159" +version = "0.2.161" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" +checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" [[package]] name = "libgit2-sys" @@ -4174,9 +4327,9 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libnghttp2-sys" @@ -4216,6 +4369,12 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + [[package]] name = "lock_api" version = "0.4.12" @@ -4241,7 +4400,7 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.15.0", + "hashbrown 0.15.1", ] [[package]] @@ -4551,7 +4710,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -4604,7 +4763,7 @@ checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" dependencies = [ "arrayvec", "auto_impl", - "bytes 1.7.2", + "bytes 1.8.0", "ethereum-types", "open-fastrlp-derive", ] @@ -4615,7 +4774,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "proc-macro2", "quote", "syn 1.0.109", @@ -4623,9 +4782,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.67" +version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b8cefcf97f41316955f9294cd61f639bdcfa9f2f230faac6cb896aa8ab64704" +checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ "bitflags 2.6.0", "cfg-if", @@ -4644,7 +4803,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -5120,29 +5279,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.6" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf123a161dde1e524adf36f90bc5d8d3462824a9c43553ad07a8183161189ec" +checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.6" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4502d8515ca9f32f1fb543d987f63d95a14934883db45bdb48060b6b69257f8" +checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "pin-utils" @@ -5270,12 +5429,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.22" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" +checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -5368,7 +5527,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -5379,9 +5538,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.88" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c3a7fc5db1e57d5a779a352c8cdb57b29aa4c40cc69c3a68a7fedc815fbf2f9" +checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" dependencies = [ "unicode-ident", ] @@ -5412,7 +5571,7 @@ version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "prost-derive", ] @@ -5422,7 +5581,7 @@ version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c1318b19085f08681016926435853bbf7858f9c082d0999b80550ff5d9abe15" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "heck", "itertools 0.13.0", "log", @@ -5433,7 +5592,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.79", + "syn 2.0.87", "tempfile", ] @@ -5447,7 +5606,7 @@ dependencies = [ "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -5471,12 +5630,12 @@ version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "pin-project-lite", "quinn-proto", "quinn-udp", "rustc-hash 2.0.0", - "rustls 0.23.15", + "rustls 0.23.16", "socket2", "thiserror", "tokio", @@ -5489,11 +5648,11 @@ version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "rand 0.8.5", "ring 0.17.8", "rustc-hash 2.0.0", - "rustls 0.23.15", + "rustls 0.23.16", "slab", "thiserror", "tinyvec", @@ -5502,10 +5661,11 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.5" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" +checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da" dependencies = [ + "cfg_aliases", "libc", "once_cell", "socket2", @@ -5660,9 +5820,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", @@ -5715,7 +5875,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ "base64 0.21.7", - "bytes 1.7.2", + "bytes 1.8.0", "encoding_rs", "futures-core", "futures-util", @@ -5750,12 +5910,12 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.8" +version = "0.12.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ "base64 0.22.1", - "bytes 1.7.2", + "bytes 1.8.0", "encoding_rs", "futures-core", "futures-util", @@ -5776,7 +5936,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.15", + "rustls 0.23.16", "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", @@ -5807,7 +5967,7 @@ dependencies = [ "anyhow", "async-trait", "http 1.1.0", - "reqwest 0.12.8", + "reqwest 0.12.9", "serde", "thiserror", "tower-service", @@ -5879,7 +6039,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "rlp-derive", "rustc-hex", ] @@ -5927,7 +6087,7 @@ dependencies = [ "alloy-rlp", "ark-ff 0.3.0", "ark-ff 0.4.2", - "bytes 1.7.2", + "bytes 1.8.0", "fastrlp", "num-bigint 0.4.6", "num-traits", @@ -6001,9 +6161,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.37" +version = "0.38.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" +checksum = "375116bee2be9ed569afe2154ea6a99dfdffd257f533f187498c2a8f5feaf4ee" dependencies = [ "bitflags 2.6.0", "errno", @@ -6039,9 +6199,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.15" +version = "0.23.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fbb44d7acc4e873d613422379f69f237a1b141928c02f6bc6ccfddddc2d7993" +checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" dependencies = [ "log", "once_cell", @@ -6166,33 +6326,33 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.11.3" +version = "2.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" +checksum = "1aa7ffc1c0ef49b0452c6e2986abf2b07743320641ffd5fc63d552458e3b779b" dependencies = [ "cfg-if", - "derive_more 0.99.18", + "derive_more 1.0.0", "parity-scale-codec", "scale-info-derive", ] [[package]] name = "scale-info-derive" -version = "2.11.3" +version = "2.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" +checksum = "46385cc24172cf615450267463f937c10072516359b3ff1cb24228a4a08bf951" dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.87", ] [[package]] name = "scc" -version = "2.2.2" +version = "2.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c1f7fc6deb21665a9060dfc7d271be784669295a31babdcd4dd2c79ae8cbfb" +checksum = "d8d25269dd3a12467afe2e510f69fb0b46b698e5afb296b59f2145259deaf8e8" dependencies = [ "sdd", ] @@ -6229,7 +6389,7 @@ checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -6377,29 +6537,29 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.210" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.210" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] name = "serde_json" -version = "1.0.128" +version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" +checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" dependencies = [ "itoa", "memchr", @@ -6493,7 +6653,7 @@ checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -6702,7 +6862,7 @@ dependencies = [ [[package]] name = "sp1-build" -version = "3.1.0" +version = "3.2.0" dependencies = [ "anyhow", "cargo_metadata", @@ -6713,7 +6873,7 @@ dependencies = [ [[package]] name = "sp1-cli" -version = "3.1.0" +version = "3.2.0" dependencies = [ "anstyle", "anyhow", @@ -6726,7 +6886,7 @@ dependencies = [ "prettytable-rs", "rand 0.8.5", "regex", - "reqwest 0.12.8", + "reqwest 0.12.9", "rustc-demangle", "serde_json", "sp1-build", @@ -6741,7 +6901,7 @@ dependencies = [ [[package]] name = "sp1-core-executor" -version = "3.1.0" +version = "3.2.0" dependencies = [ "bincode", "bytemuck", @@ -6774,7 +6934,7 @@ dependencies = [ [[package]] name = "sp1-core-machine" -version = "3.1.0" +version = "3.2.0" dependencies = [ "bincode", "cfg-if", @@ -6823,7 +6983,7 @@ dependencies = [ [[package]] name = "sp1-cuda" -version = "3.1.0" +version = "3.2.0" dependencies = [ "bincode", "ctrlc", @@ -6840,7 +7000,7 @@ dependencies = [ [[package]] name = "sp1-curves" -version = "3.1.0" +version = "3.2.0" dependencies = [ "cfg-if", "curve25519-dalek", @@ -6862,7 +7022,7 @@ dependencies = [ [[package]] name = "sp1-derive" -version = "3.1.0" +version = "3.2.0" dependencies = [ "quote", "syn 1.0.109", @@ -6870,14 +7030,14 @@ dependencies = [ [[package]] name = "sp1-eval" -version = "3.1.0" +version = "3.2.0" dependencies = [ "anyhow", "bincode", "clap", "csv", "p3-baby-bear", - "reqwest 0.12.8", + "reqwest 0.12.9", "serde", "serde_json", "slack-rust-rs", @@ -6890,7 +7050,7 @@ dependencies = [ [[package]] name = "sp1-helper" -version = "3.1.0" +version = "3.2.0" dependencies = [ "sp1-build", ] @@ -6898,6 +7058,16 @@ dependencies = [ [[package]] name = "sp1-lib" version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14deb700469a37ec075bcf88dac3815b026dd9c4b9cb175980826f1fbb2e4e80" +dependencies = [ + "bincode", + "serde", +] + +[[package]] +name = "sp1-lib" +version = "3.2.0" dependencies = [ "bincode", "serde", @@ -6905,14 +7075,14 @@ dependencies = [ [[package]] name = "sp1-perf" -version = "3.1.0" +version = "3.2.0" dependencies = [ "anyhow", "bincode", "clap", "csv", "p3-baby-bear", - "reqwest 0.12.8", + "reqwest 0.12.9", "serde", "serde_json", "slack-rust-rs", @@ -6927,7 +7097,7 @@ dependencies = [ [[package]] name = "sp1-primitives" -version = "3.1.0" +version = "3.2.0" dependencies = [ "bincode", "hex", @@ -6943,7 +7113,7 @@ dependencies = [ [[package]] name = "sp1-prover" -version = "3.1.0" +version = "3.2.0" dependencies = [ "anyhow", "bincode", @@ -6983,7 +7153,7 @@ dependencies = [ [[package]] name = "sp1-recursion-circuit" -version = "3.1.0" +version = "3.2.0" dependencies = [ "ff 0.13.0", "hashbrown 0.14.5", @@ -7019,7 +7189,7 @@ dependencies = [ [[package]] name = "sp1-recursion-compiler" -version = "3.1.0" +version = "3.2.0" dependencies = [ "backtrace", "criterion", @@ -7044,7 +7214,7 @@ dependencies = [ [[package]] name = "sp1-recursion-core" -version = "3.1.0" +version = "3.2.0" dependencies = [ "backtrace", "ff 0.13.0", @@ -7079,7 +7249,7 @@ dependencies = [ [[package]] name = "sp1-recursion-derive" -version = "3.1.0" +version = "3.2.0" dependencies = [ "quote", "syn 1.0.109", @@ -7087,7 +7257,7 @@ dependencies = [ [[package]] name = "sp1-recursion-gnark-cli" -version = "3.1.0" +version = "3.2.0" dependencies = [ "bincode", "clap", @@ -7096,7 +7266,7 @@ dependencies = [ [[package]] name = "sp1-recursion-gnark-ffi" -version = "3.1.0" +version = "3.2.0" dependencies = [ "anyhow", "bincode", @@ -7120,9 +7290,9 @@ dependencies = [ [[package]] name = "sp1-sdk" -version = "3.1.0" +version = "3.2.0" dependencies = [ - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.11", "alloy-signer", "alloy-signer-local", "alloy-sol-types 0.7.7", @@ -7144,7 +7314,7 @@ dependencies = [ "p3-field", "p3-fri", "prost", - "reqwest 0.12.8", + "reqwest 0.12.9", "reqwest-middleware", "serde", "sp1-core-executor", @@ -7166,7 +7336,7 @@ dependencies = [ [[package]] name = "sp1-stark" -version = "3.1.0" +version = "3.2.0" dependencies = [ "arrayref", "getrandom 0.2.15", @@ -7199,9 +7369,23 @@ dependencies = [ "tracing", ] +[[package]] +name = "sp1-verifier" +version = "3.2.0" +dependencies = [ + "hex", + "lazy_static", + "num-bigint 0.4.6", + "num-traits", + "sha2 0.10.8", + "sp1-sdk", + "substrate-bn", + "thiserror-no-std", +] + [[package]] name = "sp1-zkvm" -version = "3.1.0" +version = "3.2.0" dependencies = [ "cfg-if", "getrandom 0.2.15", @@ -7211,7 +7395,7 @@ dependencies = [ "p3-field", "rand 0.8.5", "sha2 0.10.8", - "sp1-lib", + "sp1-lib 3.2.0", "sp1-primitives", ] @@ -7256,6 +7440,12 @@ dependencies = [ "der 0.7.9", ] +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "standback" version = "0.2.17" @@ -7351,7 +7541,23 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.79", + "syn 2.0.87", +] + +[[package]] +name = "substrate-bn" +version = "0.6.0" +source = "git+https://github.com/sp1-patches/bn?tag=substrate_bn-v0.6.0-patch-v2#8ef05d3969312eca34fa9f1f566a469022badda6" +dependencies = [ + "bytemuck", + "byteorder", + "cfg-if", + "crunchy", + "lazy_static", + "num-bigint 0.4.6", + "rand 0.8.5", + "rustc-hex", + "sp1-lib 3.1.0", ] [[package]] @@ -7405,9 +7611,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.79" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", @@ -7423,19 +7629,19 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] name = "syn-solidity" -version = "0.8.8" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebfc1bfd06acc78f16d8fd3ef846bc222ee7002468d10a7dce8d703d6eab89a3" +checksum = "edf42e81491fb8871b74df3d222c64ae8cbc1269ea509fa768a3ed3e1b0ac8cb" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -7453,6 +7659,17 @@ dependencies = [ "futures-core", ] +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "sysinfo" version = "0.30.13" @@ -7559,22 +7776,42 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.64" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" +checksum = "02dd99dc800bbb97186339685293e1cc5d9df1f8fae2d0aecd9ff1c77efea892" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.64" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" +checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", +] + +[[package]] +name = "thiserror-impl-no-std" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58e6318948b519ba6dc2b442a6d0b904ebfb8d411a3ad3e07843615a72249758" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "thiserror-no-std" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3ad459d94dd517257cc96add8a43190ee620011bb6e6cdc82dafd97dfafafea" +dependencies = [ + "thiserror-impl-no-std", ] [[package]] @@ -7676,6 +7913,16 @@ dependencies = [ "crunchy", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinytemplate" version = "1.2.1" @@ -7703,12 +7950,12 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.40.0" +version = "1.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" dependencies = [ "backtrace", - "bytes 1.7.2", + "bytes 1.8.0", "libc", "mio", "parking_lot", @@ -7727,7 +7974,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -7756,7 +8003,7 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.15", + "rustls 0.23.16", "rustls-pki-types", "tokio", ] @@ -7778,7 +8025,7 @@ version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "futures-core", "futures-sink", "pin-project-lite", @@ -7840,7 +8087,7 @@ dependencies = [ "async-trait", "axum", "base64 0.22.1", - "bytes 1.7.2", + "bytes 1.8.0", "h2 0.4.6", "http 1.1.0", "http-body 1.0.1", @@ -7931,7 +8178,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -8010,7 +8257,7 @@ checksum = "30ee6ab729cd4cf0fd55218530c4522ed30b7b6081752839b68fcec8d0960788" dependencies = [ "base64 0.13.1", "byteorder", - "bytes 1.7.2", + "bytes 1.8.0", "http 0.2.12", "httparse", "log", @@ -8043,7 +8290,7 @@ dependencies = [ "http-body-util", "hyper 1.5.0", "prost", - "reqwest 0.12.8", + "reqwest 0.12.9", "serde", "serde_json", "thiserror", @@ -8084,18 +8331,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicase" -version = "2.7.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" -dependencies = [ - "version_check", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" +checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" [[package]] name = "unicode-ident" @@ -8109,15 +8347,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" -[[package]] -name = "unicode-normalization" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" -dependencies = [ - "tinyvec", -] - [[package]] name = "unicode-width" version = "0.1.14" @@ -8154,9 +8383,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.2" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" dependencies = [ "form_urlencoded", "idna", @@ -8176,6 +8405,18 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.2" @@ -8206,9 +8447,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "value-bag" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a84c137d37ab0142f0f2ddfe332651fdbf252e7b7dbb4e67b6c1f1b2e925101" +checksum = "3ef4c4aa54d5d05a279399bfa921ec387b7aba77caf7a682ae8d86785b8fdad2" [[package]] name = "vcpkg" @@ -8318,7 +8559,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", "wasm-bindgen-shared", ] @@ -8352,7 +8593,7 @@ checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -8365,9 +8606,9 @@ checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "wasm-streams" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e072d4e72f700fb3443d8fe94a39315df013eef1104903cdb0a2abd322bbecd" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" dependencies = [ "futures-util", "js-sys", @@ -8680,6 +8921,18 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + [[package]] name = "ws_stream_wasm" version = "0.7.4" @@ -8720,6 +8973,30 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "synstructure", +] + [[package]] name = "zerocopy" version = "0.7.35" @@ -8738,7 +9015,28 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", +] + +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "synstructure", ] [[package]] @@ -8758,7 +9056,29 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 962c7d778a..6cf5ce777c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace.package] -version = "3.1.0" +version = "3.2.0" edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/succinctlabs/sp1" @@ -28,6 +28,7 @@ members = [ "crates/sdk", "crates/cuda", "crates/stark", + "crates/verifier", "crates/zkvm/*", ] exclude = ["examples/target"] @@ -46,26 +47,26 @@ debug-assertions = true [workspace.dependencies] # sp1 -sp1-build = { path = "crates/build", version = "3.1.0" } -sp1-cli = { path = "crates/cli", version = "3.1.0", default-features = false } -sp1-core-machine = { path = "crates/core/machine", version = "3.1.0" } -sp1-core-executor = { path = "crates/core/executor", version = "3.1.0" } -sp1-curves = { path = "crates/curves", version = "3.1.0" } -sp1-derive = { path = "crates/derive", version = "3.1.0" } -sp1-eval = { path = "crates/eval", version = "3.1.0" } -sp1-helper = { path = "crates/helper", version = "3.1.0", default-features = false } -sp1-primitives = { path = "crates/primitives", version = "3.1.0" } -sp1-prover = { path = "crates/prover", version = "3.1.0" } -sp1-recursion-compiler = { path = "crates/recursion/compiler", version = "3.1.0" } -sp1-recursion-core = { path = "crates/recursion/core", version = "3.1.0", default-features = false } -sp1-recursion-derive = { path = "crates/recursion/derive", version = "3.1.0", default-features = false } -sp1-recursion-gnark-ffi = { path = "crates/recursion/gnark-ffi", version = "3.1.0", default-features = false } -sp1-recursion-circuit = { path = "crates/recursion/circuit", version = "3.1.0", default-features = false } -sp1-sdk = { path = "crates/sdk", version = "3.1.0" } -sp1-cuda = { path = "crates/cuda", version = "3.1.0" } -sp1-stark = { path = "crates/stark", version = "3.1.0" } -sp1-lib = { path = "crates/zkvm/lib", version = "3.1.0", default-features = false } -sp1-zkvm = { path = "crates/zkvm/entrypoint", version = "3.1.0", default-features = false } +sp1-build = { path = "crates/build", version = "3.2.0" } +sp1-cli = { path = "crates/cli", version = "3.2.0", default-features = false } +sp1-core-machine = { path = "crates/core/machine", version = "3.2.0" } +sp1-core-executor = { path = "crates/core/executor", version = "3.2.0" } +sp1-curves = { path = "crates/curves", version = "3.2.0" } +sp1-derive = { path = "crates/derive", version = "3.2.0" } +sp1-eval = { path = "crates/eval", version = "3.2.0" } +sp1-helper = { path = "crates/helper", version = "3.2.0", default-features = false } +sp1-primitives = { path = "crates/primitives", version = "3.2.0" } +sp1-prover = { path = "crates/prover", version = "3.2.0" } +sp1-recursion-compiler = { path = "crates/recursion/compiler", version = "3.2.0" } +sp1-recursion-core = { path = "crates/recursion/core", version = "3.2.0", default-features = false } +sp1-recursion-derive = { path = "crates/recursion/derive", version = "3.2.0", default-features = false } +sp1-recursion-gnark-ffi = { path = "crates/recursion/gnark-ffi", version = "3.2.0", default-features = false } +sp1-recursion-circuit = { path = "crates/recursion/circuit", version = "3.2.0", default-features = false } +sp1-sdk = { path = "crates/sdk", version = "3.2.0" } +sp1-cuda = { path = "crates/cuda", version = "3.2.0" } +sp1-stark = { path = "crates/stark", version = "3.2.0" } +sp1-lib = { path = "crates/zkvm/lib", version = "3.2.0", default-features = false } +sp1-zkvm = { path = "crates/zkvm/entrypoint", version = "3.2.0", default-features = false } # p3 p3-air = "0.1.4-succinct" diff --git a/book/SUMMARY.md b/book/SUMMARY.md index 53f0c71efe..55ec23f628 100644 --- a/book/SUMMARY.md +++ b/book/SUMMARY.md @@ -57,13 +57,14 @@ - [FAQ](./generating-proofs/sp1-sdk-faq.md) -# Onchain Verification +# Verification -- [Setup](./onchain-verification/getting-started.md) +- [On-chain Verification](./verification/onchain/getting-started.md) -- [Solidity Verifier](./onchain-verification/solidity-sdk.md) + - [Solidity Verifier](./verification/onchain/solidity-sdk.md) + - [Contract Addresses](./verification/onchain/contract-addresses.md) -- [Contract Addresses](./onchain-verification/contract-addresses.md) +- [Off-chain Verification](./verification/off-chain-verification.md) # Developers diff --git a/book/developers/common-issues.md b/book/developers/common-issues.md index f26f3ba0ae..5d0a50e808 100644 --- a/book/developers/common-issues.md +++ b/book/developers/common-issues.md @@ -1,46 +1,28 @@ # Common Issues -## Bus Error - -If you are running a executable that uses the `sp1-sdk` crate, you may encounter a bus error like this: - -```txt -zsh: bus error -``` - -This is fixed by running with the `--release` flag, as the `sp1-sdk` crate only supports release builds as of right now. - -## Alloy Errors +## Rust Version Errors -If you are using a library that depends on `alloy_sol_types`, and encounter an error like this: +If you are using a library that has an MSRV specified, you may encounter an error like this when building your program. ```txt -perhaps two different versions of crate `alloy_sol_types` are being used? -``` - -This is likely due to two different versions of `alloy_sol_types` being used. To fix this, you can set `default-features` to `false` for the `sp1-sdk` dependency in your `Cargo.toml`. - -```toml -[dependencies] -sp1-sdk = { version = "2.0.0", default-features = false } +package `alloy v0.1.1 cannot be built because it requires rustc 1.76 or newer, while the currently active rustc version is 1.75.0-nightly` ``` -This will configure out the `network` feature which will remove the dependency on `alloy_sol_types` and configure out the `NetworkProver`. - -## Rust Version Errors +This is due to the fact that your current Succinct Rust toolchain has been built with a lower version than the MSRV of the crates you are using. -If you are using a library that has an MSRV (minimum supported rust version) of 1.76.0 -or higher, you may encounter an error like this when building your program. +You can check the version of your local Succinct Rust toolchain by running `cargo +succinct --version`. The latest release of the Succinct Rust toolchain is **1.81**. You can update to the latest version by running [`sp1up`](../getting-started/install.md). -```txt -package `alloy v0.1.1 cannot be built because it requires rustc 1.76 or newer, while the currently active rustc version is 1.75.0-nightly` +```shell +% sp1up +% cargo +succinct --version +cargo 1.81.0-dev (2dbb1af80 2024-08-20) ``` -This is due to the fact that the Succinct Rust toolchain might be built with a lower version than the MSRV of the crates you are using. You can check the version of the Succinct Rust toolchain by running `cargo +succinct --version`. The Succinct Rust toolchain's latest version is 1.79, and you can update to the latest version by running [`sp1up`](../getting-started/install.md). +A Succinct Rust toolchain with version **1.81** should work for all crates that have an MSRV of **1.81** or lower. -If that doesn't work (i.e. the MSRV of the crates you are using is still higher than the version of the Succinct Rust toolchain), you can try the following: +If the MSRV of your crate is higher than **1.81**, try the following: -- If you're using `cargo prove build` directly, pass the `--ignore-rust-version` flag: +- If using `cargo prove build` directly, pass the `--ignore-rust-version` flag: ```bash cargo prove build --ignore-rust-version @@ -57,22 +39,41 @@ If that doesn't work (i.e. the MSRV of the crates you are using is still higher build_program_with_args("path/to/program", args); ``` -## Stack Overflow Errors +## `alloy_sol_types` Errors -If you encounter the following in a script using `sp1-sdk`: +If you are using a library that depends on `alloy_sol_types`, and encounter an error like this: ```txt +perhaps two different versions of crate `alloy_sol_types` are being used? +``` + +This is likely due to two different versions of `alloy_sol_types` being used. To fix this, you can set `default-features` to `false` for the `sp1-sdk` dependency in your `Cargo.toml`. + +```toml +[dependencies] +sp1-sdk = { version = "2.0.0", default-features = false } +``` + +This will configure out the `network` feature which will remove the dependency on `alloy_sol_types` and configure out the `NetworkProver`. + +## Stack Overflow Errors + Bus Errors + +If you encounter any of the following errors in a script using `sp1-sdk`: + +```shell +# Stack Overflow Error thread 'main' has overflowed its stack fatal runtime error: stack overflow -``` -```txt +# Bus Error +zsh: bus error + +# Segmentation Fault Segmentation fault (core dumped) ``` -Re-run your script with `--release`. - -Note that the core `sp1-core` library and `sp1-recursion` require being compiled with the `release` profile. +Run your script with the `--release` flag. SP1 currently only supports release builds. This is because +the `sp1-core` library and `sp1-recursion` require being compiled with the `release` profile. ## C Binding Errors @@ -120,3 +121,27 @@ To resolve this, ensure that you're importing both `sp1-lib` and `sp1-zkvm` with sp1-lib = { version = "", features = ["verify"] } sp1-zkvm = { version = "", features = ["verify"] } ``` + +## `sp1-sdk` `rc` Version Semver Errors + +When using release candidate (RC) versions of `sp1-sdk` (such as `3.0.0-rc1`), you might face compilation errors if you upgrade to a newer RC version (like `3.0.0-rc4`) and then try to downgrade back to an earlier RC version (such as `3.0.0-rc1`). + +This issue arises because some RC releases introduce breaking changes that aren't reflected in their version numbers according to Semantic Versioning (SemVer) rules. To fix this, you need to explicitly downgrade all related crates in your `Cargo.lock` file to match the desired RC version. + +To start, verify that the `sp1-sdk` version in your `Cargo.lock` file differs from the version specified in your `Cargo.toml` file: + +```shell +% cargo tree -i sp1-sdk +sp1-sdk v3.0.0-rc4 (/Users/sp1/crates/sdk) +├── sp1-cli v3.0.0-rc4 (/Users/sp1/crates/cli) +├── sp1-eval v3.0.0-rc4 (/Users/sp1/crates/eval) +└── sp1-perf v3.0.0-rc4 (/Users/sp1/crates/perf) +``` + +After confirming the version of `sp1-sdk` in your lockfile, you can downgrade to a specific RC version using the following command. Replace `3.0.0-rc1` with the desired version number: + +```shell +% cargo update -p sp1-build -p sp1-sdk -p sp1-recursion-derive -p sp1-recursion-gnark-ffi -p sp1-zkvm --precise 3.0.0-rc1 +``` + +This command will update the `Cargo.lock` file to specify the lower RC version, resolving any version conflicts and allowing you to continue development. diff --git a/book/generating-proofs/proof-types.md b/book/generating-proofs/proof-types.md index 67e5b7532b..7ebd300acf 100644 --- a/book/generating-proofs/proof-types.md +++ b/book/generating-proofs/proof-types.md @@ -28,7 +28,7 @@ client.prove(&pk, stdin).compressed().run().unwrap(); ## Groth16 (Recommended) -The Groth16 prover mode generate a SNARK proof that is ~260 bytes large and can be verified onchain for around ~270k gas. +The Groth16 prover mode generates a SNARK proof that is ~260 bytes large and can be verified onchain for around ~270k gas. The trusted setup for the Groth16 circuit keys uses the [Aztec Ignition ceremony](https://github.com/AztecProtocol/ignition-verification) + entropy contributions from members of the Succinct team. @@ -39,7 +39,7 @@ client.prove(&pk, stdin).groth16().run().unwrap(); ## PLONK -The PLONK prover mode generate a SNARK proof that is ~868 bytes large and can also be verified onchain for around ~300k gas. Plonk proofs take about ~1m30s longer to generate over a compressed proof. +The PLONK prover mode generates a SNARK proof that is ~868 bytes large and can also be verified onchain for around ~300k gas. Plonk proofs take about ~1m30s longer to generate over a compressed proof. PLONK does not require a trusted setup. diff --git a/book/getting-started/quickstart.md b/book/getting-started/quickstart.md index 02b0f1a3f2..824ddbf857 100644 --- a/book/getting-started/quickstart.md +++ b/book/getting-started/quickstart.md @@ -6,10 +6,12 @@ In this section, we will show you how to create a simple Fibonacci program using ### Option 1: Cargo Prove New CLI (Recommended) -You can use the `cargo prove` CLI to create a new project using the `cargo prove new ` command. This command will create a new folder in your current directory. +You can use the `cargo prove` CLI to create a new project using the `cargo prove new <--bare|--evm> ` command. The `--bare` option sets up a basic SP1 project for standalone zkVM programs, while `--evm` adds additional components including Solidity contracts for on-chain proof verification. + +This command will create a new folder in your current directory which includes solidity smart contracts for onchain integration. ```bash -cargo prove new fibonacci +cargo prove new --evm fibonacci cd fibonacci ``` @@ -73,7 +75,7 @@ Note: the `build.rs` file in the `script` directory will use run the above comma To test your program, you can first execute your program without generating a proof. In general this is helpful for iterating on your program and verifying that it is correct. ```bash -cd script +cd ../script RUST_LOG=info cargo run --release -- --execute ``` @@ -82,7 +84,7 @@ RUST_LOG=info cargo run --release -- --execute When you are ready to generate a proof, you should run the script with the `--prove` flag that will generate a proof. ```bash -cd script +cd ../script RUST_LOG=info cargo run --release -- --prove ``` diff --git a/book/sp1.png b/book/sp1.png index abe8a23b8ee9379fe50cd1d9e9b9cbbbb8640786..78576befe311ab327f31e2fd3054f8dddcd081dd 100644 GIT binary patch literal 66629 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 Twg!hb@;){(x_Gt->KySO+>0Oy literal 3033933 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

a`=a0;d-0SXFZewRuKPP>>#HG8ba-!I0ugxei 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

CWx9pN#-9oz&z8oRC1<^e8>m)`*zE1cYQHw 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.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

!oq8A&y?Ls<2aJAk}qK|fG`OMr`HyZGU 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 W)11J3wQRM9t|As( zSI+Eqwrwiwczny5&kgPr1*O}r@zuH9&B+~Ja>F7)t>^C3@NwWM@qBwL>NDtc3pxUX za;nNT%8Fww_*;(aJ=BK*JX%II>Vi8!B*;I2r=q&y8@6IAkOn00rs6Bh1CZ8d zUnt#V-|RYB9q`_61N-^Hr9JLbvWGT9fMT=87*RH+#QWTd#!hsr{aMcCY9M1TzCw%B z(r_E(*_}pU9@_BiaUC97CgCNFHTFuvqPe&qs7|7nr$V+3Y|mamcQk6y>w_P8{?M++ zIK(>1?x_YgXG2oXB8K%Gvi-Ei55d~Sq`S6D@8ns=QgKVk0L4;`4a-4ynQ45~nZsWS zX2iVny_Hf17?Ok}r-3us6F(WTJn#^C(TPY9Stj|&XW%caMQtiQ)i74OCg+$x+ z|Dov7zclSXM1-zxQ~f5w9T27L3r%#Z7bk-M9iL~Ki9Tz62hE@sT$MYq; z@yfRqxESgyT~HBNkj)MKJsxIC*vp%yA+KZ%@1I(AEUIltANJio`*^h4M#Q3$k>{}{ z`s+~eyHlaA7>JHe*+ocqEZUf|+{E`~cjHYy92kfU6}g0l(Bobg(TXO-1mr>)0G{S( zT`ZTi0=rNFyB}H=xIHX{d%_SX_*oveSU-}c?;Cn#6M6``L+sl!SC#%VeKGPA6jk-e z=B>^*XVRL5(k*Ci%2rm(0PhqEDjF5L1L$P1V}k>QcZvlx8S!FV^NYq_x`*`_F~ng? znvX7l`s`2|H7Bwk60Om@K#!{0H98{{m~E>XYL`IHsEavo-!t^w=l4An<(>(iI=AGP zpr@g++3k|+x7tx;C{DJYB%qnkiD3mxC#meya<6TUM17Wwtk&=1of_xk#A7)VmVPM+ zBpT(S*U$O-07N&d04`V-yRnOS0nIcq-xKZ2h>x4MiZQW&yKeE_;{0k*<8K>;21nIc zuHP)eBWRR}+qy9|Ef@oe8uzTXVC*Kbsq0jtbBBCQQB|ga`hvDc=4Ba`z6#e(f1)Ti zVIARoHiH)o-W>gtdJ=SpQ4wYRyUNQcs^l5(k8PiRHYiZl%E}@n?B>d>9@8C0pyW%i8cwv<#{6IE)vCutZlax=5 zfHNzg#^)!P3uU9 zKDocl3l~Xx)3O{G#H-+ns%(klzxsF7lVT%34FxkeAZHWn249a@lND4aXOnpUwx8Xn zq;e2+fc-~DXTA1L10W_*6Sw$tZ7Rz&si0ejBzte1iP8U0@niyWDvb31gRR$hcv-P- zqB&jP+8W5AWmtk;>+TGYjM&(4v-8<}!0K>#{E>(|T>m9%BfbaqHs$Spr)WA zw?>nGrmj|$=Ig_f8iOJU`t#lETAM;jPshvHGjiezqot0!ork(frn3##= z>n*CTmM`bWYW}g_a8vH)u(FPfXwVjZR{ZPxfYbLW=ZLkD_ksNP;~Hqr*b+46`5XU+|9@bus)p0?m(_evcOw^4EU*68ng=e=^HX!^2U zV5#9zr6R3Y*&(!Y%Rw^OTIkQbX>j8^+*s-BWW_D65_+tJg56^IWvQk~3+C?Hykgs>i$6G>kho1?!Qnqy%(x*IDjoSC^uN|55giMFHWN@lO4oBz#D$&p!f>b+WIpn2!ExeVL(bMfRCrDeQ`PWP^=cH zTLyj&hTakji}AYDNxadyvsh|&Bf^EyP~`sskUJb~!)Ou6AHJB3g6R{sIsWH3dQSEC`)0OdbHucN2x~q}}W` z@MEq>GvD}rTVDYRLMK3@C5=_TAzrmM_Q^8?93==85@%)7ehpQg%b#m{Q|T#ns+_+J zaez$lMIT1Za6gmHCMI2$Krqz$M%@%=7VRV+$sWoplD2sqJ*1zxxQUh;Wf_#AIZcsT zVWO(h_l-~fun1y{PTYba9=#xs;f$tCjeqT5>cB_^g7}=KY`Hk61U#&updg)1IZ7Vl zxGi%nqa*vO#P1~BnpMz_i8yUP3-uFKf&Ar&b0%SK`t+R<8btJ#TVxfcGax>0h z*JeRn_?$HX+(Q?G0%VneM&dYL;Wbbmmz;wbW&7uAu zxkH=Iyco~&Cx%>-VwrgorL{i&SGVtXS=qJZDHTPI^1L}Vv;tlWTMvy7;-1$i*wVI{ zbJ#YcDQ74OR&OqllB*C*wy>fq{5=6=j*`3p3pjT4s`L&@!=vJI@^3&(54|tYlD=2^ zD_Uawt0}FG&wv{A|M7GdUQIsm8dnfe5Kw7}sYoNCbPWj!B?Kg-Lup1gjF4`nJEXh2 zySuw%Gz=JQd+&bto^$_%z1unOcTapCFf@+z_(`mayixM3?n1XFDZmFwkra`&#dKe% z5vwz>DvCm~wYK|BR)?Dt5#gJwEteA&MZDZx-e%v)x-7vf_sEwRE|FlPNVL5};3wJmCZMF4%u&40?dQg@TSgISA zy3Cc>>3>VKjcCiAIIt7me+wNwpg<=EjG_swty1I*ON|GWwu+;c23t5+gN;OU7<(Cg zHamjVO7BXX1p(YEjYR)-3gD=ods8xtHAf(<8|c6P8u967V)AF-Km;hMgECu|Mi*bW zD7{QWE1FAY%E_cgqdNPp$>jj=&`;pwTg4>FaRJ>YVKC3y?K%GUB(7*ZHX1r)zSL6+v6t7Kb zKEb z0@=yh4ar~s7&{vJeF^bM+1_zOGi>d90nzv@?j9!V5JnV{+Ud;E`eVmW3v+-em8JIx z7aR|D1CK#`K;N4<$uPUN+2)^}LG1{2nz4Tngn}XdDjIVF#bisX{kiUGm7<3U?>M7Z zPA3Yc_G~gPzO|u?z>)G)eDA2&cL5AEh(Y|6NgUg)79Og)qEj=Xis-z|zS+kc2at}VuM%i7L3bq%u9&(|EsEAj=}9!dx}7Vz26;o9XkNNoA~Bmt1t~&#xTKI^vM=$A3x|)Qk_!!-QzQdM_qQ zQZC*fJjbStdx~YD!8{=bF1BpDO9M*RcsC5Ll$2hZLcXshrniNtFzWSePKwuD&vt2` zcvGT%cEkBc-jH2T#eN3}G$0ih@*IGz58-h(cjR}FRIL_u|A0G>dztMk>VE;Vi|VQT z=S>>mR@|jpu+PQ@7dM36%p(|5;F&p>{12N`aNjIukG^TLI{pMcmFQdgr%`d1?@y-x zrt_$a=3$~;3;SkvWOYB^O66X4??rGJij~b+weT#z?9dOV1#9%*-B^Q#>u3O#Xxxtw z&6>uw+qKnk&%aoMV$4Rr{@vS7>s%W4biQ$=z0$Z6E0c)Y@&5d#WA3`23Dhm8OXEhN z_BbTvwceOk1$DzAC3P`FS;Dn%Y+T!%9{!+nb=a2hoWZJ`alrEjrA30aQ9GI zbHo(p7&A$`C+Y2*GeZUsUJeLgnXys3X6`v+j5^iWR!~*1bln`%`IwgfevO;!6ZrDzqsPf0sh}+y>yBo)fz!SQA=GR^etkTz zTQWqXAHLIi)Rs;1^K2YF_Y3efAs^AXH5X~M-?K)krTl`r@CRYeG%&;cTIJ7=iV6zj z!^1q<39Uh_>ZOydp6)I#F8dgt(m4imhe?|P7y6vS;h|iT|NPXbYq?W#9=JUWSV)Tq z5h=Wrr^#Sab5;8=C^`^wqQ1ye7MhItR0y1&AkHajz-<-+bz-5_%Z9Oy@dXfV$`>N{KpC9V9F?FVMNFg*K1^c^{ z(D4b_nL1PE;JkS%HmJy}*VQs#HC+aqq56HYQpC`ym~MgW-@b#pTn}VZP}0g-eaAKh zDSMWR9f0kZ&*+$Bg^W0kMNSI@ki_JB{$uC*;?F3}x=2_}rf!{Ix4IT>w6x2XFUj)^ z{_1JX7Ae$YCBJ8UeS^OUktWd>c>UX-qO#MLPJ59;vjc^;fP6=``Qz4j>IC0HqCChv!4uhl#aS1|O{N=0U1J8@~Mo-h8=_BVb)UlpWWd3qP94TNU&gzpi<0kS-T7kfaH^{Z12h zdjwq6c~OCKrUSjv*O&&2kDk;brD8t>xD5e3!IUcJ6`6p0g+tb)q}sl5QVsov|13<))qG?dB1DlR~gOW*p;Bd6Baj; zg9L9IZ8kWXBpLk({LLiySCOGi=}w#_{!2DlI#AR+x(DFpR^T4S1MVLGaQ)lPZ3mn% zlgtayt8l>EwTi4rv3vfB1>ijZdud&8`p%EL)u;PW>RNewOhUAsdhqcoP*FQJKDKxX zXRIZdV`>Nm0;`zJMAR-wQf@q^GJ8ah8gJFF^FsX^k9ezP)T~$|9q+*JlT$gzae~X%{1d;jlAIU~D}{eN_@Q8_{+0*yHLM0yK|=qKbB{lItXuTPSg^e=(&0K7|RvFlPVmFMk?{(=yD z@Yz_bS8(=(Lln&=j75s#5zh#D8rj|OCDcl5bBo(LWelKv`JH4+#8xQ4`qX`eP_V_( z-2Rf!^IQ(qOO0IbU4k#!nKwz10Y4+Ma*IU5Xiy(6T&NqB1=N@^LeRVZkB48zc1;99 zm0SI<^;ib@(#mPu+_BpmY;_{*V+SBWpymO18;=|V>!%mw*2 ze;*Q~_X6r4(MqtQO|8gCO|97Iz|{L_rkc)+s@~8=6y5ZAu~%l3@j|$y=FN_JH=z{a zfM@;f+AL|xq}th;_W*SnH6(7sS-2J)`oJFZ(yYq^!Vae`Q_mO1_9lb!W5`1H4UWFmF^ zXjP2kSNADWao7y0H|80!SRsjc*{ml~ZsL!HNS2h+@Ar?e@#^lRm4BI(8G3mUZvDj| zB#fICsYq;zVQ-}CY$j`Ws6SsNknw4iDHe~~jKKDKPfs<|YVKmsUJEg(jTzic!9T=R zoVFzAO17+=rNI=y6ghsZx-fWvSA^$hx38?B&i(3(MeE}*f@{Ys_}$vJ$;kH>11SBq zkx7iV_Dk1HthFJhPS4Ekv-+vYm(1@LuHWp8vC%!FU24|K#8P{UB7nI=NJI;p6s$cc^MWdqIAtXxy2pDsAUw)ZjsX(p%{&QoSf#S;BMdQ^m^gk zlXUT`ttXBvebBRG^2WE}PjgP(mr8}yVh@)ZH`m@5UnQ2CvMTY1#BEDN@2#R2HcYno zgf0DPmQ{FyJ>cl#z93;%gtmp5F&8w5gW-BwG#0hNtJ0_{M+8_-%zz*u!7d zEEUAG(_OSy7uE0CTK}H9;pt%R_^BjpGr#$HqI19|H4Gl_FqQcfR`RxpPOq8qG|+7F zI|+AKDv*1mdqQlW|E_q*>f&_Z*K{UZ?RBhq=R74j=UH0A@62$ZX7J_bIRf7M9&2r# z?*0;520kJ~{qcLbQ+#fMq&l11Ap^FK?jMcJBmvl(*~1yZEUGQEHtqtQRg*}AVD&U2WsX;+{h8i@(H6LtC;N3SYb8R< zz#RbcL7k>06+*B471ixk@;KnY#^n|{`+DaLCG~0xRa2oOLL8xS1S-FThIobFV<;Nj zOdcCncBI-N|9P1~T6NZZH+{XmF2=_5!^CbHlh>K3wR98_0m1ob>XMncIesb_9FAGP zR7T~d9J+hpPbexQ`y}oo>(4=%DA)(4kQI-{h>?FxUl*xy6oa3TVNXc1nDzK8_!IaO z7D(KOJPshU&V3**jdDtvn0V3Z=?E0RMDBreX1uSoM6B?9vA7L6^mR zLbFGWHRaxgr@O1Y15ZoOU-0|P{t{Mq2@U7W?J2PCN>Nk@6daMhSSBIsC;431#`%}E znGh=i^`@O3hpMvv)Mg4_a$;Z_Zp;-q$w3sr8o`Pm-I*Rx2k0SJ+RoKsWwQ5IZ~3AG6n649owsnA ztp@!FQr?oAYCfT6KWLb&VhSa*R#~vDd_sc32yIQqQntFd2Dr_11H_TE)`T<%Sx=(m zr7rLW*&l~^gMc^|F%@)z6u_CYQb|ts6NoR<-KrvIpU7cVufT-T zSWaKf+|~#@&4O;+%|(Kax}5Z;c~|!73+h|4cy)4z*<;q{)Gj*YLqe(f%=_wb|8<>X zJm8JTVv_;mu|O!1I`0WCxDcY(Ki+c?^>oK?HjJ>AJxo=em?~)V*8xQ!7ErAh#!tb| z;+3qCcA*@B(0fJAYd&wWBS9vRfCSG6QU>Crb?of%lGS<1_v%y%Rd&>Q5szNZJVLTU znx~LhnAPNqxx({7niK(O1!dhdWPpP9mHGXPL8)sWa+W#6Xov}#qjTnbkt`X&{$=DW z%jd8v|B6xMledGIpWM0L9>9X`qh<(KbSxgiFsHIp5nxMEYh+5ui06gu2b=e4xsbJ4 zI7Yh?N9N5i`X!mO?BXGL(TsY}%^*mUNsSO{-3K4;ozJofm00P-E?G?9>i2FflKZ5# zNG#NxdA>)03vBJKdSW2Y<`8Y$#1COHfQ4S+{>`2GV7Tfexhn;4KelL`96H@2>i|-m zMDB{L=;F80CsIfija)lBGjW%$@}{5cfP+6AtmL?9XQfoG)dS zJpM^inSm{sBW?aDFfLHs2PU&&<00C10!RFgtBiqdLMzQ~x$?^M`bnp(P@E^fzs6#i>$l*^(gXoVJ_Pz2w8T zvs2)y$A*2n!fULrPRHY!eHo>#%f_vPl)_~iOCSs-?KJB-a34+GWB|LYS$kJ$1MgH~ z)IR4EqeqjbZCDvtwzNzC*ES z6kE#o$r@>m3m^9bAR&*ao0COZklI$y+?pE^h#KtA@%@gUmv<54L9)u7z0|gYRLuUP zL%6CnM>cz(bNsXOA`V>|;+Hl-(G_nZ#0pBS{xHs&qa(ZbB=rw*$*6A$VPls7lZe01 zXtc3t>|#SxsCwB3hA3-uf1-263jdTMA>^zE6{>Fy2yra8WknE?Dh5wRDk{A}!}y0V zBAUrstGpNkJdzEp=pvVvW1p*xUc(CFz58|n-NYH+O#WVCalSe~?`FAFTeo>^^C*vq za$hoZ#Caem_K=BSj*8$oI!#rh=C^My9}C%mSUmfoRk4#%zS3+#Ptnx}Ff=-FQ)%w2RL9n*%i-_vu9UH0l3tNZuvr^;@jXSlpa;4fSHREqesMoU0 zs^=cfe-1j~g-`V8O|ij@N-jo;O8al(ZWbfWkK-G)^RdhErVq@h<|&x(4n>choSQOr zmtsG91xje5>AkQTmgfu^ox1piL`*%6k-q4L?31~zjMG>fT)9SJ&kbzt6mbsLB%gQo0Ytd9ukqaTG2AG}5x+vnH#OESot~dQGn8Rq&n|F`%d=_re z#+a~z{&Y048m$c31kr#xCtH4M3%e5$Q{i$}7-XPli07ma*Ot`1Qc8-Cp2kS?IadsOd&&!!FM*J4|XBN>${dMtv0w_NWy^IcPA5c8V6Q?ZNJ9% z^qraycX=rgH(WTrUEs0~LD_#*)0$!ne~3+u-DFS8yFpn<%9ru70VPk{K3nkq_HYb} zV}gld{O4n`t|fLvcLmyP_dg{1f<43O*>Z9YO^oH+~5a<`E_|V9U(q2uk6^ z2*mZ|&|}W8S8JN}64}|=7kll$t7m>P;bLR5*`&pM2;i2v)v_Ds2HQJDHfI3n&kj{T#rRc(08A(u_;| zW0sD~8;gvTM{=>A#D#Ea*}s8zWK)wU9M8(`JA0%I4y9> z6bmB_Zf^rs3WnZ!4 zWYZ8`uGfYh1VNi3uB%w`D9J=~P3B~$r8oU9-iLQ{Txdt3`o+so(@-X0#7Y);hh%v#aG$$XkvhGXx0+a+gf>GU#$GhRi(phW8 zH$=Gi>RvAfOU?N?+R(hfNE<+O@YjnXk3AA>*T4PiC2+dhBwf~mpj~wXC?E^XFQA8O z_mqWeh2O|GHr)FZN*mJeO89}ZQzXM_AxiV&(;s%z^q-qxR5g2icsx0 zPyW5D1~U(r3pT4&{(+@h%iImOtgrXTaWtk$@lLpXr@~x(de3aMRf|SmAo|?a6cS|E z$Ebuz-fy^u6w5o2++PAi`l|nw#fm7)!L$-|IiXR3IENa-+WH5#M%m zQ4~H8bYnmRY3_HnW@8`cAmcqlACVowQ}dO!*xzekokt9iL|p)GD!PkGmY2}Jyj<57 zfsbMC!y0tT#fJ6$a+{w;MXM0tsu7$+q+Sm+FI}*@M_A@i*_-h~8R^hVu@%&>2&)Qq zXV6pLA|GXp`j8y&ZU~uVR6Tl(hX9i@dXTtVA&Fe#^xq7TGFgp(x5+W6Tx%?BmgVaC zt|lql_l-!TtXkm#!7P}sNFKG-#TK4?;f3jfdQa|BYau;7Ju98e`dk+uUA_Z71P z&dsFE)o%Hgtseo#rf*4qy}KW0r+rSYMkrR-3}K{lB3<{Yg`+krSR96cc743W&nBNd zk0G0he_;mZP9%1K-yZ#D7vI$tkrW5WwaA9dE6J%sQ>SCco5T%fP5j|}_gA1emyONh z2>B5QX1QlkjgfwLC`igci;lCju({7lA z;cgFb8-DHKY|kmeVPy8k%8v$*gN}VPa*-*B9Zz)14QMS<5u-r>!m*%dvBo#&ha zE`^LcX@>H0xpCjEtD|+?s*ru@T}s#gV>I4#oaAp>6he36X!ZxzxbY3bxawy)r!|w+2GHW>XknF5JsQ{vcmdGbw$dlFZcAmHAAM1JP{(i<{NZsIh9b_nr8hCK`S}P^0C3 zU-t!Rwub&hh*k6>%e4SRn8c(A56}%M={G27yB7+ws%9X*!r~FqK>Z%?8GD)DcxcLR znbxaFGoi)E+(jKxx58H8QZt5jsB`Zr}aK2=8H!PFA=TuBS zkP-Rog+thNJ1CA{qEpZ^PU7_sfA(@8-HfteSANlS1yL`)_QK62&_7;VvsL}YD?YxZ z`%jxuIh*2dRdNcHT*FIE%tofz!KHKa4f>5J-ICIcES{p@vN?VC8KL{QvbB3PE;k%? zCBikZt3*SgWat{AqB9?NBO-b{{QQ>|vas%e=fE7cJIX|>oq&i>al9jtE7 zINoonPp*UQ*WOz|%fNe$Vaih0?OGg?adtxV&0HDZPj(dcBpm<6gF%aFf)A<@qllC| zbs2!oq*OAhoZ%_W_lpL-$s4#f|6R-^vZD2Lqn?ZYbg3>dx7K=NDsOa>3ep;G)Tg+P zDP8IV=$3%ods=`F1FVPuNC~{qAR0n%xl6ze&3JQN!O|cwDV{1*R5*uxvb(%2Y`vUN za?$ara8^1A^vi&cuk_#<7T>4d4Mg-F5CtpFtjPGtd^jPE@q^YSPktN?4{5yfW_R zdGvuC(_Z;Y?3-Ee!iL$F`6=6leMXX4k~TQP?bC7Zvb=VKQ?{=5*14n6$j6xQ!Y}99 znIYe2sIV|GrO6}Y$gbF^&5nNE*HVZsq{JphYS1Orxc!t2&;Mi`HzP@k9uFEN1=*Q@ zMfuxARb&3sz&MkYr3vfhxYZ*6@8tnJ+HSW@7PiNHA$eEt&LqejF-zB16oQNQi64XD zs_Wkz_*6jWbGUw9j~_GoKXqw;ugb!zAej97WnzDSDzO=VR@3JEjL8wt`QjP(qEB2M zizT)>EM-wI>uZD@nU4|iPRg{QC-279Q=7~nWl1VBLk%27CpX^Q>aO|{;{<5`&= z#A~>QfbQYySLwmWaMZY-g|vBPSt$<`#+%+`Q?RhzW^_+-y4o5ZP}t*5p^EP?cXJi+ z?)|#54&DbMxFp|Ewb2`&zwg8mCuDz)=jNf~T3H@`VcOE^pW=j*OCIqXz86GG3aX}> zVx}xf)PLZ3*Z$mpC$Y~J_tXoR4`z=;N5^9pm$qH{szZtN+%Usf?it) zf`X|sG!~4RxX@h$Oz+~P_1+>P3sr!_V>;ZM^BO992iM$JrYi|u5heerVVhJ~O3lbS zEf=LPBX!x*gzzG97IJeJEk&{b+?Rm~GwY98(0^B+#au1#0kcr5`#G-w<<3%roLWIZ z+CV()iD2$HY8#NvWi}xc)CmEUymGg(>C%xJpFIqzFe^#w!}5WGBp+qFo(WP>%=C|BJO(Memb&4Y#(9 zfAY<}T1smW4b@r7Gc~`=bxGjwh0^mKM5rv2{IJ5jlxoI+sayYriOfq?(!9AepsN`! zi~CG@L9r;EIneam_*Pt8f81w2Go@S0gTPm~`HDJadb%tXfi3JG_7G4ER^sL>a?Z2< z?RCnM=F2bD(AUYgrf2&#Miv8#KX@Mv{jMpy6}iiQP3*b;Wolyobx%(}H@T1Huq4a* z_)XSH?{Xzh+Er(-r@>d5Fy(Y*x=suiOvme$ft*eVRrH8(&{?qGs9AzMngeNcE#7~K z@5Ml<7JqZH+S7(=Ih~+_v_)dZ%s1wMP7Z^$v{Zg)uSPEmvJvf;L3l2JsiOv;G7R?7 zU}U>suWULX&qao7_wwHs81Jvo8#Hl4uvoN8yULLKoOB3|Z0&41PPvudw>)YvJQ>Tw zaw470UQANzUhiC3UihV?G9lHil?Or8Qd`p3tLy))=byeG>FUfTk#nx(HKJNe+|*0M5g-QJ^E(le*4WAR7zgl4Zq1sSGw7cA35KL`Eg7Q5W|}3TtoBw4MW{N zdZqv>u2`Wh`NG(vH$0ruMGeDu`lA^4mf!V`TCe^V?|7-Ds$$`8?v=lu;sDi3~Uf-;?t@-cb`CE%^ag5ajn& zjrR#MtuJhFENK@8B@Ze?&bJ*IIk*&(g%xDH=fQ~*0&mOiQ-C4c*D;J|TU%)QP=M6{ zUB)Qdt89&Yi9muyEM@8JmEP~@v!m@BBajedr5@;?)6Spi0CC4HXO7B`*-7T#YqEhQ zy0+J!DWfHt$ze^x_{zxwPGxoy6SkOee@+>4nB3Ou?j`hWL-y_@C*C$ABplvBea_h7 zT;t}Sz-O*y=0Z+Eejt8<;OgVTQpXDNRkB~Q8T0h4khK@;mf8?vP3$XX>NYt{0H&Iq zb^eYvVU`w7H<9U6Q~5$K(x&1ui_2c8M*@OeBH=S~sK@Plv;w{(Go8+nn;oyiO~i&G z$REZ7_PnLXwLroK#afJu2N(f<$-x~t5RrO$``_;9N+2@{am==s8hb_^l6L#GLK&ZT zI8|=B>!rfRBfP~pvCad_=3VhrcK*~%x}sR#$VGw}#4gyuaM&|L;u9wLaE+dvG`#$r zB6M?N;DI8179K{v{#-3D{JYMWe5Uf9^{KPUyviBB=h*xx<#*J1jhTk;2CPah!W{=~ z>s+rZAuAz=t=!<`#P3XM#X>Kr_BVOv@1)5B3)6iaJL?&h*VAHGW-ojayA^9BlOLf= z>Mt9;lkLh`?gJB@M&(YHOWV@YI4RvKC|C#brTjyS8=QJH)ibYAx3_=(`Df_>mL{5Z zF%I~9QTm@>Ex$f_{9&hF$-=pN5#(R}Wl_ri7@~e;V4~qr(*{ydzIN0vpKE3|{fVG0 z)pjMQsxm2ezcJwy7B2NRhkn2Ki@osC-Bbcu+c$Y>z|%apX(Dojma+$lJ(QrK%HR5n z4=-jTzF{ji&XcvDtkZ4A-u^MEa{1(sO`d7g5;XW8{X?aDG~QI#OxB?f5N04jL6WcL z%}3~zW&E9NKM%f940)<_{KdbkY93;d-PpvYQEaiXEf(15piD<7iUaGCVxo&IjLC37*Ww%_Ze+>XrkKP9NuG+Y&0O>^=~bt3hfk(ICy!Zxgpv+~! zYgACX$c?_fv75^?ToLuzpQ`GZ2x>WB{}7J+2fE2F*2+=b`gd!T0Ki@WU&v`AMH}04 z;ce_cghi7$tRuQESK65e{$X>3hvxOHU%vitRHyeq={Tn);*wN44FWtT=s+il@$cHAu+$bOQs&SZ?B)Ltbp&HcmX#-PKVA z-!7qHE_@>@e`VanTN4hOM&TS#OgX55P zt91W?M?Ds%gU^q%W{jgMSVqZ?vRfP;#q4LuTs|5sFm-y=N_VESl=;-SQePAL6#w#} zboBS?wtdQh6RE@mjYvg90qFS$^yC_{=}Hk@1P#I{J#%%#zaH}Ie4h&w7pL=|5f|-o z98}_1u-(1Vtd_*3lv5FY^Ok$$L=C-<%wgrWKYpxOtk;JTo1z%zBKd5l1158=SHyuo zA3h-zU$Szc{xm2ZPk+pwdS4mDOXEn7llM8Vde!N6&=?r*HIYnZW29Uhd$VY@nOp(v zuaS_x;Oz;oHnx!wW!?m#LVPdLfsC~Kbs5tTf4rQS^?@4-m3}KMZ|7v6za7x%3z}Tx z3SC5;3rAg%2QjWC^3=ENMTwzx9QiaVP+sN;X>0NJC5(S*dVW&cI4I0Dyc6imVZ8-o zf@Obn-Htm%x^3HXM8|Oqq@?y7q_%E~p4J!5nVe%DQwfY-1jewTtfZt0gJ#huSFQWf??NxZ%7n==yVO=;M)gc&l zzZSC6naseLWhdNUiCq3TP^-D8L)}twZtufavPLFCL`MEBZT-Sr`8-{fo$`*yNtUJb z)~RS0V7d>|7~Ao~lolORjA}B=yjFRwMX|bu18TB>D%&b;U$g|l?y#7m&7~i2`!2v7 zNbLUncUGBoT0qy6hXbZU#;)VLz%0Ar9GnQp1EmG^wkKydJS{!GB8MW#D;$S*gW9f` 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

5hS{Yn;>PWxw7NL(8sua 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

=tyO(XVTjuVyoS$t8% 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%0AYA!INWAN6I-|7snciR{2$N3{=K{5 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�T_+`!3i^eFisSeN9o4Z34}3Ek#*g&`4d%>W4py?*!iKiyN) z;Q;3^{@i~9AN;`k6^}{}1{##>2_ zA3X%&R-{YQlkm*DkJI*v37p!t1x}ql7wP`fpMMrU^SNhXz3JC}w^nDNAi!=|cmrMHSb7mUG7r?O$`#WPI-VA;AyD#Co~UVU;*O-n<1J^gnWq zvVMk}Z37-3s=ddyme6a?Ptox3m0M~U16cG_zpqvcurHl_gKpej#6x>`!DEjcp#J{; zxQQuj7=G`Q$K#*HO}N?O(|_^>{PGL0tZM^mNFV>5Pr{G=$VcQRkxu$W=-$hbb@3Hq zu}R+A3`XA*)eqZchN}zlPW+#BsdQX@4-VYn{d*uBYM!0D49~szYS4GEd&hKi{MdGB z8b6h7bH2jLzda~v{w0V2>qyrAXIrNR7ExjDixZ}0^o!NbqPL*Od1QSGhWCWmdvM%I zdC~=^L40TOn^<~C;?!9^$b5{wZ(t5@;t%$QjKSzvXaB38=wk%RktX}+9eKYruCquR+J z6H|J?VCUfbR^&4sspX3s=AFf;=I zZebZUKB%235z`%9V6(^3m9H9rZue%dV;a zS+`g)3j3HyVMRm#YVS1BALFFiZm+4};!EBB2eAI3BHcH_aB85rpA7yeJp#mzOWP*}4-e7kLo)-eB@n{483 zA<5Me6tGnv%Z0k>P*1*PK0ZsE-qWU}yziN3iVX}jOrPh$Zk$oSxGlbeAS-iVcy~OI zJ>*PAwq(jiJ}aliGbgjEVCLhfjpbx&An~Dv4}{-jp~o^84o2@DE@f`_kdj8M;Uta%vm=1L%q^Kc*OfbCpiTiBV z^gnOPql^fCEgSKkyhKT|0};(Ytb7q$JRdRxK?9-8Y8pNoTb41x^C2h-eed4619$J* z0pZ~6xi@E_(hc~?p?$D>*G^~8pl#1G75R0XkXqJP7Clkmj~flo+Co#9#9yMP^l9`z zI;D{HIm*r0WT=>2{Lk?ikk#3_CBaD|4m&`x6eK; z%k<0pb(ev`thf%LQlI?)-5$Zbm*r(d-WEX z0iY2(O}(VDzE1Nz>8xA4$~-g-tC^F?7AYzD4dbosx6n)*-U}uxR)2_ zVRj}0pQ!g4bV4u z82SeGli29l)^dIr+yAkR>_2jRuZQ?w_NT>0W6Qj#TaW+Qn2h>t$*N)dJYUA5_7KwW z$R64-FoCNp7hv(uDT5=s1%W{_(kRBAliq*9cW<+ANML-WUg8Rymk9d6=NEK0|)k2ef!&|ZNMmsOLgT@!OClvW=x=~ zDv>-m_(aK9RNoKC#2LgL5`ft*7sxT4-)5f$S%RnE**9bVKhOm-F=RT3he|Tf6Pd19Wmn6|TJE;n{& z|0&{+eFv23AdrJK;@N6kj(B}ph=&KN9GuZg>>8&jM>(vK;WaA&@fKAM_8v$;e$7j06#^00z+_Vyx-4Qzm|Lxb3d zC{tduaamkrlOM&zBKc1BMYibwK@0EpSh1}Ez z7I4LJhQl|HJ$AH`_xs?vue=DK`}`MSX2%pBtky!qt-e&QA9%QJ9yIj>W{w!YWjhUH zDq**Ck|a=l?Mr?)>A-SMEgawt)3Pn-K+7seeIL}+e-~J}{gPhXJb}k2n*JK$Dzd5Q z6FZEF$KgJ^rKb4*gNG04%*8o;>&n`DuL3_G*}I1(H*e17iyyxmM6vz{{}<-}!NCDM zSlMV3TQ}32Z(V?e7hb{b+qS~aoilOoRzn+&{12U!oWk>M{(lGXf4`|oY&>OqTns2O zh(Sga1J)4CN(NbUrn1fB7C`}xaVt(z6H%tZ`Zb%8z=$=@8JM6sndioEB1R??1{uRP zm$DU_6d);B+F!MJ9v9FT@7|3EbC#D^G2EUL@=aNfpF)V3_M}g0SV+tbTFcT2BA#f= zOh$NlBDR80S5?>wOW3BGv1U9oKs%3Q$6%C8ra02YHFVJecIzHiM&7j>x8d5&Tk*-x zsco=%kDYNIU&c)yG*}#FBnur9xkYHj3CglpDhA%ZG?=lp&xqAv0r!Re z-~jo#Wgu;zitZ*wsT-A;les}?fRPC+@d_{OWH@o1P6f}S^l#`>=u2^nMnO?I51>Lx z@Y}^e5E_EDZ3k`xi=yrXWauN%R`?5ta;{y!2{&)wp~;CY81gb;R++GdZ%wh7Gc11B-{$V+6_(|r%Dq5S{5>G z_LxXpkj;2h3vMKSl5$z^{Mv8)yPo>kI6ev=|CL{)V_}oA(XRy16;LO8tlZkAC=raPi7KeDV30;a~j5Z}oiGBHWb!Op2k{NC?+UmWl6{lRD9U;LZiX(iw`9Gv^HkNuDxi^?7wgu-Hz9CUQfIwead z%I7N2th~cg!59RHo-sBN+Ye6vb5+d!glEB#o7_G@^9$E-HU{NS!|s{scsK_@-^OGe zs0@5(`@eaxUjMHjUpi#-Q8;u>ZL)3Ro;&{M8E&$zIwWPYjC+ODF)djU_rajw!=Tkt!ceu|>JsjC0pAAAP?UHRN&oXao04k(TR$m1SKSRVVP6097!zQQ4|=^FCmeG4 z|NVdddAxbb$}`JPZcbQ#vHmxbi{$HP#M6mvg_L;w;#HgbENpfHndQW1bsZUh+ zr$&C)?SIzWM7Un1hDQGbH3s>-ztS)+WLrXid;33=!JVZZZxGZ0Sbw*sZ>d+`7KCQ7 zZS6`QDN})W^p{Hh}TtSnhiHp+87?ut`61T!;0)(h88L zV<&i}5vD2N9pfmrGZ`8Qhi{&G{21)nxdWcB?Bq}X@t?u&>if~dVIggpF{%4Mp@|ENnWCi5X0yn?|k>o-eF@;&!o;zxO~fwipt-_ibL8>)=|rSX$( zS8Qm@Q&`0R*x%1!EiK)}&p-PdT&Zk@smfOPt`B~9+_cYp!)>-q{0}_OI{lx&OFow4 z<~W}jAAosb4f5V5jsGE7a|qG)Z)91?a=b0Z$NzIL#oX26e^y>mm-wHdbM=*3o?89r zlZ`n66#5-X{a@Js88#B%u9N-mc|*!)dgqC!O z?rq<+2~N+=#lJFH`ZzIr9^R~M(qnt~;NHo}8XrM5DbgJpEieWJ@@`rme=`0{{E5b{ zRT@oOiy-fr$~)KKQWanMN);7Rt#ixujqdw@Bf=I>sm_nY~S8pI9;t-1zLLP<&*Hn={MntoM`Rv&JlvB6~=A6~JbnC}fT-7`r2De}U& z*2h|Xo1gG&yR-GJUJ3s6@X&BPoO5^iZrp4g4(6PF>kF`HJluk~e~p7VO=F=R^89lV zdSI9WzzBce0yg|sEub{!d(k}Zj~ZaDOEvvvHhWgQ5Gs`gOK6}mlPtdh!?`|yA=O3VxUhedZI*fDegljyrI0tBg zu^yQMmCiNzsE0lQnsEX}UMh2c^$slFxdfv_L$GJ}kxCx+HMH8)R+AitLjC|)nFNOR zu=t+plKbogIn?IJ%E-?1Mo^at9)c$BH~PBL4L5IHg_}38Mm-TyxK-%x@-?`B|E>Wg zw`$|9wsFJx>Iin5+av(2JRz_+^y9MFLHSomwgwMFtAAf*TW=tH3#K#ilr|BJ zMdY3V`1oHao)0TXJci8rBg*~-jo)be&hrHOM1TN3e#174v;Ps)mg(yofzh!eG%&ae z?=HO#tIOx}+$h$Fy#3%(^=PH4Q~lw{*dtX;XLq$!It(?cMCK}_E`E2clowe^a9aHv z_Es%iy#`mWUaR8#eYkJ$9@w;T%tNC7Nt!1)RGsoN6%l_2A~#t?Wc81U=Np@o=h4Rh zqWh>ZGt(m1W^a+rME0F9l@$EOnalQb#FMPmF(RTL77yby`sL=$SQQh!5b9ntHM7&$ zf#ZfuMVKr<9a9c5X4se)(>oi)x(*(!;TRMDV?UVe9;UX~|A`J!89lebAq&AWqsOES zYV4LY){z|u6aPn+9BO08#AN>^V=Xo*m#b#0pNxoN`eIz>8-wKq5W(+Gw4xVm1{mX^ zjQ#uKL7V4Jo`U6j_n=c+UR{M(-#iC57H`M$Lj!}PV`Pc}GNAzm3*rqxpuX(=hZV2f zU51s14@JgWc~Qj8zM-iBsUovOL?pgorP3dZ_wL8P&4U9lF+3F4UV-YiAByTvH-v>a z1=AlNxZ&6)7O_l@X_Sd$bjBB=>$h)XI5-t<)998q^z~Kot|{0%Jq7*xQhUr}m-wGs zL$C%cG{pb%GmXCh5m6IvZJX=b|7X7w)z|+loTRZ#EaRj_ecMh`zZ{%uB1qQ;)6H;2 z3m^DP@58xEm*MQ$x8Ms^EPKzMopA8LJ~xIgsT{BLLng>k&Ozz_Q(?yxZI|DwbGX*Qy1>sBFVpVHsqi9vX%{?wu0?nMm*@Y@n>XQ;n>WG2!Zo-!cbRUVd>wb~ z+(Fy7Z(A4t7ce*C54xvs^Z(n(|NYroVSCkLI}r>xk1QHmjR+_hi`WXP4?P)cV7<8b z$p&tMB{@(ofB}Igw&?>H_EJ@Ni`a z4#2I&CAfa;Hr-xa!p)V_GdwhuCL}u|0)uIv)aaq6{t5yXquB};3yWobhr4C&k*|ud7>5GLRJ*fTd#|Pnx5I7w@c?_N5Nms@fM}jgYy2arQFv5O|uh z3q-Cyl%9qE9ZO`|iurAw5E%=X1z1xEORHuMa<}Ms$iQ1`SLjlM8<2^$sVyH0D&}v! zsil1-EP-rz;EB@xrBfn7?{GY=FTba{|@Pr#P^6;oKWA43ahpY)Div^}3lh z99THQWm%3GDs+|u2d`SmVKclTw4&0{%N2#&(Y?wUk-nMkbK5Jct9as#%1OSxNLx0I z!=sNKrGQg1_)=AD0w4e~7BKSBw9P!r^;Bsx&l;z-#w%TtwJ?ku$k!iA2e`PhZWK1qu(grJ56#Z#jE<#Xpq7t(;5CK2Nz-yY|#Hi zx(Gioup#o<^!9CV@$v$^d0{TxiUzx9rs9E%kA8R(-uL8j`00QAPvOKH-EWNI^qJ3p z5uQmmsR(@we)B^0cOEuu=!frq-@9ph z*tj5X1oE5tL%#5%!6RmE^20yyLHgkje=q*hul?(I`%N$DvlXrU_>X)yCjecmsVTL3puh7k|KB(=|(MD-XHG5p= zLG%KY`V5L7h)Q_Xvc?9@bk`(ryC!Gn8v8$Nwhsp$!wUksrIUOUpSAxBxl*RA|M-q~ zZ)Y%$jgNzD|6_5WKDTx9^xCpLjAv|g#1fmx1~9Z|ZO2lmkJG#X}&JY=d zYFB#uzi11-Mm=mYQX3hA39fhkki4w_iEFV;EaEcI zV+vK#)OR$T5A!eEngptQX%It3cTzlvhhCy3t9hG ze#!+9%WvZUOM6N;R!TYj-;kVOqN0Ay##CJ5{rmUn#g|Xu zYo|`bmMT8^S1Vg#dUCtNtxYZuu@f(Hd_$@MI6s$3liKQ4Yno?K}wH-=F6ZR>MmzH?nmpXPa4A06zVwz)wDTH1uBIcB=yvQ841 z7!{GDQ5_OG8U*#XYW)pYakFZZ$0Vf~AVgAnz5;>lij`FBl>Ak}u#6exE_<~~2%=Q6Ue8+qzD6?-6Hs-WN z_UBU?wP{HX>t&xf#5(0Z6@hHA(h<*o`K$2qtEb`(786@H!~5U& zZg}*_Bf#5%Ne7kMXB_gZXHdu;{E%tL{HOgAc~&C;X(+vDAe;Z9FF^Jv^9C~2Y21u4 zdod$6yQX9StMJNim^Nm45)` zsD%@Cn(g_*No_$~+RVn&Liq*Q{M#Uz>&rZ)#)RhBf<>?YdH#5eg9K1oq&|nqWq2QMzQ?S z()C4RX-LYK9R$9y|MLqoTp2qP7CXlNw^+&h_lQenC=xBE4W1ESiSz`ZIN^y-Q!pA6 zt0ns%2fj_-?9) z?wOY0EtKgQKee-LXHQ!|snO|xftI5J+9o`iN11+;2yLEYUnR?0DOZ1LBv*5HW;`B# zZH0;vP(i=YSkwNddgoAPccTaUyc<5sX3>4u=gN~Fd)R?zI`c>K{3Z%=^{`2nU_l`* zH=};MSmfDu>gnNwd$4%xLS@rDfXRtz7#<#jwUhRa=C^&0?zx4^k8dsA)s2gNsixm+ z*DU*?f;N@=6CbZEFTwo6g{U85Ze{DOtloyz>W}E5tH-K_#IJAY7ZH5GBARAez}3aAkzmxS~qNG|Ks+ZMYwR`QU%jP*j}w~Y~Qwx`ubWz(CNU4 z`bLRn!~bo;i|vGrmJ!n_lL5!gBH*6t^2-(2UQdTIgn3cIVQkOKBug8H(X+o1Gh?T% z?EmwL`v@QcT1%SaiqMXRD9U;ixV4Ks(I_-6@fdKdKoYAhrh8pgyirVWGO+)o4|gIizpx;bjd;@J(n;{w*Nz)=|xEfs{p!`k9D1FB^di+ac7H+NF!<(zC`PLc6x5YKWUvw%Zvb8DF7lrZW zYNd2K%?%sA^W0Fw zJj&Nz;{RM03OWO;|GR+QkVib63{MmMnBfy1v16w-;{Q$0OFVD@3Y3`qhJI8 z(ef&f(3rFb;_xY*8q|~sBO)si(}$%wrDLsQn&7%I-)jG`sIEIrGTVOCb2xQ7zq2lPLr)1|o zwW(xM{eJY3-VWq^`g32vAODe$a9c9o+$NC;P8kJ<41;A6Ba6Uf^1w<1Pl9FKmT3pV z)uiXn&%yai^Ds6t1W!G71h;M)holZjd9~ypgA-CYuP~bpJtEgVtus6|qV8ZkbWR-1 z0f0geI-|i%KEC$GnVxRw2sfVm*pK`W*UMT;HvljniC$1$Of?B$@u_2t8Ml}2LT`y! zx$%N7H5hPY`mr)sWl54#Wa>EsG3ySd7i8GO!JK`&cfgiSV>ml^1ztXRnkpTNJEylp zc$@ui{>m@nkN?ci^>ir59*81C_Y9MT)#%+O8=(WHz_n)#>qbY)>IgAntG}bY9>{qy zAIQ;0l-~@0n?A&bb2>V1a8dowgFtI1k>6NsXuDAJrtO0M!YxZcelrg$UB@!BRdD#l z6K}+J4)5OshxYA)Ab-UU$@~CT|D&@kP-K#!#Zdnr{?|Vhvp@bjpICD~Pnx>oH+ zm3gZF*=EgSC0d7*Y-x_=7U_b7$ZMmw!SFq(J(t=jk{Co5=j1lcm$V(*4S~wT`}WZ8 z9n4Y(MJwCWoF^svS}lH=hIKX-24K(IeQVl`qFE-d*?Ll znVF`)|Koo%EO_C+{rCTItszw7d^v8GAFq5vgJsJjqDu-4_AYM#tWTbsbBC0?{SU^j zI$`|vDKjeosFC2n4vM&1?X&Ber$&coks7UKlj2b&`bKr_kV9Z}pwB(~RjJ!8g+*~H@eE-7W^kW|mY|FNZ%QZMINQ4pF}`tA?8w{ysaP+~iv6D{ z!`YiqZzoTPmnG&=_;Tdn{_5X9gtgKi{n;1c2P^s}(^k=;+W+ahmSG(Z#(y?)*v83_ z?MBi=23_s{%tKV@Q7YqqDsyZ66>i7bwq-L^@doH?oIJ&X=-{PBT(6npU4VVU`uH%)IVf_%F3|*HvAQS(i ztj}6z9H8yXyovnQzQlHO_P^zSrCRa(%rg{C$#Vzb_(wqi2ycyj&m)In+vZL2Hk`XF zE9HpUxq-W@tMJ+9pO0@GeRR(r7>O^#v2T^uO_=$u!Mr2a^^W<_j)j{{9MN)GAHVI^ zQyBtSA)9_>S;dD@@{VPr57Q}Yd?Ui*WZL&w=c)ra>A`Sy~B;rJyC~T-FTh8`)5r()@%+} zLYM;9N>pnbi?-}R0{uSFKMd28kHp)BF3-OX%S*#BwrM}~#oL8!9Rv$kGY+uBh*ndJg3d`{Rw#6&{M(M-*Q!HNKbWKTMJe~d zLEd>*ZT%)L>_*ddIf;(G!$F+uH|Ak^SznqJZo|2|d_C$0t=mE0*r#OiY3q~{779{d zOI9|QsgEtCR^JG;2A=@z+hTG-><}{m5Q7bM{mrefWGKCj30$@o|BHCFBxU?@nZNu* zo@b&Xb1+0uWa}H)+v*#Wx*6%qhJgu~*#03{UAaI@i>ELi%pot!lD+O}KSz+_L7qFe zUxKB@*J0zvr?6@-nI*{*B^MHcI@hPRlU=;Hc(?L#7HDyC3Ab$70@G95tF`t4vE{gX z!5jJ*7iM&{vn^(*UlCcZ|HX-GfoRcWV}rPaGEeH03#D>6ww0IHfafZk;<+Q_uE4k? zZS!5`+MQgH%nnGrmNN0A?-AIUi3ytAycyoQas|)KUCM2M`{Xox{N1^?ir1D`(m@;or*T9d6@7f86U!u?H=a12ha?;ceB1)z zK{d{+cb8#!^d4-t?IFe&ov`oHYNbOsDF)US7H07sUM!G(Nm>84u>=M&fn~)Cdj|Xy~&`!C%?(x6kdy!a&H03e8E?(CV!^^0r5;id3u~YnC{ldn5 z4E6Yb@2OT68`f~jzBsSHzaI`A+D|hx(|GROTlDIyr*O7f-+uCm$6#n^sD`hyt%klK zkD()+4f7yn@-u4qUI;`-BaCO;b~#5-kIl(ki2R0PEaf;vUls7=aW~GbX-8GPFKd5W zSh~_ur&REy?YHT7BP`gk{1PU zj=y)$uF9U9#ETa%#RGMBs`cev)!N|T;9$@EpYtU?xE2n}w#q`^=KnuG|M!EANRUi6 zI8C}OQ6Mmm3Y!IN_2%zt6!-;4HQeps!OTpw=UWyT&g4WbuLPeC(4@M?h|E7+^Pqw* z_2Hc>*^rVO2hU7WOkiba5PS#N*Vh+rd8wT16}+{$2#X8LG(Iwn2K zvvB<;-ne-?yonn2?yLeh!$TJCCgH&C0u^)tWRA}uva{{z%@88fcddh5rleVEE8_wL zPqqz|x5f&31%5cJrnR9uV{lY%FeQkozxq%?bYv!ARY^t6C&kgv$%p z;PqQ~U~=15n4H++=n~=UkeUq;2)BcTzqJl`giX}p4fx?L*U-cd>aBWu$(!cED6{-S z!U)_J7K$Xp&4G>FJTi~b`Ab*e-1$o}T5x#ZE)1Ji2@07461)+)ElGtb8XY3=B6GT( z!$KZ}fu|r6lsc@pWOP=xZZu!{N5;g+nY%pi=Al#i>7V>Ns+0_^=eEe=MEEL?pOSt| z#uYeu?lu^Oe@^yzt4tC}M*nAhTJVa}SE*-pE){QCej&Qeb*a1%oJZBBjpJ~<`nz7~ zgo~Hv;pCY&VWu)V!;NV__tQTGKlU>}2WzFdif34-W_(#=w`M4j(f`oH++l$Su(p8a zWBI+5J7I%)FE?0x=5x=&?VpZ3Zu?2FqB*ot$kZAS8#oZeo>0Rux7#WlI#k&qqb&?i zg(vlsv(-6ac&=6fvJ-E-3DqZ6asl7<=wTeFpnf)>fPUz2m|lO}4ms%<3Wk^!0Wh-d?BLcd`3zs@()Hrh`e zh#Xj8nIUu##ul8rNA~Z5&EsP__CubQ)Su$EolX?rCyhe8PR|_wi=PE*|5Nf8u-6;q zzW2MHVMGgz)_9^0_CFN%=jHjU;m{^tzi|s5J#rA9eEcX3Y}inCN6OOy zm8)>N3WA)!cnSAcfsw!e6MqXnS>bRkc@t7)BgETTJg9~JufA!r|I%Y|h&iwz9etLu}awbadbHa@Y^AgH`}y5fybRCBgg z3J2Dne&TU&mvSltHj?dZQzxei;mnG~(Hpnbpc_j6G;yK&-)r9b!|A{LiNDEqoA+;9 zEok!BKy41Ib6EzI;0piGUFq$%o;S~5gg^SzFTvphdvWKEsSHjnsnjm)|K1b&f6CT# zi(tkI*8Z>ly*PInKK;jEsDjk1c&x{lCoC@ARhi#Zz{JbY{H6x|k89}vPyQc&2t6lN zL{!=kHT%C;G?O{x!!DG03MJ}GAIR%w5i03G&f4jdpZY`iq3{1*mNSTIGg_UQ?0=(! zo!&4yJ z0z7u~5RQ(F)Z$}SzMzl$_}EJIEWgFn7&~I~iu`g7`1Wi3FZRD3pSR7*_OOJ_H0=Bd zK~2Jsm02#}O+`Oax3m6`z2Vcge`$}5 z6%74kAG@ReC*w;o+|mAL|G$C%3p|Ma$6`Uo(g7C!ubC^gmGzm0)!Y9j4sB#7b?_&f z#%|#TiFrUhS-$P4|Few=8b5&sI%b|{`zU9E^}!rnmYo@c2MYYjeDE#rrT$kb11@gb zFkag`?VX&&y;D;ZHmB4M<~UgjaDIM1{vF-32OizKhfkFPr9DPTe#O~u8QWSmFcPCC z9DrbHDnwoQ|7{g&6mLt32Yq>PT7Z2VYTuPl&&dra( z#Qzxn>fg6!FT$Tb`{l}Rp9?Qpf_EK12H#!z6=P!~0BjLwnvHWqBzNkNiMu3oI@rl1 z--$?KcX2};|ICLOj7&l?FU;)bDM<*3BX4IONPLxXklM@}*3w2Hxif_~F^O^tutl27 zh$eCen8?yP$PmE9|A04)L3)d@*VCd_W4mp!LuCUsBf;dQlSk#j4`Rg(z+tTfh=2!X zP_c!)VJPxdTi2yf432~z*>ne>@`%S2Wvs9^fykwdJD$DVEy(<3gtfB_O9K-owfrA$ z#|eLD-#QQH-aHTIFI<90D*rDmo|DFsNp7$=wvbg?yqPUyDABZEV?!`vm*hC9J@l38 zq7oZ=rI^HllaC^=GdGCr&?NAvFh@i8s;@=urDp`C&tvfm=qQb?5T#pOTp57HHRmZhfbkYS1_uUVL;nU?y|)@~MMwut zPQdLumtcDGSoLfOdV{;$7(2Dlti5!LCW&+so-Obxw3$oiErO8c9oWss%`g~+VPL4? zvB(Q}*)#J*yj|$p{8wRcbS56msrQ35DE%iC&#?Z<5=z**RkYdEU#DcBH`T8nKCc!AG}x)*r=%&R$7Tv^8FWlMS(1dHeOIn(5yAryXQ!#8MvqSiLce>V(I+bRhFEPvMfO7&LmUWetS zD=44?coABWNDnN%>_Q~{EE~Aq#hsE528wnc?zFn^iN?NGH)M^bv z-_SAW8#oZFBr}5eB?SO>O+nYMGYENRe4N?Yh-`z&Fl{V_;|tMnbJ80a4(oG6DTGP# zU5?E|3r6-dG&Y`bg1UY>IJ6V{`nSNn)r+*W_iy^Q}!%)!L&9zJZtd=eO`@bdi^UE!=55o0127~buoA^cpj;%<{BK^edzj8Y$;aB2$X69B# z)tArMA;)W1AtphioR9_)Q0|kIyf@}GuyVonYp=m8&0QG#plEA zEO55+_aEE8FCX}bSd(!qKX?c?SMF7x=B9hG`x)Evz`#o2e6?Cs=56bW0oh z`r^xC!sdOd$1SykhJH<4vU~imP*}y9hHam^^abFJpvFWE@jq%_ODW4Wj-g9ZwG6^z zvj3-m*R^lr#qnqO93CEmM;|=`d-m+27hif6KKJ=A;>^r696YeMdN#~>5q50Aku3uj zChM<*KD2XFrfzs{Y%jxvMWGT`uAOFDw#{{=DF6Onaeeft6Th^$5oEGfP)HH zI*rxAVdH;go0eAY-G6}LP~GhO6}puPVt-~+*&2<8spG)sBgBz8kYd3Gh!u1=`;h5e&L0dM} zPDU#Yav$sk=)$wm8UHfeAarc#N%07tCT$zc4>_NV(Jf<>`rctD;>BO?%b>^6sbxy5 zEHnM*4WJoPg@@P(*Rpk~!*r8r3$-j*LtXHQVoC-%OWy0+^)gR1Xy#ZIR--H{tZo}lnR>-uPr%5&| ziY$R164ifNo{Z^3A9z3f=5K$ZYdc{B=zsX%{}cT9fBwTFQ&~o$p`ASQ67Vv3H^iq7 zFzRN8ME8hl7(%8$OG{O{aqAAeac&lumX~SQ^d#)xJ%jyyeYuy8_|H#;aw)gnY_u6g zSrl+Tnf7y=JyQ%fL?$35*DSN12f=eW7P@%pN>6BhV zgm$SS9N0Po>rE`_bH`YXDIQv|1;9$3JTYPOH-a7tWq2%XrUkI$L8JdepWy(`*yspd zS-6U4XD`P75ANGT&pde?zw|=)4cvhz!r%DlNSrUUG_SnsbZ?V^*9}3=5h(P(4%Zl3 zcFs7z`uyMrz5{;u_dngWyKrda-OIZ0Ls{{LuHn{yjUnZd&Tk{14#l0Lb>9 z=zjudZ$eF{R{3LK5ykwUt0B4d%P zJft)RYuB&=A#7OM;XF4b&82F2o{bEQ-;GV04HBlu*#2bY$Zg-Y73Qzqpz{|l#RCg_ zcJ08R^MsBY9QcCXEI&9qxJO)BIo_=Q!RvGKfe9;Ha4q}4*LlRIa(NRC(?>pJ!s1ZI zO)Qf&fS__5K<&nEeRW7(?f>d~#RK#JlR#|0OTYH7*KF{!pZ_BK-H-hc8hLDOPH+Eb zFl8M12g^{g5gHsQO zr%s){s&2W3+>SPP-}?~n*>`~E&Y6W*zwAZM#>8q-?m4lq*8eYVba!`SS)se;6)?6I zw#jXZo;`CqUi5-%@TG5ld(?jH+P9z2J9lYn15@4=|1A3dJceXV?*CJa$!*DE2&+>K zqgIk0p^1o>l~KW6>eTVF$N@zhrGBlfwkw9`6d!3@ba}-l`U<%2nyc`K9kk(2KKhL} zy)O0lJpRc7TO%7ejNxArfmF^@eess+S+O}gCU$*)J>h0+k8b$v< zZ&qjZVwD&0CXPjy8>Y+ZJN? zaH&3#+sgiTN^{?S%6hHr?3hY>8%A{(#Qz7>KTY(K4{r z>RaeY(n({ZecmYKT@oNxUh6xcK5}`@=OT%{nA=lSrliP^?zk3V+ zWvf@Y4b*si?FM}3-+qWC3+9y@KHVgn`jyd!TfHwdPWo%}f9n4m`;Q>!=>S1}sP_JWAU)-}|{}cZ|g`xg` z(`31H9BseE_ePcZRsI8yxj)(9vv~Gw%$hQ#JS}JY{{6X+mXvkdw_!&yv3mZZMOfTF z2O&cn8e~x}8BXd^Qdsy?ewY4Pena$2$}id*9T($pXdj8=5~nf~pd?86LrH2k;>f+2 z!{%_OL2-J*ox=IR1CL@uk()SM_$G@NEx-$k+{@hlSr87j@~`~TklX|tev1A>L?pgl zRs=wXnRT@nlWiwr&q_-Fi=$sok&BSlt}GW+dR{;pycH%(33S+6mzu{nl5=(ZAGwG zK^Fi~{f3A2R4Cz5jn4y~%BPt`irq4OFBja&Rd6Eb?)$POi;9?WcEN*N@yKIqu%U=s zFDY#ItQpgj7Yc?3VHO@H_8-XR|HM>;ru~@dQof*pxLk=RtjQ81>wuSEN%~GEAH`9} zMf;ztMKbKC^Ehqnzjo8(pt?ixrG)1LV9${p@f7Pid}bz(G^bF{xc!(g?nsK5ZLm@j zZC!Ie3@MNPyci4R>C}`}z`M6i_xALQvdrsllVzvh9cENjdJsoYot2+7%<@ zmEY+-stgP3by*l2v|q~>NSG-3PAzarTjmz`0P90=1;;6U{UwbK9^QrnyM9n^%ITdv zH-nJ(J3>gk6Cl&YX&tL2Gfb+mQ~ayft3`8HZEEEhb3$jV^ww`^}@_#{pY>_*Ro@x?sKGIVuKNU&+oBdztS zv|lY&UaA{MY`eK$N_pRMMJqaT3+zzgDemz3W5*8R@Zo*srkwJ*!iyRjK8oSt0goF2 z$#x^I>aLKHig=Kb^XP#h(NWPY5l7e4m>P&4l{Ay;U?jcfq;CxxhjHEK7Jn;?D&sY- zD>Y|?Nhy4zNz9yrhNsY28X6Z#%qiDZ%}^u^yq(n?MpO}i&9&sQk%=G6%>qr9m+o>z zIj-$74eBowH)!16)isg2x>itk&%$z3&hXGq4d8T0yhjJh$1Bts9^8rHp@G*pnzhnE2OS1U9PVagXO#EmX0(^u6%vm^h!MyTBmNP}44-XFE#K;I>8PblKWn!_5)(_-VN7{VI(^c5CEBPX68<`eS z94Yt7;7-h;=IJ3!?djo?DM{DssXp+pZV*|aq<>N0MFTZ-`ZPVhWh)MMaEiv9>C>zSCezB5+{46u24RY6Y;MtqvSn1YRl9mqEXjFls`ki zNbPclb9kow>DJ9$^V}=3XYW4Vy!lDG@BX8hKfj-rFFOaOO(3@hCKoGpGCZh7ze4kg z!(u=4Hd@gtH9KrAQfK*pQ{UFHn`7Dzu(kggPI-S?;wqpx`YNGH!taUwZ^v`UWGJ~| z`iPX)`g_~nz2r7McCr!2ZLC`|w;#IZvvq033(v^^C~dWp|5>wUQ1OR@2M@z-%vp1M zL%Atu)~uOhl7IQ$Lbp64|33lw?@G*dIzh$O6{%ovI~Hn&A<rILR}nO>w*2$S`Jz#}kDj3HZ8eZ1FYY6`U$iP9Nnd|4=2=s-49V#PplviR_L7!`o*WnOhbBp(m`P(;*V;~kN?W3+#PQZZi3MjeebW90fKd+O zgf6sI>E$TKz!r)Q0VtD3+Z#fv*oo53HbOt;X`yqJdaL}OQjnu#R+&^}bE{%d37I_1 znKd2Lr%iEui=BJ-)BZz;-GWS>Fn&B)y}|7rqY7?$dkyoJ2?zIv=Uq*sZOC!u_Pg%E zn_u&C3t9tsO65UmZ}`VQ!zOhY`P4QegGp|4#8+;+U1X&MdgS;39X&o!0-ZN|COuIE zS+97>4Olp@-_x6nYUgZ0p&4AQE1#qbio~|4>}c>9;oAinD*x=|hb?{D6&V}Tt_G`C z7nC~0x1fSH(7_w>UFq{jIZ6g3^elB2a!1kH2z@rnw=S(ZTD_ZvV$ml_!m4vZ{+5v!?vLFxCNcwZ*Pp_k{7hX#U(n{$^s&{)2EEb7s$+ zflkWt!p7=}GAaG?U?!1&bif~_xIi*|>2qv!dv5=cIiIfQS6p%tbwb;ZfBN&d@*@`` zx3iSmgD5vFnJgm@@;%D6DDz}hm#egP<7RRv^GKx{+LcWdGS2ho&d~*ecijCWdd~;` z9HW&BS1u=~LxVi24Kx0W*eW)g!;sVs8ANOIMSr;K=bgK(Bi?t5Yp=X?wG0+A-4y*J zOW!dR%3$O=Bvz9IZ@3W0g~Yy7)Snf8&3wq*zs-FMp?9>q;hFv-xSLwY&W_!CdBf&y zw0+lJx49BCr%y}z#Wj9|wSjDs2_4H8*-&KEWP^RIbN?SP;en3iUG1s$l^8-d@g+?V zYIUIKX=8__g8GI6#{_hp+bP6FP%1xR?280jc}k8u<)dA>@8QRA-$Rd;n<}-~q=EJS z(^$;&V;le9>csGa#3r~6tfS%P$`zNc#=QPHiSO)MyW_4O;Sc`gBcne5uDAX&`X)`{ z3B{!GORl>XbNgr8I9KJ+_@Opls`dYSdwbZOursfJ7OmN^xqRbxCuLyZM3h;`bPouY zhneFkOVM_WspS5DW?z%4p}xkAknYB~6T#O-;PaAc6F$$rSNwlOS(JMwrcLxvhhk|9 z8y(xqk4k>`O`gOBzmLj)&Zm3ektf)lsAI;5gVe(Cec8Hk280-48ZXFE?(c@FsU zJCSc!dV6|s(W;fSWZ?ol@aPkC=MV04@dKZ`bTPTj1?+WBV*ioGH68nJ>Q@9kCUO{- zJd?GZu0O-4M{v)BkKm!l){%>8Uis3W$HMt@>wMal#f>LfeF&A&@O6y-e;WJfeZxB) z6|3Ls>?lz-3E3G?{f401RF|b~m0vl#hv=TD?h!xqh1XnFo<`QLIGO$2KYbIw{^r-I z&CpI+|3BJG?Ys4-DYhT=v`37C&Q|;WwcBo|J;{p;D6yeZ{_C4w$L6lY!a}ux4pn@8 z)LauC?>3kgHm!X7{`yT@aNyn}IKPnbMGNPr`d?a!W22<0V`lT+`x(}EMf3~6XLxQZwXq*YPM^k_^_ytzx=onSJsvN< z{`uTLXI8EL6_~cadMny((fwqwO!Fa%LfGITc@@%$gv37&G;ZntTb~~=`5^1ZFk4&R z5D$;6-!ke$=^T=h$rc&Cs5FRpqz^~GkF9Q?7WqFz z7YmCmj|$BU|K-n;$yfO*F~{V4m*xN1*r7x&V!lzbQq3o6U;-4>VNym;Olm{xlNt zBT67z-;a6JKjeQ$88LcG?;{Z!fdPb*R|GHD{^`@F`Jsm&rytz&fcsudP)^6?mtKs^ zF1aw!nteY#9U&o#m&GQOGSTTP2~;)|Ivz|DhX&M4iMllWpx=~d+0a`^5xxl9+ldt;m3Bd)_7i^iJ)cT* zv4$-BEL)W&YD&XmTFAZmT4Xcg8=6ThtJ(?9cmhgYR*PWsf6XW%B7at2M4=P^kdzFe zQ<3jwc#!!2svn9+-N|+rU$hD+nf;QSV7RMp}VU{a~|H*}^~^ksQXj z#<(ID?ZfGj5eyFxm3-<>fN`61rcYal=~EXe>}*s}HC0?wC%@kwbApv>HrLY@QfW`2 zM@+c|7Tf{{flUT>T%3yR_skiKF=fge96G!m2X<}6jQ-0ouB)dde6(z}ieZY8sV1s5 zxj>a3w1ku0r%K%v3u+0S%=pA>wphw>HX@dqDP|d;i5^un>*$r@m;NU6owNRNwLPsJ z@vEzwQ#vnPX(vKVf5-a4FoX*huR0v-N_}6f-c4JM99{?Awk~)hp@BWM$!JN_c1{O- zFXgbbHH%#>Z#K_j;Mk5r1E0p6nRAPL=w!6+L8sR(c9i_ebyLpCme&bf;g5X$E$sT9 za;?;gEZH&3d7H8}-0#7`6WD)XCq_o%sR2X7#|oW)9OVN2434Uq1WnT`@l9YVQl?At z4j?`w?Py$QKycb9a_iu(xD${XU2`z5`#jLN87RFI*fm07vyW^xhIn7(a~=R|zC}>e zP3cxasz7Q7MXyMkS~u+ECgT8=_sL9gQubVy{|lMj;HP+ulh|FsQ0@9D*Oqy?Dr1GESX#GX^^i5`;HvOigT8N$BheG*H(lur;=MVz5pV7IgDcE zv8St;yqC?##oMiO_4(D2B42TIa2Q92M`%V*H~QShn3|kn1y0BX+Luv}oH>K-`}UV7 z7L8W=dV6vHlEs)YWr`|@JU5u-3`Z^byal(*{~3G1nLZy&{tt#uK);_i92Q03J&$+HHjJIQHYVfLzy|j_xmg8UdjKweSgYNUJxo`0#8sq$* z{cdvfobzZ6o$^wVfg=M0*tBamj&!iGZu*qIa$}^+LDv*EeXF!3{d`9Le?0QbvT7zpjgaWV(T80B`7GA3Zw??^t-ZoI?*3-A>w?Z6xE4Zuu(d7&PRqoYKet$ zktn{lg<<%E*{*!z3O}RPaBCUgHI5d{on0gzrZeQkJnyf3?=V} zzHKw$>Q2OPn+lGPvdQC~haSauzyCwr@Vw_l*v5#JJn4fclT(jLF+`^+Ji@w2P?%3R z#eH|1gj#GAO8WnbU$`L-V&FBEEjzxJ4%TP}TvVsndNIqC*eG*9)f+OI*+F6R85R_K zIzn}WE~Ky{$l31>+e&dpq6G%y*{7m zJ9}SLn6~3i!TR9GMwfASD$u=!oI9Oh9nnn33o_b<*wLnylPC)k#hJ-^U*pyP6DxhRfhF+P(!vL)*_ZZ7*SI7&$^W3&|sy*VxgG5WzjF4v3iZZR)98q?qpQMGDm zBgDpg-%(KRSl1^$4%_(!R+$%v(R`GbsVXa$4(gLy`OgCd>%WKkQ6BuA)aNToPfvHb z5PI=~dAy}a%B;XtNE?IP+500enEoaHQt%*5O$azu6Y!Lra^Tl$YOlT^e-{|$ZduRo;xVBv+%c^nYp)`*AnPY~96ocXiD3+`l(Ka88qT8{h8FTM^pz4*Ec z-|p&QGltu+Af5nn|3BDrD{m_QNPJW2k@%_lJvgEG%fI~s##;LNCgBCoy~3UJQ*H>| zci<2&Su~$kEL|KBiuOO@(XrWN%m2wsL#!Tk)8r35z7F?1_-J|M=brOyTEja@*=KYybahj5H^TV;--iIU_{hwqu~NTd?t2 zt^5P6^MAsZLhqYi^ukd$2hS? z|K9o!qw>JBFS!W+)%u!ZU()zg`O4@o#Um)>+Wg<51#>ZT<}_^Cx&seAwifF)ZN>TL zF2lkFa}zj-F@9D4B{nelsV+15KbRgs_=oHg5?J3zV}H`FWM6>J{C`A#XRDFZG1Y9B z2So`jbGo_To40Pm{SQ9o7!9k=KNqW3E{8h}&-gsjNHzZ##xKwRA&eKtylXB)))we< zLL;i$|LC{Fyojlt{~xa-@G#qF4g6F_xSCrv^*i$aEk5#{Tjc-j^Nh-}PwTUAAd1aV zrMkq(M+HC0S6a@g!NE4Hu~xiBW~EbXH}pO6|Jg1jR^IeufkYt+abr%H{fSc&KOp3( zwNGI~fw#?!i3Pu2y=oP>uRE_<#=< zITQEiPB))4u@}$1`nkC5;tP1Z+km9Lu|VUpV@;$!ndJX1hq;X+;#Eb|u;_=R8)6xozcSf4rOTFPhL2J`1!c{#fY^9>uf z;*L9ifEDL1r9}(pxsB<;X83mW0j@?3v=rnc{OC26!pD#~tII zar+ALod(kEfoV1WZa-`A%DoNFYxqyml1c+*^iWTEEEYG9~x|vw(+HtGHD#a_^xKMpIjtrUK)i$X`pVDuvIHY6F?W7)^70RBe z8~Z9I{=4mE9N8#?K$W*dE^;c=Q$2sS_Pe6a=5jg$&E^PBo!pP%Q-?5f#=Ih5)9xjC zt>ms#93y^IxlffkbaLQwu+FfU3jpf8@fL015apqtzHlKiNDYp>7I8Tpv;}U0qYqHSy9SD3}rFr;*0o z-ihSOFa- zuP)cDK5Ky0HNGD+X7!gFYfhcqh_h!;LB^VDc+ox7EH|Vy${p)xc@P7~9x0yPfXRIq z)A$K9%Z%t-#gu8>tT6_MDBcWr%)~`1pjssQ2%~Cp zMOKTjKhek1rvNs8)=Zk-H@VyxvTa|Qhn3-+IB7Cw&z_C5jfTP^tEa50BqZ8QuStJQ zFEqC&*NE`rE|Ra)h?=Wbjyaj5uAy@FyQq7%sB>U&2t#Mi(zKp#jCadWL+sVi6Ok+V z!t$E?XZOKFSifU?N2h2kUof8+_xBt5kC?PaG^s!8{6A&$f1J;4`Z@^>nOo1h*W9x@ zKIsExb0)S1x=469K8=Rw{$Nsb6U}T(Ol(2={)zyW`{X_Eg22SDL2Q*kE1}+DAT;UM9(_v;zo8pf7!|weDas0$7K6Cc0*0Hpd zaZrIa%7}>Cj(8^2lo)5gDz-@5_;97a6emPgk;wQxCbxK^mHwSZXpC}jgCzdJjlWfM3q><=rGe8u0 zC(6GBbq1cu|98X58STn~dHq=6-)IjjMdw>p0 zXf$$J@qB}_#Z1Dt!o!Gqv6E6H&p2t%e78~!Bd?;LDz-MBRQ@Pi^ zShmfA0b^&i8R>J#d|4W~1?BD}sZPr8f8fK`p;sN=&i=bfP4FN_WneW_z=>r<*1QSpfa?ZjSBm@uA- zF{PEumf+~|0o?!aJ8+&sUrX8n%~Dsaer_GtS{fuCbjakmMR{8Tnwx_|KI8xHn%N&SGTYg z_<9HOt%Xc{T*|L6gB8~NV+x>uGu1i|02ynEjAr5&~Xy&v2gpc`K&d#JyPH5NK?;uvJ`9Fgqc#Mh&NRsDO|3CWvxo@O7480io=}xNZgvZ?mD7Q&Q zp0%G~S=ANak7VGmzRz?6|9aoX6LQ)7MT;Pt2smjs zwB6qS2Wp+QvYt=@ssGQZ52&zm`PsYw0KR?4_u)>_SXShAUUk!rxa6W$m=I6AOY(ng z?Z1&nX@^kF|4~hho80%vfsAg0v6aU5a_DnnOM+eiMSG<2Z(@5=-&pKtU}M!I>i^p~ zTyS8novevE)piN>`9H4Fq1yML(`|e%_9u+36%Nr0DXmTJr{W*PXVZSksk+Ea{e%$f!BUrb6C&H!JMy~XpY}E1BB0T`*3$_xGa1cZ&-LIynqXLL0Iw>x(|9(u$ zE6u<+<$^8>48{~UECn^r5db(xw0zR{!>_?%PBuew{B8BP4SGv9Hj@-yCsFh-b$vaR ze-Qu+4o#+}IlV?~bLe~0zG+x#?Z-%XD)bVT8y$`UpJD3&M*i#LSo0&~)SDuU-fb~D zN^prfSg2H7UpRj*u6x0Av0}wi?A*Plut5)&pCs~1ZVoNX{{@R3XiKp-Q64S2(o$3T z)k|j+fkzd~kn7g*A$^`rpA-K-G%urqj9yi$dH5_F$~eeTLRV7sbDLdJM%8*m$`%FZ zoE_rBM|RWt&G#4cGdplr7d}%4s20<#UV1g=M=(mE@E>6HTzrm>2Gz(2dEH zCKq!}{zY$YW6qxaYYRVRZTWrlk~h|>PJ7HnNJ;B6+AUOPB(_YiSzN?&QoT1Q^Yw?U-Y6VLwaEmrD%5(Ynk@+t| zs-rgprWUnnsh*Bxo@3KCrw=FhlZ!1%G%%>tZ~tW8SE^7^uCck-NbcKj`8YFbG04Z5 zI_qZ@NGCO-d_?T1t-ML$T39*%rP`d@;T5cd0jMxe4-eqzp^fMs2P|H6{wSMqEI>=U z7W58nq)*n%LOZ%fKBmgGR?vN&&Nh@;*|1}mLvA+D;_#7u*tTt*ZpLvNa891wU-+f_ z!e*Sfz9EON(k?L&i4SjRLiQOeA@bGIn=0K%IVHA}h=!s>7}qrs-IG@H_{qjwP8hJ?od z*P$slH>B}DG&YXH7Uocb&%}a$@5Dtsb=uX%=hBe8sA}ENcaY!-$x(4JpD~DINAJPm zLl0p6hBa<}gO@Km2j>=ZvJ=LSw~Gbye4+Q>2}&Ypu3x$y#U;cMS?I_Vt+8)H`v#4T zg}Zd!NgxIhMLH40ArvRHe6qwy^6izSIVPT1@5u8!) z-)b*H%%r(0$kzA36o~$Bn4hKCwnIL8iH7HrxVRbVD0s6C3pK~?NYo_OrIfN6jFny@ zv*o~c^-rxs~7T>kf>JV8_4- z92y$NnXqQe@eY@N93hAC7&vtb_pMux$G2`Bbu-T5A|LgJ|qA2&*`&y8&6gK-Nu~d%a&m2Ig4rF#3_FGkteWy z`wki!8XlAU8$1LzapInl|EEFz8yNyJ@yqf_>ZYnIBHnfu_@%|}6gQD1$3Tn|_liw# zLkFQAcj;Tlo$jnbMD%D|4RnBIyuQk58J5GD%_OD6p%MB)8ZjUV(kM=R%5!9u1e;kO zX`tg3IbKHoDBWaj&2j!K&(Ai>r zcM{6SKJ{6FqjD1Pj~r?+u)0I!LZA27M4^`dIyhha=C{$wsVi4qy1K%nh7TfrB@q^{ zNsFSF*nSe?LKxJ@KUgQ2qxfZ?qm@9k@_RGLf79qI(J{>+`g3sN#|3=zrj2e~nI0$H|Hp7ewcI)rw^uk?t%1`rYKDmxhsl%Iv?|!pM_U zNj4by7hKkD+=5O@`4(~u&&WdN=rccsgh_5+#s0(Ce?eS$J0wM9A&o9Xy6)PmI%?C6 z=lehMiS(ktgyA9SZ{)3r3o?Jp@R!i#tHn5W!aJ|H@jAhv{MWsy>Cn+*MT>`oJk7YUMA&tk{34W7;DdT)4kEvu5DROE2Q3ix<-2!^iO0x=rNlUMnJS zY!BQfpsFiT%~1v}26SdTgibN9THjvM*D=d{ic8ry8yASrtNy=jILK&bZ#itzN${rn zV6MKzgl{V1Vd6sQ?~btjJ?4u8U z>~GLXdHb7Q7h{CX|DV@Cn>yQU^jNv!NXAIusayuUYW;tJtUoAv!o+&zz4e=)L?^}J zD=`CQ?n&-*8b1hQR5=Q>nZH#%yU#K?74@2oD_K6u^at7aHqaGFE7aQmTo$DIQ?cs4dA*PDSqrD#xX`$DMrPo-?_-gf|h_@^Ji7)!K{p^fq5$Fq9@ z!V9jwif2xnipSP$;JfdAhzEyHC-z_Z&`D|PTlGA}88I$*ym`Esl=`P{eg|JJ{-#Wx zNN;}a%jt^CR#TDSRC!VV-;XuTcPB%3P-L@J691?C8D*_TMqp$tvH!()NAtgW3MUc? zKH7%Z|L~c}KX*vxEdHmO{9mSPZJYyBIaEcG|9j&rUy4r3XaDINxW7n5C;mT@JPMn9 z7lfbHzi`)NGe(R2pS%8zZ{OJwJ}R20Bo0x(!|9@hUTfA)b zDqL~-#pNjx-?{Vda&yk9!E#Y2v56fLyPoC$M3YtO1v|kho@8QLSf(=Lu6-51RAUjL zaTe34pY$Kh|CK*O{_o_;Q{^U{?|kpB^7@OfdpRZ-)r(2A)YRO_;d(mnvo-@awBrFnf9656a z>vn9%Z4W$vZTk-(vq_RqC{K(=$}7=-;ik=DLRmOS0}H!x;7J&p$8m$C``r{<7xfEk zT;n_7p?JA0%kdK@=$l3E;tOB;S`lCD#i9lC@QRyXf?vGxI-c7sn@#BE7x8HzvW_H285VPa5^JcAAlQU6(w8Qp{If5f#>z(} z`HEJ;h9U-{q7p8*zJrXJzB~j#F8`b;P-91ePA`pDq&E#f?#}Vk4Yl z<4;~He8Xl_WtL*!J&3^9?iqjj4dc9Xm$?&jFl**CJp9;NeD~k(!a(7Ndfj66K$KZO zz#QbtkGDzOas#Oywom%*S{-cdy6Rz@d=5sHgm?Xz`FC0)v1HUf{`Xar7(5s&wJn_F zG&pn>FmYEk|1bJwcz6#T+J74zK6ocaMvh_MfhVzP>%%y5Y=1(#`tRuAda!#$sdaAi zEZIM5T~CVJnA6+Si;2Ax)y5th*o!UOeu({tHg>o%C*_s&bM!(gfl(5L2k0rl6Ml`K zXB^M8ek@+F8r{^yfn7hu;E6r@Y>rR*U8Kb7ZOZ;?Sex3xMT>ix zZP0s+6bIDSrxp-X=u)>HA4{{*Mlr5>9j#`k{2+aeyd~GU1(cjJb^L-1PionAtKW94 zvrFaoPWgUxI#5k5uBjFKLfO@78?}npP;_*;6?0%lq4+p6GKeDwH(==GZY-F$tUMW~ z(HMuZ%74U#Tii>pajh&!iTA9vr{sQGI~mFZLX>Yd(v#D;ZhZ1@?wO;<4wf5n4j=aO zXwLQz4IL@+ZhLU%><|*(Z`HkohYe2Fh;UWv^B$4fsSGwF!@3>?_x!lVcy#qH!}v+X zoZtB6Mdk70`XuPH*#DZi&~B_(|Eg@m`#_9p{tvc}nb(kc63${sfel04L}P~hh4&#C zHlM+;6(gSVhv4ra&gYcv*tpi@j!4?`y(%9x;XhN?_=!BZ??Rq2^M&Z?UC1V^t`0&8 zs(}a(3+JDui4z;98_<}IV~$7sXo0}O@3J}F-`Cj0f5xna!~`X~M2WG| z%ZAi`T+0n1q<1`>2^P{LlmO;B(63=o%h{?y=o-1PUruEpI!FF@U@4pQAhc#&nX0E;b_Zjlo*Kv z&)-driC8pdBgFrLw;Ad3(WZ}E&88%1)udZ^)KxBJ;mbaQN#sN)|8s5T^F5~*a-i-(s~#> zTkqKLY3x363de^}ljMrKL0$ofZv_|sq!C@ zRr*AkeG2pc+%EqYVN~wd#HwuSa7~@EDI)U{p|lQ}SRdSG{*S78e(e*tV3Zb@DaVtj zv-Q8`GulC$C^St^F6OPTE#^uuyx=@Ka`Y(ff8Y_?vUMA0&x{)X%XiA=yqH_W|K`)$ z{;Zz%C9%J#(kyE`?{~%i1NEDj>g<1A`vLD9Hf7^q>8Hg_9x$+470$m~TC(N>qY~SF z@F0G)<_T=xy}PrGbr)ZZaLQHNQqzZL z@}Ji;_&y{5KSufQN*Fyn?46^CtWL(ElbxJR0wFdHAv$(u(h7o) zFt87nbprEbG2wsk$T6H68sh0w`e^p_soWShF2aDGfCCs_E1NR`4OPPZvQ276y0Jh( zGU}FCuoKiWRxHPZQse=x#}T$CLE!|KN){%_j&u~b6(gXsgusUsH{3A7#mLYc>dd~A*W7#TT3o3`!5hd%Ll=%l>q zH8-nl1^!jumcB}7t!#wvvcMqX7V%8=U(^|lY^*~iwWJ*}c&I0QLSz<|2=5x4i~%aK zb>r1Z`R-jm!Y#jaGf@nZsm|_(He@vn@_VuQSU&dY&vkT)ku5ocv*B}h5{g?yY&YA~ z6?gyEf(PIEmNy7emQ-RhqE5>D5XK!oiK%*7Y*_)H?scc|j8e{Du}tkOs`k;EYx})o zLt7U{E4@KAy42eL2qG>Dy7JQ164)Y1__SvWOmEzj4&(3qGZf{qcK|IO1XS6Z=nb@sY?u zXqXZ8dE!618(;14?fmC2UuykR1l{A|iSF`~38^pHK`CV>)qNa%UxFDs__kC&5`LlZ zR_H*B4}A0!w06_hyeYMjM(DzK#%KQg{px=ic}RG+;{Ov>{Qm{>=3wUZso1`24>oMs zhHb^CJ3Ys3D9?+L-&(n-FJvCC4Rk8L1d#dv84md+Wb%&=im@T0htsGtw4?sN0dD)A z(_ZYH`lZYr;p34i^<<)CBRa+m!Q>_r0gy|M$NW|KI2# zm7y%KX3N{|xj*^%Cp$V(!1*&TFLWJZd_o~*E^@)=ox7Co>)=E$x6$E>OaCaPv#~SM zr;7g{u2QojiQt%Q+80k{;luf zH{SF*|EPeluo?}(`kZN;;^|C8Vk_nPz=;$1)&KSfV?U{dqut8=|K6T%tiE6+mMmUC z4?emEciweRF$q1F&t0~J-Q*j_q|2#%tG-G?;Gxr}N6HNg_dNJ0ru6mkD_`~^T3FCn z`!Dj8!1Bdys{ZVkzd35#?$n_B9(e*+6bVwK@9-5-8d`UO<{^7Qf4|3`?Koxb|zSKs95O#`FYGgtoSpMHcs@qgYY8`V<# zpXL7oKSw_FH#COe7^5hzg=R9w~0>druID8MC;G9RrbcN!uWx8{=Xrf%Im!T z*>D@iw(s17b(^-}&^-@g<+K*s(bC;p3aLmi3P8{C%mL`B>qG+o%!?92ZGIw*<1~CzImnM7=(fFwmb4itq&@vk+8`}aSQ*y z#=fG`Z=|+ao)_FL4$>Z(@$&#$=l?7$j@_+QOx()<*W1;&TpAJ|Kk?_K&FndWlbq}x z;Y9x*nH-yIlya2yrGuQ5Z*(W=bFu&}^0nd^ zTpxAUBHt?SMluA)7=mWg?<5LxKo$ToIP$LVqobJ{D?v`_oY=`AByK^Mx?rV&P+vPz z(x4_A6m(fD8y@7iQKno>R<>ttNN)dC-GilnMk-S+tQ;J~Tn7v&=}v|+nf(uNbX;I; zTofgxq5INE;^vZDflTKqLXf;pAgqv3aF>8u{t=rm@M7#hd7R-DfQhAI?#d38v_%{Z zSy{ntpuKeU1>`p8I6w5?@4mO(RJL-(QtojtvI|Tc7Z1u;k^#4ISQsncSq}SkEitG< zo0J2}J~zX#=_0(aJ&dC~ruLsjpaUALaY3+%ff%~LHrgc_>#)Ae*ex9%Hkmcoz^<+?^iA$7=3hoIH0<9<22S0zD%L4JwpOFjRnTWKrc9ZGLx;EH=z)Xio4x|$x_VkdOJRnEuxO%6 zN3OJ;q{wPP=NB6poI1GaSaB-9wI!tlnGsFtE!UustIx-JUh3O+DH{rr^U;dHj(9{Y z>o;jx?u#|68-}=sE9?{bcUyaOyemLEs@PiYqFLvPWt6_981ksC#b5C|w|G9%+P39% z(;1vRwi{9^Tf#3E$#B5Nljt!~mnz zqvN{ffW|Ke#_5ST9BXRxYUiV)NvZ!Iy!;Y|_mcz)1q#;s|0!l5?_`JiAvb28%}5aE z{|%;``n4u^A^5vGA?s8&)C~E*oY+Yp0s?X^xRR1r3M2?k#5bNd#`U7F?_%oi?k{{7 zciPRVO0Ox&O~mU6R6BKYBZh}|p?A``)YH2NiLV-QjZd2Vf1Y0qNQ(n!@ecXQfK%Xv z=*vLy5$Z!y9pWajwpqf6{!Tn*r=chuorPDEkK2d8ii&`Mbcb|zr$|Yc64DLQ-AqcP z8bUf{oa3I=j=S^+3vVL*Zn9=f1exT{9P&Ah5q+@b-~qJ>JMb1 ziW@od`RE)l;Kje`P~1{VN~yuGp&st@fM9dEx8nC?bfwIX2UpA~&ax}zO52kQ8;g&y z5C>IF4_)aQMs6qCJFZ^6{tnw|1>KJ{6m}?i*wVvp^v!9woUNc|xhyWvf|Eg|ioqM^ z$7?pJ(0>c@Zi=H>5hHfQst-wTlCkuv-Pu@`=09ELf|F^SL>k4PZ?IT!y34<9L;YWd)bjcaUW1o zRWS+q$a9zQ{0u3JlY5Z(w&}HFW66!ZMMv5ea?99Y(ji)+H}*AEZ5D0}8~fYwZwKHp zw73P6jMh0v!HwtTKE-?{tce1Wo}e^<{H+_z16FYCV&^jJ4<1+|fYkGREs9;gVJcJn$@_4co)2UMiB`e|P_$X_pl*wrS>Kl{Z&*94&eRP- zO>eLkF0iyp;h>!r&zpbk*08pMXX`O4?fq3{suPAd5ya7}qEH+g#czJ2ME|HSOEc7#qwquA5+`WMlxOEBiiAoNl)=#&lit+t$ zhlA8)ol{M|`;=~2PKbGuwNlP~nHnXBmVp8BF%JFcSK7DlyY+?k)Q&v}R7cAWwR{2r zwrH}2Y?ScWjf*LBA!NXyKDazXk%->KbCoB}`+{2u`wImt*}Ikhc-gR2UiGYRo8^M< zP9#H5TklhT6HXi#A@q2m;NFqD6CsvXmqZJEL{;kslUedbOm}t@_26tY3FaO#+bd$3 zZd%Ko>}`eVti%Dcd&S6u4Cvmnz91~yv0!(SqtH>9R;#*if=O4eUB~Ttd z500dw&Z31E#2V#I-h2AbDVWl|Q7}&)H963I!6GW~LYl6Nm6!g4$xq2CTuQ})yw3i@dul2ae@whllgM0HiK`oFlTuyj=GUY34YL~;-M`EW0#%i>; zr{OL?(I{E3D(`4BcFG1Jix`+YJr?a()5Ng;PL8L}H979B#ZbX`i-s~-K-cgt6wTl3 z)2}DL+MW=I?aZ!^^dCz%P5OU#!OwwapA23h5X%v_SnmH!g7e zpO8L^fd!|n-F>!PB5~k*+sQr%DjR{c(0Rd;^f@%0wMW6|dr$XbwS(XRb~R8Ci(~ATyhX^UwFgS`#HZw0Nn8Z#B+6In z_|st;fS1$m)3z-iK>*etle{CKsH5U>?2KuaU?ep;Dw2_CsAXW@vG*st+VsW6;Ve+O z3}B(tVh`g!Q3W$spe4FN1Ye}hl|M+Zm~B;R-0a>^9{(l8Q{5I46m)VMv5xHbI?%CDgDS)#>crnA# z$famo7xdXZH9@E4s3uA@cz0*>xN#M0DhVxaF`I-P4l++F=iDB?KkEn=UBX9(8U3v# za{=r_a{9c?OHPkr95e8@hku1ZP@r;F$0*KRuR19=zZ_EGFOddNSu8>E+6HKT3*2`K z=R-C^{>qj%0>@;GBkfmDx0hbcsf**L@2mx zI=U9kELBry{OL!M(Z#gHAV6)svvWu*;+aTntVt>OKRK)3qF7(nUshA7@af8SaOQCT zdl?uK9l6L_Aw~q-RqRA@>gx5<$RB2+Qs$_rISTSdzfz9vmV5T4n@t`o8fN9JCA?h7It`TNvZaetX*OHECAOfhz5dWChi$jP6|}jhFscU zcEB@s^}sbXmwk0QwQsjh+iD51fPK{_9n=`m?-=jA6r4^jEE!qym0 z(csc{hk9tTW4!VRyorUy9nHL%-I4ujJ5n%mN`=%+^G1xiK3Hwk6y``P{Ih!K?LBi8 zbGnt?-Ah-eY`r`$=3%H*_0Sj#RUN|dHCS#P+6}^%1ab~iOe(9& zG32jictZFH=T$8lx$#M@^F3>QIv$uW%hQ*9l7+9_gMJ_`dY}l>mDv<)g1x2=J!}+_+?m1FcMDO4)%_S+xw<8PNn1y0vb~P?h&9qTW zgL3;j5Vu3`wn1e6(v{N2v_+x19MF4jtxmKr*0uklm>W?{<>l|+CK&r zTcH1xH2OYZXi zIerLqvlWvfbHu7%lR8GMUuvHFYz@}5bl?^1FL}oP+NLsts?elvQpI+}dQ1#t<)hhR zw0uq#3%|HD$DUp@H0~V=VjTTbKz_>68Y6rxupXY_Ctzk_F?dJlu}9q);c=UsHf0=> zU-Frtp#Q(AQ8!Hchts_j29@;uYb9ih)&8`Q%D9(KDi%2&d1{9c^|G|jn0Nm7e*2}= zmkLI<5SzYYSBPQGuon*~y-v8J6xD6NtT&q3&Dk9Y5%RQQPqY51-p9phbDk~ID>CPjD+YwioW|D; zFf1tQrK7Eg#wB&pdRteyIhOAMp~D3jSz~~Lad4K70IjfLGnE)8S(Ix_gRHsoeZZ%C zgV8^?pKer|>#{+d_6b7LklNLk8zW1#Awn)E8sx$-@#u5`&YuO^Jcm9~*Ps$wvsItP zOVwNxOO4y>=Wy@awnyhOdP z>6^l6S%#%Fk>(wL0Cs@lo6MdF8Ql5qM+=@a(pq0ic0u$om{Pvcid6KR2V$ZqJ9L04 znpVm(hRujUjcD>R!SR3tZI$`rpG{|{$uLM-meS;@8c&EvD7w}*KD5|{In9Yst>-)9 zbHZm|(K_w$ygJkQepw=^n~=Wk5+cH8LE(dVyQwFOm&Vs7ovbsjle<-q2}KG98&AYt z(4QiOlfng^x>`;}doyxfhWh-+q0NeP!&iU+V0{**U%n6QO2pA4pAIFOZdm(FiDe~p4Ip(rigV_9F^!&D7e!QFzUMQkjA(g2$4cO=xB@&PH60&Ha`q;g|` z&I4;vZF}lOGY5+Zp>-Irh#bRT+aqcGR?B-L7sGNw8!U+M&v&%5@}s>F^x!qvb+AucH_>f z_Y!SCE$%$sBtgxmWnDm7zoWe!Hh;7npA+v^Ma1ohvl6)KE;uz#cP7Nvxu+S#HO9o0{p zDd>`}m=hKQVK=s|@nh_x83F$fx&lY}7IIn~Ch5ilRq4g_(d*Rnt)nC^VLA1618=M$ zrwRGwZCjM`&Z4jM!|8$64PCzf;&Z1g8_?pSE937NyRqG|QZ(sluv#T>yo2;(J|BNF z-4YV)z+cf$AEaY68!6con6UYh#_YH&3Pi-Bulx`E$>|g746?f%f7t%)gdC zr^oCM^^`&m)z^pLfrOCNT(L&IoTRHvY`Bkqp17T&SOSnfCrk8gb+hA~rT>7y=~)GS zN(A{?^d)zywk>D95^{GG+u0QMvk|`M7l}3z5K%@~V{?MTgtHIbL}Pk^OhF!cBgZC4 zM?rnxs|N6Bg9B+eB)68y; z0CEwC^G$0@%K-u8;(E7xNp%=i;x58<`yCpUvjM!E2gf}GMk_U+Tb?wwl!K@ce;V#^ z*E9;;_V{-{^cW%syjicO0WkJr195|r&g);F5A*&F$rPE=Sg5|mo>TXEl^NWJ6_=)V z`#aj;4NX2mau!=Ti}UCP|3%A+f3xcnu7rSd;wl(uJcWjs5gX^HhkT@V*V1Z_A5=(F(=Z1i>(T zOX$|l5kHVKCZwJbR2O6Mp{*5SVkBA7eB{c;CL!p!Cg-&lkhPLMqaj-3(kHc6?Z+AL zVB9eR+~qxO3d}$rJSuw&h%y-8mXy&p0zrgQs$4$PG9myJ$(o<4jzgq{Yp!S)_avbND7ik%JCFSatD{Xj=90?2pr@*tx0Au^=&DQbJ zGw4tZOy_Yk({n-Ru4I$PllA~?`qnHLHWs1&HuQf1z%eR!|MC`X=EyH3J8et)d{;NS zDZUpUwZWs`<8RLA3bv?7>clbl>}-cK)3P1|1qAPzj&ctG@YDQnGh6=aa%`f9At%uJ z6YP#+ec;A+<{~O=9W*3c3I&t1K1deuCg!)qeb_!c@sO}W=sPQ$wOhd7u{ZZ4lw!vZ zUf|HJNd8@_=_qall9g#X=at-*>V9k74-Da02$0P(0M<`xQ`UIFi@IW$MZ*p7KIB$r z8}c8u=Z9LL!D&x)Utk|x+Y?0*}9$QeD4Zt5zJk?g>5g^ z`NdKHYa^_Uk}B$2aRiBAg)e6JzCL=QzT)ZgH=b+{^d3F*_*dFDXA?SOkUsvr2MHu< z40uu{mz4N{!6`&l=`*J^f+?KDsAd7k*`ZdEOwPX+B{wu6L8Y=R>aZctbj4FYs5!@# zH+-u%oTtU0?t#0bt-77iXFMD4nTAi)J-nCkBYntLcTA2BQ|{Z5tt9gv{+jEq_dsJg z)J~W`&DSlc;J8EUYfb#L1|{LceblM$EF-w8$4&tKg=t+g{?QPA6xS0A|47=K-{&??!|5=puKe*Q4K|vkyOY<#LmK*UyZ5 zTTC8Sp?M@I>nCl(YnAF5!&V^>nX2poV!?7p?Y_7$I$64nbB7=Fgbk)+<^Js^WE#fq z+uzLdtGXNtcRo14nZbMWUCgjDgtR!#8zZB4gEF@`^A+R{T+S3 zl-JPybc$9g7Qy{=X2CS~Z%6J@hMO8Dy`&a_Iz$XLh}bX6_JUWk7v)@=4U6$ztn=w& zwhXBp9k^Nys?37B?=lz7GfQJj?Y|T|g|O=2j>-h%mD|e-I91MhVKfe7-=!54Q7no0 zx?#RENp_wJY{%IuPgt#p;5>}GPI0jK$!ClUtI-ZpOef#avwrvS_yMBMC`9n; z4>aac`~{YE$e)1*^om3C__YWOpQD>nZkK7{JC6958nLSIsIAtOKW--n?Lsc_scuHn zS55U$I-h1bAX~(@f{rMw{-uKdd6+!OXnYrdF5xTkroxxIvd2ku@*&KD*J55r^?#K!@_P z(lic=j)z66orA*XGZRGC64#Gt<$0^7)JEQ;M+iBE-^7l*-9GSc+``%9TCX`)1dLzl zhA^;^w&{GhWn&!is4BKkJ;sQOMXetZ>W>+JmA3mL8|*K2(d5+eO=eFq$&znB~O zEZ@DIJ~#68Wk758rPFwYp41+x&?Fp$A@;gHZM`10yKTLp05%w)+6%m5`#xvD51b2Z z*{{`;t%Gj3Pb9qGpGJyq9zkDUKRo<4>gIj?XZMY_V;<#K+)qS#Cdkq%~Dc>D9&Xz3=2St%%i>vcht z)L?W5n^8@-hVl;fWm2C-SAsdpA8rR0PD7#Jj4IJiUg|>)LB=ANIF$pJrhPbimkYW+ zJR)(QZZ^KX(IrF;NxDFSlPYQ!ngvZP4%;6GI%$uyo-yf`We&kvd%X$aTU-5ALX1NF zHAC5-a0g#$4A)u;p2Au@Nnc{uNBYm=68FUYrqC*`SrEzLq*?fyE-a2Va3ii$Y*8n^ zumTaWC{ZEG9VJ~&AvUnZX3y3a?$X7e4`3T8#aWM?_-mi2Uv^HIz{1uhP_lQ(kEP;m%j2>w$XYvYRGuuiX7#CB zw0yRHkgc>7`^NFlo$Ra8W$F3RflR!19}^lYs#*S`1J99rUc$}s|2Xqv*1xQo?lI=1 z4?IV)xZ~`QTS|9LC_{t}(}cIX5|Pp`wOgwy|>V+f_ErIt*)&%?jGmR2-|nF<7aD&#iY4p!@z*qJN!mEvG!` z_xD|kCY{C(&=F3xFZg`tCn~Z#K+q^96(HNw1H>Z^eEJQUWB!2Kps_0i4(qfB8cynqV*4^xLYSbepQ9OI{c8 z5|Y~K%or`MRD~hdE7}oXvv8TEH01jQrKqPTk4UzAzQ3b;B>!2OQY3mD0vZ$~40P_p z;#M{xI|DAypS1_TyNENT_09>%nFGE6Wj+E_wQjMh|B*0B=c4UCNB%O^3qoXk?A(*3 z-wAI$hs}xo;{cNgyY)LDwpKd4ynG&Z1v}n51w5Bd+PZi*sYvzfrOp|b08VBEu^rJz z9{0^1Rn1Q98y+oao4<{3H3QFTIq8X5%k>~6c7pc(lNYw*C!sBb^F>+f>q}eL_k@py z#I?S_diu#+_E9j;=GW3=9`O%1#e+qUfJQ|wmBu+}ZW;8&;Bub+fbJsi}g7OfINY7SeJuj?lR8ZjKaav zXHCbH@CnK1U$DL1;OlqRxB&$224=iaCoh)R5Dj7B17`g3XV5>k7m&$uZl)9bc&WM*9%`k4hZj|7PF0IIX+ zM`GB1ZJ6Wph&~|YMr04`TQpwf`@}DdQ}i2Ib|co*&`0#Uom z?eJBz_|lc)eggBweeBvFy8Q$rWK1l&QRxRBGrW-Bb?4XvxP@%H86yhAZBO{YaH?>B zMdweinE#N!KLf#Bd{;nED6Zh^{{?QzXTlG*>xO^`6?AUSXih~bP=1UB0uq~diSyon zG(vp!rYwqcXN05UJt{U;pVwI%SzNiEv1-1{DB2=i*#QwZ?QefbO0%c6Wjv{o<|VU( z`iUQb8kY%#gqdE0`a$C2Ji$*?zVFuIcNDuRMC}*f+BST2gabGqg6Z~D({K&c>jA5i ztHf!sW@+vD`hc;Xod?N7YgB|J+9|;;A3)?SSPfVN)N5Z+ZFcR1%c{}e3imG_q3mB) z+tSW?@aPeEIF`e$;e$%?H<(`qiOIh#3n1yR-E|pQ^TMH?57*8?duf@`)#Z9Hb zj~y-_FTzjU-@+o#E!iyI#;3fQ{?EA;3Ex+MmX{kD}{SEokn3PKDt$k3^Qr_-BLxeX&<~LBos5>_*4qp@sbe~f69+$H0Vq(BuBxbgXYc&u22)%80O&g6jD@)Tp}tN3~y+gqY~gF;_Je))#-8);@LW8isI-Un$Z` z4@fM;O8y|MP*+j-O7-jQTFg47-c_IG@Uc_LgRZd`-lEs-7SPvGjlV z?QlqATy_J_hyzviDrWyBHR|S77-!s6W2FWN@FI}AxJ5Mq(3L^#ZD%LW$zt=1aO`td z_p_zx0daosxAJk~5xmxKq?`70aCQTVue|Fh`sWXBuo9SZ~{qt)!9lUcg`aMhy zbg=tl&gJv=zfXp`VJNLwZq=s2jS=8pOr9^19Vu{u4yPvU9qyuKkUFWA-#t${hmDy| z@MS<>94i5K&!a=3%C=-!g%l8DsJZaDSpeoi{`Rje)^XMfEYZWg$sesM0w8;_FW1wa zJa@m65zi~elZ8#GH`-HF^etIgD<|sXUYf5jHs)#fW{B6;Y>CQlKlvE9rEt>4YUi%S zui#3S@)1XP=aT(_eN);?cBa^JTd7})qnmn3Pub4&r|uW*bX2sxp(I*XyIL!%xwgp@ zbcGvlGkW?tn)3%`Cq9YWl0}8Zh#WcCjjKL#c-%C?OiUTAh?{=!Pd1;VIT?h6C@4R;;Qc$QHj4q zL1~9uC++5wC+M5f@oZ~tO)4Ab|A4im-pFcj)CuwN{h}C9GdUO~8Q~jRtleB5T+;}r zj(wMVAIW6AiL+9jxbvfKS*71s1p67`hlg9wofXjB!>Y4j;XUA`al)Xl%qZAk?lwngg+|dw{fl+VuiV(lFf4#WVrOrztaQxtsv)DF61+Sd`LrW$S&% zv6GkL_;p2l+W%m734hpIO79B|`}Jz2&2Oap&3-HL#822?^t2z>SOBL?+0|=8d>-G~ zS%oVgafb4>XR81KgcQQO2Vfdg;~fiJobHkNs18hIgkJXyWOeSXwsN}`1_X9yID4G- z5t%Q+A85cOq_ScA`s3#dvoSyZ2gbA@!5ID!4(7cGB2J?pJ@T<;&p*ffH#Ty(MB!fvvLjwR;l7 z-PP1K%FfzLzY}jFtFb?d$ZRuefe^aH*8*ldbZ+l*wt2IRSG-X*F*A;)nJf%v*c9Ti zU1l|o)4i0LNMxKKRxcQpR!hurYicXy_3Wcn8<$lw!y&CQHOIwWfSEv0;E<%0UOWzs z==ii`uvu<@PORJq^`TuEm*7w@IjJfS-|3I*Gt_kjH=h~zXtCdXPK_J7_*P8r^{@Bt zi|Wu-ovn^{<4kvOQM6Qg@pR}LH|Qk86;)kXrJ4vi&lvtjIU}`7DE-our}g=OR7nB$b;W58c9ZSCH&aS%-ZgiPQR>j3}H{sLT+wMGjFl6XAlyRhfz|(S^`851Gd|;qzu%eUuq5O)423oZJMmn0Hj?8|!C(m6y52pwiUp>m`HsHdVMhiZ9LVQ{aJ?2zH83D?-K^o#xJ%*WgVMsN z+*#9yvFI?)e32ca?{!f|GGikJ*f(w@_H_{N8$S_elGJDDLvHw?feY9pNg>eg&iwr6 zGI+=CoM5wTt-{8p@5x#X0&x!~T)WYS#HmINY|GOF1}=xPXMF4PyvLQ?+(8q#GFMBHF^!|32VZa6_?^&J$Fhz+^NmN}Q?{J(UY`b!R zgk6st?%5Pd#FR{fb^d~Z)ADR{?zY<=Po>xI(A%&xYp=h znEmSAz$Kz{5;=FszF%B)^?;ZEBwpdl7kp*m#9fc&^VkPPVZA0J=2X3$Y&YT z6Nx|fU+v)z2rGOV?YGMf(CC>+ez3T*zu;u$c0okHc$Lj-98*S4CJL^n+IF&&lKK7G z5H?a7NHXuV^bOYLTI}2+F*GVpj6}z4+s+4zC6A zoBCYfRAB2@2DwKM&awQ~vFj1uKo{m6$jk}5(x^UhoRHW1f5C0JIXkR{1^92TnZ&Sb zm!a4DIdj#Ht9F~SikD{--M)NdNF!^s5@u%?p+;{8Am-%K65;wIEPoR`w)q@ z5^Mce{tW6FKw(ttI&48c05JO@qF<-I3~DiNJ9Of3(lMq66E&~@8xhBywp!68tJMG7 zlKG(D$$w7iuok#can~eoN8B6x|I5!vN&us;It?s=Xs_qz_yC>W{u_|fbGR#1gx%2% zI)ZdRE`nqz8RtQ8T*nQpbbliH>ly>x zVzViBS^NDOq^h|m4Mq9U3X41@v?lEc@aoH9cQS{yzi zxYWDPl4u*AGGe-+E3bSF+PhSQXYB*=)70!=iWIkASLE2LRB*X-x8;m*2FAO@t~8O|DvtT?a9$%E_Zf>zfg<-J(4dSAL-|4IQHVecbO;hRB(s}w?5%DP6K=r`k&IK1fP=?Gxb%&4%noex?=mv}n|Cybkg^x;L zTJ4i%Q@WRsiPiq(Dh_Pp1NOB%6%fG9A&ywJr#Pkefd;vdH?f=5SnsZ^(Q)usR>O|) zzx&Uf!mscGDdjPr-I;V*y_iu}b%x(Z1!wKELwiiXns<9r2r z6*Y4HHid-*n&pXF;QT&7O#;-u@dtOeNMLE07y14is%bjl|7AyP5lN#X`!~w70jDr2 znvzG1<$w+Y$Fj{_x@?<~9o2gLoaylk7dPVmgjnUX)8@8OjW0ntn}5U; zr9VEPy#puY_!EAOuD`mnLguGG>m)-|DyQQ!hiSKBa^kP$cAe`Zmg3f8L&e;Q;WRW( zw=y#}`Cb5*XBGd^+WCF>3q@G`#YVaq(XPjJAapHWIikFJ+wOwzy2e(%fr|I zpye^)8iM-MTElBWMwuLxoxT2f8Rgf~e}A+lJ`_r_KELVVTg6q=7k!kT7EChwO8sf) zs(f{OoRH5p8B{?o)>i+AYAxh1Z)z%7?ZnMC%A#U^ZU{&1xHpFP(u>UsC%4&7aJkod zXtweFQI_sQwle6@c-NR3)SdLwj8!wbITj~trGw)^sCmxFD0#vJR z(Af>lF+$V_z~v+bXL{Mo>+@kO@x_HYp)zrKc*Q>Jrb8Lknj*2&W*%>Z285m$t~3a! zEG9LDrj24f#4BVT3Z#(YaFj?Zq&Et+= zYt7DfGGsC9@_Jzqv=&H#Jut@hz_TwR#O1|qP?8~i9@_Lny%k;W#XP>VDtz0K}{v%%G7VZrFW-ZP4LMH)F9{zZ*w5_(= zCYLa(^#c@!bRFW9!w%0>AS!^T*<@Orxqx$6fl_+~?SycT9{$Otet%Qs{k*tM;eQes z?>qbc=w5+xup{$gc6UBZFV)}!-w`tDG@6HRjU>sSOE;o9b{QgEE(}-c5o0AO8iwwb z>Ac=GgBqu+jZ}vKImGlq9M89JVT z8u`be{=~_zyRe#I$Z11sXYbN7?VKu4LZK`5b3$NgKjDiXWqJv-hSU+o8_t67wS6h% zN3KB|mZc2->C(2b^nu}&yP;eQxkqw7w6P5K2<%JYp+=m)Lg6MYTO>a$>hucaGA&mW z^+*{e@NAhhLNH${1XD(kNXLHKS(ly*40Cn2X@c7^=p+nUbgz6mCAOs&x} z7_uQC4y*CBn7s{Vwk$!Shh?=8!nw_uf3XTw6;UNThK|cQX)RK8%M*aoI8%6zz%a7) zu&HD6;Ych;QO90)lg*Ea09aprHnF~7npmH|9qLBM)QA-wNOxA{jB31#D|==;8v`%I zA$fPRiM4>mDpOw1lf_fjEvAZz1W$H{g3~ro@)XZ`_??b>d(OU%dvOT!_Q!`m)nhOZDlW_AAxp3kX~+i4wR)cCl1RRF$t#?59|2vE1 zDfh+9g9Y9j35txz$yIg6+-JNPF~2-QRio%^v3sLdnQE8Dy z#X2q~16kn>ov?zC?;Ee&hZ>|v%nRz+j#_B{vsTIaiPX>_SB>0jwZMCo%*EqCH=PBc zI*oDk-&>)T4XA256*zSVxnbv)7rJl?G5>e+u@qiOuXKf+V*OUE9P}^n>?N2mrK*H# zt}Z1r`_Z`U|J|< zu^7Y#6pgT(3?$OC1|&e_iuxQlUaNx}AyoHa^ww+6 zn}JO_nS;;vE7QY;tRRLQDqRA~NS5Q~iRk*{PqTE1Ak|2Fqld*JNwo!IKLSVO;m4}) z4?IYFzNXbmy)~%0xi=%&?a5Hm75qgcaY?6R=S@>sbDqO@W;`SQyLE4Zvt)8tv76O% z;B7`~CDhaJVV^MA7k zr`~kbEJojkvUH4E($=mk8dDh8-M@u`44ONLv&fJ=IkelU(X`N@m*VCIN%uIzcNCCu z^m&IHe?DyzfYS+1-*#uoDW{{;9H(!eN^iE5I)n1RAb@SzGwc}~;nOTUfDE4o>pqf2&He?&G!Jnv@7!Lm-J~l~Dy>;uerct@@1J+;RA>)&xrY5^J^tv@B zln#qEm~oXWp~#p>m3LR$_{FO{+>l=Cxom9(iG$l-RFz|0pCZ*$DR1=?>>dW0zMnqn zDhy(_Y7X)kp|~LOj282LLYLvnUIsay4*!V#5vR7;^s;6xGh|gc)$!DtYvA6o?1W&2 z)x^_kX4NvaVo=mN*3N9|kAxkD8F()K)m=jrE^N2hRVc%O_9v|A)qBZNNA5>UqD-BG z!va3j?pL=!M&?t@7BaW%z5m$n@ZPy-$REy|#d!GpcqX`8V(d6e`e?ChX+2=)sI{Y6 zOExpI!v!o5?KDzrty(0^TXdZnfNFEykm0>?fLDh+Fe>IWUe?kSn&AjMfga`LZ`_;C zIBv(piIsdjb7r7>*=g|~{~CJaWw^hy>0d4ZWer)PB0$#m=9_;OMG`>caK4!O? zCmwT^OVN&y(LtS1T9cL|dAXDC6vk@PWm|Ktt&|Yv$mLDvP?BX9w1n+m@(S71+>7Tq z{_sT_c9t&-ad4#mjfBhUFI1P;Wfx$-EcZvl`sx~{5H+}xGh7(oi$F+1F6VFy9T`r~<$seVAu@jWI;B~&Fw*J)BZjKasqFze_kad+C zlLIZd0~{2~mxO*Kt_x@#CB(>@!_)UZT=jjJyYogi8hm#Bb()gmume2ZMi*X=78A>6 zlJskMqDlPj>8u)Gvs}u`pLIpJg2jVm*SDi(c-(==%sSl}VcLnLbNo4C3dQ|umYSpE z!oN(!Nx1*%H&My66jBew+-$7in=t*m=`#Y`c03kW$m0QGBRT`m3SgLwV#>%HIt)3G z-s>pY+sJ1hz5=m71B;%TocF*f%r%+9cC^1a6*1*lbUN2ZJ=YdG#`}oM-j4g^Ttk|3%DG1Q#`~-4!u)MBF__3?Kr1O8ro+q6{Ii}LDJBRl&rNc)ceQtXu zbGc!%2nZ^nVCu85#T5`A$fNmt(rX-oshei84saEcMG^xYPgGs8hOOK=zc_V_-6aCY z+uvGV(GmW6VRG;rGHC&>P}w%VL#K9;w6y3kGc2JO`V05X`x9OTR%wG4Goa5l2$g)P z<+9w-KzHKtB&*&^PiB*dY|xTee8+A_Kf$S;YGTBEf{f3l58AJ(nT1ZZl_fa#ECMEc7L#s7Mp(+F&k6{!) zmbP>!d_tKGF)pRH@KM8>IEI7Hc^322TJ~J*WvlxSEk5-SE?gzrs<$jer;2$~Y%XqK zSMnvOToN)tur;|^F1vPGL!+~zlWhtAtbtv5B15Miu6qC4 zk%He%s9K=rTQqu_Kv>`DMQKPM`}v}oypVni7OOSkzR)~kc%#$k9a3$%<71T#>WcjI z+dXG)QU7z^6g03Fjz7S5F5PN&`|EktNWS1+a}`CJz3zu?!DxV6(FVC#Q>hq<{P5r) zwJIhBn}k{pK@XT1ojZmmQzh1KIL>#-Kw*iwD9BBX`7zc*S-Q~h=w*yCx;y*$zv6&9 z-AGAB_HO{|sok%@2)zKzYn~Y~IW589B-q~}p_wj5`?^7Zne%TOUwt>b_X*VXEL^>d zG3<1Vr%x(}82B*M1w++>Fc4VRRGB9JKa)&0a+5bVL8?Vh)jgvK2%&}g?^(X&H z!(NQ@9jiq9GlfAN0(IXPn#j4*hNIg2pT6j7xd z>3oeK8a1J1@9!?j<(X&QpmtGaX)TYc>m^|Wz0`=>PfB-VU2*&;2#(jNM^g~EfZkWQ zYyM;zbOk?LLl3pvOt%Ts#Qm%;{Wy>|?i}-n2@Bp$?25m6K5_`H z2Tt0H4YEIU&2L0;Wi-wTxfr98%a!m@*hAjGaJl*?i?gEkrt6^bRrt7l*$)Tdz6rdT znnL^dFv7l@&|cZ=FO8q#{hby~`rj%z%bi-3un;L)7t+PoE2>|)}>bNhMwNq>IBLJY@c5>uSvBE~`X71Im*{!kk6_Qd3KA5`V1d7LmbHZvVz zj?^k|h95i5Xtoh0(%u|iFV4*ddiOkBmnL-(6cg=Ts$?S<6 z6wWV;k~XzPBBtevhbO?27IsM$_lkCe&w1m`D3!^w`cy@53C{IxtpOS9i@U z$4yv_w25B9*WpTnL=h=?$TmYVyqd5vfo4Tn!;UXg(Pu$_?U!Kto)w8;7_&cPOKzmL6E~a!R@=?`TJ;7tq6U( zQ$mIeW_xNQrlN-|yo16uRC8uH{8f|%PQyBPgsM_|h!YLsx)Sr0x zm+ilff(?qsjVtr4GykqO`~kN{9YN*i@ZA-H#-QD?%H}1bnixNK`AD`$JLSi5r>IIUkZSXTKZS0Iaf_Mdgk z!16Vz3tFaINj%B-o0;`V^++>t1u}KRi4?iqok_~9c%3ruRLq2x1u`+sJSERiV>kSl zl#b8a>!4418i?s{*qyWjT2f|(NgWNCP*^0c1eb0k^x~U$DlMz)s%HklLhb!kYzH#l zZ4c`T>^5x)QbjvxT|Ho?qTVvo}T43`@J zMEYOsN5SgQE&CQM!#G_`3z~~HB@ut!KKBT0LFQwN<}~O|2R6!ptc%rjrJ`q zQrsO{oZ?d4-KDs@6?Z2{ad(FT#jUuz6?Z7^?hb+E+w&)&*QI`02s$+HDxcV5`b}iq+V!^Z_K{Nd6F1jE?}oR_pc1&8m-f0+Z9cM%FrF)#ubN*O6xUlQ%Q+OkurD+Q-Q5zm|;VPb4d{!R)GZ^_u?6t zyCRIdCN=iCCS!_uHeddKiv1i67{9>I0B3$c-Qc}xQ6WTH5gI=nqZ=navDd^LU`u{u>YOlJ?6lgbNigCPd-r68SnD)1zKW(zv zfOz9pn?Slzq)Rw|1d5J#Ac82{(j&Jz;F1Qof_-)e4cp&#k)Pj8cPH%KU{xFGI_o}x zr(3kNNX|YJKxI;J&|;kF78Kc|lML|d>`Q>0u0sB`0G}W5o9`r- z1*dcQDqhZI8Z!VhOWWu*{2Ksv=}iXYt@F|=&J#vwhiDS=1jL(T-}UG;lDl-JrL`~7 zEr_RGrRx9LCcKHL|5gDwzM5IgtXs`9$3V*_fjhOofW{kWRMhgZhdocTB#;w!-FPGa zk1gJKzbpwbQ!>27^)ft{xCaDtehUAdlp@ed&^a$qu&v6KoK=gwCvPJNNX$WbKgz%* zC`4gdk4R(p%Q=E2lOr5|I#c|t`Kou7ls^T_9htS|YAZfuB;I7PP*PjKip%XIDDr*s zqOIt+lokQy=O{LuR0FZ3@7uRb+2}ZJArEKV=`5_eZKi~Iu8R%ZTrtt;RP8j>k>Lf= z*8dzm0t+zD+R2MemPY9ObDpEC+7+c)XB|Z~ndlTlU$5p$(w8jRZO={W+Tn6@$f*z8}f}&Ud~6Cg4*7f?2P)X+{ZYW z&YE3A5s$rBs!3-7Q1%!r-gc5BiZNdpie6zB2+N7Vc4h=|LPBufNqb*^A2kV4$M8(0 z)=?$EMCu|V+ms)P7mC>_==uRprC<~{J5s=&4;*eC&0st8Uf&R$9!qa=x71a!7I3p< zMOpH>bZ^7TkAhIE^`BW5Y4(6vDY9>MZ6^3B@L(8FM3H1Tp zb)5e_^##MCeghVz`u)=eh;jgq$J-B|=0Ra_SF$oH!zah4tBJ9tP=)k@vc)M_(8^tk zMcsAM#g3s%V~7p1Xz1`ks|EAuUtI`~&%MaYMry+(CJGu^|ID>>=Ce#*rDPM{Q~P82 z_m&EX?zpCnr^)%x7EgLNtDa$|_wDOQcLpvpzpB*7mjDTlbd#KscA{`~(r2+7)UuB0pEaS@B-dN@ zBzBD>ZNnE7M1~nLLLC=~L+NI|WbS<;B)#$_2H>1y5}^zxzdj)0xN0&YCM}Nc{zK@f zy#eu5t1j`EgY3*A>Q{PY374J394UXYC9zE-9woiFk)vXzvl{@|DK$SSm`Uf&RX@^z zW-&l|l;5yBBr0`dZ7{eN=&I$n6)(b8FvMj%B+F|tC*Bhq5#uOp;^mpjK*bh#l0pC3 zCy7U;#E5pp<4RCa3m#rsL#JCD_qPrKZ8&ta>@@jPsc{;&d)}=?iV}XWA7$6G(-gX5 z{GEj?djuTyZniUgnJFWt<{NhyBW(XI3s_e>#zLhlzMBgiq{rx1UzT%Xn+v{spcfhW zfXdHYxJ)5{Jx}xb;a(MWFN4KyiSXf1!7p*=l z=*RGv9pb`MzLYGmd#fDe9nE15TiDzjv`Emgxi?X_Pl=_p)6w;U_3cO~f4w2S`Ft}r z@xJ&fl|5jchcRz0o*Du|6`y6B(3wN2AB!Yp{vS(4_X^gxP--W1VUv-iW)1dizHDcyPj$j=?uZ|hZw@}$ z+G0rSpnh^o`7B;Tj~9q~PbnPUedL0ZV;H7dqf49ZE@LhgY*CQTGsVh@lZWdkVM&#V zNfR@`)5wm|G^9CoAk1^^+$l*jv1ef*%KG8-Kcz8BRg;q2k4~kn!E}8Z?pZr8>k)l_ z^G~uDH}y)Lv=KU^1k}fN?G%pL4HV6S;1^oXv+N?p*^|kR?Dfia+!q*U{U5 zw3K8>@zz%&vw&uvWrw&eork$UzaOD~=8J%632BnZw@5!Esl3RM-lH9Fjq3`nqRIaz z_J3?vbUZRq4tzT!L;v-Co29x64wfvc{y+>#{z z>`2OEJhxiDr<_7`?D3)L_$nP`={Pd!G9##g_sS1XER4L(!Z*3h>c^M5-A(?@+u_|S z)ZDZ7(l(wKk8EvyB=+FPI6LR0db@Y!o@a6I@I zqEOc@+k)f1Lb$C#i|qb|iP_Y&m^1BOO15*9i;wwFa-D{tp8M&o18hls*FEGsdG79O zA`fJ{Apjl69Cao-AN1ziV~~gV)S#~4^GQ&3_P|5m$EV$S$NT8^o0fjq3GApf88)fi z;EW6(9<~U0Hb2GI`Va<)h0?(+QSgk=1HBDbKsY|c-{fp>v=!DhRgx|crwUnB<&eOH zr*mAp{j~fHpyl1!uOH%f1f7=Ztha)m{jd7`ZrUWcDNnyWxS1)0zd#yJK(Hn8&HUF( z*e~rSuEi(ILq?w1krKMHZ+QwJ_|roH#}AMjx3ocYL^dzh_teT=SDv6`kZ$MQnIz!I z?3YwGSX6~c8-gEtJBBIg5ar-2-FA^NYTNN|s&= ze4{||@c7*|&rQYn>W%H&z^HVv8YT#RU>`utDyldH=H4_1t0kezxA3dlIXs6Pl$2iQ zk?zl9+&!@r_)+3^_pS)Id@K z8FLns*_G}cvw(dfzbqQ%f@x`RQX3uwAbOpiov#4{!%*9`9O1m@%jPYlc=#3T3&3hR z>dN*FIUi_wkkE>U8THZt@pI|7Qb}mMIg06}>a$T~WeE21Wp{eE^KXBNdsBm#;Xn)2 zPsr;KK9ANGBuXcVb*|Yz`k1F&MHI76l4%vJu#Er)OTgp70X+}y(gBZtX;|2G?{Mt% zBLv+TmhBk4H6;E0A{-@(BpFB(Os|o&mE!`ww|RTrc-p=*0`rlv?E9Rij6M%h7=jKI zS$5hSlKH;Z#bImIj}Jq>!LfbYReiCV_qnI(oET%o8;TQKgh|QHYKil|o21$iL${Yk zQ*cV}Lq$|mX%{StP;o~F(_WkVU8~|4!_OIBlfyb8_sF;J5z&%$ZXMvgvviyeS<%>1 ziS~uPGGcx@Sug}VXKBXKg$fbJ4DV|uE0KQB~ z{=NZ~R1Szo$%`279`T4!0G3Yd!VwBR<3cbLe?j$Nx$)iiHVLh-)iLTx?g7U8lIAE! z)!M_;J%?Xm1qo7gVX%a^=~TIzIELX*W#0x-PABJP{p?9~+2bnJ)(V>UN&mrMM0qUa zHZ-^K*61<_5kH5eFs=DLIH&S>`=rq}LPK6122OUm-hbw%$Ix|60~|TqXSpBPCo+9G z+B=RCR}!dNwG{_{{(H-`gbRnKxw#yeXZ7+4COv&NNNsJ?&F(1J*YnTq6be%CXE$cI zK1nt)Q!08+u7Q!zLuftM!^NfZB#w$db@=a`+XQF&hiKvD7({*}2s<;;Q_fGwGIxp| z*HsM>51=m2->_zP9p0s|H2hDAuh;7qn;)CppgPa&}zS|(cfOWS}GyY2j0ZUYsxW0Gd{2WZ@tf{A5lOkB;yqi zL_c}5Mbe)0{XK_n7#zPfxD(An8J5!qt4Vc~49&+2@}mB{#HX}a=nJE3r(EF)22xOq2iBtYMbi_r1>G#Htz-Q&!GM#A%xx54UW z4EG53Nk4r2-Te*S%VnAo6-@=|_To zwN$u2`^D1{&g|nrLWWG>AevMgsy}v#DKW!mEFT(?_ES5Ig?z}hVK{_dLttD@7bx6o&SE$^vmsUOVbOn|^>0?+ooZG$aCAGJx7~Ks67D ze!%kPG?#UAvtA2m;W>P`Jxe>+RJG3j28n04SpAU>9DR*%TK7scqRa-AZ>af|<_t}y zpR;Uh21D_y1`{czPYS}x_DK0XG>F*R^t^>ivwO`s;L{vuzBZ#p3Kw#{097m^?u-`;mnNTRegB#yMmVK`IR7O$rJSj%uOM81TbxSNkM`6zreW;html)zUj?wsN40nNtIp?CIUJcQNx>6XR0t<^cu&l z(LU3Gr$MDYrN}NI^DecG+(Qj+&1%2M4eKsQ!Qkr+r;1vkv;<$dJy~onhdNx@oS=+~ z`m&6Q7np;G+(ds~^1z2Y4Bkh4r~LB=0u}Aw(tL+JRG;wSyL&U(y|E@?TdaA{ zIFqAIh?|eO1TK1kPfD7F0-kO$gz3b+MCFwK>0%_V>y@pb5?LO9YGlGjEw!!5a@Y@t zMpz?=fbVY?QFSu0KWMV|PwN5hN=$KUevVrvc0e;k`E#}z8{G1KPx2Yn*yM+yv2;Vc z-S?d1Pnn{UsQT=YF&OJM+Y&)X``GL@IbX}!%WUeIgJoXk6uAC-h^qQ-mteZeIbqyH zLM&eyYyD@)8I$E*rcU^JC6mMgeFgQ)MG=|r6s|LkUR&W~VA2{}*#h+UgEW(?rP9dD z`1DR>mtdpWbin4l`HnAquoyyHjegc`whs7t#Yb91OX9E{apI zNOfn|!*}`$I=UsV`MATyy}Qe;rtw0vph}p$r70!NFl?HfN;tTm-IaHmMX)~C?+tmo z5e{%{<2|I+fx({0U*74z8s^7rUTye7BDqCbjvw@;+jjA^Ho-ejz=Yk{ORsMLF}J|g z>0d1semJFMymdj7_bdjD@9=ANBRBI5?fhK$9aoy?nciu6)!*#fFc!KlKq=)bc-FUG z4wvWoLGWCgZK#Y_teiG99+XtS#vNy2;gF3ueBhCid|LzN5}y{MfBim_V%pC-OT80& ze&g9V60!8HhQ%ejB+ui;GORC^Z{F0VU;>)HJ;=@3yaEmy=3*fGPtz6U zAuV&YT%gAVSS|v!r>`@`3mg*RlK#)V_$mEO?P1kdmEB}Rs2g8_$&z6#Gg2)=a&~NS zl-y<&;;i_B2Vf&CXUqSnRuDH0T!-6|0geYGpk zBA9zr-K7j%FsT1nANW4MCx03soaK(|?!g47J_BW|nok`qE#WNMZ6x?L`j=ck?lzu; z)E%Y>$%G7+UQ)HT?i*jRb5;PV?(#cSg?hT=4S|}*y7aCi2=LrNnLo6f@SIu}Z)4w4 z_@u~~cMmK4z1TQjVhOBEg>37k(?v1cl<*?;4t}p$_uF$9PE`Er?VRmAhV4(I{K!`t zVzpi#IBXRU?V%SfJxEuF*3#XFzWVA$$HKVD#Fwey^JLIt_w606&bq9GNmUz`ZxcP& ze+ltwxxg0T%<6~I-ZB3~KW##hO4hAIH9z^FJ7k}E+E490H>oT`$_>wxqM$(*hT(x@ z#X0@NCICk6uxl2=?*4qnK@7pW0Qn6c2E!7>e{VTuCyr`OoOc=^Fz`s9q-0g2=a%TY z|1_LaDJhplqS&=``4oT-Mbyctt9JX+xGsD4Q9AjS1ns=Z{fv7)z30XrmM|tvuQD8} z^*f1XYXNbsag9Fvoi<<{NFbG!`sthj;XaH8tis{knS)qE=fPhA&mq&#^`Z`+MTscQyiAmkW-?7Qw^XRr6=maaC=MCo+ z(5mO((eta{Al)|C`(Y2prgtjyDUChZ8PoVpGv49Mr7glGUeG6}&2Vo}iD8l_4Jc(V z0W5Hz$dwQ~Z!OgX@>xrmVWM?2akOYLQjoK$CwE@cuD-tK$xz0>`Q%xNnMVvIH1xgA zrnBqqVMPJ~!HFHtyyHrF*-EU=$EdJ(Zk63Ak?kf zVXeJjF@(BQkwtRGhJH4Hg;;W~O8+_O8oA1m!VD(@Ghlp-dDfln@RJw5_>6=xQwFsz z)z!&TWH{?5tnsyH-m0%fGYLY}m6H^HD=MB0uH=9>L*$bqX9&VgAYH#$F?1EndZH;Xr>X z$f9RbL^N0EtSgsG1x))9jl>HoAUp=-t_RP`$ZE2DL5sgNos08*ea-RaE^s_8Cg64u z+y3}D8ox7aqI`>S9{`5i(G=EX7j6ZQQ1KS-ea^dS>$;Xu|x4E&=||)c7Izg-Jl8SawyK%w2*J z1m1d}zWr)JlCxCa^DCHNuC7RhWp5!^sIEB?T_`$v#B=YtAU1=|9UgCj<*>)+wNaBf zn|?3?a{_zu>Oy`DIVJ~u5sIU*?k9(<_kY%zPFgvsE`<)er#t!pwTz{7fN=f z;=EzqNTg%w8cg=czF zDk-?#_RN2p8Eaae%BN~k38Qr?=ln=m#g5I+cbcn>FS7R@PurcT<1@lmT<)>9bf~g9 zF*5NOzFu4e+%@=WC597fB?gB7z>&@NCvGB>2uL?Rj3Kn#d(X44tema#M642UriMr| zNV-sQTz>1L4bwn$z0oK6{;2v?jPMWE5>4F{jKH)t3 z`WLV~)$P{3S$?^o+(Fr!_wK!o9Skf~BtCG91y9wKf$cf=1G^y>DP`2A*lg57&KupM zh=({z)mD;_s&+0)j&Q2cg$GZFSz|jBEZes$_(T;uOw}%4@56P2kseOf4{AG-yQDiq#N}&SWf>& zCFV}2J%r^`Yv;7)nHQV#53*Ao6@*)(*cmSIwA8+w$ZxiwjI`G&Tyt-{1p@kM zev6KZ0j!`z)&zf=K}7R4vo$W{0qId0;RaE51v>Ro{kFDH$G@4WbSrg}6QhAT)YdsE zSTzE)(+QdCRvad|Y`;iVAWR|Y25Kbx(;w7jfpxSI9gdQles9-SQPgv0n(2+h92m}; zN-3{EdXSgy4w*mG*reLE2d)r=Bg|o48KW~yA1qp^2Eu3| zB_*I4-Z~8zp?AJ!lVF z9|LrU9?lr@-&p(Usegz|A`rgn(9BjftO}Y4Xfo@?6i4IDz@W{SobWKL3Ay+{>1b}k zU8BQK)n+ZLq+owFBg%EF@DVMcm&E+I80Ea5|1;;P>8dpUL$qcB3<hpGRx9$bKv7U~II=MA9lsD;fCVR(JiBi-I0fzc3x&&b4SbP)Q zd6Pv&mmHa+O)dkmc<^Uk!g42NnEs?}HHvT&{s4du7Fmj}{B|6@pvpT`l?==Vu^{kZ z{@x+JQTYE@eQUs@c=uHzt=9@~^sz>d7n~+8w#KklDw`4n6vx8t1i8rO#54jAhF>!X zx6PY>9by`TZg{>`OW{dZ{txw{^)%&XaSHyri4Flg&) z?}UM7l+1K9tPa2hg!R*9B=%$Oo`pqViQh6kmuIu2|B7Jazt%2jDVf<80<`~(T|>Ex z2SEz*$HMTm)`ydn{g30vCYfqDs{y0!l?b-*dl=0BWjCNhO)VhF->H-*6qTOcRyx;? z!j;(N?>?2nb?=T31t6L?Mq#EusN8yAi2QuAjv~GUv^*y=-%^*#13Lh8Mfp61TH4i< z0(o#LGiS4mx;h&spA@_S_`g;m=YNEc=`m>%%gx1K)3pU$lQ%dYw{BK|yT_K@Wk+wO z0HUGMQ~W4r(9#e-onyv&qTTn%{D@m(I}d$hX0VFi!f`weI5t)|{JJV2>y6wFx^#yq z-!0?L^WLAj&%lpa*b1|z4Sajc^!7g|&sNtR!oLO}5KXQ@5{l0HB1{ZW{)-Qk-))Vo zo;LLj9tCh0AIW(luGVk-+ph|w>+DWUJ8w(y?@p1Y=B)(S%LakrDb0pQ8B@Zp5;FuC z|7Cmc8Y}+?lm$#56}Ovo0Q{y;dsTte!N zE{?Kz5YR6*K)4QwxM1VSjF5+bh(QFKC7h)=CkZQ{jGOm!Z=jjfW}}m5*0r2pV~U$( zE3Fy4AT_s_jhtY$IN6Nk>)T3};O*_!4ojk9yv07vO{Lc(=bOu7jTa#!#E24SSe^`i zY*9dSMAu*!Z>e`XjvkwKXK1<|W%{d&4t58v`ER*m7!DkA*+}AJcb3e<%SnZ!o=Sln z?&oXLC+F;{oap;fS_|dqc7N^J`PchS)2Q)N&)aJHUIhblsBfg)HuhEhi3(NrP)PjI z<~b4mIB}0CqGKTl4IECw7cF)i!GniNSg=KcOcQ6$&zIW3GjTK*l%&ZB`LRx830!a*n~ zS^%t)jsnC@m5gEz0a5=o7&6@exQI6T+iS+8{Kev}lVa!#6k>sav16zQSnHxG-8WPdqnxqp))Ov^|!0y5mqz zzaAWH3caLr=(%&S``0?eqwzS%R5tbQJE=7e)wn5Ro6_I&&}~Pu*cV|lz>GXt6iui& z=wR%mpzB}H(HQ}(RQDyI^dZjb0)8wsasgvSNuNZE#_h>W6Oi`;SHYNY%jO9NVMqKJ z77T{boDS?dzxPKX`;Z#XX4Fae7m<6|MlxJpD$B&hDw70qSJqZnhf5QE&cAtnG%ZsJ zh_U5F=4*}Rg}x+mh=*P^H~)1P)(nWBX4l29DIZwmvPGtz{#l3aNf!hkYQ0h#6$#+f5st{#NlPC_JtSE z8n4nT8!1rC!Z+1hbrN#lSa#hdVZ9LgV&T?cjVM|RceR?v98rzyvRjq?7O>9)$@dE_ zzcC@v6Y*bMDtCCN-D_5Db6Cs0gk%CyMF>j;z9eQl!KoPnHa@7GIZM^vnP0bb@A6U~ zj{7hwAhmJCEe9vs{ENyz0U2lKr9SbFKW0bpC}??fwXrcMyU)F_CVX4zA6d!^)&G99 z))+!%p_Dfav4-h<=Ef1@x<1z>g4OfEhMZ)_x}Q!1n2XppglJeEzrYO3KCXvZpfU)U z{02cmq4MqlRBt z#G0YfrjmD^15dEgsnPbyuxhKdSYmhmK>knT-&!|M&xXivsa|2jyj??%#d&#c0{(~7 z1+|Xfh+;Q?qA$izcgt@XL{A=mRzeX7qYQ_VT1mx?K7ROJh zuOBtpjiKWN{-84jrr!a_&9qL#e`)O#NLPIei2q@UG2(#Lgv^7_v8?}!vKb$bCtCUS zhi~dk^C-E%F3RNx# zqez0bj(??5FKg_~a|HL=2cpJZ$Wb5$aixq_wJ66%aLgozx|_8?p5Kx3eEXSbiR}#) zKGP5*N!A-j(vc@gUQ=sKelu#M#l24!$a5o9J*s0H&XSJ3#xb&;t|zf>)RHx%flRpM zf2tq?7=&Q{fcnvbnte#j9oxgS3(afMD(ID8!0t}<_~fJ{l_6~>>&Ou1WmF!>Y9hWq zHnU~r8e}%e7*DoqfNRv*nVjxr}fA@VB3n>)-B(`#tLx6X1-R=l+(l z_vKBBGBn11wJrL8E7|dR=hf7kz2Tk0V)+f2{hdDi?}SbXtmLrgx;|mmkDxx8uXPCI zCj!9w?UunlaUs|QXc6Z`B_cJaObo6*xC`Y^c7;Go2MEOUkphSS?7n29P zGMb^c&qm`mTuH|9 zDPMOR)f5iL-$}kFD5b&H53&zsz<09{GvQIn-8J8xZsw?&{RO*}vf2)Fwi+aNJd!ff zv?x7~=0tEyhx2@8Mr#ywdHc|O`7dN(1cB8S%;{3P+uE|1sF7yFdNCqqZTyjnAdc@S zp<;PAct0jFb-8~(;$EknEMkX&GJpWA*O@XcE@_gK#E)X`gqxaz zQ%X=f)HOEH*8ljX9U}*eV3v^f--p0^N=A$b#g)xL%S6IbrKrE^^Ivt!hUD;d1_xtm zhaa#HH2Wx&P?8C474NN$mqqE5c~Y3){RJ1gjlIl{HFs5ch0z3SS{_b0v7;U@Z(cfh z>c*|*4A3g)x|Dht!(s!taN_U?eFOF>ubaXFpRT}2dB2?(Eh=vol>=}beJ01{IV0S# z6-83UB)^)hS6PMc`&Pi|cn`;SEzoj6`|6P$Gh)@BLneo z#9*w>9IUDSHrH!Ua_GBtsrb@{*7>M)8p0MG_~BuXMgkWR?tN_tQFN1NUm6P|_n_a0 z9w57CSoj2$vZeFT5<0f!M^LHBsO;WEg&V=xY<}MUaRAn#I+AC0avaQ#4jH0)Y**BC z-k#aHrAjTeS5uN;G#rD2GXpmCzy?N+^utfI8Z|wSKm1;j$(e;e<_DJT(u3*lM#j!i zoqxjZY`kB2>O5N>n`A%^=tl->-J+q$U`SMv(e;hGW)UD_?v{BKq0MpJk7o3(&fjh0 zu4Y&oI6mP;k`K`)&M-Nb%>4nkdMdkjMXUD4bgs*g{o{oKDT5Uru3Sh(@trN)XY8sk zl~(rbMNRn}n%_^KEA6j=`iF~Tget%>@K2p=8xUXjj74K;0vy)J&6wNSF9PU~_OQYA zK9|K$j5|SKW5`k4n^*`^Alwg&20w42UmiJbyoB7wj&OHxx49j_&KEFW5%r^(W19Jg zv)_6{P(1+fgbnv^vsch1WjobQoR-AGb&UJdY~6bQApoD8RzFDyzxA$xxh3`)`03&z%-}WE#I(ES- z{k}x6+uYGzrGx%*Mn*|%CudILasD(o#N^;DsPs$izaLNMTF`@z=Tl)2z60F#*4xT! zUUN5>JsQOwP%Y>rbVCbFzvg*l0r8%lxIM73w}0^ODd72?CpMn3n&E+ux%w7V9usY^ zq>lzMOz%bO797+p%S(y*geAxMl%nUN>($Hw#^l=7j}{*wOz znCHovXgzI+&3eoK%hNOp=wvhX@IL}-*$kve($$ZaKwez+L&fd?0+rw%5{#;xn7aNuOLw_wrz5z@CrgtiO@;1 zg@}RGh-%p)6B*JCq6%OCj>&{^h23PCtlgu+6<4Q=(`YB?u4I){gJJaht$Hi;OP@ES z7Ex)f$?r;;yRO@VNN?lzEqiw`9KRhbKrN7ZhT3!Q(s@6821^9~(SmNf?8Jk;po(o( z(FyM-sdfltzOw5y83c$Ld?uyhx{VI{DOC|Kv)Orpv|^V>y;|3TvpC%{f{`$--sy3kQXgbm%PemEZ9Ge)m>7?}3Cg8C|OXI@c+P zzZM-uqCq-x4|C+!&A{q&8cTeJ$3i}CwSuPpDbrdt|ER1Ow%Ycq(#02>%!W6TRH>#Z z1V@JS2>4vu%Sks|7pXb92ZFgEcESfy&6ImS`OHGkhD$_hON@?NocaXxVa(}Jz32Le zQPS3;h)U1%Rmx}huHz1tWjSgy7ld8IY&)@S#J%aCXHahEAA4QU`lwXK$1t?Zv&=+F zKWm`H$qBIM@jd(N%}n&pDUYY6^&`Knt#GM*&&T zfY`8U4(!t7Fa7G|(z+JN2ImkU)e^2^<}iQC#u5p}%GZkeXG!@hu$2^fxOG?uWU6$0 z8JUbQKJW5)X%r1ZyUlj1Jm$`N%j(lVhrSfr^60ZoDSht%ceU4rB3kNUgo_$E!#|CHW+%YU6!xMPlZ=|xoAMVMcP zLqIc~%tGbyd#1yi$d?~a&kq?*rtt=ZI}us;egF0sF1V}n`H&Ny#y{RO_coqrneGm{ z{_|(D8RHmbnP+?U3}7_W))ZA#6ER`GsVX^t`#!vBQnN!2x;39kV1$ZV!?Qur&$@`n zj%Kpdzt(aNAY;?5Cr{u0Wa71mUXSjJEmTRh@zeT(BdKP)OZgWW0p%%tx>q(UIwj`4 zwy9Rj`^NG%h9$N|fpic4;ZeSy5|&drsU~BJ@Qh-bkV>nJk70*( zhxdIFTbiPlH_e3vP@4w*#R}3Y?Htdj#GG)vNRQRYSsy;$0r2qk zK1phI_6xYR))6AGM#G`*6hTUphL&BvZdwd;l;_&B@HC+-biy4UL zrR$G^+=DCD)g^dPzKmbn{SFR}cHM@z)8itne~YLJb`j(%$!d1Zl)Y%^N*n_I1e3l5 z%}dw6fhIfUJvQPnbyIS*Dut9=wbF}Ln>|@Bea_kJHoJ%~qShiB{QCU#eQ$;`gl%bb zw+;F#(Hvp0p>f-C$g+^EaFSJCB7hh1Mwy3AKULC;Z zZrG%2%dEEo1{&Wy=|_?r%w_rdXtqD!=?VPTMn)3+X%6o{8+}1{*{twVasE;9|AeP< zaM?cuBNgIkg%X7(VJjubCg3P@jrxw|DgV|Zp@-whC8W;P(hOsdu|Oz{v;1wpz)-FW z?<`FF@HhkO{_*&{eL&9<2!(N{VX1k-OFrp#`p3&@(gL63V`tBOLglk;iG~v81Bx=5 zop1>{x5k*j-*PMLjEoM=jx_Y!G}o>}dH3b_zT(-3mQ~ndv7KKagorkq`gBg``#ncD z$AM{rk|=3{s4A5f48e|k#Jsa{P4}hhda07$9$1E6nRh~zvYob^2d}unyI9RsUr=aP zdott*yAVnGCdA`R(syLV&9o8VlHMX3vEYnUYsOsJ*`}NeVbILoi_flhsLD0#yrm{? zoC|aagk{Y;47!r*m=1a7&`DApw<%a1&06kDDFQmFvtu;vljS{hg@es(6^H9WJ?3}E zV@*ppX6tk z?wH_tHBQgEd^j?K-K@5)@61UbOPjiuihU{y+j`X&AwG3TU3&lSVU|z5wK{z0$_Q|XNpcLAf zTo$mTZ(z&iKZ87W&+$sfLaoky_<(5yA&DoUdxC)VVyUa9MnH+B6W02t^cH@_1kqXNTgx*_RePtStzsL4K#7*^*j1LU&(VP)LU!s4VRqx^?q?JpwrCEZ^eAq zoH2Bwl>lLmB?1BF!HdnaC_;FM8({(ihP1!1#NDj%r*n9d3(5jqFNrZU{1HE|-mfby zeaur1O_4?1DR6}iuWhJ3YHLH5^TukM4i@+41X9}mtpw43>?V*d7zAz}uz@WFXlwM9 z*WKC60ZVrrbl0)x+U&?oYrWs1MYZ^OFYgk`%X|`Ex4{IN24~CYzW>Pd@?3{3mB2Sr zxx876aBx_RX|>~J`0V;NU4L5A=$J+5&ij0`gIrn5xfIeGi>_tplgN|%ALQ8cho7BY zRb)xkbX9=0hw1)matQYS?1;n5-R=kh`jP|0;#Nb^ zl)mAoutxqV%}s2iwami9nNf6ow`wkW3&;EZ$Ej`o@;PIBa z_9$&s$P^eIOmSx9UrG6%m$28<{0IoDBoYw8@czE!J~;6Lbp?KyqYMEz@SrSX)gvR= zM7T42dbS1LjCb!`SZb1a4_?a~ImCyNg8H~YKymH7RnOZbIRn{r_kJO4*Co9s^4WGh zg0G1Z$2sgDNUb%C;0nk5AZgN@Fx&dV^)Y2Gvm6%Fotelg@rJlw7XS}rp6vv{Vl^Q0 zgkLur-@&ulb27v-2aw*0Qx?E1taDj!17)dH=IBGa#coFF-CzuQekW# zEe|yO74$|Zjrw!66@D9dzx=R+5ed(@?L3Ih{^ow#$D8Z$T`EOs9h&;g|8Zsz2)g@m zu(e1`NLbJ$>1(^}=#u>2tFKARWarIWgxNFVUBc|j+*piw48nnD8qhF}rD|Uiqvrn+ zR_>1Umw@GZ^VY;C#2Y37o$|OR(YoA>wJ2WsAnN8>58f_KVcz6>@=Qqh?6;JIon(^t z70un3MAC-pYmzoK$=dsN` z>;c4i+l*3y!>Ad@hGdP_n0V8fvF>Z0#;;I+=Q2vqbn?=$@avgjMT@R+O~#S)ay8!j ztSBS_f#;dM)~CMkaikaC2Fq<7$$*=F)1>Z*kJ>Jm6ddMmWml!NsN5k@l>3hanAoPO z;m{8#d(Pv-1jQYHv#yJabkr7;QEI*_pLp^?w&lGmQWJr7z^Vg?lE6kZE-7P_$qTF) zqbUryHbbdj29$Y9^G01$>A_ zi1iL3Q9t*#_&iEy?*$od=Zl>f{uFiJ1mWajis|AFRV^4hWDuJlWMo{Jo099!twFl?{c~*HLIFT zC;4~nYRY*I@K=d&%Jrrho1=Rs7wCc#`~yCP*k>N{*R@Y0{jvdMZf203xZ!{x&w#B>Ml^6!u0bO32Or`0R|?^l z;F%UYZ0cuO^E_wsJsBCPUqQI~YW98En9{dmWEVV*|;9*x1exCv#DFK9E z>7SBb&L+AH%`B8rM_}JNVVPp%3Q3B8x*oT0-+~#VLMa&bUc7L$+`+kder?^>=mFYI z7=hoKJSvl&-Bm6MdHLTcPb~UCQeLTmRjnq`biT%oTg{&k!|Y?ZR~;GGr* zOA?zDgF(6D+A4>(m`h2drtPQu49@A#0?ZHGW_!!m1<-lqZiCp{34@mCrUL{gUt1n$ zJ2EpfHO!JUf#!9aZ?|xq_6?us3q&8b`bS4-19V=FW7B_6?as$lg0QEGMm+yCG%(dL znYf;LlUk+TD1qlHoqJ{4@pLc8Z)xw^tAtaf>xK7f#KVJjqEnRx*6(GeyH8sv`N}sb zj7o7Thy96CPT{}id%pit-ADgev2{*FpsLrXbob1pU!n0Qto)9W`WPohs*#v2yLp1n z&s|Y}c#IUCFv5!BeI7j49`~R=5yebW_aai(BINXHbv3KQVDX~G(}R`YcP>{TfMjy1 zf-}ubA?bm+M5BW7j=#6L+|SCI1UtFb%KpV)u@w0c`6Kbvi zneEjYyS>@DKZsyW!sCr2i=&knfI zP6KI8Y~^eF8Iza7vzm8h`q+wa`e#sKsM0|vvoBuK&M;(9z}%T>_Ui}|(FMGpN&dYT z`?SKEwTNZOH*`kFNdnK^LADC$j>&`m`EabB*Q4J`Pvn3`K>g3;P+IQ=`R?Ma-$Kvh z{&`WtQ@p2a@xeu=)R6U++jn8pH}$FFz|G3(SA!nlo$_lZ=12==c**tB%N;cIlR))Q z9o4dC*umRrt?R54H84H4+HbXbbk~!A1}pwRgbf$ZAU&|G@?3H;wSbOK)XR$wiLi&8 z5g46`pAZ$kv9)n&Gl0y%lz`Qsl{%;`POrazpaF$4xB;0L+QBh+c=6(q8 z-@H2oDcZLn9BFneMq6DP!uNeNJ_s1o+2POy&W-%&UD7gHyb%>vEF);jc*#0M0K zqwOD1s1wqDpOhnI5s+6$)!1H+&L7?Tc_DJ7Vv!P%#eHh;=m;NC&fgmX!w*YIJ9$8< zVt*QylzhlONpu|=QKP=W`9yw_98@6Rd1z}>{Rv)-(1BlT{);`CRLP`AOt83u{6q=G z6q^ouJv!2wu(<^KZ*a=A?Z3MpNa{}Ao{ z4-_PMfLG_lJnDAGOJ(yGDDD`5eOGsFyD{U||L->#YoMS{CH9Qw2<6U#Qqg`R`YRfX)_he$f|`o$FWms1NB9voCzr)< zk+rS2{5OraSff{sXE-Ea6u1K*bKzQE254{_zLtpMI^7Hw)9*^@qE2I=C1?&$f^LIR<+rAINJAqeF8Xje2G;qQ1G;+h(Lb!H$}vbm0QImg7>AVlcLPE31vM9ryZq_Aaji|y z%y8i8C$UgB{jHqMQowZC$SFKUZ&}+Ey|HEUQ>cm`b2^`%_v#-WI4D-I%GjM0ZuJIN zr9_7cz+Yv}ol+%LD|I=lnVg#k-UeBCn2fmPq?~(3_}})_<~wAT$EL*K1*BHTVEDI5 z*V$9&KO(ghCR`W+n7;cFEd5gYQ!h}?8GpOZwd4-WeK&hZ)%)ZQZuJS7Km$SGK=-t! zrZ2x6yQ1cK&5A?uKsA*bd^kzhz-wxH%lCbFw49p1PSJ7DYpydO=%yWFyuS@r6vceV zh9w?vVA4)~{4dkv0kSMky3fMHn~>s0Hkz{d_}HoJ>Mm`vCBlt?+;+_IlSWMx2$%z2 z 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�)u`o9?CZgV> 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�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%0ACRYANUwn#lJL~iTlmv|{{>pM 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

!$eQF|xOlT7Z$PK{Q4C$jE50~1JW0mV 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 Q@V^SDdTK|WoamGVNJ+|U(+QNO{;*5Y(E^#@-w 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

{$Mbe!K?mQjpLF(X7+u-%INYrR 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∾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�_TBD$MPS{ScB>d<#yxJXW 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

#|CRCpXX3%6~rk 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

_P>cUP@wV>pf|{%rol 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 jvB*kqjHjo#b-A|s| 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 P@xo7-&vI0ZO<=Wnpr3lXk`X~1v!a`= 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 Note that the SP1 SDK itself is *not* `no_std` compatible. + +## Wasm Verification + +The [`example-sp1-wasm-verifier`](https://github.com/succinctlabs/example-sp1-wasm-verifier) demonstrates how to +verify SP1 proofs in wasm. For a more detailed explanation of the process, please see the [README](https://github.com/succinctlabs/example-sp1-wasm-verifier/blob/main/README.md). diff --git a/book/verification/onchain/contract-addresses.md b/book/verification/onchain/contract-addresses.md new file mode 100644 index 0000000000..0a23f6ab2e --- /dev/null +++ b/book/verification/onchain/contract-addresses.md @@ -0,0 +1,101 @@ +# Contract Addresses + +To verify SP1 proofs on-chain, we recommend using our deployed canonical verifier gateways. The +[SP1VerifierGateway](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1VerifierGateway.sol) +will automatically route your SP1 proof to the correct verifier based on the SP1 version used. + +## Canonical Verifier Gateways + +There are different verifier gateway for each proof system: Groth16 and PLONK. This means that you +must use the correct verifier gateway depending on if you are verifying a Groth16 or PLONK proof. + +### Groth16 + +| Chain ID | Chain | Gateway | +| -------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| 1 | Mainnet | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 11155111 | Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia.etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 17000 | Holesky | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://holesky.etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 42161 | Arbitrum One | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://arbiscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 421614 | Arbitrum Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia.arbiscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 8453 | Base | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://basescan.org/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 84532 | Base Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia.basescan.org/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 10 | Optimism | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://optimistic.etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 11155420 | Optimism Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia-optimism.etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 534351 | Scroll Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia.scrollscan.com/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 534352 | Scroll | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://scrollscan.com/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | + +### PLONK + +| Chain ID | Chain | Gateway | +| -------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| 1 | Mainnet | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 11155111 | Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 17000 | Holesky | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://holesky.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 42161 | Arbitrum One | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 421614 | Arbitrum Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 8453 | Base | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://basescan.org/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 84532 | Base Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.basescan.org/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 10 | Optimism | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://optimistic.etherscan.io/address/0x3b6041173b80e77f038f3f2c0f9744f04837185e) | +| 11155420 | Optimism Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia-optimism.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 534351 | Scroll Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.scrollscan.com/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 534352 | Scroll | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://scrollscan.com/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | + +The most up-to-date reference on each chain can be found in the +[deployments](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/deployments) +directory in the +SP1 contracts repository, where each chain has a dedicated JSON file with each verifier's address. + +## Versioning Policy + +Whenever a verifier for a new SP1 version is deployed, the gateway contract will be updated to +support it with +[addRoute()](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1VerifierGateway.sol#L65). +If a verifier for an SP1 version has an issue, the route will be frozen with +[freezeRoute()](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1VerifierGateway.sol#L71). + +On mainnets, only official versioned releases are deployed and added to the gateway. Testnets have +`rc` versions of the verifier deployed supported in addition to the official versions. + +## Deploying to other Chains + +In the case that you need to use a chain that is not listed above, you can deploy your own +verifier contract by following the instructions in the +[SP1 Contracts Repo](https://github.com/succinctlabs/sp1-contracts/blob/main/README.md#deployments). + +Since both the `SP1VerifierGateway` and each `SP1Verifier` implement the [ISP1Verifier +interface](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1Verifier.sol), you can choose to either: + +* Deploy the `SP1VerifierGateway` and add `SP1Verifier` contracts to it. Then point to the + `SP1VerifierGateway` address in your contracts. +* Deploy just the `SP1Verifier` contract that you want to use. Then point to the `SP1Verifier` + address in + your contracts. + +If you want support for a canonical verifier on your chain, contact us [here](https://t.me/+AzG4ws-kD24yMGYx). We often deploy canonical verifiers on new chains if there's enough demand. + +## ISP1Verifier Interface + +All verifiers implement the [ISP1Verifier](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1Verifier.sol) interface. + +```c++ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +/// @title SP1 Verifier Interface +/// @author Succinct Labs +/// @notice This contract is the interface for the SP1 Verifier. +interface ISP1Verifier { + /// @notice Verifies a proof with given public values and vkey. + /// @dev It is expected that the first 4 bytes of proofBytes must match the first 4 bytes of + /// target verifier's VERIFIER_HASH. + /// @param programVKey The verification key for the RISC-V program. + /// @param publicValues The public values encoded as bytes. + /// @param proofBytes The proof of the program execution the SP1 zkVM encoded as bytes. + function verifyProof( + bytes32 programVKey, + bytes calldata publicValues, + bytes calldata proofBytes + ) external view; +} +``` diff --git a/book/verification/onchain/getting-started.md b/book/verification/onchain/getting-started.md new file mode 100644 index 0000000000..834a23dc18 --- /dev/null +++ b/book/verification/onchain/getting-started.md @@ -0,0 +1,33 @@ +# Onchain Verification: Setup + +The best way to get started with verifying SP1 proofs on-chain is to refer to the [SP1 Project Template](https://github.com/succinctlabs/sp1-project-template/tree/main). + +- The template [program](https://github.com/succinctlabs/sp1-project-template/blob/main/program/src/main.rs) shows how to write outputs that can be decoded in Solidity. +- The template [script](https://github.com/succinctlabs/sp1-project-template/blob/main/script/src/bin/prove.rs) shows how to generate the proof using the SDK and save it to a file. +- The template [contract](https://github.com/succinctlabs/sp1-project-template/blob/main/contracts/src/Fibonacci.sol) shows how to verify the proof onchain using Solidity. + +Refer to the section on [Contract Addresses](./contract-addresses.md#contract-addresses) for the addresses of the deployed verifiers. + +## Generating SP1 Proofs for Onchain Verification + +By default, the proofs generated by SP1 are not verifiable onchain, as they are non-constant size and STARK verification on Ethereum is very expensive. To generate a proof that can be verified onchain, we use performant STARK recursion to combine SP1 shard proofs into a single STARK proof and then wrap that in a SNARK proof. Our `ProverClient` has a prover option for this called `plonk`. Behind the scenes, this function will first generate a normal SP1 proof, then recursively combine all of them into a single proof using the STARK recursion protocol. Finally, the proof is wrapped in a SNARK proof using PLONK. + +> WARNING: The Groth16 and PLONK provers are only guaranteed to work on official releases of SP1. To +> use Groth16 or PLONK proving & verification locally, ensure that you have Docker installed and have +> at least 128GB of RAM. + +### Example + +```rust,noplayground +{{#include ../../examples/fibonacci/script/bin/groth16_bn254.rs}} +``` + +You can run the above script with `RUST_LOG=info cargo run --bin groth16_bn254 --release` in `examples/fibonacci/script`. + +#### Using Groth16 and PLONK without Docker (Advanced) + +If you would like to run the Groth16 or PLONK prover directly without Docker, you must have Go 1.22 installed and enable the `native-gnark` feature in `sp1-sdk`. This path is not recommended and may require additional native dependencies. + +```toml +sp1-sdk = { version = "2.0.0", features = ["native-gnark"] } +``` diff --git a/book/verification/onchain/solidity-sdk.md b/book/verification/onchain/solidity-sdk.md new file mode 100644 index 0000000000..822ab620b9 --- /dev/null +++ b/book/verification/onchain/solidity-sdk.md @@ -0,0 +1,122 @@ +# Solidity Verifier + +We maintain a suite of [contracts](https://github.com/succinctlabs/sp1-contracts/tree/main) used for verifying SP1 proofs onchain. We highly recommend using [Foundry](https://book.getfoundry.sh/). + +## Installation + +To install the latest release version: + +```bash +forge install succinctlabs/sp1-contracts +``` + +To install a specific version: + +```bash +forge install succinctlabs/sp1-contracts@ +``` + +Finally, add `@sp1-contracts/=lib/sp1-contracts/contracts/src/` in `remappings.txt.` + +### Usage + +Once installed, you can use the contracts in the library by importing them: + +```c++ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +import {ISP1Verifier} from "@sp1-contracts/ISP1Verifier.sol"; + +/// @title Fibonacci. +/// @author Succinct Labs +/// @notice This contract implements a simple example of verifying the proof of a computing a +/// fibonacci number. +contract Fibonacci { + /// @notice The address of the SP1 verifier contract. + /// @dev This can either be a specific SP1Verifier for a specific version, or the + /// SP1VerifierGateway which can be used to verify proofs for any version of SP1. + /// For the list of supported verifiers on each chain, see: + /// https://docs.succinct.xyz/onchain-verification/contract-addresses + address public verifier; + + /// @notice The verification key for the fibonacci program. + bytes32 public fibonacciProgramVKey; + + constructor(address _verifier, bytes32 _fibonacciProgramVKey) { + verifier = _verifier; + fibonacciProgramVKey = _fibonacciProgramVKey; + } + + /// @notice The entrypoint for verifying the proof of a fibonacci number. + /// @param _proofBytes The encoded proof. + /// @param _publicValues The encoded public values. + function verifyFibonacciProof(bytes calldata _publicValues, bytes calldata _proofBytes) + public + view + returns (uint32, uint32, uint32) + { + ISP1Verifier(verifier).verifyProof(fibonacciProgramVKey, _publicValues, _proofBytes); + (uint32 n, uint32 a, uint32 b) = abi.decode(_publicValues, (uint32, uint32, uint32)); + return (n, a, b); + } +} + +``` + +### Finding your program vkey + +The program vkey (`fibonacciProgramVKey` in the example above) is passed into the `ISP1Verifier` along with the public values and proof bytes. You +can find your program vkey by going through the following steps: + +1. Find what version of SP1 crates you are using. +2. Use the version from step to run this command: `sp1up --version ` +3. Use the vkey command to get the program vkey: `cargo prove vkey -elf ` + +Alternatively, you can set up a simple script to do this using the `sp1-sdk` crate: + +```rust +fn main() { + // Setup the logger. + sp1_sdk::utils::setup_logger(); + + // Setup the prover client. + let client = ProverClient::new(); + + // Setup the program. + let (_, vk) = client.setup(FIBONACCI_ELF); + + // Print the verification key. + println!("Program Verification Key: {}", vk.bytes32()); +} +``` + +### Testing + +To test the contract, we recommend setting up [Foundry +Tests](https://book.getfoundry.sh/forge/tests). We have an example of such a test in the [SP1 +Project +Template](https://github.com/succinctlabs/sp1-project-template/blob/dev/contracts/test/Fibonacci.t.sol). + +### Solidity Versions + +The officially deployed contracts are built using Solidity 0.8.20 and exist on the +[sp1-contracts main](https://github.com/succinctlabs/sp1-contracts/tree/main) branch. + +If you need to use different versions that are compatible with your contracts, there are also other +branches you can install that contain different versions. For +example for branch [main-0.8.15](https://github.com/succinctlabs/sp1-contracts/tree/main-0.8.15) +contains the contracts with: + +```c++ +pragma solidity ^0.8.15; +``` + +and you can install it with: + +```sh +forge install succinctlabs/sp1-contracts@main-0.8.15 +``` + +If there is different versions that you need but there aren't branches for them yet, please ask in +the [SP1 Telegram](https://t.me/+AzG4ws-kD24yMGYx). diff --git a/book/writing-programs/patched-crates.md b/book/writing-programs/patched-crates.md index c29cbf3edd..0bca72416b 100644 --- a/book/writing-programs/patched-crates.md +++ b/book/writing-programs/patched-crates.md @@ -7,19 +7,20 @@ Under the hood, we use [precompiles](./precompiles.md) to achieve tremendous per ## Supported Libraries -| Crate Name | Repository | Notes | -| ------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------- | -| sha2 | [sp1-patches/RustCrypto-hashes](https://github.com/sp1-patches/RustCrypto-hashes) | sha256 | -| sha3 | [sp1-patches/RustCrypto-hashes](https://github.com/sp1-patches/RustCrypto-hashes) | keccak256 | -| bigint | [sp1-patches/RustCrypto-bigint](https://github.com/sp1-patches/RustCrypto-bigint) | bigint | -| tiny-keccak | [sp1-patches/tiny-keccak](https://github.com/sp1-patches/tiny-keccak) | keccak256 | -| ed25519-consensus | [sp1-patches/ed25519-consensus](http://github.com/sp1-patches/ed25519-consensus) | ed25519 verify | -| curve25519-dalek-ng | [sp1-patches/curve25519-dalek-ng](https://github.com/sp1-patches/curve25519-dalek-ng) | ed25519 verify | -| curve25519-dalek | [sp1-patches/curve25519-dalek](https://github.com/sp1-patches/curve25519-dalek) | ed25519 verify | -| ecdsa-core | [sp1-patches/signatures](http://github.com/sp1-patches/signatures) | secp256k1 verify | -| secp256k1 | [sp1-patches/rust-secp256k1](http://github.com/sp1-patches/rust-secp256k1) | secp256k1 verify | -| substrate-bn | [sp1-patches/bn](https://github.com/sp1-patches/bn) | BN254 | -| substrate-bls12_381 | [sp1-patches/bls12_381](https://github.com/sp1-patches/bls12_381) | BLS12-381 | +| Crate Name | Repository | Notes | Versions | +|---------------------|---------------------------------------------------------------------------------------|------------------|-----------------------| +| sha2 | [sp1-patches/RustCrypto-hashes](https://github.com/sp1-patches/RustCrypto-hashes) | sha256 | 0.9.8, 0.10.6, 0.10.8 | +| sha3 | [sp1-patches/RustCrypto-hashes](https://github.com/sp1-patches/RustCrypto-hashes) | keccak256 | 0.9.8, 0.10.6, 0.10.8 | +| bigint | [sp1-patches/RustCrypto-bigint](https://github.com/sp1-patches/RustCrypto-bigint) | bigint | 0.5.5 | +| tiny-keccak | [sp1-patches/tiny-keccak](https://github.com/sp1-patches/tiny-keccak) | keccak256 | 2.0.2 | +| curve25519-dalek | [sp1-patches/curve25519-dalek](https://github.com/sp1-patches/curve25519-dalek) | ed25519 verify | 4.1.3, 3.2.0 | +| curve25519-dalek-ng | [sp1-patches/curve25519-dalek-ng](https://github.com/sp1-patches/curve25519-dalek-ng) | ed25519 verify | 4.1.1 | +| ed25519-consensus | [sp1-patches/ed25519-consensus](http://github.com/sp1-patches/ed25519-consensus) | ed25519 verify | 2.1.0 | +| ed25519-dalek | [sp1-patches/ed25519-dalek](http://github.com/sp1-patches/ed25519-dalek) | ed25519 verify | 1.0.1 | +| ecdsa-core | [sp1-patches/signatures](http://github.com/sp1-patches/signatures) | secp256k1 verify | 0.16.8, 0.16.9 | +| secp256k1 | [sp1-patches/rust-secp256k1](http://github.com/sp1-patches/rust-secp256k1) | secp256k1 verify | 0.29.0, 0.29.1 | +| substrate-bn | [sp1-patches/bn](https://github.com/sp1-patches/bn) | BN254 | 0.6.0 | +| bls12_381 | [sp1-patches/bls12_381](https://github.com/sp1-patches/bls12_381) | BLS12-381 | 0.8.0 | ## Using Patched Crates @@ -27,21 +28,21 @@ To use the patched libraries, you can use corresponding patch entries in your pr ```toml [patch.crates-io] -sha2-v0-9-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", branch = "patch-sha2-v0.9.8" } -sha2-v0-10-6 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", branch = "patch-sha2-v0.10.6" } -sha2-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", branch = "patch-sha2-v0.10.8" } -sha3-v0-9-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", branch = "patch-sha3-v0.9.8" } -sha3-v0-10-6 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", branch = "patch-sha3-v0.10.6" } -sha3-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", branch = "patch-sha3-v0.10.8" } -crypto-bigint = { git = "https://github.com/sp1-patches/RustCrypto-bigint", branch = "patch-v0.5.5" } -tiny-keccak = { git = "https://github.com/sp1-patches/tiny-keccak", branch = "patch-v2.0.2" } -curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", branch = "patch-curve25519-v4.1.3" } -curve25519-dalek-ng = { git = "https://github.com/sp1-patches/curve25519-dalek-ng", branch = "patch-v4.1.1" } -ed25519-consensus = { git = "https://github.com/sp1-patches/ed25519-consensus", branch = "patch-v2.1.0" } -ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", branch = "patch-ecdsa-v0.16.9" } -secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", branch = "patch-secp256k1-v0.29.0" } -substrate-bn = { git = "https://github.com/sp1-patches/bn", branch = "patch-v0.6.0" } -bls12_381 = { git = "https://github.com/sp1-patches/bls12_381", branch = "patch-v0.8.0" } +sha2-v0-9-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "sha2-v0.9.8-patch-v1" } +sha2-v0-10-6 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "sha2-v0.10.6-patch-v1" } +sha2-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "sha2-v0.10.8-patch-v1" } +sha3-v0-9-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "sha3-v0.9.8-patch-v1" } +sha3-v0-10-6 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "sha3-v0.10.6-patch-v1" } +sha3-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "sha3-v0.10.8-patch-v1" } +crypto-bigint = { git = "https://github.com/sp1-patches/RustCrypto-bigint", tag = "crypto_bigint-v0.5.5-patch-v1" } +tiny-keccak = { git = "https://github.com/sp1-patches/tiny-keccak", tag = "tiny_keccak-v2.0.2-patch-v1" } +curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "curve25519_dalek-v4.1.3-patch-v1" } +curve25519-dalek-ng = { git = "https://github.com/sp1-patches/curve25519-dalek-ng", tag = "curve25519_dalek_ng-v4.1.1-patch-v1" } +ed25519-consensus = { git = "https://github.com/sp1-patches/ed25519-consensus", tag = "ed25519_consensus-v2.1.0-patch-v1" } +ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", tag = "ecdsa-v0.16.9-patch-v1" } +secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "secp256k1-v0.29.0-patch-v1" } +substrate-bn = { git = "https://github.com/sp1-patches/bn", tag = "substrate_bn-v0.6.0-patch-v1" } +bls12_381 = { git = "https://github.com/sp1-patches/bls12_381", tag = "bls12_381-v0.8.0-patch-v1" } ``` @@ -50,7 +51,7 @@ repository in the patch section. For example: ```toml [patch."https://github.com/RustCrypto/hashes"] -sha3 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", branch = "patch-sha3-v0.10.8" } +sha3 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "sha3-v0.10.8-patch-v1" } ``` An example of using patched crates is available in our [Tendermint Example](https://github.com/succinctlabs/sp1/blob/main/examples/tendermint/program/Cargo.toml#L22-L25). @@ -68,7 +69,7 @@ Apply the following patches based on what crates are in your dependencies. - `ed25519-consensus` ```toml - ed25519-consensus = { git = "https://github.com/sp1-patches/ed25519-consensus", branch = "patch-v2.1.0" } + ed25519-consensus = { git = "https://github.com/sp1-patches/ed25519-consensus", tag = "ed25519_consensus-v2.1.0-patch-v1" } ``` Note: The curve operations for Ed25519 occur mainly inside of `curve25519-dalek-ng`, but the crate also exposes @@ -77,15 +78,32 @@ Apply the following patches based on what crates are in your dependencies. - `ed25519-dalek` + If using `ed25519-dalek` version `2.1`, you can patch it with the following: + + ```toml + curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "curve25519_dalek-v4.1.3-patch-v1" } + ``` + + If using `ed25519-dalek` version `1.0.1`, you can patch it with the following: + ```toml - curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", branch = "patch-curve25519-v4.1.3" } + ed25519-dalek = { git = "https://github.com/sp1-patches/ed25519-dalek", tag = "ed25519_dalek-v1.0.1-patch-v1" } ``` - Note: The curve operations occur inside of the `curve25519-dalek` crate. + Note: We need to patch the underlying Ed25519 curve operations in the `curve25519-dalek` crate. `ed25519-dalek` + version `2.1` uses `curve25519-dalek` version `4.1.3`, while `1.0.1` uses `3.2.0`. For version `2.1`, we patch + `curve25519-dalek` directly, while for version `1.0.1`, we patch `ed25519-dalek`. - `curve25519-dalek` + ```toml - curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek-ng", branch = "patch-v4.1.3" } + curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "curve25519_dalek-v4.1.3-patch-v1" } + ``` + +- `curve25519-dalek-ng` + + ```toml + curve25519-dalek-ng = { git = "https://github.com/sp1-patches/curve25519-dalek-ng", tag = "curve25519_dalek_ng-v4.1.1-patch-v1" } ``` ## Secp256k1 Acceleration @@ -101,24 +119,27 @@ Apply the following patches based on what crates are in your dependencies. - `k256` ```toml - ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", branch = "patch-ecdsa-v0.16.9" } + ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", tag = "ecdsa-v0.16.9-patch-v1" } ``` Note: The curve operations for `k256` are inside of the `ecdsa-core` crate, so you don't need to patch `k256` itself, and just patching `ecdsa-core` is enough. - `secp256k1` + ```toml - secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", branch = "patch-v0.29.0" } + secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "secp256k1-v0.29.0-patch-v1" } ``` ## BN254 Acceleration -To accelerate BN254 (Also known as BN128 and Alt-BN128), you will need to patch the `substrate-bn` crate. + +To accelerate BN254 (Also known as BN128 and Alt-BN128), you will need to patch the `substrate-bn` crate. ### Patches Apply the patch by adding the following to your list of dependencies: + ```rust -substrate-bn = { git = "https://github.com/sp1-patches/bn", branch = "patch-v0.6.0" } +substrate-bn = { git = "https://github.com/sp1-patches/bn", tag = "substrate_bn-v0.6.0-patch-v1" } ``` ### Performance Benchmarks for Patched `substrate-bn` in `revm` @@ -131,19 +152,24 @@ substrate-bn = { git = "https://github.com/sp1-patches/bn", branch = "patch-v0.6 Note: The operations `run-add`, `run-mul`, and `run-pair` are from the `revm` crate, specifically from the file `crates/precompile/src/bn128.rs` on GitHub. In the patched version of the `substrate-bn` crate, these functions utilize SP1's BN254 Fp precompiles. -To accelerate [revm](https://github.com/bluealloy/revm) in SP1 using the BN254 patched crate, replace the `substrate-bn` crate with the patched crate by adding the following to `crates/precompile/Cargo.toml`: -```rust -bn = { git = "https://github.com/sp1-patches/bn", package = "substrate-bn", branch = "patch-v0.6.0" } +To accelerate [revm](https://github.com/bluealloy/revm) in SP1 using the BN254 patched crate, replace the `substrate-bn` crate with the patched crate by adding the following to `crates/precompile/Cargo.toml`: + +```toml +bn = { git = "https://github.com/sp1-patches/bn", package = "substrate-bn", tag = "substrate_bn-v0.6.0-patch-v1" } ``` ## BLS12-381 Acceleration + To accelerate BLS12-381 operations, you'll need to patch the `bls12_381` crate. Apply the following patch by adding the following to your list of dependencies: + ```toml -blst = { git = "https://github.com/sp1-patches/bls12_381", branch = "patch-v0.8.0" } +bls12_381 = { git = "https://github.com/sp1-patches/bls12_381", tag = "bls12_381-v0.8.0-patch-v1" } ``` + This patch significantly improves the performance of BLS12-381 operations, making it essential for applications that rely heavily on these cryptographic primitives. ### Performance Benchmarks for Patched `bls12_381` in [`kzg-rs`](https://github.com/succinctlabs/kzg-rs) + | Test | Unpatched Cycles | Patched Cycles | Improvement (x faster) | | -------------------------------------- | ---------------- | -------------- | ---------------------- | | Verify blob KZG proof | 265,322,934 | 27,166,173 | 9.77x | @@ -166,7 +192,7 @@ Next to the package name, it should have a link to the Github repository that yo Ex. -``` +```text sha2 v0.9.8 (https://github.com/sp1-patches/RustCrypto-hashes?branch=patch-sha2-v0.9.8#afdbfb09) ├── ... ``` diff --git a/book/writing-programs/proof-aggregation.md b/book/writing-programs/proof-aggregation.md index f9bc1c1068..36ee28e1ce 100644 --- a/book/writing-programs/proof-aggregation.md +++ b/book/writing-programs/proof-aggregation.md @@ -15,10 +15,10 @@ Note that by itself, SP1 can already prove arbitrarily large programs by chunkin ## Verifying Proofs inside the zkVM -To verify a proof inside the zkVM, you can use the `sp1_zkvm::lib::verify::verify_proof` function. +To verify a proof inside the zkVM, you can use the `sp1_zkvm::lib::verify::verify_sp1_proof` function. ```rust,noplayground -sp1_zkvm::lib::verify::verify_proof(vkey, public_values_digest); +sp1_zkvm::lib::verify::verify_sp1_proof(vkey, public_values_digest); ``` **You do not need to pass in the proof as input into the syscall, as the proof will automatically be read for the proof input stream by the prover.** diff --git a/crates/core/executor/src/executor.rs b/crates/core/executor/src/executor.rs index cb6ef41934..cfbc8cacd5 100644 --- a/crates/core/executor/src/executor.rs +++ b/crates/core/executor/src/executor.rs @@ -1229,6 +1229,7 @@ impl<'a> Executor<'a> { let instruction = self.fetch(); // Log the current state of the runtime. + #[cfg(debug_assertions)] self.log(&instruction); // Execute the instruction. @@ -1660,6 +1661,7 @@ impl<'a> Executor<'a> { } #[inline] + #[cfg(debug_assertions)] fn log(&mut self, _: &Instruction) { // Write the current program counter to the trace buffer for the cycle tracer. if let Some(ref mut buf) = self.trace_buf { diff --git a/crates/sdk/src/proof.rs b/crates/sdk/src/proof.rs index 43988b6111..d289bd4bfa 100644 --- a/crates/sdk/src/proof.rs +++ b/crates/sdk/src/proof.rs @@ -3,6 +3,7 @@ use std::{fmt::Debug, fs::File, path::Path}; use anyhow::Result; use serde::{Deserialize, Serialize}; use sp1_core_executor::SP1ReduceProof; +use sp1_core_machine::io::SP1Stdin; use sp1_primitives::io::SP1PublicValues; use strum_macros::{EnumDiscriminants, EnumTryAs}; @@ -25,6 +26,7 @@ pub enum SP1Proof { #[derive(Debug, Clone, Serialize, Deserialize)] pub struct SP1ProofWithPublicValues { pub proof: SP1Proof, + pub stdin: SP1Stdin, pub public_values: SP1PublicValues, pub sp1_version: String, } diff --git a/crates/sdk/src/provers/cpu.rs b/crates/sdk/src/provers/cpu.rs index 467cca0c07..234e663909 100644 --- a/crates/sdk/src/provers/cpu.rs +++ b/crates/sdk/src/provers/cpu.rs @@ -56,6 +56,7 @@ impl Prover for CpuProver { if kind == SP1ProofKind::Core { return Ok(SP1ProofWithPublicValues { proof: SP1Proof::Core(proof.proof.0), + stdin: proof.stdin, public_values: proof.public_values, sp1_version: self.version().to_string(), }); @@ -71,6 +72,7 @@ impl Prover for CpuProver { if kind == SP1ProofKind::Compressed { return Ok(SP1ProofWithPublicValues { proof: SP1Proof::Compressed(Box::new(reduce_proof)), + stdin, public_values, sp1_version: self.version().to_string(), }); @@ -95,6 +97,7 @@ impl Prover for CpuProver { return Ok(SP1ProofWithPublicValues { proof: SP1Proof::Plonk(proof), + stdin, public_values, sp1_version: self.version().to_string(), }); @@ -111,6 +114,7 @@ impl Prover for CpuProver { let proof = self.prover.wrap_groth16_bn254(outer_proof, &groth16_bn254_artifacts); return Ok(SP1ProofWithPublicValues { proof: SP1Proof::Groth16(proof), + stdin, public_values, sp1_version: self.version().to_string(), }); diff --git a/crates/sdk/src/provers/cuda.rs b/crates/sdk/src/provers/cuda.rs index 2cb28b070f..5f8ab983aa 100644 --- a/crates/sdk/src/provers/cuda.rs +++ b/crates/sdk/src/provers/cuda.rs @@ -52,6 +52,7 @@ impl Prover for CudaProver { if kind == SP1ProofKind::Core { return Ok(SP1ProofWithPublicValues { proof: SP1Proof::Core(proof.proof.0), + stdin: proof.stdin, public_values: proof.public_values, sp1_version: self.version().to_string(), }); @@ -66,6 +67,7 @@ impl Prover for CudaProver { if kind == SP1ProofKind::Compressed { return Ok(SP1ProofWithPublicValues { proof: SP1Proof::Compressed(Box::new(reduce_proof)), + stdin, public_values, sp1_version: self.version().to_string(), }); @@ -89,6 +91,7 @@ impl Prover for CudaProver { let proof = self.prover.wrap_plonk_bn254(outer_proof, &plonk_bn254_artifacts); return Ok(SP1ProofWithPublicValues { proof: SP1Proof::Plonk(proof), + stdin, public_values, sp1_version: self.version().to_string(), }); @@ -105,6 +108,7 @@ impl Prover for CudaProver { let proof = self.prover.wrap_groth16_bn254(outer_proof, &groth16_bn254_artifacts); return Ok(SP1ProofWithPublicValues { proof: SP1Proof::Groth16(proof), + stdin, public_values, sp1_version: self.version().to_string(), }); diff --git a/crates/sdk/src/provers/mock.rs b/crates/sdk/src/provers/mock.rs index dc1df94681..ca317972ac 100644 --- a/crates/sdk/src/provers/mock.rs +++ b/crates/sdk/src/provers/mock.rs @@ -59,6 +59,7 @@ impl Prover for MockProver { let (public_values, _) = self.prover.execute(&pk.elf, &stdin, context)?; Ok(SP1ProofWithPublicValues { proof: SP1Proof::Core(vec![]), + stdin, public_values, sp1_version: self.version().to_string(), }) @@ -101,6 +102,7 @@ impl Prover for MockProver { Ok(SP1ProofWithPublicValues { proof, + stdin, public_values, sp1_version: self.version().to_string(), }) @@ -117,6 +119,7 @@ impl Prover for MockProver { raw_proof: "".to_string(), plonk_vkey_hash: [0; 32], }), + stdin, public_values, sp1_version: self.version().to_string(), }) @@ -133,6 +136,7 @@ impl Prover for MockProver { raw_proof: "".to_string(), groth16_vkey_hash: [0; 32], }), + stdin, public_values, sp1_version: self.version().to_string(), }) diff --git a/crates/verifier/Cargo.toml b/crates/verifier/Cargo.toml new file mode 100644 index 0000000000..0436c54f40 --- /dev/null +++ b/crates/verifier/Cargo.toml @@ -0,0 +1,26 @@ +[package] +name = "sp1-verifier" +description = "Verifier for SP1 Groth16 and Plonk proofs." +readme = "README.md" +version = { workspace = true } +edition = { workspace = true } +license = { workspace = true } +repository = { workspace = true } +keywords = { workspace = true } +categories = { workspace = true } + +[dependencies] +bn = { git = "https://github.com/sp1-patches/bn", version = "0.6.0", tag = "substrate_bn-v0.6.0-patch-v2", package = "substrate-bn" } +sha2 = { version = "0.10.8", default-features = false } +thiserror-no-std = "2.0.2" +hex = { version = "0.4.3", default-features = false, features = ["alloc"] } +lazy_static = { version = "1.5.0", default-features = false } + +[dev-dependencies] +sp1-sdk = { workspace = true } +num-bigint = "0.4.6" +num-traits = "0.2.19" + +[features] +default = ["std"] +std = ["thiserror-no-std/std"] diff --git a/crates/verifier/README.md b/crates/verifier/README.md new file mode 100644 index 0000000000..6a4042e04e --- /dev/null +++ b/crates/verifier/README.md @@ -0,0 +1,37 @@ +# SP1 Verifier + +This crate provides verifiers for SP1 Groth16 and Plonk zero-knowledge proofs. These proofs are expected +to be generated using the [SP1 SDK](../sdk). + +## Features + +Groth16 and Plonk proof verification are supported in `no-std` environments. Verification in the +SP1 ZKVM context is patched, in order to make use of the +[bn254 precompiles](https://blog.succinct.xyz/succinctshipsprecompiles/). + +### Pre-generated verification keys + +Verification keys for Groth16 and Plonk are stored in the [`bn254-vk`](./bn254-vk/) directory. These +vkeys are used to verify all SP1 proofs. + +These vkeys are the same as those found locally in +`~/.sp1/circuits///_vk.bin`, and should be automatically +updated after every release. + +## Tests + +Run tests with the following command: + +```sh +cargo test --package sp1-verifier +``` + +These tests verify the proofs in the [`test_binaries`](./test_binaries) directory. These test binaries +were generated from the fibonacci [groth16](../../examples/fibonacci/script/bin/groth16_bn254.rs) and +[plonk](../../examples/fibonacci/script/bin/plonk_bn254.rs) examples. You can reproduce these proofs +from the examples by running `cargo run --bin groth16_bn254` and `cargo run --bin plonk_bn254` from the +[`examples/fibonacci`](../../examples/fibonacci/) directory. + +## Acknowledgements + +Adapted from [@Bisht13's](https://github.com/Bisht13/gnark-bn254-verifier) `gnark-bn254-verifier` crate. diff --git a/crates/verifier/bn254-vk/groth16_vk.bin b/crates/verifier/bn254-vk/groth16_vk.bin new file mode 100644 index 0000000000000000000000000000000000000000..348cc8a0a38da85cc45c4c735187dd9bcea38abb GIT binary patch literal 396 zcmV;70dxMXO`50U0@>d|be&ZPl${0J>NESXY-Bqk^_il+ZSvybp;ufkNli8r>0U#& zA~B7UCCDJ;YRw4f$%nK+Q5jpwX9F+G_jb{*$%XicckzPLgn*_~^4`j+c}%=J^9BqK z7oB6TE-HJ-4fwj+2v;4M;k2V86F9`&}jRs!207 zspk@xY5-!8X>7 zf4*000BRQH7kY{${ln#Z;X) zXwkZq6kvnP1VARM>&cLbk&;N0qGa}^(BqSf>P|#4)EDxY2Xxy|5QWaK(AVc`e-ev> qcX${$k9V{NT8Gdc6dPacF62_tt)odelB}Y{+Fd{Z000000000Vo5gMb literal 0 HcmV?d00001 diff --git a/crates/verifier/bn254-vk/plonk_vk.bin b/crates/verifier/bn254-vk/plonk_vk.bin new file mode 100644 index 0000000000000000000000000000000000000000..c8e98e6fdb54469db488d7ec69c4b7ec115e1c96 GIT binary patch literal 34368 zcmeIv{Z9-47{KvMg|)8Lty8N@R=Ty`=Ey=`)(Z}~yEM(q^FBAJ4U+5H zk4c=X1bM@?y)N#~7CU89kCt44VxU!Jd^DglLi)YEyg71>SzqGuuooj48wxsG;;g#6 z+q@2`KBYKrbu_#Y6n0BfJlMP4`kC%s-IHd&v=VjRBD=s88?8LG%XGJL!E(DuVSaMg zfYN^I=g0Zw;*GN~1}}xl?fofzrtx<_WtEGoGaJiB4J$*EEDKw|W$)1yl=PR~&%Zr1 zF_`qy_(If9Wo2Ph&N9U-nOSjJfU`|=t#{$6{QNwjd`)8bgF4x-5T~(gTUM;RIwU$b zkWp8o7ip~peWN1##TwrOf_t~|h z6*KgFQvXG?RHf{Fcqq5$%vQOJr?T2WJ7U%?^R2Pk;agO5S^QW(e#ggrtybc=@cq*{ zzsmpt1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL WKmY**5I_Kd|3kpw@0r=x!~OtYt@z*o literal 0 HcmV?d00001 diff --git a/crates/verifier/src/constants.rs b/crates/verifier/src/constants.rs new file mode 100644 index 0000000000..7480c5a42f --- /dev/null +++ b/crates/verifier/src/constants.rs @@ -0,0 +1,33 @@ +/// Gnark (and arkworks) use the 2 most significant bits to encode the flag for a compressed +/// G1 point. +/// https://github.com/Consensys/gnark-crypto/blob/a7d721497f2a98b1f292886bb685fd3c5a90f930/ecc/bn254/marshal.go#L32-L42 +pub(crate) const MASK: u8 = 0b11 << 6; + +/// The flags for a positive, negative, or infinity compressed point. +pub(crate) const COMPRESSED_POSITIVE: u8 = 0b10 << 6; +pub(crate) const COMPRESSED_NEGATIVE: u8 = 0b11 << 6; +pub(crate) const COMPRESSED_INFINITY: u8 = 0b01 << 6; + +#[derive(Debug, PartialEq, Eq)] +pub(crate) enum CompressedPointFlag { + Positive = COMPRESSED_POSITIVE as isize, + Negative = COMPRESSED_NEGATIVE as isize, + Infinity = COMPRESSED_INFINITY as isize, +} + +impl From for CompressedPointFlag { + fn from(val: u8) -> Self { + match val { + COMPRESSED_POSITIVE => CompressedPointFlag::Positive, + COMPRESSED_NEGATIVE => CompressedPointFlag::Negative, + COMPRESSED_INFINITY => CompressedPointFlag::Infinity, + _ => panic!("Invalid compressed point flag"), + } + } +} + +impl From for u8 { + fn from(value: CompressedPointFlag) -> Self { + value as u8 + } +} diff --git a/crates/verifier/src/converter.rs b/crates/verifier/src/converter.rs new file mode 100644 index 0000000000..2c747ce5d4 --- /dev/null +++ b/crates/verifier/src/converter.rs @@ -0,0 +1,122 @@ +use core::cmp::Ordering; + +use bn::{AffineG1, AffineG2, Fq, Fq2}; + +use crate::{ + constants::{CompressedPointFlag, MASK}, + error::Error, +}; + +/// Deserializes an Fq element from a buffer. +/// +/// If this Fq element is part of a compressed point, the flag that indicates the sign of the +/// y coordinate is also returned. +pub(crate) fn deserialize_with_flags(buf: &[u8]) -> Result<(Fq, CompressedPointFlag), Error> { + if buf.len() != 32 { + return Err(Error::InvalidXLength); + }; + + let m_data = buf[0] & MASK; + if m_data == u8::from(CompressedPointFlag::Infinity) { + // Checks if the first byte is zero after masking AND the rest of the bytes are zero. + if buf[0] & !MASK == 0 && buf[1..].iter().all(|&b| b == 0) { + return Err(Error::InvalidPoint); + } + Ok((Fq::zero(), CompressedPointFlag::Infinity)) + } else { + let mut x_bytes: [u8; 32] = [0u8; 32]; + x_bytes.copy_from_slice(buf); + x_bytes[0] &= !MASK; + + let x = Fq::from_be_bytes_mod_order(&x_bytes).expect("Failed to convert x bytes to Fq"); + + Ok((x, m_data.into())) + } +} + +/// Converts a compressed G1 point to an AffineG1 point. +/// +/// Asserts that the compressed point is represented as a single fq element: the x coordinate +/// of the point. The y coordinate is then computed from the x coordinate. The final point +/// is not checked to be on the curve for efficiency. +pub(crate) fn unchecked_compressed_x_to_g1_point(buf: &[u8]) -> Result { + let (x, m_data) = deserialize_with_flags(buf)?; + let (y, neg_y) = AffineG1::get_ys_from_x_unchecked(x).ok_or(Error::InvalidPoint)?; + + let mut final_y = y; + if y.cmp(&neg_y) == Ordering::Greater { + if m_data == CompressedPointFlag::Positive { + final_y = -y; + } + } else if m_data == CompressedPointFlag::Negative { + final_y = -y; + } + + Ok(AffineG1::new_unchecked(x, final_y)) +} + +/// Converts an uncompressed G1 point to an AffineG1 point. +/// +/// Asserts that the affine point is represented as two fq elements. +pub(crate) fn uncompressed_bytes_to_g1_point(buf: &[u8]) -> Result { + if buf.len() != 64 { + return Err(Error::InvalidXLength); + }; + + let (x_bytes, y_bytes) = buf.split_at(32); + + let x = Fq::from_slice(x_bytes).map_err(Error::Field)?; + let y = Fq::from_slice(y_bytes).map_err(Error::Field)?; + AffineG1::new(x, y).map_err(Error::Group) +} + +/// Converts a compressed G2 point to an AffineG2 point. +/// +/// Asserts that the compressed point is represented as a single fq2 element: the x coordinate +/// of the point. +/// Then, gets the y coordinate from the x coordinate. +/// For efficiency, this function does not check that the final point is on the curve. +pub(crate) fn unchecked_compressed_x_to_g2_point(buf: &[u8]) -> Result { + if buf.len() != 64 { + return Err(Error::InvalidXLength); + }; + + let (x1, flag) = deserialize_with_flags(&buf[..32])?; + let x0 = Fq::from_be_bytes_mod_order(&buf[32..64]).map_err(Error::Field)?; + let x = Fq2::new(x0, x1); + + if flag == CompressedPointFlag::Infinity { + return Ok(AffineG2::one()); + } + + let (y, neg_y) = AffineG2::get_ys_from_x_unchecked(x).ok_or(Error::InvalidPoint)?; + + match flag { + CompressedPointFlag::Positive => Ok(AffineG2::new_unchecked(x, y)), + CompressedPointFlag::Negative => Ok(AffineG2::new_unchecked(x, neg_y)), + _ => Err(Error::InvalidPoint), + } +} + +/// Converts an uncompressed G2 point to an AffineG2 point. +/// +/// Asserts that the affine point is represented as two fq2 elements. +pub(crate) fn uncompressed_bytes_to_g2_point(buf: &[u8]) -> Result { + if buf.len() != 128 { + return Err(Error::InvalidXLength); + } + + let (x_bytes, y_bytes) = buf.split_at(64); + let (x1_bytes, x0_bytes) = x_bytes.split_at(32); + let (y1_bytes, y0_bytes) = y_bytes.split_at(32); + + let x1 = Fq::from_slice(x1_bytes).map_err(Error::Field)?; + let x0 = Fq::from_slice(x0_bytes).map_err(Error::Field)?; + let y1 = Fq::from_slice(y1_bytes).map_err(Error::Field)?; + let y0 = Fq::from_slice(y0_bytes).map_err(Error::Field)?; + + let x = Fq2::new(x0, x1); + let y = Fq2::new(y0, y1); + + AffineG2::new(x, y).map_err(Error::Group) +} diff --git a/crates/verifier/src/error.rs b/crates/verifier/src/error.rs new file mode 100644 index 0000000000..2d37bceac9 --- /dev/null +++ b/crates/verifier/src/error.rs @@ -0,0 +1,31 @@ +use bn::{CurveError, FieldError, GroupError}; +use thiserror_no_std::Error; + +#[derive(Error, Debug)] +pub enum Error { + // Input Errors + #[error("Invalid witness")] + InvalidWitness, + #[error("Invalid x length")] + InvalidXLength, + #[error("Invalid data")] + InvalidData, + #[error("Invalid point in subgroup check")] + InvalidPoint, + + // Conversion Errors + #[error("Failed to get Fr from random bytes")] + FailedToGetFrFromRandomBytes, + + // External Library Errors + #[error("BN254 Field Error")] + Field(FieldError), + #[error("BN254 Group Error")] + Group(GroupError), + #[error("BN254 Curve Error")] + Curve(CurveError), + + // SP1 Errors + #[error("Invalid program vkey hash")] + InvalidProgramVkeyHash, +} diff --git a/crates/verifier/src/groth16/converter.rs b/crates/verifier/src/groth16/converter.rs new file mode 100644 index 0000000000..6c7a5e3b97 --- /dev/null +++ b/crates/verifier/src/groth16/converter.rs @@ -0,0 +1,53 @@ +use alloc::vec::Vec; + +use crate::{ + converter::{ + unchecked_compressed_x_to_g1_point, unchecked_compressed_x_to_g2_point, + uncompressed_bytes_to_g1_point, uncompressed_bytes_to_g2_point, + }, + groth16::{Groth16G1, Groth16G2, Groth16Proof, Groth16VerifyingKey}, +}; + +use super::error::Groth16Error; + +/// Load the Groth16 proof from the given byte slice. +/// +/// The byte slice is represented as 2 uncompressed g1 points, and one uncompressed g2 point, +/// as outputted from gnark. +pub(crate) fn load_groth16_proof_from_bytes(buffer: &[u8]) -> Result { + let ar = uncompressed_bytes_to_g1_point(&buffer[..64])?; + let bs = uncompressed_bytes_to_g2_point(&buffer[64..192])?; + let krs = uncompressed_bytes_to_g1_point(&buffer[192..256])?; + + Ok(Groth16Proof { ar, bs, krs }) +} + +/// Load the Groth16 verification key from the given byte slice. +/// +/// The gnark verification key includes a lot of extraneous information. We only extract the necessary +/// elements to verify a proof. +pub(crate) fn load_groth16_verifying_key_from_bytes( + buffer: &[u8], +) -> Result { + // We don't need to check each compressed point because the Groth16 vkey is a public constant + // that doesn't usually change. The party using the Groth16 vkey will usually clearly know + // how the vkey was generated. + let g1_alpha = unchecked_compressed_x_to_g1_point(&buffer[..32])?; + let g2_beta = unchecked_compressed_x_to_g2_point(&buffer[64..128])?; + let g2_gamma = unchecked_compressed_x_to_g2_point(&buffer[128..192])?; + let g2_delta = unchecked_compressed_x_to_g2_point(&buffer[224..288])?; + + let num_k = u32::from_be_bytes([buffer[288], buffer[289], buffer[290], buffer[291]]); + let mut k = Vec::new(); + let mut offset = 292; + for _ in 0..num_k { + let point = unchecked_compressed_x_to_g1_point(&buffer[offset..offset + 32])?; + k.push(point); + offset += 32; + } + + Ok(Groth16VerifyingKey { + g1: Groth16G1 { alpha: g1_alpha, k }, + g2: Groth16G2 { beta: -g2_beta, gamma: g2_gamma, delta: g2_delta }, + }) +} diff --git a/crates/verifier/src/groth16/error.rs b/crates/verifier/src/groth16/error.rs new file mode 100644 index 0000000000..36952cb749 --- /dev/null +++ b/crates/verifier/src/groth16/error.rs @@ -0,0 +1,15 @@ +use thiserror_no_std::Error; + +#[derive(Debug, Error)] +pub enum Groth16Error { + #[error("Proof verification failed")] + ProofVerificationFailed, + #[error("Process verifying key failed")] + ProcessVerifyingKeyFailed, + #[error("Prepare inputs failed")] + PrepareInputsFailed, + #[error("General error")] + GeneralError(#[from] crate::error::Error), + #[error("Groth16 vkey hash mismatch")] + Groth16VkeyHashMismatch, +} diff --git a/crates/verifier/src/groth16/mod.rs b/crates/verifier/src/groth16/mod.rs new file mode 100644 index 0000000000..c6cf98a23a --- /dev/null +++ b/crates/verifier/src/groth16/mod.rs @@ -0,0 +1,67 @@ +mod converter; +pub mod error; +mod verify; + +pub(crate) use converter::{load_groth16_proof_from_bytes, load_groth16_verifying_key_from_bytes}; +use sha2::{Digest, Sha256}; +pub(crate) use verify::*; + +use error::Groth16Error; + +use crate::{bn254_public_values, decode_sp1_vkey_hash, error::Error}; + +/// A verifier for Groth16 zero-knowledge proofs. +#[derive(Debug)] +pub struct Groth16Verifier; +impl Groth16Verifier { + /// Verifies a Groth16 proof. + /// + /// # Arguments + /// + /// * `proof` - The proof bytes. + /// * `public_inputs` - The SP1 public inputs. + /// * `sp1_vkey_hash` - The SP1 vkey hash. + /// This is generated in the following manner: + /// + /// ```ignore + /// use sp1_sdk::ProverClient; + /// let client = ProverClient::new(); + /// let (pk, vk) = client.setup(ELF); + /// let sp1_vkey_hash = vk.bytes32(); + /// ``` + /// * `groth16_vk` - The Groth16 verifying key bytes. + /// Usually this will be the [`static@crate::GROTH16_VK_BYTES`] constant, which is the Groth16 + /// verifying key for the current SP1 version. + /// + /// # Returns + /// + /// A success [`Result`] if verification succeeds, or a [`Groth16Error`] if verification fails. + pub fn verify( + proof: &[u8], + sp1_public_inputs: &[u8], + sp1_vkey_hash: &str, + groth16_vk: &[u8], + ) -> Result<(), Groth16Error> { + // Hash the vk and get the first 4 bytes. + let groth16_vk_hash: [u8; 4] = Sha256::digest(groth16_vk)[..4] + .try_into() + .map_err(|_| Groth16Error::GeneralError(Error::InvalidData))?; + + // Check to make sure that this proof was generated by the groth16 proving key corresponding to + // the given groth16_vk. + // + // SP1 prepends the raw Groth16 proof with the first 4 bytes of the groth16 vkey to + // facilitate this check. + if groth16_vk_hash != proof[..4] { + return Err(Groth16Error::Groth16VkeyHashMismatch); + } + + let sp1_vkey_hash = decode_sp1_vkey_hash(sp1_vkey_hash)?; + let public_inputs = bn254_public_values(&sp1_vkey_hash, sp1_public_inputs); + + let proof = load_groth16_proof_from_bytes(&proof[4..])?; + let groth16_vk = load_groth16_verifying_key_from_bytes(groth16_vk)?; + + verify_groth16_raw(&groth16_vk, &proof, &public_inputs) + } +} diff --git a/crates/verifier/src/groth16/verify.rs b/crates/verifier/src/groth16/verify.rs new file mode 100644 index 0000000000..686e62ff61 --- /dev/null +++ b/crates/verifier/src/groth16/verify.rs @@ -0,0 +1,71 @@ +use alloc::vec::Vec; +use bn::{pairing_batch, AffineG1, AffineG2, Fr, Gt, G1, G2}; + +use super::error::Groth16Error; + +/// G1 elements of the verification key. +#[derive(Clone, PartialEq)] +pub(crate) struct Groth16G1 { + pub(crate) alpha: AffineG1, + pub(crate) k: Vec, +} + +/// G2 elements of the verification key. +#[derive(Clone, PartialEq)] +pub(crate) struct Groth16G2 { + pub(crate) beta: AffineG2, + pub(crate) delta: AffineG2, + pub(crate) gamma: AffineG2, +} + +/// Verification key for the Groth16 proof. +#[derive(Clone, PartialEq)] +pub(crate) struct Groth16VerifyingKey { + pub(crate) g1: Groth16G1, + pub(crate) g2: Groth16G2, +} + +/// Proof for the Groth16 verification. +pub(crate) struct Groth16Proof { + pub(crate) ar: AffineG1, + pub(crate) krs: AffineG1, + pub(crate) bs: AffineG2, +} + +/// Prepare the inputs for the Groth16 verification by combining the public inputs with the +/// corresponding elements of the verification key. +fn prepare_inputs(vk: Groth16VerifyingKey, public_inputs: &[Fr]) -> Result { + if (public_inputs.len() + 1) != vk.g1.k.len() { + return Err(Groth16Error::PrepareInputsFailed); + } + + Ok(public_inputs + .iter() + .zip(vk.g1.k.iter().skip(1)) + .fold(vk.g1.k[0], |acc, (i, b)| acc + (*b * *i)) + .into()) +} + +/// Verify the Groth16 proof +/// +/// First, prepare the public inputs by folding them with the verification key. +/// Then, verify the proof by checking the pairing equation. +pub(crate) fn verify_groth16_raw( + vk: &Groth16VerifyingKey, + proof: &Groth16Proof, + public_inputs: &[Fr], +) -> Result<(), Groth16Error> { + let prepared_inputs = prepare_inputs(vk.clone(), public_inputs)?; + + if pairing_batch(&[ + (-Into::::into(proof.ar), proof.bs.into()), + (prepared_inputs, vk.g2.gamma.into()), + (proof.krs.into(), vk.g2.delta.into()), + (vk.g1.alpha.into(), -Into::::into(vk.g2.beta)), + ]) == Gt::one() + { + Ok(()) + } else { + Err(Groth16Error::ProofVerificationFailed) + } +} diff --git a/crates/verifier/src/lib.rs b/crates/verifier/src/lib.rs new file mode 100644 index 0000000000..228d60624f --- /dev/null +++ b/crates/verifier/src/lib.rs @@ -0,0 +1,35 @@ +//! This crate provides verifiers for SP1 Groth16 and Plonk BN254 proofs in a no-std environment. +//! It is patched for efficient verification within the SP1 ZKVM context. + +#![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use lazy_static::lazy_static; + +lazy_static! { + /// The PLONK verifying key for this SP1 version. + pub static ref PLONK_VK_BYTES: &'static [u8] = include_bytes!("../bn254-vk/plonk_vk.bin"); +} + +lazy_static! { + /// The Groth16 verifying key for this SP1 version. + pub static ref GROTH16_VK_BYTES: &'static [u8] = include_bytes!("../bn254-vk/groth16_vk.bin"); +} + +mod constants; +mod converter; +mod error; + +mod utils; +pub use utils::*; + +pub use groth16::error::Groth16Error; +pub use groth16::Groth16Verifier; +mod groth16; + +pub use plonk::error::PlonkError; +pub use plonk::PlonkVerifier; +mod plonk; + +#[cfg(test)] +mod tests; diff --git a/crates/verifier/src/plonk/converter.rs b/crates/verifier/src/plonk/converter.rs new file mode 100644 index 0000000000..a5d1e1c6ae --- /dev/null +++ b/crates/verifier/src/plonk/converter.rs @@ -0,0 +1,178 @@ +use crate::{ + converter::{ + unchecked_compressed_x_to_g1_point, unchecked_compressed_x_to_g2_point, + uncompressed_bytes_to_g1_point, + }, + error::Error, +}; +use alloc::vec::Vec; +use bn::{AffineG1, Fr, G2}; + +use super::{ + error::PlonkError, + kzg::{self, BatchOpeningProof, LineEvaluationAff, OpeningProof, E2}, + verify::PlonkVerifyingKey, + PlonkProof, +}; + +pub(crate) fn load_plonk_verifying_key_from_bytes( + buffer: &[u8], +) -> Result { + let size = u64::from_be_bytes([ + buffer[0], buffer[1], buffer[2], buffer[3], buffer[4], buffer[5], buffer[6], buffer[7], + ]) as usize; + let size_inv = + Fr::from_slice(&buffer[8..40]).map_err(|e| PlonkError::GeneralError(Error::Field(e)))?; + let generator = + Fr::from_slice(&buffer[40..72]).map_err(|e| PlonkError::GeneralError(Error::Field(e)))?; + + let nb_public_variables = u64::from_be_bytes([ + buffer[72], buffer[73], buffer[74], buffer[75], buffer[76], buffer[77], buffer[78], + buffer[79], + ]) as usize; + + let coset_shift = + Fr::from_slice(&buffer[80..112]).map_err(|e| PlonkError::GeneralError(Error::Field(e)))?; + let s0 = unchecked_compressed_x_to_g1_point(&buffer[112..144])?; + let s1 = unchecked_compressed_x_to_g1_point(&buffer[144..176])?; + let s2 = unchecked_compressed_x_to_g1_point(&buffer[176..208])?; + let ql = unchecked_compressed_x_to_g1_point(&buffer[208..240])?; + let qr = unchecked_compressed_x_to_g1_point(&buffer[240..272])?; + let qm = unchecked_compressed_x_to_g1_point(&buffer[272..304])?; + let qo = unchecked_compressed_x_to_g1_point(&buffer[304..336])?; + let qk = unchecked_compressed_x_to_g1_point(&buffer[336..368])?; + let num_qcp = u32::from_be_bytes([buffer[368], buffer[369], buffer[370], buffer[371]]); + let mut qcp = Vec::new(); + let mut offset = 372; + + for _ in 0..num_qcp { + let point = unchecked_compressed_x_to_g1_point(&buffer[offset..offset + 32])?; + qcp.push(point); + offset += 32; + } + + let g1 = unchecked_compressed_x_to_g1_point(&buffer[offset..offset + 32])?; + let g2_0 = unchecked_compressed_x_to_g2_point(&buffer[offset + 32..offset + 96])?; + let g2_1 = unchecked_compressed_x_to_g2_point(&buffer[offset + 96..offset + 160])?; + + // 372 + 32 + 160 + 66 * 2 * 2 * 128 = 34356 + offset = 34356; + + let num_commitment_constraint_indexes = u32::from_be_bytes([ + buffer[offset], + buffer[offset + 1], + buffer[offset + 2], + buffer[offset + 3], + ]) as usize; + + let mut commitment_constraint_indexes = Vec::new(); + offset += 4; + for _ in 0..num_commitment_constraint_indexes { + let index = u64::from_be_bytes([ + buffer[offset], + buffer[offset + 1], + buffer[offset + 2], + buffer[offset + 3], + buffer[offset + 4], + buffer[offset + 5], + buffer[offset + 6], + buffer[offset + 7], + ]) as usize; + commitment_constraint_indexes.push(index); + offset += 8; + } + + let result = PlonkVerifyingKey { + size, + size_inv, + generator, + nb_public_variables, + kzg: kzg::KZGVerifyingKey { + g2: [G2::from(g2_0), G2::from(g2_1)], + g1: g1.into(), + lines: [[[LineEvaluationAff { + r0: E2 { a0: Fr::zero(), a1: Fr::zero() }, + r1: E2 { a0: Fr::zero(), a1: Fr::zero() }, + }; 66]; 2]; 2], + }, + coset_shift, + s: [s0, s1, s2], + ql, + qr, + qm, + qo, + qk, + qcp, + commitment_constraint_indexes, + }; + + Ok(result) +} + +/// See https://github.com/jtguibas/gnark/blob/26e3df73fc223292be8b7fc0b7451caa4059a649/backend/plonk/bn254/solidity.go +/// for how the proof is serialized. +pub(crate) fn load_plonk_proof_from_bytes( + buffer: &[u8], + num_bsb22_commitments: usize, +) -> Result { + let lro0 = uncompressed_bytes_to_g1_point(&buffer[..64])?; + let lro1 = uncompressed_bytes_to_g1_point(&buffer[64..128])?; + let lro2 = uncompressed_bytes_to_g1_point(&buffer[128..192])?; + let h0 = uncompressed_bytes_to_g1_point(&buffer[192..256])?; + let h1 = uncompressed_bytes_to_g1_point(&buffer[256..320])?; + let h2 = uncompressed_bytes_to_g1_point(&buffer[320..384])?; + + // Stores l_at_zeta, r_at_zeta, o_at_zeta, s 1_at_zeta, s2_at_zeta, bsb22_commitments + let mut claimed_values = Vec::with_capacity(5 + num_bsb22_commitments); + let mut offset = 384; + for _ in 1..6 { + let value = Fr::from_slice(&buffer[offset..offset + 32]) + .map_err(|e| PlonkError::GeneralError(Error::Field(e)))?; + claimed_values.push(value); + offset += 32; + } + + let z = uncompressed_bytes_to_g1_point(&buffer[offset..offset + 64])?; + let z_shifted_opening_value = Fr::from_slice(&buffer[offset + 64..offset + 96]) + .map_err(|e| PlonkError::GeneralError(Error::Field(e)))?; + offset += 96; + + let batched_proof_h = uncompressed_bytes_to_g1_point(&buffer[offset..offset + 64])?; + let z_shifted_opening_h = uncompressed_bytes_to_g1_point(&buffer[offset + 64..offset + 128])?; + offset += 128; + + for _ in 0..num_bsb22_commitments { + let commitment = Fr::from_slice(&buffer[offset..offset + 32]) + .map_err(|e| PlonkError::GeneralError(Error::Field(e)))?; + claimed_values.push(commitment); + offset += 32; + } + + let mut bsb22_commitments = Vec::with_capacity(num_bsb22_commitments); + for _ in 0..num_bsb22_commitments { + let commitment = uncompressed_bytes_to_g1_point(&buffer[offset..offset + 64])?; + bsb22_commitments.push(commitment); + offset += 64; + } + + let result = PlonkProof { + lro: [lro0, lro1, lro2], + z, + h: [h0, h1, h2], + bsb22_commitments, + batched_proof: BatchOpeningProof { h: batched_proof_h, claimed_values }, + z_shifted_opening: OpeningProof { + h: z_shifted_opening_h, + claimed_value: z_shifted_opening_value, + }, + }; + + Ok(result) +} + +pub(crate) fn g1_to_bytes(g1: &AffineG1) -> Result, PlonkError> { + let mut bytes: [u8; 64] = unsafe { core::mem::transmute(*g1) }; + bytes[..32].reverse(); + bytes[32..].reverse(); + Ok(bytes.to_vec()) +} diff --git a/crates/verifier/src/plonk/error.rs b/crates/verifier/src/plonk/error.rs new file mode 100644 index 0000000000..1d33e503d6 --- /dev/null +++ b/crates/verifier/src/plonk/error.rs @@ -0,0 +1,33 @@ +use thiserror_no_std::Error; + +#[derive(Error, Debug)] +pub enum PlonkError { + #[error("Beyond the modulus")] + BeyondTheModulus, + #[error("BSB22 Commitment number mismatch")] + Bsb22CommitmentMismatch, + #[error("Challenge already computed")] + ChallengeAlreadyComputed, + #[error("Challenge not found")] + ChallengeNotFound, + #[error("DST too large")] + DSTTooLarge, + #[error("Ell too large")] + EllTooLarge, + #[error("Inverse not found")] + InverseNotFound, + #[error("Invalid number of digests")] + InvalidNumberOfDigests, + #[error("Invalid witness")] + InvalidWitness, + #[error("Pairing check failed")] + PairingCheckFailed, + #[error("Previous challenge not computed")] + PreviousChallengeNotComputed, + #[error("Transcript error")] + TranscriptError, + #[error("Plonk vkey hash mismatch")] + PlonkVkeyHashMismatch, + #[error("General error")] + GeneralError(#[from] crate::error::Error), +} diff --git a/crates/verifier/src/plonk/hash_to_field.rs b/crates/verifier/src/plonk/hash_to_field.rs new file mode 100644 index 0000000000..fb077019b1 --- /dev/null +++ b/crates/verifier/src/plonk/hash_to_field.rs @@ -0,0 +1,122 @@ +use alloc::vec; +use alloc::vec::Vec; +use core::hash::Hasher; +use sha2::Digest; + +use crate::PlonkError; + +pub(crate) struct WrappedHashToField { + domain: Vec, + to_hash: Vec, +} + +impl WrappedHashToField { + // Creates a new instance with a domain separator + pub(crate) fn new(domain_separator: &[u8]) -> Result { + Ok(Self { domain: domain_separator.to_vec(), to_hash: Vec::new() }) + } + + // Hashes the bytes to a field element and returns the byte representation + pub(crate) fn sum(&self) -> Result, PlonkError> { + let res = Self::hash(self.to_hash.clone(), self.domain.clone(), 1)?; + + Ok(res[0].clone()) + } + + pub(crate) fn hash( + msg: Vec, + dst: Vec, + count: usize, + ) -> Result>, PlonkError> { + let bytes = 32; + let l = 16 + bytes; + + let len_in_bytes = count * l; + let pseudo_random_bytes = Self::expand_msg_xmd(msg, dst, len_in_bytes).unwrap(); + + let mut res = Vec::new(); + for i in 0..count { + res.push(pseudo_random_bytes[i * l..(i + 1) * l].to_vec()); + } + + Ok(res) + } + + fn expand_msg_xmd(msg: Vec, dst: Vec, len: usize) -> Result, PlonkError> { + let mut h = sha2::Sha256::new(); + + let ell = (len + 32 - 1) / 32; + + if ell > 255 { + Err(PlonkError::EllTooLarge)?; + } + if dst.len() > 255 { + Err(PlonkError::DSTTooLarge)?; + } + + let size_domain = dst.len(); + + h.reset(); + + // b_0 = H(msg_prime) + h.update([0u8; 64]); // Assuming the block size is 64 bytes for SHA-256 + h.update(&msg); + h.update([(len >> 8) as u8, len as u8, 0]); + h.update(&dst); + h.update([size_domain as u8]); + let b0 = h.finalize_reset(); + + // b_1 = H(b_0 || I2OSP(1, 1) || DST_prime) + h.update(b0); + h.update([1]); // I2OSP(1, 1) + h.update(&dst); + h.update([size_domain as u8]); + let mut b1 = h.finalize_reset(); + + let mut res = vec![0u8; len]; + res[..32].copy_from_slice(&b1); + + for i in 2..=ell { + h.reset(); + let mut strxor = vec![0u8; 32]; + for (j, (b0_byte, b1_byte)) in b0.iter().zip(b1.iter()).enumerate() { + strxor[j] = b0_byte ^ b1_byte; + } + h.update(&strxor); + h.update([i as u8]); + h.update(&dst); + h.update([size_domain as u8]); + b1 = h.finalize_reset(); + + let start = 32 * (i - 1); + let end = core::cmp::min(start + 32, res.len()); + res[start..end].copy_from_slice(&b1[..end - start]); + } + + Ok(res) + } +} + +impl Hasher for WrappedHashToField { + fn finish(&self) -> u64 { + // This method is not directly applicable to field elements, so it's a stub + unimplemented!(); + } + + fn write(&mut self, bytes: &[u8]) { + self.to_hash.extend_from_slice(bytes); + } +} + +impl Default for WrappedHashToField { + fn default() -> Self { + Self::new(&[]).unwrap() + } +} + +impl WrappedHashToField { + // Resets the state of the hasher + pub(crate) fn reset(&mut self) { + self.to_hash.clear(); + } +} diff --git a/crates/verifier/src/plonk/kzg.rs b/crates/verifier/src/plonk/kzg.rs new file mode 100644 index 0000000000..03098162ac --- /dev/null +++ b/crates/verifier/src/plonk/kzg.rs @@ -0,0 +1,193 @@ +use alloc::{string::ToString, vec, vec::Vec}; +use bn::{pairing_batch, AffineG1, Fr, G1, G2}; + +use crate::{error::Error, plonk::transcript::Transcript}; + +use super::{converter::g1_to_bytes, error::PlonkError, GAMMA, U}; + +pub(crate) type Digest = AffineG1; + +#[derive(Clone, Copy, Debug)] +#[allow(dead_code)] +pub(crate) struct E2 { + pub(crate) a0: Fr, + pub(crate) a1: Fr, +} + +#[derive(Clone, Copy, Debug)] +#[allow(dead_code)] +pub(crate) struct LineEvaluationAff { + pub(crate) r0: E2, + pub(crate) r1: E2, +} + +#[derive(Clone, Copy, Debug)] +#[allow(dead_code)] +pub(crate) struct KZGVerifyingKey { + pub(crate) g2: [G2; 2], // [G₂, [α]G₂] + pub(crate) g1: G1, + // Precomputed pairing lines corresponding to G₂, [α]G₂ + pub(crate) lines: [[[LineEvaluationAff; 66]; 2]; 2], +} + +#[derive(Clone, Debug)] +pub(crate) struct BatchOpeningProof { + pub(crate) h: AffineG1, + pub(crate) claimed_values: Vec, +} + +#[derive(Clone, Copy, Debug)] +pub(crate) struct OpeningProof { + pub(crate) h: AffineG1, + pub(crate) claimed_value: Fr, +} + +/// Derives the folding factor for the batched opening proof. +/// +/// Uses a separate transcript than the main transcript used for the other fiat shamir randomness. +fn derive_gamma( + point: &Fr, + digests: Vec, + claimed_values: Vec, + data_transcript: Option>, +) -> Result { + let mut transcript = Transcript::new(Some([GAMMA.to_string()].to_vec()))?; + transcript.bind(GAMMA, &point.into_u256().to_bytes_be())?; + + for digest in digests.iter() { + transcript.bind(GAMMA, &g1_to_bytes(digest)?)?; + } + + for claimed_value in claimed_values.iter() { + transcript.bind(GAMMA, &claimed_value.into_u256().to_bytes_be())?; + } + + if let Some(data_transcript) = data_transcript { + transcript.bind(GAMMA, &data_transcript)?; + } + + let gamma_byte = transcript.compute_challenge(GAMMA)?; + + let x = Fr::from_bytes_be_mod_order(gamma_byte.as_slice()) + .map_err(|e| PlonkError::GeneralError(Error::Field(e)))?; + + Ok(x) +} + +fn fold(di: Vec, fai: Vec, ci: Vec) -> Result<(AffineG1, Fr), PlonkError> { + let nb_digests = di.len(); + let mut folded_evaluations = Fr::zero(); + + for i in 0..nb_digests { + folded_evaluations += fai[i] * ci[i]; + } + + let folded_digests = AffineG1::msm(&di, &ci); + + Ok((folded_digests, folded_evaluations)) +} + +pub(crate) fn fold_proof( + digests: Vec, + batch_opening_proof: &BatchOpeningProof, + point: &Fr, + data_transcript: Option>, + global_transcript: &mut Transcript, +) -> Result<(OpeningProof, AffineG1), PlonkError> { + let nb_digests = digests.len(); + + if nb_digests != batch_opening_proof.claimed_values.len() { + return Err(PlonkError::InvalidNumberOfDigests); + } + + let gamma = derive_gamma( + point, + digests.clone(), + batch_opening_proof.claimed_values.clone(), + data_transcript, + )?; + + // Bind gamma to the transcript to challenge U. + global_transcript.bind(U, &gamma.into_u256().to_bytes_be())?; + + let mut gammai = vec![Fr::zero(); nb_digests]; + gammai[0] = Fr::one(); + + if nb_digests > 1 { + gammai[1] = gamma; + } + + for i in 2..nb_digests { + gammai[i] = gammai[i - 1] * gamma; + } + + let (folded_digests, folded_evaluations) = + fold(digests, batch_opening_proof.claimed_values.clone(), gammai)?; + + let open_proof = OpeningProof { h: batch_opening_proof.h, claimed_value: folded_evaluations }; + + Ok((open_proof, folded_digests)) +} + +pub(crate) fn batch_verify_multi_points( + digests: Vec, + proofs: Vec, + points: Vec, + u: Fr, + vk: &KZGVerifyingKey, +) -> Result<(), PlonkError> { + let nb_digests = digests.len(); + let nb_proofs = proofs.len(); + let nb_points = points.len(); + + if nb_digests != nb_proofs { + return Err(PlonkError::InvalidNumberOfDigests); + } + + if nb_digests != nb_points { + return Err(PlonkError::InvalidNumberOfDigests); + } + + if nb_digests == 1 { + unimplemented!(); + } + + let mut random_numbers = Vec::with_capacity(nb_digests); + random_numbers.push(Fr::one()); + for i in 1..nb_digests { + random_numbers.push(u * random_numbers[i - 1]); + } + + let mut quotients = Vec::with_capacity(nb_proofs); + for item in proofs.iter().take(nb_digests) { + quotients.push(item.h); + } + + let mut folded_quotients = AffineG1::msm("ients, &random_numbers); + let mut evals = Vec::with_capacity(nb_digests); + + for item in proofs.iter().take(nb_digests) { + evals.push(item.claimed_value); + } + + let (mut folded_digests, folded_evals) = fold(digests, evals, random_numbers.clone())?; + let folded_evals_commit = vk.g1 * folded_evals; + folded_digests = folded_digests - folded_evals_commit.into(); + + for i in 0..random_numbers.len() { + random_numbers[i] *= points[i]; + } + let folded_points_quotients = AffineG1::msm("ients, &random_numbers); + + folded_digests = folded_digests + folded_points_quotients; + folded_quotients = -folded_quotients; + + let pairing_result = + pairing_batch(&[(folded_digests.into(), vk.g2[0]), (folded_quotients.into(), vk.g2[1])]); + + if !pairing_result.is_one() { + return Err(PlonkError::PairingCheckFailed); + } + + Ok(()) +} diff --git a/crates/verifier/src/plonk/mod.rs b/crates/verifier/src/plonk/mod.rs new file mode 100644 index 0000000000..0456704f3e --- /dev/null +++ b/crates/verifier/src/plonk/mod.rs @@ -0,0 +1,76 @@ +pub(crate) const GAMMA: &str = "gamma"; +pub(crate) const BETA: &str = "beta"; +pub(crate) const ALPHA: &str = "alpha"; +pub(crate) const ZETA: &str = "zeta"; +pub(crate) const U: &str = "u"; + +mod converter; +mod hash_to_field; +mod kzg; +mod proof; +mod transcript; +mod verify; + +pub(crate) mod error; + +pub(crate) use converter::{load_plonk_proof_from_bytes, load_plonk_verifying_key_from_bytes}; +pub(crate) use proof::PlonkProof; +pub(crate) use verify::verify_plonk_raw; + +use error::PlonkError; +use sha2::{Digest, Sha256}; + +use crate::{bn254_public_values, decode_sp1_vkey_hash, error::Error}; +/// A verifier for Plonk zero-knowledge proofs. +#[derive(Debug)] +pub struct PlonkVerifier; + +impl PlonkVerifier { + /// # Arguments + /// + /// * `proof` - The proof bytes. + /// * `public_inputs` - The SP1 public inputs. + /// * `sp1_vkey_hash` - The SP1 vkey hash. + /// This is generated in the following manner: + /// + /// ```ignore + /// use sp1_sdk::ProverClient; + /// let client = ProverClient::new(); + /// let (pk, vk) = client.setup(ELF); + /// let sp1_vkey_hash = vk.bytes32(); + /// ``` + /// * `plonk_vk` - The Plonk verifying key bytes. + /// Usually this will be the [`static@crate::PLONK_VK_BYTES`] constant. + /// + /// # Returns + /// + /// A success [`Result`] if verification succeeds, or a [`PlonkError`] if verification fails. + pub fn verify( + proof: &[u8], + sp1_public_inputs: &[u8], + sp1_vkey_hash: &str, + plonk_vk: &[u8], + ) -> Result<(), PlonkError> { + // Hash the vk and get the first 4 bytes. + let plonk_vk_hash: [u8; 4] = Sha256::digest(plonk_vk)[..4] + .try_into() + .map_err(|_| PlonkError::GeneralError(Error::InvalidData))?; + + // Check to make sure that this proof was generated by the plonk proving key corresponding to + // the given plonk vk. + // + // SP1 prepends the raw Plonk proof with the first 4 bytes of the plonk vkey to + // facilitate this check. + if plonk_vk_hash != proof[..4] { + return Err(PlonkError::PlonkVkeyHashMismatch); + } + + let sp1_vkey_hash = decode_sp1_vkey_hash(sp1_vkey_hash)?; + let public_inputs = bn254_public_values(&sp1_vkey_hash, sp1_public_inputs); + + let plonk_vk = load_plonk_verifying_key_from_bytes(plonk_vk)?; + let proof = load_plonk_proof_from_bytes(&proof[4..], plonk_vk.qcp.len())?; + + verify_plonk_raw(&plonk_vk, &proof, &public_inputs) + } +} diff --git a/crates/verifier/src/plonk/proof.rs b/crates/verifier/src/plonk/proof.rs new file mode 100644 index 0000000000..850ecf00f4 --- /dev/null +++ b/crates/verifier/src/plonk/proof.rs @@ -0,0 +1,13 @@ +use alloc::vec::Vec; + +use super::kzg::{BatchOpeningProof, Digest, OpeningProof}; + +#[derive(Debug)] +pub(crate) struct PlonkProof { + pub(crate) lro: [Digest; 3], + pub(crate) z: Digest, + pub(crate) h: [Digest; 3], + pub(crate) bsb22_commitments: Vec, + pub(crate) batched_proof: BatchOpeningProof, + pub(crate) z_shifted_opening: OpeningProof, +} diff --git a/crates/verifier/src/plonk/transcript.rs b/crates/verifier/src/plonk/transcript.rs new file mode 100644 index 0000000000..55dbd99dcb --- /dev/null +++ b/crates/verifier/src/plonk/transcript.rs @@ -0,0 +1,104 @@ +use alloc::{collections::btree_map::BTreeMap, string::String, vec::Vec}; +use sha2::{Digest, Sha256}; + +use crate::PlonkError; + +/// A challenge in the transcript, derived with randomness from `bindings` and the previous +/// challenge. +#[derive(Clone, Debug)] +pub(crate) struct Challenge { + position: usize, + bindings: Vec>, + value: Vec, + is_computed: bool, +} + +/// A Fiat-Shamir transcript. +#[derive(Clone, Debug)] +pub(crate) struct Transcript { + pub(crate) h: Sha256, + + pub(crate) challenges: BTreeMap, + previous_challenge: Option, +} + +impl Transcript { + /// Creates a new transcript. + pub(crate) fn new(challenges_id: Option>) -> Result { + let h = Sha256::new(); + + if let Some(challenges_id) = challenges_id { + let mut challenges = BTreeMap::new(); + for (position, id) in challenges_id.iter().enumerate() { + challenges.insert( + id.clone(), + Challenge { + position, + bindings: Vec::new(), + value: Vec::new(), + is_computed: false, + }, + ); + } + + Ok(Transcript { h, challenges, previous_challenge: None }) + } else { + Ok(Transcript { h, challenges: BTreeMap::new(), previous_challenge: None }) + } + } + + /// Binds some data to a challenge. + pub(crate) fn bind(&mut self, id: &str, binding: &[u8]) -> Result<(), PlonkError> { + let current_challenge = self.challenges.get_mut(id).ok_or(PlonkError::ChallengeNotFound)?; + if current_challenge.is_computed { + return Err(PlonkError::ChallengeAlreadyComputed); + } + + current_challenge.bindings.push(binding.to_vec()); + + Ok(()) + } + + /// Computes a challenge and returns its value. + /// + /// Challenges must be computed in order. The previous challenge is automatically fed into the + /// challenge currently being computed. + pub(crate) fn compute_challenge(&mut self, challenge_id: &str) -> Result, PlonkError> { + let challenge = + self.challenges.get_mut(challenge_id).ok_or(PlonkError::ChallengeNotFound)?; + + if challenge.is_computed { + return Ok(challenge.value.clone()); + } + + // Reset the hash function before and after computing the challenge + self.h.reset(); + + self.h.update(challenge_id.as_bytes()); + + if challenge.position != 0 { + if let Some(previous_challenge) = &self.previous_challenge { + if previous_challenge.position != challenge.position - 1 { + return Err(PlonkError::PreviousChallengeNotComputed); + } + self.h.update(&previous_challenge.value) + } else { + return Err(PlonkError::PreviousChallengeNotComputed); + } + } + + for binding in challenge.bindings.iter() { + self.h.update(binding) + } + + let res = self.h.finalize_reset(); + + challenge.value = res.to_vec(); + challenge.is_computed = true; + + // Update the previous challenge reference + self.previous_challenge = Some(challenge.clone()); + + Ok(res.to_vec()) + } +} diff --git a/crates/verifier/src/plonk/verify.rs b/crates/verifier/src/plonk/verify.rs new file mode 100644 index 0000000000..4cfbcc884f --- /dev/null +++ b/crates/verifier/src/plonk/verify.rs @@ -0,0 +1,405 @@ +use alloc::{string::ToString, vec, vec::Vec}; +use bn::{arith::U256, AffineG1, Fr}; +use core::hash::Hasher; + +use crate::{ + error::Error, + plonk::{kzg::BatchOpeningProof, transcript::Transcript}, +}; + +use super::{ + converter::g1_to_bytes, error::PlonkError, kzg, PlonkProof, ALPHA, BETA, GAMMA, U, ZETA, +}; +#[derive(Debug)] +pub(crate) struct PlonkVerifyingKey { + pub(crate) size: usize, + pub(crate) size_inv: Fr, + pub(crate) generator: Fr, + pub(crate) nb_public_variables: usize, + + pub(crate) kzg: kzg::KZGVerifyingKey, + + pub(crate) coset_shift: Fr, + + pub(crate) s: [kzg::Digest; 3], + + pub(crate) ql: kzg::Digest, + pub(crate) qr: kzg::Digest, + pub(crate) qm: kzg::Digest, + pub(crate) qo: kzg::Digest, + pub(crate) qk: kzg::Digest, + pub(crate) qcp: Vec, + + pub(crate) commitment_constraint_indexes: Vec, +} + +/// Verifies a PLONK proof +/// +/// # Arguments +/// +/// * `vk` - The verifying key +/// * `proof` - The PLONK proof +/// * `public_inputs` - The public inputs to the circuit +/// +/// # Returns +/// +/// * `Result` - Returns true if the proof is valid, or an error if verification fails +pub(crate) fn verify_plonk_raw( + vk: &PlonkVerifyingKey, + proof: &PlonkProof, + public_inputs: &[Fr], +) -> Result<(), PlonkError> { + // Check if the number of BSB22 commitments matches the number of Qcp in the verifying key + if proof.bsb22_commitments.len() != vk.qcp.len() { + return Err(PlonkError::Bsb22CommitmentMismatch); + } + + // Check if the number of public inputs matches the number of public variables in the verifying key + if public_inputs.len() != vk.nb_public_variables { + return Err(PlonkError::InvalidWitness); + } + + // Initialize the Fiat-Shamir transcript + let mut fs = Transcript::new(Some( + [GAMMA.to_string(), BETA.to_string(), ALPHA.to_string(), ZETA.to_string(), U.to_string()] + .to_vec(), + ))?; + + // Bind public data to the transcript + bind_public_data(&mut fs, GAMMA, vk, public_inputs)?; + + // Derive gamma challenge: γ + let gamma = derive_randomness( + &mut fs, + GAMMA, + Some([proof.lro[0], proof.lro[1], proof.lro[2]].to_vec()), + )?; + + // Derive beta challenge: β + let beta = derive_randomness(&mut fs, BETA, None)?; + + // Derive alpha challenge: α + let mut alpha_deps: Vec = proof.bsb22_commitments.to_vec(); + alpha_deps.push(proof.z); + let alpha = derive_randomness(&mut fs, ALPHA, Some(alpha_deps))?; + + // Derive zeta challenge (point of evaluation): ζ + let zeta = + derive_randomness(&mut fs, ZETA, Some([proof.h[0], proof.h[1], proof.h[2]].to_vec()))?; + + // Compute zh_zeta = ζⁿ - 1 + let one = Fr::one(); + let n = U256::from(vk.size as u64); + let n = + Fr::from_slice(&n.to_bytes_be()).map_err(|e| PlonkError::GeneralError(Error::Field(e)))?; + let zeta_power_n = zeta.pow(n); + let zh_zeta = zeta_power_n - one; + + // Compute Lagrange polynomial at ζ: L₁(ζ) = (ζⁿ - 1) / (n * (ζ - 1)) + let mut lagrange_one = (zeta - one).inverse().ok_or(PlonkError::InverseNotFound)?; + lagrange_one *= zh_zeta; + lagrange_one *= vk.size_inv; + + // Compute PI = ∑_{i Result<(), PlonkError> { + transcript.bind(challenge, &g1_to_bytes(&vk.s[0])?)?; + transcript.bind(challenge, &g1_to_bytes(&vk.s[1])?)?; + transcript.bind(challenge, &g1_to_bytes(&vk.s[2])?)?; + + transcript.bind(challenge, &g1_to_bytes(&vk.ql)?)?; + transcript.bind(challenge, &g1_to_bytes(&vk.qr)?)?; + transcript.bind(challenge, &g1_to_bytes(&vk.qm)?)?; + transcript.bind(challenge, &g1_to_bytes(&vk.qo)?)?; + transcript.bind(challenge, &g1_to_bytes(&vk.qk)?)?; + + for qcp in vk.qcp.iter() { + transcript.bind(challenge, &g1_to_bytes(qcp)?)?; + } + + for public_input in public_inputs.iter() { + transcript.bind(challenge, &public_input.into_u256().to_bytes_be())?; + } + + Ok(()) +} + +/// Derives the randomness from the transcript. +/// +/// If you want to include some data for a challenge that isn't an affine g1 point, use +/// [`Transcript::bind`] to bind the data to the transcript before deriving the randomness. +fn derive_randomness( + transcript: &mut Transcript, + challenge: &str, + points: Option>, +) -> Result { + if let Some(points) = points { + for point in points { + let buf = g1_to_bytes(&point)?; + transcript.bind(challenge, &buf)?; + } + } + + let b = transcript.compute_challenge(challenge)?; + let x = Fr::from_bytes_be_mod_order(b.as_slice()) + .map_err(|e| PlonkError::GeneralError(Error::Field(e)))?; + Ok(x) +} + +/// Wrapper for [`batch_inversion`]. +fn batch_invert(elements: &[Fr]) -> Result, PlonkError> { + let mut elements = elements.to_vec(); + batch_inversion(&mut elements); + Ok(elements) +} + +/// Inverts a batch of Fr elements. +fn batch_inversion(v: &mut [Fr]) { + batch_inversion_and_mul(v, &Fr::one()); +} + +/// Inverts a batch of Fr elements and multiplies them by a given coefficient. +fn batch_inversion_and_mul(v: &mut [Fr], coeff: &Fr) { + let mut prod = Vec::with_capacity(v.len()); + let mut tmp = Fr::one(); + for f in v.iter().filter(|f| !f.is_zero()) { + tmp *= *f; + prod.push(tmp); + } + + tmp = tmp.inverse().unwrap(); + + tmp *= *coeff; + + for (f, s) in v + .iter_mut() + .rev() + .filter(|f| !f.is_zero()) + .zip(prod.into_iter().rev().skip(1).chain(Some(Fr::one()))) + { + let new_tmp = tmp * *f; + *f = tmp * s; + tmp = new_tmp; + } +} diff --git a/crates/verifier/src/tests.rs b/crates/verifier/src/tests.rs new file mode 100644 index 0000000000..e99d71ebd9 --- /dev/null +++ b/crates/verifier/src/tests.rs @@ -0,0 +1,52 @@ +use sp1_sdk::{install::try_install_circuit_artifacts, SP1ProofWithPublicValues}; + +extern crate std; + +#[test] +fn test_verify_groth16() { + // Location of the serialized SP1ProofWithPublicValues. See README.md for more information. + let proof_file = "test_binaries/fibonacci-groth16.bin"; + + // Load the saved proof and extract the proof and public inputs. + let sp1_proof_with_public_values = SP1ProofWithPublicValues::load(proof_file).unwrap(); + + let proof = sp1_proof_with_public_values.bytes(); + let public_inputs = sp1_proof_with_public_values.public_values.to_vec(); + + // This vkey hash was derived by calling `vk.bytes32()` on the verifying key. + let vkey_hash = "0x00e60860c07bfc6e4c480286c0ddbb879674eb47f84b4ef041cf858b17aa0ed1"; + + crate::Groth16Verifier::verify(&proof, &public_inputs, vkey_hash, &crate::GROTH16_VK_BYTES) + .expect("Groth16 proof is invalid"); +} + +#[test] +fn test_verify_plonk() { + // Location of the serialized SP1ProofWithPublicValues. See README.md for more information. + let proof_file = "test_binaries/fibonacci-plonk.bin"; + + // Load the saved proof and extract the proof and public inputs. + let sp1_proof_with_public_values = SP1ProofWithPublicValues::load(proof_file).unwrap(); + + let proof = sp1_proof_with_public_values.bytes(); + let public_inputs = sp1_proof_with_public_values.public_values.to_vec(); + + // This vkey hash was derived by calling `vk.bytes32()` on the verifying key. + let vkey_hash = "0x00e60860c07bfc6e4c480286c0ddbb879674eb47f84b4ef041cf858b17aa0ed1"; + + crate::PlonkVerifier::verify(&proof, &public_inputs, vkey_hash, &crate::PLONK_VK_BYTES) + .expect("Plonk proof is invalid"); +} + +#[test] +fn test_vkeys() { + let groth16_path = try_install_circuit_artifacts("groth16"); + let s3_vkey_path = groth16_path.join("groth16_vk.bin"); + let s3_vkey_bytes = std::fs::read(s3_vkey_path).unwrap(); + assert_eq!(s3_vkey_bytes, *crate::GROTH16_VK_BYTES); + + let plonk_path = try_install_circuit_artifacts("plonk"); + let s3_vkey_path = plonk_path.join("plonk_vk.bin"); + let s3_vkey_bytes = std::fs::read(s3_vkey_path).unwrap(); + assert_eq!(s3_vkey_bytes, *crate::PLONK_VK_BYTES); +} diff --git a/crates/verifier/src/utils.rs b/crates/verifier/src/utils.rs new file mode 100644 index 0000000000..7c2472374f --- /dev/null +++ b/crates/verifier/src/utils.rs @@ -0,0 +1,29 @@ +use bn::Fr; +use sha2::{Digest, Sha256}; + +use crate::error::Error; + +/// Hashes the public inputs in the same format as the Plonk and Groth16 verifiers. +pub fn hash_public_inputs(public_inputs: &[u8]) -> [u8; 32] { + let mut result = Sha256::digest(public_inputs); + + // The Plonk and Groth16 verifiers operate over a 254 bit field, so we need to zero + // out the first 3 bits. The same logic happens in the SP1 Ethereum verifier contract. + result[0] &= 0x1F; + + result.into() +} + +/// Formats the sp1 vkey hash and public inputs for use in either the Plonk or Groth16 verifier. +pub fn bn254_public_values(sp1_vkey_hash: &[u8; 32], sp1_public_inputs: &[u8]) -> [Fr; 2] { + let committed_values_digest = hash_public_inputs(sp1_public_inputs); + let vkey_hash = Fr::from_slice(&sp1_vkey_hash[1..]).unwrap(); + let committed_values_digest = Fr::from_slice(&committed_values_digest).unwrap(); + [vkey_hash, committed_values_digest] +} + +/// Decodes the sp1 vkey hash from the string from a call to `vk.bytes32`. +pub fn decode_sp1_vkey_hash(sp1_vkey_hash: &str) -> Result<[u8; 32], Error> { + let bytes = hex::decode(&sp1_vkey_hash[2..]).map_err(|_| Error::InvalidProgramVkeyHash)?; + bytes.try_into().map_err(|_| Error::InvalidProgramVkeyHash) +} diff --git a/crates/verifier/test_binaries/fibonacci-groth16.bin b/crates/verifier/test_binaries/fibonacci-groth16.bin new file mode 100644 index 0000000000000000000000000000000000000000..72c58644c3c5fcf1c88b4d24c2ced7efd366b910 GIT binary patch literal 1449 zcmeHHJC0Q`41IhwBP1H8rKTC7k$-XGH9$c_jhw`m*uX3SQBDaZEfO0*Vh^wc7C<)( zz)$m#SONu+auYkg_Q~;49vlvb7d4MVK!r)AlePM4XTU~+z-$J9h&-$@F%Ri14937i zkp@9C(~d^M^^@_-yNm}VZKB<*kqy$CqS#akgv+Qh+{JoFXo@gUYKs*PtlWkvSD_A7 zk_Zp??~;NDYxmKRe97Y22B|iaNELif#zoza@aGH)lSwp%Dlcwzg1RQABS*O$2X1f} zo9nxPqWs+I+hB4*4!w`R4gKw6t*+@`QM<`lrF z9?mEXt1TLBv@M#_iIkVDb%4biH7ZBxrPHW>^(Eq^zR_TB!}tGn@Lva|1NcYAqqCcv%Znf1pPzsF^6c~V zw_k7e$Dfx^zFu6vef9LUeYkge3m=}=+dqzzeOw;@b#_~U@6Hd0vy<Mg-cRP>Q=xAa6%Omkh;}o1TK%j83C!M;36O+p^BIpKnRfo z67T?6`@ZKY=P$Sf@6`G1v-dvT($ZQ>IzN1QdHFS7&qK*|i0hOvy!#x)CdxEM1Q9cj z6*gpyrE}<@7&Ml%EFp{V$ss!MqZpsQTk*xkO?^g~#1h9#oy}cH2fkpNF*W97GG|(> zIAq*T!-uW#fsH0%OA-F-Pu?v`IqjZED_(I}L&m~A&i9<~lZkj`Uaxs0eb5R%$=7kl zr*n$6U%J)id-Cah3|pqG-iafGV;fl^SIKpXz0+prOkv#X%rSK%snYDIYOhr+hG0ne zaBgf`_u8?-QHZS^>&~mgSE>j5q^q{$49;ZHye5YVur4>=(|6tFJ5;g#mAjjerVUjW zS%WG??6`H7uD#}5h8(6IUPo-AICh_yQo`4+>4C6i?Q=CunYV4Ao~ObS;ILKMwRs9# zGXaf8DHi#_Ro(ZX2;mkKM**Qo2$dOmMbn&vDJ`9_0~UAWiuzzL3+&^l4rf&$IoDo{ z-~beAKk_D(R@ZDILNF`Sn`e(ebUb$h4Kh`kp>BJUM{i%iKT29AxVYT)oCIeWf!5us zi6i`cA%U7ev}D)brx8iVaLM2Sya{z4M@mFSJ3#CtT9pCPv?*DQE>yR2&X`*+$aZd} zjY7VSU^p~@dN+tNp2Pxl+gx(ogZ3etPt9!&@PI(giX-0VFvT)S=A3tq8n|c%g zY(>3y&%HBafbtOIBW%Q#o(GX}xFhccio*exKk$I+{U|>7Yr}p5 zA(;kCproiJ=MgFU*Z>nL9q>3yqPvch(%uS%HtO0o1^!WZMztJx1P);qC=5ys0z<~t z31E^0v^fubP^mjhAZ$a4FA46PATOIj1pwNMz}z$i0ULaXgPKs>vq7J}Y)8+;id%Hu zabY5t6sNa?Hrb#qBxY-##$uqcg}`cTL6C;RB83TH2nMr&I_KR9W{&g=FPyMA)#hv) zYb;8{DeE?0_I*&#A+#S`Rc=F^BQD{t5;&%)NN+e2{3T;k0>IIF?A6}xCMVwEd(`q9 zynCQzHtyY50-hxs#skC!ZgCW5acSR2f-Pb!uN`ADB@~O1mOS_+R6j_#u9q;A?WD#3F@Kh=B+ULD0p409Run=8@MzUf@9H@ ziR*JeI&ng92}1Flpq<2AJ_d|iz?cid98$f|ZV%K3(6>Dv?w}zgi;M;+=-}Uybbt#e z1mf%gtY6g$pEf#sC5mhJ>17v6g$wb5TW&;!e&p-Y0>;L}l zH|LxG{Qis2e)i)Zy#G)6qxYZRes|*i_vhp1-@EoLZu}Cx_Wj?+m(Ry1^a=eB3!U-D literal 0 HcmV?d00001 diff --git a/examples/Cargo.lock b/examples/Cargo.lock new file mode 100644 index 0000000000..1b25dbc238 --- /dev/null +++ b/examples/Cargo.lock @@ -0,0 +1,8652 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "addchain" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" +dependencies = [ + "num-bigint 0.3.3", + "num-integer", + "num-traits", +] + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "aggregation-program" +version = "1.1.0" +dependencies = [ + "sha2 0.10.8", + "sp1-zkvm", +] + +[[package]] +name = "aggregation-script" +version = "1.1.0" +dependencies = [ + "sp1-build", + "sp1-sdk", + "tracing", +] + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "alloy-chains" +version = "0.1.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18c5c520273946ecf715c0010b4e3503d7eba9893cd9ce6b7fff5654c4a3c470" +dependencies = [ + "alloy-primitives 0.8.11", + "alloy-rlp", + "num_enum 0.7.3", + "serde", + "strum", +] + +[[package]] +name = "alloy-consensus" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "629b62e38d471cc15fea534eb7283d2f8a4e8bdb1811bcc5d66dda6cfce6fae1" +dependencies = [ + "alloy-eips", + "alloy-primitives 0.8.11", + "alloy-rlp", + "alloy-serde", + "c-kzg", + "serde", +] + +[[package]] +name = "alloy-eip2930" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" +dependencies = [ + "alloy-primitives 0.8.11", + "alloy-rlp", + "serde", +] + +[[package]] +name = "alloy-eip7702" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea59dc42102bc9a1905dc57901edc6dd48b9f38115df86c7d252acba70d71d04" +dependencies = [ + "alloy-primitives 0.8.11", + "alloy-rlp", + "k256", + "serde", +] + +[[package]] +name = "alloy-eips" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f923dd5fca5f67a43d81ed3ebad0880bd41f6dd0ada930030353ac356c54cd0f" +dependencies = [ + "alloy-eip2930", + "alloy-eip7702", + "alloy-primitives 0.8.11", + "alloy-rlp", + "alloy-serde", + "c-kzg", + "derive_more 1.0.0", + "once_cell", + "serde", + "sha2 0.10.8", +] + +[[package]] +name = "alloy-genesis" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a7a18afb0b318616b6b2b0e2e7ac5529d32a966c673b48091c9919e284e6aca" +dependencies = [ + "alloy-primitives 0.8.11", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-json-abi" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded610181f3dad5810f6ff12d1a99994cf9b42d2fcb7709029352398a5da5ae6" +dependencies = [ + "alloy-primitives 0.8.11", + "alloy-sol-type-parser", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-network-primitives" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94ad40869867ed2d9cd3842b1e800889e5b49e6b92da346e93862b4a741bedf3" +dependencies = [ + "alloy-eips", + "alloy-primitives 0.8.11", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-primitives" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "600d34d8de81e23b6d909c094e23b3d357e01ca36b78a8c5424c501eedbe86f0" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more 0.99.18", + "hex-literal", + "itoa", + "k256", + "keccak-asm", + "proptest", + "rand 0.8.5", + "ruint", + "serde", + "tiny-keccak", +] + +[[package]] +name = "alloy-primitives" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more 0.99.18", + "hex-literal", + "itoa", + "k256", + "keccak-asm", + "proptest", + "rand 0.8.5", + "ruint", + "serde", + "tiny-keccak", +] + +[[package]] +name = "alloy-primitives" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd58d377699e6cfeab52c4a9d28bdc4ef37e2bd235ff2db525071fe37a2e9af5" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more 1.0.0", + "foldhash", + "getrandom", + "hashbrown 0.15.1", + "hex-literal", + "indexmap 2.6.0", + "itoa", + "k256", + "keccak-asm", + "paste", + "proptest", + "rand 0.8.5", + "ruint", + "rustc-hash 2.0.0", + "serde", + "sha3", + "tiny-keccak", +] + +[[package]] +name = "alloy-rlp" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0822426598f95e45dd1ea32a738dac057529a709ee645fcc516ffa4cbde08f" +dependencies = [ + "alloy-rlp-derive", + "arrayvec 0.7.6", + "bytes", +] + +[[package]] +name = "alloy-rlp-derive" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b09cae092c27b6f1bde952653a22708691802e57bfef4a2973b80bea21efd3f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "alloy-rpc-types" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64333d639f2a0cf73491813c629a405744e16343a4bc5640931be707c345ecc5" +dependencies = [ + "alloy-rpc-types-eth", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-rpc-types-eth" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83aa984386deda02482660aa31cb8ca1e63d533f1c31a52d7d181ac5ec68e9b8" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-network-primitives", + "alloy-primitives 0.8.11", + "alloy-rlp", + "alloy-serde", + "alloy-sol-types 0.8.11", + "cfg-if", + "derive_more 1.0.0", + "hashbrown 0.14.5", + "itertools 0.13.0", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-serde" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "731f75ec5d383107fd745d781619bd9cedf145836c51ecb991623d41278e71fa" +dependencies = [ + "alloy-primitives 0.8.11", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-sol-macro" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b40397ddcdcc266f59f959770f601ce1280e699a91fc1862f29cef91707cd09" +dependencies = [ + "alloy-sol-macro-expander 0.7.7", + "alloy-sol-macro-input 0.7.7", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "alloy-sol-macro" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a1b42ac8f45e2f49f4bcdd72cbfde0bb148f5481d403774ffa546e48b83efc1" +dependencies = [ + "alloy-sol-macro-expander 0.8.11", + "alloy-sol-macro-input 0.8.11", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "alloy-sol-macro-expander" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "867a5469d61480fea08c7333ffeca52d5b621f5ca2e44f271b117ec1fc9a0525" +dependencies = [ + "alloy-sol-macro-input 0.7.7", + "const-hex", + "heck", + "indexmap 2.6.0", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.87", + "syn-solidity 0.7.7", + "tiny-keccak", +] + +[[package]] +name = "alloy-sol-macro-expander" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06318f1778e57f36333e850aa71bd1bb5e560c10279e236622faae0470c50412" +dependencies = [ + "alloy-sol-macro-input 0.8.11", + "const-hex", + "heck", + "indexmap 2.6.0", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.87", + "syn-solidity 0.8.11", + "tiny-keccak", +] + +[[package]] +name = "alloy-sol-macro-input" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e482dc33a32b6fadbc0f599adea520bd3aaa585c141a80b404d0a3e3fa72528" +dependencies = [ + "const-hex", + "dunce", + "heck", + "proc-macro2", + "quote", + "syn 2.0.87", + "syn-solidity 0.7.7", +] + +[[package]] +name = "alloy-sol-macro-input" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaebb9b0ad61a41345a22c9279975c0cdd231b97947b10d7aad1cf0a7181e4a5" +dependencies = [ + "const-hex", + "dunce", + "heck", + "proc-macro2", + "quote", + "syn 2.0.87", + "syn-solidity 0.8.11", +] + +[[package]] +name = "alloy-sol-type-parser" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12c71028bfbfec210e24106a542aad3def7caf1a70e2c05710e92a98481980d3" +dependencies = [ + "serde", + "winnow 0.6.20", +] + +[[package]] +name = "alloy-sol-types" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" +dependencies = [ + "alloy-primitives 0.7.7", + "alloy-sol-macro 0.7.7", + "const-hex", + "serde", +] + +[[package]] +name = "alloy-sol-types" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374d7fb042d68ddfe79ccb23359de3007f6d4d53c13f703b64fb0db422132111" +dependencies = [ + "alloy-json-abi", + "alloy-primitives 0.8.11", + "alloy-sol-macro 0.8.11", + "const-hex", + "serde", +] + +[[package]] +name = "alloy-trie" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a46c9c4fdccda7982e7928904bd85fe235a0404ee3d7e197fff13d61eac8b4f" +dependencies = [ + "alloy-primitives 0.8.11", + "alloy-rlp", + "derive_more 1.0.0", + "hashbrown 0.14.5", + "nybbles", + "serde", + "smallvec", + "tracing", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anstream" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" + +[[package]] +name = "anstyle-parse" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" +dependencies = [ + "anstyle", + "windows-sys 0.59.0", +] + +[[package]] +name = "anyhow" +version = "1.0.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" + +[[package]] +name = "ark-ff" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" +dependencies = [ + "ark-ff-asm 0.3.0", + "ark-ff-macros 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", + "derivative", + "num-bigint 0.4.6", + "num-traits", + "paste", + "rustc_version 0.3.3", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.6", + "num-traits", + "paste", + "rustc_version 0.4.1", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-serialize" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" +dependencies = [ + "ark-std 0.3.0", + "digest 0.9.0", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint 0.4.6", +] + +[[package]] +name = "ark-std" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "arrayref" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + +[[package]] +name = "arrayvec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "async-trait" +version = "0.1.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "async_io_stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" +dependencies = [ + "futures", + "pharos", + "rustc_version 0.4.1", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "aurora-engine-modexp" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0aef7712851e524f35fbbb74fa6599c5cd8692056a1c36f9ca0d2001b670e7e5" +dependencies = [ + "hex", + "num", +] + +[[package]] +name = "auto_impl" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "axum" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "504e3947307ac8326a5437504c517c4b56716c9d98fac0028c2acc7ca47d70ae" +dependencies = [ + "async-trait", + "axum-core", + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.5.0", + "hyper-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sync_wrapper 1.0.1", + "tokio", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "axum-core" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper 1.0.1", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "backtrace" +version = "0.3.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "serde", + "windows-targets 0.52.6", +] + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bindgen" +version = "0.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" +dependencies = [ + "bitflags 2.6.0", + "cexpr", + "clang-sys", + "itertools 0.13.0", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash 1.1.0", + "shlex", + "syn 2.0.87", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +dependencies = [ + "serde", +] + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "serde", + "tap", + "wyz", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +dependencies = [ + "arrayref", + "arrayvec 0.7.6", + "constant_time_eq", +] + +[[package]] +name = "blake3" +version = "1.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d82033247fd8e890df8f740e407ad4d038debb9eb1f40533fffb32e7d17dc6f7" +dependencies = [ + "arrayref", + "arrayvec 0.7.6", + "cc", + "cfg-if", + "constant_time_eq", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "bls12381-program" +version = "1.1.0" +dependencies = [ + "bls12_381 0.8.0", + "ff 0.13.0", + "group 0.13.0", + "rand 0.8.5", + "sp1-zkvm", +] + +[[package]] +name = "bls12381-script" +version = "0.1.0" +dependencies = [ + "sp1-build", + "sp1-sdk", +] + +[[package]] +name = "bls12_381" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3c196a77437e7cc2fb515ce413a6401291578b5afc8ecb29a3c7ab957f05941" +dependencies = [ + "ff 0.12.1", + "group 0.12.1", + "pairing 0.22.0", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "bls12_381" +version = "0.8.0" +source = "git+https://github.com/sp1-patches/bls12_381?branch=patch-v0.8.0#444e109287eb3adc581425e160ed6041622dda35" +dependencies = [ + "cfg-if", + "ff 0.13.0", + "group 0.13.0", + "pairing 0.23.0", + "rand_core 0.6.4", + "sp1-lib 3.1.0", + "subtle", +] + +[[package]] +name = "blst" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "bn254-program" +version = "1.1.0" +dependencies = [ + "rand 0.8.5", + "sp1-zkvm", + "substrate-bn 0.6.0 (git+https://github.com/sp1-patches/bn?rev=43d854d45b5727b1ff2b9f346d728e785bb8395c)", +] + +[[package]] +name = "bn254-script" +version = "0.1.0" +dependencies = [ + "sp1-build", + "sp1-sdk", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "sha2 0.10.8", + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "bytemuck" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" +dependencies = [ + "serde", +] + +[[package]] +name = "c-kzg" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0307f72feab3300336fb803a57134159f6e20139af1357f36c54cb90d8e8928" +dependencies = [ + "blst", + "cc", + "glob", + "hex", + "libc", + "once_cell", + "serde", +] + +[[package]] +name = "camino" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.23", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cc" +version = "1.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baee610e9452a8f6f0a1b6194ec09ff9e2d85dea54432acdae41aa0761c95d70" +dependencies = [ + "jobserver", + "libc", + "shlex", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "chess" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ed299b171ec34f372945ad6726f7bc1d2afd5f59fb8380f64f48e2bab2f0ec8" +dependencies = [ + "arrayvec 0.5.2", + "failure", + "nodrop", + "rand 0.7.3", +] + +[[package]] +name = "chess-program" +version = "1.1.0" +dependencies = [ + "chess", + "sp1-zkvm", +] + +[[package]] +name = "chess-script" +version = "1.1.0" +dependencies = [ + "sp1-build", + "sp1-sdk", +] + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "num-traits", + "serde", + "windows-targets 0.52.6", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "4.5.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "clap_lex" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" + +[[package]] +name = "coins-bip32" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" +dependencies = [ + "bs58", + "coins-core", + "digest 0.10.7", + "hmac", + "k256", + "serde", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "coins-bip39" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" +dependencies = [ + "bitvec", + "coins-bip32", + "hmac", + "once_cell", + "pbkdf2 0.12.2", + "rand 0.8.5", + "sha2 0.10.8", + "thiserror", +] + +[[package]] +name = "coins-core" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" +dependencies = [ + "base64 0.21.7", + "bech32", + "bs58", + "digest 0.10.7", + "generic-array 0.14.7", + "hex", + "ripemd", + "serde", + "serde_derive", + "sha2 0.10.8", + "sha3", + "thiserror", +] + +[[package]] +name = "colorchoice" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" + +[[package]] +name = "console" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "unicode-width", + "windows-sys 0.52.0", +] + +[[package]] +name = "const-hex" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0121754e84117e65f9d90648ee6aa4882a6e63110307ab73967a4c5e7e69e586" +dependencies = [ + "cfg-if", + "cpufeatures", + "hex", + "proptest", + "serde", +] + +[[package]] +name = "const-oid" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "constant_time_eq" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "cpufeatures" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +dependencies = [ + "libc", +] + +[[package]] +name = "crc" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21" +dependencies = [ + "generic-array 0.14.7", + "subtle", +] + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array 0.14.7", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array 0.14.7", + "typenum", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "ctrlc" +version = "3.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3" +dependencies = [ + "nix", + "windows-sys 0.59.0", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "git+https://github.com/sp1-patches/curve25519-dalek?tag=curve25519_dalek-v4.1.3-patch-v1#dbdd0ffeea0ff767affc3f6765d1edbdaa9e2cb9" +dependencies = [ + "anyhow", + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rustc_version 0.4.1", + "sp1-lib 3.1.0", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "git+https://github.com/sp1-patches/curve25519-dalek?tag=curve25519_dalek-v4.1.3-patch-v1#dbdd0ffeea0ff767affc3f6765d1edbdaa9e2cb9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "curve25519-dalek-ng" +version = "4.1.1" +source = "git+https://github.com/sp1-patches/curve25519-dalek-ng?tag=curve25519_dalek_ng-v4.1.1-patch-v1#3fb3e7f6047ddeef0f0c9212f4604bd30d64bd28" +dependencies = [ + "anyhow", + "byteorder", + "cfg-if", + "digest 0.9.0", + "rand_core 0.6.4", + "sp1-lib 3.1.0", + "subtle-ng", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-ng" +version = "4.1.1" +source = "git+https://github.com/sp1-patches/curve25519-dalek-ng.git?branch=patch-v4.1.1#3fb3e7f6047ddeef0f0c9212f4604bd30d64bd28" +dependencies = [ + "anyhow", + "byteorder", + "cfg-if", + "digest 0.9.0", + "rand_core 0.6.4", + "sp1-lib 3.1.0", + "subtle-ng", + "zeroize", +] + +[[package]] +name = "cycle-tracking-program" +version = "1.1.0" +dependencies = [ + "sp1-derive", + "sp1-zkvm", +] + +[[package]] +name = "cycle-tracking-script" +version = "1.1.0" +dependencies = [ + "sp1-build", + "sp1-sdk", +] + +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.87", +] + +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "dashu" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b3e5ac1e23ff1995ef05b912e2b012a8784506987a2651552db2c73fb3d7e0" +dependencies = [ + "dashu-base", + "dashu-float", + "dashu-int", + "dashu-macros", + "dashu-ratio", + "rustversion", +] + +[[package]] +name = "dashu-base" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b80bf6b85aa68c58ffea2ddb040109943049ce3fbdf4385d0380aef08ef289" + +[[package]] +name = "dashu-float" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85078445a8dbd2e1bd21f04a816f352db8d333643f0c9b78ca7c3d1df71063e7" +dependencies = [ + "dashu-base", + "dashu-int", + "num-modular", + "num-order", + "rustversion", + "static_assertions", +] + +[[package]] +name = "dashu-int" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee99d08031ca34a4d044efbbb21dff9b8c54bb9d8c82a189187c0651ffdb9fbf" +dependencies = [ + "cfg-if", + "dashu-base", + "num-modular", + "num-order", + "rustversion", + "static_assertions", +] + +[[package]] +name = "dashu-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93381c3ef6366766f6e9ed9cf09e4ef9dec69499baf04f0c60e70d653cf0ab10" +dependencies = [ + "dashu-base", + "dashu-float", + "dashu-int", + "dashu-ratio", + "paste", + "proc-macro2", + "quote", + "rustversion", +] + +[[package]] +name = "dashu-ratio" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e33b04dd7ce1ccf8a02a69d3419e354f2bbfdf4eb911a0b7465487248764c9" +dependencies = [ + "dashu-base", + "dashu-float", + "dashu-int", + "num-modular", + "num-order", + "rustversion", +] + +[[package]] +name = "der" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c" +dependencies = [ + "const-oid 0.7.1", + "crypto-bigint 0.3.2", + "pem-rfc7468 0.3.1", +] + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid 0.9.6", + "pem-rfc7468 0.7.0", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "0.99.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +dependencies = [ + "convert_case 0.4.0", + "proc-macro2", + "quote", + "rustc_version 0.4.1", + "syn 2.0.87", +] + +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "convert_case 0.6.0", + "proc-macro2", + "quote", + "syn 2.0.87", + "unicode-xid", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "const-oid 0.9.6", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "dyn-clone" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der 0.7.9", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki 0.7.3", +] + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "git+https://github.com/sp1-patches/signatures?branch=patch-ecdsa-v0.16.9#475daa8834035cc170a567e7656329ab8de8cc44" +dependencies = [ + "anyhow", + "cfg-if", + "digest 0.10.7", + "elliptic-curve", + "hex-literal", + "signature", + "sp1-lib 3.1.0", + "spki 0.7.3", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8 0.10.2", + "signature", +] + +[[package]] +name = "ed25519-consensus" +version = "2.1.0" +source = "git+https://github.com/sp1-patches/ed25519-consensus?tag=ed25519_consensus-v2.1.0-patch-v1#2b2c4b43344bc4daf5b1326f367f2d9d661eeabb" +dependencies = [ + "curve25519-dalek-ng 4.1.1 (git+https://github.com/sp1-patches/curve25519-dalek-ng.git?branch=patch-v4.1.1)", + "hex", + "rand_core 0.6.4", + "serde", + "sha2 0.9.9", + "thiserror", + "zeroize", +] + +[[package]] +name = "ed25519-dalek" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +dependencies = [ + "curve25519-dalek", + "ed25519", + "serde", + "sha2 0.10.8", + "subtle", + "zeroize", +] + +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + +[[package]] +name = "elf" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4445909572dbd556c457c849c4ca58623d84b27c8fff1e74b0b4227d8b90d17b" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint 0.5.5", + "digest 0.10.7", + "ff 0.13.0", + "generic-array 0.14.7", + "group 0.13.0", + "pkcs8 0.10.2", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enr" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" +dependencies = [ + "base64 0.21.7", + "bytes", + "hex", + "k256", + "log", + "rand 0.8.5", + "rlp", + "serde", + "sha3", + "zeroize", +] + +[[package]] +name = "enr" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "972070166c68827e64bd1ebc8159dd8e32d9bc2da7ebe8f20b61308f7974ad30" +dependencies = [ + "alloy-rlp", + "base64 0.21.7", + "bytes", + "hex", + "log", + "rand 0.8.5", + "sha3", + "zeroize", +] + +[[package]] +name = "enum-map" +version = "2.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9" +dependencies = [ + "enum-map-derive", + "serde", +] + +[[package]] +name = "enum-map-derive" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "enumn" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "eth-keystore" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" +dependencies = [ + "aes", + "ctr", + "digest 0.10.7", + "hex", + "hmac", + "pbkdf2 0.11.0", + "rand 0.8.5", + "scrypt", + "serde", + "serde_json", + "sha2 0.10.8", + "sha3", + "thiserror", + "uuid", +] + +[[package]] +name = "ethabi" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +dependencies = [ + "ethereum-types", + "hex", + "once_cell", + "regex", + "serde", + "serde_json", + "sha3", + "thiserror", + "uint", +] + +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "primitive-types", + "scale-info", + "uint", +] + +[[package]] +name = "ethers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" +dependencies = [ + "ethers-addressbook", + "ethers-contract", + "ethers-core", + "ethers-middleware", + "ethers-providers", + "ethers-signers", +] + +[[package]] +name = "ethers-addressbook" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" +dependencies = [ + "ethers-core", + "once_cell", + "serde", + "serde_json", +] + +[[package]] +name = "ethers-contract" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" +dependencies = [ + "const-hex", + "ethers-contract-abigen", + "ethers-contract-derive", + "ethers-core", + "ethers-providers", + "futures-util", + "once_cell", + "pin-project", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "ethers-contract-abigen" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" +dependencies = [ + "Inflector", + "const-hex", + "dunce", + "ethers-core", + "eyre", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "serde", + "serde_json", + "syn 2.0.87", + "toml", + "walkdir", +] + +[[package]] +name = "ethers-contract-derive" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" +dependencies = [ + "Inflector", + "const-hex", + "ethers-contract-abigen", + "ethers-core", + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.87", +] + +[[package]] +name = "ethers-core" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" +dependencies = [ + "arrayvec 0.7.6", + "bytes", + "cargo_metadata", + "chrono", + "const-hex", + "elliptic-curve", + "ethabi", + "generic-array 0.14.7", + "k256", + "num_enum 0.7.3", + "once_cell", + "open-fastrlp", + "rand 0.8.5", + "rlp", + "serde", + "serde_json", + "strum", + "syn 2.0.87", + "tempfile", + "thiserror", + "tiny-keccak", + "unicode-xid", +] + +[[package]] +name = "ethers-middleware" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" +dependencies = [ + "async-trait", + "auto_impl", + "ethers-contract", + "ethers-core", + "ethers-providers", + "ethers-signers", + "futures-channel", + "futures-locks", + "futures-util", + "instant", + "reqwest 0.11.27", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "tracing-futures", + "url", +] + +[[package]] +name = "ethers-providers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" +dependencies = [ + "async-trait", + "auto_impl", + "base64 0.21.7", + "bytes", + "const-hex", + "enr 0.10.0", + "ethers-core", + "futures-core", + "futures-timer", + "futures-util", + "hashers", + "http 0.2.12", + "instant", + "jsonwebtoken", + "once_cell", + "pin-project", + "reqwest 0.11.27", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "tracing-futures", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "ws_stream_wasm", +] + +[[package]] +name = "ethers-signers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" +dependencies = [ + "async-trait", + "coins-bip32", + "coins-bip39", + "const-hex", + "elliptic-curve", + "eth-keystore", + "ethers-core", + "rand 0.8.5", + "sha2 0.10.8", + "thiserror", + "tracing", +] + +[[package]] +name = "eyre" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +dependencies = [ + "indenter", + "once_cell", +] + +[[package]] +name = "failure" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" +dependencies = [ + "backtrace", + "failure_derive", +] + +[[package]] +name = "failure_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure 0.12.6", +] + +[[package]] +name = "fastrand" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" + +[[package]] +name = "fastrlp" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" +dependencies = [ + "arrayvec 0.7.6", + "auto_impl", + "bytes", +] + +[[package]] +name = "ff" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +dependencies = [ + "bitvec", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "bitvec", + "byteorder", + "ff_derive", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "ff_derive" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f54704be45ed286151c5e11531316eaef5b8f5af7d597b806fdb8af108d84a" +dependencies = [ + "addchain", + "cfg-if", + "num-bigint 0.3.3", + "num-integer", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "fibonacci-program" +version = "1.1.0" +dependencies = [ + "sp1-zkvm", +] + +[[package]] +name = "fibonacci-script" +version = "1.1.0" +dependencies = [ + "hex", + "sp1-build", + "sp1-sdk", +] + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand 0.8.5", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "flex-error" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c606d892c9de11507fa0dcffc116434f94e105d0bbdc4e405b61519464c49d7b" +dependencies = [ + "paste", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-executor" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-locks" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" +dependencies = [ + "futures-channel", + "futures-task", +] + +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +dependencies = [ + "gloo-timers", + "send_wrapper 0.4.0", +] + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "gcd" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "generic-array" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96512db27971c2c3eece70a1e106fbe6c87760234e31e8f7e5634912fe52794a" +dependencies = [ + "serde", + "typenum", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "git2" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724" +dependencies = [ + "bitflags 2.6.0", + "libc", + "libgit2-sys", + "log", + "url", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "groth16-verifier-program" +version = "1.1.0" +dependencies = [ + "sp1-verifier", + "sp1-zkvm", +] + +[[package]] +name = "groth16-verifier-script" +version = "1.1.0" +dependencies = [ + "sp1-build", + "sp1-sdk", +] + +[[package]] +name = "group" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +dependencies = [ + "ff 0.12.1", + "memuse", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff 0.13.0", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.12", + "indexmap 2.6.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "h2" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.1.0", + "indexmap 2.6.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "half" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b43ede17f21864e81be2fa654110bf1e793774238d86ef8555c37e6519c0403" + +[[package]] +name = "halo2" +version = "0.1.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a23c779b38253fe1538102da44ad5bd5378495a61d2c4ee18d64eaa61ae5995" +dependencies = [ + "halo2_proofs", +] + +[[package]] +name = "halo2_proofs" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e925780549adee8364c7f2b685c753f6f3df23bde520c67416e93bf615933760" +dependencies = [ + "blake2b_simd", + "ff 0.12.1", + "group 0.12.1", + "pasta_curves 0.4.1", + "rand_core 0.6.4", + "rayon", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", + "serde", +] + +[[package]] +name = "hashbrown" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", + "serde", +] + +[[package]] +name = "hashers" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" +dependencies = [ + "fxhash", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.12", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.1.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2 0.4.6", + "http 1.1.0", + "http-body 1.0.1", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +dependencies = [ + "futures-util", + "http 1.1.0", + "hyper 1.5.0", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", + "webpki-roots", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper 0.14.31", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper 1.5.0", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "hyper 1.5.0", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +dependencies = [ + "equivalent", + "hashbrown 0.15.1", + "serde", +] + +[[package]] +name = "indicatif" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" +dependencies = [ + "console", + "instant", + "number_prefix", + "portable-atomic", + "unicode-width", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "io-program" +version = "1.1.0" +dependencies = [ + "serde", + "sp1-zkvm", +] + +[[package]] +name = "io-script" +version = "1.1.0" +dependencies = [ + "serde", + "sp1-build", + "sp1-sdk", +] + +[[package]] +name = "ipnet" +version = "2.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" + +[[package]] +name = "is-prime-program" +version = "1.1.0" +dependencies = [ + "sp1-zkvm", +] + +[[package]] +name = "is-prime-script" +version = "1.1.0" +dependencies = [ + "sp1-build", + "sp1-sdk", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json-lib" +version = "1.1.0" +dependencies = [ + "serde", +] + +[[package]] +name = "json-program" +version = "1.1.0" +dependencies = [ + "json-lib", + "serde_json", + "sp1-zkvm", +] + +[[package]] +name = "json-script" +version = "1.1.0" +dependencies = [ + "json-lib", + "serde_json", + "sp1-build", + "sp1-sdk", +] + +[[package]] +name = "jsonwebtoken" +version = "8.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" +dependencies = [ + "base64 0.21.7", + "pem", + "ring 0.16.20", + "serde", + "serde_json", + "simple_asn1", +] + +[[package]] +name = "jubjub" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a575df5f985fe1cd5b2b05664ff6accfc46559032b954529fd225a2168d27b0f" +dependencies = [ + "bitvec", + "bls12_381 0.7.1", + "ff 0.12.1", + "group 0.12.1", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa 0.16.9 (registry+https://github.com/rust-lang/crates.io-index)", + "elliptic-curve", + "once_cell", + "sha2 0.10.8", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "keccak-asm" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" +dependencies = [ + "digest 0.10.7", + "sha3-asm", +] + +[[package]] +name = "kzg-rs" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850eb19206463a61bede4f7b7e6b21731807137619044b1f3c287ebcfe2b3b0" +dependencies = [ + "ff 0.13.0", + "hex", + "sha2 0.10.8", + "sp1_bls12_381", + "spin 0.9.8", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin 0.9.8", +] + +[[package]] +name = "libc" +version = "0.2.161" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" + +[[package]] +name = "libgit2-sys" +version = "0.17.0+1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10472326a8a6477c3c20a64547b0059e4b0d086869eee31e6d7da728a8eb7224" +dependencies = [ + "cc", + "libc", + "libz-sys", + "pkg-config", +] + +[[package]] +name = "libloading" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +dependencies = [ + "cfg-if", + "windows-targets 0.52.6", +] + +[[package]] +name = "libm" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.6.0", + "libc", +] + +[[package]] +name = "libz-sys" +version = "1.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "lru" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +dependencies = [ + "hashbrown 0.15.1", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "memuse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2145869435ace5ea6ea3d35f59be559317ec9a0d04e1812d5f185a87b6d36f1a" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +dependencies = [ + "hermit-abi", + "libc", + "wasi", + "windows-sys 0.52.0", +] + +[[package]] +name = "modular-bitfield" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" +dependencies = [ + "modular-bitfield-impl", + "static_assertions", +] + +[[package]] +name = "modular-bitfield-impl" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "native-tls" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "nix" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "cfg_aliases", + "libc", +] + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "nohash-hasher" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "ntapi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" +dependencies = [ + "winapi", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint 0.4.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-modular" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17bb261bf36fa7d83f4c294f834e91256769097b3cb505d44831e0a179ac647f" + +[[package]] +name = "num-order" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "537b596b97c40fcf8056d153049eb22f481c17ebce72a513ec9286e4986d1bb6" +dependencies = [ + "num-modular", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint 0.4.6", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +dependencies = [ + "num_enum_derive 0.5.11", +] + +[[package]] +name = "num_enum" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +dependencies = [ + "num_enum_derive 0.7.3", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + +[[package]] +name = "nybbles" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95f06be0417d97f81fe4e5c86d7d01b392655a9cac9c19a848aa033e18937b23" +dependencies = [ + "alloy-rlp", + "const-hex", + "proptest", + "serde", + "smallvec", +] + +[[package]] +name = "object" +version = "0.36.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" + +[[package]] +name = "op-alloy-consensus" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21aad1fbf80d2bcd7406880efc7ba109365f44bbb72896758ddcbfa46bf1592c" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.11", + "alloy-rlp", + "alloy-serde", + "derive_more 1.0.0", + "serde", + "spin 0.9.8", +] + +[[package]] +name = "op-alloy-rpc-types" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e281fbfc2198b7c0c16457d6524f83d192662bc9f3df70f24c3038d4521616df" +dependencies = [ + "alloy-eips", + "alloy-network-primitives", + "alloy-primitives 0.8.11", + "alloy-rpc-types-eth", + "alloy-serde", + "cfg-if", + "hashbrown 0.14.5", + "op-alloy-consensus", + "serde", + "serde_json", +] + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "open-fastrlp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" +dependencies = [ + "arrayvec 0.7.6", + "auto_impl", + "bytes", + "ethereum-types", + "open-fastrlp-derive", +] + +[[package]] +name = "open-fastrlp-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +dependencies = [ + "bytes", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "openssl" +version = "0.10.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa 0.16.9 (registry+https://github.com/rust-lang/crates.io-index)", + "elliptic-curve", + "primeorder", + "sha2 0.10.8", +] + +[[package]] +name = "p3-air" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "066f571b2e645505ed5972dd0e1e252ba03352150830c9566769ca711c0f1e9b" +dependencies = [ + "p3-field", + "p3-matrix", +] + +[[package]] +name = "p3-baby-bear" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff00f571044d299310d9659c6e51c98422de3bf94b8577f7f30cf59cf2043e40" +dependencies = [ + "num-bigint 0.4.6", + "p3-field", + "p3-mds", + "p3-poseidon2", + "p3-symmetric", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "p3-blake3" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc4cb69ae54a279bbbd477566d1bdb71aa879b528fd658d0fcfc36f54b00217c" +dependencies = [ + "blake3", + "p3-symmetric", +] + +[[package]] +name = "p3-bn254-fr" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf19917f986d45e9abb6d177e875824ced6eed096480d574fce16f2c45c721ea" +dependencies = [ + "ff 0.13.0", + "num-bigint 0.4.6", + "p3-field", + "p3-poseidon2", + "p3-symmetric", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "p3-challenger" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be7e4fbce4566a93091107eadfafa0b5374bd1ffd3e0f6b850da3ff72eb183f" +dependencies = [ + "p3-field", + "p3-maybe-rayon", + "p3-symmetric", + "p3-util", + "serde", + "tracing", +] + +[[package]] +name = "p3-commit" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a03eb0f99d68a712c41e658e9a7782a0705d4ffcfb6232a43bd3f1ef9591002" +dependencies = [ + "itertools 0.12.1", + "p3-challenger", + "p3-dft", + "p3-field", + "p3-matrix", + "p3-util", + "serde", +] + +[[package]] +name = "p3-dft" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1556de968523fbe5d804ab50600ea306fcceea3500cfd7601e40882480524664" +dependencies = [ + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "tracing", +] + +[[package]] +name = "p3-field" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cec2af6e1ac47a2035af5165e668d64612c4b9ccabd06df37fc1fd381fdf8a71" +dependencies = [ + "itertools 0.12.1", + "num-bigint 0.4.6", + "num-traits", + "p3-util", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "p3-fri" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f351ee9f9d4256455164565cd91e3e6d2487cc2a5355515fa2b6d479269188dd" +dependencies = [ + "itertools 0.12.1", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-interpolation", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "serde", + "tracing", +] + +[[package]] +name = "p3-interpolation" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24d0f2907a374ebe4545fcff3120d6376d9630cf0bef30feedcfc5908ea2c37" +dependencies = [ + "p3-field", + "p3-matrix", + "p3-util", +] + +[[package]] +name = "p3-keccak-air" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e66badd47cedf6570e91a0cabc389b80dfd53ba1a6e9a45a3923fd54b86122ff" +dependencies = [ + "p3-air", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "tracing", +] + +[[package]] +name = "p3-matrix" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa272f3ae77ed8d73478aa7c89e712efb15bda3ff4aff10fadfe11a012cd5389" +dependencies = [ + "itertools 0.12.1", + "p3-field", + "p3-maybe-rayon", + "p3-util", + "rand 0.8.5", + "serde", + "tracing", +] + +[[package]] +name = "p3-maybe-rayon" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eecad6292021858f282d643d9d1284ab112a200494d589863a9c4080e578ef0" +dependencies = [ + "rayon", +] + +[[package]] +name = "p3-mds" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "716c4dbe68a02f1541eb09149d07b8663a3a5951b1864a31cd67ff3bb0826e57" +dependencies = [ + "itertools 0.12.1", + "p3-dft", + "p3-field", + "p3-matrix", + "p3-symmetric", + "p3-util", + "rand 0.8.5", +] + +[[package]] +name = "p3-merkle-tree" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad7ebab52a03c26025988663a135aed62f5084a2e2ea262176dc8748efb593e5" +dependencies = [ + "itertools 0.12.1", + "p3-commit", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-symmetric", + "p3-util", + "serde", + "tracing", +] + +[[package]] +name = "p3-poseidon2" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c042efa15beab7a8c4d0ca9b9e4cbda7582be0c08e121e830fec45f082935b" +dependencies = [ + "gcd", + "p3-field", + "p3-mds", + "p3-symmetric", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "p3-symmetric" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9896a831f5b688adc13f6fbe1dcf66ecfaa4622a500f81aa745610e777acb72" +dependencies = [ + "itertools 0.12.1", + "p3-field", + "serde", +] + +[[package]] +name = "p3-uni-stark" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8437ebcd060c8a5479898030b114a93da8a86eb4c2e5f313d9eeaaf40c6e6f61" +dependencies = [ + "itertools 0.12.1", + "p3-air", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "serde", + "tracing", +] + +[[package]] +name = "p3-util" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dedb9d27ba47ac314c6fac4ca54e55c3e486c864d51ec5ba55dbe47b75121157" +dependencies = [ + "serde", +] + +[[package]] +name = "pairing" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135590d8bdba2b31346f9cd1fb2a912329f5135e832a4f422942eb6ead8b6b3b" +dependencies = [ + "group 0.12.1", +] + +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group 0.13.0", +] + +[[package]] +name = "parity-scale-codec" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +dependencies = [ + "arrayvec 0.7.6", + "bitvec", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "pasta_curves" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc65faf8e7313b4b1fbaa9f7ca917a0eed499a9663be71477f87993604341d8" +dependencies = [ + "blake2b_simd", + "ff 0.12.1", + "group 0.12.1", + "lazy_static", + "rand 0.8.5", + "static_assertions", + "subtle", +] + +[[package]] +name = "pasta_curves" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" +dependencies = [ + "blake2b_simd", + "ff 0.13.0", + "group 0.13.0", + "lazy_static", + "rand 0.8.5", + "static_assertions", + "subtle", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "patch-testing-program" +version = "1.1.0" +dependencies = [ + "alloy-primitives 0.8.11", + "curve25519-dalek", + "curve25519-dalek-ng 4.1.1 (git+https://github.com/sp1-patches/curve25519-dalek-ng?tag=curve25519_dalek_ng-v4.1.1-patch-v1)", + "ed25519-consensus", + "ed25519-dalek", + "revm-precompile", + "secp256k1", + "sha2 0.10.8", + "sha2 0.9.9", + "sp1-zkvm", + "tiny-keccak", +] + +[[package]] +name = "patch-testing-script" +version = "1.1.0" +dependencies = [ + "sp1-build", + "sp1-core-executor", + "sp1-sdk", +] + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "hmac", +] + +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "pem-rfc7468" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01de5d978f34aa4b2296576379fcc416034702fd94117c56ffd8a1a767cefb30" +dependencies = [ + "base64ct", +] + +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pest" +version = "2.7.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pharos" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +dependencies = [ + "futures", + "rustc_version 0.4.1", +] + +[[package]] +name = "pin-project" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs1" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a78f66c04ccc83dd4486fd46c33896f4e17b24a7a3a6400dedc48ed0ddd72320" +dependencies = [ + "der 0.5.1", + "pkcs8 0.8.0", + "zeroize", +] + +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der 0.7.9", + "pkcs8 0.10.2", + "spki 0.7.3", +] + +[[package]] +name = "pkcs8" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0" +dependencies = [ + "der 0.5.1", + "spki 0.5.4", + "zeroize", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der 0.7.9", + "spki 0.7.3", +] + +[[package]] +name = "pkg-config" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" + +[[package]] +name = "portable-atomic" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "prettyplease" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" +dependencies = [ + "proc-macro2", + "syn 2.0.87", +] + +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +dependencies = [ + "toml_edit 0.22.22", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "proc-macro2" +version = "1.0.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "proptest" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" +dependencies = [ + "bit-set", + "bit-vec", + "bitflags 2.6.0", + "lazy_static", + "num-traits", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_xorshift", + "regex-syntax 0.8.5", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "prost" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes", + "prost-derive 0.12.6", +] + +[[package]] +name = "prost" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" +dependencies = [ + "bytes", + "prost-derive 0.13.3", +] + +[[package]] +name = "prost-derive" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +dependencies = [ + "anyhow", + "itertools 0.12.1", + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "prost-derive" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" +dependencies = [ + "anyhow", + "itertools 0.13.0", + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "prost-types" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +dependencies = [ + "prost 0.12.6", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quinn" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +dependencies = [ + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash 2.0.0", + "rustls", + "socket2", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.11.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +dependencies = [ + "bytes", + "rand 0.8.5", + "ring 0.17.8", + "rustc-hash 2.0.0", + "rustls", + "slab", + "thiserror", + "tinyvec", + "tracing", +] + +[[package]] +name = "quinn-udp" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.59.0", +] + +[[package]] +name = "quote" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", + "rand_pcg", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", + "serde", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "rayon-scan" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f87cc11a0140b4b0da0ffc889885760c61b13672d80a908920b2c0df078fa14" +dependencies = [ + "rayon", +] + +[[package]] +name = "redox_syscall" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" +dependencies = [ + "bitflags 2.6.0", +] + +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom", + "libredox", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-program" +version = "1.1.0" +dependencies = [ + "regex", + "sp1-zkvm", +] + +[[package]] +name = "regex-script" +version = "1.1.0" +dependencies = [ + "sp1-build", + "sp1-sdk", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.31", + "hyper-tls 0.5.0", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile 1.0.4", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 0.1.2", + "system-configuration 0.5.1", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "reqwest" +version = "0.12.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" +dependencies = [ + "base64 0.22.1", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2 0.4.6", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.5.0", + "hyper-rustls", + "hyper-tls 0.6.0", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pemfile 2.2.0", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.1", + "system-configuration 0.6.1", + "tokio", + "tokio-native-tls", + "tokio-rustls", + "tokio-util", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "webpki-roots", + "windows-registry", +] + +[[package]] +name = "reqwest-middleware" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "562ceb5a604d3f7c885a792d42c199fd8af239d0a51b2fa6a78aafa092452b04" +dependencies = [ + "anyhow", + "async-trait", + "http 1.1.0", + "reqwest 0.12.9", + "serde", + "thiserror", + "tower-service", +] + +[[package]] +name = "reth-blockchain-tree-api" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "reth-consensus", + "reth-execution-errors", + "reth-primitives", + "reth-storage-errors", + "thiserror", +] + +[[package]] +name = "reth-chainspec" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "alloy-chains", + "alloy-eips", + "alloy-genesis", + "alloy-primitives 0.8.11", + "alloy-trie", + "auto_impl", + "derive_more 1.0.0", + "once_cell", + "op-alloy-rpc-types", + "reth-ethereum-forks", + "reth-network-peers", + "reth-primitives-traits", + "reth-trie-common", + "serde", + "serde_json", +] + +[[package]] +name = "reth-codecs" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-genesis", + "alloy-primitives 0.8.11", + "alloy-trie", + "bytes", + "modular-bitfield", + "reth-codecs-derive", + "serde", +] + +[[package]] +name = "reth-codecs-derive" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "convert_case 0.6.0", + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "reth-consensus" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "auto_impl", + "derive_more 1.0.0", + "reth-primitives", +] + +[[package]] +name = "reth-consensus-common" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "reth-chainspec", + "reth-consensus", + "reth-primitives", +] + +[[package]] +name = "reth-db-models" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "bytes", + "modular-bitfield", + "reth-codecs", + "reth-primitives", + "serde", +] + +[[package]] +name = "reth-errors" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "reth-blockchain-tree-api", + "reth-consensus", + "reth-execution-errors", + "reth-fs-util", + "reth-storage-errors", + "thiserror", +] + +[[package]] +name = "reth-ethereum-consensus" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "reth-chainspec", + "reth-consensus", + "reth-consensus-common", + "reth-primitives", + "tracing", +] + +[[package]] +name = "reth-ethereum-forks" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "alloy-chains", + "alloy-primitives 0.8.11", + "alloy-rlp", + "auto_impl", + "crc", + "dyn-clone", + "once_cell", + "rustc-hash 2.0.0", + "serde", + "thiserror-no-std", +] + +[[package]] +name = "reth-evm" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "alloy-eips", + "auto_impl", + "futures-util", + "reth-chainspec", + "reth-execution-errors", + "reth-execution-types", + "reth-primitives", + "reth-prune-types", + "reth-storage-errors", + "revm", + "revm-primitives", +] + +[[package]] +name = "reth-evm-ethereum" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "alloy-eips", + "alloy-sol-types 0.8.11", + "reth-chainspec", + "reth-ethereum-consensus", + "reth-ethereum-forks", + "reth-evm", + "reth-execution-types", + "reth-primitives", + "reth-prune-types", + "reth-revm", + "revm-primitives", +] + +[[package]] +name = "reth-evm-optimism" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "reth-chainspec", + "reth-ethereum-forks", + "reth-evm", + "reth-execution-errors", + "reth-execution-types", + "reth-optimism-consensus", + "reth-primitives", + "reth-prune-types", + "reth-revm", + "revm", + "revm-primitives", + "thiserror", + "tracing", +] + +[[package]] +name = "reth-execution-errors" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "alloy-eips", + "alloy-primitives 0.8.11", + "alloy-rlp", + "derive_more 1.0.0", + "nybbles", + "reth-consensus", + "reth-prune-types", + "reth-storage-errors", + "revm-primitives", +] + +[[package]] +name = "reth-execution-types" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "reth-chainspec", + "reth-execution-errors", + "reth-primitives", + "reth-trie", + "revm", +] + +[[package]] +name = "reth-fs-util" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "reth-network-peers" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "alloy-primitives 0.8.11", + "alloy-rlp", + "enr 0.12.1", + "serde_with", + "thiserror", + "url", +] + +[[package]] +name = "reth-optimism-chainspec" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "alloy-chains", + "alloy-primitives 0.8.11", + "derive_more 1.0.0", + "once_cell", + "reth-chainspec", + "reth-ethereum-forks", + "reth-primitives-traits", + "serde_json", +] + +[[package]] +name = "reth-optimism-consensus" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "reth-chainspec", + "reth-consensus", + "reth-consensus-common", + "reth-primitives", + "tracing", +] + +[[package]] +name = "reth-primitives" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-genesis", + "alloy-primitives 0.8.11", + "alloy-rlp", + "alloy-rpc-types", + "alloy-serde", + "bytes", + "derive_more 1.0.0", + "k256", + "once_cell", + "op-alloy-rpc-types", + "rayon", + "reth-chainspec", + "reth-ethereum-forks", + "reth-optimism-chainspec", + "reth-primitives-traits", + "reth-static-file-types", + "reth-trie-common", + "revm-primitives", + "serde", + "thiserror", +] + +[[package]] +name = "reth-primitives-traits" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-genesis", + "alloy-primitives 0.8.11", + "alloy-rlp", + "alloy-rpc-types-eth", + "byteorder", + "bytes", + "derive_more 1.0.0", + "modular-bitfield", + "reth-codecs", + "revm-primitives", + "roaring", + "serde", +] + +[[package]] +name = "reth-prune-types" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "alloy-primitives 0.8.11", + "bytes", + "derive_more 1.0.0", + "modular-bitfield", + "reth-codecs", + "serde", + "thiserror", +] + +[[package]] +name = "reth-revm" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "reth-chainspec", + "reth-consensus-common", + "reth-execution-errors", + "reth-primitives", + "reth-prune-types", + "reth-storage-api", + "reth-storage-errors", + "revm", +] + +[[package]] +name = "reth-stages-types" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "alloy-primitives 0.8.11", + "bytes", + "modular-bitfield", + "reth-codecs", + "reth-trie-common", + "serde", +] + +[[package]] +name = "reth-static-file-types" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "alloy-primitives 0.8.11", + "derive_more 1.0.0", + "serde", + "strum", +] + +[[package]] +name = "reth-storage-api" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "auto_impl", + "reth-chainspec", + "reth-db-models", + "reth-execution-types", + "reth-primitives", + "reth-prune-types", + "reth-stages-types", + "reth-storage-errors", + "reth-trie", +] + +[[package]] +name = "reth-storage-errors" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "alloy-rlp", + "derive_more 1.0.0", + "reth-fs-util", + "reth-primitives", +] + +[[package]] +name = "reth-trie" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "alloy-rlp", + "auto_impl", + "derive_more 1.0.0", + "itertools 0.13.0", + "rayon", + "reth-execution-errors", + "reth-primitives", + "reth-stages-types", + "reth-storage-errors", + "reth-trie-common", + "revm", + "tracing", +] + +[[package]] +name = "reth-trie-common" +version = "1.0.6" +source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" +dependencies = [ + "alloy-consensus", + "alloy-genesis", + "alloy-primitives 0.8.11", + "alloy-rlp", + "alloy-trie", + "bytes", + "derive_more 1.0.0", + "itertools 0.13.0", + "nybbles", + "reth-codecs", + "reth-primitives-traits", + "revm-primitives", + "serde", +] + +[[package]] +name = "revm" +version = "14.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f719e28cc6fdd086f8bc481429e587740d20ad89729cec3f5f5dd7b655474df" +dependencies = [ + "auto_impl", + "cfg-if", + "dyn-clone", + "revm-interpreter", + "revm-precompile", + "serde", + "serde_json", +] + +[[package]] +name = "revm-interpreter" +version = "10.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "959ecbc36802de6126852479844737f20194cf8e6718e0c30697d306a2cca916" +dependencies = [ + "revm-primitives", + "serde", +] + +[[package]] +name = "revm-precompile" +version = "11.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e25f604cb9db593ca3013be8c00f310d6790ccb1b7d8fbbdd4660ec8888043a" +dependencies = [ + "aurora-engine-modexp", + "c-kzg", + "cfg-if", + "k256", + "kzg-rs", + "once_cell", + "p256", + "revm-primitives", + "ripemd", + "secp256k1", + "sha2 0.10.8", + "substrate-bn 0.6.0 (git+https://github.com/sp1-patches/bn?tag=substrate_bn-v0.6.0-patch-v1)", +] + +[[package]] +name = "revm-primitives" +version = "9.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a6bff9dbde3370a5ac9555104117f7e6039b3cc76e8d5d9d01899088beca2a" +dependencies = [ + "alloy-eips", + "alloy-primitives 0.8.11", + "auto_impl", + "bitflags 2.6.0", + "bitvec", + "c-kzg", + "cfg-if", + "dyn-clone", + "enumn", + "hashbrown 0.14.5", + "hex", + "kzg-rs", + "serde", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rlp-derive", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "roaring" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f4b84ba6e838ceb47b41de5194a60244fac43d9fe03b71dbe8c5a201081d6d1" +dependencies = [ + "bytemuck", + "byteorder", +] + +[[package]] +name = "rrs-succinct" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3372685893a9f67d18e98e792d690017287fd17379a83d798d958e517d380fa9" +dependencies = [ + "downcast-rs", + "num_enum 0.5.11", + "paste", +] + +[[package]] +name = "rsa" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cf22754c49613d2b3b119f0e5d46e34a2c628a937e3024b8762de4e7d8c710b" +dependencies = [ + "byteorder", + "digest 0.10.7", + "num-bigint-dig", + "num-integer", + "num-iter", + "num-traits", + "pkcs1 0.3.3", + "pkcs8 0.8.0", + "rand_core 0.6.4", + "smallvec", + "subtle", + "zeroize", +] + +[[package]] +name = "rsa" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +dependencies = [ + "const-oid 0.9.6", + "digest 0.10.7", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1 0.7.5", + "pkcs8 0.10.2", + "rand_core 0.6.4", + "signature", + "spki 0.7.3", + "subtle", + "zeroize", +] + +[[package]] +name = "rsa-program" +version = "1.1.0" +dependencies = [ + "rsa 0.9.6", + "sha2 0.10.8", + "sp1-zkvm", +] + +[[package]] +name = "rsa-script" +version = "1.1.0" +dependencies = [ + "rsa 0.6.1", + "sp1-build", + "sp1-sdk", +] + +[[package]] +name = "rsp-client-executor" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/rsp/?rev=3647076#3647076da6580e30384dd911a3fc50d4bcdb5bc1" +dependencies = [ + "alloy-primitives 0.8.11", + "alloy-rlp", + "eyre", + "futures", + "itertools 0.13.0", + "reth-chainspec", + "reth-errors", + "reth-ethereum-consensus", + "reth-evm", + "reth-evm-ethereum", + "reth-evm-optimism", + "reth-execution-types", + "reth-optimism-consensus", + "reth-primitives", + "reth-revm", + "reth-storage-errors", + "reth-trie", + "revm", + "revm-primitives", + "rsp-mpt", + "rsp-primitives", + "rsp-witness-db", + "serde", + "serde_json", + "tokio", + "url", +] + +[[package]] +name = "rsp-mpt" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/rsp/?rev=3647076#3647076da6580e30384dd911a3fc50d4bcdb5bc1" +dependencies = [ + "alloy-primitives 0.8.11", + "alloy-rlp", + "alloy-rpc-types", + "anyhow", + "eyre", + "itertools 0.13.0", + "reth-execution-types", + "reth-primitives", + "reth-trie", + "revm", + "revm-primitives", + "rlp", + "rsp-primitives", + "serde", + "thiserror", +] + +[[package]] +name = "rsp-primitives" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/rsp/?rev=3647076#3647076da6580e30384dd911a3fc50d4bcdb5bc1" +dependencies = [ + "alloy-rpc-types", + "eyre", + "reth-chainspec", + "reth-optimism-chainspec", + "reth-primitives", + "reth-revm", + "reth-trie", + "revm-interpreter", + "revm-precompile", + "revm-primitives", + "serde", + "serde_json", + "tracing", +] + +[[package]] +name = "rsp-program" +version = "1.1.0" +dependencies = [ + "bincode", + "rsp-client-executor", + "sp1-zkvm", +] + +[[package]] +name = "rsp-script" +version = "0.1.0" +dependencies = [ + "alloy-primitives 0.8.11", + "bincode", + "clap", + "rsp-client-executor", + "sp1-build", + "sp1-sdk", +] + +[[package]] +name = "rsp-witness-db" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/rsp/?rev=3647076#3647076da6580e30384dd911a3fc50d4bcdb5bc1" +dependencies = [ + "reth-primitives", + "reth-storage-errors", + "revm-primitives", + "rsp-primitives", + "serde", +] + +[[package]] +name = "ruint" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" +dependencies = [ + "alloy-rlp", + "ark-ff 0.3.0", + "ark-ff 0.4.2", + "bytes", + "fastrlp", + "num-bigint 0.4.6", + "num-traits", + "parity-scale-codec", + "primitive-types", + "proptest", + "rand 0.8.5", + "rlp", + "ruint-macro", + "serde", + "valuable", + "zeroize", +] + +[[package]] +name = "ruint-macro" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hash" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +dependencies = [ + "rand 0.8.5", +] + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver 1.0.23", +] + +[[package]] +name = "rustix" +version = "0.38.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "375116bee2be9ed569afe2154ea6a99dfdffd257f533f187498c2a8f5feaf4ee" +dependencies = [ + "bitflags 2.6.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.23.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" +dependencies = [ + "once_cell", + "ring 0.17.8", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" + +[[package]] +name = "rustls-webpki" +version = "0.102.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +dependencies = [ + "ring 0.17.8", + "rustls-pki-types", + "untrusted 0.9.0", +] + +[[package]] +name = "rustversion" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" + +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scale-info" +version = "2.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aa7ffc1c0ef49b0452c6e2986abf2b07743320641ffd5fc63d552458e3b779b" +dependencies = [ + "cfg-if", + "derive_more 1.0.0", + "parity-scale-codec", + "scale-info-derive", +] + +[[package]] +name = "scale-info-derive" +version = "2.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46385cc24172cf615450267463f937c10072516359b3ff1cb24228a4a08bf951" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "scc" +version = "2.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8d25269dd3a12467afe2e510f69fb0b46b698e5afb296b59f2145259deaf8e8" +dependencies = [ + "sdd", +] + +[[package]] +name = "schannel" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scrypt" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" +dependencies = [ + "hmac", + "pbkdf2 0.11.0", + "salsa20", + "sha2 0.10.8", +] + +[[package]] +name = "sdd" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49c1eeaf4b6a87c7479688c6d52b9f1153cedd3c489300564f932b065c6eab95" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der 0.7.9", + "generic-array 0.14.7", + "pkcs8 0.10.2", + "subtle", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.29.0" +source = "git+https://github.com/sp1-patches/rust-secp256k1?tag=secp256k1-v0.29.0-patch-v1#c78195abe3c5bc11163d69588a5559ef21bdff31" +dependencies = [ + "cfg-if", + "ecdsa 0.16.9 (git+https://github.com/sp1-patches/signatures?branch=patch-ecdsa-v0.16.9)", + "elliptic-curve", + "k256", + "rand 0.8.5", + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.10.0" +source = "git+https://github.com/sp1-patches/rust-secp256k1?tag=secp256k1-v0.29.0-patch-v1#c78195abe3c5bc11163d69588a5559ef21bdff31" +dependencies = [ + "cc", +] + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + +[[package]] +name = "serde" +version = "1.0.214" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_bytes" +version = "0.11.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_cbor" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5" +dependencies = [ + "half", + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.214" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "serde_json" +version = "1.0.132" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" +dependencies = [ + "indexmap 2.6.0", + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" +dependencies = [ + "itoa", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.6.0", + "serde", + "serde_derive", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d846214a9854ef724f3da161b426242d8de7c1fc7de2f89bb1efcb154dca79d" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "serial_test" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b4b487fe2acf240a021cf57c6b2b4903b1e78ca0ecd862a71b71d2a51fed77d" +dependencies = [ + "futures", + "log", + "once_cell", + "parking_lot", + "scc", + "serial_test_derive", +] + +[[package]] +name = "serial_test_derive" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "sha2" +version = "0.9.8" +source = "git+https://github.com/sp1-patches/RustCrypto-hashes.git?branch=patch-v0.9.8#afdbfb09c325f8a69c01d540ec9a261e3637725d" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "git+https://github.com/sp1-patches/RustCrypto-hashes?tag=sha2-v0.9.9-patch-v1#db82a4848f8d033eab544255e1efa036cc06f054" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "git+https://github.com/sp1-patches/RustCrypto-hashes?tag=sha2-v0.10.8-patch-v1#1f224388fdede7cef649bce0d63876d1a9e3f515" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sha3-asm" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" +dependencies = [ + "cc", + "cfg-if", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simple_asn1" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "thiserror", + "time", +] + +[[package]] +name = "size" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fed904c7fb2856d868b92464fc8fa597fce366edea1a9cbfaa8cb5fe080bd6d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +dependencies = [ + "serde", +] + +[[package]] +name = "snowbridge-amcl" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460a9ed63cdf03c1b9847e8a12a5f5ba19c4efd5869e4a737e05be25d7c427e5" +dependencies = [ + "parity-scale-codec", + "scale-info", +] + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "sp1-build" +version = "3.2.0" +dependencies = [ + "anyhow", + "cargo_metadata", + "chrono", + "clap", + "dirs", +] + +[[package]] +name = "sp1-core-executor" +version = "3.2.0" +dependencies = [ + "bincode", + "bytemuck", + "elf", + "enum-map", + "eyre", + "hashbrown 0.14.5", + "hex", + "itertools 0.13.0", + "log", + "nohash-hasher", + "num", + "p3-field", + "p3-maybe-rayon", + "rand 0.8.5", + "rrs-succinct", + "serde", + "sp1-curves", + "sp1-primitives", + "sp1-stark", + "strum", + "strum_macros", + "thiserror", + "tiny-keccak", + "tracing", + "typenum", + "vec_map", +] + +[[package]] +name = "sp1-core-machine" +version = "3.2.0" +dependencies = [ + "bincode", + "cfg-if", + "elliptic-curve", + "generic-array 1.1.0", + "hashbrown 0.14.5", + "hex", + "itertools 0.13.0", + "k256", + "log", + "num", + "num_cpus", + "p3-air", + "p3-baby-bear", + "p3-blake3", + "p3-challenger", + "p3-field", + "p3-keccak-air", + "p3-matrix", + "p3-maybe-rayon", + "p3-uni-stark", + "p3-util", + "rand 0.8.5", + "serde", + "size", + "snowbridge-amcl", + "sp1-core-executor", + "sp1-curves", + "sp1-derive", + "sp1-primitives", + "sp1-stark", + "static_assertions", + "strum", + "strum_macros", + "tempfile", + "thiserror", + "tracing", + "tracing-forest", + "tracing-subscriber", + "typenum", + "web-time", +] + +[[package]] +name = "sp1-cuda" +version = "3.2.0" +dependencies = [ + "bincode", + "ctrlc", + "prost 0.13.3", + "serde", + "sp1-core-machine", + "sp1-prover", + "tokio", + "tracing", + "twirp-rs", +] + +[[package]] +name = "sp1-curves" +version = "3.2.0" +dependencies = [ + "cfg-if", + "curve25519-dalek", + "dashu", + "elliptic-curve", + "generic-array 1.1.0", + "itertools 0.13.0", + "k256", + "num", + "p3-field", + "serde", + "snowbridge-amcl", + "sp1-primitives", + "sp1-stark", + "typenum", +] + +[[package]] +name = "sp1-derive" +version = "3.2.0" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "sp1-lib" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea7811abd2d3a991007fcb284f41152840b8388c171288d0c52c6793956609c" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "hex", + "serde", + "snowbridge-amcl", +] + +[[package]] +name = "sp1-lib" +version = "3.0.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=dev#c804db2bb19d368035d2bdf4d0963ae7f4190150" +dependencies = [ + "bincode", + "serde", +] + +[[package]] +name = "sp1-lib" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14deb700469a37ec075bcf88dac3815b026dd9c4b9cb175980826f1fbb2e4e80" +dependencies = [ + "bincode", + "serde", +] + +[[package]] +name = "sp1-lib" +version = "3.2.0" +dependencies = [ + "bincode", + "serde", +] + +[[package]] +name = "sp1-primitives" +version = "3.2.0" +dependencies = [ + "bincode", + "hex", + "lazy_static", + "num-bigint 0.4.6", + "p3-baby-bear", + "p3-field", + "p3-poseidon2", + "p3-symmetric", + "serde", + "sha2 0.10.8", +] + +[[package]] +name = "sp1-prover" +version = "3.2.0" +dependencies = [ + "anyhow", + "bincode", + "clap", + "dirs", + "eyre", + "itertools 0.13.0", + "lazy_static", + "lru", + "num-bigint 0.4.6", + "p3-baby-bear", + "p3-bn254-fr", + "p3-challenger", + "p3-commit", + "p3-field", + "p3-matrix", + "p3-symmetric", + "rayon", + "reqwest 0.11.27", + "serde", + "serde_json", + "serial_test", + "sp1-core-executor", + "sp1-core-machine", + "sp1-primitives", + "sp1-recursion-circuit", + "sp1-recursion-compiler", + "sp1-recursion-core", + "sp1-recursion-gnark-ffi", + "sp1-stark", + "subtle-encoding", + "tempfile", + "thiserror", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "sp1-recursion-circuit" +version = "3.2.0" +dependencies = [ + "hashbrown 0.14.5", + "itertools 0.13.0", + "num-traits", + "p3-air", + "p3-baby-bear", + "p3-bn254-fr", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-fri", + "p3-matrix", + "p3-symmetric", + "p3-util", + "rand 0.8.5", + "rayon", + "serde", + "sp1-core-executor", + "sp1-core-machine", + "sp1-derive", + "sp1-primitives", + "sp1-recursion-compiler", + "sp1-recursion-core", + "sp1-recursion-gnark-ffi", + "sp1-stark", + "tracing", +] + +[[package]] +name = "sp1-recursion-compiler" +version = "3.2.0" +dependencies = [ + "backtrace", + "itertools 0.13.0", + "p3-baby-bear", + "p3-bn254-fr", + "p3-field", + "p3-symmetric", + "serde", + "sp1-core-machine", + "sp1-primitives", + "sp1-recursion-core", + "sp1-recursion-derive", + "sp1-stark", + "tracing", + "vec_map", +] + +[[package]] +name = "sp1-recursion-core" +version = "3.2.0" +dependencies = [ + "backtrace", + "ff 0.13.0", + "hashbrown 0.14.5", + "itertools 0.13.0", + "p3-air", + "p3-baby-bear", + "p3-bn254-fr", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-fri", + "p3-matrix", + "p3-maybe-rayon", + "p3-merkle-tree", + "p3-poseidon2", + "p3-symmetric", + "p3-util", + "serde", + "sp1-core-machine", + "sp1-derive", + "sp1-primitives", + "sp1-stark", + "static_assertions", + "thiserror", + "tracing", + "vec_map", + "zkhash", +] + +[[package]] +name = "sp1-recursion-derive" +version = "3.2.0" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "sp1-recursion-gnark-ffi" +version = "3.2.0" +dependencies = [ + "anyhow", + "bincode", + "bindgen", + "cc", + "cfg-if", + "hex", + "log", + "num-bigint 0.4.6", + "p3-baby-bear", + "p3-field", + "p3-symmetric", + "serde", + "serde_json", + "sha2 0.10.8", + "sp1-core-machine", + "sp1-recursion-compiler", + "sp1-stark", + "tempfile", +] + +[[package]] +name = "sp1-sdk" +version = "3.2.0" +dependencies = [ + "alloy-sol-types 0.7.7", + "anyhow", + "async-trait", + "bincode", + "cfg-if", + "dirs", + "ethers", + "futures", + "hashbrown 0.14.5", + "hex", + "indicatif", + "itertools 0.13.0", + "log", + "p3-baby-bear", + "p3-field", + "p3-fri", + "prost 0.13.3", + "reqwest 0.12.9", + "reqwest-middleware", + "serde", + "sp1-core-executor", + "sp1-core-machine", + "sp1-cuda", + "sp1-primitives", + "sp1-prover", + "sp1-stark", + "strum", + "strum_macros", + "tempfile", + "thiserror", + "tokio", + "tracing", + "twirp-rs", + "vergen", +] + +[[package]] +name = "sp1-stark" +version = "3.2.0" +dependencies = [ + "arrayref", + "getrandom", + "hashbrown 0.14.5", + "itertools 0.13.0", + "num-traits", + "p3-air", + "p3-baby-bear", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-fri", + "p3-matrix", + "p3-maybe-rayon", + "p3-merkle-tree", + "p3-poseidon2", + "p3-symmetric", + "p3-uni-stark", + "p3-util", + "rayon-scan", + "serde", + "sp1-derive", + "sp1-primitives", + "strum", + "strum_macros", + "sysinfo", + "thiserror", + "tracing", +] + +[[package]] +name = "sp1-verifier" +version = "3.2.0" +dependencies = [ + "hex", + "lazy_static", + "sha2 0.10.8", + "substrate-bn 0.6.0 (git+https://github.com/sp1-patches/bn?tag=substrate_bn-v0.6.0-patch-v2)", + "thiserror-no-std", +] + +[[package]] +name = "sp1-zkvm" +version = "3.2.0" +dependencies = [ + "cfg-if", + "getrandom", + "lazy_static", + "libm", + "p3-baby-bear", + "p3-field", + "rand 0.8.5", + "sha2 0.10.8", + "sp1-lib 3.2.0", + "sp1-primitives", +] + +[[package]] +name = "sp1_bls12_381" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a27c4b8901334dc09099dd82f80a72ddfc76b0046f4b342584c808f1931bed5a" +dependencies = [ + "cfg-if", + "ff 0.13.0", + "group 0.13.0", + "pairing 0.23.0", + "rand_core 0.6.4", + "sp1-lib 1.2.0", + "subtle", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" +dependencies = [ + "base64ct", + "der 0.5.1", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der 0.7.9", +] + +[[package]] +name = "ssz-withdrawals-program" +version = "1.1.0" +dependencies = [ + "alloy-primitives 0.6.4", + "hex", + "hex-literal", + "serde", + "serde_with", + "sha2 0.9.8", + "sp1-zkvm", + "ssz_rs", +] + +[[package]] +name = "ssz-withdrawals-script" +version = "1.1.0" +dependencies = [ + "sp1-build", + "sp1-sdk", +] + +[[package]] +name = "ssz_rs" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "057291e5631f280978fa9c8009390663ca4613359fc1318e36a8c24c392f6d1f" +dependencies = [ + "bitvec", + "hex", + "num-bigint 0.4.6", + "serde", + "sha2 0.9.9", + "ssz_rs_derive", +] + +[[package]] +name = "ssz_rs_derive" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f07d54c4d01a1713eb363b55ba51595da15f6f1211435b71466460da022aa140" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.87", +] + +[[package]] +name = "substrate-bn" +version = "0.6.0" +source = "git+https://github.com/sp1-patches/bn?tag=substrate_bn-v0.6.0-patch-v1#9b0e986d32ea128a08cebfe90767072beccdb45f" +dependencies = [ + "bytemuck", + "byteorder", + "cfg-if", + "crunchy", + "lazy_static", + "rand 0.8.5", + "rustc-hex", + "sp1-lib 3.1.0", +] + +[[package]] +name = "substrate-bn" +version = "0.6.0" +source = "git+https://github.com/sp1-patches/bn?tag=substrate_bn-v0.6.0-patch-v2#8ef05d3969312eca34fa9f1f566a469022badda6" +dependencies = [ + "bytemuck", + "byteorder", + "cfg-if", + "crunchy", + "lazy_static", + "num-bigint 0.4.6", + "rand 0.8.5", + "rustc-hex", + "sp1-lib 3.1.0", +] + +[[package]] +name = "substrate-bn" +version = "0.6.0" +source = "git+https://github.com/sp1-patches/bn?rev=43d854d45b5727b1ff2b9f346d728e785bb8395c#43d854d45b5727b1ff2b9f346d728e785bb8395c" +dependencies = [ + "bytemuck", + "byteorder", + "cfg-if", + "crunchy", + "lazy_static", + "rand 0.8.5", + "rustc-hex", + "sp1-lib 3.0.0", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "subtle-encoding" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dcb1ed7b8330c5eed5441052651dd7a12c75e2ed88f2ec024ae1fa3a5e59945" +dependencies = [ + "zeroize", +] + +[[package]] +name = "subtle-ng" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn-solidity" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c837dc8852cb7074e46b444afb81783140dab12c58867b49fb3898fbafedf7ea" +dependencies = [ + "paste", + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "syn-solidity" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edf42e81491fb8871b74df3d222c64ae8cbc1269ea509fa768a3ed3e1b0ac8cb" +dependencies = [ + "paste", + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "sync_wrapper" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-xid", +] + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "sysinfo" +version = "0.30.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3" +dependencies = [ + "cfg-if", + "core-foundation-sys", + "libc", + "ntapi", + "once_cell", + "rayon", + "windows", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys 0.5.0", +] + +[[package]] +name = "system-configuration" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "system-configuration-sys 0.6.0", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tempfile" +version = "3.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" +dependencies = [ + "cfg-if", + "fastrand", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "tendermint" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43f8a10105d0a7c4af0a242e23ed5a12519afe5cc0e68419da441bb5981a6802" +dependencies = [ + "bytes", + "digest 0.10.7", + "ed25519", + "ed25519-consensus", + "flex-error", + "futures", + "num-traits", + "once_cell", + "prost 0.12.6", + "prost-types", + "serde", + "serde_bytes", + "serde_json", + "serde_repr", + "sha2 0.10.8", + "signature", + "subtle", + "subtle-encoding", + "tendermint-proto", + "time", + "zeroize", +] + +[[package]] +name = "tendermint-light-client-verifier" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35678b66e819659617c2e83f9662b8544425694441990c07137904a07872d871" +dependencies = [ + "derive_more 0.99.18", + "flex-error", + "serde", + "tendermint", + "time", +] + +[[package]] +name = "tendermint-program" +version = "1.1.0" +dependencies = [ + "serde_cbor", + "sp1-zkvm", + "tendermint-light-client-verifier", +] + +[[package]] +name = "tendermint-proto" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff525d5540a9fc535c38dc0d92a98da3ee36fcdfbda99cecb9f3cce5cd4d41d7" +dependencies = [ + "bytes", + "flex-error", + "num-derive", + "num-traits", + "prost 0.12.6", + "prost-types", + "serde", + "serde_bytes", + "subtle-encoding", + "time", +] + +[[package]] +name = "tendermint-script" +version = "1.1.0" +dependencies = [ + "serde", + "serde_cbor", + "serde_json", + "sp1-build", + "sp1-sdk", + "tendermint-light-client-verifier", +] + +[[package]] +name = "thiserror" +version = "1.0.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02dd99dc800bbb97186339685293e1cc5d9df1f8fae2d0aecd9ff1c77efea892" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "thiserror-impl-no-std" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58e6318948b519ba6dc2b442a6d0b904ebfb8d411a3ad3e07843615a72249758" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "thiserror-no-std" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3ad459d94dd517257cc96add8a43190ee620011bb6e6cdc82dafd97dfafafea" +dependencies = [ + "thiserror-impl-no-std", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "libc", + "num-conv", + "num_threads", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "git+https://github.com/sp1-patches/tiny-keccak?tag=tiny_keccak-v2.0.2-patch-v1#bf0b28f63510a90c7b6c21ac6ff461c93ecd2331" +dependencies = [ + "cfg-if", + "crunchy", +] + +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +dependencies = [ + "rustls", + "rustls-pki-types", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.22", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.6.0", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +dependencies = [ + "indexmap 2.6.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.20", +] + +[[package]] +name = "tower" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 0.1.2", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-forest" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee40835db14ddd1e3ba414292272eddde9dad04d3d4b65509656414d1c42592f" +dependencies = [ + "ansi_term", + "smallvec", + "thiserror", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "twirp-rs" +version = "0.13.0-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27dfcc06b8d9262bc2d4b8d1847c56af9971a52dd8a0076876de9db763227d0d" +dependencies = [ + "async-trait", + "axum", + "futures", + "http 1.1.0", + "http-body-util", + "hyper 1.5.0", + "prost 0.13.3", + "reqwest 0.12.9", + "serde", + "serde_json", + "thiserror", + "tokio", + "tower", + "url", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "ucd-trie" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "unicode-ident" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" + +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom", + "serde", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" +dependencies = [ + "serde", +] + +[[package]] +name = "vergen" +version = "8.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2990d9ea5967266ea0ccf413a4aa5c42a93dbcfda9cb49a97de6931726b12566" +dependencies = [ + "anyhow", + "cfg-if", + "git2", + "rustversion", + "time", +] + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +dependencies = [ + "cfg-if", + "once_cell", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.87", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" + +[[package]] +name = "wasm-streams" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki-roots" +version = "0.26.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +dependencies = [ + "windows-core", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-registry" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +dependencies = [ + "windows-result", + "windows-strings", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "ws_stream_wasm" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" +dependencies = [ + "async_io_stream", + "futures", + "js-sys", + "log", + "pharos", + "rustc_version 0.4.1", + "send_wrapper 0.6.0", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "synstructure 0.13.1", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "synstructure 0.13.1", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "zkhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4352d1081da6922701401cdd4cbf29a2723feb4cfabb5771f6fee8e9276da1c7" +dependencies = [ + "ark-ff 0.4.2", + "ark-std 0.4.0", + "bitvec", + "blake2", + "bls12_381 0.7.1", + "byteorder", + "cfg-if", + "group 0.12.1", + "group 0.13.0", + "halo2", + "hex", + "jubjub", + "lazy_static", + "pasta_curves 0.5.1", + "rand 0.8.5", + "serde", + "sha2 0.10.8", + "sha3", + "subtle", +] + +[[patch.unused]] +name = "bls12_381" +version = "0.8.0" +source = "git+https://github.com/sp1-patches/bls12_381?tag=bls12_381-v0.8.0-patch-v1#444e109287eb3adc581425e160ed6041622dda35" + +[[patch.unused]] +name = "ecdsa" +version = "0.16.8" +source = "git+https://github.com/sp1-patches/signatures?branch=umadayal/secp256r1#49b6288468aff7f88f0be8cfd3719c7c20b2ba47" + +[[patch.unused]] +name = "sha2" +version = "0.10.6" +source = "git+https://github.com/sp1-patches/RustCrypto-hashes?tag=sha2-v0.10.6-patch-v1#e5f8b7eaaa9801503bd998932a52b65848eee234" + +[[patch.unused]] +name = "sha2" +version = "0.9.8" +source = "git+https://github.com/sp1-patches/RustCrypto-hashes?tag=sha2-v0.9.8-patch-v1#afdbfb09c325f8a69c01d540ec9a261e3637725d" diff --git a/examples/Cargo.toml b/examples/Cargo.toml index 0597d8cb18..f5d06c2216 100644 --- a/examples/Cargo.toml +++ b/examples/Cargo.toml @@ -12,6 +12,8 @@ members = [ "cycle-tracking/script", "fibonacci/program", "fibonacci/script", + "groth16/program", + "groth16/script", "io/program", "io/script", "is-prime/program", @@ -59,15 +61,15 @@ sp1-lib = { path = "../crates/zkvm/lib", default-features = false } sp1-zkvm = { path = "../crates/zkvm/entrypoint", default-features = false } [patch.crates-io] -curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", branch = "patch-curve25519-v4.1.3" } -curve25519-dalek-ng = { git = "https://github.com/sp1-patches/curve25519-dalek-ng", branch = "patch-v4.1.1" } -# ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", branch = "patch-ecdsa-v0.16.8" } -# Note: This branch of ecdsa-core points to SP1 branch ratan/impl-add-assign-fixes -ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", branch = "ratan/secp256k1-add-fixes-v0.16.8" } -ed25519-consensus = { git = "https://github.com/sp1-patches/ed25519-consensus", branch = "patch-v2.1.0" } -secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", branch = "patch-secp256k1-v0.29.0" } -sha2-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", branch = "patch-v0.10.8" } -sha2-v0-10-6 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", branch = "patch-sha2-v0.10.6" } -sha2-v0-9-9 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", branch = "patch-sha2-v0.9.9" } -sha2-v0-9-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", branch = "patch-sha2-v0.9.8" } -tiny-keccak = { git = "https://github.com/sp1-patches/tiny-keccak", branch = "patch-v2.0.2" } +curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "curve25519_dalek-v4.1.3-patch-v1" } +curve25519-dalek-ng = { git = "https://github.com/sp1-patches/curve25519-dalek-ng", tag = "curve25519_dalek_ng-v4.1.1-patch-v1" } +ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", branch = "umadayal/secp256r1" } +ed25519-consensus = { git = "https://github.com/sp1-patches/ed25519-consensus", tag = "ed25519_consensus-v2.1.0-patch-v1" } +secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "secp256k1-v0.29.0-patch-v1" } +sha2-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "sha2-v0.10.8-patch-v1" } +sha2-v0-10-6 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "sha2-v0.10.6-patch-v1" } +sha2-v0-9-9 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "sha2-v0.9.9-patch-v1" } +sha2-v0-9-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "sha2-v0.9.8-patch-v1" } +tiny-keccak = { git = "https://github.com/sp1-patches/tiny-keccak", tag = "tiny_keccak-v2.0.2-patch-v1" } +substrate-bn = { git = "https://github.com/sp1-patches/bn", tag = "substrate_bn-v0.6.0-patch-v1" } +bls12_381 = { git = "https://github.com/sp1-patches/bls12_381", tag = "bls12_381-v0.8.0-patch-v1" } diff --git a/examples/fibonacci/program/elf/riscv32im-succinct-zkvm-elf b/examples/fibonacci/program/elf/riscv32im-succinct-zkvm-elf index 61e8973390c799db4694eeccd6e1911ba84fed7e..c82f73b8662428ad77f5254a042ec7769e4df1a8 100755 GIT binary patch literal 105052 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

(y9F9F6tE2r&Hz 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 literal 105020 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 z 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 T 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 { + println!("Proof is valid"); + } + Err(e) => { + println!("Error verifying proof: {:?}", e); + } + } +} diff --git a/examples/groth16/script/Cargo.toml b/examples/groth16/script/Cargo.toml new file mode 100644 index 0000000000..24e96a2fc5 --- /dev/null +++ b/examples/groth16/script/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "groth16-verifier-script" +version = { workspace = true } +edition = { workspace = true } +publish = false + +[dependencies] +sp1-sdk = { workspace = true } + +[build-dependencies] +sp1-build = { workspace = true } + +[features] +cuda = ["sp1-sdk/cuda"] diff --git a/examples/groth16/script/build.rs b/examples/groth16/script/build.rs new file mode 100644 index 0000000000..7e10aecc5a --- /dev/null +++ b/examples/groth16/script/build.rs @@ -0,0 +1,4 @@ +fn main() { + sp1_build::build_program("../program"); + sp1_build::build_program("../../fibonacci/program"); +} diff --git a/examples/groth16/script/src/main.rs b/examples/groth16/script/src/main.rs new file mode 100644 index 0000000000..b35a15f58c --- /dev/null +++ b/examples/groth16/script/src/main.rs @@ -0,0 +1,55 @@ +//! A script that generates a Groth16 proof for the Fibonacci program, and verifies the +//! Groth16 proof in SP1. + +use sp1_sdk::{include_elf, utils, HashableKey, ProverClient, SP1Stdin}; + +/// The ELF for the Groth16 verifier program. +const GROTH16_ELF: &[u8] = include_elf!("groth16-verifier-program"); + +/// The ELF for the Fibonacci program. +const FIBONACCI_ELF: &[u8] = include_elf!("fibonacci-program"); + +/// Generates the proof, public values, and vkey hash for the Fibonacci program in a format that +/// can be read by `sp1-verifier`. +/// +/// Returns the proof bytes, public values, and vkey hash. +fn generate_fibonacci_proof() -> (Vec, Vec, String) { + // Create an input stream and write '20' to it. + let n = 20u32; + + // The input stream that the program will read from using `sp1_zkvm::io::read`. Note that the + // types of the elements in the input stream must match the types being read in the program. + let mut stdin = SP1Stdin::new(); + stdin.write(&n); + + // Create a `ProverClient`. + let client = ProverClient::new(); + + // Generate the groth16 proof for the Fibonacci program. + let (pk, vk) = client.setup(FIBONACCI_ELF); + println!("vk: {:?}", vk.bytes32()); + let proof = client.prove(&pk, stdin).groth16().run().unwrap(); + (proof.bytes(), proof.public_values.to_vec(), vk.bytes32()) +} + +fn main() { + // Setup logging. + utils::setup_logger(); + + // Generate the Fibonacci proof, public values, and vkey hash. + let (fibonacci_proof, fibonacci_public_values, vk) = generate_fibonacci_proof(); + + // Write the proof, public values, and vkey hash to the input stream. + let mut stdin = SP1Stdin::new(); + stdin.write_vec(fibonacci_proof); + stdin.write_vec(fibonacci_public_values); + stdin.write(&vk); + + // Create a `ProverClient`. + let client = ProverClient::new(); + + // Execute the program using the `ProverClient.execute` method, without generating a proof. + let (_, report) = client.execute(GROTH16_ELF, stdin.clone()).run().unwrap(); + println!("executed groth16 program with {} cycles", report.total_instruction_count()); + println!("{}", report); +} From 41532ee00b2ab7feb2e9de433a4f4cc13eb97f37 Mon Sep 17 00:00:00 2001 From: Yuwen Zhang Date: Thu, 7 Nov 2024 15:08:28 -0800 Subject: [PATCH 04/36] feat: fix for verifier crate (#1767) --- Cargo.lock | 105 +++++++++++++++++++------------------ Cargo.toml | 42 +++++++-------- crates/verifier/Cargo.toml | 2 +- 3 files changed, 75 insertions(+), 74 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3bc6879a77..fbe06742b1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -563,9 +563,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.92" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f37166d7d48a0284b99dd824694c26119c700b53bf0d1540cdb147dbdaaf13" +checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" dependencies = [ "backtrace", ] @@ -769,9 +769,9 @@ dependencies = [ [[package]] name = "async-io" -version = "2.3.4" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8" +checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" dependencies = [ "async-lock", "cfg-if", @@ -925,9 +925,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "aws-config" -version = "1.5.9" +version = "1.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d6448cfb224dd6a9b9ac734f58622dd0d4751f3589f3b777345745f46b2eb14" +checksum = "9b49afaa341e8dd8577e1a2200468f98956d6eda50bcf4a53246cc00174ba924" dependencies = [ "aws-credential-types", "aws-runtime", @@ -993,9 +993,9 @@ dependencies = [ [[package]] name = "aws-sdk-s3" -version = "1.59.0" +version = "1.60.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f883bb1e349fa8343dc46336c252c0f32ceb6e81acb146aeef2e0f8afc9183e" +checksum = "0506cc60e392e33712d47717d5ae5760a3b134bf8ee7aea7e43df3d7e2669ae0" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1027,9 +1027,9 @@ dependencies = [ [[package]] name = "aws-sdk-sso" -version = "1.48.0" +version = "1.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded855583fa1d22e88fe39fd6062b062376e50a8211989e07cf5e38d52eb3453" +checksum = "09677244a9da92172c8dc60109b4a9658597d4d298b188dd0018b6a66b410ca4" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1049,9 +1049,9 @@ dependencies = [ [[package]] name = "aws-sdk-ssooidc" -version = "1.49.0" +version = "1.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9177ea1192e6601ae16c7273385690d88a7ed386a00b74a6bc894d12103cd933" +checksum = "81fea2f3a8bb3bd10932ae7ad59cc59f65f270fc9183a7e91f501dc5efbef7ee" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1071,9 +1071,9 @@ dependencies = [ [[package]] name = "aws-sdk-sts" -version = "1.48.0" +version = "1.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "823ef553cf36713c97453e2ddff1eb8f62be7f4523544e2a5db64caf80100f0a" +checksum = "53dcf5e7d9bd1517b8b998e170e650047cea8a2b85fe1835abe3210713e541b7" dependencies = [ "aws-credential-types", "aws-runtime", @@ -2216,9 +2216,9 @@ dependencies = [ [[package]] name = "curl-sys" -version = "0.4.77+curl-8.10.1" +version = "0.4.78+curl-8.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f469e8a5991f277a208224f6c7ad72ecb5f986e36d09ae1f2c1bb9259478a480" +checksum = "8eec768341c5c7789611ae51cf6c459099f22e64a5d5d0ce4892434e33821eaf" dependencies = [ "cc", "libc", @@ -4299,9 +4299,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.161" +version = "0.2.162" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" +checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398" [[package]] name = "libgit2-sys" @@ -5382,9 +5382,9 @@ dependencies = [ [[package]] name = "polling" -version = "3.7.3" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" +checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" dependencies = [ "cfg-if", "concurrent-queue", @@ -6862,7 +6862,7 @@ dependencies = [ [[package]] name = "sp1-build" -version = "3.2.0" +version = "3.2.1" dependencies = [ "anyhow", "cargo_metadata", @@ -6873,7 +6873,7 @@ dependencies = [ [[package]] name = "sp1-cli" -version = "3.2.0" +version = "3.2.1" dependencies = [ "anstyle", "anyhow", @@ -6901,7 +6901,7 @@ dependencies = [ [[package]] name = "sp1-core-executor" -version = "3.2.0" +version = "3.2.1" dependencies = [ "bincode", "bytemuck", @@ -6934,7 +6934,7 @@ dependencies = [ [[package]] name = "sp1-core-machine" -version = "3.2.0" +version = "3.2.1" dependencies = [ "bincode", "cfg-if", @@ -6983,7 +6983,7 @@ dependencies = [ [[package]] name = "sp1-cuda" -version = "3.2.0" +version = "3.2.1" dependencies = [ "bincode", "ctrlc", @@ -7000,7 +7000,7 @@ dependencies = [ [[package]] name = "sp1-curves" -version = "3.2.0" +version = "3.2.1" dependencies = [ "cfg-if", "curve25519-dalek", @@ -7022,7 +7022,7 @@ dependencies = [ [[package]] name = "sp1-derive" -version = "3.2.0" +version = "3.2.1" dependencies = [ "quote", "syn 1.0.109", @@ -7030,7 +7030,7 @@ dependencies = [ [[package]] name = "sp1-eval" -version = "3.2.0" +version = "3.2.1" dependencies = [ "anyhow", "bincode", @@ -7050,16 +7050,16 @@ dependencies = [ [[package]] name = "sp1-helper" -version = "3.2.0" +version = "3.2.1" dependencies = [ "sp1-build", ] [[package]] name = "sp1-lib" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14deb700469a37ec075bcf88dac3815b026dd9c4b9cb175980826f1fbb2e4e80" +checksum = "c1aa18834c58df127706eb2fb2ea6e2892dbf0361d6b2485bf7b3fbd5f8b8c3c" dependencies = [ "bincode", "serde", @@ -7067,7 +7067,7 @@ dependencies = [ [[package]] name = "sp1-lib" -version = "3.2.0" +version = "3.2.1" dependencies = [ "bincode", "serde", @@ -7075,7 +7075,7 @@ dependencies = [ [[package]] name = "sp1-perf" -version = "3.2.0" +version = "3.2.1" dependencies = [ "anyhow", "bincode", @@ -7097,7 +7097,7 @@ dependencies = [ [[package]] name = "sp1-primitives" -version = "3.2.0" +version = "3.2.1" dependencies = [ "bincode", "hex", @@ -7113,7 +7113,7 @@ dependencies = [ [[package]] name = "sp1-prover" -version = "3.2.0" +version = "3.2.1" dependencies = [ "anyhow", "bincode", @@ -7153,7 +7153,7 @@ dependencies = [ [[package]] name = "sp1-recursion-circuit" -version = "3.2.0" +version = "3.2.1" dependencies = [ "ff 0.13.0", "hashbrown 0.14.5", @@ -7189,7 +7189,7 @@ dependencies = [ [[package]] name = "sp1-recursion-compiler" -version = "3.2.0" +version = "3.2.1" dependencies = [ "backtrace", "criterion", @@ -7214,7 +7214,7 @@ dependencies = [ [[package]] name = "sp1-recursion-core" -version = "3.2.0" +version = "3.2.1" dependencies = [ "backtrace", "ff 0.13.0", @@ -7249,7 +7249,7 @@ dependencies = [ [[package]] name = "sp1-recursion-derive" -version = "3.2.0" +version = "3.2.1" dependencies = [ "quote", "syn 1.0.109", @@ -7257,7 +7257,7 @@ dependencies = [ [[package]] name = "sp1-recursion-gnark-cli" -version = "3.2.0" +version = "3.2.1" dependencies = [ "bincode", "clap", @@ -7266,7 +7266,7 @@ dependencies = [ [[package]] name = "sp1-recursion-gnark-ffi" -version = "3.2.0" +version = "3.2.1" dependencies = [ "anyhow", "bincode", @@ -7290,7 +7290,7 @@ dependencies = [ [[package]] name = "sp1-sdk" -version = "3.2.0" +version = "3.2.1" dependencies = [ "alloy-primitives 0.8.11", "alloy-signer", @@ -7336,7 +7336,7 @@ dependencies = [ [[package]] name = "sp1-stark" -version = "3.2.0" +version = "3.2.1" dependencies = [ "arrayref", "getrandom 0.2.15", @@ -7371,7 +7371,7 @@ dependencies = [ [[package]] name = "sp1-verifier" -version = "3.2.0" +version = "3.2.1" dependencies = [ "hex", "lazy_static", @@ -7379,13 +7379,13 @@ dependencies = [ "num-traits", "sha2 0.10.8", "sp1-sdk", - "substrate-bn", + "substrate-bn-succinct", "thiserror-no-std", ] [[package]] name = "sp1-zkvm" -version = "3.2.0" +version = "3.2.1" dependencies = [ "cfg-if", "getrandom 0.2.15", @@ -7395,7 +7395,7 @@ dependencies = [ "p3-field", "rand 0.8.5", "sha2 0.10.8", - "sp1-lib 3.2.0", + "sp1-lib 3.2.1", "sp1-primitives", ] @@ -7545,9 +7545,10 @@ dependencies = [ ] [[package]] -name = "substrate-bn" +name = "substrate-bn-succinct" version = "0.6.0" -source = "git+https://github.com/sp1-patches/bn?tag=substrate_bn-v0.6.0-patch-v2#8ef05d3969312eca34fa9f1f566a469022badda6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "114c855c26ad0594c830129cb868552fb41415603a6133276c2ecdd9e5ef4255" dependencies = [ "bytemuck", "byteorder", @@ -7557,7 +7558,7 @@ dependencies = [ "num-bigint 0.4.6", "rand 0.8.5", "rustc-hex", - "sp1-lib 3.1.0", + "sp1-lib 3.2.0", ] [[package]] @@ -7950,9 +7951,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.0" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" dependencies = [ "backtrace", "bytes 1.8.0", diff --git a/Cargo.toml b/Cargo.toml index 6cf5ce777c..55fc8a804a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace.package] -version = "3.2.0" +version = "3.2.1" edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/succinctlabs/sp1" @@ -47,26 +47,26 @@ debug-assertions = true [workspace.dependencies] # sp1 -sp1-build = { path = "crates/build", version = "3.2.0" } -sp1-cli = { path = "crates/cli", version = "3.2.0", default-features = false } -sp1-core-machine = { path = "crates/core/machine", version = "3.2.0" } -sp1-core-executor = { path = "crates/core/executor", version = "3.2.0" } -sp1-curves = { path = "crates/curves", version = "3.2.0" } -sp1-derive = { path = "crates/derive", version = "3.2.0" } -sp1-eval = { path = "crates/eval", version = "3.2.0" } -sp1-helper = { path = "crates/helper", version = "3.2.0", default-features = false } -sp1-primitives = { path = "crates/primitives", version = "3.2.0" } -sp1-prover = { path = "crates/prover", version = "3.2.0" } -sp1-recursion-compiler = { path = "crates/recursion/compiler", version = "3.2.0" } -sp1-recursion-core = { path = "crates/recursion/core", version = "3.2.0", default-features = false } -sp1-recursion-derive = { path = "crates/recursion/derive", version = "3.2.0", default-features = false } -sp1-recursion-gnark-ffi = { path = "crates/recursion/gnark-ffi", version = "3.2.0", default-features = false } -sp1-recursion-circuit = { path = "crates/recursion/circuit", version = "3.2.0", default-features = false } -sp1-sdk = { path = "crates/sdk", version = "3.2.0" } -sp1-cuda = { path = "crates/cuda", version = "3.2.0" } -sp1-stark = { path = "crates/stark", version = "3.2.0" } -sp1-lib = { path = "crates/zkvm/lib", version = "3.2.0", default-features = false } -sp1-zkvm = { path = "crates/zkvm/entrypoint", version = "3.2.0", default-features = false } +sp1-build = { path = "crates/build", version = "3.2.1" } +sp1-cli = { path = "crates/cli", version = "3.2.1", default-features = false } +sp1-core-machine = { path = "crates/core/machine", version = "3.2.1" } +sp1-core-executor = { path = "crates/core/executor", version = "3.2.1" } +sp1-curves = { path = "crates/curves", version = "3.2.1" } +sp1-derive = { path = "crates/derive", version = "3.2.1" } +sp1-eval = { path = "crates/eval", version = "3.2.1" } +sp1-helper = { path = "crates/helper", version = "3.2.1", default-features = false } +sp1-primitives = { path = "crates/primitives", version = "3.2.1" } +sp1-prover = { path = "crates/prover", version = "3.2.1" } +sp1-recursion-compiler = { path = "crates/recursion/compiler", version = "3.2.1" } +sp1-recursion-core = { path = "crates/recursion/core", version = "3.2.1", default-features = false } +sp1-recursion-derive = { path = "crates/recursion/derive", version = "3.2.1", default-features = false } +sp1-recursion-gnark-ffi = { path = "crates/recursion/gnark-ffi", version = "3.2.1", default-features = false } +sp1-recursion-circuit = { path = "crates/recursion/circuit", version = "3.2.1", default-features = false } +sp1-sdk = { path = "crates/sdk", version = "3.2.1" } +sp1-cuda = { path = "crates/cuda", version = "3.2.1" } +sp1-stark = { path = "crates/stark", version = "3.2.1" } +sp1-lib = { path = "crates/zkvm/lib", version = "3.2.1", default-features = false } +sp1-zkvm = { path = "crates/zkvm/entrypoint", version = "3.2.1", default-features = false } # p3 p3-air = "0.1.4-succinct" diff --git a/crates/verifier/Cargo.toml b/crates/verifier/Cargo.toml index 0436c54f40..63690ec55a 100644 --- a/crates/verifier/Cargo.toml +++ b/crates/verifier/Cargo.toml @@ -10,7 +10,7 @@ keywords = { workspace = true } categories = { workspace = true } [dependencies] -bn = { git = "https://github.com/sp1-patches/bn", version = "0.6.0", tag = "substrate_bn-v0.6.0-patch-v2", package = "substrate-bn" } +bn = { version = "0.6.0", package = "substrate-bn-succinct" } sha2 = { version = "0.10.8", default-features = false } thiserror-no-std = "2.0.2" hex = { version = "0.4.3", default-features = false, features = ["alloc"] } From 3bbf4cff10b43f4e85d07d91535d719cfc046c8d Mon Sep 17 00:00:00 2001 From: N Date: Tue, 19 Nov 2024 13:30:44 -0800 Subject: [PATCH 05/36] fix: ecdsa recovery failure may cause executor to panic (#1799) --- Cargo.lock | 48 +++++++++++----------- Cargo.toml | 42 ++++++++++---------- book/writing-programs/patched-crates.md | 3 ++ crates/core/executor/src/hook.rs | 53 +++++++++++++++++++++++++ crates/zkvm/lib/src/io.rs | 3 ++ 5 files changed, 104 insertions(+), 45 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fbe06742b1..45e37c63c2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6862,7 +6862,7 @@ dependencies = [ [[package]] name = "sp1-build" -version = "3.2.1" +version = "3.3.0" dependencies = [ "anyhow", "cargo_metadata", @@ -6873,7 +6873,7 @@ dependencies = [ [[package]] name = "sp1-cli" -version = "3.2.1" +version = "3.3.0" dependencies = [ "anstyle", "anyhow", @@ -6901,7 +6901,7 @@ dependencies = [ [[package]] name = "sp1-core-executor" -version = "3.2.1" +version = "3.3.0" dependencies = [ "bincode", "bytemuck", @@ -6934,7 +6934,7 @@ dependencies = [ [[package]] name = "sp1-core-machine" -version = "3.2.1" +version = "3.3.0" dependencies = [ "bincode", "cfg-if", @@ -6983,7 +6983,7 @@ dependencies = [ [[package]] name = "sp1-cuda" -version = "3.2.1" +version = "3.3.0" dependencies = [ "bincode", "ctrlc", @@ -7000,7 +7000,7 @@ dependencies = [ [[package]] name = "sp1-curves" -version = "3.2.1" +version = "3.3.0" dependencies = [ "cfg-if", "curve25519-dalek", @@ -7022,7 +7022,7 @@ dependencies = [ [[package]] name = "sp1-derive" -version = "3.2.1" +version = "3.3.0" dependencies = [ "quote", "syn 1.0.109", @@ -7030,7 +7030,7 @@ dependencies = [ [[package]] name = "sp1-eval" -version = "3.2.1" +version = "3.3.0" dependencies = [ "anyhow", "bincode", @@ -7050,7 +7050,7 @@ dependencies = [ [[package]] name = "sp1-helper" -version = "3.2.1" +version = "3.3.0" dependencies = [ "sp1-build", ] @@ -7067,7 +7067,7 @@ dependencies = [ [[package]] name = "sp1-lib" -version = "3.2.1" +version = "3.3.0" dependencies = [ "bincode", "serde", @@ -7075,7 +7075,7 @@ dependencies = [ [[package]] name = "sp1-perf" -version = "3.2.1" +version = "3.3.0" dependencies = [ "anyhow", "bincode", @@ -7097,7 +7097,7 @@ dependencies = [ [[package]] name = "sp1-primitives" -version = "3.2.1" +version = "3.3.0" dependencies = [ "bincode", "hex", @@ -7113,7 +7113,7 @@ dependencies = [ [[package]] name = "sp1-prover" -version = "3.2.1" +version = "3.3.0" dependencies = [ "anyhow", "bincode", @@ -7153,7 +7153,7 @@ dependencies = [ [[package]] name = "sp1-recursion-circuit" -version = "3.2.1" +version = "3.3.0" dependencies = [ "ff 0.13.0", "hashbrown 0.14.5", @@ -7189,7 +7189,7 @@ dependencies = [ [[package]] name = "sp1-recursion-compiler" -version = "3.2.1" +version = "3.3.0" dependencies = [ "backtrace", "criterion", @@ -7214,7 +7214,7 @@ dependencies = [ [[package]] name = "sp1-recursion-core" -version = "3.2.1" +version = "3.3.0" dependencies = [ "backtrace", "ff 0.13.0", @@ -7249,7 +7249,7 @@ dependencies = [ [[package]] name = "sp1-recursion-derive" -version = "3.2.1" +version = "3.3.0" dependencies = [ "quote", "syn 1.0.109", @@ -7257,7 +7257,7 @@ dependencies = [ [[package]] name = "sp1-recursion-gnark-cli" -version = "3.2.1" +version = "3.3.0" dependencies = [ "bincode", "clap", @@ -7266,7 +7266,7 @@ dependencies = [ [[package]] name = "sp1-recursion-gnark-ffi" -version = "3.2.1" +version = "3.3.0" dependencies = [ "anyhow", "bincode", @@ -7290,7 +7290,7 @@ dependencies = [ [[package]] name = "sp1-sdk" -version = "3.2.1" +version = "3.3.0" dependencies = [ "alloy-primitives 0.8.11", "alloy-signer", @@ -7336,7 +7336,7 @@ dependencies = [ [[package]] name = "sp1-stark" -version = "3.2.1" +version = "3.3.0" dependencies = [ "arrayref", "getrandom 0.2.15", @@ -7371,7 +7371,7 @@ dependencies = [ [[package]] name = "sp1-verifier" -version = "3.2.1" +version = "3.3.0" dependencies = [ "hex", "lazy_static", @@ -7385,7 +7385,7 @@ dependencies = [ [[package]] name = "sp1-zkvm" -version = "3.2.1" +version = "3.3.0" dependencies = [ "cfg-if", "getrandom 0.2.15", @@ -7395,7 +7395,7 @@ dependencies = [ "p3-field", "rand 0.8.5", "sha2 0.10.8", - "sp1-lib 3.2.1", + "sp1-lib 3.3.0", "sp1-primitives", ] diff --git a/Cargo.toml b/Cargo.toml index 55fc8a804a..0633339d9c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace.package] -version = "3.2.1" +version = "3.3.0" edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/succinctlabs/sp1" @@ -47,26 +47,26 @@ debug-assertions = true [workspace.dependencies] # sp1 -sp1-build = { path = "crates/build", version = "3.2.1" } -sp1-cli = { path = "crates/cli", version = "3.2.1", default-features = false } -sp1-core-machine = { path = "crates/core/machine", version = "3.2.1" } -sp1-core-executor = { path = "crates/core/executor", version = "3.2.1" } -sp1-curves = { path = "crates/curves", version = "3.2.1" } -sp1-derive = { path = "crates/derive", version = "3.2.1" } -sp1-eval = { path = "crates/eval", version = "3.2.1" } -sp1-helper = { path = "crates/helper", version = "3.2.1", default-features = false } -sp1-primitives = { path = "crates/primitives", version = "3.2.1" } -sp1-prover = { path = "crates/prover", version = "3.2.1" } -sp1-recursion-compiler = { path = "crates/recursion/compiler", version = "3.2.1" } -sp1-recursion-core = { path = "crates/recursion/core", version = "3.2.1", default-features = false } -sp1-recursion-derive = { path = "crates/recursion/derive", version = "3.2.1", default-features = false } -sp1-recursion-gnark-ffi = { path = "crates/recursion/gnark-ffi", version = "3.2.1", default-features = false } -sp1-recursion-circuit = { path = "crates/recursion/circuit", version = "3.2.1", default-features = false } -sp1-sdk = { path = "crates/sdk", version = "3.2.1" } -sp1-cuda = { path = "crates/cuda", version = "3.2.1" } -sp1-stark = { path = "crates/stark", version = "3.2.1" } -sp1-lib = { path = "crates/zkvm/lib", version = "3.2.1", default-features = false } -sp1-zkvm = { path = "crates/zkvm/entrypoint", version = "3.2.1", default-features = false } +sp1-build = { path = "crates/build", version = "3.3.0" } +sp1-cli = { path = "crates/cli", version = "3.3.0", default-features = false } +sp1-core-machine = { path = "crates/core/machine", version = "3.3.0" } +sp1-core-executor = { path = "crates/core/executor", version = "3.3.0" } +sp1-curves = { path = "crates/curves", version = "3.3.0" } +sp1-derive = { path = "crates/derive", version = "3.3.0" } +sp1-eval = { path = "crates/eval", version = "3.3.0" } +sp1-helper = { path = "crates/helper", version = "3.3.0", default-features = false } +sp1-primitives = { path = "crates/primitives", version = "3.3.0" } +sp1-prover = { path = "crates/prover", version = "3.3.0" } +sp1-recursion-compiler = { path = "crates/recursion/compiler", version = "3.3.0" } +sp1-recursion-core = { path = "crates/recursion/core", version = "3.3.0", default-features = false } +sp1-recursion-derive = { path = "crates/recursion/derive", version = "3.3.0", default-features = false } +sp1-recursion-gnark-ffi = { path = "crates/recursion/gnark-ffi", version = "3.3.0", default-features = false } +sp1-recursion-circuit = { path = "crates/recursion/circuit", version = "3.3.0", default-features = false } +sp1-sdk = { path = "crates/sdk", version = "3.3.0" } +sp1-cuda = { path = "crates/cuda", version = "3.3.0" } +sp1-stark = { path = "crates/stark", version = "3.3.0" } +sp1-lib = { path = "crates/zkvm/lib", version = "3.3.0", default-features = false } +sp1-zkvm = { path = "crates/zkvm/entrypoint", version = "3.3.0", default-features = false } # p3 p3-air = "0.1.4-succinct" diff --git a/book/writing-programs/patched-crates.md b/book/writing-programs/patched-crates.md index 0bca72416b..5a2514154e 100644 --- a/book/writing-programs/patched-crates.md +++ b/book/writing-programs/patched-crates.md @@ -39,6 +39,9 @@ tiny-keccak = { git = "https://github.com/sp1-patches/tiny-keccak", tag = "tiny_ curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "curve25519_dalek-v4.1.3-patch-v1" } curve25519-dalek-ng = { git = "https://github.com/sp1-patches/curve25519-dalek-ng", tag = "curve25519_dalek_ng-v4.1.1-patch-v1" } ed25519-consensus = { git = "https://github.com/sp1-patches/ed25519-consensus", tag = "ed25519_consensus-v2.1.0-patch-v1" } +# For sp1 versions >= 3.3.0 +ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", tag = "ecdsa-v0.16.9-patch-v3.3.0" } +# For sp1 versions < 3.3.0 ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", tag = "ecdsa-v0.16.9-patch-v1" } secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "secp256k1-v0.29.0-patch-v1" } substrate-bn = { git = "https://github.com/sp1-patches/bn", tag = "substrate_bn-v0.6.0-patch-v1" } diff --git a/crates/core/executor/src/hook.rs b/crates/core/executor/src/hook.rs index 3e54eca71c..cbdb0db3db 100644 --- a/crates/core/executor/src/hook.rs +++ b/crates/core/executor/src/hook.rs @@ -13,6 +13,11 @@ pub type BoxedHook<'a> = Arc>; /// The file descriptor through which to access `hook_ecrecover`. pub const FD_ECRECOVER_HOOK: u32 = 5; +// Note: we skip 6 because we have an eddsa hook in dev. + +/// The file descriptor through which to access `hook_ecrecover_2`. +pub const FD_ECRECOVER_HOOK_2: u32 = 7; + /// A runtime hook. May be called during execution by writing to a specified file descriptor, /// accepting and returning arbitrary data. pub trait Hook { @@ -76,6 +81,7 @@ impl<'a> Default for HookRegistry<'a> { // Note: To ensure any `fd` value is synced with `zkvm/precompiles/src/io.rs`, // add an assertion to the test `hook_fds_match` below. (FD_ECRECOVER_HOOK, hookify(hook_ecrecover)), + (FD_ECRECOVER_HOOK_2, hookify(hook_ecrecover_v2)), ]); Self { table } @@ -117,6 +123,7 @@ pub struct HookEnv<'a, 'b: 'a> { /// WARNING: This function is used to recover the public key outside of the zkVM context. These /// values must be constrained by the zkVM for correctness. #[must_use] +#[deprecated = "Use `hook_ecrecover_v2` instead."] pub fn hook_ecrecover(_: HookEnv, buf: &[u8]) -> Vec> { assert_eq!(buf.len(), 65 + 32, "ecrecover input should have length 65 + 32"); let (sig, msg_hash) = buf.split_at(65); @@ -141,6 +148,52 @@ pub fn hook_ecrecover(_: HookEnv, buf: &[u8]) -> Vec> { vec![bytes.to_vec(), s_inverse.to_bytes().to_vec()] } +/// Recovers the public key from the signature and message hash using the k256 crate. +/// +/// # Arguments +/// +/// * `env` - The environment in which the hook is invoked. +/// * `buf` - The buffer containing the signature and message hash. +/// - The signature is 65 bytes, the first 64 bytes are the signature and the last byte is the +/// recovery ID. +/// - The message hash is 32 bytes. +/// +/// The result is returned as a status and a pair of bytes, where the first 32 bytes are the X coordinate +/// and the second 32 bytes are the Y coordinate of the decompressed point. +/// +/// A status of 0 indicates that the public key could not be recovered. +/// +/// WARNING: This function is used to recover the public key outside of the zkVM context. These +/// values must be constrained by the zkVM for correctness. +#[must_use] +pub fn hook_ecrecover_v2(_: HookEnv, buf: &[u8]) -> Vec> { + assert_eq!(buf.len(), 65 + 32, "ecrecover input should have length 65 + 32, this is a bug."); + let (sig, msg_hash) = buf.split_at(65); + let sig: &[u8; 65] = sig.try_into().unwrap(); + let msg_hash: &[u8; 32] = msg_hash.try_into().unwrap(); + + let mut recovery_id = sig[64]; + let mut sig = Signature::from_slice(&sig[..64]).unwrap(); + + if let Some(sig_normalized) = sig.normalize_s() { + sig = sig_normalized; + recovery_id ^= 1; + }; + let recid = RecoveryId::from_byte(recovery_id).expect("Computed recovery ID is invalid, this is a bug."); + + // Attempting to recvover the public key has failed, write a 0 to indicate to the caller. + let Ok(recovered_key) = VerifyingKey::recover_from_prehash(&msg_hash[..], &sig, recid) else { + return vec![vec![0]]; + }; + + let bytes = recovered_key.to_sec1_bytes(); + + let (_, s) = sig.split_scalars(); + let s_inverse = s.invert(); + + vec![vec![1], bytes.to_vec(), s_inverse.to_bytes().to_vec()] +} + #[cfg(test)] pub mod tests { use super::*; diff --git a/crates/zkvm/lib/src/io.rs b/crates/zkvm/lib/src/io.rs index 48faad5f14..b44d1edae0 100644 --- a/crates/zkvm/lib/src/io.rs +++ b/crates/zkvm/lib/src/io.rs @@ -15,6 +15,9 @@ pub const FD_HINT: u32 = 4; /// The file descriptor for the `ecreover` hook. pub const FD_ECRECOVER_HOOK: u32 = 5; +/// The file descriptor through which to access `hook_ecrecover_2`. +pub const FD_ECRECOVER_HOOK_2: u32 = 7; + /// A writer that writes to a file descriptor inside the zkVM. struct SyscallWriter { fd: u32, From a2402fb1abb0553b9ae2fbd59298d181674b9b39 Mon Sep 17 00:00:00 2001 From: N Date: Tue, 26 Nov 2024 21:59:15 -0800 Subject: [PATCH 06/36] chore: bump secp256k1 patch (#1826) --- book/writing-programs/patched-crates.md | 1 + 1 file changed, 1 insertion(+) diff --git a/book/writing-programs/patched-crates.md b/book/writing-programs/patched-crates.md index 5a2514154e..c3a7358f82 100644 --- a/book/writing-programs/patched-crates.md +++ b/book/writing-programs/patched-crates.md @@ -41,6 +41,7 @@ curve25519-dalek-ng = { git = "https://github.com/sp1-patches/curve25519-dalek-n ed25519-consensus = { git = "https://github.com/sp1-patches/ed25519-consensus", tag = "ed25519_consensus-v2.1.0-patch-v1" } # For sp1 versions >= 3.3.0 ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", tag = "ecdsa-v0.16.9-patch-v3.3.0" } +secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "secp256k1-v0.29.0-patch-v3.3.0" } # For sp1 versions < 3.3.0 ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", tag = "ecdsa-v0.16.9-patch-v1" } secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "secp256k1-v0.29.0-patch-v1" } From 563ede179054dbc62186e24583bdcc4a68256799 Mon Sep 17 00:00:00 2001 From: N Date: Fri, 29 Nov 2024 15:56:32 -0800 Subject: [PATCH 07/36] fix: add hook for ed decompress (#1829) --- Cargo.lock | 81 ++++++------------ Cargo.toml | 42 ++++----- book/writing-programs/patched-crates.md | 3 + crates/core/executor/src/hook.rs | 34 +++++++- .../precompiles/edwards/decompress.rs | 3 +- .../src/operations/field/field_sqrt.rs | 6 +- .../precompiles/edwards/ed_decompress.rs | 4 +- crates/curves/Cargo.toml | 1 - crates/curves/src/edwards/ed25519.rs | 16 ++-- crates/curves/src/lib.rs | 34 +++++++- crates/zkvm/lib/src/io.rs | 3 + examples/elf/riscv32im-succinct-zkvm-elf | Bin 0 -> 559520 bytes examples/patch-testing/program/src/main.rs | 24 +++++- 13 files changed, 154 insertions(+), 97 deletions(-) create mode 100755 examples/elf/riscv32im-succinct-zkvm-elf diff --git a/Cargo.lock b/Cargo.lock index 45e37c63c2..1660eea168 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2230,32 +2230,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "curve25519-dalek" -version = "4.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" -dependencies = [ - "cfg-if", - "cpufeatures", - "curve25519-dalek-derive", - "fiat-crypto", - "rustc_version 0.4.1", - "subtle", - "zeroize", -] - -[[package]] -name = "curve25519-dalek-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -] - [[package]] name = "darling" version = "0.13.4" @@ -3055,12 +3029,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "fiat-crypto" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" - [[package]] name = "fixed-hash" version = "0.8.0" @@ -6862,7 +6830,7 @@ dependencies = [ [[package]] name = "sp1-build" -version = "3.3.0" +version = "3.4.0" dependencies = [ "anyhow", "cargo_metadata", @@ -6873,7 +6841,7 @@ dependencies = [ [[package]] name = "sp1-cli" -version = "3.3.0" +version = "3.4.0" dependencies = [ "anstyle", "anyhow", @@ -6901,7 +6869,7 @@ dependencies = [ [[package]] name = "sp1-core-executor" -version = "3.3.0" +version = "3.4.0" dependencies = [ "bincode", "bytemuck", @@ -6934,7 +6902,7 @@ dependencies = [ [[package]] name = "sp1-core-machine" -version = "3.3.0" +version = "3.4.0" dependencies = [ "bincode", "cfg-if", @@ -6983,7 +6951,7 @@ dependencies = [ [[package]] name = "sp1-cuda" -version = "3.3.0" +version = "3.4.0" dependencies = [ "bincode", "ctrlc", @@ -7000,10 +6968,9 @@ dependencies = [ [[package]] name = "sp1-curves" -version = "3.3.0" +version = "3.4.0" dependencies = [ "cfg-if", - "curve25519-dalek", "dashu", "elliptic-curve 0.13.8", "generic-array 1.1.0", @@ -7022,7 +6989,7 @@ dependencies = [ [[package]] name = "sp1-derive" -version = "3.3.0" +version = "3.4.0" dependencies = [ "quote", "syn 1.0.109", @@ -7030,7 +6997,7 @@ dependencies = [ [[package]] name = "sp1-eval" -version = "3.3.0" +version = "3.4.0" dependencies = [ "anyhow", "bincode", @@ -7050,7 +7017,7 @@ dependencies = [ [[package]] name = "sp1-helper" -version = "3.3.0" +version = "3.4.0" dependencies = [ "sp1-build", ] @@ -7067,7 +7034,7 @@ dependencies = [ [[package]] name = "sp1-lib" -version = "3.3.0" +version = "3.4.0" dependencies = [ "bincode", "serde", @@ -7075,7 +7042,7 @@ dependencies = [ [[package]] name = "sp1-perf" -version = "3.3.0" +version = "3.4.0" dependencies = [ "anyhow", "bincode", @@ -7097,7 +7064,7 @@ dependencies = [ [[package]] name = "sp1-primitives" -version = "3.3.0" +version = "3.4.0" dependencies = [ "bincode", "hex", @@ -7113,7 +7080,7 @@ dependencies = [ [[package]] name = "sp1-prover" -version = "3.3.0" +version = "3.4.0" dependencies = [ "anyhow", "bincode", @@ -7153,7 +7120,7 @@ dependencies = [ [[package]] name = "sp1-recursion-circuit" -version = "3.3.0" +version = "3.4.0" dependencies = [ "ff 0.13.0", "hashbrown 0.14.5", @@ -7189,7 +7156,7 @@ dependencies = [ [[package]] name = "sp1-recursion-compiler" -version = "3.3.0" +version = "3.4.0" dependencies = [ "backtrace", "criterion", @@ -7214,7 +7181,7 @@ dependencies = [ [[package]] name = "sp1-recursion-core" -version = "3.3.0" +version = "3.4.0" dependencies = [ "backtrace", "ff 0.13.0", @@ -7249,7 +7216,7 @@ dependencies = [ [[package]] name = "sp1-recursion-derive" -version = "3.3.0" +version = "3.4.0" dependencies = [ "quote", "syn 1.0.109", @@ -7257,7 +7224,7 @@ dependencies = [ [[package]] name = "sp1-recursion-gnark-cli" -version = "3.3.0" +version = "3.4.0" dependencies = [ "bincode", "clap", @@ -7266,7 +7233,7 @@ dependencies = [ [[package]] name = "sp1-recursion-gnark-ffi" -version = "3.3.0" +version = "3.4.0" dependencies = [ "anyhow", "bincode", @@ -7290,7 +7257,7 @@ dependencies = [ [[package]] name = "sp1-sdk" -version = "3.3.0" +version = "3.4.0" dependencies = [ "alloy-primitives 0.8.11", "alloy-signer", @@ -7336,7 +7303,7 @@ dependencies = [ [[package]] name = "sp1-stark" -version = "3.3.0" +version = "3.4.0" dependencies = [ "arrayref", "getrandom 0.2.15", @@ -7371,7 +7338,7 @@ dependencies = [ [[package]] name = "sp1-verifier" -version = "3.3.0" +version = "3.4.0" dependencies = [ "hex", "lazy_static", @@ -7385,7 +7352,7 @@ dependencies = [ [[package]] name = "sp1-zkvm" -version = "3.3.0" +version = "3.4.0" dependencies = [ "cfg-if", "getrandom 0.2.15", @@ -7395,7 +7362,7 @@ dependencies = [ "p3-field", "rand 0.8.5", "sha2 0.10.8", - "sp1-lib 3.3.0", + "sp1-lib 3.4.0", "sp1-primitives", ] diff --git a/Cargo.toml b/Cargo.toml index 0633339d9c..9d2991044d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace.package] -version = "3.3.0" +version = "3.4.0" edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/succinctlabs/sp1" @@ -47,26 +47,26 @@ debug-assertions = true [workspace.dependencies] # sp1 -sp1-build = { path = "crates/build", version = "3.3.0" } -sp1-cli = { path = "crates/cli", version = "3.3.0", default-features = false } -sp1-core-machine = { path = "crates/core/machine", version = "3.3.0" } -sp1-core-executor = { path = "crates/core/executor", version = "3.3.0" } -sp1-curves = { path = "crates/curves", version = "3.3.0" } -sp1-derive = { path = "crates/derive", version = "3.3.0" } -sp1-eval = { path = "crates/eval", version = "3.3.0" } -sp1-helper = { path = "crates/helper", version = "3.3.0", default-features = false } -sp1-primitives = { path = "crates/primitives", version = "3.3.0" } -sp1-prover = { path = "crates/prover", version = "3.3.0" } -sp1-recursion-compiler = { path = "crates/recursion/compiler", version = "3.3.0" } -sp1-recursion-core = { path = "crates/recursion/core", version = "3.3.0", default-features = false } -sp1-recursion-derive = { path = "crates/recursion/derive", version = "3.3.0", default-features = false } -sp1-recursion-gnark-ffi = { path = "crates/recursion/gnark-ffi", version = "3.3.0", default-features = false } -sp1-recursion-circuit = { path = "crates/recursion/circuit", version = "3.3.0", default-features = false } -sp1-sdk = { path = "crates/sdk", version = "3.3.0" } -sp1-cuda = { path = "crates/cuda", version = "3.3.0" } -sp1-stark = { path = "crates/stark", version = "3.3.0" } -sp1-lib = { path = "crates/zkvm/lib", version = "3.3.0", default-features = false } -sp1-zkvm = { path = "crates/zkvm/entrypoint", version = "3.3.0", default-features = false } +sp1-build = { path = "crates/build", version = "3.4.0" } +sp1-cli = { path = "crates/cli", version = "3.4.0", default-features = false } +sp1-core-machine = { path = "crates/core/machine", version = "3.4.0" } +sp1-core-executor = { path = "crates/core/executor", version = "3.4.0" } +sp1-curves = { path = "crates/curves", version = "3.4.0" } +sp1-derive = { path = "crates/derive", version = "3.4.0" } +sp1-eval = { path = "crates/eval", version = "3.4.0" } +sp1-helper = { path = "crates/helper", version = "3.4.0", default-features = false } +sp1-primitives = { path = "crates/primitives", version = "3.4.0" } +sp1-prover = { path = "crates/prover", version = "3.4.0" } +sp1-recursion-compiler = { path = "crates/recursion/compiler", version = "3.4.0" } +sp1-recursion-core = { path = "crates/recursion/core", version = "3.4.0", default-features = false } +sp1-recursion-derive = { path = "crates/recursion/derive", version = "3.4.0", default-features = false } +sp1-recursion-gnark-ffi = { path = "crates/recursion/gnark-ffi", version = "3.4.0", default-features = false } +sp1-recursion-circuit = { path = "crates/recursion/circuit", version = "3.4.0", default-features = false } +sp1-sdk = { path = "crates/sdk", version = "3.4.0" } +sp1-cuda = { path = "crates/cuda", version = "3.4.0" } +sp1-stark = { path = "crates/stark", version = "3.4.0" } +sp1-lib = { path = "crates/zkvm/lib", version = "3.4.0", default-features = false } +sp1-zkvm = { path = "crates/zkvm/entrypoint", version = "3.4.0", default-features = false } # p3 p3-air = "0.1.4-succinct" diff --git a/book/writing-programs/patched-crates.md b/book/writing-programs/patched-crates.md index c3a7358f82..bb64c78df6 100644 --- a/book/writing-programs/patched-crates.md +++ b/book/writing-programs/patched-crates.md @@ -36,6 +36,9 @@ sha3-v0-10-6 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", packa sha3-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "sha3-v0.10.8-patch-v1" } crypto-bigint = { git = "https://github.com/sp1-patches/RustCrypto-bigint", tag = "crypto_bigint-v0.5.5-patch-v1" } tiny-keccak = { git = "https://github.com/sp1-patches/tiny-keccak", tag = "tiny_keccak-v2.0.2-patch-v1" } +# For sp1 versions >= 3.4.0 +curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "patch-v4.1.3-v3.4.0" } +# For sp1 versions < 3.4.0 curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "curve25519_dalek-v4.1.3-patch-v1" } curve25519-dalek-ng = { git = "https://github.com/sp1-patches/curve25519-dalek-ng", tag = "curve25519_dalek_ng-v4.1.1-patch-v1" } ed25519-consensus = { git = "https://github.com/sp1-patches/ed25519-consensus", tag = "ed25519_consensus-v2.1.0-patch-v1" } diff --git a/crates/core/executor/src/hook.rs b/crates/core/executor/src/hook.rs index cbdb0db3db..09a40cd19a 100644 --- a/crates/core/executor/src/hook.rs +++ b/crates/core/executor/src/hook.rs @@ -18,6 +18,9 @@ pub const FD_ECRECOVER_HOOK: u32 = 5; /// The file descriptor through which to access `hook_ecrecover_2`. pub const FD_ECRECOVER_HOOK_2: u32 = 7; +/// The file descriptor through which to access `hook_ed_decompress`. +pub const FD_EDDECOMPRESS: u32 = 8; + /// A runtime hook. May be called during execution by writing to a specified file descriptor, /// accepting and returning arbitrary data. pub trait Hook { @@ -82,6 +85,7 @@ impl<'a> Default for HookRegistry<'a> { // add an assertion to the test `hook_fds_match` below. (FD_ECRECOVER_HOOK, hookify(hook_ecrecover)), (FD_ECRECOVER_HOOK_2, hookify(hook_ecrecover_v2)), + (FD_EDDECOMPRESS, hookify(hook_ed_decompress)), ]); Self { table } @@ -179,8 +183,9 @@ pub fn hook_ecrecover_v2(_: HookEnv, buf: &[u8]) -> Vec> { sig = sig_normalized; recovery_id ^= 1; }; - let recid = RecoveryId::from_byte(recovery_id).expect("Computed recovery ID is invalid, this is a bug."); - + let recid = RecoveryId::from_byte(recovery_id) + .expect("Computed recovery ID is invalid, this is a bug."); + // Attempting to recvover the public key has failed, write a 0 to indicate to the caller. let Ok(recovered_key) = VerifyingKey::recover_from_prehash(&msg_hash[..], &sig, recid) else { return vec![vec![0]]; @@ -194,6 +199,31 @@ pub fn hook_ecrecover_v2(_: HookEnv, buf: &[u8]) -> Vec> { vec![vec![1], bytes.to_vec(), s_inverse.to_bytes().to_vec()] } +/// Checks if a compressed Edwards point can be decompressed. +/// +/// # Arguments +/// * `env` - The environment in which the hook is invoked. +/// * `buf` - The buffer containing the compressed Edwards point. +/// - The compressed Edwards point is 32 bytes. +/// - The high bit of the last byte is the sign bit. +/// +/// The result is either `0` if the point cannot be decompressed, or `1` if it can. +/// +/// WARNING: This function merely hints at the validity of the compressed point. These values must +/// be constrained by the zkVM for correctness. +#[must_use] +pub fn hook_ed_decompress(_: HookEnv, buf: &[u8]) -> Vec> { + let Ok(point) = sp1_curves::curve25519_dalek::CompressedEdwardsY::from_slice(buf) else { + return vec![vec![0]]; + }; + + if sp1_curves::edwards::ed25519::decompress(&point).is_some() { + vec![vec![1]] + } else { + vec![vec![0]] + } +} + #[cfg(test)] pub mod tests { use super::*; diff --git a/crates/core/executor/src/syscalls/precompiles/edwards/decompress.rs b/crates/core/executor/src/syscalls/precompiles/edwards/decompress.rs index 287101fbfd..e448c09ba6 100644 --- a/crates/core/executor/src/syscalls/precompiles/edwards/decompress.rs +++ b/crates/core/executor/src/syscalls/precompiles/edwards/decompress.rs @@ -53,7 +53,8 @@ impl Syscall for EdwardsDecompressSyscall { // Compute actual decompressed X let compressed_y = CompressedEdwardsY(compressed_edwards_y); - let decompressed = decompress(&compressed_y); + let decompressed = + decompress(&compressed_y).expect("Decompression failed, syscall invariant violated."); let mut decompressed_x_bytes = decompressed.x.to_bytes_le(); decompressed_x_bytes.resize(32, 0u8); diff --git a/crates/core/machine/src/operations/field/field_sqrt.rs b/crates/core/machine/src/operations/field/field_sqrt.rs index a0f40c6a48..dbe4e4806a 100644 --- a/crates/core/machine/src/operations/field/field_sqrt.rs +++ b/crates/core/machine/src/operations/field/field_sqrt.rs @@ -224,7 +224,11 @@ mod tests { let mut row = [F::zero(); NUM_TEST_COLS]; let cols: &mut TestCols = row.as_mut_slice().borrow_mut(); cols.a = P::to_limbs_field::(a); - cols.sqrt.populate(&mut blu_events, 1, a, ed25519_sqrt); + cols.sqrt.populate(&mut blu_events, 1, a, |p| { + ed25519_sqrt(p).expect( + "By now we should have validated the sqrt exists, this is a bug", + ) + }); output.add_byte_lookup_events(blu_events); row }) diff --git a/crates/core/machine/src/syscall/precompiles/edwards/ed_decompress.rs b/crates/core/machine/src/syscall/precompiles/edwards/ed_decompress.rs index c9c5ae93c8..90c6768f14 100644 --- a/crates/core/machine/src/syscall/precompiles/edwards/ed_decompress.rs +++ b/crates/core/machine/src/syscall/precompiles/edwards/ed_decompress.rs @@ -99,7 +99,9 @@ impl EdDecompressCols { let dyy = self.dyy.populate(blu_events, shard, &E::d_biguint(), &yy, FieldOperation::Mul); let v = self.v.populate(blu_events, shard, &one, &dyy, FieldOperation::Add); let u_div_v = self.u_div_v.populate(blu_events, shard, &u, &v, FieldOperation::Div); - let x = self.x.populate(blu_events, shard, &u_div_v, ed25519_sqrt); + let x = self.x.populate(blu_events, shard, &u_div_v, |p| { + ed25519_sqrt(p).expect("ed25519_sqrt failed, syscall invariant violated") + }); self.neg_x.populate(blu_events, shard, &BigUint::zero(), &x, FieldOperation::Sub); } } diff --git a/crates/curves/Cargo.toml b/crates/curves/Cargo.toml index 8d7f16afcc..ec09d2d1d7 100644 --- a/crates/curves/Cargo.toml +++ b/crates/curves/Cargo.toml @@ -13,7 +13,6 @@ categories = { workspace = true } num = "0.4.3" serde = { version = "1.0.207", features = ["derive"] } typenum = "1.17.0" -curve25519-dalek = { version = "4.1.2" } k256 = { version = "0.13.3", features = ["expose-field"] } generic-array = { version = "1.1.0", features = ["alloc", "serde"] } amcl = { package = "snowbridge-amcl", version = "1.0.2", default-features = false, features = [ diff --git a/crates/curves/src/edwards/ed25519.rs b/crates/curves/src/edwards/ed25519.rs index c2a823c603..4d1be91ac0 100644 --- a/crates/curves/src/edwards/ed25519.rs +++ b/crates/curves/src/edwards/ed25519.rs @@ -1,6 +1,6 @@ use std::str::FromStr; -use curve25519_dalek::edwards::CompressedEdwardsY; +use crate::curve25519_dalek::CompressedEdwardsY; use generic_array::GenericArray; use num::{BigUint, Num, One}; use serde::{Deserialize, Serialize}; @@ -72,7 +72,7 @@ impl EdwardsParameters for Ed25519Parameters { /// /// This function always returns the nonnegative square root, in the sense that the least /// significant bit of the result is always 0. -pub fn ed25519_sqrt(a: &BigUint) -> BigUint { +pub fn ed25519_sqrt(a: &BigUint) -> Option { // Here is a description of how to calculate sqrt in the Curve25519 base field: // ssh://git@github.com/succinctlabs/curve25519-dalek/blob/ // e2d1bd10d6d772af07cac5c8161cd7655016af6d/curve25519-dalek/src/field.rs#L256 @@ -108,7 +108,7 @@ pub fn ed25519_sqrt(a: &BigUint) -> BigUint { let flipped_sign_sqrt = beta_squared == neg_a; if !correct_sign_sqrt && !flipped_sign_sqrt { - panic!("a is not a square"); + return None; } let beta_bytes = beta.to_bytes_le(); @@ -116,10 +116,10 @@ pub fn ed25519_sqrt(a: &BigUint) -> BigUint { beta = (&modulus - &beta) % &modulus; } - beta + Some(beta) } -pub fn decompress(compressed_point: &CompressedEdwardsY) -> AffinePoint { +pub fn decompress(compressed_point: &CompressedEdwardsY) -> Option> { let mut point_bytes = *compressed_point.as_bytes(); let sign = point_bytes[31] >> 7 == 1; // mask out the sign bit @@ -134,7 +134,7 @@ pub fn decompress(compressed_point: &CompressedEdwardsY) -> AffinePoint let v_inv = v.modpow(&(modulus - BigUint::from(2u64)), modulus); let u_div_v = (u * &v_inv) % modulus; - let mut x = ed25519_sqrt(&u_div_v); + let mut x = ed25519_sqrt(&u_div_v)?; // sqrt always returns the nonnegative square root, // so we negate according to the supplied sign bit. @@ -142,7 +142,7 @@ pub fn decompress(compressed_point: &CompressedEdwardsY) -> AffinePoint x = modulus - &x; } - AffinePoint::new(x, y.clone()) + Some(AffinePoint::new(x, y.clone())) } #[cfg(test)] @@ -178,7 +178,7 @@ mod tests { CompressedEdwardsY(compressed) }; - assert_eq!(point, decompress(&compressed_point)); + assert_eq!(point, decompress(&compressed_point).unwrap()); // Double the point to create a "random" point for the next iteration. point = point.clone() + point.clone(); diff --git a/crates/curves/src/lib.rs b/crates/curves/src/lib.rs index 7b91ab429f..b97bbc61d1 100644 --- a/crates/curves/src/lib.rs +++ b/crates/curves/src/lib.rs @@ -7,7 +7,39 @@ pub mod utils; pub mod weierstrass; pub mod curve25519_dalek { - pub use curve25519_dalek::edwards::CompressedEdwardsY; + /// In "Edwards y" / "Ed25519" format, the curve point \\((x,y)\\) is + /// determined by the \\(y\\)-coordinate and the sign of \\(x\\). + /// + /// The first 255 bits of a `CompressedEdwardsY` represent the + /// \\(y\\)-coordinate. The high bit of the 32nd byte gives the sign of \\(x\\). + /// + /// Note: This is taken from the `curve25519-dalek` crate. + #[derive(Copy, Clone, Eq, PartialEq, Hash)] + pub struct CompressedEdwardsY(pub [u8; 32]); + + impl CompressedEdwardsY { + /// View this `CompressedEdwardsY` as a byte array. + pub fn as_bytes(&self) -> &[u8; 32] { + &self.0 + } + + /// Consume this `CompressedEdwardsY` and return the underlying byte array. + pub fn to_bytes(&self) -> [u8; 32] { + self.0 + } + + /// Construct a `CompressedEdwardsY` from a slice of bytes. + /// + /// # Errors + /// + /// Returns [`TryFromSliceError`] if the input `bytes` slice does not have + /// a length of 32. + pub fn from_slice( + bytes: &[u8], + ) -> Result { + bytes.try_into().map(CompressedEdwardsY) + } + } } pub mod k256 { diff --git a/crates/zkvm/lib/src/io.rs b/crates/zkvm/lib/src/io.rs index b44d1edae0..921669423a 100644 --- a/crates/zkvm/lib/src/io.rs +++ b/crates/zkvm/lib/src/io.rs @@ -18,6 +18,9 @@ pub const FD_ECRECOVER_HOOK: u32 = 5; /// The file descriptor through which to access `hook_ecrecover_2`. pub const FD_ECRECOVER_HOOK_2: u32 = 7; +/// The file descriptor through which to access `hook_ed_decompress`. +pub const FD_EDDECOMPRESS: u32 = 8; + /// A writer that writes to a file descriptor inside the zkVM. struct SyscallWriter { fd: u32, diff --git a/examples/elf/riscv32im-succinct-zkvm-elf b/examples/elf/riscv32im-succinct-zkvm-elf new file mode 100755 index 0000000000000000000000000000000000000000..fc03bd27255a73641560ed460584d36a466f2f74 GIT binary patch literal 559520 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

--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≧3OV8M7fB6gp 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%0DodRQ>@SWsnQg4eB>yg$d@dsS8=y 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

aN*! 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 U^Ypp5|JUEVxcwjeU&rVEKe5qhga7~l literal 0 HcmV?d00001 diff --git a/examples/patch-testing/program/src/main.rs b/examples/patch-testing/program/src/main.rs index cfa7829209..4089fdff19 100644 --- a/examples/patch-testing/program/src/main.rs +++ b/examples/patch-testing/program/src/main.rs @@ -81,15 +81,31 @@ fn test_curve25519_dalek_ng() { /// Emits ED_DECOMPRESS syscall. fn test_curve25519_dalek() { - let input = [1u8; 32]; - let y = CompressedEdwardsY_dalek(input); + let input_passing = [1u8; 32]; + + // This y-coordinate is not square, and therefore not on the curve + let limbs: [u64; 4] = + [8083970408152925034, 11907700107021980321, 16259949789167878387, 5645861033211660086]; + + // convert to bytes + let input_failing: [u8; 32] = + limbs.iter().flat_map(|l| l.to_be_bytes()).collect::>().try_into().unwrap(); + + let y_passing = CompressedEdwardsY_dalek(input_passing); println!("cycle-tracker-start: curve25519-dalek decompress"); - let decompressed_key = y.decompress().unwrap(); + let decompressed_key = y_passing.decompress().unwrap(); println!("cycle-tracker-end: curve25519-dalek decompress"); let compressed_key = decompressed_key.compress(); - assert_eq!(compressed_key, y); + assert_eq!(compressed_key, y_passing); + + let y_failing = CompressedEdwardsY_dalek(input_failing); + println!("cycle-tracker-start: curve25519-dalek decompress"); + let decompressed_key = y_failing.decompress(); + println!("cycle-tracker-end: curve25519-dalek decompress"); + + assert!(decompressed_key.is_none()); } /// Emits KECCAK_PERMUTE syscalls. From 7406fb4c824ab918de7679fc17f0e076a3026736 Mon Sep 17 00:00:00 2001 From: N Date: Fri, 29 Nov 2024 16:44:43 -0800 Subject: [PATCH 08/36] fix: examples patch, book clean up (#1832) --- book/writing-programs/patched-crates.md | 6 +- examples/Cargo.lock | 745 ++++++++++++----------- examples/Cargo.toml | 2 +- examples/elf/riscv32im-succinct-zkvm-elf | Bin 559520 -> 145784 bytes 4 files changed, 394 insertions(+), 359 deletions(-) diff --git a/book/writing-programs/patched-crates.md b/book/writing-programs/patched-crates.md index bb64c78df6..e49c707eab 100644 --- a/book/writing-programs/patched-crates.md +++ b/book/writing-programs/patched-crates.md @@ -36,6 +36,9 @@ sha3-v0-10-6 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", packa sha3-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "sha3-v0.10.8-patch-v1" } crypto-bigint = { git = "https://github.com/sp1-patches/RustCrypto-bigint", tag = "crypto_bigint-v0.5.5-patch-v1" } tiny-keccak = { git = "https://github.com/sp1-patches/tiny-keccak", tag = "tiny_keccak-v2.0.2-patch-v1" } +substrate-bn = { git = "https://github.com/sp1-patches/bn", tag = "substrate_bn-v0.6.0-patch-v1" } +bls12_381 = { git = "https://github.com/sp1-patches/bls12_381", tag = "bls12_381-v0.8.0-patch-v1" } + # For sp1 versions >= 3.4.0 curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "patch-v4.1.3-v3.4.0" } # For sp1 versions < 3.4.0 @@ -48,9 +51,6 @@ secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "secp # For sp1 versions < 3.3.0 ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", tag = "ecdsa-v0.16.9-patch-v1" } secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "secp256k1-v0.29.0-patch-v1" } -substrate-bn = { git = "https://github.com/sp1-patches/bn", tag = "substrate_bn-v0.6.0-patch-v1" } -bls12_381 = { git = "https://github.com/sp1-patches/bls12_381", tag = "bls12_381-v0.8.0-patch-v1" } - ``` If you are patching a crate from Github instead of from crates.io, you need to specify the diff --git a/examples/Cargo.lock b/examples/Cargo.lock index 1b25dbc238..3510fb21a9 100644 --- a/examples/Cargo.lock +++ b/examples/Cargo.lock @@ -89,9 +89,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.18" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" [[package]] name = "alloy-chains" @@ -99,7 +99,7 @@ version = "0.1.47" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18c5c520273946ecf715c0010b4e3503d7eba9893cd9ce6b7fff5654c4a3c470" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "num_enum 0.7.3", "serde", @@ -113,7 +113,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "629b62e38d471cc15fea534eb7283d2f8a4e8bdb1811bcc5d66dda6cfce6fae1" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "alloy-serde", "c-kzg", @@ -126,7 +126,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "serde", ] @@ -137,7 +137,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea59dc42102bc9a1905dc57901edc6dd48b9f38115df86c7d252acba70d71d04" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "k256", "serde", @@ -151,7 +151,7 @@ checksum = "f923dd5fca5f67a43d81ed3ebad0880bd41f6dd0ada930030353ac356c54cd0f" dependencies = [ "alloy-eip2930", "alloy-eip7702", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "alloy-serde", "c-kzg", @@ -167,18 +167,18 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a7a18afb0b318616b6b2b0e2e7ac5529d32a966c673b48091c9919e284e6aca" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-serde", "serde", ] [[package]] name = "alloy-json-abi" -version = "0.8.11" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded610181f3dad5810f6ff12d1a99994cf9b42d2fcb7709029352398a5da5ae6" +checksum = "ac4b22b3e51cac09fd2adfcc73b55f447b4df669f983c13f7894ec82b607c63f" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-sol-type-parser", "serde", "serde_json", @@ -191,7 +191,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94ad40869867ed2d9cd3842b1e800889e5b49e6b92da346e93862b4a741bedf3" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-serde", "serde", ] @@ -242,9 +242,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.11" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd58d377699e6cfeab52c4a9d28bdc4ef37e2bd235ff2db525071fe37a2e9af5" +checksum = "9db948902dfbae96a73c2fbf1f7abec62af034ab883e4c777c3fd29702bd6e2c" dependencies = [ "alloy-rlp", "bytes", @@ -253,7 +253,7 @@ dependencies = [ "derive_more 1.0.0", "foldhash", "getrandom", - "hashbrown 0.15.1", + "hashbrown 0.15.2", "hex-literal", "indexmap 2.6.0", "itoa", @@ -288,7 +288,7 @@ checksum = "2b09cae092c27b6f1bde952653a22708691802e57bfef4a2973b80bea21efd3f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -311,10 +311,10 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-network-primitives", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "alloy-serde", - "alloy-sol-types 0.8.11", + "alloy-sol-types 0.8.14", "cfg-if", "derive_more 1.0.0", "hashbrown 0.14.5", @@ -329,7 +329,7 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "731f75ec5d383107fd745d781619bd9cedf145836c51ecb991623d41278e71fa" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "serde", "serde_json", ] @@ -345,21 +345,21 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "alloy-sol-macro" -version = "0.8.11" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a1b42ac8f45e2f49f4bcdd72cbfde0bb148f5481d403774ffa546e48b83efc1" +checksum = "3bfd7853b65a2b4f49629ec975fee274faf6dff15ab8894c620943398ef283c0" dependencies = [ - "alloy-sol-macro-expander 0.8.11", - "alloy-sol-macro-input 0.8.11", + "alloy-sol-macro-expander 0.8.14", + "alloy-sol-macro-input 0.8.14", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -375,26 +375,26 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "syn-solidity 0.7.7", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-expander" -version = "0.8.11" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06318f1778e57f36333e850aa71bd1bb5e560c10279e236622faae0470c50412" +checksum = "82ec42f342d9a9261699f8078e57a7a4fda8aaa73c1a212ed3987080e6a9cd13" dependencies = [ - "alloy-sol-macro-input 0.8.11", + "alloy-sol-macro-input 0.8.14", "const-hex", "heck", "indexmap 2.6.0", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.87", - "syn-solidity 0.8.11", + "syn 2.0.90", + "syn-solidity 0.8.14", "tiny-keccak", ] @@ -409,30 +409,30 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "syn-solidity 0.7.7", ] [[package]] name = "alloy-sol-macro-input" -version = "0.8.11" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaebb9b0ad61a41345a22c9279975c0cdd231b97947b10d7aad1cf0a7181e4a5" +checksum = "ed2c50e6a62ee2b4f7ab3c6d0366e5770a21cad426e109c2f40335a1b3aff3df" dependencies = [ "const-hex", "dunce", "heck", "proc-macro2", "quote", - "syn 2.0.87", - "syn-solidity 0.8.11", + "syn 2.0.90", + "syn-solidity 0.8.14", ] [[package]] name = "alloy-sol-type-parser" -version = "0.8.11" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12c71028bfbfec210e24106a542aad3def7caf1a70e2c05710e92a98481980d3" +checksum = "ac17c6e89a50fb4a758012e4b409d9a0ba575228e69b539fe37d7a1bd507ca4a" dependencies = [ "serde", "winnow 0.6.20", @@ -452,13 +452,13 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.11" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374d7fb042d68ddfe79ccb23359de3007f6d4d53c13f703b64fb0db422132111" +checksum = "c9dc0fffe397aa17628160e16b89f704098bf3c9d74d5d369ebc239575936de5" dependencies = [ "alloy-json-abi", - "alloy-primitives 0.8.11", - "alloy-sol-macro 0.8.11", + "alloy-primitives 0.8.14", + "alloy-sol-macro 0.8.14", "const-hex", "serde", ] @@ -469,7 +469,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a46c9c4fdccda7982e7928904bd85fe235a0404ee3d7e197fff13d61eac8b4f" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "derive_more 1.0.0", "hashbrown 0.14.5", @@ -708,7 +708,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -746,7 +746,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -757,9 +757,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axum" -version = "0.7.7" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504e3947307ac8326a5437504c517c4b56716c9d98fac0028c2acc7ca47d70ae" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" dependencies = [ "async-trait", "axum-core", @@ -768,7 +768,7 @@ dependencies = [ "http 1.1.0", "http-body 1.0.1", "http-body-util", - "hyper 1.5.0", + "hyper 1.5.1", "hyper-util", "itoa", "matchit", @@ -781,7 +781,7 @@ dependencies = [ "serde_json", "serde_path_to_error", "serde_urlencoded", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tokio", "tower", "tower-layer", @@ -804,7 +804,7 @@ dependencies = [ "mime", "pin-project-lite", "rustversion", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tower-layer", "tower-service", "tracing", @@ -888,7 +888,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -956,9 +956,9 @@ dependencies = [ [[package]] name = "blake3" -version = "1.5.4" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d82033247fd8e890df8f740e407ad4d038debb9eb1f40533fffb32e7d17dc6f7" +checksum = "b8ee0c1824c4dea5b5f81736aff91bae041d2c07ee1192bec91054e10e3e601e" dependencies = [ "arrayref", "arrayvec 0.7.6", @@ -1020,14 +1020,14 @@ dependencies = [ [[package]] name = "bls12_381" version = "0.8.0" -source = "git+https://github.com/sp1-patches/bls12_381?branch=patch-v0.8.0#444e109287eb3adc581425e160ed6041622dda35" +source = "git+https://github.com/sp1-patches/bls12_381?branch=patch-v0.8.0#7e1b79041253d6f7b591534613245b3f60e05d8b" dependencies = [ "cfg-if", "ff 0.13.0", "group 0.13.0", "pairing 0.23.0", "rand_core 0.6.4", - "sp1-lib 3.1.0", + "sp1-lib 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "subtle", ] @@ -1084,9 +1084,9 @@ checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" [[package]] name = "bytemuck" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" +checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a" dependencies = [ "bytemuck_derive", ] @@ -1099,7 +1099,7 @@ checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1110,9 +1110,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" dependencies = [ "serde", ] @@ -1143,9 +1143,9 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" dependencies = [ "serde", ] @@ -1161,14 +1161,14 @@ dependencies = [ "semver 1.0.23", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "cc" -version = "1.1.36" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baee610e9452a8f6f0a1b6194ec09ff9e2d85dea54432acdae41aa0761c95d70" +checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc" dependencies = [ "jobserver", "libc", @@ -1260,9 +1260,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.20" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" +checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f" dependencies = [ "clap_builder", "clap_derive", @@ -1270,9 +1270,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.20" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" +checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec" dependencies = [ "anstream", "anstyle", @@ -1289,14 +1289,14 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "clap_lex" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" [[package]] name = "coins-bip32" @@ -1311,7 +1311,7 @@ dependencies = [ "k256", "serde", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1327,7 +1327,7 @@ dependencies = [ "pbkdf2 0.12.2", "rand 0.8.5", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1347,7 +1347,7 @@ dependencies = [ "serde_derive", "sha2 0.10.8", "sha3", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1365,15 +1365,15 @@ dependencies = [ "encode_unicode", "lazy_static", "libc", - "unicode-width", + "unicode-width 0.1.14", "windows-sys 0.52.0", ] [[package]] name = "const-hex" -version = "1.13.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0121754e84117e65f9d90648ee6aa4882a6e63110307ab73967a4c5e7e69e586" +checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" dependencies = [ "cfg-if", "cpufeatures", @@ -1433,9 +1433,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ "libc", ] @@ -1540,7 +1540,7 @@ dependencies = [ [[package]] name = "curve25519-dalek" version = "4.1.3" -source = "git+https://github.com/sp1-patches/curve25519-dalek?tag=curve25519_dalek-v4.1.3-patch-v1#dbdd0ffeea0ff767affc3f6765d1edbdaa9e2cb9" +source = "git+https://github.com/sp1-patches/curve25519-dalek?tag=patch-v4.1.3-v3.4.0#bfe63b8205f0b6baa0c1f4c71da33209f766e3e4" dependencies = [ "anyhow", "cfg-if", @@ -1549,7 +1549,7 @@ dependencies = [ "digest 0.10.7", "fiat-crypto", "rustc_version 0.4.1", - "sp1-lib 3.1.0", + "sp1-lib 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "subtle", "zeroize", ] @@ -1557,11 +1557,11 @@ dependencies = [ [[package]] name = "curve25519-dalek-derive" version = "0.1.1" -source = "git+https://github.com/sp1-patches/curve25519-dalek?tag=curve25519_dalek-v4.1.3-patch-v1#dbdd0ffeea0ff767affc3f6765d1edbdaa9e2cb9" +source = "git+https://github.com/sp1-patches/curve25519-dalek?tag=patch-v4.1.3-v3.4.0#bfe63b8205f0b6baa0c1f4c71da33209f766e3e4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1574,7 +1574,7 @@ dependencies = [ "cfg-if", "digest 0.9.0", "rand_core 0.6.4", - "sp1-lib 3.1.0", + "sp1-lib 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "subtle-ng", "zeroize", ] @@ -1589,7 +1589,7 @@ dependencies = [ "cfg-if", "digest 0.9.0", "rand_core 0.6.4", - "sp1-lib 3.1.0", + "sp1-lib 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "subtle-ng", "zeroize", ] @@ -1631,7 +1631,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1642,7 +1642,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1776,7 +1776,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1797,7 +1797,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "unicode-xid", ] @@ -1851,7 +1851,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1897,7 +1897,7 @@ dependencies = [ "elliptic-curve", "hex-literal", "signature", - "sp1-lib 3.1.0", + "sp1-lib 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "spki 0.7.3", ] @@ -1921,7 +1921,7 @@ dependencies = [ "rand_core 0.6.4", "serde", "sha2 0.9.9", - "thiserror", + "thiserror 1.0.69", "zeroize", ] @@ -2037,7 +2037,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -2048,7 +2048,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -2059,12 +2059,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2085,7 +2085,7 @@ dependencies = [ "serde_json", "sha2 0.10.8", "sha3", - "thiserror", + "thiserror 1.0.69", "uuid", ] @@ -2102,7 +2102,7 @@ dependencies = [ "serde", "serde_json", "sha3", - "thiserror", + "thiserror 1.0.69", "uint", ] @@ -2179,7 +2179,7 @@ dependencies = [ "pin-project", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2199,7 +2199,7 @@ dependencies = [ "regex", "serde", "serde_json", - "syn 2.0.87", + "syn 2.0.90", "toml", "walkdir", ] @@ -2217,7 +2217,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -2243,9 +2243,9 @@ dependencies = [ "serde", "serde_json", "strum", - "syn 2.0.87", + "syn 2.0.90", "tempfile", - "thiserror", + "thiserror 1.0.69", "tiny-keccak", "unicode-xid", ] @@ -2269,7 +2269,7 @@ dependencies = [ "reqwest 0.11.27", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", "tracing-futures", @@ -2301,7 +2301,7 @@ dependencies = [ "reqwest 0.11.27", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", "tracing-futures", @@ -2327,7 +2327,7 @@ dependencies = [ "ethers-core", "rand 0.8.5", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.69", "tracing", ] @@ -2365,9 +2365,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" [[package]] name = "fastrlp" @@ -2571,7 +2571,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -2642,9 +2642,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96512db27971c2c3eece70a1e106fbe6c87760234e31e8f7e5634912fe52794a" +checksum = "2cb8bc4c28d15ade99c7e90b219f30da4be5c88e586277e8cbe886beeb868ab2" dependencies = [ "serde", "typenum", @@ -2657,8 +2657,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", ] [[package]] @@ -2758,9 +2760,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ "atomic-waker", "bytes", @@ -2823,9 +2825,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.1" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ "allocator-api2", "equivalent", @@ -2972,14 +2974,14 @@ dependencies = [ [[package]] name = "hyper" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" +checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.6", + "h2 0.4.7", "http 1.1.0", "http-body 1.0.1", "httparse", @@ -2999,7 +3001,7 @@ checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", "http 1.1.0", - "hyper 1.5.0", + "hyper 1.5.1", "hyper-util", "rustls", "rustls-pki-types", @@ -3030,7 +3032,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.5.0", + "hyper 1.5.1", "hyper-util", "native-tls", "tokio", @@ -3049,7 +3051,7 @@ dependencies = [ "futures-util", "http 1.1.0", "http-body 1.0.1", - "hyper 1.5.0", + "hyper 1.5.1", "pin-project-lite", "socket2", "tokio", @@ -3195,7 +3197,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -3254,13 +3256,13 @@ dependencies = [ [[package]] name = "impl-trait-for-tuples" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.90", ] [[package]] @@ -3287,21 +3289,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.15.1", + "hashbrown 0.15.2", "serde", ] [[package]] name = "indicatif" -version = "0.17.8" +version = "0.17.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" +checksum = "cbf675b85ed934d3c67b5c5469701eec7db22689d0a2139d856e0925fa28b281" dependencies = [ "console", - "instant", "number_prefix", "portable-atomic", - "unicode-width", + "unicode-width 0.2.0", + "web-time", ] [[package]] @@ -3395,9 +3397,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jobserver" @@ -3410,9 +3412,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.72" +version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +checksum = "fb15147158e79fd8b8afd0252522769c4f48725460b37338544d8379d94fc8f9" dependencies = [ "wasm-bindgen", ] @@ -3528,9 +3530,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.161" +version = "0.2.167" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" +checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc" [[package]] name = "libgit2-sys" @@ -3546,9 +3548,9 @@ dependencies = [ [[package]] name = "libloading" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", "windows-targets 0.52.6", @@ -3590,9 +3592,9 @@ checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "litemap" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "lock_api" @@ -3616,7 +3618,7 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.15.1", + "hashbrown 0.15.2", ] [[package]] @@ -3669,11 +3671,10 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "hermit-abi", "libc", "wasi", "windows-sys 0.52.0", @@ -3845,7 +3846,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -3953,7 +3954,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -4007,7 +4008,7 @@ checksum = "21aad1fbf80d2bcd7406880efc7ba109365f44bbb72896758ddcbfa46bf1592c" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "alloy-serde", "derive_more 1.0.0", @@ -4023,7 +4024,7 @@ checksum = "e281fbfc2198b7c0c16457d6524f83d192662bc9f3df70f24c3038d4521616df" dependencies = [ "alloy-eips", "alloy-network-primitives", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rpc-types-eth", "alloy-serde", "cfg-if", @@ -4087,7 +4088,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -4411,28 +4412,29 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.6.12" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +checksum = "8be4817d39f3272f69c59fe05d0535ae6456c2dc2fa1ba02910296c7e0a5c590" dependencies = [ "arrayvec 0.7.6", "bitvec", "byte-slice-cast", "impl-trait-for-tuples", "parity-scale-codec-derive", + "rustversion", "serde", ] [[package]] name = "parity-scale-codec-derive" -version = "3.6.12" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +checksum = "8781a75c6205af67215f382092b6e0a4ff3734798523e69073d4bcd294ec767b" dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.90", ] [[package]] @@ -4498,7 +4500,7 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" name = "patch-testing-program" version = "1.1.0" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "curve25519-dalek", "curve25519-dalek-ng 4.1.1 (git+https://github.com/sp1-patches/curve25519-dalek-ng?tag=curve25519_dalek_ng-v4.1.1-patch-v1)", "ed25519-consensus", @@ -4579,7 +4581,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" dependencies = [ "memchr", - "thiserror", + "thiserror 1.0.69", "ucd-trie", ] @@ -4610,7 +4612,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -4676,9 +4678,9 @@ checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "portable-atomic" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" +checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" [[package]] name = "powerfmt" @@ -4702,7 +4704,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -4790,14 +4792,14 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "proc-macro2" -version = "1.0.89" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -4852,7 +4854,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -4865,7 +4867,7 @@ dependencies = [ "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -4885,9 +4887,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quinn" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" dependencies = [ "bytes", "pin-project-lite", @@ -4896,26 +4898,29 @@ dependencies = [ "rustc-hash 2.0.0", "rustls", "socket2", - "thiserror", + "thiserror 2.0.3", "tokio", "tracing", ] [[package]] name = "quinn-proto" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" dependencies = [ "bytes", + "getrandom", "rand 0.8.5", "ring 0.17.8", "rustc-hash 2.0.0", "rustls", + "rustls-pki-types", "slab", - "thiserror", + "thiserror 2.0.3", "tinyvec", "tracing", + "web-time", ] [[package]] @@ -5079,7 +5084,7 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom", "libredox", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -5090,7 +5095,7 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.8", + "regex-automata 0.4.9", "regex-syntax 0.8.5", ] @@ -5105,9 +5110,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -5193,11 +5198,11 @@ dependencies = [ "encoding_rs", "futures-core", "futures-util", - "h2 0.4.6", + "h2 0.4.7", "http 1.1.0", "http-body 1.0.1", "http-body-util", - "hyper 1.5.0", + "hyper 1.5.1", "hyper-rustls", "hyper-tls 0.6.0", "hyper-util", @@ -5216,7 +5221,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "system-configuration 0.6.1", "tokio", "tokio-native-tls", @@ -5243,7 +5248,7 @@ dependencies = [ "http 1.1.0", "reqwest 0.12.9", "serde", - "thiserror", + "thiserror 1.0.69", "tower-service", ] @@ -5256,7 +5261,7 @@ dependencies = [ "reth-execution-errors", "reth-primitives", "reth-storage-errors", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -5267,7 +5272,7 @@ dependencies = [ "alloy-chains", "alloy-eips", "alloy-genesis", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-trie", "auto_impl", "derive_more 1.0.0", @@ -5289,7 +5294,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-trie", "bytes", "modular-bitfield", @@ -5305,7 +5310,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -5350,7 +5355,7 @@ dependencies = [ "reth-execution-errors", "reth-fs-util", "reth-storage-errors", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -5371,7 +5376,7 @@ version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ "alloy-chains", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "auto_impl", "crc", @@ -5406,7 +5411,7 @@ version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ "alloy-eips", - "alloy-sol-types 0.8.11", + "alloy-sol-types 0.8.14", "reth-chainspec", "reth-ethereum-consensus", "reth-ethereum-forks", @@ -5434,7 +5439,7 @@ dependencies = [ "reth-revm", "revm", "revm-primitives", - "thiserror", + "thiserror 1.0.69", "tracing", ] @@ -5444,7 +5449,7 @@ version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "derive_more 1.0.0", "nybbles", @@ -5473,7 +5478,7 @@ source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374 dependencies = [ "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -5481,11 +5486,11 @@ name = "reth-network-peers" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "enr 0.12.1", "serde_with", - "thiserror", + "thiserror 1.0.69", "url", ] @@ -5495,7 +5500,7 @@ version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ "alloy-chains", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "derive_more 1.0.0", "once_cell", "reth-chainspec", @@ -5524,7 +5529,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "alloy-rpc-types", "alloy-serde", @@ -5542,7 +5547,7 @@ dependencies = [ "reth-trie-common", "revm-primitives", "serde", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -5553,7 +5558,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "alloy-rpc-types-eth", "byteorder", @@ -5571,13 +5576,13 @@ name = "reth-prune-types" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "bytes", "derive_more 1.0.0", "modular-bitfield", "reth-codecs", "serde", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -5600,7 +5605,7 @@ name = "reth-stages-types" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "bytes", "modular-bitfield", "reth-codecs", @@ -5613,7 +5618,7 @@ name = "reth-static-file-types" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "derive_more 1.0.0", "serde", "strum", @@ -5672,7 +5677,7 @@ source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374 dependencies = [ "alloy-consensus", "alloy-genesis", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "alloy-trie", "bytes", @@ -5737,7 +5742,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7a6bff9dbde3370a5ac9555104117f7e6039b3cc76e8d5d9d01899088beca2a" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "auto_impl", "bitflags 2.6.0", "bitvec", @@ -5824,9 +5829,9 @@ dependencies = [ [[package]] name = "roaring" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4b84ba6e838ceb47b41de5194a60244fac43d9fe03b71dbe8c5a201081d6d1" +checksum = "f81dc953b2244ddd5e7860cb0bb2a790494b898ef321d4aff8e260efab60cc88" dependencies = [ "bytemuck", "byteorder", @@ -5865,9 +5870,9 @@ dependencies = [ [[package]] name = "rsa" -version = "0.9.6" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +checksum = "47c75d7c5c6b673e58bf54d8544a9f432e3a925b0e80f7cd3602ab5c50c55519" dependencies = [ "const-oid 0.9.6", "digest 0.10.7", @@ -5887,7 +5892,7 @@ dependencies = [ name = "rsa-program" version = "1.1.0" dependencies = [ - "rsa 0.9.6", + "rsa 0.9.7", "sha2 0.10.8", "sp1-zkvm", ] @@ -5906,7 +5911,7 @@ name = "rsp-client-executor" version = "0.1.0" source = "git+https://github.com/succinctlabs/rsp/?rev=3647076#3647076da6580e30384dd911a3fc50d4bcdb5bc1" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "eyre", "futures", @@ -5939,7 +5944,7 @@ name = "rsp-mpt" version = "0.1.0" source = "git+https://github.com/succinctlabs/rsp/?rev=3647076#3647076da6580e30384dd911a3fc50d4bcdb5bc1" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "alloy-rpc-types", "anyhow", @@ -5953,7 +5958,7 @@ dependencies = [ "rlp", "rsp-primitives", "serde", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -5989,7 +5994,7 @@ dependencies = [ name = "rsp-script" version = "0.1.0" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "bincode", "clap", "rsp-client-executor", @@ -6086,9 +6091,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.39" +version = "0.38.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375116bee2be9ed569afe2154ea6a99dfdffd257f533f187498c2a8f5feaf4ee" +checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" dependencies = [ "bitflags 2.6.0", "errno", @@ -6099,9 +6104,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.16" +version = "0.23.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" +checksum = "934b404430bb06b3fae2cba809eb45a1ab1aecd64491213d7c3301b88393f8d1" dependencies = [ "once_cell", "ring 0.17.8", @@ -6134,6 +6139,9 @@ name = "rustls-pki-types" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" +dependencies = [ + "web-time", +] [[package]] name = "rustls-webpki" @@ -6190,9 +6198,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.11.5" +version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aa7ffc1c0ef49b0452c6e2986abf2b07743320641ffd5fc63d552458e3b779b" +checksum = "346a3b32eba2640d17a9cb5927056b08f3de90f65b72fe09402c2ad07d684d0b" dependencies = [ "cfg-if", "derive_more 1.0.0", @@ -6202,30 +6210,30 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.11.5" +version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46385cc24172cf615450267463f937c10072516359b3ff1cb24228a4a08bf951" +checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "scc" -version = "2.2.4" +version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8d25269dd3a12467afe2e510f69fb0b46b698e5afb296b59f2145259deaf8e8" +checksum = "66b202022bb57c049555430e11fc22fea12909276a80a4c3d368da36ac1d88ed" dependencies = [ "sdd", ] [[package]] name = "schannel" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ "windows-sys 0.59.0", ] @@ -6304,9 +6312,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" dependencies = [ "core-foundation-sys", "libc", @@ -6332,9 +6340,9 @@ dependencies = [ [[package]] name = "semver-parser" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" dependencies = [ "pest", ] @@ -6353,9 +6361,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.214" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ "serde_derive", ] @@ -6381,20 +6389,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.214" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "serde_json" -version = "1.0.132" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" +checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" dependencies = [ "indexmap 2.6.0", "itoa", @@ -6421,7 +6429,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -6472,14 +6480,14 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "serial_test" -version = "3.1.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b4b487fe2acf240a021cf57c6b2b4903b1e78ca0ecd862a71b71d2a51fed77d" +checksum = "1b258109f244e1d6891bf1053a55d63a5cd4f8f4c30cf9a1280989f80e7a1fa9" dependencies = [ "futures", "log", @@ -6491,13 +6499,13 @@ dependencies = [ [[package]] name = "serial_test_derive" -version = "3.1.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" +checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -6596,7 +6604,7 @@ checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" dependencies = [ "num-bigint 0.4.6", "num-traits", - "thiserror", + "thiserror 1.0.69", "time", ] @@ -6636,9 +6644,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", @@ -6646,7 +6654,7 @@ dependencies = [ [[package]] name = "sp1-build" -version = "3.2.0" +version = "3.4.0" dependencies = [ "anyhow", "cargo_metadata", @@ -6657,7 +6665,7 @@ dependencies = [ [[package]] name = "sp1-core-executor" -version = "3.2.0" +version = "3.4.0" dependencies = [ "bincode", "bytemuck", @@ -6680,7 +6688,7 @@ dependencies = [ "sp1-stark", "strum", "strum_macros", - "thiserror", + "thiserror 1.0.69", "tiny-keccak", "tracing", "typenum", @@ -6689,12 +6697,12 @@ dependencies = [ [[package]] name = "sp1-core-machine" -version = "3.2.0" +version = "3.4.0" dependencies = [ "bincode", "cfg-if", "elliptic-curve", - "generic-array 1.1.0", + "generic-array 1.1.1", "hashbrown 0.14.5", "hex", "itertools 0.13.0", @@ -6725,7 +6733,7 @@ dependencies = [ "strum", "strum_macros", "tempfile", - "thiserror", + "thiserror 1.0.69", "tracing", "tracing-forest", "tracing-subscriber", @@ -6735,7 +6743,7 @@ dependencies = [ [[package]] name = "sp1-cuda" -version = "3.2.0" +version = "3.4.0" dependencies = [ "bincode", "ctrlc", @@ -6750,13 +6758,12 @@ dependencies = [ [[package]] name = "sp1-curves" -version = "3.2.0" +version = "3.4.0" dependencies = [ "cfg-if", - "curve25519-dalek", "dashu", "elliptic-curve", - "generic-array 1.1.0", + "generic-array 1.1.1", "itertools 0.13.0", "k256", "num", @@ -6770,7 +6777,7 @@ dependencies = [ [[package]] name = "sp1-derive" -version = "3.2.0" +version = "3.4.0" dependencies = [ "quote", "syn 1.0.109", @@ -6793,7 +6800,7 @@ dependencies = [ [[package]] name = "sp1-lib" version = "3.0.0" -source = "git+https://github.com/succinctlabs/sp1.git?branch=dev#c804db2bb19d368035d2bdf4d0963ae7f4190150" +source = "git+https://github.com/succinctlabs/sp1.git?branch=dev#15be73d3acae3718a0acc529ed566f6a448b1c0e" dependencies = [ "bincode", "serde", @@ -6801,9 +6808,7 @@ dependencies = [ [[package]] name = "sp1-lib" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14deb700469a37ec075bcf88dac3815b026dd9c4b9cb175980826f1fbb2e4e80" +version = "3.4.0" dependencies = [ "bincode", "serde", @@ -6811,7 +6816,9 @@ dependencies = [ [[package]] name = "sp1-lib" -version = "3.2.0" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5729da1b05d56c01457e5ecabdc77f1cc941df23f2921163a2f325aec22428" dependencies = [ "bincode", "serde", @@ -6819,7 +6826,7 @@ dependencies = [ [[package]] name = "sp1-primitives" -version = "3.2.0" +version = "3.4.0" dependencies = [ "bincode", "hex", @@ -6835,7 +6842,7 @@ dependencies = [ [[package]] name = "sp1-prover" -version = "3.2.0" +version = "3.4.0" dependencies = [ "anyhow", "bincode", @@ -6868,14 +6875,14 @@ dependencies = [ "sp1-stark", "subtle-encoding", "tempfile", - "thiserror", + "thiserror 1.0.69", "tracing", "tracing-subscriber", ] [[package]] name = "sp1-recursion-circuit" -version = "3.2.0" +version = "3.4.0" dependencies = [ "hashbrown 0.14.5", "itertools 0.13.0", @@ -6907,7 +6914,7 @@ dependencies = [ [[package]] name = "sp1-recursion-compiler" -version = "3.2.0" +version = "3.4.0" dependencies = [ "backtrace", "itertools 0.13.0", @@ -6927,7 +6934,7 @@ dependencies = [ [[package]] name = "sp1-recursion-core" -version = "3.2.0" +version = "3.4.0" dependencies = [ "backtrace", "ff 0.13.0", @@ -6953,7 +6960,7 @@ dependencies = [ "sp1-primitives", "sp1-stark", "static_assertions", - "thiserror", + "thiserror 1.0.69", "tracing", "vec_map", "zkhash", @@ -6961,7 +6968,7 @@ dependencies = [ [[package]] name = "sp1-recursion-derive" -version = "3.2.0" +version = "3.4.0" dependencies = [ "quote", "syn 1.0.109", @@ -6969,7 +6976,7 @@ dependencies = [ [[package]] name = "sp1-recursion-gnark-ffi" -version = "3.2.0" +version = "3.4.0" dependencies = [ "anyhow", "bincode", @@ -6993,7 +7000,7 @@ dependencies = [ [[package]] name = "sp1-sdk" -version = "3.2.0" +version = "3.4.0" dependencies = [ "alloy-sol-types 0.7.7", "anyhow", @@ -7024,7 +7031,7 @@ dependencies = [ "strum", "strum_macros", "tempfile", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", "twirp-rs", @@ -7033,7 +7040,7 @@ dependencies = [ [[package]] name = "sp1-stark" -version = "3.2.0" +version = "3.4.0" dependencies = [ "arrayref", "getrandom", @@ -7061,24 +7068,24 @@ dependencies = [ "strum", "strum_macros", "sysinfo", - "thiserror", + "thiserror 1.0.69", "tracing", ] [[package]] name = "sp1-verifier" -version = "3.2.0" +version = "3.4.0" dependencies = [ "hex", "lazy_static", "sha2 0.10.8", - "substrate-bn 0.6.0 (git+https://github.com/sp1-patches/bn?tag=substrate_bn-v0.6.0-patch-v2)", + "substrate-bn-succinct", "thiserror-no-std", ] [[package]] name = "sp1-zkvm" -version = "3.2.0" +version = "3.4.0" dependencies = [ "cfg-if", "getrandom", @@ -7088,7 +7095,7 @@ dependencies = [ "p3-field", "rand 0.8.5", "sha2 0.10.8", - "sp1-lib 3.2.0", + "sp1-lib 3.4.0", "sp1-primitives", ] @@ -7226,7 +7233,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -7241,38 +7248,39 @@ dependencies = [ "lazy_static", "rand 0.8.5", "rustc-hex", - "sp1-lib 3.1.0", + "sp1-lib 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-bn" version = "0.6.0" -source = "git+https://github.com/sp1-patches/bn?tag=substrate_bn-v0.6.0-patch-v2#8ef05d3969312eca34fa9f1f566a469022badda6" +source = "git+https://github.com/sp1-patches/bn?rev=43d854d45b5727b1ff2b9f346d728e785bb8395c#43d854d45b5727b1ff2b9f346d728e785bb8395c" dependencies = [ "bytemuck", "byteorder", "cfg-if", "crunchy", "lazy_static", - "num-bigint 0.4.6", "rand 0.8.5", "rustc-hex", - "sp1-lib 3.1.0", + "sp1-lib 3.0.0", ] [[package]] -name = "substrate-bn" +name = "substrate-bn-succinct" version = "0.6.0" -source = "git+https://github.com/sp1-patches/bn?rev=43d854d45b5727b1ff2b9f346d728e785bb8395c#43d854d45b5727b1ff2b9f346d728e785bb8395c" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "114c855c26ad0594c830129cb868552fb41415603a6133276c2ecdd9e5ef4255" dependencies = [ "bytemuck", "byteorder", "cfg-if", "crunchy", "lazy_static", + "num-bigint 0.4.6", "rand 0.8.5", "rustc-hex", - "sp1-lib 3.0.0", + "sp1-lib 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -7309,9 +7317,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.87" +version = "2.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" +checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" dependencies = [ "proc-macro2", "quote", @@ -7327,19 +7335,19 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "syn-solidity" -version = "0.8.11" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edf42e81491fb8871b74df3d222c64ae8cbc1269ea509fa768a3ed3e1b0ac8cb" +checksum = "da0523f59468a2696391f2a772edc089342aacd53c3caa2ac3264e598edf119b" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -7350,9 +7358,9 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ "futures-core", ] @@ -7377,7 +7385,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -7445,9 +7453,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", "fastrand", @@ -7539,22 +7547,42 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02dd99dc800bbb97186339685293e1cc5d9df1f8fae2d0aecd9ff1c77efea892" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +dependencies = [ + "thiserror-impl 2.0.3", ] [[package]] name = "thiserror-impl" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", ] [[package]] @@ -7665,9 +7693,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.0" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" dependencies = [ "backtrace", "bytes", @@ -7689,7 +7717,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -7801,9 +7829,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", "pin-project-lite", @@ -7813,20 +7841,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", @@ -7840,7 +7868,7 @@ checksum = "ee40835db14ddd1e3ba414292272eddde9dad04d3d4b65509656414d1c42592f" dependencies = [ "ansi_term", "smallvec", - "thiserror", + "thiserror 1.0.69", "tracing", "tracing-subscriber", ] @@ -7868,9 +7896,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ "matchers", "nu-ansi-term", @@ -7901,12 +7929,12 @@ dependencies = [ "futures", "http 1.1.0", "http-body-util", - "hyper 1.5.0", + "hyper 1.5.1", "prost 0.13.3", "reqwest 0.12.9", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "tokio", "tower", "url", @@ -7944,9 +7972,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-segmentation" @@ -7960,6 +7988,12 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +[[package]] +name = "unicode-width" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" + [[package]] name = "unicode-xid" version = "0.2.6" @@ -7980,9 +8014,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.3" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", @@ -8093,9 +8127,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.95" +version = "0.2.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +checksum = "21d3b25c3ea1126a2ad5f4f9068483c2af1e64168f847abe863a526b8dbfe00b" dependencies = [ "cfg-if", "once_cell", @@ -8104,36 +8138,37 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.95" +version = "0.2.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +checksum = "52857d4c32e496dc6537646b5b117081e71fd2ff06de792e3577a150627db283" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.45" +version = "0.4.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" +checksum = "951fe82312ed48443ac78b66fa43eded9999f738f6022e67aead7b708659e49a" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.95" +version = "0.2.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +checksum = "920b0ffe069571ebbfc9ddc0b36ba305ef65577c94b06262ed793716a1afd981" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -8141,22 +8176,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.95" +version = "0.2.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +checksum = "bf59002391099644be3524e23b781fa43d2be0c5aa0719a18c0731b9d195cab6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.95" +version = "0.2.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" +checksum = "e5047c5392700766601942795a436d7d2599af60dcc3cc1248c9120bfb0827b0" [[package]] name = "wasm-streams" @@ -8173,9 +8208,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.72" +version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +checksum = "476364ff87d0ae6bfb661053a9104ab312542658c3d8f963b7ace80b6f9b26b9" dependencies = [ "js-sys", "wasm-bindgen", @@ -8193,9 +8228,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.6" +version = "0.26.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" +checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" dependencies = [ "rustls-pki-types", ] @@ -8481,7 +8516,7 @@ dependencies = [ "pharos", "rustc_version 0.4.1", "send_wrapper 0.6.0", - "thiserror", + "thiserror 1.0.69", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -8498,9 +8533,9 @@ dependencies = [ [[package]] name = "yoke" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ "serde", "stable_deref_trait", @@ -8510,13 +8545,13 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "synstructure 0.13.1", ] @@ -8538,27 +8573,27 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "zerofrom" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "synstructure 0.13.1", ] @@ -8579,7 +8614,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -8601,7 +8636,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] diff --git a/examples/Cargo.toml b/examples/Cargo.toml index f5d06c2216..02719d829d 100644 --- a/examples/Cargo.toml +++ b/examples/Cargo.toml @@ -61,7 +61,7 @@ sp1-lib = { path = "../crates/zkvm/lib", default-features = false } sp1-zkvm = { path = "../crates/zkvm/entrypoint", default-features = false } [patch.crates-io] -curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "curve25519_dalek-v4.1.3-patch-v1" } +curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "patch-v4.1.3-v3.4.0" } curve25519-dalek-ng = { git = "https://github.com/sp1-patches/curve25519-dalek-ng", tag = "curve25519_dalek_ng-v4.1.1-patch-v1" } ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", branch = "umadayal/secp256r1" } ed25519-consensus = { git = "https://github.com/sp1-patches/ed25519-consensus", tag = "ed25519_consensus-v2.1.0-patch-v1" } diff --git a/examples/elf/riscv32im-succinct-zkvm-elf b/examples/elf/riscv32im-succinct-zkvm-elf index fc03bd27255a73641560ed460584d36a466f2f74..dbd4cfab994c920e538d9c66156ee5d554547c41 100755 GIT binary patch literal 145784 zcmeFa3wT^rx&OcR?AbflrfGMZlv*L}PNpH03QU`gh%kX9T;*_UKtu%w0wM=0(ujDQ zbTZQmcQ;KHkJ{2Er3eTNO+=5FND>6`g3{RU-FT3RV;7#%au=={CgRCCZDn8k2%6n$DBM@f27!h;7Plr{CV4Mx>6n|{^@jHno2Ewl=35gb9s=D;2(TD zlKQ{j|4V`YrNIAE;D0IbzZCd?j{=Ti>~|y6LT-6;$enk0$Ss>|x(kmr+yym8r(LZ4 zu&ta`mU6=9`{1S2Fjb`HB`{|3erYGB5z`y8uAtwqO!-)>eks~dKFaAdBd{yg}SD|S0%yZq!^?Vz~+NFY-_^~^0qw*}3aLYETWLbB}gf7YQnvi*< z5lSA}ZJ1Tf1~fCTPDpv^lcK-tq-^W}@85=&Hng;%rR|o@&4HE{w6xr+^DMXWa?6c; z#_CL~addSG0=jy)DivQDE*_z)Gy7w-WrVgd<=FXI+Qw$ZZEJ>~$GAXWUuax*x#7-( z#^r``3JmiG6|mGa$fxK%nmx z<*#OZ%Fkn*@o6t zmt)0fKl$k!^-24|0%QExQs+&^n6a}NJDahy89SS?vlu%oSyf}1M;R7v4l`ak!8pd~ z6SURi*!2?c_qYqEh1~_sVYlk;uvs8YN5N9% z6{>_^I0v4Ng`%mCGR|%EpLtcj#c&GVN50DqfAzB}zWT~3dTzb-gCdz*W?hL&*4xTF zEuxaARV!y^N=2{Qs+`gs!(Y3?NY*zf^YnTZ-M*doo0Q+0R+&NDFi&eFe-k{IR?f=Q z@JRm5w(TmjZ7clu3}cjMti4Rng|9fPEft?*c@!_aJtv<3 z%^W?ZM|T?obH4KiJT}4u|HPQd{C-3Fu6ZEae-l22XW@b72|N&EekX)iLZkD$Y<&p6 z3T5Yai<57WUOSdgEcnENPb~PvqRudU5{6I0@JSdxF-^ufxuC{0k2cKY(cK~V!#K<^*AEkUVqEbA6I7LtCL?Y)N7?>E^-{9fACWQXFjY1^-*Jx{GE-Jrks1mDT< zyXQak-XPzph1qg5rSHOX(wBI`mU%afoP;Mz7{Bgp`%@1~d!3xV??ONN0UzkLCW>jR zqKqMJ&C)>U321xjs~SI2r<@hg3%Uy39Xm&r#&x?tE$yAWZ^=8eeKLY?vq0#Owf2`n|3nG8E|)TToRK5Q!n>KXbD86!D{B~ATzi>py2(ON-Bld{kJIrg}I)ge^srXmJp&L|}DVXvt`TZ6? zme4Q7xQ9bN4!FB+4fUlZ4|C*Td)#%%F5XLfgg2R!MiM$OCk>GU%t^(Z6gs0 z$04|}_AWj5z7WW-8YBDvEff1O+Ws)@UmnhlU${>B^rdsl1NnYx%L6h$GFu+U7Hh?h zkhy{`Nxu;C*Hox@A$^-)tD@Fcbooo!{-Hm|^e^aJ?6=vzh2E=g2ivZej&HlV;a%H) z2W>xno$YVkXy`e;h5p>qYCEkLs*$!P83$+P62{{BcWGkIWSAcrzC1331|2De-Ip|hmUkCN>chG(D8I~Q`1>I`x zj^SZ!=TDi~r08>_6Wco;-V#oVO^OZf&g(&*K0Z3<=u_7Aeg{3T>ru92qvxx-vof;x zQLQ)9y^qMZv!eHL-?|K*WDa%-J!0d=d_1kxw*MJgssEguR_cWRyR?eE`H#^maZafz zdeyv+vDk|q54+kfdvrt}J?r9Mi7dq~4tZP4c(%U6JF&y?D|t6l-qrmDnUuAEtsn57 zcV${mVdsZ@%P_V7fGtP4u#deH$jjK`5gXc*vDAJi^V{yq`Xq^Z^k0ZE3&YppWW)%I z&*RSPMZRnmJ`(%G(mETz!nY_F$mO@pO?4_B&ausQ^lPME`8m6Wog8H6eLGeBFN5%; zt<0xqs^rtmrP38Ddi5@zE0p<@#pu;K?7F^Te{GK8%vxz=uHLO}Xt%6`y8Ed|^sKaF zo7S~%8MZ@0X}dveA-BAlw3k#TeyN|rFD-ji``lyZ>~BT?Xc`5+sX|AN+C}t9+f;#_ zX{%1`mrOl&eNG~dd4%RI*LlL4WLe+R#0c_QSvyv;Wnx%S2Zf zO-S#_rawixL3-i%^i)@np8gTGlceVdcH5S2`JXY+?atbX=LBg>o_6fZCZr|L9*L=ij}(*jd@9l0QkS+w*BV`FjtT zKevtKFG`H$&m)HUi)ur+J?GpYe|RY3*zLnohdZx396zw#b{D>mTz?5W@p+Rmz;FIc z2-=09A@&M$e&ICJNv93->3U?vOU$2*ojkhRV*cd`pZFGIF1DW1dgb98c6=LK zgE$fIv+a8*up=)tNPAo6Gwqw^UG2=jNM*25> z%XD;sg?&lvBqrsjI#K~+wj+(`HfS{GHkG;RQp0&)f#HASRwFw2 zX(Mx0hw}gBHf-T;GdlR3a^641@V|Mxkr{l5boe0B9TNZFoZoC_2H}VKHKzFe$@zvU zu>y$^WEy|Ndwj{#75J;oAuSW<*Mvk4nw3UqtSn5<$G%>>LYbA#MrOOD*B~o%jU@Jg z|FxAy^p#vKH+fH-1>KL{cO&Tk$`{b(FJmLVgCXc7Y2IcuR`TbHY34 zd&{hE_~G7_-nQfsPTrP#y{&)xm|wW&d5@TxGsW8BuPP8ZgRD)=cFSv~xsmgx(cXN= z7Tzse!JX=UNg(c?7mOy{9ABrn}|OPj@3PO?N9_pYB!}j=Nx*<6GU+ z9Q^Mr-9O^rzJJ(Xl^1dfpCfiYWlntMluHl)^>wvm|YQit#rTcqY*f$FdVpfI3CY~F18m>hL*dhOx{C&>jJx z4B8X>n64N98-78~6rlf!e`=Yfmb!}Zf_HrKJGROR-Y2d%&ori)M|Bq_tC|auO;e)8 z@o9Umt3)2{Fyn>aS5EyNVsJCZ^eOQ%XX`D7Kl2-meH-=%vZ?e0Y$NQEduKCl4;a4i z)gZjVSc@F-OTVxG&%8RQocFyCKKhQ~ZxtTx(EKGl8t^Ce)~z<9*Y?tfrE1{HEx$aJ z=M!gRi%uhMZ62g^?0jeIYGcEc^)sBU`G%{%SE~($>u0!y=goAMkXAt264LZHY5An( z*N6;&E`nDq^5t2P^~`_#*^lF69?jgT!49N-E2gOACR;^Qo6xzthOrIRz^t4D8H+xo zphFm2GaX(O|8e*vr)7$agCTN)ab_I`*&jxi;I|%X>$1ke`iqWH6w91WtR+@_g7nR4 zXuN^Ma6%2g3VY+PhqKD=A*&$v)!TE0PBc8Gm96+X?6T3eLUe>>$F zkNzo?m+#vtkDgY&m@)sJe{=Q9Z2$L3GLpjoNq#SAb zn>3p=J4M>9#)dpeW6eQ-->Np`l9qcFm@FQJ@_zm${lmv0$=(hBP+ z2Mwl5erTY-p+OO8MT?<<74mN_5LureZ}~p@`NW74&FbdE|f5FZmR@MR!6UWKhh)={A=2<(Oe6a~) z<_K+d%vj=ldY&d0OZiMHrN_j{J7d^y>0$2YVe?S;#xOCUEwT7b59B&aT2yq|V)_g} zh)i!oT&A6ZAcnP3!8(_I*hDmX(ojC(F8LndoHbF$=qE7Is&u zS=C&ctg0zBk1|S`A0_D2lH`J#67y)IBzbiAOvf+|6T8bTH}Z8H555+DcDCM*F9RJ@ z){f}1fG?%*nVmmmuBMo)*g01*7yqM8$^08>pOz6p`@b)3l=d-3KljAfwCjFuR)A?) zDjPS*NWD5Or|xIyS>$Dni4Q?rkm(wy>swA9b5mlaDQH7mnX@0#J_qqt-?m7DZn73& zieH_)MEXO&v_FTuNA43FE}LsOtH{@4As2{GkNUnr*?=dy8juB{_?6|vj*0!s`Vn>N zG0{8|n=b8u&f0erzJt!AK4cItPhJ|&w~IukXY6)l*D-3togD|_mkkze;GJvm;eRJ* zsoHP{@2?yz+`v0O=Pu>S|JM!WXY6$`XIC}lx2dQ-7;~ENi+Apv>g5>t45h`H)V7ej z4%)Bi!fSCi8v3#>$ZIWSs5C*?&*C(bAM>D@;geDjD@x&w9M;EdHSo3E zeg4jBS<^1`b5tmP{m?ugTE^2mr~CM7@#Q=5)3D{gx^rG~eh%|%2s>*9bB%WWHU~LV zt=wjtdisZbI|sTc!@R$K*vDq_#kRRGJ)GITTWNm_`^fp)a+SQlZ&>0E60gA4!DbZ7jD+Bwf<{bUp7+L++`WQkS19(X`R@)^sQvp@V`B#soSj=wM8sgMtpm z1Ue|_pl!X$=}-b461gMe;{29&rXp%XLdIh-J08W^b}&}r!;Bk`T*f0bp&cQ{gM8!0 zBNzKK=Uv(nVQd(OWvt76mAJFe@@rPHrrAnjToyFVDOG0fd}!1``-W7~@&dkrh7w=c z&@42Cj>{ramhTc3Z?*Kg-$;2W>*UPO_EE+r$Tx6@wNLU$y3CJ}{FBv}q&_qEB3)n7 zx>~u*ht!7U#0GLcr`#lQCJVnWcdgoxq>VY7l-ojkTS&J$m79`xPm}%|wE-QJw6-gk zIlKYBOy=xT?h0w2%n94ruwtZrX*F=0_1gbQn>7EW(z;DSpX=2?tMw}W<6qal^rvCJ zx%ua%&xd>7Hsja3_=orvTITy! z-5=0Z*|pJF4SM2DeAzj5Ir#kU$($qP*Z>}Ti{k+ULbXu?bcrR0c($YzqLo! zc7ys-&j))RR9xaz$b-E;_5`*)vT?-jSKmeF5l_XZ4>yO*Gn#FuVHtki8f@9G{AP(cPxPVH7#~{4q)qnIOyWbUF+Q}8!6b>fOyWbMH%5JE##MZ1 z_HT@d&18LOHO7ZVmWmJEEI#r?A6kv^p^?MrD7V`f>qq;)!q84JXxt**??T+6&VsoW_mE9-w0pCvTHrwizm!no<*QkuOEyTWon`K`^rn5Jc zN%e-Ji?<*THmQua0~?#UV6BTqmtluuoBN@4qx~}5(z^WLU#?iU&ur`a2g{XZ%h`ss z_wTRom~6TFf3RFETQ2<%mOFQ(fB#^)%SQSa(*5fgI}Z3b)xTsMkU58p!%|%i{$j3% z^>bE6{<_nei+yhOv)&sD_N2uA=82yjYAhBW6B*t~{MKK-q!?RCm(9xc*OARd$mSws za}ly)DzbSBvUv)!c?z<53US6Mq)#DzirDr}0dhF>h#|Pbd$PY$O=7&DZ>-*6ohnie_||Rv z%{KZWF}F7MEw=uC%#HNj(u3HRY=BbLSD?D<{4enQKYkoN#KlZ`D$^ zhVeuP+cn{=|9_6D^)fM|NV7rQi8gO!za=sA1wGgcFW{#eqx<9}F6CAdH;<5BPWrqT z#1AYo;mu@uO%Z-z5&rfRv#NOt{`M5}C}Rr#b|LE|$KVXIR(`Djc;dYT`Hbg!Fjx zK5A8<7c624qkL7839rK5=qix?U(s++EVHUNusidy*~0mz*i25|>JdJ2%!<|6Y|qkv z{MYK4=%8Nu`9R2xd>?ucKOBii#ANQq_UOH0%fkEoo8B^=hAUOHrA-kB&~3sW+-q)1 zhmxE6LJszFH1}y0^^rf~MLh3HYmSAj@A*AdjbtEOb&KEoc2uvHm|RUxR&w;;#^saaa=z=7y~I6=!J? zgC_$SJ@TF1zwq)qjbo?GyH%->S)X^a*u}CohwL`ubJ~kL&p;-39VRmP<}vbSfIVf? zMFwLx^PafB?ssf&kT=HskByAYpO8((5}PsG!o|t9@C>(Xvpml-+rx8YpF8i$-15!v z1r&f3mEAFM(ju-{qa?Yzf1 zJJAEJUtkRK4AKqK4boYsCcTRE1*9*00a}E^i~)LTlt2DWx8EAq-X}RXQ7HUDUivX2 z0}}oGPyf61y!Wl%Tata2(1h{nCNDh79^rUvA9e7*=%i!x+&&4~vp)kpHHsDcKJySA z)od~kO~%7S_J@%DA!NVoZw|}+@>%a>-IMQbc;wNL*g<}paiwm?6**#v4piCm9_7i3 zX4bSniCon>p)eT7uD`t3IJ#w*v+mFS_65{ebvJZd&zk?EdjG5JA=SK9uw%HhP_6WD zog;hSZ+6)G?%%d=n6oL+RraB>x3*0Bs}?x7hZ(CDczL~YE+J+&B^-|1`HLKjHJPg0 z(aRr!7E0tPa#qShD_u5LDQkA|#2L|n!X-!eGp|B!J}$m9{19f3CAM~T+VImu!RpFDk`u0KTmp-Jm6>j}|+(rYJApC{=l(px4^XYNox={=LD^Pc{j)Nf8& zf2FRU^xDbOt91ROw@jYS+)TFhnr5WO^z+b@7IEn4j*B8pzpEEN3B4Qhtzlo=sVN$If2# zZ?2ii%{8MdZ#JVhUt?rKE6wQfE6vRJF2)bZm3?eR<~Tmok=Zq-y(>ED%xnq@SL&UWa-IT6%Xxsh72!9ezIZsN!cvJYgM&Ok%DfPuug^#}Ot@ zSF1X6(1FClyT*e*GA??zozc4ny9YhV(Pdi7A>NV+#NNU-Mi_-uWK^P|I7!x zc>48PaXeWUf&eb7?H|=9{|BrdzAbg)KZ^97`f2GAkV;YF@80 z(We;83rGta(G2mBWLzcPS|fVLj~UNTC`rqhUq%tM7||!myZpz7xvQ(gS$-q5 zdCEw-%-1M*%da4BZAi+DbeVgU8Oa~uGv7w>nOle8GoMEBd(4UW8aqk< zADg9u@qL4~Os|plN1vo$chL4bpw}?;Kj}_0I+f3l{v6Oh{GyRL`9)&w#8J>jBXr2* zzF3o4`ASX3WDGPN9rV%+!#8so-yDg@g)(=%R+G8oKuvV&U9sp_hE=BMkK_TX=p4qv zQ3Hif{wDcz&Tf35NcnFaF#S8j2jYEGRc6MwDX$Fwqem#e=dIz)3tv~6!~bYFe;kI- z{%B;vzRKMBDS)GqPLixl4$HfaD z_@FcMS`|%gX5L}Ppo_Ge>LB*YI#jf&Rpb%)?31oweHL9bX*%a1iDi)v--(=?SRPv^ zS6{5V-Uz9aQxKZT7+(<^oTq}NWKUZv|NoqY(C;bV(YKj}S_r{mjFe~9{t?M%}C zvd8gx>PUy*CrigxqyMDC`;(=YOL{NqJ(H(LB;7(+gw09ISL*snubn&{TafxmhhHYE zf5GGI_vtm06+Na;3`cZNX7L(glRJkqJJCh#uQ*f}trg$yP+gS!kL#k$F2Ty`qLt{0 z{}x>|roE%OXpQ=>>LT<{*sQ2g+J@7?wE4(Ca!aac#1VICJ}Bj$`+o>aN4bkGwFIIbQ4D z$8+OnY8<=a=k7+H>%TC=u_H@dY)7vnwU9N}hur&lwilet`xjYTQeOI}6}(^SJ}A$R zeax{tzVANFbHgjgvW~eK{E!!Ets{@%hrFR%z_))4e#q-M?XvfoD%SDulp6huVdav$zK6}u2=o?W#n%GKi3<&mFJQ_gP-fA?}9$n zUEq`Fni6n64}PvU_|4Ox^U2_Y^Rml(3;bNK{;qn)@r&T+dks&}ciRI$-%DS21GM@g z`1xM_OV`oInc(Mp{e8&!rsu%V_e$Pitoxn@pZw*g(#|h{pYK(F=qmF37<}?fKL*U1 z;1_!J`{-}OL*N&B{d>Sn3;hc{`>9#bDh+<2SMu3UK<7unFZ8NE&U48d;Pd_)AL9Mp z;8XUCA0YoN;1_xw-=dxEzXHF=>#wD**5|=5@=Azt+Vz)%&+{{kW8>rC7kSk?PJs@y z!7uV6XTgV&FM?m>HFY+S{|NAlyvDyu9~;0g@)~}{IJQ3sez6zX2>l1Ag3t4T7=6DK z{9?~uTTPw|!7uhYoY}m;1ALw@hu^B3!6(m$F9&}G_{Cny1(Y3n82nzXZR;i=1BtJ#Pn}vi0m6 zZkh)EEU$GKSyVCue4c-gz2AQh__MsmO*cZrA@FB;LtEgnNH_Siy!x5+rQ=rcXL(J} zNgp?X&+{xW?K{CIf8<*5e*yk%FS1|?Zd-=SZ@KJ=kuX|dNcU5z5d^W-*7SbbG*hqpQdd;0Dq3x@H#Qo z^iAN;@tPWGTgMIH&++Q}FQ#9wgFnY>KN)_G^npLeOTRvq=M?yq9e~H0ZUrCA@(B28 z@DKO;`i}xL4gTSt{hjIH+yegLUdMjuU;QHZhkLEd&LIEy!RLL;Nz98*@DKL}J3dI? z&jSB&uW=gu+_xS4!@Z{apkeD5z%TRCSAGt+^aqTxfgjD{Bkc+S4qECgJ13q?t@SIXM#_jdEg9L z;Fo(1A3KM#_28F#t+$CB`yBWYFY;IVi#)%N=l&0zNnH`}BVI#3`l94x;Pbwmvh~vb zh?hPQxn$oAe#En%VZK*?7W|0U^p_g)zYTuGYxLonz8vr?z4ZCak;Z!PE4{}1PoVD} z_?4b5b0i%BztS73V9vG|fM3a2oDSXY2cJAIBD>h{^dQguQ*8P*2mDH8J9005BluOG z{jc+B&!ym3dHuWL=RT3oRbG1kiSR}h_*Gu@zh2GzW5BQS`Zm$W#=F6<@*>|U1OFr7 zS9v9$Ukrb~AN(q>={gJgZvcORXI~6$)9(X+f!AJy?x=nS`~_bBag1;OYv3>NsymSn z_I=pjk^fA}Wa(+mD_Uc*Z0Z=VkSabEk=$kM^?Q7ejEJbyz~!*4_m?KeM)HZd+?9*Y#07%KMMRs*b=<2pAY^bZ|F?= z-mw|{MPA4A<-C{qwaDx9tLWG7z+dDwZDP*azXX4g*OE00siq`>m|s#`jfyv-b+`2-}(yp$9vU(MCK3nfY0-fglCQg zpZrUa2~E#}f4oZyR~; z=w*zWeg{79KfaVU9030W&;A@bsH7776TH?BTtfa|f`5Y7cMs#(S_(eTr!$uu&IkWQ zuVEQ|8M*@e6TQLP&!)|yA5ZkE^C(;LCivv}PsX}Q=I@DK`_Y$D_FC|H-vr&7W`lpC zSHG9J)Bh~^CwfC)lJOP&dy?0B?=;?@0RBnd;BNS&u@C%{yrGTAuE7t2e-d(-`PKLv z@K5qe(&tm}_rWL6UDwjDkAi=a*U&7o<$Ul@^7^cN+HeE-F)tl0;r)x?$Gq0}Q&-6; z;K#h`1<2~5SHS1}WsFgY=*O7XwBu9cUk857>;IMT*w?|2d4sP)&-C5k$GnbNwX|mq z_@{W0TNUp`{-5Fvody55{|@|9yuRNtUs|idKgFx=V~ipm_@{WS#ptH=Zty9agRZRJ z1^y{s|DUd;zkT4J;x*iO1LM02{93R2t~22IY2ep-^#;6Q-wl4PXTSOx`uGs|wdizg ziR#nACx0$D=!ge+9{MUgT=E~_^Zaqivkd%NukkSY*!pGg>%GVcj8W@M@aw(w<>8mPAr{4=rbPhuQD20qVkBKIO+1OH4fl7XMA7lMDL*I>i* z4dTC?={5Z`b0jT$2ha4{XVAwE@n6XE$Oqun=fFSH>p0Bd`6BSo_8MnUSM_V)pY4^L z$hdT{SC{9(J<}PBKZ1X@*Hj5T`>z9^JSpZvMC|{wz4Y`W>H8DlpY7S(W{`ga_-A|V zH=IYFlfXX*o8fBkuLA!ZZ)h2`ZMp>fbG+74e9yGB{~Y9PnCEYTe~vf!D|n!_0Q_^{ zlhYZO1o*r^w}dw2gMW_K@oVHB?OfM;uGhbv_xOqT@m&8J@?`Ks;GgS7UIC~5Wbn`R zh8{F&=K%QUdg%wT6&oG}|6H%}{bxekx!|Ac4NfC}!#&`ii+@C4n(hSud@nr}9*(>p z{PVqrhwI^)FMxl(*LXxJ`QHHld~a|o8HRy{{}u~ccH)VWgg_YAToJ7kW)kVuwUZ!N1Up^oWi=3j7Pb^d5Y->Q92t^K5vv z(FLFU+sn!SQ}8eJN;(NfB%^cvewrVYn}-{1|g&)-h}68r|Q@kr)x#}e=xyunNk zv^ov^1~0OU@l8j;Z}3VkL$>tY34Vi@o(1m>egpgluXPW6g01o}&kYUK+y680FZTK_ zUPPX6gMYDCJrsu~mEd3O*~`y@R-#`n_8NcB+)Rsqcd<9qWk*AKO%qg zhpB5D_?LK%zl9DwKge_c&kqChSKwdbH7r05ROf{7b!|3+pt^H}V`= zOZ!W{3O?^|gwGpJ1piX6;eE`b*6YFNeII2Tp9i1k4xW+85A)o572{t05cr?)`tSb; z^b!B%6Q2F>_4Iuz?f-;VGLJbjcq#b2KN6dy^<3~j;SHTX7dkuvKF?><-}*H8pYU2| zgWt3Te4hXIS^EA}@GtY)U!$GvbHL}h`f~DjfPa}6sm0bB{4w~Kq4(jd>X*R3%u9a> zK5Pl?4*r#1!-t^B&`$7qUN)ciKLVdTUxsdt4}yQCSMo#p*xm*HmEK_aCA|L{_&mRY zo!=q$^OfGvkFf*$M87n8_8l_sy1{Ssn$CnK{SSfP=#~5uSy6u-_>EqB1eq{c41S|m ze}K8%@p15Zz65#RApT>cm;NUGE%|rw8@;|Km^+cH!N109{1trLe*pYzyb_yv+WKqo zuki+}(H9LX!N11qOCYyPHiFOd^U!2a%4}ikdwC1 zhxb1^pT2Ad|2nV#kuzw+GvI?Wj1KBE!M~0^PSbN|UGMc?(=)WcZwmN4{{bH8xC;F1 zz5dnkaQpAUzut>~+DP3;s=B{U4DJ4Xxnc?4^u1d2?@eCGX|!SR z!{9f0)i2WD>Z8DK^7?bg6Il*E&({lWKLmc0*S;T~@B0?`JRe5>4io$)uknkQG8T7& z-{keZfSm6y2EWOd{Z7QDiDTYC+ETEWWJTNP`eMdg%ie)q!=3r; zpINnH7C1`n|QR(eECP-h46p6mpE{%I&OYe~mL7yN5HoFE*mNvy7;9 zKkrzF8hK~UG&1&YDcgFmEN6A}xsLCxIrxtAWpbu8I^iAn+1p8TXI@os~ z^!;F;IbZU3^f_aFkG%*7`7Y^!S5xh}yQ^M>G2FOVDsiyXL zW*ebJOR%2?9yqlB|3hQWzUjYf%x~{yemn|oCXBnu+UJ7LjHkmgJ@$G%R*yY*Z!q@k z_31IA|9=>J=2W!6X6!H5XQM{OIodSI*nbgzFI;1|3-2B`{u#zPx?&l77+wmE2 z1GlExFUQ@ew}+4~morz`8?yK+6}6YC=;C(Pa^Wp&5dP|wHDcB;!^)TQ0C$Pp?P`%d zhA!uOqSgsUW^tXt`G4bJxmIKHa`Ojp9FpwmOja1|TV9hb-#no_d!Ht@J1GD8jCHheaPIy|^` zv)3V$dT_kF5gfh8p_#ObL(9nihNEj#=624GZ~5jy*_HYsvYmZ`+=Cn~_yYa;#=$h} z2kK1@=d-p|lYTT+L%Mek*(F*B)UhorPKRR!(*`j~dIpIG)UaL09K)hhZoCM`u8dlwjUyP3zFgO|N^@x$%ue20B|2ls++=WL_^ee4UEFu{A6%hFrdTV@p6Q%64+bMI^7u&(! z66UUvxBN6^tG0&BN_74Fl&%|G=KeM{VCTLu(6apvDI<218`;Kq_6Gf2xFtmS9f5t4 zGP8Eq*J!gT^pm}?V$aa`(Q^&lJxt$I^nGV6zI#yW2;HFcc-I}Kj8urZdzoZO!na^^0xvc!n*dxdj` zD~C-t7aL=KWz`Y5d+$E(?{8#+zegh z+hEV|xN*P8l)W^9Q?`+Nz!I8Q;70>n&Y-{SkGDtq{;qq?-+7O+1-967G58AGi~YRV zAdHE@CoFa=x*45RQ5%lWf#0~#+dLBed{j6T|JqU9)83`elxEK@oNQLqfVYNxVl&oo zMk1Sc^-+1|g0PunKWp;HTGJ^I{!!?=8s*QdLe8Tfbve1Sy~cYLPKexMdIav>KT6 z0QS+e8G$-@{8m47pB4A)Ajx3+*jk4m213_ zd;>*a*l%*anRYPevDX$LSFP{F{JgLc|MCxQe@cw;ETE4G+FHx~K_AKXaSJ$n%AtE? z3;fq2eF-~L-p{<+i0#!Di+}lNp?J|0Y~nmMF#Vx@`W`0TZZ(Jf>3iAVrOy%zPvEn` zW9)yV+(6^c_DPxetcQ>b?9mVUI!o$zW<%rEXOC&e8rs39JcS&nGe+tkxF>&y&`{3Z z(4J7d_zR4^!QJmdW5$X*dSx&E+AcX))YYx`pQpkif8KFF{(J3Nil;3bUOx1`5Y8gS z&$e^@7GxghRO73yaI!7U9Td!MWRyN*fb0wG0`?vTZTg<TZGY{S>Pl>$3 z?;wqN?w0lHc@r-RhvmGC*~Pg;IkRA4W6+-fOFcG%HSjOi9_W?DNq`yP&~L?DWZu+_ z-bFHkEjR;rg}JZy+xzI>p+2I>@$gLUml(Nc_;EvM>yO?uT&w9VcOoa*6Y0#XV@%%d zp5dAm3-AC*_;7MeEw=+umV+ zbw0YTfOF);@kM5=lRduq-1pqJCn@`e^A3}HE|5!{4yv>u|<+n!A8I0ISZMhVQ{$fS;L0`ZUs~xn=985i^)-&QCKZuuIUNE-@M( z-5~Vyg@*E+{aq1%3eSA}FyHdwch-FQ$T?|~kLUoteZI{K#;$Ze=K?vaAaM@vJ#`}n zJ}RGueC8Qp?#kmGAMW3Dt6mBR=g@eTJL<{|em8|rIiHAOYa6ffdE3o5Y#l>cuwH*d zWA3#$mb+F3_wEAtiSyIhbJUR<&Q)`^y6RERS+D0V47n3S&R=(P4*U5cH}X=ETlspC zTg6%I1;$kFh9frFU66!_*ZxxIn%I(D&@K0T<|dEg{?7%?xn@;&ZnDbA!}iZJk8aLO zmUriw-1}r!*5oHEoAZboD{m2HcLO)-+3bM>D%+6 z_^VG;AqS+d++jJ5vrp%d?{f6=XSnC}3HE|_b6#)cjF@UP7dD5ugFcsj&yU};7<}w$ z?l#V(o`?-_$4;`YCMSNE72zGarkOh^v1^K`^Kd)NJ1ZIK4#yLH$0Z-O<*rUEIltL5 zg}!2!G8XaKyAIcS5Ia4v;Sz_Nf>~mfO=!#Yx-GfZ;XeAzw+=_1U4|yLuB_6V7IN(jlAHy!0E@%42zmJ^^ezAYZ`>qdzU*z9@Nd6PS zFLDlf-*p1`g`yiL;C~SOeCLq&T^{({{d-7%tHI|!;EC_M7J<)wx7_1Ajt;RX_}s@h z@qO2^;D_{YEsf8A418ut4AjAv^X*c6h;A?p`0siADe)PICslUyTR-eoE`GY$zpY5_IDE;sIV+JW zK|gon_ZXIpdAtx_l6!V%26A<+mPuWU%<`HrHUV)`BP@5?A(xT${O&>vc3p_~ZRqrs z)&b7v4Ns6~$D-%=!`o(HD^VVwL1cD-tv=wEeI5PrDfGza(I=~jtDHgngWtYc@C0#_ z&2s5 zfvzdN0RKuo^=;~!R4j$rRlJ>@U*Ofg>o0v{N#@X3s zc^!6)HRc|Qv305t^Oke7DiPfM9@xLoW7OsaPsba?e>_-^Dl|9r>b6|1IJaioa{t0> zoP{oS;a_Yj&UDX3ucPO=>({}~*L)+ocon>p-y9a2V7u%4NV2?QicjP7-mKp_oUDfq zr)?Wfp0;(EdzX~lH8k>@PWrc>8lT1%p$(}z85{1!s@pHNh~Ngi8hccp5At5@yWDRZ z9+1xSmeqW#rO4w%*`#>fW!voY}U9wHfeDFxa(5U z`(|4$zHWt~*WjQze%BOdtN37?RhteEZ@o%6S6PK_c;f+Q=T3Z0D|drD=arGSE63St z8S&YYuUGOF>3nPOQJ1ud%^c*-mUAsBr|%gJJ8OtfEW!4-tf@hnZTvr`%oq$^ZlrFF zLHr}zuc)=SCVmA6rF1_Qqnla|=-(jOem4c_&)C*zNEXca`B^9GPOSThMZGjl=x_@hf`6BW)Vfo|oRMJ@D?R-7kEg?->}^ zF11L0KQ3q+zb#`J@Az8*v@K8CX4VnAL>7r$lQ>TH?E0B97eo%l8@G&{XFsr^U?ctk z{zhAiN^T6JhkKEQj}wmx@0R(uUBNRIwY!rQ;oa=#djeaoGg`+vpZa!L7cb59_A0pp zUU-6d82MUuv*$6+ns7+xYy4?HYrp+E-(VXuBH(xK|G?f3?;2CbF6!9jmE3SY`KRcz z?VmrMy#wKqvRS=SCG#d;EcR#5u4JTTmv_WDcPR`m5nLgGg2K$%? z%)=CZGj~$Rc*&W2S24b{zZO|D#34#py#aA29dL3UueC?y_A9Nq=@0F1HqlF>Dh7? z%dzfazV+;JBOCWPR?8mla**%0xeH^D=$B+&>P^S)d7HZ(_Bi%UZxch>!#$VzIu_F2 z`=++13b(%DqyO6}@k|EqRRZT<$Bb=PnZJxXt2D8R~$3ZrNgNqsRC8 z5_gMGhs1lJr_e+EPV7N+W_W+VbBP~8gV4b?h4*=Fx?cJl-s@X89mvMPiUS`{{8af( z&dtPs;p2+heg0x%yxSHNbF}ntfH_v}o~%53WL)}P7V8Aq5-BOaMc+p$^C`>woygZo ze|LfTq<>q%Nwo|GzdPCWPr?^td12sE>&4F&t1j%9k-HrJ6?^SJvVHskGUK(ZJyFM) z?sF?^_X{sDp8MPdVeA+BE%t_;s?*;&sndN68rnVkL{4RKME}3%Z$mQ2?M}wVeA?bE z_L&=c8Co(HiT2&`**WDt`daLK@%cyY6Cu{LPmj0NyOB7=KGvc3bu#|k$#|TMrCZfQ zJISMMqSO)O-{Ta}{_-pLx>aHDYbmpFkI$XaZsmo09jj-rW7qESE%aLgnNioX*Q^Tf zi(mVlqIm9-sb-uM`a3Hr^dTg*D;epf9glP8a?b(o3_Fml zK&M8KGZFZg^&#Xk_ErzP`2u76@&V=(zq!$pl`TsAt8wcpV28E-Lk@^t%-)(@v#kf7 zmGLhYZ0fY|>);icmzC5Tk$QVcOHpr~))DX-?IEq~1?msxg>PB&MXn*2_h)^9<5?TP zr)=48Mr!v zv13B)E)+egNDzQvf3r!9rQf3W@BiFP0u+r(_@H<({~9Z%}i zyg~U9cQ0J)c zhHoQw;TZodF`~ekF@nmfltO7+5Np=#D1J@9);`?+e++CWU-d-TCQKY-_2jNe?z|L)s}tPd&d3= z+jfq~FLc+QK)<2S7NWZ>Y^O5jt=Jk?U5Drv55C0rI9f2pCvhX?`-QK;+Z*VOGOe!z zyCjT$qn^Moc-X89?@gB1Vy~b>UT({ehbjuh9!O#fj^HkF; zycfGScj9=7&4|7JrDP;MI(GVZiQDV384r%3&lrkd9Pk*tAvRm(mM^-?(V?rc0cnHi zqrf(dS=lytnl>UYMTY8jpvOekVgtxH`q-2Q$BiplDth*sbuD`Xeo?0Mhj}onGvN1d zFvjZV0d|YnIR{4LM3p=TeDfi(<#bF4JIS3FMh_u3koj7Emx*5LLC4%Qj4mC~Pq%7W zSJ#u}SG6}=|ERo>x!bwq_+`lO$Mn6FsVK4TH5>GOl{0U+-%o92?SVPe_W9$n)mXzo z_Ge{;%x#fNe2>G+`WYwt*fbI!bJ99Srsay1DUFKUNud|XUo91oiC(pX*zc<$6|C-R)=anY;9hLMBB8B_2pcbQC5_PYO4*+55c zqHOS6qVoGz^X_II&1G-%u_k;P#J=mSH_<=basN2;xK_{WQ5nG84rD;@St6&k49NN& z%z5nEtPIHd9{6>{qiXkMeaSP$H%gXg{g0R1h$G;CD81)9jC~PKvZjHq4-?0fIJW-n z(0@#J$2J@)yVZU8r}&bhe|q+coSLLRA9=6-NWXon?p$cHFSzes#YDy<-`|oL2R1SK z9yu<)q@5aP3yEx#G2Nc9)nsx{cmz95+uNqwH*U-&E`7*&kNnR1U3N(ShJ1-F`{obI zwO}12Gwz+MW!;g7zB~1}iTHnq{JU)|&SbJz`jZqJ@xA%^Wa=N)L&(n2`$wT$*sO=P z*x>PJ`-xmpWFD&`q%I1sxNc)`Zw+Za`81YrsE%IXgKCa$VbPMYovt=(%5c8^A zLwUv-U9Dw{`l?&DXxN=sKJ1n+VvR}1#V*XY>jKAKDs4I-`aQc(<$J+*;@{Dg2Z(V^ z$1h<1P$xF1?4JwjRm-Fdu>tm4;v3KI&)2rK=w^H8h1hKD=R0?V9|xHPKOB6k7qD~k%{pw^{HzUW_dXQV2bNwFQh|M9 zr*s`YW0URE@3L4si4)i|hJH>8n|MT?)HS%}>ydk5{3rQ77vGFFh3YTT-?kl$QEvKt z{eP~+TQ6h(B{mQ1V1cb48d*Df1>PL>|Bxs8&Q*9U>j%o(6Jr?IvtOUc`x2|sbgv)L=V^{8r=P%APD|+@NE3g~qZDw4a&@o?0OP2TSbJYip_{*Ee%KUd6qkpi! zwPX96otvkK%$N4!Q}}_simg0quhJihQIv%bWasWZB1f{nWAbNcG8&_icmO(*wfkem zmo)=fApUD&goipM_9(t0b2eA(_+U+x_&N4VcFrEp`Xu)e(+2Sa(HmxadZ*a4=BB=# zehxarDp5`cev{3e-`jhk`%Zq7ILGFcqgWP~m`9skQG-tKM%M zq*d21z#rvx=%eHR_?Gv{+;*hD^EMK5K;FRb_!Yz+MrfY8Pv(0-^Vm+b>Vu zG`7CU>}*%o?sh}J@Z$&ku*6Wg@4BBD_;hq-|5eIqv{}#VIl%9vnfMW`(Mi7SdS1V* z=SjX^$;WzL&jF{kj^FcZXRY2Q@4<2|wv8XouIII~p4ZSXd05YrGTZq7V41NPF22%e z-5MjtI#Y@@i&g0VJp5)^(_0fZE6$MTU`eX8@0a~C_N{c$KWKxE@b0odx#OMM>Sot=W#6dyT(XA#j%&M` zFJtEaksqb>zTJkgeiUnYazFY6J}n!G$LyhRqvI^&K5?v(+w7x6-<4xqw}rLs7B6Pa zvaOa_XA5io$ZPg_39kopOMYX6y?m=BMqLYU5r-ibt@kvKiAB;T9c%FQZ;~WN=&aj< z+!ftw1iCf(yRq#b+nywGc)cD%yT;W2n}4kS1Z79Zd9wOtztA}Pjip)Xn>vnhx{h`Oi3OULhS9y6UI>#De;DT&UvK zCpcf!spCR*?H6Ig@*Col#)ZbU-yO40TI(!yHs^!*ZB_h?vypjeS-0i+uC`giThL*q z$h!E--Wl3nyQhtHW|4hrhSr;T)`PzNC;A4h>=FAv@e8pPeB!IJXHfFTTOKcVQj54N zzk<9YYhH<;iTxnuh5yHt|7rZTupNIc9Q>|{-jl{YZO*G`pFz*N#AC7-Q|vSyD;d=j zF@7%@`!cc7mbK~lw>XDVCwgCTK4ptuzZbsKzDl51zANnv`V_OJA5xBfTO;{=u}#OuTLPQJ z+SDm_T-y4M_-$D~;v=$eT4<=-6~tlwFp=Ni&8KGmjax67XiLc2v7G4;yKb^G9opu@ zrZu72j~^&NW8l*A#N!)B^@QzQpktN8AU z9KY`EVSnpR178=LwU)Yju;I|*V%uTQ;S1n@*P_#Dx0d5wubQj_5<|jJvN@^r_7uhRl^weK%3p z(PzWS&C$PGAaYpN`Lc87As>0m_zXKa#1CRx&sI#VL*hMpEp&NrAhVI{S^gTWvoxvw z#ebfp9h1sdk*oi$_D(`#FtIEDE_+9}J$d=WehY6+(w~3SAO5cPhXWaO+W)9OtZ6dd z|6i-$b)7fHAMSW>AFr-c`*@mP60bwIcN}B0J!K@%Kt^t?Bfii#5)1nt{1dDPvS%*X zf2Z{c=XPaZlhz-G$amjb!ah3m47x$~*A2|!w{R!X3$$TU+aN1*tchbQ{EvV4qe;eh zoK0kA?HGyAPLg-D-@?y2rpcPRkL-=-_p5k`9cB+(Smp}y-C#d9dlN)Xiq5EG-$pMo zyXOG=DU4+O(}sE4Zw%Sv5%k;Yf^QCFfA_4EeHZL6*m!{7^hoIZeZ7YH^j6BhmCfJV zJtqGQ`a7xYleJ>K=c%1`A_v9C79A;TjAlhG`#bQz-)-;WbS<~Z*K*(;_bzU0W8APW z=710O$UZ{iA2v2oo*8*Y>fJx4UXk1T-*G=9c=6&uUr_IUuYo;`+-0u!J*L^i$Q`Sr zdnl?3oZ*S?W&>;jwxEhwon$X!m)J78)2N7k} zK}qN|5DiJpg5bCWlCTIW+Ng}fD9Y+GBV!P7h8dZW&CyXDSsWj?F`zsnkAkv9i0Sux zs&1t#odlitnfH(1@A7GGzW1EkPMtbcb*gS%>IbZGOGc!QppGE) zug%yI_0V?hP{<}xtQ~&(pV`kW>};aUi`9>`$&WggrFPP4KQqtQF1I@8jnpH{wtdn; zKh?^P@%KRL>}Z$h=SBWnm6hxl*&XZw+4~cGbNk6|Sibv5k*{`b&3}IE=)?O{|KYJC zmovMhWt=5&_m0Z+pC3Ci=f72^pE7n7x)a;FOuOjal@^^Ke*?z&eE${g$>)86ljf&1 z?}P2e{Kr2g%0b^%rgvv*HY^r4YXi+`utq}Td9FvkcVOqS-`J=79Z~!{mE!#_)Ord=6;j*#W1&R#(PE{M;_Lj9ISp>mPURV^oy)vwH^KQo4m~a z-BFll<}7JEGrhL3Tpe@Xk=4U8jdFds9pe=%h}>h(FC>n7^8RX>dNCJlCw z_73v-p0Gjozip@S*<$1)!`~PqH@AlqF;&R`$_Q&LoI_{tkXRGD@pP<8s zc7Zm3bR)NALB~Aib?owa&+diYg5P4+Vg6ky|L63L99E4rT%W%fXVl^B7Vg`0ti^Zv zTHa%8V+XK)b=cC+Lqb3EJ`CEopdKqjmVO>YK3m>BLLEmLd9Z)<-Y~bZwb(AoM& zV>OM*Tgwr)ysaGZ9d;?l$$5Amq8%BY+}12)`00u%Th z^E~unQ@XJ2QzlOiE}k;kI}h)}Rvim@?Km$#%j?A%tKRx~2tOI|RPDi-0d1V(!hYiH zqDf4i}&K)Ta06#L_AaX;atBj@D48g zV^7+(;E{befAcJ>+2>^I^xe(0-k4$>ZC+=bw$^(0Y82k{WSu6%V!ak~+-*36<5(y~ zw>4ATHKVXMZ;zd&bh0(mn(sOr)<9@I*M7hmj9QEL%(gcB?;Uno(B8Y*ySR@QbnLRH zu)`?N2C@s?va7g^kMVumRSulvWY@F%@Ml%CnX#9@)$wU2g^CX>R{#?`nz=w4U_@yUzWA%a8nCEaGyf+3}9L}@ub=KXk(evOQ)XCx2 zbrL*tEL2~o)CtZn3m!r|XZ8qLP+WE4I-%#XPVgLOP%dk~PP)Q3pw>y(s5W&HJfze~ z(pap&TXoWPSxcRGs=gPxv8;8SkR5JaC*-4+b+W$MUp@@)`Jql6eZqA@{epdhb6xza zsJ|^vdLNkT&Er_h{Tok~@%NrGQ}FHgb#)meUs+duXzxYJDjQ1);`bQlcy?x{JieaB zw{7NwXsf($%ce1pBM){8@uQxswzLQIR(+9y_fF`&j3D|t@=vwdzie>-1C5>A-P4J& zCC(_h$w)~pFmN`Fk(QNSUdYw_E8NM(3s_Ueda$SNJo>ZAXruVyTfQFm^(^?*tvJ^vS_?*-IM;^WFT(!y zIJA?#h!=Z;YWn;&RI_m}-vbF>PqNV$?}?3i3qG>tSVvqQGWxuQy>h#oQrz_Z%h4u` zfpz~=XoFocQO|T%Paf^BLA}sBFVP{MPrU2kPnd_Z-Fyc5d8nThw5|L-1Ap8+%ng1P z@+T}dJdZ2!EQUNWH$gi?y!1E1;T^S>wEE_8`rs3;93?xO_4pAN(Mn;IgrnjE2KE2z#l@Wy70cxg=uT z54qv{=omjBO@=hFjuKq93~4?XqO==Ux^YHPF7w~llvq02wVod+6tE@{H~Zo1X+*gtHl+*xT$~Q77huPub}l zLcEiR_*Wz%-UB+tiMi8xnp^NW<7z&ywbMDNVl5GE(d26+uZy*}XvX8)5Y5+wYX(9G z%hwpes^tvtJG-#HfiWS@&04Wyq<`GDIOuEw(o8T0pxq9D?&4g%U|lrYE!HWKXU`Hj zm#Id-Kxx8{yxN{%ta}T8gBP}d_UoWd4D91-_nYykla9Zu$qXtNe8!}+%rI`iJk81r z-YMbjBNz+&h&|UG=WSP4%=aDj%T|n}GYo^vz7Ij}osErX+lZ6GkzO{~?9I?Wy9eV^ zyhDe+fxZ)u-$y-oy9(B!E^)q9z@=NRi!Fi1l`K9j(H|X|e@2jiu z4dPEvUo_4q?B9B*thwds@4)~Wx{X`eZ@F&bB(4m#!| zIk)2vl)en~H~buC^f%nELHk7T{wk~g@(bi2d8EA8Iuo(CF^1kr^g3|-dHj747Y1()I*-!V>{o3!6mgKw`l9MGGC-+mkKKmINA z|4Rq|82WDd55YyLw9l<6xG0BkQ&5M^eef?fV==;G?B;)pd>%f-Gw*D?2Wk3i(bt@O z9Jb{(W;l>X=gABH>-X_K!rz_xiE6FksmJ*mH+*3HToZoIMYY3Kb44EIU-O^eYUAZt zWJ5eC6Zkr^QU24JcAN`CegUKf`|;pwKL7Pc9N07C;bne}O&MU^`%!{!H~}i26p`U5#<=;qK^P@cXbk{3nPH zw#(>mM_-P;K+7+L{MFG|`$BuIL)oEUvi(zgMLpST`l3B?n$R<~J<*z&H)_JjV6@Vn zSQX9^Zyld(PbfF!>qfhn)Mn3s^d+?^i_pndW2YLdxe3|qC4FvL$BulTLiLmK^J+Gs z|G>JC(GT?>1^J^rQ2U~>*O$x*|0VWc>d#~DfHMWGcx&4FF#oMS68;16uJ#qM{g)&C zD{`69zZT;F=bxgH1X z?qc*g&S-x+y{Kh)&eexUcNd4Gg{6Mki!b+<@nhV6I|?Gkk!w3|3vn%vc@weUia_K0B& z;jkO@9u>SJ##?|M)iU3@2uf*oQ(CC&$Ao*NJlbR@QGOr@f!7C ze1Ue#;{E^nN)JZm;S3Sz_~VDPAogT)o~kp3H}EQ}|7s)IV0;rKfWK+aCd1!*@b@;P z3%g~<`*wBFm;=;W@BaEe#yiq9K6LrruO=9IThZ3nH{o1sp9g1s1xW|vUd8#Ht1i?# zc5435rlbT{z%KR4y-;5_S@S=PdENQzH3Ry9ykGE-;_3JDuerXLe<{WsCr4o}mV1HZ zh&VL^<>!3Y6QA!=%mvSrPX}|U9#})b`+zhCm_E{r@6dT*zvv7V>^bk=lE>SgeN57()3;HVr5K@JSG1Ja&^cEVh3_VZ51Zfip3t`1IrY z#fvr4H`wY6#sJ#||G%ch`fJ@N|MfWI_7+}l?EAccGhaxrqDdEN%;A6H`e=VOEBhe!Bj1WJZPuFQ*ph6p@dDZ>_8Qe(;YNN* z4rNyRr?Cme4gGz>?x^X5_5|CDJ}AKxwfhJ0-a7`~d9cT%6P@wiDb}!rOff#BH8UkH z$RGRH3gPRkY_941SJc5aU%ef^G;V7!|8d*-`|c=1yW=gCgRgf*%HU#qQX_f!*crYE zJ_f04y+6s?zdagZezNZeV;#)TVNVDDj>hJg_o5z_L58&U2Rpgl9%>Fgc;=h!UEFTZ z@(pXz?=zZ9(p;I&yuo+`{TsdG`+bPpPy1LpC&D_nsP5$yI&UI&Ez7Q}uEy9E=ji${ zmZ*g-c$}Yslk|_%JU)mqxYq%HIL!-UHb#>#p<(qQn%m<0VDR6}+l%vkH`-{d zj`KT1MnBj#=Mt^nxrfzkax$-LA2U+%eTDtAwfd#gwBSC>Rn9fC`Z04j_Kd+dpBi0S z{cJotH(K*Q<;1ujYq%%(qK~M?_bDj-jXtjvc^FM=LYwd%3*;dgYaB?gp>c0x5OWg0 zYn!blpRSEsIG@!O)jm8#^IzG0bb|&`Ah;cXB7TTv^kGNDeQS>tiv1`aiKgNhrw7H zdH>1d5*mxtjLzfVWT5@{{#DMNd@NXtHhKlhwDC>N7(JN<&yB*k9eTRbsRy&L=0|5a zqs{r5voqPvpuOrm`tDBtM5nE0<1&oz#%g#U&|0V220slZ{4Bhq!}uEhHjGh3zMSQoY?)6SHQJUklnzC3N6j&EW8#C{e!#rsyui;*{(&M)I@zPyh@-KH$sz~5V{1pA?dOr$n zw?Fg|?^gPsawHmPzcqc|)I892e`lv&pXJknC>!~xxb8dLmVS_~SI5!wAp9Es9&X)( zwm|0w;ax{%UX#b?mM!&ChjvfrC{Y>?jAMxxVJQ7|v8(vGk=XMN-P?-u`Jm%Cr?Msw zey@J8Fa5^CHbci#q2qLJ8gw@$ZY$>IN8#5$O=s8qkkUI5=P2!_b0?dOzGD9}*4r8p z7sklDp|?T@Feb&ABKHUMSwDp3uIjCLhc;->ykPVdWiq(lCJDWT4v>Em=f~^D#=mkI zh;fyOpXQcyHeQPDap)V(BQeJL5j~Uog?qd97WIWO4s;K7hPkGwGtxVxf&MM3K4TY+ zGhI}NG*|aOvBy@E_c;0Gaeq_H|JTs`e;L*j#=cdld46_gOoz(I}hP4-zq!6nk^gH)1VE`ez`o7C%qd2L68Ac!X~~ z2JLLu{LJA9(ma6to$oKw__qZY?_t638slr;fxOdhWZtjlA%l zqkkUeoIFjW?Kp||XrL?i?m?ZwE=8mroDBKG=SOJ<>o%lOJp~;bGx^=QaWwY&<4juC z+2cCUSq&@v2Q|lnle;M4v44k$ALSC^7vp>4yAa+N<8hfi+6n*9?Z=uz!8-dMd}EJo zKZd??vHcL`z2T0-r?byCVgKBex9IzMLHH*c^6|{^1D^H0T|6^yZ=~Uc$j^=xanW9|_Ktl%Imx?ZvM)HT zAJ!yYiS_yvtWRch`{93hFRQ`3Rl!Zprrk)qhvd>TBN6JWm^1y>UOD8Jf3l9egVW)*@Xoo+YGv@Ef~W zjAtpvUPqJgo*0V>c1~qM`0E>Z*ARCo=|P4QPCGDEP_!%yWAQGlpEp zykEbgdGCLRQT(3qp^)eH`&rH48s?c%%Dg3CbDHPf=8$K`11$JS39B#pR5OOW!Rnje zVcxh;G@d^zT<~@Z^N9#!AkWBqLz3rvyr0O|$7m04y}hk`Xih`&QQJG&Ig+nu{{DDR zaw_vWotkHdBgX4uBkRvPwBXq+_{sXB|HqiwIhqAA4-0-UpLwRuVcz2|%{zZTWP|#3 zHnN7N9ZlY|+gb3)66|l;PPUnOp0I0_mmtn~r#(B7X+vjP{1j++`1T#fiBt2Cr-XhU z?7Q+8o^#XP<17qq@4EfH;F2e+vQv>?m+P+W$;kWC9ixM~&ynqcZ8lOq+1_x*9<2E; z-Vy7U{&NPSr{!KPdS3CCB^wYL?Mc$TdAC2!8>-Yws2K{r?<8SD+58u_r9!BsvzCf8^ z*O&DBgmkoKbQdwdcP0Mdb?s;CSR>Y$H=})!?AJ2?{l}0#_CPv8cfxNTup23C6OBRm zw|XhQY{chrB0l>j%!5UILGafv*~ivZf5}p+H-Rp~2c2d3R^dJ$jag_cL33#F9#!>O z)D!o|pnlr-zvS7`7uwOE@i}gIynyyFn;8v}w!r8M{>f)Y*2B+<{@>>rg>po3{5sJukE0wY>{;a>c8ogE2k__1T_>`h2qe7m46s4_*?h*-QDt-k(RlYF<};0rmV}tbW^V8l6`k zT>e&w%GS`saW-g&o;Gj5cW~?&SM|}dlaO!6w$ZfLEO-cd>F_zci}yfJ_k{H{`l}F) z8_>T)uQp;FZ0VI_()oIP*Lhv_UZl5?k7I&%(o^`4>04oT(CY#k*VAh9-&%T#_{6xT z5A+^30b?@qLwOLN*MayL&N^j?&k5|Djd2?E)EO8l^c3?+jCI4hy6Y|I&HuH(Hd4Q8 z`sQJ7M0r7*Sb}=v?IPm*K(6C&`~zWIjTvwjJMy)Me0$B=drY+3yqWL^@Uy5}&dS61 zfu9|WcNE3g!9I(|8swiy!CoUegH)a)Oy`<$pF;oLpyTY=&-nhiCs1C#4v6&S8egk? zAbrfqFh8U7qWT_$pTQ=^Ffvd4z4Ka(VPrn*W?-IX9wD(M?-hp>dYaKS&!9iq){72Eo5svyp zul<;hY^|`TORD^}@Ef|eGh+;Vl=$wvf6f``2Idlp*e^}?>rC7Eg9q`*bkH~AJ^WAk z*MK~b-|H$C+sQw@bbAY2lB=DBs#gUj)${_9(ARpUKWM#=tQBf zbdyh`W&`ZiS@b2C58^#q-E+pS(;S<>_X67-#QFk1yNLUes+VCs)Qxcv){M}GsNZ+& zM*i1Q+q~G`a2wxWuj~!)ApF0-cl*Q!arTG9{t5LZL5C^wjCrik_gxQRO(CJxx@{kt z6Prse&AmNe*LqA7$+a!*}rLdwBRR-WB*h-W7kQ zcTU~b8o=G0_kSf5q}4Y3zb})|H`s(egk?hWdhxx#UH1xK0sJy1eb=vTd1y>W_7(l) z$C$IZ#F`EEphxzl8{y-kJsK(Sm2#POS?6(l)~X*yUrzq5)?+j~>?6)4h99U|d>0Gf z_aIw>IAHTOkk7}1x@b;fjaWPT}cIG-OpHd=2Hd82o;_+9}Yx7YAt z@i_QAP2}$^;%RMHTjqo)OPe`iZFo+|iO-2JEka&l>v}urIi0+!err7E`QP(`sIN5GhHAG}w^kZuEon4V+u;u%jlDijeA8|{ zeBN7u_kq3ydvr&`pNzb~pGdw%^l$KiA4DG8%TulJkH5vvJgMkng#33mVh)0DmmO^Me|E-E znD^VZ;!Bk}dFGpuGQ`mkG*@mC6jFW7J;M>}We$%4c&ig;xq`se2o!ykwx=k$9pu*PL1cm zVgDn&(-o{kyeIh>>6F)D*Xo^TuqL|CSMNAPb{S`DVvd3NJN4_q#b-ke`x~3R4u@8c zF&oY+gx?+S_fTGW9J@a9&)cTg(Ee!Tso~m2@=xkD=$mnNU%Y>p9p`ARKTquu{i(Y_ zr+3ffJGSgY8j}aB&cIJ_GB$YboZ&CuY%})v#k(`JG1qQ1;7f?F{}SVf;x2}=<=7^???e8qP7L3{Jc~A{d9XLd8#sgXb}`T6d+?snCX5-82Rav>>_Q33IptN@ z2Kbj0+LfY9+;`tn*L62jU2~lvojS&K?p>;Lu4iQX zq&-0!<2oVzVZwI2Ds*B3jn_W$KkRV(dpPlp14mE)y@z`SKY+})?`NL!M~4ghX$X;oMh1YwL`-=@d)N_+o3P; zDb;_8wPUOwV;!+O>O~9cuIBpH4$c2}y}P%oQwxr640+y9V)awM1K&9s6Ls^uzhL#* zU+`}T`yX_Y>=Wv@L(cf7Fycvo{>BBTQF)Gw^1z4XKYBc(JfBRi-bkGJVU-?`kbL z)x$iVM$Ov*9mDuL`1j6`O#nVA$H@96-}xGLIh*V20zUtPUo!8uFIoNZ&e)H|*AjK_ zHuzBp)3?vie(AgPL6p@4I|n(%dXP7y5kt0&{;vPv5WZ3WflhvR(4+l54|7`mVazQT z@8!?EIR{`1&=!}%f47b11N#w&&xP>1*VX8g_0#Yd{R^%ih&%ZAZ%5WQcIIXCuGaAm z5z6%e%JSGbt^W8lE*mOa{VQEGuW{B_uTMm|bd;;hNbl_9@FVKTzfOADB=hP$d`QP! z0C_s(tDo})jZ0ef5&Vo;vx}C}_YC?NJFO?R_&d1&4EpSyhVV|5*Ll|GU+uDaa0Y7d zNhjvt`H}p( zy&U4-fh1jkfBQ`E1IVuHIn6t}s}_9hthU|7s<}*1w;m5<^7%~o)6mW!BX9j=_&LAy zd29T>2A=_$O!j%d*pK+&uXGwMGVvZEc^t9iu@BFCeS@}ZivD6H}9gMD881->!S zh1*qH&uK_>z)rB%<4BB2=^4q(Tla-8Qig5fR%9%ELDw~cr)7N(V*V_t5LT{#{lqxft2KRc@jjI;6d4DSU^eTQ5oZ!?!AB!- zA@JnNSvh&-<)!8G3W|#gXH=EVs4NW-o>3eqLDe`#UhXGJB2cj7mzsD+)h z;wrPUyecrhv?O5SQq!>^-h_CwCEfj9O;#AF2$UBgje80zi%Lt(Sp`MKfx?Qi^g+c% zGY5GGXADjoQc><7QdBy)yaJI8ye%=SaeTdT+!U3%87xyssbhczztOum17F#1;%mVw93;Q3evtmJse@H1ZC*-&qaSTHoPvbWfzaOoiBIs@T59_j4z(yFqV z3#{rnia2u-mrKXtvbalZSolAY#u#W7rQt=KgK!^Lu%NW6l3RKpaghy}P+_up0l!&P zVItRNaY6a)KtToM#jSLHabQ-Zd4+lR98^q2aS_yEwwYgEP%=A!R$7P(fwr0x0_Agy zDk@;sa|0zsfx?l6h2^kSBj>@!^Tu0VGQvpVVp zabu6{n@9p)lqZ`3R3~{cJAoWCI?- zoyt4{ickPuxf*{XpQB2vN(v`IzY1@xsw6sHX6noZXo6;LprEk0)PHB?9N3~lvtK{6 zte~XGe zW?Vb+x}QzDdE|9@SEc7emh+0rOH1a$@|p7r&`*-dLlFv#D$0tXVlc* zPN-H3t9XjMbW}9(ZbdrXaE~mHDgn18n3iXE&q2qIMqTO;KqU|{rwle_LWAAxIO3&z zx5Nuf{fiZqzo4oD;w>pH8B|qrH&m?sSQu8!FXOsBtDq8{2jt6*gw=_N0R{RZ)2WT3s2KpJuy^Q9fB) z8&xrc+bPaAq@;9)5M70^S+^kEKm;S(Lj9!Z-%Rw$rG7E`LVir4-$G1owi;ouOvrwN zJLzyMGO(n-4LY@{$Sm>5k^BkJlR+%Dl{~3YoNSzBGQEVms%+U(v$1TOVLGCbmCk}0 zzHycq+}()gQa-r^Y8#kcS`NEki25gepfOD+{4fOJKN?pOCOsm(BRY-g$v(#_ccK#? z@sploiJ6BXUW%8((%`3LdSkNAmBVF**Y9{eOPr9pqw7@7Xw3ftd^KKKFqWo#vW z&*1l4{C45@9)2I==K{|cxSzuB0%4qO(;2^B_zl2s1b*Z3n~q;Oe)r?I6JeI&{uqA0 z#&0uzujBU?en;>-2>O5HehxpwiTLpAgI^kcSK>DYzlr!w!!NQ87nKf~TUsb=$O*Jd zDkrtsRZn1!6*SrW$1z_Z6F9e^lJ^d}k zB#pk3Ogm$9qJ+)*N#i_!X?cK;$^3!h;_yJP8gUFqdc9$kuEjl4Hp0MK@(K4XvjZ4X zLOD^iBFw{J-T5$KZ0>M#W>IBD89HptOy;0RgTDVa(x7q7+qhqf`#}hobcN0+N7SSV@SFCmmTfGNmCjD+bE}JP{C}k{iP1t|K0_H)eZj;6y>-iIX}BBOg~1nhSri5;F(R#iBOzdxV$O&v8QAf# zj659}v!cTCY-Iy&GXC#9YShm#kCX?{a-E zFSvUKM)GLB#o*}yUXlyhBi@lJ6M%8ghttb_5#ts7C_Q;mzq}GW|8MH9ZO&)SI>55!>f>!f$Kdpad*UG%Pcx7Z%`OI^LR-r60uJN1{1 z-|0K`clG!5gE5Dq4(mts54F$i|J1*<9oN4$Pud#w^Tq`&rr(uUkH7Jer=Nc27t4cB zJon1)7yr)TjLN#|>M7qHc+ZxYoRvLg>H{zQ_T@ije%5)(vWK6x#m05&d_{W3@VrrD zuOEM7VPN{U?U(d$y4=x;U9*M_-~9Xs|A@+7`RHb+`^u|l6+QA;r_vd(fBns^Gfy{# zCQf?lSA&Q2OP&1dwa>0wziIPte!p|KBRZzbrNghuyJ_R5xBs@**{%EKeXhRd%M;&( z_UyHpDSi5;dUJ-4xqjS)iIb;HyLI~Q`ToGHJ1gej_rQbeUwC=Tt^>b)xuo<@!P_tY zh25|XGG-atkipf9E;Z8Qd)RtM^|TML=i1`>SHIxsZR>4Ib!9}4ziwf6RFd13d}ZD+ z14rScCD|`CF0pIA9NW+ALu_tml+$PSv&BSZ8N=<}owgX~gt6J)Sg&)i%e}Dg%|9F9 z>YvoTZ;!;TQR9(7ZfrNF+cCz~FRCi~+N=9JuC%)yH#syM-ej*{KC|Z-m%Do7?U(08 zyB)Ef;SP7!KwH=9*G3dhj2RQ<9+h{=7}vzuu}*jO*-`FGjnQMXjX0OvG0f>+nAOdB zrO{)G7C$t$=2x?-qN{g5IL;qio0gFD$P0@`Kl|FEVb1=x>5jhcQSMZ`XVI3Q2YzN7 z=IrDnm3XqzReQL9)N@}h^u}wKI^t}ug)5fX?zG1mQO<%e+(27l%oKO^Z*wk<9cYVk>T!_6zu zMkwkx^A{|C=()71)0VGT+2iB5_@9lt&@_0+HPdgK@p-{S{rU8>=bA&+bMN}()3{zG zr9Cd4ao_#Feffbu>`dy~v)8E6<8LJWzyE<(_Z&R*(aBS1$}1kJta_sF;31n{-v0W& zcaMDf6!Sf~I_;5Oe?Rz6X#9=0{@m$`Pv|$~>u*X*v#+}5+PsyIPMlq}|IGvMeejPj zn?uZ;arvT8ZHsbUm)IPg7QPf${i3~B)WS=QZZ6F>#Fk-m8k*DL?Bt#h-`P3YY1n$W zqYRhfG<3r-Vr+IJ+M&gDv5$9N;+*Q#9bIE4*se1M!9I0z#K#P`UD{`cIoEbapX&Yg zMO%#SjzvEhw>XoclA}oD?r^vr-5s|$2iQls2il+TX#paQT-A~L(*?Bs@Jp#@|A|$k>eWWig8p%_cU&`-4az@lib6d6gAFP{h;H; z^)X#->Cf60e%RL;W4BjtOjvlvshRy9pgv@){*!Tu5g#ju5jU2RuOM<5Vdm44mNkqJ zo=%J@%W1AbzE0C}=Liao4#_Qw@np-g6k~tK{x%vc`(NMk>VMFbRe>`l}g*@Dre` zS^@r4@K3;x?h;SO-;_SK*s&U$$sV=mv)eptS?8{1uNX7G*Ea*#4(Oj|4lLdH*+6}B z{-B;0@&~hKGwbP4e%24#KeIIVW!b%B|C#+_T*0s*$rpV~yPnUE^JNrFIC;mj zH{Doz+0DP+`RvW?-GYgM_nw`|KD=xa`|O{SfBSjC)DuT9yXC;~XKyjt*SDP19=Mg2 zF((^@7g=@u)5b)nbxF_yP*YvUyHHxsOMV_bJSs{{#tF^nQtbnb5w8BpnwgCNHW$>< z>DDjRhEs5x3oLHEyQb^I(D&MOsK3@zH?(NNb}(p(Iu^l+8*#fdr{UInYF8p`3__+N zdc?_CghX}1J@jG7pG@UaZH$J6U_;Yf+D#gcLUYa3^r&d(Sp5>jhtufe zG^A*c)_O;2v+%Y#GNpIZZAOAE7JoXlcnz{QF4cSDpHJ7EE=`Y)($FZiD*bY8o?+9Y za9qxRK?umLlVa3e4!5qQ^-8y;0o%3Is2JTuAvGfhL-f-EE{J zPN#O2(c7-MuGV7oj3{(U+6;q43884e)(lq{E?G@W(&C(k{S6ltrYlJmbwzxd{uT1( z!2J?^vWuSFLGl1KV4za%EK1YQpyr_w+DfEn(@b}&gV&TpHwHuC%n5;LHzy%0h~*v! z5`fI1ZIqP8P`ep+yt;+5IpP^C71OS<-Gt|Cu-=tH2Ke-^OLz9Ptuk1)ZKz9&(~|63 zJYwy{W3(4)YZ2xu8zkVI>%{c$BpW>V+ETcp@4mrWmnjfFM0kqnX`qmrHM^#}uqE6& zkPk(e4S0_kOMtJHc&1xCS6y}4RdCJt=V0BU)slvaZZd}5ch1ya*H-@vAcr*^brJ%3EolTE3ClP&_ z@t6%8CyC3%<1+jj!BdR%5l0)I-gr#mebYmsHMkScv~WDD99DY7w-dju;QI*n9DFOa zb{JDZI*Q+%{7~ov>O^wm^7GaB9(O+Bvf`vNCLmvl{!nNd{swQFT1KL$fj$m&x`XZ; zC*tBU5PbrkPcICG_Tz6hAucVFUIw}?5DKjjbW@Gr#Iu#4mw{eMbjWyu%&U^et>D=O zo(zjejf2X25cGqfyM$cIE>>RZShvgxg{nndJ~b{Xj|qB0Q7A-xDdi`U?gQNidQJ!Q ze9)(X-jU8!gMKgQ7t@FJ;Msl0#r1*m`ZoA-?hJ)U2JPkb1n54{M|41sfxM=7KsOO) zAn5Z!9|!p&{t1!#&FddLYl|&;+Y9|QWmkOj)%Yp)E6Hk6?>6q*E%xgw1= zd8IgPaDuF_2!&4I@5u5Jy*KD(l^yGNF6c`;pqmI^2>M#kJCav#@Zb|1EVb&#b$ko> z)_{+<{V{Fz>j3CmKwpVCsVtH9=OpOnyq5OfhMs_qry6w1Q+u*V1HBgXRYac?XGX?9 z0rW=D+p`xGXBp_JcZWj9t@>!kWb?jeHTaIthi*_h5q8JKqaC212K^+_$F%K7i032l z>{<{C9V8yu@<>}sJQ#(uvU@t_;q?z5^B3*w7}0YNIxhJyspO@!P8#7P#pU~Zvy>d?d=43PTXttJ?-?plum*R?d`r$i2DEb%8~~9 zIMCZ`Zxnul6~4WCBYGL=`3S#8#NVntn|QVo^p8N#uxvtPolzWH!E@sN5Oy5lYDeA& zEqX_N(rM6b543MXDb7R;8dE`^(}B&PI>-S}ado&H9qDmC_&x()NAjo!{RHUk)hm^C zE$AmfAA`S9);99m1$y$rj`i0>u%qDF|06suIC1AM3WauyblM$v3xe>G3Y+fJF1rzpik?7PHDabdKtxU=|+1pC%%K=TTy%Qx-r4m1U^>R@z{gp zZ(@KxW^pJ~i@%vZp_RcUx)1c1KwnRE8iOi@CVD>TX-hh$SA)J4^tBy?UkiH1()Q^l z!tA2(pudfNo%Ex><5ot>X(sMYXT#vWtl&`pLdaK>PjOJ;YU{3>ok0)Bj z=WXOoWt{|`V(_>wqNk)A_kwTSlcCUb{7v~&RELqA*MPnh^bro;cWsRmr+FCh@JzwYfby29w+=*-YIV@ z5a!;eL!qtsn{>IoyitC(QrgczZbC=$FQ%`Q*Q4Oic-Crz#jVFgq;ocGeAxl|PElVS z&JRuSrh#|Nx=`pS{-!*(*WM<9$F;uw_D1=s1lUUGe;WI$51wBK^zfJxofxi0rP-wHI|EgZ| z@`G-^*zp`_73gW8TYX-e__u;St%LAsDDy$k=Mde}j~~-L%99Hls0x46@fa=@^lH$T zb|BL+pdSbQ-VW$1&}(1D7*XVTtrnqJl*gCA^V07+)~mNc-wpaS zk%zQMxt{>N=_2$PIQTPOX_0%I@B=}g4ths=H4gO6pj+dnvdHv{K|fjF@z`<&=*K~y zF6>>K@GpVhdppJ`L^rnTs>LMvybb#P-&^*+ow?Bo&|QD%c>EIM!TLJrxk7%e##$8r zK+w}Vpi>aKXvbine7HGoT&|g(gI5l)IcoAuY~!sm{l(a0PTOv1SGk#vw}S>}4H_^2 z`znT}W#N~Jy%gyKW)02pr=?{TWabRZ9F%@Pwh*S@FIm#Fy+hM82d8IdGurI$4@WjQ zCw*|*pu)gBHqt~c%8M%e^O#0XL0f{oe4ck`(a^H=8FPo0QTvFzNG0WEW2c18cbV2B zjiuwSaZzEM1)LZi##a(OHjI71(=V8OuP(Wh?*yjzb;PA{A0WMpBykn~p!bj@z6XD- zhp!dQm{IukxNil}&pj2{O6NWs)6ySjwwPXT8nh4ETo%8$5o zwh@@*EAdOfR6i2G0!;NI@eW|BABq12O!Xo0Zs5}j{wpxaSJDpv$3TB1J`CJL!5;zB zyL6KNIq*0I9|tD=lk~5F(R8iL!A=8*uT!C$Cj&v>Nl&n{#4bz`^4pKcgoneRlK$_v z=#SnajRyU<^WU(6T!Xj=5i1w!9wo<;n}fJxsZ|J0d6zi1vs^yh#{zhrrv zfJtA-FGutVej$G{Cs^KMj{;NuBv|YFlHs*L_}xbee;#s@7ulOW2KLZH z{|?|GwI8zogvF(?0^s#{-;T!*jupULWO~5cfMdFvd_91|e`8@8{xmSXuPO2Oz-0(8 zE}iK%9NruQ=N zK_$I^0Pj-x{|S6E;_HqCD1R~VqtW}PGQBRq#h^=j>;tCvQYC#X@EXu@QCY%V5(n< zdjOL>B)%M&z8RS6 zQ{rjBBtMC72PXMSO#Ve`9}?dItlGOW;P7=SNCs2B0-&92~6=z z>;tCsCC&p@%X>X=_&OEp2m4O>k@hzOnDS!-6P5ouV9HOWg|C@{@>=ney(%db<*!A& z+#V|NlYA(xn7$_6aB1ug&{bRtoOaD+f{auvfz|vjP~u~V?|$IVuudy3d>c`rQ+n$n z@b7>VmGrj(tMUIKg8xn6n0}@ezsBC7@D{=*PWC=<@_;b?(+GSN*i`5zfn%D5JgNRn z7={dm-j^`SPx99Ae--emA56a1P5f(tcLPg(dJA}$68=5lWQE=YycF^E=JDCta5wZ> zq0{?>Il!r$uCtZE`3n6HL{ATw@6W(v6ub|3x`O`(+@yqW1kTS0hi?X!?{QOkuE4-l z>JK!A4FRV7i%Vyjz?5H!uLP$2N<0#n@+!1WI`N-UF!9I1XQ<}K1023ig_0Fa z{FxE_!xcKke~p5Pe|iM}OodMTa}-ScbrJjzDsiT^|d|F;UA_!|{W{9WQ(%cnbV_&OEprC{P8 z5y3xFp;P>$6iocZz)ebfD+hjQbhtk`3A`r9w35`=SztPQLR>m)0$!nD9Q(vlePMft zBjtE}g5S>KfYtg=Btz12!Jd_h@U#w0_U?6Hil5lXzRbHzq@QQu?n-znj}KVvtfNRZ zmIvH`@W>_*&Rzme#A+!8Bm7JJVN>uMz^7$;p#Kl>q&yScbZP8c;M(aXM}*G-(-|1z zf;@mJJ&E;BB0h;-z?7cEaln)xi4%c)E4VxG1O=PGbnb=Z?+d(A!2^NmObbaL3Vcw( zIl!v?uLcfZuorg<`JF^RPUE{Hz*PRUt^#*07V)8&ygqILru1DF{uMCgSK^O>NnS2Z zguisIkk@F7|8`(1Z+{Cv11!(=p!)tNusoxKaITVHs_#31SKMYIG+i1i1zuZdazwZi zxG50E3xHj-!}xySql$cLfm5-kQCvEE5I9G{D}hz{JpmlPPKDx&M1B&Xza+mmfhj&I zujo5O{-#^ zivVcv7Qe*L0IT`g035zfh3d;hdMn`vpz^<{&?!HABf`I>(8=Dur(ohg6TyE$p%cFr z&J1P;r$Qz$o#E00nIeBqjfF)XHMSIZ4aysh2V~D)0mdt^f{Z6SfHy1h`JBRQmOg<$ z7Ly&bGR*G*9--iFz!bl@bk+-);*+=!@D2qJ0G8*vP=2OZSn^K?rt~GA35+aRmxIj# z4qvB2B?=~aJOrGp-)vz?p9W0%k@$9CwS0xZ;S2Ul!BoB_z^kiFi$!A(MTB3a z@RPp$O2HKVPZ9jP6*}?%Rl&snRRsSjg--nE6iocdaIC52=}C^Zmg`igw}Oe^2fSV> zPhLd$>lJ=V??wev_&b4fTINeOc2`9B`3gUUe*jqZ7uX-=WY?gHCuAp3CqmeNNZb{1pD65}q)f^CK>e z%>_SUZV#>esPw;CbjeS5Ix9$A8hfA8173p%E%{OC>1a4AKZTpLz@!^4QGOL?gI~p0 z0dKa>`=RzQhcNUXZV7~j{RK|D5B&r6XI6ZK#UZn%Uz zRQx^oRU87|g7C6F`d@l>4J^->BKn&amh^XlNq;3i1T4?@B7W-F2}`;InDklV7+}(OaoJdBVA4lPPX;D^ zl(;7_)vv_8fj29-Kd?Oai_)KLVafk0`*Hx7 z&KpzvAHw3&*rh!MU1GY^d1T_!*yW%TR{IN;zR03We!A0{X5!M=63_{+!2@ZpRr)cD zF8S$xTnYa#(5XD)(%DI1I_FH{v%nJ++yp#L!Fn&o=zKHD?*d+`;5cBlz7m1M*Qro< zV70zV=Zo~Xy}^9xcfgdMhCnob`VN@lm-DN87m51G0iDMCzX7KDoM7R7HKIJG6+Ws~ zKAC+eT@EF)58~CaJeGYgj_{Tw@QeOy*OJko{ zbcv4w@09XJhY>kP2I)b0hkrS83XzEM(7Z=8p z!1C-nvKMPCEa*CW4p^Re|%$zCn^W!>Q0jV70!Vn;DyD3WP~^WEbQKeQjY5yazX5+Foz4&xm&R`@eg*t0CWamlnVgR_b_eJxCIX#N zC@vA7ivI+D74HU~bYBCo1)I1UOm29|NZBd-z>^ew0k}}XS_IFBBf&afl54dwr83rl(~Fr9DL z;y<;pq*npc*>{q@*20p$5tz=!BR2<^kA)@u2r!+QC)3w^3oPj_U^-7vjz7E>mh@r3 zbk?4nZxmWs((eGKGx(zMfYN{5!jk?gU^<`AZPE8ySkm7HrnCEEE&4eNOZpGMbgrKa zpV~)YNgoVMXa33Xw^&%xX8_ZAfU*1-m0V$uH&W{7?G~2w05F{? zDdS&hVM%`yn9iHD;{oOGFBX>cH-YIaN*VuY3rqS1V6vwY>-~j2l{gAm?e7wR!`G=$ zS75cjyJ@lLf6~B2TmKb+<%GaPjW5%C@}RGa=cT$RM>AFbQ&N21^9#WrWo%4 z+m{J@F2{?bfj?8|4+4{Ym-K`Og*|s#@l6CKdoSrv0F!;^@^57AAeYv?7!(OP;p^@C+I4s=c`wmf{Yrb zOU2iKU&Ta!=~0tzxUl{PI-U6`E}i`h_-zH>1WadxO8Qjb5m8}$8*r|I{lJqHTm-D@ zM=5al!uSSQ)sLiKi2TyKp`;&wLw!+vi3mjX{WRo7<$np7=-!7!ev>WwJYdS7%fhb# zQ~qRqGy%&qPAR^mM@0FiSp2_G@+al5%IitcRg7TlgU3v|;X)bdMbe+N!g@CU#- z3jPFGt*>Li;S1~Iz-oQ%T!8Y(`3C&AGw%`d8K{Z+dHOyPzts1qA@6D67xiOfCxJ;m zV~_~dXYNWN4_SYUfvNnm{`Lb?`4K($7k7G8luz$!gY5m=rROZ4xQ@=JX%gC@A?(pdZeq_1FlI!3{XpsSeZbbhS3s1&VnH}FT& z>D*s&34Rs#1iy+?fPE-GZx68dbkSM0;?md+psRQy@HB=0K43cUmbWi1Wr1b*MvE>n z-RXQ{af$q?xEcH^CO$f!R$PK##kPTM={XVng$j0qpUNvPoCgC;<&iiESk>nqz~Spu z=yG6Hp9kMB>N6Egq>ooWEb`C&Ex@k;Q+?(l>qI{WO!AlWx5A*PzY|vYCxJ=clD;39 z%9~-)Qc1T&j4>x@CM*w#U8&1yi1|~ z4)`d>2QvJ2U{yYU1P))=uLP{h=etFsJQKh~`ZfZBq4cOGX}xS2Fr^pAF~*<3l%CDP zv5$-LkUo<=yAhc3FYV)_z*IhNFF=1&$q&i*SVVrmQt0G=I2DoKa|&J7k1Ai!pw{w6 zw%AHV{>h-LnCPn&I^k+^0`W`evx+Z8coh@dq+gqyo9dS?6<-d16%#%6X_IcaG?ogw zT3>^K!`G=$2C!ORgYFga9Rw5A*ImGrABkg7pCk_w6VYuL|5ABRT6nk;zm%VvpDCcL zcslTW*`M-SNB^kge>dnV{wweSS^wxCP6L-oeM0!G!GbQzsIw8kL>HHhT??$rV+?Tk z!ul|n-+ZA@a{lvAv=_>+hA?FB z8!S+3*KM{geHs_VqsOIqCaL7A|{2$V=MySAa=AGW=;^k`J$M*#E32g}l32 z@y`dAXZ=(E@q1u3{-a8HsQo&Jiu$87ab){d>vOC{NA#2e|G##f$?xsq@!(hK6MLZ|S5iwOU|LZ|TGM}+4K zvn>UH{JgF69|tTi3QvEpSL8JSbQPxo=Rp5>eWM0$1*Y#CaDR#=Z^Giz*d~iEG2PAe zrhwpo33S49l=@WZA6s-0K-4FFLqXyO&1E~)xePo89OMbf3_ZP&avC*It=KZCW zf0e$;qD%hY08{zJrL%fqkA>*{jn{y~*QwC!z^cCV{H2g*4w$Gt?NRti{+~z0cU+-U z{eK-1-)V(T;X7rv&QDk1@O3J5DX^NK6ooG9e}W<(ALuF`1+12LoD!b$cQddW|1^az z5c#6Y1mgz*OGd7Cr+^@{;snPl@^( zW6@_S@l*Xi08Hgo?SWeUw=KHJlT|;8eBJ|{zD>g0hpaz^-aA{+W%w(ASEKxPJRtc@ z1g39^sNo4q{%sar;+??1M)+tvpz!>9!4!8q`2uvN;1j@`!7uG!5)%49)tw2rWmi?_ zUxfq$LW@LOY;1XHOU3DW<^d5>sZ<6ilA@|Y0Hc>PRz36Ty~i7pDntcjYK<*uJ2c9m zL_iq?8UY1cuyH_9^8q$N5cyDB)U=&^Hi)2K`nUFQ?!Nck_s*$Xh@a=Hy7&F>-fN#d zuD$l!Yp;DL_{l^Q`a|G%gKdAk1$@OrCRh@_>UGQV#dBckCkcN#;ixeb{d>U2ocMQx zCBDnwT>8i7)9Fd7a^H)7IIm8);8m*H@<%uPO(xvNm+zx*Sk{mn$>ZX;5#PlU{JUpxnvew%Q)M@K&wExjLnr-MHL{)B_?0)NuM9|ybj_ZQ&FbMJkBBlOPs-yeRd zrvF_ciM;sGpV9BL^5vVs@;({K5`LV4WAFJ9e2u*Tu-u_zv3wtV z>#~OA_w|Ik`I!xWGvRK03BTE)e;eU0mhj(w+p>J|=>Fs4cM{*l?*=db+O$4buzobX ziyy#3-Nh2`{WI}h{9xj{SmHnZ*O%psN2l-NhY{b!66ActV`dsEMGi2zKav$yZABS zXK^=?oqt;Js)Hq!|M%Wy`Qp*(x%kDzcd^8J)Nd`z7Z39l;Vzb6KkJ0g;-4k{Z1}<7 zUY2M)_*)^|#jge1yPkyqe!yTI|DvV4z^5pW#UBUX^SR{?{{>jeYs3ErEcIdWJ>bg> z5_$bI;K{@JRj|u%zW3!i{fmht{Nr61<#)NuNN#!cd^8K<@=U(bkm+L{$}F4*ayFk{NE1>so(De z{~}oNOFo|uzQYNZg#YRHm*tB`=f}mrOnethtVg|nS-yC5{8#RSe+By4@SFc|Sy5Yh z7r&GEE|!RL@0Wh``&|4U;=A~Fz_(LA{b0`r{;bn~J_wfb+whNoU*q6E1516`@V^90 zeOmmt;5Rz>Uhtb7{14zaJNTc$|J}j&do1&ngC7Wfn}fd;{B{R_1=#J+j{r}ed+)m( z?Dpram+AN0`SDl4lD`8GN&o%_u)NRW{N?(67Juz4b^R%Mi}=aU>H4wh-3FHOTl@~N zl*i)Ffu+0$%=;em^SXTybJckH1}FbAUakT^>cHiM%5%}u}@ItKobgP#m` z>*HqdeLw7k%X;`FGw=H; zC*1ObvrhkgE8#BwHSmKm61DvNFTr2!U@6;c?_4%TlvO_%ksr@VCmlz zZtt!WesG1sI{c!gtHJVqi;sfk{T3ewe~W{k0)C!@zZ-n*mrdf=;0Ikc!QTUZnu9mM z&;0U9_^n{KJ)Z@hJon!BT(H}o@1wn>{=}cC@ZYa|m44qbh@}0V3YPaR6E65?!1BIt zHTX}#Ql6)n_>a6pm*>3(7hoyRZ<_coa`I!_)2-iMAl${T1Ha}gChI*Z%Tt{8_+Ny( z_+#Kpxx>k}zr=s96aN8MOyh@uA3hV```|KE@*G&ot{^`Sek}OtO#Gj9!dD1)F^MeQ z`Nzxh#X}|VxOn}FX)NJqKfEkoJUYIMcdpnS{#qyg_Y&@6N#!0V{5gcXSi+a@T9z*! z&NEywjpf&4f3hrJJUTxv{*f!D!+#ts?WG^i4}(7dei%Q4?N0r^hHw|Z0sM6GW7q3jd!EWa3-=YOtHX*Mld|z4yHZ?B?$sPPonAi=F)aG2t$jwC?%XvPts5 z(nkrGJKgkyzXb4G9sF0|_d59hfIsBmzXw0%D<|~-2zK*-A9(WId*3C8r}O_R_@Sh) z>I;7Qzrpf;i@)&~^!uJiBEoN93YPbM_#%y$Uaj;0C=>oAq;DUok4J&OjXS4^uEv{$ zx#d4jxQiwHF@Lr!UpxoYr;BeQzKg#L?3+8Sq#`_EzOPs%U8l4X2; znG;{?Zv=MJi=1$gPaZv!-W5)`(0|tqedUA;{mKmex)W~u^ZT9pyq$0tOR)}qVp)|= zYV;+9yI2BNo$#L`+{G^gZ%}`Byh{ALocO;(xQqV){9NMO{`6V!vmN}kM_7M@Eq}Tm z{5RzXMX!A*xpGe^?CnmG`8^{47T^rNqB0o z4gU_Xw2#Gy!S>!diN9vB4c`V!ds+NUu+*=`&j#B&?S%ey2HWsAgXOL}i{B2mcgsoq zPa15)KLwWdviR@7_HH|g|5ev&Y{MT3ws+o1_~Q+>;m5%C4m=6}UW0A;bHLKx7QYZ| z@4%DzZ!y@0zXL4&$KwA1w)fyk{J%EXhW}r%^e>A)4R-m-=fRT)|0UN=^QQ-Z?IZl) zAlRkyPPovIXXqOzTzp?}v5{d=5np_j6{{OE4NT`b|JKea4hJO|Y0*}q;^--7QY zzT1C3Y+uF!1Ezyc^gp|5rQVLVwK+{ZS`e z-v6W-`X@W#LjRl@`WHCiLjS`v^e=Y8h5ns0^zU}Uh5ol@=zq@%7y3`n(0|Se7yA2V z=r2AtsU4yJHn2OMA}3tvbFf=~k9ER@er1M!%?TI!tr_~WPPov&YKH!`PPov&VTS%K zPPowj=?wiRop7Q5s~P&cop7Q5$|p^i|Es~1hy4JsTmG+i!i8Sqy8P)$guD33V7Gq1 z)1jCAJss?(|C?Ky{vhcJziOQL^1c_(r1uj}xTN>ene<-agbV%e&Cvgm6E5^0nxX%Q z6E5@@AD=GI1HqFAc?|59=Q1Z;=pQ>nf7l6^_g_0h|3oKT=+Dm3f1eXB^v|84f1wjD z^lzD=f4dVd^zWLXe~%L`^itM;a^|DE33u_mV7I+L6ayXpT&@Z{k<8Q4w# z?pD*=`u+wdzP#`FOnNst;ga8*XVNRca{tYxy!2tn+bvl9yMM^wHSpcZB>elq;?LX0 z|Ic9Y_x&gn|Hr}N&)bH-3@rZ1A8Nwi2p0e34>tJSVDU$9!|wu%Kl(2>;eQ7ffAkk4 z&rALua3lGRmz8~+;I9B*`s`)3e(eGy;I z^GW;0GwCJY&HDNc%gTRE6Mny^Yx^vV z8?e}$Tx#C;X|VW{wDtSp0)6+_FE4#|N$2O|V7dR`!53@%h!TGN32l!p`8imjZ`)d4 zdaH?lS*`Wu&ocPRhChC3QoeIwu@|=Ge=}J8Ki+BLe-bSIMQwk01pQb1kAAfYKMEH8 z-m1Yb1k3#qHva3tp3|Nm1l#)=9!h@y1gr|rm*CGx{0~g}<2Rnt`bU~swa3%IVsAsU zDf}w%$F8{?B=naoy%zj#`pel%bok|T6wyy!YvNxI7XR44dq9VOb`AbVe}1LGa&eK^ zFUdVqQlH-jmi;$dz74SK=UM#rXJ~!1&7Z$XfBdaU{hbAiz1FHp?-gLTe_XUR-9JjO z*zdj4@)ttgufar`**g!9(e0?{#L+K`2*kn>w0}7>0NXi>A#QmG39+6SnN&iFzMfN zj`2u;xD+ho`wzbtefqiOrH`5XUi2)+7w!3A6@JOm?}N9Af3b;w>ihJ0%}<&9pZ$LL z*DELd;n_bx`p;fg`^l1@2R)npnCH;m&7-yyE%O_4)H)w?6OpBKGTl zWO?aX7wPn#`lIXzzF~QZWYqf~@nh7NQy)t|PW}H0?=#^y{WRsLJ-)@@w}M5V{cwZ- z3M~7>kxBo<%>QB^DEHw?{T%<9Y5w;2V3)uBhnF#)=+Bu+uYM)<_1ly2@_w+`JH6F} zzxLI7|Hj6@2bSRoN1OuTjkc)(nx(&>u1h1 zYZ6QD1{@XJ+nX!p&UQoi*10p=MalQ+t?fG2f?ToyogJ(y9e1!55$w$02I$Er)uZ^0>i<&TPDnE>hFiC|v1XJMTMbzT?E5tW)hI1Bpi zfqJ{VMv@KJcFx2)D=TLOQ{8X5dTV0`*IvQVUdSfeH;(ZwvXo9)<#buzSL*D)oj*HP&e_B&CT^qKU!J4wOC!L$E(fSsqNF! zczM{SUX~PT<>gURs(R|WWL`vh9EV=ud132&m0t!)5Js8j*G(CO{)k#JW2rZ)YTzzI z`HAKkhpMXC+VX=nn8dhQZG;VwrLsxWs*ds~53@LHW0fT{21iF9fAYF??D5tsuS~~X zKkt2eHy(RqN}7`Pa0%ECH$aLz%tGMf@y@{tL?T%0MQb_AbS%p$@#9j&pk0u$O zt>M{`N|Edg?^J$ZNL0lREP`#}^J%x?g^)R;W~LC9D!Ch$Da951;r&_h58-6Bnxyzt zJi}K!1KuXTE1nUkl!b5Aif{3$_>J%_{#Ka{6m6hr14S$R48EoKli_F4aNeWXqx5uD z_M}Y9%#R`%Mv=5_T;_FHHL;hJQCg>!nq>z^RoqrHVX5J+!unsLYCsiKl~WZ{m6EPg zoeiFGZtd)P6Rvt;9&yd_#@S~?S+y(&FO1}^ z`H7Q<4nJXh@`htDOfN6nG@(ZGwnm20Je<~N0_do+t#eydvAVjIkf-&{bAHMXV}4k# z_*^-)*3{XxM-CkuAG_fMN#QGRdX^W4ke(MyQNZf5d>Eqx%$ZQ<43L1M8eGR0^THRcjE=#t^3)f^~QNu=t{sUEy4p;QguR241r zdIqCn7h04TE(u>&Y4}hqO8V5m~rA=N%ZKD~8YN?Jf?-NlqW`BCRA|;2}(mtuFnr32@k_7ujRQ*ZCj`xeE zy5NxXT+X~t{#@R@Pc&5@Luya;Ad~3c=`lq}h3HRzpYrOG_NS*BZ9x8XpBfTT4^GKu zx?lcOdzk!5Ki}9~IkU38a%;0S@{2kynkEZ8X0p6VR6nHKFkV98x@n@8hBH(nCX6H3 zU3J6t!T8!kC$2qmeD|txePe4hs+-NGmBk}pvQCTD557MhZ?UppSzXya7acwHw5P(g zi?+yuvWctK3u~`{YfBzf2bm+IsJ_}sDl@s8TP8JlJDJ`0$|j4OG%V9FXezI&{5a23 zuTH}@@!M>oF6fQfakt)>-R#mEQ!y;Xb5skf{@RTv>6Di1$lrRjshaAQ1c%fV9o}e9 zNO__NafX7tRdwd>eM8b!#6-BKwNk+5ZzHUifsEi@OszJ#NHRQdj6y3bnW?_=k z(b}xatGW%nwrqWoY--<68^2{FnW?rnrmk|Q;yWSxbVEk{q-p9PE0QE@+q$)ysd}WF z(_7jI$7NBT8<$P7ISQk;_OcKaMjH8HT&w7MK2ReU5nT!kyCQ0xRqJh(oHrV+7U$M?(BK?Z-%2I0d$i8g@kG=Q+LSnr3$IE`En;?ZUf7grQUys{ zpcY80w(-&?sS~eA6Tb-ZRBPerA*MQe<99MnZ%pZYFb8@N)vUR`s?$#8GW3;tOigKL z)M!E%Q?9I4>vc0K60a(BvOgl1%Q|aiUT+IEVtr&|%L5HUE*mtnlQpHC;JJoDU z{Pi=Vunm(C^=(-c9_lM+M0Gl~teV6Bh-_nP1LOFR6W6Qw&5df7{^uW zc|njiX`=_7ry}IKV)Pv2>*X*S<9*1~d>JWa=EnAB6x5sR8{-vJ)vHC-h)B}C9+1goUgdbPmN|Sr^7}{L^ zA3i9>9IdR6MvW)~MMFd6DEvV6??b_k1C5$@NR9P~H(VQI=jp`9`s}Qr$wU`lwyog4P(H zUSGc@payr+@}T;tR@b+7HXHt~<%e2Y-Sd2yMB2thSTt!7={$EVvp)-}p)Mc`{?*qV zKXGz=?9lbs9VS0<6om}~$7|ZAZS%;{0QBbtrT|k`pKykuwRk>JRb$G!6t=IXfb(cA zL!f1d^XLy9zwWI7W}=~mW}jeiR3$Nmo#fh^4R{oSmEMEsb{U4gO)D4KkQhv0=gYwa zN?z)=IR=v{cHHfVP{LSE5V2y`v6{nim<^47FbXge(s;%f; zd$$iQYu0hZJ*(FrxoYlQ_5D2Ehgg+ZrkGes0@1ZM-0%dZiZJw&JVbm$zwa@9%2Z*d zLme@Q>{O`e#!CKB(<0PW;#Yx>+M!O;&^H3Xgzc2MS4MsvrhXg+Y#lUB;(N^1UXc4u zTd@S{mLdI7yFI=BsMH31SV^~O#}E3+)M^y%q#0`c1bSep_n^oeOs2S8riioir~uW{ znI=}Kj!*(;R!C|(Bm<5v*b?dg3?dtRh_0MWE zqQfM5!(Te@E;029D{J-8wJK{gbVmU_s%=>v92u>yvQOiOX^^v%o#tK^AilFAlVb9%NQu;0Z74e}kT_J6_aJpc`&@OKY2z3ES#_gXT8FTUuMfOgLQs8&t!=;RaW$nlrQE zEv?5Xd~@gpfT$QiHRk8*X?@>+M?K8{X7< zYuERNx3ykV_-NM#7eldEABX4E7dmnMrMNotx<;x$_~CxiuM$R}LJUy}>cygNg>HMB zH@JJ&j6;55aLMO>iIbvef+ca4u|2K$R8nSLrFpa}mf7XjWurEwq*?(f<=#`Imt9F- zDIcn2WY;lNElP}SF!HN|Bn;ZZtMjZvC!3Tpn)xvGj6%9=iQf21%`{O&X1f%To%p6S zfTNLC%&A?4Lv^vS-E2Av&|8~oGxi^)lHd+e_6g>Krd{l+6Fuq-0> zlKiw}E6yrd%c8o4ZGfuDue5)q&6=zs>h#FKEAnsW=@sx%lP3L#|PW3w)mCY$p_lquge3~tb)dqe0)$5yQifygy zKUSPuT`y{*d5;j*Q$LB>eNLMq)U{)Jr`3(bDm6biCW#vIq}XEnTvXn98J1xcg;?ko zS(p_@cQ3s{4HeXXhSy@O6<1ZARZ$w1aTKD45&P|?YU7|_zeKE(2S-)?4l&R+PFDqf zKBo%y?$GYs(?_O5iMb+dPpLVvS& zGD2@uEzuh5D>aIc3>id-d-7?eAo*MIQjrbR7*ip>r`W9TnVC+{;>LEtn6a`~tQu-u zlOB_4#Z`_JgEmZIX>(_5yBgQcnPTk}>It7stF%m_1e5eMh_scbDo&@%rG!X~ zL+Dg(=t}HV*F)$urxH6r5rTA`qW;p`a%>v%#&Uu^fnmH1(PqV3}ow9w5_iJUi zuww`#fA8BV^h~dMQD>$iMEkx&%|=~MN^7+G6`S>O6PGQU`*~2&owCSJku{@i)GY>j zW2z~{k;EuFa>!)5>U)zO4VtBNOSRs&YEGnCkLFQo^mjJ%`!tTyf_D<|d2UzC9VB{> zJ#-9ql(>98209@VR#u>WPnwdEl&E3Uadhk|@-$8p?C@)h-G~`Bag-z;wkmCyCwkz2 z5ln`VNzGK+o28k4&>O$&o4qm5BNM}GaB|k8|NWf`qCcwUpZ}taP}|i1OEW^T4`f_- z@<@Ntrw61kD8&{#E3d&FNs;MU(=cK+`q>;EoP=T#Q~X=W37xr^vc8F;EDUo@IGT#H zBVnPX6!;V6R#Jvurpa22Nm=Jg$v|$xI?0)Z-#*E!!y$?rMPgx-o@usEuh(0_?BPkm z)M6uPI0v%PAlYz=bIi#*=3qa@P>Tbctk2@iPxL}t#uJC_JagF28_N$@Ug?d6$;!7H zM(Ph?_UaF*QT2!PaP@~SpA>k);+2f787O=%*UKXG0)DVj)R;+aH=O5P^#iRr*uY?T z;%n5t(>8+MB=)!HnJhNhtUf;NQc1VTFej4gxwqGl|5$38tm zceUxtFc}H6CS(p^hG;^JIX%qs5V^84D{Z4G1dt-Km>y4@NqZ-OJ*fGW_sz8H| z$*P#0wFs55d&g`>WZI{al*rWSiMpC~6@O^x_DMhq95eaeC%W#HUGMYaL=I5pUgL*t zNmH~Ho0eYOVzZzYVcf_s@ z`UzB{>Gud*W=C5OZ1uaSclkvP{@FdD-lWA~85Ywi{`(13qjg$nh`S~C;PR_JKiOgF zeW$jGVuwZEruzGC&HFw*Ku`FcSeDgtoTHB7s?Iq&mmvs|1O;uE=>zvNgAC=Z% z{HsdTbRk&xV!QFwOJrupn=+f!3bi=Tpj6p}!s+wf`o4+}up}r&sAh^svwV>wK z8N-!*qN|rpHDR=0>J&*?Q7K->pQy1+$4VlM<^4M5{3*^vlE#a?EP~mWWr3d869Gdy zV#n}$<45Y0m8R%9+{i&+XB>P|#v6G~F$&^`;J~ZA}dy`?=o9aZN-5<5< z{{2x^=VQBZXnU)!+pQSrxVz;S`rXjf^!fn_aWH}I*_uTS@1LoL#J9dg1nmui@-5K3d z^)3@+gK{4>rkhzY+)m2fC%O{%*xlwGom_!qri~RguEyog%IfyY+SaHM^{yARq6bIS zYYsq}m8{U}x00`clq!Gf<9sPq%Pm4_MD_)8YmSsHLa8ctk=)AWB&$k!r)nZS2@bAc z&21KWvF@@9QL53t2&LW^GChG3C&SCBDrb>*>h!onkqobTGR% z3Wg3=EyOPJZoNac2&LXPT%<>69=*srwc*D?lnW1YOepE^i@a0YaxX-ws&x@cZIrY~ ztLRnBBJb35(;}35K3j-V5iLZy@CetZFcx~}qPFzA?YXh|e!%DHdfO$V-zyd*IFJy-vz@iuI4?s1 z)Ng7p+k(28f@DX0fQcyt1}@sci};Kbhb^4K!S^P7N1|+7~YwO0p+1BZmGvk#lYDHYltTw8!`5YIrk$6CpB>fCGFeN5vY=+^Q z$(|re<2b{PHViU9XUi-Ik;kaG%+vK|J;IGnH^l~r`lZU6LsGrFPcE4%I<>l97OSJt zHR@Z(rGVOChMeSS-DbF>Eh5gc`x)E%VzZ)%)6L?xF;(p6$BWyH3GGQv`5%&+&Q5Kv z-!@)f6RW2pWpgj1ma-^lICXDIlj7(AA0s(d06E*1k*CU%8fO==I-|$#m?~P=_-Y9` zs@B)&i?|uMdUO4Zw41Wco9kI%PPZu6&o-R!x^n%jkXq*&Q%(ugX)lT)MTuHoLNUU? zFTKzYIrJB$sjqDVXR0F5wwC&UAvBn4;j<&fKOP3prC6Q*+wJF7ieU{}>X04FtZjT% zmON7JBkp?7>};!U)>WtsU}uD?0d|}Ya)TO*^9R{fd@A2hozXhp-l0QNt=Nzyaap%@ z&!K+RU?dR~h0iWBAdudMtC7gY<_7W7$KRY~q)|61F0ScgZqM_9?|qa4H7^^!QACr7A;oL|*5Z%E6wUfzx}hDTE2a;OT*sK9k#G7`Fr>o(3|j}> zZ3tJ0;Vo**wf{DZV9(+XOu)a;1fo3?u%0y1 z0C#H0)+8N?)m9KUI6RcoNUFyDxywb-5~z-p)O5hC!JYz(COwy##q``!(=F4~DDIb0 zDx97m3(^;am&;T(u)f3ns!R7zVK)i4XmB#k5A=68Lh``FDQ1*<5zbIUGlgn0{pn|B z!KI4XExYP4Mo7TIt7^rUA16VibwsI=Xw8Q2Ta^du4{9*ROGRA-L6GNd88*{xlW4t% zZ@wq`4+y=IH8>w6nALtTO~~-@173uK+ws=w3afeXm7d_=HuQ3wF@~(<=Q4~;pFJu$ z@K|r*xUQ*gfi&>*Fh-mX+bXCrpoG-XuUMxx`mmn_of@yNpV=qQcy?R5!DM|yF20%5#XYz>er&zEs&T;S%wZF5sQ((% z>J$lk*D_~e-8Ko{@CwsV`XEBNzOL_GnbSXa%_e>s$59>NFCJqmT*py2qPe2kcYC0Z zP8W>Npi`3x;(#bdJ!Opy9y8%td8#AUC%e33H(q)4y2E3Rl-_vcgz+~FExroz*;@Eq z;R7=_vbUPcCgnEACuQ+k$9~@8inYSiqpvH;kF-|JIz#sJ)5X?ljHFxiAPsFK`ZnG~ zITN~dk!4wo07&;yBeCUdH7;k0s4gPEN|^aMI~a4&wM;6wu{X-}K;(3KPMtHL=YFks%6+#RHN9GoqKAy zX@N_d&{^TA5`VPH`aQ?Jw?)iHp6r|Tks@I9!APGGICCYXDzgiOX!&Tfn?rdNsfooKe zD?E==QCw{k!;(rQR>fi#N;;CvnuNupBm)+wnYi~U625~tr}L`**IR?hJ~cQj1vB&d zd$a+z`%cfX4X=8R?>jvwH9dl|WD#z3S(pWQ|7r_4wn{%1?_wdWA=)~(Rz>S;Fl`S- z?)GVsU$&wf_<`ZKx(Yo$!_WoBcy&TBszr~WO4935+qXglf>n;Ge}HBtj?n00T{AER zD+n!~f~OlKos+`()k0O2g)E8^?C{fA1jJ!wu%f}73=B&k-@63E67a1wxNsKyeF{M> z&IsT$vV4)GfyY_6(o@6KDj@k}PJo^!q?!zmd~4sg51*;KiFkHd&a z;~2&!H6DRk)rTos3V1S%o%MHXx&FKaXpcEs#*pJf!dGg)%5gJ+>`4WPCtVvoR#ITh z)>v~k2o#{s0Au#`Fm#h;r7#v&g>f38%R}rA3P-gwl|ZBuK+Z9Vu-9jkKv@w)CCaS~ zf5N5Fw)y6aoy#dlqpgkgwNt3-j}-`cYp1T>Y?>45Cz)!FG0lv-|1zyQ>-*_+L|_pw z6Nfj?ZEVYph#RL@s%zDcl9H@B)Rc`1!p_(?+z4>yYc2H1Y%0}=LxGe#eJZcaP`+5k z(%Wo?yYAO)QPr%j2AuX1_ZY>huy$PEuj7^aHnpnfKmguBgG#Q8;zlJLQFj9{yp&uO}(N}0KL`t#LmQ|T9N8ILclmtzRL|#7u2P%H-qf_2{&j*z&^awtVj@Av-BMda+XSLmT^T z9fy7u;fBS-E&6mfm`j^B=av54VKALOogrg%B`EYc@syjr96OAiHpNqtw5i^M zp<&pmN1NicxKU=8DbftF>kN~I@l~UqP+K=$tEQ+(3fwaAP8g%zZ?kWmPdsVXvaSj? z5W~DJ^1AgkFO@!wb|vNu9ZSwUa_q*FFyon|zh=Kh|8jE^b0z1N_;Ph@8*$gQGz|JU6lmlK%% zNv#xNd4;V7>iZ^7t3YNSC9m|lu{MhWa>2=3RNdl_C&0xDTBd<17;*LjQm`xKd3mr> z&_pNV@6x9;WpYxf^kSA)Mds@fCM}cb6`1cGzLA^uu0J`x?y5m;g0cheAel@rNfWiY z=Q;_dCcQz4MKy*GCHK!DDCRXLAZAsIk^t970SbhK%^_}YGiz?hQ$pKaVuLuwZprVsG`@QsVqJZBe`gCirG2a-aKc8ZehBpEW|~TY=Wgd zd6O!Tb*>-iiXCGmRIK76hb8kZfp--B#R-g}@LSZq&G$sU*XCBj=u6qIuEP@VIS3zm zC)N(4-MzYIM1(n6^eVEM>)mp_AQ@6aEsP!C+oIDIA>K#`i)?Ihkx=QOCQrPU1~XEX zg!Z{s+bBd>ON@M%xN2VBHzp@rFi~B^Q!AlM5PFN}~1V zi}chm#&nKNLZ&_Dlw9uw<&H@Qxx){g%^oIg_Rpha6zwVQuH?RSEx&ewgT-8S{<%4q zE4LUb>^IO^)I`+lo-H)m<~{0Scf|&Y*~yT#EV~lyuy&=Qs$({1@b1K#3RxDZScyfr zb5vXUv=Sw?m)`8*mT#WtLuVl?vWQ7!w`aa=ySSxcbto=C@Nd_0QB#5iQO=T73us@o zoERU0ZNuzSHhGidEig3PF{mDqpGSu{(d(yikMd{C(;2ph8AAeVR^0=PA&+YXIo!~Ki~i(pJ~8HD zOI%W%tjO%{onGImUOu(thGJlM?PRR0W@RDrFIdZBeByR?8mS)06c~x`XP4JMH|y{4uVJ?ZS_h z+Ne3xh+`m_f$y8m4I?LIp?E08{|*~&0WK4ECzvayCsx*efXVd)VRnF>9{XX4<1De_ zmX*XXx!S0SFF-1`dl!32#k%84_nFf|x+Bi0hFH*K8S<1UW=obxx+2a$odzWp9#JsF z$&!M7&q;;a6|FLZJ3sR*jN>uLpJaq_}aiYS3fILS{VFamp7o2pj{Q}%Wxc_Swa3H4(I_aolp`6GysrVw3 zi&}aLCW4G;A=FWYOgG=K`c%`jb6#Py+1TWG$OiJ898EY5bjJ_gB*h=KTn@=e3RYT* zarNFs(QW$Axp-z+3ck^p%Y(*E+7fZ!}m-AZ{66ZmN@J7D!irm zZBlR@b?C9;XJ;r(@DF9XUzqspc5)k(tOR}W(KE0;?8ff})TZ5WypSZif-K%GI%AN< zldzhiJzJ!=d;4F2{(a%SGuUs4!2SLeE|qe5ZuUjJAfa!F^pCP`tnW3-`jfEI7Nd6l zKzoTGv0pi8AA4laUNxrV_`U9`*mWvVuUC~|s0d}Qm^$Ku6ohv(HjisgTwtFu zE!OE(!;JT6426oO%CL{-I^!07M&Cjs^dnC9gk1H-Q3~cIGb{C1uGKQnYagn{(Fuk@ zu~{i|>9M{#e2hRczO`80Y0M8SRYKTy#Nr7HE<`_XvO!=}#@R__yK`L~t~Ix%>c)s8 z$7LH3zEAm->ddZQ%!!o zS}Hqn&CAuW6l`_ROM&WELd@oNTCFz4+RjFL_~?;C*WW0oP+N>)*^5HOhp{5tQWsvB zz|I@<@-nP6+#siK(_1_V%di(u!4B?uDVQoXT_wFz?|1si)<$ug9E?`hyjXPhY&bme zy6b6z3Txs=o&78rg-z zWVkBCkeV9=9Ge$eu*~IHEw09+B;*DW6#CpH)XT9*A6uW6<6~Ue&Q+g^;9r;%iyIdExM0F7*_lp)vdp-7zAR9e`gp**&=k0iTn)Pm$b*?vFCYcOJuV;x z)2HX9z_`^L+ALH#NVd7Y!Oq&4BYu_I0qa(5`_9xVmeR^^$f)^ZX0RN9>l;D4BxnbJai_JyZ1qc<-rQn z7m$a}uyc1Fz8KBC&PjNh*fcXc_$lsYV>Ce_2AzeOM&}ie%*EOVh9lwWy$d;tv1`X- z9|m*)7M?%-H;FdfNx6mw?8m>pJanPUJMv1`V8U-uLP{Ax4S*Kb7} z6jOh3ETzDVhdBy^dF&-Q_aIut(lK|OaPBGlhJ?NHu!M#ylsSN{1-2Pg+C0@Y$MK>Zje8Cq*Slk$v`uE9v67V|=`b;e}g>aq~yVztOmQ|_q{!%^j(VkWJ5xpa+i zxmyO)Q>0RC17b|E)PysW21oBv`>brA8?STDsMYoWC01}vjWii>G_T66962vndIrE; z0%MjmOgMp8locW|{`9%Yi}@4-F3;MsGI^vFhrLp?7EC2f7uddxcj}c}-2*<-aIQ5F zcC9c&;}#!>9vmM*{frw~zfCcfG*SsZefQ6Vm1XBIE6uL<^u>_-gFpcP%`Wl(hl%(K!W zjA~4^nh4KWd6sY_6VAh#u{5tyV_6X#?G;7}C~-3!%HU@O>rO3A^e17JCi9XI7N&i+ zI4tbY=Bb@C&D!?X9xTl4Pz%E}Er_v5={0N|1Y9c+{SQ!sUW0Vx;-#08{aWTib*=)Drc2s(KbprU7^fuoH9`?lD@>qhQPz~o?F0^Jm9 zhN|okrTi`aLl}HH4ntxbPZwPKEiTv1e1{7V4svoGy3eU8jHNI^S#Z|_#VckWVTJ`p z5OKV1TJE=oo;pXIEyPqK!`d-n&$z+pCBRXKmSy+K(ITcADChB$#BieqkiD(VUT<&P zr?XMb=FEgMlC1fxGS|1)nVyeaKz+3wO(?O&lso(Ml=Ovp&x}HevyEQSawJ(?>?2W_ zS)#W}i~zZ3-|tPp^!>#XuuAp|NWsh`^HOk!&z${xmVKCLp}FI9UBZ2OrnAmVX&}e9 z8k0TPwGs;Le*9$nJhsPg|nzi&^|KVHh z>f$L_-NfQ4*lBR_6s)kYcnVfCw|ELx)xB2=VNvH{+q5z6Zi1Q{Uy>RZ+Chbp2=;Jk z#q}YY7viKQ^tg$~=MI<Pg@hQCjq&+~<;ev`Z`^nR zIT56+&(v|ZO)mSy679HriQVmW^;xx&oX_EBx34jZ!NR#^4OV8@XX=$$;$G_~=bps# zot$)f;?DLFzV}*I&L$q<=!9!a<(Q{eqJwf~U0G1(vkS`crbyy#S|NayVP1376{oBf z74F7n9keSiWcd~jzO;RDJ!VOQN0KwXFJ8$kki$+QQ#9Ps+u$gp)khfSCCCAvL?7~z z9)zqN)`f>{6dk-`$vOBrKur06f1$W^ng2^m&-(p_qpYz=l#vn z(#@BfK)!6eFXeBEcM<v%$^UQVKkwX7Kl1Tr;$3b5-x5cj z$MIjvV4n{W@6Pq5r3dlDOQ^0={i}QZ_fvYYN_Vx$!d5VASxsKw>ndgi29w|hlK}6vIEx`k z6TksMl7@7b>y@z~fVmhaBux-&Is8kCDr6UuG}^%0f&2kC5fGZDIL0O+O^O?2{)AfZ zd*e|`>wu3z8?9f;Ut<$U3tqh zx;Bl{%zybvIhr<|`iFmi;J_a^@COe3fdhZw!2fqSU>nAMr(@PUXJKKU)4pk*)7E^P zlUjV7lk7guX<2z(t}Zgq-DxR1dalY{`pi5#`jnaez%$CecCO0RN1MDmQmSixEAaJi z3`L$%?zV`^-L|vIj+3XeDeOfW!b5#KGimFt%+NKX%C@>|(pE*;>n!Cl1$*I$vil-x zOJ1oL^C~ZJ&kB<;}Ds87nBSXr5k}DRq#abZCx1ug;Ty!psT{`^Ldnxqqv~?9N7D z(!Tu9?d;gN-8=DnPr7$&02_JU>m8%a29^8r0DM|5?SMAwyi)RxTxY{CCvmU3LX7}x z;QO$06XoN~WZ^iM{xTOB$GHp2^UU_bJh#1j9({ZKW$<;cvR<>TQz3!ki2OQZxNiid&BB7_2}`MuaV02b|j(e@QRTt z>|d*O2@O*J;rc3f1ogRgN7HW3guX+J z8Reer)8`e>P|m`^pqF#K_%AyRM0Za>v6j(}I`o59j_!cxpELPq+Q8@y*8q zytw~dW(&W})*fZ1`j83gvHUUV_m#QKhev?-91Gqpw9R!j4Szd*-&uQuzWe#qzRM>j z^SjF1YTtX&K6qP|H|wUUyv7y>VsaYT$gk|;l4)S-CA)a~G_cGs?BaRT!1DX; z;w96-MqaRsS5E^|d+p-7X<(T>cJcOUVEKQxi(99Gjr@~cd}tb&`l(%fY#LbRIlK7d zX<+$h?cxj5z($_7i?2)rQ=@hn+B$K(SOsxG8Ou78d&~O`fnQ8NSXed2Bt>nziD8Zzo-AEf#ttR z|4joMdBj`y3b0Mb7)R=1Js$n>HY&P^`P*=l-G}wP=u@rJAN_%h|D*K&Z?&$y!pCvT z{?q)PXNewXzOG^J9>^-Q#P_f%Iz`DmA|Ld_xE+fsZ+(Qha8NlZU$@$QR?!oE5Mkbq zVvlJ%Apg``;P=VgXs@@{SM&LKGCz2WJU3Kv57&`-;w|tu90PyXTi~xd2L5Ajfxqz> z_+`NtTgO{3wnx9#m!5^~A?=M?6Sjw4j8^TPhbGSn?S*s7kp<5ek?oe!}sZ@9m_ssNA8k*Nk6@~1y@_b|K18s7X!SHO}lMnzaYG^wVfl+yYw9Bg?jFkxzLO3*H1gv^LhO{w(W~jj~yM+G)|>y z_-}){_0x_O2knU9R)2FNHTk8tB$9tO~V@1V2z5-M8_>CB6~)49Nv_x zi-+vv7WjM%Tdud^bjGmgVFO#I!1@JSN3T)x7u)g2$GvrNwRe8}&BJA=&j_7Woy?lb zU`-`@Q}?MIk#&(J@}k?9`_lfv1`XCXzTRE|zSbd!*DlrdMjx^rtd(?sBjJ8$RtG5O9k*2Ea>ATIW(13izS?B(60QzK|oKU&vD|M=4jl2cdt4sEV4frIhgAvyXPVYbCH84`e&ZVui4sN@3t1|om79! zX&a1bxwR_$cObv4t6!C;y}tN5>*|mlDaQi)dfdk=j`_bwZhf2Oyf(F*kvGIop!;D& z#`MU1U2dd!kaWL)w0)tF0oMHs`)B)nnr_`+umk$W=9<_E>e1%kXG`eynapjX>-+i| zj-K0!HvJmt0M@E{Tr4|5==37{PP8L02YRUrbC2_3#S-#zM7~Go`mo;P?8vD{z|3I2 zD?WI1zGZWQGW(B)xwCy(W$t8s=hOLUgAW^+BXhE^KdW?_GlMdjdyb@KSulSLH`$Sf zBj|K%t2#l?DOI~7TG2eQqm|=@U$V}em{WZH&@ov*1a;3l2LCLPOQ)rRz8l4^v#M+3 z`Qj%Mn2rBP%Wk&1UhTVk%6jz<>C2w49JOB6edmrt|39FI7NUn1qK6iuhZdoS7CFi8 zMfeIAIf>PaoQ}1p06zuzDXdXWaZ-b)bjcbs+}Pl>6jDxtPe&mMPSR=T)5a&oCs{~# z?Rx}0JiN|n>2K?@V$HU-`9kKewyrgwxy-iKTl8vlO8wmPXx zzAt=*^nawzRM+Ug{FQC(`!-`U)m6FSdcJ?3`IEYh7N^5VI1Bl-^J(Lg;*;dlVkB(l zhb?&-Px*2A?pcK-auf2?G9h1|(La&=j4c;yf8ObST6ba+-bsw<1iB$%rpgI7Wi-=< zdVE3k%mwI+-Sxnmfj0wh2HpbA^-eqRg}^&@qlZOD7E-!Q-yc^(FRCjVGADI)c6qk7 zYBg;>v1_#XWq9;I$bVwjz8_&Ls) zex+@Voh*IaHTJ#%+ZuR3b@Ki4KZfUB&`{qseAzeXyI)Wz<-|W~TfLV;19DQ3dK##& zfwrc=ZJ^yJo2l-T8CRqgq}&Fly-a%fWPFgM8EwGZpoz3@+A=uXX(`VpowEApfY%Do zT1lVdwsyCIHygQ|O}VY`7rb&3IBo8qZDyMpALLJ#XFK7-9PE-gW_DJ>%^C@_=fFvB z&z_SU(n^uRIZmWJr)2F0zWXFMTRzE5L366R!Lfjc2j|$Ut}(pLcc}D>1In9whq7;o zHh6b5sU0yxc{jvf9y-`$c%wyQ=!NZSsCO>7*maFXBmI$K)=*6<-3$Dg^~TUg#*{rT zX4n_c&0(wrwo|pPk>}`(di&|3LJpzXdO3Z~Hsw7{TQ7ZD4IP9( zcl0UqX9qW*p9iFPA=}())K(&U(t&rflKW z{{1Tb>Q@zTWww>;y)EQ@@kJ%L_6KfI>1!$D12-7y%U)GO*WROmE4R&w!bg_+)M*Be8>n5}WW54viIGQ2-^N&BE0`b0?qSFXc8icQ*w-me7L`v>s;?QUiN zh_s)7NTtV0A`i;*TqC`&q|$3vG1m<;?#syNZglw`bov3&?ajg^^MuGM&!_5Yf3ZZw+cJ@d2UUqjxxq%JXxnY4Ki=Y_r{WQl9VmqTgRRGd>_#1mpku} z{1=;y6ZCGwOvVY%e7&QeFGu`(Pp$LoeNg%Jz8ntfjR}2|`b6}v=wb9NpLRZNd{TUp z{Yk%1iaF^M)&cYh{Xn1Cap{xhnN#~DQxo(_a?8uQPfpOhj#x{M=Jm)fU3S>|u*2L| zE%)d$l||pB=x2Q9Ql|Qo;J0rp=sp=~qfa`}pC`JF#))RCe1e-QoPe%OI8B4T%(m=K z*wz7b&bgEI)r0@R_PtrvH$nSmFlV2L-eHb3m=Bvza+1b;nF|9O=5^iv1`C@?`mXnU zXEt))d(~>@pQR3b@9Ir_9GmJ4;eS`_)ob`Ja+Cz87o7dlA6>ndUq$*s>6fm~cVUmM zvZa5z)|}SK_nvA$d6xBGL|&2Sa3IfvU1Ref!UnmGxu~sc?8I}y{|fcCb&a0*8RY6b z8H-)kE^M5AzmqZ9)p*D6_v`&D{vT{`QsoBL#0Gqv1)cF=-uS9#87ET~ zb41?o(?$m1Yhe2{&+_ZRUcs(rtbfh#w@No{Pib8NU5xjXC%U3-6S~C^+ERW$j65&j zse|$hNiXueVMmcCy>?Y)XigzNdVPZaI9(U%SVEfam&(Vv*;%Y}Te z_GP=I2YuNl--EtP@x9uYNxoP6vW4%mX0t4<--7mjN7nIsn=IDS-P#U>cXd9WGG2gB z--~V({-|&G{ISlJw&-!2f+w^`kK4B9laJuf4}Ja$f6#aE$1f-IitLf^y{$FwmzRCN z&l|ri=csZrPXzTc7W{VD;p~-8vcTBGZlKNR4&6R<=ckdww;1>N3ULWxX_MFudcXfv zZ6{ZR7rBTPHt`7{U-dhLUwsy~=x*i%(NWm;Nkh*UxsX*OdxJR@sd*7Uu)yJ+5<0zz zH6Nd6?3lg{)*+tQ*cVHk`ETzHTVXqFk$)ESkbbUC|4SJIT2_!bpNGiY#oF)J=rRYn ztz~@BhQXfxh0u$QvYR#weP!tDucv-Z4{;m@dZYfuyzi@KF1Swkqh zg4WN+m@l=i^CHFT@L5gpb&KYydQkJU-UF?)Z=6?F(%AqdfGQ*dLWX;ky@4AV-U5>bcHB7qD({ zQky2*A73=lb?h^v=lniK_ZrfF@Q^i)F!@0(gVHruk_|{;cKQ10! z2b)Wg{$?k#skvkonq}Vf;Fle#=20uKZ)%)yf6}%xv66m1Rma+c-w&!1PugTSkwKm# zGg+@Bo#^6L&$=>JiViYw=S?S8PI{3m|$;!I^*!t^A?bG;_ z^e=NAdpQN_XYP7=d>mbJrygrf)*oqIf^4Br!ht?n>X&VOL63c{%c!FbIk7S#uZL}5 zT}KAHAdn$^w1?#=-%^z$#+DKpf(G;*bwv|u%c(l%2-~*mPatoY`B2MXrsLRSIT7>W zBbT$TKhCJT#P{A1<z1BC;?B(?DJK*gJUPSt+ zijz5c63!LO*@>fZRI9JEvVZ396RDFY)&1u|o+Ik^_Y9dEF7fk>IEU*gewZQg;6JbD zxDDv$l#7pqaY0`W&iCs&D&N_GKm8qkzL6q+je7Kl&+CbLD)0B}sjTwxkx5<8$o1d` z>%(f<6S(IExG5i3Vj54CeYnGI5ZUT0-l=u!`s|k{+VGULL0wm!^B7;uD}%}(gT*gu znLM2Dui={ke}nzCJmVX?1UcUFpdRmkt@}dscC`3~W6MQ8II#E2p1`s{(sDVmuf=@T!df=bY{)*8j^|`N__WG?jGs5qBTJZTL%Bi+YETldT6i~T^TVSW8ZG1QMo^0-{=RO%Kbijhu>eN z-0!VX=J$G)`$SQhPi$81;{(ckd|0`URh0YWs4}12M}*y&GJnYY`DmkIKH6%y-{~~m z?`942yQ>U$*BZmz)oZvri-uX*Eb$-_voc_?UWqvM1-=g(rTSSBb7uu#(O}ekY*g0c zQFmmY;iye<_xoc;NfqMe_pOkVDnuP)ZQT7{W5`Lajh2knar1kvA*W?^)CsMOyH9k6 zh!KpILfvumiEPN}=(Zelaol};RmfSm*eaRLar5ytA*a3Ba>AQp?qj_n)(hcM_(0r! zvPk&{EXUdtH=o>0`FkwD`W0=_EG-IkQ18~cfUJE`LoPY%!r%cwM-{vm`?ma%-z*!I>`f}QhZO$+|_D2 zEqg-DpD}l5C*yf{$W0m1lK!1FownT(Y^bPHEAUk&_EV%(+aEJ4YfQ$la_Y*`4%2+R zXqrFRY`Q-fFyX05pDMFb0bib@lq1i5&>+t->hD*jxxIqA-=#Opo~OAkMw($-xWyVX+Y>zdpP_r}u2dow!* z&ios%IBcdnk&pIrP3}YY#nRS&nH~GS{)ksx^Fv8DPcdq9&y!xfFJpJ^8+T9XuFZYu ze(>(+_t-f4zBcy)zl;8FvG<)8i*buh8|>4hiw|UWtoes;GynWTmkAAfU%vOX^zgkC zbV>btKXKn{>CXEm(xmRauaGu;I8Ex``-%I(yZs zQ$wDHg>A#L9Ckt)9>%^Aco^GJ;9+bWft%=8o&^(IPT;0vX*eNG8Xh7RT;L(>LV+Wv z8jg(WXVi)5^k_*x%h+@Mu~K{!c3gA3RMQ`KY6s)wH?*wDI;c+PGw^*;URmJ_lkycl zs@PQ7$?tVr%W*Rm$WF?a9en4J^zeYnUA--m?%X!PYj+Xyv!Ar$wyE-yEZ3l;jNA)f z1NOBkGK5^#=6=4F^sQQk%thVE%me&>AmbrJ$V?<{QQjmOk$UzX+D4yFsynD-@5^6% zBR%}J!!%L;-hbOl+SZ9QsblZU50K`|z9+K3piqn5IqtO4->Kb^+^4^#hC2CJ4`w{p zTe2TNWPK~+4HMJOnjjr{Tn#Nv8EFfjb?0`GpG+V>r%c4Q-!UNlh5xpQUwgTcUNg+| zqxiXd^>@;Zbmv{nJ!9j3-pt7&d%4+qeI0dMji{_0=!3}6zTqJM?c^T_^0ywD-_iN& zt+3l#h&p%6yw;#;ul{!KqP#@8p1G&qO?KCt3ygYqL3svae+IVN493+A_mpxSW4F#- z*j;BXGV0t#W!cZ2DRUxn5_MXN(A14hJj|Tk$vlu{4p?P43)dJ&b~8F}03F$CISH}<{`nwv;NzMVGTF~H2eO7cP}J*9nfINRa;U2( z!92S2F4mwSf9~#k%wcVe-O73tIqqN{jW9miB@G=zToLgI%AfDmZL~W?9cD1Mze-&( z=1+7IVTXvn2InZ+2j4<_CULAH* z-6l)hV4thphK`4)oY|Oxen<>5uQZ!>xB%baMMpQbkYPCJe{F+ndq%Cx&9|1=#SPHZ z&z!fK`C%<{g-^qg^-r!_>aEsSt!r{UCOSgbbCnVzG$M~HBJBL`d$4Q z@>Ng2{~vF=9Tu5K){%K{hRFONdc~Ldsr^23UT%&R!5-A(??HY28f%B; zy&pS7>S4T0TSxxA`h1sfv&YbzG4y5(y%|GqM$Ps@)NSvMqBo=H&4{_M5OEiFN6?!Q z^rnTriEDks8bjihy~w_CZ~IcM^M@i&W%T}Kv_Y?dbD3wtxi8@#oLF~M&w@1Gs`Xv8 zhgi*w_!0u0mj4|(?eN;cN~qi&+e3QoR2+D~CN6UBki<{B|KO)(NxL{mTejOz>;0M? zxiUyIB?fvcdx{q_{x2l1e`64H^_#!9SeUa0$@**d(`XX%Q3xHn$`~vjG1+3dH zuxq0D7x3}c@Y%q;!}`dsEicEOI77$jCBzmTx!T?kW*t_G4Hze`PVYzKN9ku@sCv#nviYrS6&KF1M$9se8uCrRJHdmpXN`R=HT=&x=rWh}ce%?3yJSyS_HAw3G-NM!=;t}TU+c6B?n-dG!CejR+UarI1a}s=2Dr`O zE}kAYCAhnny6-73HJ9yK>MlF5^jI{Q%Qh{QePbsn_=TnHB`fzm{ooHS9s00sn9J5K z^==CVH2ZtZPRp!SjhXVILAFSZ2>*x7d|S zfG+{Q1bCXU$b1Vt0lZ^(#4mr)3i|a|l%FP^5nnj?= zKc}&~Yly)}Yd>r|`0d?Gw6FD~{+MSKmQc2Xyqkf1a4v9DjW;DN^QygSqk(;1W3Q?) zu-AERRM_t|CDmPPj{*ymHVVv?CorC7Wr1=l$0>7XT$MsAYq6gte!-Wu69?E?0|mO-yh-o>xTJ*Pq7Byz}ox^%BkrG_i@U4n6iGN+?~JF`~G4l+D#FI z*a$=79MWsHX`hN&i5qU^b#RYk4ZgsT7=dHrwn(|l!F`uu?z{lpj~o-%t!%)Kq-=bf zX5~{l4#nL01@P}B?f^USd-onq2m2<_OxX`p_D{h5+C}DbM_S%TM4Z z_0t#TPUzYBF69(}-weC}{APha44gioJ?_p6lyg1s&jG(4_~!)v1>p3{&JDmnr5qRd zO~75?HwpYxz&8N@2=Ff`XC3exfv*F8qrfi!elPIlz#mpl5%@;nVjpZ2_`85V4txRd zpD3pf_y*v8z&8l|IN-ko9tZxqa@GUC0r-00HvorkGS-AAllWD?x86$FoO|)C1GSU* z#aY}p3^!Y&%$}DFx951}sQXlD<|D-NJfWPK&k<++9PoDFPXK>6at^#6xBh?mka9qhlfp>tEalfXHvw2m{br*n2Z zEaNVTE+obdc*pJ*XQ8o#^}-UTjSu?LN%Cpoli<@~oF+7(ztX-g&aav{U;UK!jn~S$ zQ)12WSG4TCy_0jaj~j052KMom8*VCoG(D~8p4JWQkuGO1E&jht&x#}H2?;$yOYX~^ z*B*lw;`;}Q?=LsOnu63-<+(bO{g+R8U%E;58PSmsK(m3~v<&;in~b3~-&CSE?GtWP zLu>9gyuY4dcwfBHFnjuEx=n?d=@-8N&JM<6xy6~kyTv}gNW5J+X`gT57nNs`F5+}liH(GOgqf@F5_whcHJPi)b6#$K>jlii zN6ypSfiTD&2<3V3ZyxX?=jnOyZyx-c2mhKV|2WDgejLA|wgvL1lc$k6y3tG-?6o5>`HLE!CejR+UarI1$P#>u)U`l+{M%5 zwh8X;7B^dNF?;s3xIG72rllbzxSPN&fZGr5;Pkk}^+GSW-QcbUckT4JEt+0%4RD*m zT|7N5`+U&b486_J+YG(U)6&ac68siD^A2A>W=wvIY@HPR4(a{*j>Tu&HRzf|_e%EO z&kfcWf2;N3sd`>t?X+~SvaJGpM1h{v>FQ#;ro0Tlo|MbpRQGwle$D@uy|8lwU5mX} zO;_xp9H;j#bCKmyvl1qrMC`-z*}2)BK^exmtc$`yJjI1(Hm>jogsyn`q~G~o$ltW}!5+hxi<JOalzRzRtrTJ`gd5OK3 z#b>+AhtMqt&T-%OD7vNj9CP{m4M#0L$6cOdPe$;sLeM4MMZZY;GVEZ%Ph$s5x`WLt z=_WR?q}xU*Ea|^h=CZxa-3QJoS&PqcBF*QNBCA(8(M>B#(LLulvEApCV&!w3_}Uev z_{tSd&8%}uHO4tk?SU1<53F$NcCRSal~*`323O#3hQG$S9&+H1?U9g~HU88K>pAQ_ z#9Jijr86a8=$IAgm=)-l73i21z|R$)0zVhH#9XaF$E-ldtU$+{MgQ5l ze66$8zliLRhCJ`V)@%rG8Iiejgenzct%9!vXtX*VJThpg98fIDF(&MbJ@@;wA>nkJv ze(K-{w~Xk$i+jZ1i;cqh1pWK_lz*De8_C|KpHXWo{BS6rxox8ScL({xe!l#7#nurU z$4r$Srv<&8KyP=HPt!iSiL+moeLIRmNA_1f9q4dPNB%3=E$8|5We24`bbOjP48}~g z&XG{Um1{xf>Y_y6d!^8Yxw4bm6v zXZd%}l=QjzAzl94xgSQC-?RIO^5x9_1donU{@3*V9cf+H>S`ZIox(dOiT_ITt@1

--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≧3OV8M7fB6gp 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%0DodRQ>@SWsnQg4eB>yg$d@dsS8=y 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

aN*! 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 U^Ypp5|JUEVxcwjeU&rVEKe5qhga7~l From 3917e90c1a149f732e1d2d1f07f162e73265fad7 Mon Sep 17 00:00:00 2001 From: nhtyy Date: Tue, 3 Dec 2024 16:31:39 -0800 Subject: [PATCH 09/36] chore(docs) migrate to docusaurus --- book2/.gitignore | 20 + book2/README.md | 41 + book2/create-markdown-templates.sh | 45 + .../developers/building-circuit-artifacts.md | 8 + book2/docs/developers/common-issues.md | 147 + book2/docs/developers/rv32im-specification.md | 8 + book2/docs/developers/usage-in-ci.md | 27 + book2/docs/generating-proofs/advanced.mdx | 68 + book2/docs/generating-proofs/basics.mdx | 19 + .../hardware-acceleration.md | 7 + .../hardware-acceleration/avx.md | 30 + .../hardware-acceleration/cuda.md | 26 + book2/docs/generating-proofs/proof-types.md | 49 + .../docs/generating-proofs/prover-network.md | 9 + .../prover-network/explorer.png | Bin 0 -> 167094 bytes .../prover-network/key-setup.md | 40 + .../generating-proofs/prover-network/key.png | Bin 0 -> 10085 bytes .../generating-proofs/prover-network/usage.md | 83 + .../prover-network/versions.md | 30 + .../recommended-workflow.mdx | 57 + book2/docs/generating-proofs/setup.md | 38 + book2/docs/generating-proofs/sp1-sdk-faq.md | 15 + .../getting-started/hardware-requirements.md | 41 + book2/docs/getting-started/install.md | 115 + .../docs/getting-started/project-template.md | 5 + book2/docs/getting-started/quickstart.md | 124 + book2/docs/introduction.md | 33 + .../contract-addresses.md | 80 + .../onchain-verification/getting-started.mdx | 34 + .../docs/onchain-verification/solidity-sdk.md | 122 + book2/docs/sp1.png | Bin 0 -> 66629 bytes book2/docs/theme/head.hbs | 6 + .../verification/off-chain-verification.md | 48 + .../onchain/contract-addresses.md | 101 + .../verification/onchain/getting-started.mdx | 35 + .../docs/verification/onchain/solidity-sdk.md | 122 + book2/docs/what-is-a-zkvm.md | 35 + book2/docs/why-use-sp1.md | 46 + book2/docs/writing-programs/basics.mdx | 15 + book2/docs/writing-programs/compiling.mdx | 100 + .../docs/writing-programs/cycle-tracking.mdx | 124 + .../writing-programs/inputs-and-outputs.mdx | 67 + book2/docs/writing-programs/patched-crates.md | 234 + book2/docs/writing-programs/precompiles.mdx | 24 + .../writing-programs/proof-aggregation.md | 58 + book2/docs/writing-programs/setup.md | 50 + book2/docusaurus.config.ts | 113 + book2/package-lock.json | 18242 ++++++++++++++++ book2/package.json | 48 + book2/sidebars.ts | 108 + book2/src/css/custom.css | 30 + book2/src/pages/index.tsx | 11 + book2/static/.nojekyll | 0 book2/static/crates_zkvm_lib_src_lib.rs.mdx | 133 + ...s_cycle-tracking_program_bin_normal.rs.mdx | 34 + ...examples_fibonacci_program_src_main.rs.mdx | 39 + ...les_fibonacci_script_bin_compressed.rs.mdx | 35 + ...amples_fibonacci_script_bin_execute.rs.mdx | 37 + ..._fibonacci_script_bin_groth16_bn254.rs.mdx | 42 + .../examples_fibonacci_script_build.rs.mdx | 5 + .../examples_fibonacci_script_src_main.rs.mdx | 56 + .../examples_groth16_program_src_main.rs.mdx | 30 + .../examples_groth16_script_src_main.rs.mdx | 57 + .../examples_io_program_src_main.rs.mdx | 25 + book2/static/img/favicon.ico | Bin 0 -> 4286 bytes book2/tsconfig.json | 8 + 66 files changed, 21439 insertions(+) create mode 100644 book2/.gitignore create mode 100644 book2/README.md create mode 100755 book2/create-markdown-templates.sh create mode 100644 book2/docs/developers/building-circuit-artifacts.md create mode 100644 book2/docs/developers/common-issues.md create mode 100644 book2/docs/developers/rv32im-specification.md create mode 100644 book2/docs/developers/usage-in-ci.md create mode 100644 book2/docs/generating-proofs/advanced.mdx create mode 100644 book2/docs/generating-proofs/basics.mdx create mode 100644 book2/docs/generating-proofs/hardware-acceleration.md create mode 100644 book2/docs/generating-proofs/hardware-acceleration/avx.md create mode 100644 book2/docs/generating-proofs/hardware-acceleration/cuda.md create mode 100644 book2/docs/generating-proofs/proof-types.md create mode 100644 book2/docs/generating-proofs/prover-network.md create mode 100644 book2/docs/generating-proofs/prover-network/explorer.png create mode 100644 book2/docs/generating-proofs/prover-network/key-setup.md create mode 100644 book2/docs/generating-proofs/prover-network/key.png create mode 100644 book2/docs/generating-proofs/prover-network/usage.md create mode 100644 book2/docs/generating-proofs/prover-network/versions.md create mode 100644 book2/docs/generating-proofs/recommended-workflow.mdx create mode 100644 book2/docs/generating-proofs/setup.md create mode 100644 book2/docs/generating-proofs/sp1-sdk-faq.md create mode 100644 book2/docs/getting-started/hardware-requirements.md create mode 100644 book2/docs/getting-started/install.md create mode 100644 book2/docs/getting-started/project-template.md create mode 100644 book2/docs/getting-started/quickstart.md create mode 100644 book2/docs/introduction.md create mode 100644 book2/docs/onchain-verification/contract-addresses.md create mode 100644 book2/docs/onchain-verification/getting-started.mdx create mode 100644 book2/docs/onchain-verification/solidity-sdk.md create mode 100644 book2/docs/sp1.png create mode 100644 book2/docs/theme/head.hbs create mode 100644 book2/docs/verification/off-chain-verification.md create mode 100644 book2/docs/verification/onchain/contract-addresses.md create mode 100644 book2/docs/verification/onchain/getting-started.mdx create mode 100644 book2/docs/verification/onchain/solidity-sdk.md create mode 100644 book2/docs/what-is-a-zkvm.md create mode 100644 book2/docs/why-use-sp1.md create mode 100644 book2/docs/writing-programs/basics.mdx create mode 100644 book2/docs/writing-programs/compiling.mdx create mode 100644 book2/docs/writing-programs/cycle-tracking.mdx create mode 100644 book2/docs/writing-programs/inputs-and-outputs.mdx create mode 100644 book2/docs/writing-programs/patched-crates.md create mode 100644 book2/docs/writing-programs/precompiles.mdx create mode 100644 book2/docs/writing-programs/proof-aggregation.md create mode 100644 book2/docs/writing-programs/setup.md create mode 100644 book2/docusaurus.config.ts create mode 100644 book2/package-lock.json create mode 100644 book2/package.json create mode 100644 book2/sidebars.ts create mode 100644 book2/src/css/custom.css create mode 100644 book2/src/pages/index.tsx create mode 100644 book2/static/.nojekyll create mode 100644 book2/static/crates_zkvm_lib_src_lib.rs.mdx create mode 100644 book2/static/examples_cycle-tracking_program_bin_normal.rs.mdx create mode 100644 book2/static/examples_fibonacci_program_src_main.rs.mdx create mode 100644 book2/static/examples_fibonacci_script_bin_compressed.rs.mdx create mode 100644 book2/static/examples_fibonacci_script_bin_execute.rs.mdx create mode 100644 book2/static/examples_fibonacci_script_bin_groth16_bn254.rs.mdx create mode 100644 book2/static/examples_fibonacci_script_build.rs.mdx create mode 100644 book2/static/examples_fibonacci_script_src_main.rs.mdx create mode 100644 book2/static/examples_groth16_program_src_main.rs.mdx create mode 100644 book2/static/examples_groth16_script_src_main.rs.mdx create mode 100644 book2/static/examples_io_program_src_main.rs.mdx create mode 100644 book2/static/img/favicon.ico create mode 100644 book2/tsconfig.json diff --git a/book2/.gitignore b/book2/.gitignore new file mode 100644 index 0000000000..b2d6de3062 --- /dev/null +++ b/book2/.gitignore @@ -0,0 +1,20 @@ +# Dependencies +/node_modules + +# Production +/build + +# Generated files +.docusaurus +.cache-loader + +# Misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/book2/README.md b/book2/README.md new file mode 100644 index 0000000000..0c6c2c27be --- /dev/null +++ b/book2/README.md @@ -0,0 +1,41 @@ +# Website + +This website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator. + +### Installation + +``` +$ yarn +``` + +### Local Development + +``` +$ yarn start +``` + +This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. + +### Build + +``` +$ yarn build +``` + +This command generates static content into the `build` directory and can be served using any static contents hosting service. + +### Deployment + +Using SSH: + +``` +$ USE_SSH=true yarn deploy +``` + +Not using SSH: + +``` +$ GIT_USER= yarn deploy +``` + +If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. diff --git a/book2/create-markdown-templates.sh b/book2/create-markdown-templates.sh new file mode 100755 index 0000000000..9aaae0de9f --- /dev/null +++ b/book2/create-markdown-templates.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +# Define an array of file paths +paths=( + "../examples/fibonacci/script/bin/execute.rs" + "../examples/fibonacci/script/src/main.rs" + "../examples/fibonacci/script/bin/groth16_bn254.rs" + "../examples/fibonacci/script/build.rs" + "../examples/fibonacci/script/src/main.rs" + "../examples/groth16/program/src/main.rs" + "../examples/groth16/script/src/main.rs" + "../examples/io/program/src/main.rs" + "../examples/cycle-tracking/program/bin/normal.rs" + "../crates/zkvm/lib/src/lib.rs" + "../examples/fibonacci/script/bin/compressed.rs" + "../examples/fibonacci/program/src/main.rs" +) + +# Ensure the ./static directory exists +mkdir -p ./static + +# Loop over the paths and process each file +for file in "${paths[@]}"; do + if [[ -f "$file" ]]; then + # Get the full path and strip everything before 'sp1/' + stripped_path=$(readlink -f "$file" | sed -e 's|.*sp1/||') + + # Replace slashes with underscores for the target file name + target_name=$(echo "$stripped_path" | tr '/' '_') + + # Define the target markdown file path + target="./static/${target_name}.mdx" + + # Write the content into the markdown file + { + echo "\`\`\`rust" + cat "$file" + echo "\`\`\`" + } > "$target" + + echo "Processed $file -> $target" + else + echo "File not found: $file" + fi +done diff --git a/book2/docs/developers/building-circuit-artifacts.md b/book2/docs/developers/building-circuit-artifacts.md new file mode 100644 index 0000000000..9e936d3ff3 --- /dev/null +++ b/book2/docs/developers/building-circuit-artifacts.md @@ -0,0 +1,8 @@ +# Building Circuit Artifacts + +To build the production Groth16 and PLONK Bn254 artifacts from scratch, you can use the `Makefile` inside the `prover` directory. + +```shell,noplayground +cd prover +RUST_LOG=info make build-circuits +``` diff --git a/book2/docs/developers/common-issues.md b/book2/docs/developers/common-issues.md new file mode 100644 index 0000000000..5d0a50e808 --- /dev/null +++ b/book2/docs/developers/common-issues.md @@ -0,0 +1,147 @@ +# Common Issues + +## Rust Version Errors + +If you are using a library that has an MSRV specified, you may encounter an error like this when building your program. + +```txt +package `alloy v0.1.1 cannot be built because it requires rustc 1.76 or newer, while the currently active rustc version is 1.75.0-nightly` +``` + +This is due to the fact that your current Succinct Rust toolchain has been built with a lower version than the MSRV of the crates you are using. + +You can check the version of your local Succinct Rust toolchain by running `cargo +succinct --version`. The latest release of the Succinct Rust toolchain is **1.81**. You can update to the latest version by running [`sp1up`](../getting-started/install.md). + +```shell +% sp1up +% cargo +succinct --version +cargo 1.81.0-dev (2dbb1af80 2024-08-20) +``` + +A Succinct Rust toolchain with version **1.81** should work for all crates that have an MSRV of **1.81** or lower. + +If the MSRV of your crate is higher than **1.81**, try the following: + +- If using `cargo prove build` directly, pass the `--ignore-rust-version` flag: + + ```bash + cargo prove build --ignore-rust-version + ``` + +- If using `build_program` in an `build.rs` file with the `sp1-build` crate, set `ignore_rust_version` to true inside the `BuildArgs` struct and use + `build_program_with_args`: + + ```rust + let args = BuildArgs { + ignore_rust_version: true, + ..Default::default() + }; + build_program_with_args("path/to/program", args); + ``` + +## `alloy_sol_types` Errors + +If you are using a library that depends on `alloy_sol_types`, and encounter an error like this: + +```txt +perhaps two different versions of crate `alloy_sol_types` are being used? +``` + +This is likely due to two different versions of `alloy_sol_types` being used. To fix this, you can set `default-features` to `false` for the `sp1-sdk` dependency in your `Cargo.toml`. + +```toml +[dependencies] +sp1-sdk = { version = "2.0.0", default-features = false } +``` + +This will configure out the `network` feature which will remove the dependency on `alloy_sol_types` and configure out the `NetworkProver`. + +## Stack Overflow Errors + Bus Errors + +If you encounter any of the following errors in a script using `sp1-sdk`: + +```shell +# Stack Overflow Error +thread 'main' has overflowed its stack +fatal runtime error: stack overflow + +# Bus Error +zsh: bus error + +# Segmentation Fault +Segmentation fault (core dumped) +``` + +Run your script with the `--release` flag. SP1 currently only supports release builds. This is because +the `sp1-core` library and `sp1-recursion` require being compiled with the `release` profile. + +## C Binding Errors + +If you are building a program that uses C bindings or has dependencies that use C bindings, you may encounter the following errors: + +```txt +cc did not execute successfully +``` + +```txt +Failed to find tool. Is `riscv32-unknown-elf-gcc` installed? +``` + +To resolve this, re-install sp1 with the `--c-toolchain` flag: + +```bash +sp1up --c-toolchain +``` + +This will install the C++ toolchain for RISC-V and set the `CC_riscv32im_succinct_zkvm_elf` environment +variable to the path of the installed `riscv32-unknown-elf-gcc` binary. You can also use your own +C++ toolchain be setting this variable manually: + +```bash +export CC_riscv32im_succinct_zkvm_elf=/path/to/toolchain +``` + +## Compilation Errors with [`sp1-lib::syscall_verify_sp1_proof`](https://docs.rs/sp1-lib/latest/sp1_lib/fn.syscall_verify_sp1_proof.html) + +If you are using the [`sp1-lib::syscall_verify_sp1_proof`](https://docs.rs/sp1-lib/latest/sp1_lib/fn.syscall_verify_sp1_proof.html) function, you may encounter compilation errors when building your program. + +```bash + [sp1] = note: rust-lld: error: undefined symbol: syscall_verify_sp1_proof + [sp1] >>> referenced by sp1_lib.b593533d149f0f6e-cgu.0 + [sp1] >>> sp1_lib-8f5deb4c47d01871.sp1_lib.b593533d149f0f6e-cgu.0.rcgu.o:(sp1_lib::verify::verify_sp1_proof::h5c1bb38f11b3fe71) in ... + [sp1] + [sp1] + [sp1] error: could not compile `package-name` (bin "package-name") due to 1 previous error +``` + +To resolve this, ensure that you're importing both `sp1-lib` and `sp1-zkvm` with the verify feature enabled. + +```toml +[dependencies] +sp1-lib = { version = "", features = ["verify"] } +sp1-zkvm = { version = "", features = ["verify"] } +``` + +## `sp1-sdk` `rc` Version Semver Errors + +When using release candidate (RC) versions of `sp1-sdk` (such as `3.0.0-rc1`), you might face compilation errors if you upgrade to a newer RC version (like `3.0.0-rc4`) and then try to downgrade back to an earlier RC version (such as `3.0.0-rc1`). + +This issue arises because some RC releases introduce breaking changes that aren't reflected in their version numbers according to Semantic Versioning (SemVer) rules. To fix this, you need to explicitly downgrade all related crates in your `Cargo.lock` file to match the desired RC version. + +To start, verify that the `sp1-sdk` version in your `Cargo.lock` file differs from the version specified in your `Cargo.toml` file: + +```shell +% cargo tree -i sp1-sdk +sp1-sdk v3.0.0-rc4 (/Users/sp1/crates/sdk) +├── sp1-cli v3.0.0-rc4 (/Users/sp1/crates/cli) +├── sp1-eval v3.0.0-rc4 (/Users/sp1/crates/eval) +└── sp1-perf v3.0.0-rc4 (/Users/sp1/crates/perf) +``` + +After confirming the version of `sp1-sdk` in your lockfile, you can downgrade to a specific RC version using the following command. Replace `3.0.0-rc1` with the desired version number: + +```shell +% cargo update -p sp1-build -p sp1-sdk -p sp1-recursion-derive -p sp1-recursion-gnark-ffi -p sp1-zkvm --precise 3.0.0-rc1 +``` + +This command will update the `Cargo.lock` file to specify the lower RC version, resolving any version conflicts and allowing you to continue development. diff --git a/book2/docs/developers/rv32im-specification.md b/book2/docs/developers/rv32im-specification.md new file mode 100644 index 0000000000..84e8aa7584 --- /dev/null +++ b/book2/docs/developers/rv32im-specification.md @@ -0,0 +1,8 @@ +# RV32IM Specification + +SP1 implements the RISC-V RV32IM instruction set with some implementation details that make it more suitable for proving. + +- LW/SW memory access must be word aligned. +- LH/LHU/SH memory access must be half-word aligned. +- Memory access is only valid for addresses `0x20, 0x78000000`. Accessing addresses outside of this range will result in undefined behavior. The global heap allocator in `sp1_zkvm` will panic if memory exceeds this range. +- The ECALL instruction is used for system calls and precompiles. Only valid syscall IDs should be called, and only using the specific convention of loading the ID into register T0 and arguments into registers A0 and A1. If the arguments are addresses, they must be word-aligned. Failure to follow this convention can result in undefined behavior. Correct usages can be found in the `sp1_zkvm` and `sp1_lib` crates. diff --git a/book2/docs/developers/usage-in-ci.md b/book2/docs/developers/usage-in-ci.md new file mode 100644 index 0000000000..33da5e45f9 --- /dev/null +++ b/book2/docs/developers/usage-in-ci.md @@ -0,0 +1,27 @@ +# Usage in CI + +You may want to use SP1 in your [Github Actions](https://docs.github.com/en/actions) CI workflow. + +You first need to have Rust installed, and you can use +[actions-rs/toolchain](https://github.com/actions-rs/toolchain) for this: + +```yaml +- name: Install Rust Toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: 1.81.0 + profile: default + override: true + default: true + components: llvm-tools, rustc-dev +``` + +And then you can install the SP1 toolchain: + +```yaml +- name: Install SP1 toolchain + run: | + curl -L https://sp1.succinct.xyz | bash + ~/.sp1/bin/sp1up + ~/.sp1/bin/cargo-prove prove --version +``` diff --git a/book2/docs/generating-proofs/advanced.mdx b/book2/docs/generating-proofs/advanced.mdx new file mode 100644 index 0000000000..cd4848c48d --- /dev/null +++ b/book2/docs/generating-proofs/advanced.mdx @@ -0,0 +1,68 @@ +import Compressed from "../../static/examples_fibonacci_script_bin_compressed.rs.mdx"; +import Execute from "../../static/examples_fibonacci_script_bin_execute.rs.mdx"; + +# Advanced Usage + +## Execution Only + +We recommend that during the development of large programs (> 1 million cycles) you do not generate proofs each time. +Instead, you should have your script only execute the program with the RISC-V runtime and read `public_values`. Here is an example: + + + +If the execution of your program succeeds, then proof generation should succeed as well! (Unless there is a bug in our zkVM implementation.) + +## Compressed Proofs + +With the `ProverClient`, the default `prove` function generates a proof that is succinct, but can have size that scales with the number of cycles of the program. To generate a compressed proof of constant size, you can use the `prove_compressed` function instead. This will use STARK recursion to generate a proof that is constant size (around 7Kb), but will be slower than just calling `prove`, as it will use recursion to combine the core SP1 proof into a single constant-sized proof. + + + +You can run the above script with `RUST_LOG=info cargo run --bin compressed --release` from `examples/fibonacci/script`. + +## Logging and Tracing Information + +You can use `utils::setup_logger()` to enable logging information respectively. You should only use one or the other of these functions. + +**Logging:** + +```rust +utils::setup_logger(); +``` + +You must run your command with: + +```bash +RUST_LOG=info cargo run --release +``` + +## CPU Acceleration + +To enable CPU acceleration, you can use the `RUSTFLAGS` environment variable to enable the `target-cpu=native` flag when running your script. This will enable the compiler to generate code that is optimized for your CPU. + +```bash +RUSTFLAGS='-C target-cpu=native' cargo run --release +``` + +Currently there is support for AVX512 and NEON SIMD instructions. For NEON, you must also enable the `sp1-sdk` feature `neon` in your script crate's `Cargo.toml` file. + +```toml +sp1-sdk = { version = "2.0.0", features = ["neon"] } +``` + +## Performance + +For maximal performance, you should run proof generation with the following command and vary your `shard_size` depending on your program's number of cycles. + +```rust +SHARD_SIZE=4194304 RUST_LOG=info RUSTFLAGS='-C target-cpu=native' cargo run --release +``` + +## Memory Usage + +To reduce memory usage, set the `SHARD_BATCH_SIZE` environment variable depending on how much RAM +your machine has. A higher number will use more memory, but will be faster. + +```rust +SHARD_BATCH_SIZE=1 SHARD_SIZE=2097152 RUST_LOG=info RUSTFLAGS='-C target-cpu=native' cargo run --release +``` diff --git a/book2/docs/generating-proofs/basics.mdx b/book2/docs/generating-proofs/basics.mdx new file mode 100644 index 0000000000..808833e905 --- /dev/null +++ b/book2/docs/generating-proofs/basics.mdx @@ -0,0 +1,19 @@ +import Example from "../../static/examples_fibonacci_script_src_main.rs.mdx"; + +# Basics + +All the methods you'll need for generating proofs are included in the `sp1_sdk` crate. Most importantly, you'll need to use the `ProverClient` to setup a proving key and verifying key for your program and then use the `execute`, `prove` and `verify` methods to execute your program, and generate and verify proofs. + +To make this more concrete, let's walk through a simple example of generating a proof for a Fibonacci program inside the zkVM. + +## Example: Fibonacci + + + +You can run the above script in the `script` directory with `RUST_LOG=info cargo run --release`. Note that running the above script will generate a proof locally. + +

+WARNING: Local proving often is much slower than the prover network and for certain proof types (e.g. Groth16, PLONK) require a significant amount of RAM and will likely not work on a laptop. +
+ +We recommend using the [prover network](./prover-network.md) to generate proofs. Read more about the [recommended workflow](./recommended-workflow.md) for developing with SP1. diff --git a/book2/docs/generating-proofs/hardware-acceleration.md b/book2/docs/generating-proofs/hardware-acceleration.md new file mode 100644 index 0000000000..766c9db4ed --- /dev/null +++ b/book2/docs/generating-proofs/hardware-acceleration.md @@ -0,0 +1,7 @@ +# Hardware Acceleration + +SP1 supports hardware acceleration on the following platforms: +- [AVX256/AVX512](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions) on x86 CPUs +- [CUDA](https://en.wikipedia.org/wiki/CUDA) on Nvidia GPUs + +To enable hardware acceleration, please refer to the platform specific instructions available in this section. \ No newline at end of file diff --git a/book2/docs/generating-proofs/hardware-acceleration/avx.md b/book2/docs/generating-proofs/hardware-acceleration/avx.md new file mode 100644 index 0000000000..e9fe8007bf --- /dev/null +++ b/book2/docs/generating-proofs/hardware-acceleration/avx.md @@ -0,0 +1,30 @@ +# AVX + +SP1 supports both AVX256 and AVX512 acceleration on x86 CPUs due to support in [Plonky3](https://github.com/Plonky3/Plonky3). +Whenever possible, we recommend using AVX512 acceleration as it provides better performance. + +## Checking for AVX + +To check if your CPU supports AVX, you can run the following command: + +`grep avx /proc/cpuinfo` + +Look for the flags `avx2` and `avx512`. + +## Enabling AVX256 + +To enable AVX256 acceleration, you can set the `RUSTFLAGS` environment variable to include the following flags: + +```bash +RUSTFLAGS="-C target-cpu=native" cargo run --release +``` + +## Enabling AVX512 + +To enable AVX512 acceleration, you can set the `RUSTFLAGS` environment variable to include the following flags: + +```bash +RUSTFLAGS="-C target-cpu=native -C target-feature=+avx512f" cargo run --release +``` + +Note that the `+avx512f` flag is required to enable AVX512 acceleration. \ No newline at end of file diff --git a/book2/docs/generating-proofs/hardware-acceleration/cuda.md b/book2/docs/generating-proofs/hardware-acceleration/cuda.md new file mode 100644 index 0000000000..e27d0ce9ac --- /dev/null +++ b/book2/docs/generating-proofs/hardware-acceleration/cuda.md @@ -0,0 +1,26 @@ +# CUDA + +
+WARNING: CUDA proving is still an experimental feature and may be buggy. +
+ + +SP1 supports CUDA acceleration, which can provide dramatically better latency and cost performance +compared to using the CPU prover, even with AVX acceleration. + +## Software Requirements + +Please make sure you have the following installed before using the CUDA prover: + +- [CUDA 12](https://developer.nvidia.com/cuda-12-0-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=22.04&target_type=deb_local) +- [CUDA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html) + +## Hardware Requirements + +- **CPU**: We recommend having at least 8 CPU cores with 32GB of RAM available to fully utilize the GPU. +- **GPU**: 24GB or more for core/compressed proofs, 40GB or more for shrink/wrap proofs + +## Usage + +To use the CUDA prover, you can compile the `sp1-sdk` crate with the `cuda` feature enabled. You +can use the normal methods on the `ProverClient` to generate proofs. \ No newline at end of file diff --git a/book2/docs/generating-proofs/proof-types.md b/book2/docs/generating-proofs/proof-types.md new file mode 100644 index 0000000000..c6d713e754 --- /dev/null +++ b/book2/docs/generating-proofs/proof-types.md @@ -0,0 +1,49 @@ +# Proof Types + +There are a few different types of proofs that can be generated by the SP1 zkVM. Each proof type has its own tradeoffs in terms of proof generation time, verification cost, and proof size. + +The `ProverClient` follows a "builder" pattern that allows you to configure the proof type and other options after creating a `ProverClient` and calling `prove` on it. + +For a full list of options, see the following [docs](https://docs.rs/sp1-sdk/1.2.0/sp1_sdk/action/struct.Prove.html). + +## Core (Default) + +The default prover mode generates a list of STARK proofs that in aggregate have size proportional to +the size of the execution. Use this in settings where you don't care about **verification cost / proof size**. + +```rust +let client = ProverClient::new(); +client.prove(&pk, stdin).run().unwrap(); +``` + +## Compressed + +The compressed prover mode generates STARK proofs that have constant size. Use this in settings where you +care about **verification cost / proof size**, but not onchain verification. Compressed proofs are also useful because they can be cheaply recursively verified within SP1 itself (see the [proof aggregation](../writing-programs/proof-aggregation.md) section). + +```rust +let client = ProverClient::new(); +client.prove(&pk, stdin).compressed().run().unwrap(); +``` + +## Groth16 (Recommended) + +The Groth16 prover mode generates a SNARK proof that is ~260 bytes large and can be verified onchain for around ~270k gas. + +The trusted setup for the Groth16 circuit keys uses the [Aztec Ignition ceremony](https://github.com/AztecProtocol/ignition-verification) + entropy contributions from members of the Succinct team. + +```rust +let client = ProverClient::new(); +client.prove(&pk, stdin).groth16().run().unwrap(); +``` + +## PLONK + +The PLONK prover mode generates a SNARK proof that is ~868 bytes large and can also be verified onchain for around ~300k gas. Plonk proofs take about ~1m30s longer to generate over a compressed proof. + +PLONK does not require a trusted setup. + +```rust +let client = ProverClient::new(); +client.prove(&pk, stdin).plonk().run().unwrap(); +``` diff --git a/book2/docs/generating-proofs/prover-network.md b/book2/docs/generating-proofs/prover-network.md new file mode 100644 index 0000000000..f5b61d2204 --- /dev/null +++ b/book2/docs/generating-proofs/prover-network.md @@ -0,0 +1,9 @@ +# Prover Network Beta + +> **See [Supported Versions](./prover-network/versions.md) for the currently supported versions of SP1 on the Prover Network.** + +Succinct [has been building](https://blog.succinct.xyz/succinct-network/) the Succinct Prover Network, a distributed network of provers that can generate proofs of any size quickly and reliably. It's currently in private beta, but you can get access by following the steps below. + +To get started, **[FILL OUT THIS FORM](https://forms.gle/rTUvhstS8PFfv9B3A)** to gain access to the Succinct +Network. Completing this form requires you to complete the [key +setup](./prover-network/key-setup.md) steps below. diff --git a/book2/docs/generating-proofs/prover-network/explorer.png b/book2/docs/generating-proofs/prover-network/explorer.png new file mode 100644 index 0000000000000000000000000000000000000000..9241510cd8c277134e60ce1a11c46a34f9c0cf37 GIT binary patch literal 167094 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
-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 z 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 z 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 Aa{vGU literal 0 HcmV?d00001 diff --git a/book2/docs/generating-proofs/prover-network/key-setup.md b/book2/docs/generating-proofs/prover-network/key-setup.md new file mode 100644 index 0000000000..222fba840f --- /dev/null +++ b/book2/docs/generating-proofs/prover-network/key-setup.md @@ -0,0 +1,40 @@ +# Prover Network: Key Setup + +The prover network uses Secp256k1 keypairs for authentication, similar to Ethereum wallets. You may generate a new keypair explicitly for use with the prover network, or use an existing keypair. + +> **You do not need to hold any funds in this account, it is used solely for access control.** + +### Generate a Public Key + +Prover network keypair credentials can be generated using the +[cast](https://book.getfoundry.sh/cast/) CLI tool. + +First install [Foundry](https://book.getfoundry.sh/getting-started/installation#using-foundryup): + +```sh +curl -L https://foundry.paradigm.xyz | bash +``` + +Upon running this command, you will be prompted to source your shell profile and run `foundryup`. Afterwards you should have access to the `cast` command. + +Use `cast` to generate a new keypair: + +```sh +cast wallet new +``` + +which will give you an output similar to this: + +![Screenshot from running 'cast wallet new' to generate an SP1_PRIVATE_KEY.](../prover-network/key.png) + +The "Address" what you should submit in the [form](https://forms.gle/rTUvhstS8PFfv9B3A), in the example above this is `0x552f0FC6D736ed965CE07a3D71aA639De15B627b`. The "Private key" should be kept safe and +secure. When interacting with the network, you will set your `SP1_PRIVATE_KEY` environment variable +to this value. + +### Retrieve an Existing Key + +If you already have an existing key you would like to use, you can also use `cast` retrieve your address: + +```sh +cast wallet address --private-key $PRIVATE_KEY +``` diff --git a/book2/docs/generating-proofs/prover-network/key.png b/book2/docs/generating-proofs/prover-network/key.png new file mode 100644 index 0000000000000000000000000000000000000000..ccbb4b8974830a141d0e20687d2b52f42af3bbf7 GIT binary patch literal 10085 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 **See [Supported Versions](./versions.md) for the currently supported versions of SP1 on the Prover Network.** + +## Sending a proof request + +To use the prover network to generate a proof, you can run your script that uses `sp1_sdk::ProverClient` as you would normally but with additional environment variables set: + +```rust +// Generate the proof for the given program. +let client = ProverClient::new(); +let (pk, vk) = client.setup(ELF); +let mut proof = client.prove(&pk, stdin).run().unwrap(); +``` + +```sh +SP1_PROVER=network SP1_PRIVATE_KEY=... RUST_LOG=info cargo run --release +``` + +- `SP1_PROVER` should be set to `network` when using the prover network. + +- `SP1_PRIVATE_KEY` should be set to your [private key](../prover-network.md#key-setup). You will need + to be using a [whitelisted](../prover-network.md#get-access) key to use the network. + +When you call any of the prove functions in ProverClient now, it will first simulate your program, then wait for it to be proven through the network and finally return the proof. + +## View the status of your proof + +You can view your proof and other running proofs on the [explorer](https://explorer.succinct.xyz/). The page for your proof will show details such as the stage of your proof and the cycles used. It also shows the program hash which is the keccak256 of the program bytes. + +![Screenshot from explorer.succinct.xyz showing the details of a proof including status, stage, type, program, requester, prover, CPU cycles used, time requested, and time claimed.](./explorer.png) + +## Advanced Usage + +### Skip simulation + +To skip the simulation step and directly submit the program for proof generation, you can set the `SKIP_SIMULATION` environment variable to `true`. This will save some time if you are sure that your program is correct. If your program panics, the proof will fail and ProverClient will panic. + +### Use NetworkProver directly + +By using the `sp1_sdk::NetworkProver` struct directly, you can call async functions directly and have programmatic access to the proof ID and download proofs by ID. + +```rust +impl NetworkProver { + /// Creates a new [NetworkProver] with the private key set in `SP1_PRIVATE_KEY`. + pub fn new() -> Self; + + /// Creates a new [NetworkProver] with the given private key. + pub fn new_from_key(private_key: &str); + + /// Requests a proof from the prover network, returning the proof ID. + pub async fn request_proof( + &self, + elf: &[u8], + stdin: SP1Stdin, + mode: ProofMode, + ) -> Result; + + /// Waits for a proof to be generated and returns the proof. If a timeout is supplied, the + /// function will return an error if the proof is not generated within the timeout. + pub async fn wait_proof( + &self, + proof_id: &str, + timeout: Option, + ) -> Result; + + /// Get the status and the proof if available of a given proof request. The proof is returned + /// only if the status is Fulfilled. + pub async fn get_proof_status( + &self, + proof_id: &str, + ) -> Result<(GetProofStatusResponse, Option)>; + + /// Requests a proof from the prover network and waits for it to be generated. + pub async fn prove( + &self, + elf: &[u8], + stdin: SP1Stdin, + mode: ProofMode, + timeout: Option, + ) -> Result; +} +``` diff --git a/book2/docs/generating-proofs/prover-network/versions.md b/book2/docs/generating-proofs/prover-network/versions.md new file mode 100644 index 0000000000..31503adb80 --- /dev/null +++ b/book2/docs/generating-proofs/prover-network/versions.md @@ -0,0 +1,30 @@ +# Supported Versions + +The prover network currently only supports specific versions of SP1: + +| Version | Description | +| ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| v2.X.X | Audited, production ready version. | +| v3.X.X | Pre-release version with enhanced performance, currently being audited. **Recommended for benchmarking or testing, not recommended for production use.** | + +`X` denotes that any minor and patch version is supported (e.g. `v2.1.0`, `v2.1.1`). + +If you submit a proof request to the prover network and you are not using a supported version, you will receive an error message. + +## Changing versions + +You must switch to a supported version before submitting a proof. To do so, replace the `sp1-zkvm` version in your program's `Cargo.toml`: + +```toml +[dependencies] +sp1-zkvm = "2.0.0" +``` + +replace the `sp1-sdk` version in your script's `Cargo.toml`: + +```toml +[dependencies] +sp1-sdk = "2.0.0" +``` + +Re-build your program and script, and then try again. diff --git a/book2/docs/generating-proofs/recommended-workflow.mdx b/book2/docs/generating-proofs/recommended-workflow.mdx new file mode 100644 index 0000000000..5c721f0cbd --- /dev/null +++ b/book2/docs/generating-proofs/recommended-workflow.mdx @@ -0,0 +1,57 @@ +import Example from "../../static/examples_fibonacci_script_bin_execute.rs.mdx"; + +# Recommended Workflow for Developing with SP1 + +We recommend the following workflow for developing with SP1. + +## Step 1: Iterate on your program with execution only + +While iterating on your SP1 program, you should **only execute** the program with the RISC-V runtime. This will allow you to verify the correctness of your program and test the `SP1Stdin` as well as the `SP1PublicValues` that are returned, without having to generate a proof (which can be slow and/or expensive). If the execution of your program succeeds, then proof generation should succeed as well! + + + +Note that printing out the total number of executed cycles and the full execution report provides helpful insight into proof generation latency and cost either for local proving or when using the prover network. + +**Crate Setup:** We recommend that your program crate that defines the `main` function (around which you wrap the `sp1_zkvm::entrypoint!` macro) should be kept minimal. Most of your business logic should be in a separate crate (in the same repo/workspace) that can be tested independently and that is not tied to the SP1 zkVM. This will allow you to unit test your program logic without having to worry about the `zkvm` compilation target. This will also allow you to efficient reuse types between your program crate and your crate that generates proofs. + +## Step 2: Generate proofs + +After you have iterated on your program and finalized that it works correctly, you can generate proofs for your program for final end to end testing or production use. + +### Generating proofs on the prover network (recommended) + +Using Succinct's prover prover network will generally be faster and cheaper than local proving, as it parallelizes proof generation amongst multiple machines and also uses SP1's GPU prover that is not yet available for local proving. Follow the [setup instructions](./prover-network.md) to get started with the prover network. Using the prover network only requires adding 1 environment variable from a regular SP1 proof generation script with the `ProverClient`. + +There are a few things to keep in mind when using the prover network. + +### Prover Network FAQ + +#### Benchmarking latency on the prover network + +The prover network currently parallelizes proof generation across multiple machines. This means the latency of proof generation does not scale linearly with the number of cycles of your program, but rather with the number of cycles of your program divided by the number of currently available machines on the prover network. + +Our prover network currently has limited capacity because it is still in beta. If you have an extremely latency sensitive use-case and you want to figure out the **minimal latency possible** for your program, you should [reach out to us](https://partner.succinct.xyz/) and we can onboard you to our reserved capacity cluster that has a dedicated instances that can significantly reduce latency. + +#### Costs on the prover network + +The cost of proof generation on the prover network scales approximately linearly with the number of cycles of your program (along with the number of `syscalls` that your program makes). For larger workloads with regular proof frequency (like rollups and light clients), we can offer discounted pricing. To figure out how much your program will cost to prove, you can get [in touch with us](https://partner.succinct.xyz/) to discuss pricing options. + +Note that **latency is not the same as cost**, because we parallelize proof generation across multiple machines, so two proofs with the same latency can be using a different number of machines, impacting the cost. + +#### Benchmarking on small vs. large programs + +In SP1, there is a fixed overhead for proving that is independent of your program's cycle count. This means that benchmarking on _small programs_ is not representative of the performance of larger programs. To get an idea of the scale of programs for real-world workloads, you can refer to our [benchmarking blog post](https://blog.succinct.xyz/sp1-production-benchmarks) and also some numbers below: + +- An average Ethereum block can be between 100-500M cycles (including merkle proof verification for storage and execution of transactions) with our `keccak` and `secp256k1` precompiles. +- For a Tendermint light client, the average cycle count can be between 10M and 50M cycles (including our ed25519 precompiles). +- We consider programs with \<2M cycles to be "small" and by default, the fixed overhead of proving will dominate the proof latency. If latency is incredibly important for your use-case, we can specialize the prover network for your program if you reach out to us. + +Note that if you generate Groth16 or PLONK proofs on the prover network, you will encounter a fixed overhead for the STARK -> SNARK wrapping step. We're actively working on reducing this overhead in future releases. + +#### On-Demand vs. Reserved Capacity + +The prover network is currently in beta and has limited capacity. For high volume use-cases, we can offer discounted pricing and a reserved capacity cluster that has a dedicated instances that can significantly reduce latency and have higher throughput and guaranteed SLAs. + +### Generating proofs locally + +If you want to generate proofs locally, you can use the `sp1_sdk` crate to generate proofs locally as outlined in the [Basics](./basics.md) section. By default, the `ProverClient` will generate proofs locally using your CPU. Check out the hardware requirements for locally proving [here](../getting-started/hardware-requirements.md#local-proving). diff --git a/book2/docs/generating-proofs/setup.md b/book2/docs/generating-proofs/setup.md new file mode 100644 index 0000000000..6e9b5483c7 --- /dev/null +++ b/book2/docs/generating-proofs/setup.md @@ -0,0 +1,38 @@ +# Setup + +In this section, we will teach you how to setup a self-contained crate which can generate proofs of programs that have been compiled with the SP1 toolchain inside the SP1 zkVM, using the `sp1-sdk` crate. + +## CLI (Recommended) + +The recommended way to setup your first program to prove inside the zkVM is using the method described in [Quickstart](../getting-started/quickstart.md) which will create a script folder. + +```bash +cargo prove new +cd script +``` + +## Manual + +You can also manually setup a project. First create a new cargo project: + +```bash +cargo new script +cd script +``` + +#### Cargo Manifest + +Inside this crate, add the `sp1-sdk` crate as a dependency. Your `Cargo.toml` should look like as follows: + +```rust +[workspace] +[package] +version = "0.1.0" +name = "script" +edition = "2021" + +[dependencies] +sp1-sdk = "2.0.0" +``` + +The `sp1-sdk` crate includes the necessary utilities to generate, save, and verify proofs. diff --git a/book2/docs/generating-proofs/sp1-sdk-faq.md b/book2/docs/generating-proofs/sp1-sdk-faq.md new file mode 100644 index 0000000000..ca2a0a0596 --- /dev/null +++ b/book2/docs/generating-proofs/sp1-sdk-faq.md @@ -0,0 +1,15 @@ +# FAQ + +## Logging and Tracing Information + +You can use `sp1_sdk::utils::setup_logger()` to enable logging information respectively. You can set the logging level with the `RUST_LOG` environment variable. + +```rust +sp1_sdk::utils::setup_logger(); +``` + +Example of setting the logging level to `info` (other options are `debug`, `trace`, and `warn`): + +```bash +RUST_LOG=info cargo run --release +``` \ No newline at end of file diff --git a/book2/docs/getting-started/hardware-requirements.md b/book2/docs/getting-started/hardware-requirements.md new file mode 100644 index 0000000000..828ea96080 --- /dev/null +++ b/book2/docs/getting-started/hardware-requirements.md @@ -0,0 +1,41 @@ +# Proof Generation Requirements + +

+We recommend that developers who want to use SP1 for non-trivial programs generate proofs on our prover network. The prover network generates SP1 proofs across multiple machines, reducing latency and also runs SP1 on optimized hardware instances that result in faster + cheaper proof generation times. + +We recommend that for any production benchmarking, you use the prover network to estimate latency and costs of proof generation. + +
+ +## Local Proving + +If you want to generate SP1 proofs locally, this section has an overview of the hardware requirements required. These requires depend on which [types of proofs](../generating-proofs/proof-types.md) you want to generate and can also change over time as the design of the zKVM evolves. + +**The most important requirement is CPU for performance/latency and RAM to prevent running out of memory.** + +| | Mock / Network | Core / Compress | Groth16 and PLONK (EVM) | +| -------------- | ---------------------------- | ---------------------------------- | ----------------------- | +| CPU | 1+, single-core perf matters | 16+, more is better | 16+, more is better | +| Memory | 8GB+, more is better | 16GB+, more if you have more cores | 16GB+, more is better | +| Disk | 10GB+ | 10GB+ | 10GB+ | +| EVM Compatible | ✅ | ❌ | ✅ | + +### CPU + +The execution & trace generation of the zkVM is mostly CPU bound, having a high single-core +performance is recommended to accelerate these steps. The rest of the prover is mostly bound by hashing/field operations +which can be parallelized with multiple cores. + +### Memory + +Our prover requires keeping large matrices (i.e., traces) in memory to generate the proofs. Certain steps of the prover +have a minimum memory requirement, meaning that if you have less than this amount of memory, the process will OOM. + +This effect is most noticeable when using the Groth16 or PLONK provers. + +### Disk + +Disk is required to install the SP1 zkVM toolchain and to install the circuit artifacts, if you +plan to locally build the Groth16 or PLONK provers. + +Furthermore, disk is used to checkpoint the state of the program execution, which is required to generate the proofs. diff --git a/book2/docs/getting-started/install.md b/book2/docs/getting-started/install.md new file mode 100644 index 0000000000..e58b9a624e --- /dev/null +++ b/book2/docs/getting-started/install.md @@ -0,0 +1,115 @@ +# Installation + +SP1 currently runs on Linux and macOS. You can either use prebuilt binaries through sp1up or +build the Succinct [Rust toolchain](https://rust-lang.github.io/rustup/concepts/toolchains.html) and CLI from source. + +## Requirements + +- [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) +- [Rust (Nightly)](https://www.rust-lang.org/tools/install) +- [Docker](https://docs.docker.com/get-docker/) + +## Option 1: Prebuilt Binaries (Recommended) + +`sp1up` is the SP1 toolchain installer. Open your terminal and run the following command and follow the instructions: + +```bash +curl -L https://sp1.succinct.xyz | bash +``` + +Then simply follow the instructions on-screen, which will make the `sp1up` command available in your CLI. + +After following the instructions, you can run `sp1up` to install the toolchain and the `cargo prove` CLI: + +```bash +sp1up +``` + +This will install two things: + +1. The `succinct` Rust toolchain which has support for the `riscv32im-succinct-zkvm-elf` compilation target. +2. `cargo prove` CLI tool that provides convenient commands for compiling SP1 programs and other helper functionality. + +You can verify the installation of the CLI by running `cargo prove --version`: + +```bash +cargo prove --version +``` + +You can check the version of the Succinct Rust toolchain by running: + +```bash +RUSTUP_TOOLCHAIN=succinct cargo --version +``` +or equivalently: + +```bash +cargo +succinct --version +``` + +If this works, go to the [next section](./quickstart.md) to compile and prove a simple zkVM program. + +### Troubleshooting + +#### Rate-limiting + +If you experience [rate-limiting](https://docs.github.com/en/rest/using-the-rest-api/getting-started-with-the-rest-api?apiVersion=2022-11-28#rate-limiting) when using the `sp1up` command, you can resolve this by using the `--token` flag and providing your GitHub token. To create a Github token, follow the instructions [here](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic). + + + +#### Unsupported OS Architectures + +Currently our prebuilt binaries are built on Ubuntu 20.04 (22.04 on ARM) and macOS. If your OS uses an older GLIBC version, it's possible these may not work and you will need to [build the toolchain from source](#option-2-building-from-source). + +#### Conflicting `cargo-prove` installations + +If you have installed `cargo-prove` from source, it may conflict with `sp1up`'s `cargo-prove` installation or vice versa. You can remove the `cargo-prove` that was installed from source with the following command: + +```bash +rm ~/.cargo/bin/cargo-prove +``` + +Or, you can remove the `cargo-prove` that was installed through `sp1up`: + +```bash +rm ~/.sp1/bin/cargo-prove +``` + + +## Option 2: Building from Source + +
+Warning: This option will take a long time to build and is only recommended for advanced users. +
+ +Make sure you have installed the [dependencies](https://github.com/rust-lang/rust/blob/master/INSTALL.md#dependencies) needed to build the rust toolchain from source. + +Clone the `sp1` repository and navigate to the root directory. + +```bash +git clone git@github.com:succinctlabs/sp1.git +cd sp1 +cd crates +cd cli +cargo install --locked --path . +cd ~ +cargo prove build-toolchain +``` + +Building the toolchain can take a while, ranging from 30 mins to an hour depending on your machine. If you're on a machine that we have prebuilt binaries for (ARM Mac or x86 or ARM Linux), you can use the following to download a prebuilt version. + +```bash +cargo prove install-toolchain +``` + +To verify the installation of the toolchain, run and make sure you see `succinct`: + +```bash +rustup toolchain list +``` + +You can delete your existing installation of the toolchain with: + +```bash +rustup toolchain remove succinct +``` diff --git a/book2/docs/getting-started/project-template.md b/book2/docs/getting-started/project-template.md new file mode 100644 index 0000000000..b6cbd8d733 --- /dev/null +++ b/book2/docs/getting-started/project-template.md @@ -0,0 +1,5 @@ +# Project Template + +Another option for getting started with SP1 is to use the [SP1 Project Template](https://github.com/succinctlabs/sp1-project-template/tree/main). + +You can use this as a Github template to create a new repository that has a SP1 program, a script to generate proofs, and also a contracts folder that contains a Solidity contract that can verify SP1 proofs on any EVM chain. diff --git a/book2/docs/getting-started/quickstart.md b/book2/docs/getting-started/quickstart.md new file mode 100644 index 0000000000..824ddbf857 --- /dev/null +++ b/book2/docs/getting-started/quickstart.md @@ -0,0 +1,124 @@ +# Quickstart + +In this section, we will show you how to create a simple Fibonacci program using the SP1 zkVM. + +## Create an SP1 Project + +### Option 1: Cargo Prove New CLI (Recommended) + +You can use the `cargo prove` CLI to create a new project using the `cargo prove new <--bare|--evm> ` command. The `--bare` option sets up a basic SP1 project for standalone zkVM programs, while `--evm` adds additional components including Solidity contracts for on-chain proof verification. + +This command will create a new folder in your current directory which includes solidity smart contracts for onchain integration. + +```bash +cargo prove new --evm fibonacci +cd fibonacci +``` + +### Option 2: Project Template (Solidity Contracts for Onchain Verification) + +If you want to use SP1 to generate proofs that will eventually be verified on an EVM chain, you should use the [SP1 project template](https://github.com/succinctlabs/sp1-project-template/tree/main). This Github template is scaffolded with a SP1 program, a script to generate proofs, and also a contracts folder that contains a Solidity contract that can verify SP1 proofs on any EVM chain. + +Either fork the project template repository or clone it: + +```bash +git clone https://github.com/succinctlabs/sp1-project-template.git +``` + +### Project Overview + +Your new project will have the following structure (ignoring the `contracts` folder, if you are using the project template): + +``` +. +├── program +│   ├── Cargo.lock +│   ├── Cargo.toml +│   ├── elf +│   │   └── riscv32im-succinct-zkvm-elf +│   └── src +│   └── main.rs +├── rust-toolchain +└── script + ├── Cargo.lock + ├── Cargo.toml + ├── build.rs + └── src + └── bin + ├── prove.rs + └── vkey.rs + +6 directories, 4 files +``` + +There are 2 directories (each a crate) in the project: +- `program`: the source code that will be proven inside the zkVM. +- `script`: code that contains proof generation and verification code. + +**We recommend you install the [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer) extension.** +Note that if you use `cargo prove new` inside a monorepo, you will need to add the manifest file to `rust-analyzer.linkedProjects` to get full IDE support. + +## Build + +Before we can run the program inside the zkVM, it must be compiled to a RISC-V executable using the `succinct` Rust toolchain. This is called an [ELF (Executable and Linkable Format)](https://en.wikipedia.org/wiki/Executable_and_Linkable_Format). To compile the program, you can run the following command: + +``` +cd program && cargo prove build +``` + +which will output the compiled ELF to the file `program/elf/riscv32im-succinct-zkvm-elf`. + +Note: the `build.rs` file in the `script` directory will use run the above command automatically to build the ELF, meaning you don't have to manually run `cargo prove build` every time you make a change to the program! + +## Execute + +To test your program, you can first execute your program without generating a proof. In general this is helpful for iterating on your program and verifying that it is correct. + +```bash +cd ../script +RUST_LOG=info cargo run --release -- --execute +``` + +## Prove + +When you are ready to generate a proof, you should run the script with the `--prove` flag that will generate a proof. + +```bash +cd ../script +RUST_LOG=info cargo run --release -- --prove +``` + +The output should show something like this: +``` +n: 20 +2024-07-23T17:07:07.874856Z INFO prove_core:collect_checkpoints: clk = 0 pc = 0x2017e8 +2024-07-23T17:07:07.876264Z INFO prove_core:collect_checkpoints: close time.busy=2.00ms time.idle=1.50µs +2024-07-23T17:07:07.913304Z INFO prove_core:shard: close time.busy=32.2ms time.idle=791ns +2024-07-23T17:07:10.724280Z INFO prove_core:commit: close time.busy=2.81s time.idle=1.25µs +2024-07-23T17:07:10.725923Z INFO prove_core:prove_checkpoint: clk = 0 pc = 0x2017e8 num=0 +2024-07-23T17:07:10.729130Z INFO prove_core:prove_checkpoint: close time.busy=3.68ms time.idle=1.17µs num=0 +2024-07-23T17:07:14.648146Z INFO prove_core: execution report (totals): total_cycles=9329, total_syscall_cycles=20 +2024-07-23T17:07:14.648180Z INFO prove_core: execution report (opcode counts): +2024-07-23T17:07:14.648197Z INFO prove_core: 1948 add +... +2024-07-23T17:07:14.648277Z INFO prove_core: execution report (syscall counts): +2024-07-23T17:07:14.648408Z INFO prove_core: 8 commit +... +2024-07-23T17:07:14.648858Z INFO prove_core: summary: cycles=9329, e2e=9.193968459, khz=1014.69, proofSize=1419780 +2024-07-23T17:07:14.653193Z INFO prove_core: close time.busy=9.20s time.idle=12.2µs +Successfully generated proof! +fib(n): 10946 +``` + +The program by default is quite small, so proof generation will only take a few seconds locally. After it generates, the proof will be verified for correctness. + +**Note:** When benchmarking proof generation times locally, it is important to note that there is a fixed overhead for proving, which means that the proof generation time for programs with a small number of cycles is not representative of the performance of larger programs (which often have better performance characteristics as the overhead is amortized across many cycles). + +## Recommended Workflow + +Please see the [Recommended Workflow](../generating-proofs/recommended-workflow.md) section for more details on how to develop your SP1 program and generate proofs. + +We *strongly recommend* that developers who want to use SP1 for non-trivial programs generate proofs on the beta version of our [Prover Network](../generating-proofs/prover-network.md). The prover network generates SP1 proofs across multiple machines, reducing latency and also runs SP1 on optimized hardware instances that result in faster + cheaper proof generation times. + +We recommend that for any production benchmarking, you use the prover network to estimate latency and costs of proof generation. We also would love to chat with your team directly to help you get started with the prover network--please fill out this [form](https://partner.succinct.xyz/). + diff --git a/book2/docs/introduction.md b/book2/docs/introduction.md new file mode 100644 index 0000000000..f3a645786c --- /dev/null +++ b/book2/docs/introduction.md @@ -0,0 +1,33 @@ +# Introduction + +*Documentation for SP1 users and developers*. + +[![Telegram Chat][tg-badge]][tg-url] + +![](./sp1.png) + + +SP1 is a performant, open-source zero-knowledge virtual machine (zkVM) that verifies the execution of arbitrary Rust (or any LLVM-compiled language) programs. + +[tg-badge]: https://img.shields.io/endpoint?color=neon&logo=telegram&label=chat&url=https%3A%2F%2Ftg.sumanjay.workers.dev%2Fsuccinct%5Fsp1 +[tg-url]: https://t.me/+AzG4ws-kD24yMGYx + +SP1 has undergone multiple audits from leading ZK security firms and is currently used in production by many top blockchain teams. + +## The future of ZK is writing normal code + +Zero-knowledge proofs (ZKPs) are one of the most critical technologies to blockchain scaling, interoperability and privacy. But, historically building ZKP systems was extremely complicated--requiring large teams with specialized cryptography expertise and taking years to go to production. + +SP1 provides a performant, general-purpose zkVM that enables **any developer** to use ZKPs by writing normal code (in Rust), and get cheap and fast proofs. SP1 will enable ZKPs to become mainstream, introducing a new era of verifiability for all of blockchain infrastructure and beyond. + + +## SP1 enables a diversity of use-cases + +ZKPs enable a diversity of use-cases in blockchain and beyond, including: + +* Rollups: Use SP1 to generate a ZKP for the state transition function of your rollup and connect to Ethereum, Bitcoin or other chains with full validity proofs or ZK fraud proofs. +* Interoperability: Use SP1 for fast-finality, cross rollup interoperability +* Bridges: Use SP1 to generate a ZKP for verifying consensus of L1s, including Tendermint, Ethereum’s Light Client protocol and more, for bridging between chains. +* Oracles: Use SP1 for large scale computations with onchain state, including consensus data and storage data. +* Aggregation: Use SP1 to aggregate and verify other ZKPs for reduced onchain verification costs. +* Privacy: Use SP1 for onchain privacy, including private transactions and private state. diff --git a/book2/docs/onchain-verification/contract-addresses.md b/book2/docs/onchain-verification/contract-addresses.md new file mode 100644 index 0000000000..3acb971edf --- /dev/null +++ b/book2/docs/onchain-verification/contract-addresses.md @@ -0,0 +1,80 @@ +# Contract Addresses + +To verify SP1 proofs on-chain, we recommend using our deployed canonical verifier gateways. The +[SP1VerifierGateway](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1VerifierGateway.sol) +will automatically route your SP1 proof to the correct verifier based on the SP1 version used. + +## Canonical Verifier Gateways + +| Chain ID | Chain | Gateway | +| -------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| 1 | Mainnet | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 11155111 | Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 17000 | Holesky | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://holesky.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 42161 | Arbitrum One | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 421614 | Arbitrum Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 8453 | Base | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://basescan.org/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 84532 | Base Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.basescan.org/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 10 | Optimism | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://optimistic.etherscan.io/address/0x3b6041173b80e77f038f3f2c0f9744f04837185e) | +| 11155420 | Optimism Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia-optimism.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 534351 | Scroll Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.scrollscan.com/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 534352 | Scroll | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://scrollscan.com/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | + +The most up-to-date reference on each chain can be found in the +[deployments](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/deployments) +directory in the +SP1 contracts repository, where each chain has a dedicated JSON file with each verifier's address. + +## Versioning Policy + +Whenever a verifier for a new SP1 version is deployed, the gateway contract will be updated to +support it with +[addRoute()](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1VerifierGateway.sol#L65). +If a verifier for an SP1 version has an issue, the route will be frozen with +[freezeRoute()](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1VerifierGateway.sol#L71). + +On mainnets, only official versioned releases are deployed and added to the gateway. Testnets have +`rc` versions of the verifier deployed supported in addition to the official versions. + +## Deploying to other Chains + +In the case that you need to use a chain that is not listed above, you can deploy your own +verifier contract by following the instructions in the +[SP1 Contracts Repo](https://github.com/succinctlabs/sp1-contracts/blob/main/README.md#deployments). + +Since both the `SP1VerifierGateway` and each `SP1Verifier` implement the [ISP1Verifier +interface](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1Verifier.sol), you can choose to either: + +* Deploy the `SP1VerifierGateway` and add `SP1Verifier` contracts to it. Then point to the + `SP1VerifierGateway` address in your contracts. +* Deploy just the `SP1Verifier` contract that you want to use. Then point to the `SP1Verifier` + address in + your contracts. + +If you want support for a canonical verifier on your chain, contact us [here](https://t.me/+AzG4ws-kD24yMGYx). We often deploy canonical verifiers on new chains if there's enough demand. + +## ISP1Verifier Interface + +All verifiers implement the [ISP1Verifier](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1Verifier.sol) interface. + +```c++ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +/// @title SP1 Verifier Interface +/// @author Succinct Labs +/// @notice This contract is the interface for the SP1 Verifier. +interface ISP1Verifier { + /// @notice Verifies a proof with given public values and vkey. + /// @dev It is expected that the first 4 bytes of proofBytes must match the first 4 bytes of + /// target verifier's VERIFIER_HASH. + /// @param programVKey The verification key for the RISC-V program. + /// @param publicValues The public values encoded as bytes. + /// @param proofBytes The proof of the program execution the SP1 zkVM encoded as bytes. + function verifyProof( + bytes32 programVKey, + bytes calldata publicValues, + bytes calldata proofBytes + ) external view; +} +``` diff --git a/book2/docs/onchain-verification/getting-started.mdx b/book2/docs/onchain-verification/getting-started.mdx new file mode 100644 index 0000000000..3cbe73933a --- /dev/null +++ b/book2/docs/onchain-verification/getting-started.mdx @@ -0,0 +1,34 @@ +import Example from "../../static/examples_fibonacci_script_bin_groth16_bn254.rs.mdx"; + + +# Onchain Verification: Setup + +The best way to get started with verifying SP1 proofs on-chain is to refer to the [SP1 Project Template](https://github.com/succinctlabs/sp1-project-template/tree/main). + +- The template [program](https://github.com/succinctlabs/sp1-project-template/blob/main/program/src/main.rs) shows how to write outputs that can be decoded in Solidity. +- The template [script](https://github.com/succinctlabs/sp1-project-template/blob/main/script/src/bin/prove.rs) shows how to generate the proof using the SDK and save it to a file. +- The template [contract](https://github.com/succinctlabs/sp1-project-template/blob/main/contracts/src/Fibonacci.sol) shows how to verify the proof onchain using Solidity. + +Refer to the section on [Contract Addresses](./contract-addresses.md#contract-addresses) for the addresses of the deployed verifiers. + +## Generating SP1 Proofs for Onchain Verification + +By default, the proofs generated by SP1 are not verifiable onchain, as they are non-constant size and STARK verification on Ethereum is very expensive. To generate a proof that can be verified onchain, we use performant STARK recursion to combine SP1 shard proofs into a single STARK proof and then wrap that in a SNARK proof. Our `ProverClient` has a prover option for this called `plonk`. Behind the scenes, this function will first generate a normal SP1 proof, then recursively combine all of them into a single proof using the STARK recursion protocol. Finally, the proof is wrapped in a SNARK proof using PLONK. + +> WARNING: The Groth16 and PLONK provers are only guaranteed to work on official releases of SP1. To +> use Groth16 or PLONK proving & verification locally, ensure that you have Docker installed and have +> at least 128GB of RAM. + +### Example + + + +You can run the above script with `RUST_LOG=info cargo run --bin groth16_bn254 --release` in `examples/fibonacci/script`. + +#### Using Groth16 and PLONK without Docker (Advanced) + +If you would like to run the Groth16 or PLONK prover directly without Docker, you must have Go 1.22 installed and enable the `native-gnark` feature in `sp1-sdk`. This path is not recommended and may require additional native dependencies. + +```toml +sp1-sdk = { version = "2.0.0", features = ["native-gnark"] } +``` diff --git a/book2/docs/onchain-verification/solidity-sdk.md b/book2/docs/onchain-verification/solidity-sdk.md new file mode 100644 index 0000000000..822ab620b9 --- /dev/null +++ b/book2/docs/onchain-verification/solidity-sdk.md @@ -0,0 +1,122 @@ +# Solidity Verifier + +We maintain a suite of [contracts](https://github.com/succinctlabs/sp1-contracts/tree/main) used for verifying SP1 proofs onchain. We highly recommend using [Foundry](https://book.getfoundry.sh/). + +## Installation + +To install the latest release version: + +```bash +forge install succinctlabs/sp1-contracts +``` + +To install a specific version: + +```bash +forge install succinctlabs/sp1-contracts@ +``` + +Finally, add `@sp1-contracts/=lib/sp1-contracts/contracts/src/` in `remappings.txt.` + +### Usage + +Once installed, you can use the contracts in the library by importing them: + +```c++ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +import {ISP1Verifier} from "@sp1-contracts/ISP1Verifier.sol"; + +/// @title Fibonacci. +/// @author Succinct Labs +/// @notice This contract implements a simple example of verifying the proof of a computing a +/// fibonacci number. +contract Fibonacci { + /// @notice The address of the SP1 verifier contract. + /// @dev This can either be a specific SP1Verifier for a specific version, or the + /// SP1VerifierGateway which can be used to verify proofs for any version of SP1. + /// For the list of supported verifiers on each chain, see: + /// https://docs.succinct.xyz/onchain-verification/contract-addresses + address public verifier; + + /// @notice The verification key for the fibonacci program. + bytes32 public fibonacciProgramVKey; + + constructor(address _verifier, bytes32 _fibonacciProgramVKey) { + verifier = _verifier; + fibonacciProgramVKey = _fibonacciProgramVKey; + } + + /// @notice The entrypoint for verifying the proof of a fibonacci number. + /// @param _proofBytes The encoded proof. + /// @param _publicValues The encoded public values. + function verifyFibonacciProof(bytes calldata _publicValues, bytes calldata _proofBytes) + public + view + returns (uint32, uint32, uint32) + { + ISP1Verifier(verifier).verifyProof(fibonacciProgramVKey, _publicValues, _proofBytes); + (uint32 n, uint32 a, uint32 b) = abi.decode(_publicValues, (uint32, uint32, uint32)); + return (n, a, b); + } +} + +``` + +### Finding your program vkey + +The program vkey (`fibonacciProgramVKey` in the example above) is passed into the `ISP1Verifier` along with the public values and proof bytes. You +can find your program vkey by going through the following steps: + +1. Find what version of SP1 crates you are using. +2. Use the version from step to run this command: `sp1up --version ` +3. Use the vkey command to get the program vkey: `cargo prove vkey -elf ` + +Alternatively, you can set up a simple script to do this using the `sp1-sdk` crate: + +```rust +fn main() { + // Setup the logger. + sp1_sdk::utils::setup_logger(); + + // Setup the prover client. + let client = ProverClient::new(); + + // Setup the program. + let (_, vk) = client.setup(FIBONACCI_ELF); + + // Print the verification key. + println!("Program Verification Key: {}", vk.bytes32()); +} +``` + +### Testing + +To test the contract, we recommend setting up [Foundry +Tests](https://book.getfoundry.sh/forge/tests). We have an example of such a test in the [SP1 +Project +Template](https://github.com/succinctlabs/sp1-project-template/blob/dev/contracts/test/Fibonacci.t.sol). + +### Solidity Versions + +The officially deployed contracts are built using Solidity 0.8.20 and exist on the +[sp1-contracts main](https://github.com/succinctlabs/sp1-contracts/tree/main) branch. + +If you need to use different versions that are compatible with your contracts, there are also other +branches you can install that contain different versions. For +example for branch [main-0.8.15](https://github.com/succinctlabs/sp1-contracts/tree/main-0.8.15) +contains the contracts with: + +```c++ +pragma solidity ^0.8.15; +``` + +and you can install it with: + +```sh +forge install succinctlabs/sp1-contracts@main-0.8.15 +``` + +If there is different versions that you need but there aren't branches for them yet, please ask in +the [SP1 Telegram](https://t.me/+AzG4ws-kD24yMGYx). diff --git a/book2/docs/sp1.png b/book2/docs/sp1.png new file mode 100644 index 0000000000000000000000000000000000000000..78576befe311ab327f31e2fd3054f8dddcd081dd GIT binary patch literal 66629 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
Wi0laIaXMHlQ%Y!|l_${WD zxu!av80?>c(-_l?(K?hcuY3h~`kr-%1jXf*gbC@E_P1Z9ei0J5UDGO>BwBnpwnB2| zo{boDSmzz7-$jU2B7asVl;w|ARR~v;Q{-y?nkJh*OlzZx<+#@P8xRP~@SpZv|3c=USqZT97gv|> zoBB6T{V!+hzaM~-Iq>ygKL#IuLz|E(t3}I`mdzf%EKkbW5S?xe5Y|qT)0x}Gh9&u` zS#?@e(plE8fGZ#|=?R26Ic(>11|Kf0uDf1o6xR-#EEW+!P<~xl4Ms?v&%i9s zKZXAQH~+7e$$vDTF3SZQeUA%Q&dydJ^#Yt4KV?mdH#zA7MWdfFdyt(~x^d#0o*rue zYYh5(r8Is$p2n(JOun5)lF;S~l6%v0$R#p<`Wysm^iXrT>{j$2zM<-W=VfpI%Zu-l zmm#_JE#9=#f&F^X1{Xs*4W_s-ZQdQ#o-t^~UcRm%-^@F}80ghj54w9wNb}9)d z+<@IULG+5AoPZ~SI<^7}fjn7Wb+KGe%Wp4O*U_0C9o<)OG-MN)GxhJ8V@1 z*;er{SkO5=|CoZm3Sj}={@&@ZcEB_xC z>i_34xHKGMtrn7^4|Lv}^TIw6t|MNZNxB~li3a&h zT%#S=5+Y%3C0Izd)ICL21w_B@xnvy(d@m9F^Fx1g|0hWNzhFi5KL0LuCO$Ylv^xpHLFGzTtMc5bg7X|L$n&K&%;&$q&UQ5Iv6QS0Bp?iI$cNQ-Y7Q^J8}Oe z_eLS?v4#03v@RPw`K>Umn zfEpoWE6(WHg=XG0y$kTRID=J<@pF>^QW`az>0K!}y$VG}CDv^2R9P)n;sv+NM_%N6 z!FB)~I8bFPYW!3R(@!cT+MG{ddzRQHvl2*N0NKe_Bg_CmyhE3OT(UpMh8Ymj1J!Gk zo#@SUr&i9Sq(~8#DUmO)g@Hy!V$Uyquq4Yxy{7Lz#v7sa%Ze>0$IuhX8qN?e#tyGS zr(eA*G`h+gt$sj$p%qB-j5)7IX9I|kT-m$<)7>D1=T6_I)}m~m_5otbsbc-P@E;H# zaGTn9T8ni7oHV*>`!I-!U;6pRlLUL9JOC(p3oL6<8$#5Vm1n_;{rm?N?_lgRZ#B`7?^bi_WItG%3KuXwdS9rC(Ew25X zbBd$@MrY0TNEB62Lv#FV)be&uVs$Xirp7M}J+C{3-b@wk|Q@rs~u4p#~Q1Kd?M` zaoa@ETWn6omuKgBM4&tb$h3&@U%IeT=Ezy3irk^^dG#qER^ZaPRbXy;owd%?wSKdi zc1aYC7_BB@HRXBuqUh=MLP`C7eMe9U)$OY_QRw^n`Ql1px5bY2y(6xy6`KU_zQ+IR zL3HIuF@u-~QHYA@^=DziZdYQz_Uch#J~9bbk-Z=JL@D)K^(!MIV~dkiBKs1Ex{Lf* z{tq8wW)<$oal}NuC8WE@!Rc{yc9E8+rdA%yoz~!dX0=Zui;j9BB{dfM<#s#}2u;yQ zSb6L*4=%)@r(k)bhDl> zQOA%s|GGBI(yV(3xVGkA?HiPMY1m5Q1~y;PIh(kS@Y#jlR?q?FL(9HcA~ty z6vT)Ehv!KCl2-5f4S)W{so2xuI5SM26h=Q&-s|VAehd9a3}To$a%we_ z$=2_4f<@2&bQb@IPwJ~Vi`Nr1_2#BkDZ3 zR!ICD#zLcTe!FjP{t^lfEQ}1ZH5JE?F!!Ph>$8Br|1BM5&UgnaM~(XDzh|W1_qs^& zUyv;F^Dq^Z{nw0Y{1&a2a)IA{{+nUH?H7Z|&a^7nD2l~2{+c9g9JDGEsCDrk|8Kfw z4m40ly%Z(>k?Q&LK%l>-|HXm7ZujCxeBMR1#8d2lZU+huPB<$0cQ{GlXC%5k&`TbL z!c3`|MJ{*T0wV1f5l=39D?pd?o4O=>Z<;br-N5?197)|^NMfl~w3U-v9nWQCL>~rM-EdxKWz&{ zQ3YIjDEY9~U@iV-&G~J_H16M_pAzA;P!V;W!Hat=dPJvGJ$gJdYo=W)ubz0dMOM7I z&95cn*Uo(vn&wPOvgssN`QOi{#zXUKP1_pMZji+~KXigkjN^@_^xpn-&8GenU;@rR zUTCHXv0U`G%TZ(avPGfP>&=9KD3xmFgFj72TZcrH!AR^Ou0dyygaV{ z#bZz1XJA-_+vF|@f%dH4z8$KvUC$Gc%o~%WJYb_t=$+v5UUvrk^s%g|clE)w7Hs#-D{6p|4wNE! zXntULu|U`;fjfxl+w@;l#FV7qi-OrgWTi~(F5#@lsSd6a$)vkJ(0bi-?oq1*Bb8N9 zD<|qw(wJrlJn!aI>M0cO;{)5I^zZY70zz^DEtu_jI0o4?kL_F-32(4U%8E@m`WU13 z<9FjCkQnJPrAms#1SP@De$^e6y8Y%aMgyjv3~flv0}KIYRKo->ms)j&1xjSV*F1M$ z?+to#HVnbIS1Z3&2rx4+Qdk8iGS@~9SeY&2#z&*F#4Zpa5a{ZNkmonOqHCz^uNT#Q z^%QUen$UKOg4}IWg`(r8osomSV^^{Dq0fV-uUKY(_dx}DHKoCS&2jhjk)1zT%n?G5 zjw7MVH~zvwqCWa^)E8cB37E2x!o!F8`cd4UYf118K|7;$gvzGno!>-@+0gedZ@1VS zK8_|lKXfu5&dlaZt1^iiN8kYXQAkk0^=&B!lqLHK=nb}Dl|TAOY=Db}JVi#ox4f4% zy7yfUO7Mq@?4+^@;mU)dB6@UGC3Gqi#s+1EowAb|_EwWbAL@O_V_3IprT|N+q;4K< zqZl~i07Cm2lr3TY{B7r%T?418$C|8gPtteOnxZZ(^o~jgc}Sx9&iC(|&L*>i zq_@XCCba{FRQ0X4_@CQxesvMw$%LlvzZ4~nv;#NnymHA_KZI7gQB+4PT1>N?Y@^1n zEkL9tM`nIVkl^}u@ew8*We6MT(EJQPyI78Jow+udpTX?O(bpxf_^gRqMz7^7D>W1w zU`p!NmdZbmg@579aB*b858hSMF^}$Ch|HeR;v5zvL&p>9=XnjR_x!=Z0ngF=^2hha zDI+GyGHhQBezL>2%kj6$aJ$sHxiISXBp_R8O&fR(th?Gc~ zA-)#*b}Q3P?Dvp{iOrMt7t-*~I%jOP9{O&Q1Q4XfQS$Ef@>XHuPU2iW-K#Y@IeELs zA?mV`-Eo+~dXtDHYg&ste3bI`J)&}8n%b~62lUAHedX1(D}>$*Fg0&&NUgJWKIn=L z|IrZqV}|lYO_lN5mZ+`9ZPkvF%ox#P974Mz;>!HrjL6*Y`g&ym_(s-EkV zp+NHoGw4TXW|S*e8)wv3oW5a=)kcK}PLO4-L-%pe!b=_6NqY_f%<=xQ^-*|v;m(lA z&*_pCD00BeN^-^hG-mVUC=)8yr5m(A`@Vg>u5=1eHu)0WZo=G1lAiDbkjaSnqz9l^ z7h5Vk4;5z-qRtywrui6C;3CEWNY6aExT=#?VK2zM4#0fj?Kv*LFk!Z zvPtNc&_Bpz)uBu}0L=NjBTeF6$On!Wm6u143Agave1X8g+7BWKmWBa^WH;roAM4MU>rF z0vtCH5vKFg(ME@=Q`tebkL-`ViRQ}6_5I8o-3d&V;YWinm?mJe zb+36?kB;_UuO8i(CjIeiOE>tcRGP$kD)jMirG)!Yr0>VQllu1O?G><9J`&enQyr7w z(l9-?k1lJA@fq)n63rTpvg~~O>@v{`1uV^LUAld5hGFkFs+hvR^Cv6{nEK_5-*IUFp^WYIzp{l1FFQtvFs^slzh=2u|q}^R9=e z2h~Fqsqfjpg-e%7qG8OY{nB;Ydh*kvD60NvN44zu8hLrsNc zb9;v$d{4HIF-ml#5ZBtnP9Ew@BuxtNC;cG*)Q?QId-B%s-SYZ`as$Z?E*6|2f4mn? zvithFqK}?MiiRyJNUX%e!aRNsIiiTAegNHsN#*FTy5XElUyM{sk%ApgSVpbi{N%;+ zZ|$vz59IpY9h#P;z0qcY8Id9OO2_-t>1(&o*FVuualh3~F-0;tb9JXkglK2|gs|2# zCeYG+7yo(ljUQQA^L1rmC5!Kp?bL7r8ty*Uukb2p|289DypwDaANX{DfP)Gl;rk?C zSCcqixGoH(o*Vt^?MTx@=_HHptRn86)6~dPkP#X!l+*pg$8`iWLEVC$s)v=*Jl*N* zf+cW}rV?8)A1dyLUGt->5p2=;`0mn}QNDeSu04Tk&H5e`qs6*txvHv?Lx)}<3a&!i zz2cr+6~2e|CXyF_zwi1cvsR>-!*+|WxW|t|@ccv#-Gv2rN!}~gEfqLlLtZ}_G4DSt z^b%iezRBrw`r+IRt4dxYd@JD>cTnClR2E=N&hR;$hg6_=f_)g!toDU>&MIDSI>?X6 ztwW|=CTVGgvz<1|B_mlwWCnOxSuNsT*iXi=ws+-=mQ9)D)g8pEJHx&}5Y5y?G;d?b zuYM1nY}5R~NNAcExdpd8co*R)v{GX36r#UZVfM@JUc6ARNeUC8qbv(`ciq09^y4eb zLQx0Q8u;*rGEFo2FeT-0r7LHEGsQ7FEYZ3rMe` zYebi@)XW!AXvJ0GH>W1Aj0(~aW$cFjJ{RqxkPUqTtZ&f zsFrSEb&oGsjUOJ)zrbcSW5XMVliYev#_}b_Pztt~Pgj_}_&U}uW}jGiggZE=oxU;N zzb(hMLccR8^tUNf{_leA(h75bu`LIV|#h&iL%|XsLbkxA3tGFL!uLM zLDHK)r1*MI*<(@Ukcke%SZea~2G${a(Wtqo#Pir4T2YA9_I^CgZby$l`gHQ; zmYLic0&BqT(*aZt0jqYH)M5^QQ;MYsEAXNJ7M@X^#ON%qb5_1`=wQWaK@ugFQC=~T zF=CacHa+_gJ$JF~q_5tY(S1r5zO3P{r1u>rE6sf7Vduy(!D~k6Ru~TVC|JqgyA!wl z{SYIi^m(|~Pmi7N4wRG+u+#S^uolE@b~OqtV&VpBorL|F8rQ1jPa{1?H*G)P;iU*0 zol%Y$>C4}2fRWP1AHkqXXVz6)r$nFPtK3B?l_*xsXJ3644Sn0I=xWXjcXK-{h$~Nm z6OiJ&QleJ&;Q)d83WY~}fat(McfoAa`9aWk8Zcio(SvB$6|&qL(VLl!IxKLsg--v0 zR_94-omif-z1QQJ2iT^2smbp~B(L~J=uVa?J6co-;t*Bavm=f_+G)xTl!NyKCatA* zHiDJ+9&5%Dm@s}bNy?s?30`@xlx5vV{^D7F6g=HzT}&U=>+i5yK;mbt^+tllyY|Vg zZ}!+9Eo+Zfeod`agjML2Tcsx$k4sMG+B$U|kI~#6t+Ok?Yr$%ld0=RM)lb7Cgbw+2 zIX;fK`Ee{uMOqFKOOHck52UbImEX&d7$wsBba$#|6C?w6`zd?>%TmJ zykzn(b~GWfAFNJ(ZufeI4a$o z@RVW5oi&+)jQ2nNE>cGo#h+`aK4GMQW>Bt?N!z|W#{L@T+jt`3M{xF=J(I6to;@O; za`?Bt7d#U;n{-J-RF!9`lCr{&l-3tCl>7F{bN0$VKvLw)mOH8PE3~IJk@1?a3n-|h z|3E9}u+K@xao5nnff!{4mI4&=?#t*Wasj(28lAB9N_9$bv9bhGWRs=4wlrd1vtlqT z>*$u?5RduCJ{4cz{lqXmSzbTPq0*+5_2uP}nPyM8hXCCMZm!DhI9lAOQ*mAN+k3KN zQEXPXK6g%_2^EAM*K1RMqYZvZ_T-kbeYZpt+oW}Lq-KhQFEN&Ip^&vlu*PY|&48N} z2i_fKmdchED(XKQjvWJP znFl;Rc;?OYrl)9BQBB`Y=Dt*Z5IpS4al&Ik+#?<8f&HTVQoiEv7w>UeV#X#uKD61Q z|L$aGww3U<-tM72Dr$4N59WJQ;*ZT(!5dQb(n&Wi@Nw@j_Utb*N7E%6JB$4wt$x18{qnFS%D$btyx z$RGySM+mm_#gV-F5j?-aTE8Tft6iSD#Wh;^A_i5qhv}E(7!v)cDadz=l|@SfJ0l-& zILv}c#xHhGciqU7SzjBCHYa-6@!GABdw$;LU)w_oP6MpWC$SE4Kd+Wd$E^?y_&fWK zl_zbcZx=(e`0%NX`LH6kEbkW%78@M&Nuw!s7h}VUyjIPU@eoo&9c+> zu(FyeX@xC{pKSXid&M#PmPDF8NBf^lJh-+uUjRK5~5WNe+g!pjqGbPG7p#ivO} z!^i5PY^ZDzo=&UY=a<(XA1>c|n>D4wOEX@cYF-E7b?|vqI;|Y@LjT4r#7}Ad_NZ5M z{d+SlpU5ffjQzadU!|2_I3H!>Q+J87l4x|K7) z-kfd__qxW6lGaXfJsWHa+h6`>d7!AIVH*30R%JsI9=Yj zAP~S<8NXcHKYgo?99}_8QIQ6%svUczr7Vq-cgc5x(mkKLab0(lPK@J%dqjTM%6dg= zrY`;j?4E%P25x(0DZz{g?<*CB=doac$gb}KoP@y3J+B`R?oR_=Cgq2A@k6yd~piS^r!sL=Aewl@zp$%tkC%^RrL z9q%D@Li9vU|GZvFic_mafMTYR3u&0P>4hl?t)kQeGmf5KBRW;Fw&O4Z_BF zyzIH}rw-lnReIRXRsGmlx~ORN3TM=sv7{}yX6Wk%tgySybkZ!nS?43XKrBL|`#fty zO+W!`m!Vu?QWoD;=GNOjw#>~CV!ZiazPX16&mR@Q_A?(Pnv(kX9h=Wo+JD+_J0EAZ z2U&Ds$^P6!pK<&aC3Gc(k*7hwSRX%jPf4SWlyzVlUD0udadHwvy>C~;UP&010&vVP z3$8n=YQ%s17Phwd!G0+l4A)e z-6dah_7qca&OOrO(UKhUOuaylgg6rDl?>L+YZ-^I7sHTA%^g|q??OI)=pR9%AHmKu z^LolpA$-wbl$)g&&7fAfJwULql~dl^N3v{JP|rKpOc6AZymb6SX7j|?M&sxc*27!PkH9z`fj&~Y&;snf@^ECjV|uA+SYEFQduU( z;nr_T^EvPDu|78{)<1tZh*afRD8Zd7(w$Ya>Pw87?2_}H-rnftasI)1Ecf#h*mkcG z-J^fQ)4C`qm(?!|vuyc9LiUS9`S`o(`$_F9UmnD#IzU#<5F6(G?_)Hao_&z;Yq`7J z!@*ip;db(HxoR3t$rwEZ!0aP4!ur5UX$IA2w-&*tl!Np~ZzSakHHQdzu4Vv`TCpJH zP#BxI_iVDyw(c8BQHaq`&o>_;CR&-5-ieq+k;Kh-fHSEUbBApakm*u+py_SYpx?3L zgL68m1=0Mj$>?)xa;hR<=TwY5zbTi8_lmUZX(XHeEy}zZjUXSlV~HHd+ztOoo9*MY zL)v2wW@IYUvC=Ru)E`2`I8;fGr-Ytvgn+W*|2)~Qze7Bo@a6`~tb3*Va+VNx}f zx2U(_DhS3tT(U(@#SBhXS$j8+bnPR83rAYZ;>>%>LHc`_T zP<5*FReGqBATQN2*|s>hc8pu<~P=5 zbtY8tWy$a`dWL9K*P*NJNg^gO>!~h|ZA6lLp{K~qK3r&71VWso>5jGu^KiNfz+<7dQ*Z7}JY$|QJ z69#TkV|Ca6;kw^AnUcmQFpB+jSduyx5-#Jbu;=pAMF) zVc@4iiveJSVp(Ytp6xW1Yqk%a336Pq8u(?~U>C5jKe^`l%hk;^4(ON=W`pZC2}bmy zHGDx$l?zgVg<0S_NCS38zK?M~D~=Mok+^)znK8dKg!Os=TcSi8+U#+}jrN!0+v#T7+0q#vd7~)s&g? zF#8DMJW#eOaLdJC_Gz1WI5f%+8=0s{dI#HYMDxoJUQb=jepAW9r5mV{ZW~{fC`#;} zSig{|U1zS%w*e$LW@e@iwjAV&uM@595vA@b=Q}qWiiuoT#$uT^yUbnzw2|HhXv2+) zEXKKIt|MTYQE-&~DPv{Ay`{c7p7H*X>49LL2Bn00j(OQpo8qD@Y%@}+D9^=`M+cK? zm}O6>T;@tMQ#oWR?gZvXS7j1=6GRT;2=6}p(O6j= zzD+k6Bs=-QqETU(LOaJ*=0};uL@&wP^13b{W_sEcbX}?8gRoqFr!Nb!u`+his7JC) zwtOMfV`f%F$ZD2Dd@D|&44*OtGRjF$`Kb{*MI&hMcJKedR7ROi0F zLN+(35y<~d=sa3rlgk3X)v8oczlCu{S^f3e1aCH@Jwx!EMuORQCFQU8Z1ZbB7t1PT z%ZqdQVNWJ%_Q}B8WXQRSVQCZTX6daH`3|`V6L}`Jkz%|}6SqgT+v+*crgWK<2Pw^^ z5je!lnrBY!@o$8%lz9iYYsdvlPu2l7{sl<&JkkoK;tptpz!v>YG%TIUQbuYI6xnaJ zNFz>$1ZSf|UdvCu$O0q8V-1re@>mKVPDl~pjGIspjX7asX9#0C4E~zs8Omb}EN@qh z+R5I^={g@7woMUU-MF*Tono6ktL`Mpvz3*0vqsMebuQg4cN4ACEkaS0#%IF=xSra@ zCEt*0@`r`#Sm%^~W(#k=!IG~csUM(dxu;$OQ<-Lco-SZf81dRI{W@We*} zV|0$5Ol+W=G~aheN)wNoZW@d(bCWwCq52JLZaB328tuS<-t(xNty>jx#OZs@A6Gbm zB??PkGuH4J#d+1UgF9e*LOtv_YjNt{{OhpT1gaawpJz1SF=ke?zU2-He^UJ8BxZT+ z;P8M|BT2Mu%e0`%AKPK-3x9nj=6<*xc)~PDfT{{Y@0h)`cC16gPf)hc&kJ}!7}w@d z{wQjOifKUTpI8#%#JZh!@hvUhE8ub58$Wzg%d()lQ2v!!X%mMIFhK3zjAggY>x4|S z-{nurwV4`AMrBAqZZQrnLcH^9$Aa7Hjy?y5w`m#93UC^g>j-}`ovL9_OPLf`PR%G3 zdi$7`<>P*gM%eLQJ9JWGtv-KH>Ac`UetqfgMDElK7hokv4ixq=hQ&54<7&QuL!<1L zqjdN3mea+6cxsd<^{(LbLL)rCj83^$X12_HvpeEB0C-mqzv%O>mK;;_ZUGEu=89^O z@{X$h6Xm0I614AAW?Fn3wbKMS1(j45PIeu~o6w3H9nYaKT{fWqOvj_M7F>Bd&KN;5 ztJA9NDT}Z0ma;SC4^ka=coc2VzOH=cgwybvGxC+L+B7dVye847^aSVHIyodLR2(aT z>Z7&J;&;W&(E+4pSm;fb1E*{@rjBBWAy4s1X5>MK-JkR!O30u)Urkro=)w>ljtI>LPqNC-7@9HLn@gez0hW<48 zjDWHNcScPYOvNStZa`{*&ZQ^c>GE;`CqIpq0eV<=EK#i8$R{Y8H6oGGvOfLG>}^QoLuH@?6Pt_@O(&LeglS?zS+&)Ay0lVFh2tF5xZs4nATXNt{X^->Hj*etZ3SV= zbi#^pIYJrf$4yksuO`6yS+L@CLn)>S%W^vt*4atz49`7kWm0vTCuL$7TC0coV4a)G zp}h$LZU5u;i~KL|kNs`F5#v#&Mvg}l${`_Q5c#`8sU$GMLe`v!gS z7OfoMf`GJixY}^ukCkLMW>6=-c`cd67~_jQ$kO#$vPL)Q-!E!Lk!czO$eliV4UwpcC@r#eL*I%D&N=8vNFK!0+(K zCz9>DT4Y&3whwyCBWzpPO-6{BLCCL}kxy6v^q@J-svaipU-HoiO#d)n-1j~f1>=x& zIusf*x&cFE`?!m|o{c$zop$S|0%_wA$y|rSOz=!IQ__lvC)dG>4&olZ#H$pj)Q)JM zH9|)~w5MTNN4-3*Erovm*&hjje)@^gV9Jmz5}Y0mPPIUAo&?(&r9ARx(Zo^j)kFey ztI_{N5(_p@wx8iQu?PwD>eYsyov%voa?dx@*P+D?3pyIk@GEi)?pOxU)C6Oz2^@m zwcBZPh?^spgL@Nba-4UeFN;H5DHF%Tx!y3A}K6sQd__1KV;sZlqknIW}>~;j5fSPGJkM*=lFLySQDq`wz;~G`l_*J8b~SYj>~K zer?tA6PV@w)k+7}n)T@Mep^+me7OJZtCXTd&t42a&iCp1r7&5yU}N4T``l+f&D67+ zyRYZz4xK2>4QBCvJrNz(o<@gciI}C|bJE|}-bQCqf#iU=^iHIyZ-*;E^9(q$ zO=}SfCY4y!3T=^F&u}%X+v3~uzuuxcD?1`Nkx84j2h_xDy`f+c|02WX33*pw>oy2P zLCbfa4huZk5g)!wTr`vf6eJDutG|nSSf5|M2#Z%UaZ|52v^!v9cKI-YmLaFgHJ!;)%@F4?fqAi0oeD}X6| zt3UUDkoDC8O@06S7Am7uKv3F1q>*j`L6MGuz-R%9(IMTSq;HjOBu5Euqd`%b(p@7& zgi!f;=%vz4K`Mq@NV{Yg0_R(sP0yE@Vd3yqtdz;)+>$%R{4>`t#eQ(n>1#jMaj+$(arQ{nWSu=H+yMx^1D zG65UPe8D2KH+=OxImKt#@yvsZoY6>QCg>YyZkEp*$1%j;m7%$Kgr01D06gEOK+|h~ zV^Ea_aH28-rc(!f3j(P5^{V-w*`%w4txx{=kuSk~XlV{WgQF?f!vRx+@!uOF z|Gw3%;Rt1FrYh9ky-L_QO7|03+bCGVde!DQdlkH`ozO>OJcS33N@@Au~sFpdB0 zPzCeU&MGwJZGh$HKfgVKlbU^kXPEM5P!IYa#`1%*|9d<*{x%Gyp?5TXcZj0UTOgSG z_Xg6xuVOuNrs>Ur5438K@#25(o>v0c)u4+g?}egK8NtTY=0PX!{uTOvpMK(m6qsyJ zoVZ@(?K$MowARsdh{i7N{*D#=ebu}kFe%OQmOGMEXJTzs7bdrx4rLC<=v<19L#BUU zmCbPUzLYvXJ;Zc0ucv^v{P%E{YyYE%9-Y1$4zB%uX!>=hew+(T+tp{M66Vc{X^_Gl zBmT&#WiI|>?gh1^3BFpR_!+!+9RDZ0`GcW<{1n#zAj-d=`o!D8%BG2CqOHI`*G{6B zN6T<5?y!_wOaW`^xzgWd4+}zyY=f9cR#=iufZ-b-|?l#5{g&)kFxO4NC~j0Fq_> z;s{5(;Pweb5|S736oL;Btp{MktDgOXErxdMxpm?yv5~V@7KBmRql@jQk^ureRn873 zW_5Pbuj2ZiXiF=9M-2kMCV$Jv#efYbdp!m}X-+Xs9*ezotjWBs!=6G%y^;|lSDI=zapdcL9o zA2m8nz%7zZb7DmKP>EFb3H0kT(`U~M>C;BMD|=ereJzx{XJN~jlV+|my=-23KfBcu zKuf?AKj!~B6jq(>FW4e(5ly@+*9N8r4-~#GGji_uJ4o&?=k9Qxx3MXwnL4VA*=yay zZV#RP0=WO7_NI9CuZ1Cg}v<^c&PE^_0i#q#NJ1gm_qvy_MWK&eq`G3vN;{<6!+ zL_dtMueA1_~<|1RQk3@^!m2NoIr^h zR(@>VXXguja`Qp`zk?^p*wSdJZ|jtyJl(m$19Vl56}z67Z~AIS!W&$PX75pe>AfaW zTCd%O4n#EB`C`fLyE^%T+MWnvgJwNzO7qz5{N?j?`Ck0OQ11*+re&ds`Oz<*a2`zI zN_$=#w?*_SxYe{XI=KCARo%aIsqMoX5a_5gxvLXhk+2i#WLbbgpffU4s`N2kfggTu#FcD8mNCpnzBjVj}bn_&`DGDTf3)h62x}g=j7x z(*a;C9shFJTYtx)8o!Sw&zl%3CP)1iR{^4%fmOqjL2W_?5DH&)94<$XmqZ+0OfRG8 zgK6FR$W=t*LE}|2Aw8yd{xvs?T$c-J!8?Ig`)oQ{BO3-y>;Pv zfAoO<-=O8YCs0Nu))s>Y7-dDWo^U%aSe?yIdQOSRn4Uf3y>^?w%X}h8u9%)ClQ$2g zG4Neh@)lxkO05(*6a5O2`3QiP&3m5nj(E(qX_Q6Ypqp>&%|g@B3HS)fju~%U8yHtN zxexF5nrqj11_hx-9#kg@P z_gp6#!#&n+j}BMYBVGxJY%9$Y>DOtyW9uoFG+~#r-E0$U#K z*54yXqe4M`NxNzIPJ*Oi7HYnk^h#Xr<2W!y3zsF`YW9*d*m$~v;#1YDd(y;Y{LC>c zb$rKTTl*1!>Tsp{mh>`?Gk)DGBvux?#BX=%A>+5Pve9S_yA@zZ{hl7 z!$aX8tqFXERO#==G-$SqB+&!Q0ZdSYU1pl(PY;@8ZC0fU=%+Q6Q(_XCn?`iE$HWC+ z{~+EY=<-ZzILP0-%0Oa+5FJ+K8JofwjO|!nl||Ju&DN5Lrc&{;HC;P1e<>&KG-PJ% zEDsdrax^~9VC`Zh*cX8|@88FJG5W7}bL1Z`>BlpeHW5F@m#!K$S2_S$b5YwH9}3I# zsSKb?^99*Kjvxs5{aXyLyt;{Rvi@s5Tm;jx}U++V)c_Cu_b za?FP-iY4EA0|?L1y+EwyBGm;Me@-x%8c_#Cg`_>&O${{im{(d#$~@$yo{8=4rLAKO(b|OZ^&HHiQG% zcKrf>C?xK5u@%3}nmqJiEa_8I#2R5rT?l9pl2fVWTAF%#)5jwE>mS6jWHW{Y{IhZ@w zP&?`%fj6R3#kY{VKhPY=?@mjm5TiUv$Xm6{%cJ-n{?dcVV|-Y|Rxw_dqhTPbdLqjR z>LK-jQ9ahg{)J`X@NoP&i7Q5$?3SVsT=I+6Ti-9ZYzA1oE;(!eOJquFt_(6dxu)~% zX)?AVo;u51{`Nzx<*+9PvB>aJrRUDQK_$>j!bp!78BhhVfyb-GU}2IqJsF=5_L>E0 zr!KXh%rc#R4Y0gsz&N1t zJ>(NRrdHpRixAnjHY%%ZjZgXKExb<#C2)A@u%dzsFoZ6)sMu726gbA3cJY zeC_q9c-XZ^;_dF$UOzH{DUTfE;Hh979CV*{z z8{gu>HY_Nv6am>>q1AsyUL!mIt9DN*fQ>sGG7OTwQFi~dpg~L67FAN&>gv_LjVoZ< z_e$5DZU2}(#_W{!j=^Z`7%+SEvV&aiW%J(;ZF-vV<S^2)!RcFG1Km>i_v|`8BTB2F_#agSLl5@>whpHz#ZQfU9L1u{KP5{Fki4S*mj>! ztn*xBp$7$Zl!~y-+VApuL7N(|%uC)5!2G;Ydb~6r6`12?l$>LqNyAV$WBz%*i$@?*TQ2t9$3=~N^q8?Q z6$pp;ArLyL-_o~lLOkQq?^1sMp54$oB#%ezL9< zmy?T@RKFpol7`Pl#2R2i|1gKnF@TjT#J-N{2Uhmiml260dYB%9an5JWkgk%wLRxCq zVyF`}e<f0{SzhlH=(Db8hgI8J z06%8!jL^`Ae{n_-I41UCdj0DhLkS8~QGm;rUDC zjf=CmX#_GQH`Z@{hx%Ns27b=R-OqN*uK~Z^!W58w?1=)EhD z?oQj)uZlNjX?e>gCM2%)Xvhe&-N5G=cPY=-8?ifuLVgd{i`j1Cm^qL1r4Cu*%tdUr z)es^UDR~^EIclf*irrZSrT2@z-3C+obo8{}9x$}_eC9J=Ue?dQonsclTe@ZGyH@5a z-WNtn?Q-6Bke4Gbx`mz@62^Ei9QX{kCzr6cJ!6=nlA{+M+ozk<&p2cWKh3QCjl;>d z<*6-3k$_~jSHV!E{ftw2&u2o((`@-bD95rLM6r!nOz$mS*cW@_ky=U4!ycTEq=|Tr zdGGoQg#6#%*8OW(z+mPr2qkLv>Y76 zZjb737R_}%`1bsatGUOVQ&Ss^;(F~fxSJNQt;T3PZxiRPmG6dDM%%VU$xv{#-{-^A}*RpL3B` zvNjITV!apqkj`%5>ci9%p0MeSM1R(N0&33Wu&*Z7o&2SzdIVq4@};4%_}1}RKgpsV zXAAmCjT*hfcIp|r%$8|*%b`)%I)CZp^PVHBLI~-6BrI}f6HRP7|2;l82EL|T51if1WnO>SO6Qkh8 z;D)SuYF6ev^QW?NhH&%)UAYmf7%#4}0IPM~*Zev2$%~%L$}HJ#c3yt{(nTw;;5~O# zz$z{N-)eYbQvt%2J=E^8blFlS^bRRN(eVax<_Uj6s5CBj=#W0vTY=?O%)ZtOO`bHkbn*E7n$(2GUoBzJ_bCW026+?JFf5bC?7&J*QV%>n4QE|8 zcj7m8`RFC_ubihj`=c*vz$=;GoT2WE;2EnD;!7flCQVZOTTl~+YTDAQHth){-ze;d z9&Jv;sr$Usr%34hBCZKB`>3a3KRxuF!Z{;q=Dhbl3)5f8-8W1{f1ZFL&bC6&3dWch zX~vdZnD#Xqt2QcZ(K8*_=+9|+#Q2)x!T`dMS^u2D=SsTa9ZR;>?tS8;lbBW3F_wYF zk;JYyYzjVv+ZM^12+@hjl05HMorjyzD1rG8rHC(_f}V7K>Zvdp7Kt=Tzc%!T3k{IDE6w)Fk-&@M1s{U!1+v z0PoP8-s;+zI_Aq=x*d3E?j=x%+3kX_xeWuzCZ}0-bd*ZIFOT38Nd3U+4yzHj`7D_oDcxz1E-jF88g}FwYZT zae?_S)$Pt7>%=lB_dPlT_(vJke2YO5+KHE~DEG{+kY@>tloS6izwkg90vZ7cedZBf z&InqbhurwIj<+V6HrDd-m)UA*C3aZrM8ue+^|b2>$JE4~kGum?MG}mn65{$C?zRSq z9qJr;&5yeQ@=s+iE3KP!-W-wfz?=8DZJOA&gw4(;r`wQxegTg+#xe~%&Q-%Hzh6SS zdp9fo7o|Gkdj@jar8X!DWv44U8;_U2(G+^8T%tF;yHn+U=aFedS53k%_aqBXdpTf6My_8VhHEhBsE1;z(>z+(48sSEBk*K5# z@OWFVe-jgC6&4r5+CQ72uD@&il3-_`K4$#0bK?}cCA2JQaV^Wo80EH{e&e2)onKg> z?$<6oErgMsddW-8FK-_a?se`r26^zE;%I?#twx2nNdEi}aRpnY7lt;LnUuT88*ZEq%g=88QCy?*^ zxme=$eEM5iVwmHgk;~HnL?LBdhzuKG+_%G*G&M4V<&(tqU++-MgjO4@1$6L1Upk8E zHt7sDkG7kpNad4Kw}GfZ2O#yaJ0V(as57atCo;C>svo{jD|i44Nkoi|I7tavi_FL+ z|C=W;qYG}iOOwtZVi0<#?$NM>G_5|feWO&$q6M!~bjTS43j3gvE!WQW{nh)yr|1+N zJeFKzIxP2S>yQ+ZUg~&rc4RT<4dNg4f+0u#alW?s|^ZP=)v7fA}8zS_DC#=`y}>W>2E0v9kbE|3pBut zz2|NDr*T{Vz>lOag{6rM(DY)+!p{#^FpI_?v{TLKy{qdfZN9Ghtg3J*uY9^T_xu$L z7yp%O=sLLM8Ed5+C|?y!cCg91ZILeCe0` zi>ZUl4w1nk4kBwowQyT`ELr=MWoLmu`zJzqhOk3D<`t#=j&|IUERIXS) zHY7}BP^PbkWFDkMsD^ki?{UbNvIe;fC*b;W#%)+CAizdRsoBR+qmfIKNEkuiItW)9Ajfs;g zF=KuVz-Z|$VLmLPfUSGQGtEhgI`a0$_p$A#OF=!^D)lo*(g}~zaw^0x#lr&We|R%T zE1EWQi-;4k^l9nCqUeHz&t*01Uw~sW2h7x1Cjj+Su#%LrdW2KZ`lzg^g}nUnnXDS|OpvIv(JHw-MhFUs=EG;Qc!dQ1wg>F&T z<88x;5Ri6o5te@+p_1*qzF%#PrbDVkR|3z)7u!`im89h( zn;1Fd1>JL4ke&jRT#jX``*k0~a=(rIAjGF<0#??VSW#l+zSA<68H4w$2T)$5^U52*{MXHo{xh~fz zlScb3Mc90ciwPa^T-kC@;yZ88E}GbOftFeN*R4P}=16Sif)sroNZqlYNz$~PoTg6V zEXxppK(Vf)Hqi%Q&LVj`H0j&5e*p1bkj_#uT9Lw2P|NHQ=2u~f25gNeFO6g=AOa#W z5m-|4xe|;mbF$ura}P!80)xy5mS_GL)qX5s(&vn(ShBl{IIA;o;k62i+NJS6uisb!5keGVRC>M+zxI*SdN?y5bkEV z!&VdaP$hc%q$~?(Z<8Y-;F|5;b6G8@R%?Z9S+(KG`UYIuURni&;fR+^^al;i!r9Sy zknfUHYu@iET9SvaEL-VG|6Sryw9U%F$?#5>j6Ws=!VJQVweFEYtv#JYkK%ai=bv=9 z`<=_&aa<16rUO|FWeW?JGTS)aqemKIwLfc^+EwditV~JCI{9J!W{L*O^uOe68xcIC z*%D1@?xLiJIG$>DiK|8whM!MDaHgrycFTo5gimQa(3;X9k7_3fTp3=|A(1I$c>(i% zG?G{gp&pWzs>#iWn>|XN(jCoWEPV2AaNklEc95xLMqkK)V=XhTk4-`CPf?n!~Pug)Zbu@DMa^}%N*r|B*d1e}gnU_S7chgtjms4irw>TQI zzO-$fqnw~`4uu2i;6lS_NrJQ1CK)w5dxfm4M7h05X(Ivlb8mWV`%%KKQtgCG%XZ_p z?UdU~EbMW~-p39MEg5@fCX2><8OnIEdR87b1ZbOqr zAoouA4t4!f!gfv9?pDD}whB~<phXm*Pze24>K zjF@XE8PAF8t?Qxa$i>0N0a;5Bg>R(J5$~n?H>P#(P&d{@;QJ5eEp#z_0Bmn> zG@)lHdiah{Xp2mfeMqbn7 zDweD|H~ZsI3E7$@+-T*tZm)A`&5d*6R=VO3;M9_d!LdKCZEYsV8uC@2I%Rh*`6hX_ zU}5p{ke$JjL%#%1j`NruG6sUed;O(vDOB0FVgUb&h8oFR)&joha#!#a_bQ>GE}oM^ zI3VDYZ2(0{-oqS~t=8@0uTL4FUn{oLXiHu=jJXV^_o3Tf&4t_7D=o;hG7d=SS>{+q zAuiReyg|!J!F5RdVTfQ4zGhC9trFJ)@%{%|Cq1f}*au0YAG-Bf9d_NJ@*JP)DRAP8i6&b4)6HnvKpTiovKjL})Y zaHrI&naKBn`$;|TGHNo6UWL}an?~8~aD>fo27H)xQ|`uHS$}wp?>G)vng)QOUO&_M2(#yu0?zP{hCZcKvXdge|bzt8A zD$7Lgp#A9mO(EJy39vEs)c5Ejh+H}HO*0<`KR$LFAx9}`{L^#~Wi)s<))F?zTQ`_X zd_cGG$~$Eqz(m#tl7~8mN+PvMglNTFY^N5Yx8Dh2f_~6nhg^BRipmuqioqp4i318Y z+OgsG7c?vj7lV1R!UhK(?-=g%NW4xo)IiIDq(qa(#yD*8eVL)3cE;P0mqeqJW=#Dv z{`FjW1#p0+r)A;m&veqwC_5iPBm%+H12YqBZHLyK0OZ1ZUso;meWRsR{M!5dNY=kLg^WTC9s2TevBRn#B zzq8YI`vb^oXp{LB;~)o^dqq&;?Btgb_K~43`MS57fXcDxqNc-?4|qx0Z_~Otg+Hop zcmVDt?(TzJz_w}H(~IAJC8x)qM*RHJz|&zCt7cxZeS0SMR0yw}6p260nBhSrop$&k zS~~ny{X(*u%BSfZZ|d(-#on5Enzmp8uUXk3#S_ZS31R5kr8SG>sdzT2Vdwf&ogkoN zbJ=9CgFpoVpr58LxUdF3@)~Ud`@btsbA6);2x}t zzp+se6wCuX`|!GLP8uDw)77AYTUXjv_h#^m+@A1-6fUX`)|* zYaPaAp>d-eaTAc&dtFW$EKy=qQM&=xRI+{6SD9z)rl^((0%3)2#hm?hn!7zVH$ONc zik3qs1LGc=3ETRn@2~w~8P7-GHSeQo{;J_gqqQj&o%Zu#+}P7F zYN2>q{;RsXs_f&=F|BL0Hv{L{cl|1~UC+r*v|2DLK%#`Al2dCITC7PI zsh~TyNNE{I2A3>z!|Mgm+6ZaToY4v|xfZvz(sW?pD0ihXGtNdPRN$+`52&0f;YW*x ztl$>ahOKhkraL9s6;9o7{S2R;z043!MOz_PU}i@4)LIpU$`a+z5c0K-y76#!5PJ*fGXhQ$`JI`Nv=yDW)e+ z=hZ`SCi2QV8cR7C7WP%I;tR-rBuJ)N19y3ni|1y01HhR)t%b7jQy9ba`SXVF=&g)I zK0|k_ex{{-*YnwuTpKIC0IN0W<}%YQQwy>f(TPqh}x z?0omG^<1nA@gt^}UY5D8XLM3L!!y%ksd{QZ@k}F9R;0Vz*Weu97h*7u?v{DlOIHhw`En08H46?Oit{3;!hj_I$n8x(h`j zD8=TQ^2?rOPa0pM+v*ZlP~QX79>MR^#Z))MpfY7iRk!M&l=j@i&mn-|BdK03oaTv< zEjJuzZ6W%)?-`#IUW{#_w{!Aw{_kk zlYU4&ram*gJ-lZ#u)W&o*N~-2Uwod85x zXFDHh2wZ|Rmlwax5LmrUW7rr=@v)iq&B!lyrK_LhvR~QaQDAv(6-AZojI@>*+57UDkemifMq=B1?I4Zmzuf$>I^u>~b1GcnE?q%8*PiKvZuyfptaB@@4vFLN8g1V3rCZ890{@>U;F!m!C#%>`B zs3$Jv=i_&~+blk+mb(9&diZ_+$EdsJR9KsW&h62Z-ELq4H|=CS!UMsP0ubtS`={c+ zuYLcPO|vHQR2Y!{oRKvK6J%*fWKii*#EVf9z%IyNBsm@ayk0^mmS4(Y2|UJj|5HeQ ziSsl8_u;X_hZ6$*K+W-=^S}S{JD#Ue8oO2E^10?8k=%bTFk?*UNY=5EZwdSN)X_hJ zTtq=ECRQ~5BK!Zo;+V!tNAHFs96jJM{C!JMui#p?6;Rl<{;uV_gKnfgB&vI~EHm*%07!gu_Ce_0nJl0%rMlHMrxS?r zlQ-@|yg@6J;Wa;{kQ_mqZ- zlpW@D+324UMF+QRf3<_<^gx07IhgPS5>ls5egJpO+=iWxuqkfe)8 zYz-oGW@dB3373^tKR8uYvSvlWE|Y#o}!%SKDc@&fdDoXiILaP~%)@x=}RUp6Y7 zXbH>DhYPyx1vFR&OrdY{DFu$h1pjHxU-^x!{c3Wb76V~|*uxF-vb^JOCKI4qhs_S# zr4OGF825kG5%q!Jc=6Ln7Xt4lsJ@eRI7%n|?^_I#i{c_bz@SvkTUKz0g<2n^$}zHn zm4a4K2TJ4yh`#Rb5ARJZ88{rW-mcyZ>XYe0%JdGOTJ^@!is@N?JdeQMc4@&a76HgjZ>&uMh zw#YPG#oo<{eong|`}cUc+xtT+T#oMd`+QLHYwA>B`S_&3O_}-@0F*m^0;t3^wJ|@b zK?c8;Pfu>&@tv%+PwFTU+GA+4Uq{wmz+EyWK!= z*fB}E%|0O>yml*_dJoAx>pJtNB%9h);nd6fW^j(*`Lx47;HCa%C4cB`jq zyjEvYjbCAnPE#$E@wioS>Q?G(}-4ww$4{HYJet;?f4G4D@n}#?MGFRJJoT z4p$3CQ!@E?U+o%BlJ0be*BaycZHBkvMpJUoj8)e)AKisq`dc*Gn$Ur?y?;0nPq~s% zZv<#^gGaLC>le;YA%R`v*6Y)iif>MjQxNiHIwG+2ASnzB3xRTz&Y}MWfO|fyx#$!L zc3;qOA3JM=qstZ76U7!5&QP1lLb`#-Os_;a-JPG}kKy8}9e7fGYUVp{mlUw$A%r0`{(UJf+hAIvIdRr=gqoK8& zHrALc6^EYDZyJum$<1!Fn_C{eP)n!pashIU&oOXI?K2RS!vUd$_~J{w8Vmgew>{4B zEm0R-_3x(0TWj2-F_&TEnWOgO#OpMK?u8+fHGbMo?QLd>cBp5V8H&bgBJP^U0ZQekDm?zpT1431}Sf~8QlH!VL=TDl}PUFGTpW1f~{VW9{5JA4On8P zXzn~pww|bCVURue{?~5o=O0tjcLt}*^C4mj-bb7vKoDA*N=@N1Wyl)qg_*?7A$d9% zka9&&m%F<1#xNd!BhpITpJvLfk{h<2Ia)sQR&{i)2x!+-d%6jKp|9=061zwt#lpOd zo-$|I36mhg8^SzOmUw+eN~~+@8WDVDC^`bCKSyU2lxH9|ts9IMDogGTwY;-xJ$}E11*0qXdbiz3Dev^HfZR z{V_$c$2nh{z{=O{b+*h-4gTXxYu87WBsA2T4vQ{;j#T{qNvbK`)+Nqt0A6r+c<4rc zJmvkK56t)$Ur{D=Zk73Mh79wYSKn~Rj*7*;0$3(tl; zg}fqJb0)tt}BkZP*^C=cL21%x&y#AzK_hBx@`ce7a3 z&#{T~hNY(EzE9njV{$sDOvrYWIc;S}nt`dixgjLJxhd0oGCIL{b!r#_u32jWNJUDzaT z-Z~@U28dD=*jb7Iib8rzVws>$u@U7e#)_p>Tz9|2jb*sTo}r`-%Maz~A1MVGjrSaD)?-^oo z)-w#01*_))2Sj>rN*NW%8r!&`e3ocwNzMmG9OB+^HNs0IYhQAXy3a!9Lm_eQ6(sJ5 z2b0&2*}YLz>Wsa4UgZu|5GQMRY3pEg$XUoL`S;jQHIby$ki;Lg6AHT6s+^yBcqx@J zW~{5N761fIx5JV=G0M*bSN&ld_K##Z<|&F=IaWn;l%JF(Smx`(UrELBUF}C5jo#37 zj08KbbH|%=mET;HDYSO}s3V&(x>F{onMee-I&B=c@rvjAuVo*x=HZqn*EN&h9Ydre zmewhm7EmB%pi9;#)gtp8q`f{Re3Dn08_Nz5&i1xuc;aH~Tk8BOAZPg_T7ki0n14EZ z?iYU;1m!ojdiG|wrumYt^suJE#;=ehyzIPpspUFB$J`>Hy5VN-kT)0R zZ6+6VvyVpu@)0$+#GWTcF7%$?Ts}B)9b@GG@o70co^~juA=7_l-_Z;9dT7!cKV|zQ zkios@A(F+;s1pcwg`i~}agRs^a@K&{d%mNSX`VNC4wl8<-@ohY1Wtu6LKmgiiCMR} zelRt57Lv`CoEmXz8E}_1*4B=Pkdn50Dbv+^$LGD)Y})2GmOgFA zkrw+`)r2>-W=L3c0paQ^>}McuFT?cv&I-|d(SDze9PqhBKA&Ft$()viqED&B$qYfZq_eBh06r% zvC^GQ4PYA*9kq)$+Fi>b0`UxV@yTOOdLdmi5x9rXC@^-BS4Ek+b&F90meRrzU`Z|T z4w$qh-x336S<>q9CK>clu-1^VaKxA#+aWZd^3FlW6+KBeW6_B~Jl>{roG+2GA*)rF@SFmLfNHY0 zH$ZE?CaNWC=44!$as2M$m8IkIVje#eu3URdPFVkHnh&xYy6V7K(?^8v|3p+)?wutsEi~|7K%gyt}2t5_;%HIzO6T2+P!vrAY?L zErq9&2~Cbd_h0UalyAuG=!Xx!kUbWN4wCC5c?C@O&~OMe<;CB_g4+nTS~jB!MTE$*}*25{8Nt@R~}rHsO;s_y|_aXKlBcWfW1yk zt<^iP^B%~Dfs~EmB+#cY;3;fjL!1`|Ngg1ZSUZjovTKCN$3QSou*0%2bbxA=@ zeFd5ktGA=#R^DdCoRt}e#`y_RF6``Nc25+ZdhD9nCtmwlAkIf7sjYCM!hhOtMP=^e zx@?1)abuOY=Wh=?=&zxDeVu}B7Cp7|*udFsrfbJTaY_eh%r>Ws3?AA~>|Q>+uwtry z_5H0KnJDLi3(o-Gn5q+GA&XCWLOg-MkvAjFyZjT%nLIwUcAA4i6UYWc&ug!GEs{7G zho(r9*fd(l}+`>oO3&`oSN?nHUnpBFxBim8SqSahN$BX$~ z(~)+%vaC~ALrY)((3X2hGoI{m-f?;7Y0@`iLtZzv_V3r{>EmN(Vf{5bWNU+gmMo4A znHhq%dk$X9b@AQ5I`va<&F$&h$<7zbs_Sc+P5om2ihIMGa0NvHCE?2xquJe0N;x$E z`Kxxh8uD`V%)|Z;%MAM}=M;>$L)N{-jo0n;iFDPVFdkUmH*)mCCTXlkYXlMsNyfR`t{>J}3ss+Z! ziy<2pLCX{$>23Go=+zDvgLR&i0OB{Pasu_c6)(v3MQ?}Evk#3CX_Su4krOg6ao%lc z<2AX03O}aqb7^U#DaXD)|KfKtK}3h9+ToQ4@lZ0W-|lD71-~!|^e<;Zg|!;Nbb$QA zso<6%L%w04i8Qf)AQNIgK@;U%9EH17!-H%(=<@+r z?6_aXF?~LJUbonp5SXFjp_T7eT16OPu{!KHHX-lwL1;w+C0GI}J@UIt_m@-WDvzRd zC*j6#srtfdMk*fa@t!Pb4R;>Q0wLumQLL0maouo0TN&9E^5*Ffs|k}+IAaZ)GiXf$}>|O4EpmpGP7Iwkiw3T7cB_6yco#hKDBGnVcOYR9lAnx z)RltxloLMW^_fj|mqXZ^>MrOHc5A1wyp@9qvnD-!NE|~HXoxi^sw5pyns5i?%D@gaibn3r@&2|7zdI`B5J^6vD(;y9Z z5el`>N_8Jo=bbJNAmsPUtQ0FQn~XJ!9Bt~8ZkH+h_(%tEJr5FxPFSTulM9Q|HocqB zV{26=G_G1^FI9pakkB?NF4)Rmk*kB=rI0EawANm^e>6P9O<(q@45e*ED&eR){3|cb za#VrH$@Ba8`Ou&0n0npI3V`^qkKe;m@Y^~zwskrj=9OE+tW$hVTc~nd6X;!dh zMq-V~fOg+b)o%HE(r3ryPW9RCI#RiWUk<0;L}2pp!6&?7x%}!2lb)L&_P=>&>8dP2 z%lJlFN>7{NtUF#SWcO@)6Ht<#qZnE}h*pN?Wl-zQ8sMdLMDX)xci;PkXmk{Q ze-^lF9rWRP74x$YZ?t^mIS_U$TV1+zqAEu-ag{UB0Ldh?Ip`QpN>k@R#o*}HxoRJ{ zy2pd1EioJm?w-*k>9p#S2rt|Z<1=oZ$d7fq3UJ?u+*)D_L;^@sh z`|AS%I9-a>d+@1d8|GELH(OA-J9w%y?lA42rnF=%#3Yv1K*uH*q*MK$flR-dTPeXc zXPDbqA}Pje!x#o~-8CyRA_E3D>Y%4c*!-)dJxSrkkf9;P`Y3B#BoC%qAB7C#tT=)v zjm+z>{VXN`@gX$3(=HheC&!QVv2q8D^y*#n`uoq|vI(CHNR{PGutVR7bA@D`?V3DO z{*2fZ%t1+S9dcwczKg=g?-yf|=b`!sKe$t;B?({qPD{t_qt^ZV0Kky%G#u_lcM>90 zlJjS39enfe2Fnk7kPVLM3|t-2=diZvYTA5j@(zC1sZgV*1BI^)Q5WG+fq&E#Nf0(h zn`*UAc+EBjq{oE@bEVWVp7UZ1c|p`YRX+R)K`dSL_+`mVs9-I&90rKNQmhvCNmgo% z)7?&rjtu=29;K}*QWerR?Ux%HWLA&~=j6nj03)aenq zk8&G+R9rQ}x}6uI5=r1U25!|E66oh1k!J%H6E45}C<#xs++EYTc;SW$5nj~11Y~<< z3vQ{duckI#b{osyVaXIv%qlFH++%mlXMEUq4QwMp?GpV11WVkg$o~$;9hFCk8bJRf zHn!O)vZkv{*3a{-6ke)Xe8iE1Ro*Ap^iZcX&F*2pkcY+`Z7o4KI|6GF0oGJ>yNt;V znbRN7xsX94D}410yDm4V5bJ_Jex+{Twyd7=5s3e&iy06II6xg{s%+gwJoPMag+iWQR&Ktl2?RHkVE#WhKLpEV z;p1k8xkqFi+i?eYGR*T2SBAVB1aY@C>0MVAYHdtS?*KI38LC9~fy>??nlT5ql-e}3 z{SQO~23q;r|7-8e!=YUNKb}hDL{5z)MJno8vzM(*DN9nuk} zD2xe%$sS`VgfeAcGJ~-;Svq4$nn4r3_tfd+`^WFPe*gUb`#pcmHOq6&eLv50&;5Mn zbH6{YH(AtX37J+Vyz+qDc;(QM+XY_QHU$d50GYXd$-b0MG_|SVPd+t*7@w-t;8A(f za}TxFES*U}`XB)lRi8T4TR{1rDBDREn)x*E7z?U99fCbJ91X{6Q!7P~cI?nARXM~U zJXw#QZ&A?e_O2S?=@J|M#Wy5NM<9I)(4+$0RmM8$IMMu(TWZZ(e{5Mg|D;sZXi2;4 zYLFXndwmLu)ZT%7rM=uvATM;K6-oUt@#D4Df5>i^@c^;bMM}xoVYAQfCravf5S!zO z3Z#{gwVv7#xTi=28DTTW@jIo6Vlbtw1+8nl&S6lkHJY9n&p)Wc(U1A>=!)=_mr=1T zTCX3{IwG*kn0j()xl^aD<(}ZRq|P?5P_eJ_46PUr^^FFSeCUttEU$g(y zuZ<=?W#rCE6=%jP;a?1az?Sq0WgzzEOX-27nd08R&RA->T*J*l1ce9WhGqMw{7*uq z&C(j*aSLoQ`JTWLvAG%Oe<5Y%$%lCe-Uj8LbTn)xzMv?Lt~PQBu5FEFBW)Qj}|ciX#a z!nvo%Eqj;W-S{fJGE^HEs=RoGaby1!$`KM3x1}3!pYM~O07PZCs!xy3mEo8{X?p0> z{Tfx@?)SX&3WzATc&GNeZaH1)NS6gS$AraAKCh?vZda7&$=F9R1;m6}#Ad@fC*7Sw z^#JM$AGRfyR=slPj*l^x{X^rfy4-()lE0~|K%{9d`1=;YV!jW9DV zqnD;*5Qt~gI!$0F%&O9PKOVX&pw5kv%{3(tYwQFiU1{|1z4`W-6?xj_Ah*I{R`!qA zt-l#FMK|p`N1k-|X1EL?d#JvkBv7+@$$C-fT3Z{ zeFthjHq2Bn48a`!*wmepL`bAWfxxrfZZzSANX zzdVbYF@xV>?4@H6XCLPBQg}ckG!(=I4yhXk(`v#F!8{-#4(kDc61m%ji@#hn+=stD zc>Kop3joJdE1=H~QAU~~A-_G}mx$zVnCrTaOlYeZF3p2qnJ9Ajc%ikoYVS2^m9my$ zrQB)>`I+~YNlGtOk7q<@MBXgKvo2B-9g%6N)LTcWHjGEbE14fzyqd##i-X@nhVNIW zYo~4U7P5|&9?YzbV^VLZJ^;kcZ0vdc3&)g`=3WK{ziyW0&W=A`ljNdniODh=jMaSI zlxqyfLD_`Gw`#*>qf|-pxLCIos+%uxRdR3EK42?WK$+-qWV`}d=vWJ7na{Vv?IuxZ zq3t|gHM`yIB1auFT*oe*KmE;~^?N^@KPLzY8jow@6GnIn77JcI1Wte#PB(`mb966H zH`#WpF3nPv*^N@tjjAFU<)w?}Gq&QVT|7$CJrtfLoLr0T2BE(p1-h$IPb!I!|e zZ?l)GKiohF+vQj%t%g`T{~>I`(VbL{f9jvE&5*JmebSPxL^mz?IZneCV5)+qeMLTJ zuGSEsVK91`02gv%Af(CQGx7ABs;$CSA39{qvrqScxg$jpU3tE$CCubzAG!z$j2<7H z8u_#*1706Aq%)T7<;jD*_jKu144~T=quanOok{6i_1MwVf#t`5aRiZv#q`wV%HLFG z76s@5Iga^=#yMqw7`3n^-5h3D?%fnT=5IuW;YH_pAmIcc(^t;mD)W`B<~63rzzKh6 zz%vHhty$F?af?;bcZq|+fr?wEO<1ndRA>C1dlR5MZ^Kv<$bz~!3rSXQ-3B2IwDl+2 zjBCC_C;|YCO zZxJztCBTj3h%H|QcgOCVZhkq#db%u)xkw*R1E98MV=HDM&s*UVR*OBdR)v{xeX!1O zJC2Vf5hq*5;h=I||3Y3Fs_1)Kj47Dfn~WKW==4u=8M+ckLmrsfwT4j)a!+KOh~}ZNz^Gy_|#ciNzF^8yaVLX8s)=3 z2afYs(PM4l5&Me5593^n^<=mm0S6(`h5RF6hY_?I#fiOsn+c6mA-)d%}azOHkG@AU@fRW*BHo7UO3r^e^7E zh^E^`4D6Sd$f2pyn8(qhy&1MWTQ3;J+o1#tyl1>B|4aEHVx#&R*Qi03n%<=x!*F%P z(h438XF@ThE~aKm>ZN6p%e)Nkl4r&vex{-D<|etn!jx3u@Bf*?dd-M8pr z%WQk@<`Z9*XsP)Z7)N4;!=|-6tcyAJD(w|LUfefWxJqBvNn1@uw;p=C^qd2wpxkFN zap90R7%QANAjS6zneA|dTLra4?fozb*CPPimuvz`I>h5xHR}o<|skK{4gaS(M z<-4ob4(_8C)@NwnB}k)o?3ogO$XlNMXWO9yfGd|TxdOiO34#7yCV9=dyw$5GzuiqN zAJ@GcMj|HHh?|dJa16Z)B3g5Gqi6k>SUK14P1f&3SvLeTPd;Ip+dC3(nxMk zd01bSU%Jzuesv(%V(0>G8bp&L@Mwa!d;;L2Eho0M8pc`VA?M-0su3{-cWON0#Q0V{ z17pj3C)$@~U2`#Z)r{qlF90l^~=Z0)O|DJ^Wal zt<9~~ucyiM0NBSj=PRmQ@UkIz+$8k1&1;_X1_*u@3IQH@QDPf;{n~(!;|=f1=lEhY zb-3K3LM)^eW59mA`rJe5Vnyd{8y?25f^AW_kcXMn-7ykR2~PIl zV3>3$d+o(iS}I8N9__pPbIx&o(2l@3$NCy0OY$kI*_2n2MSmKleDr*ZuUD(sZ*S=J zwKe>H7s{xOz80)8N@>e%2aX>3q0_k)*P+&L)lN}`>sudmg;?Us3>7}zDw^o|By74% zPI1Xoi4_^g?mby|xx2KDiguTBhdp2xPw!2mA_RV(k=SjUaa)e(T_Qp?g!YKaeXV;A z#bKgcA@T^|#Tkx^&=|euxyCOaXYqvI6gST09&?ern!?iueC52jhgg6(JIab!EcGmR-kd+(8HT>*AShrE; z_0tfqlVEE1|0VdhkQ`CrhKLc!%k2^w5>`1%xCqEli~5U)ZIuZ~Q-#1D0iiSHx+7)` zxJ!l}RbQmF7G!9hCBb^eY!vrX{(I7kbSNbvh`Lcj6weBWvrNxucbL363}Q%9{L3tBYd);szM@sKy<$0rs?9^rBI*exZY zTXFWurM6Kx)|ak&oe9rgLt~hm-u=bWmQr$)iM@ocTjtZb-m(_h@%mNlVb<(4^_9hg z=aocQ)2F%)_5+y#9qM7K{^;S+C!X1V*PDdAwvs_5{VNZGFP5)2x-mJ4VMd`j-gX4)<{~vni{30*lqrq=}2h0I2{$T zK(fg#pU|9~?+p#9ucD1K(o;{l_R=XG0U=jr4xH3__GQT{Xx#xl=bq0Q%gT+3ru{QI z5=5GFJLL=uF9a2;_3t(Kdc;?1f2SDosvfM_NJ8xEXWMc|om3C&8zNt(hWDmpLs$r_ zUtzF!DbFe6118n9b57FKY~4{}PIa9KVI5{brUgBFw&SmD@pn{J<`zTr{Zf*cLn{^a z;!Bt~vvt&bz5ex#WilL}PAI;!P>o=$;<<|xJDu9uwbeVX8f%%&u_L30_wMnQ37teP zIf*4qex=JKra4jcdRX^E65vs{lHn)x@2_=6!%*hm7Y8@U8n^!Z$9h`uXFwGu3Q)g4Hkl3k zLpR79Zv!Idk4@o*x9qJ0=1zjzZm72r8OK z)=&SK?oPw@$664~fA*-~yYSx@HgPgG^kZYc|2N&(xc~pjasGb;Kd#h&4TW*1TlXam Twg!hb@;){(x_Gt->KySO+>0Oy literal 0 HcmV?d00001 diff --git a/book2/docs/theme/head.hbs b/book2/docs/theme/head.hbs new file mode 100644 index 0000000000..2e2be7a19f --- /dev/null +++ b/book2/docs/theme/head.hbs @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/book2/docs/verification/off-chain-verification.md b/book2/docs/verification/off-chain-verification.md new file mode 100644 index 0000000000..a0297229da --- /dev/null +++ b/book2/docs/verification/off-chain-verification.md @@ -0,0 +1,48 @@ +import ProgramMain from "../../static/examples_groth16_program_src_main.rs.mdx"; +import ProgramScript from "../../static/examples_groth16_script_src_main.rs.mdx"; + +# Offchain Verification + +## Rust `no_std` Verification + +You can verify SP1 Groth16 and Plonk proofs in `no_std` environments with [`sp1-verifier`](https://docs.rs/sp1-verifier/latest/sp1_verifier/). + +`sp1-verifier` is also patched to verify Groth16 and Plonk proofs within the SP1 ZKVM, using +[bn254](https://blog.succinct.xyz/succinctshipsprecompiles/) precompiles. For an example of this, see +the [Groth16 Example](https://github.com/succinctlabs/sp1/tree/main/examples/groth16/). + +### Installation + +Import the following dependency in your `Cargo.toml`: + +```toml +sp1-verifier = {version = "3.0.0", default-features = false} +``` + +### Usage + +`sp1-verifier`'s interface is very similar to the solidity verifier's. It exposes two public functions: +[`Groth16Verifier::verify_proof`](https://docs.rs/sp1-verifier/latest/src/sp1_verifier/groth16.rs.html) +and [`PlonkVerifier::verify_proof`](https://docs.rs/sp1-verifier/latest/src/sp1_verifier/plonk.rs.html). + +`sp1-verifier` also exposes the Groth16 and Plonk verifying keys as constants, `GROTH16_VK_BYTES` and `PLONK_VK_BYTES`. These +keys correspond to the current SP1 version's official Groth16 and Plonk verifying keys, which are used for verifying proofs generated +using docker or the prover network. + +First, generate your groth16/plonk proof with the SP1 SDK. See [here](./onchain/getting-started.md#generating-sp1-proofs-for-onchain-verification) +for more information -- `sp1-verifier` and the solidity verifier expect inputs in the same format. + +Next, verify the proof with `sp1-verifier`. The following snippet is from the [Groth16 example program](https://github.com/succinctlabs/sp1/tree/dev/examples/groth16/), which verifies a Groth16 proof within SP1 using `sp1-verifier`. + + + +Here, the proof, public inputs, and vkey hash are read from stdin. See the following snippet to see how these values are generated. + + + +> Note that the SP1 SDK itself is *not* `no_std` compatible. + +## Wasm Verification + +The [`example-sp1-wasm-verifier`](https://github.com/succinctlabs/example-sp1-wasm-verifier) demonstrates how to +verify SP1 proofs in wasm. For a more detailed explanation of the process, please see the [README](https://github.com/succinctlabs/example-sp1-wasm-verifier/blob/main/README.md). diff --git a/book2/docs/verification/onchain/contract-addresses.md b/book2/docs/verification/onchain/contract-addresses.md new file mode 100644 index 0000000000..0a23f6ab2e --- /dev/null +++ b/book2/docs/verification/onchain/contract-addresses.md @@ -0,0 +1,101 @@ +# Contract Addresses + +To verify SP1 proofs on-chain, we recommend using our deployed canonical verifier gateways. The +[SP1VerifierGateway](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1VerifierGateway.sol) +will automatically route your SP1 proof to the correct verifier based on the SP1 version used. + +## Canonical Verifier Gateways + +There are different verifier gateway for each proof system: Groth16 and PLONK. This means that you +must use the correct verifier gateway depending on if you are verifying a Groth16 or PLONK proof. + +### Groth16 + +| Chain ID | Chain | Gateway | +| -------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| 1 | Mainnet | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 11155111 | Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia.etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 17000 | Holesky | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://holesky.etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 42161 | Arbitrum One | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://arbiscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 421614 | Arbitrum Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia.arbiscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 8453 | Base | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://basescan.org/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 84532 | Base Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia.basescan.org/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 10 | Optimism | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://optimistic.etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 11155420 | Optimism Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia-optimism.etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 534351 | Scroll Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia.scrollscan.com/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 534352 | Scroll | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://scrollscan.com/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | + +### PLONK + +| Chain ID | Chain | Gateway | +| -------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| 1 | Mainnet | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 11155111 | Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 17000 | Holesky | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://holesky.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 42161 | Arbitrum One | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 421614 | Arbitrum Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 8453 | Base | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://basescan.org/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 84532 | Base Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.basescan.org/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 10 | Optimism | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://optimistic.etherscan.io/address/0x3b6041173b80e77f038f3f2c0f9744f04837185e) | +| 11155420 | Optimism Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia-optimism.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 534351 | Scroll Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.scrollscan.com/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 534352 | Scroll | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://scrollscan.com/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | + +The most up-to-date reference on each chain can be found in the +[deployments](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/deployments) +directory in the +SP1 contracts repository, where each chain has a dedicated JSON file with each verifier's address. + +## Versioning Policy + +Whenever a verifier for a new SP1 version is deployed, the gateway contract will be updated to +support it with +[addRoute()](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1VerifierGateway.sol#L65). +If a verifier for an SP1 version has an issue, the route will be frozen with +[freezeRoute()](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1VerifierGateway.sol#L71). + +On mainnets, only official versioned releases are deployed and added to the gateway. Testnets have +`rc` versions of the verifier deployed supported in addition to the official versions. + +## Deploying to other Chains + +In the case that you need to use a chain that is not listed above, you can deploy your own +verifier contract by following the instructions in the +[SP1 Contracts Repo](https://github.com/succinctlabs/sp1-contracts/blob/main/README.md#deployments). + +Since both the `SP1VerifierGateway` and each `SP1Verifier` implement the [ISP1Verifier +interface](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1Verifier.sol), you can choose to either: + +* Deploy the `SP1VerifierGateway` and add `SP1Verifier` contracts to it. Then point to the + `SP1VerifierGateway` address in your contracts. +* Deploy just the `SP1Verifier` contract that you want to use. Then point to the `SP1Verifier` + address in + your contracts. + +If you want support for a canonical verifier on your chain, contact us [here](https://t.me/+AzG4ws-kD24yMGYx). We often deploy canonical verifiers on new chains if there's enough demand. + +## ISP1Verifier Interface + +All verifiers implement the [ISP1Verifier](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1Verifier.sol) interface. + +```c++ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +/// @title SP1 Verifier Interface +/// @author Succinct Labs +/// @notice This contract is the interface for the SP1 Verifier. +interface ISP1Verifier { + /// @notice Verifies a proof with given public values and vkey. + /// @dev It is expected that the first 4 bytes of proofBytes must match the first 4 bytes of + /// target verifier's VERIFIER_HASH. + /// @param programVKey The verification key for the RISC-V program. + /// @param publicValues The public values encoded as bytes. + /// @param proofBytes The proof of the program execution the SP1 zkVM encoded as bytes. + function verifyProof( + bytes32 programVKey, + bytes calldata publicValues, + bytes calldata proofBytes + ) external view; +} +``` diff --git a/book2/docs/verification/onchain/getting-started.mdx b/book2/docs/verification/onchain/getting-started.mdx new file mode 100644 index 0000000000..dae34a817e --- /dev/null +++ b/book2/docs/verification/onchain/getting-started.mdx @@ -0,0 +1,35 @@ +import Example from "../../../static/examples_fibonacci_script_bin_groth16_bn254.rs.mdx"; + +# Onchain Verification: Setup + +The best way to get started with verifying SP1 proofs on-chain is to refer to the [SP1 Project Template](https://github.com/succinctlabs/sp1-project-template/tree/main). + +- The template [program](https://github.com/succinctlabs/sp1-project-template/blob/main/program/src/main.rs) shows how to write outputs that can be decoded in Solidity. +- The template [script](https://github.com/succinctlabs/sp1-project-template/blob/main/script/src/bin/prove.rs) shows how to generate the proof using the SDK and save it to a file. +- The template [contract](https://github.com/succinctlabs/sp1-project-template/blob/main/contracts/src/Fibonacci.sol) shows how to verify the proof onchain using Solidity. + +Refer to the section on [Contract Addresses](./contract-addresses.md#contract-addresses) for the addresses of the deployed verifiers. + +## Generating SP1 Proofs for Onchain Verification + +By default, the proofs generated by SP1 are not verifiable onchain, as they are non-constant size and STARK verification on Ethereum is very expensive. To generate a proof that can be verified onchain, we use performant STARK recursion to combine SP1 shard proofs into a single STARK proof and then wrap that in a SNARK proof. Our `ProverClient` has a prover option for this called `plonk`. Behind the scenes, this function will first generate a normal SP1 proof, then recursively combine all of them into a single proof using the STARK recursion protocol. Finally, the proof is wrapped in a SNARK proof using PLONK. + +> WARNING: The Groth16 and PLONK provers are only guaranteed to work on official releases of SP1. To +> use Groth16 or PLONK proving & verification locally, ensure that you have Docker installed and have +> at least 128GB of RAM. + +### Example + +```rust +{{#include ../../examples/fibonacci/script/bin/groth16_bn254.rs}} +``` + +You can run the above script with `RUST_LOG=info cargo run --bin groth16_bn254 --release` in `examples/fibonacci/script`. + +#### Using Groth16 and PLONK without Docker (Advanced) + +If you would like to run the Groth16 or PLONK prover directly without Docker, you must have Go 1.22 installed and enable the `native-gnark` feature in `sp1-sdk`. This path is not recommended and may require additional native dependencies. + +```toml +sp1-sdk = { version = "2.0.0", features = ["native-gnark"] } +``` diff --git a/book2/docs/verification/onchain/solidity-sdk.md b/book2/docs/verification/onchain/solidity-sdk.md new file mode 100644 index 0000000000..822ab620b9 --- /dev/null +++ b/book2/docs/verification/onchain/solidity-sdk.md @@ -0,0 +1,122 @@ +# Solidity Verifier + +We maintain a suite of [contracts](https://github.com/succinctlabs/sp1-contracts/tree/main) used for verifying SP1 proofs onchain. We highly recommend using [Foundry](https://book.getfoundry.sh/). + +## Installation + +To install the latest release version: + +```bash +forge install succinctlabs/sp1-contracts +``` + +To install a specific version: + +```bash +forge install succinctlabs/sp1-contracts@ +``` + +Finally, add `@sp1-contracts/=lib/sp1-contracts/contracts/src/` in `remappings.txt.` + +### Usage + +Once installed, you can use the contracts in the library by importing them: + +```c++ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +import {ISP1Verifier} from "@sp1-contracts/ISP1Verifier.sol"; + +/// @title Fibonacci. +/// @author Succinct Labs +/// @notice This contract implements a simple example of verifying the proof of a computing a +/// fibonacci number. +contract Fibonacci { + /// @notice The address of the SP1 verifier contract. + /// @dev This can either be a specific SP1Verifier for a specific version, or the + /// SP1VerifierGateway which can be used to verify proofs for any version of SP1. + /// For the list of supported verifiers on each chain, see: + /// https://docs.succinct.xyz/onchain-verification/contract-addresses + address public verifier; + + /// @notice The verification key for the fibonacci program. + bytes32 public fibonacciProgramVKey; + + constructor(address _verifier, bytes32 _fibonacciProgramVKey) { + verifier = _verifier; + fibonacciProgramVKey = _fibonacciProgramVKey; + } + + /// @notice The entrypoint for verifying the proof of a fibonacci number. + /// @param _proofBytes The encoded proof. + /// @param _publicValues The encoded public values. + function verifyFibonacciProof(bytes calldata _publicValues, bytes calldata _proofBytes) + public + view + returns (uint32, uint32, uint32) + { + ISP1Verifier(verifier).verifyProof(fibonacciProgramVKey, _publicValues, _proofBytes); + (uint32 n, uint32 a, uint32 b) = abi.decode(_publicValues, (uint32, uint32, uint32)); + return (n, a, b); + } +} + +``` + +### Finding your program vkey + +The program vkey (`fibonacciProgramVKey` in the example above) is passed into the `ISP1Verifier` along with the public values and proof bytes. You +can find your program vkey by going through the following steps: + +1. Find what version of SP1 crates you are using. +2. Use the version from step to run this command: `sp1up --version ` +3. Use the vkey command to get the program vkey: `cargo prove vkey -elf ` + +Alternatively, you can set up a simple script to do this using the `sp1-sdk` crate: + +```rust +fn main() { + // Setup the logger. + sp1_sdk::utils::setup_logger(); + + // Setup the prover client. + let client = ProverClient::new(); + + // Setup the program. + let (_, vk) = client.setup(FIBONACCI_ELF); + + // Print the verification key. + println!("Program Verification Key: {}", vk.bytes32()); +} +``` + +### Testing + +To test the contract, we recommend setting up [Foundry +Tests](https://book.getfoundry.sh/forge/tests). We have an example of such a test in the [SP1 +Project +Template](https://github.com/succinctlabs/sp1-project-template/blob/dev/contracts/test/Fibonacci.t.sol). + +### Solidity Versions + +The officially deployed contracts are built using Solidity 0.8.20 and exist on the +[sp1-contracts main](https://github.com/succinctlabs/sp1-contracts/tree/main) branch. + +If you need to use different versions that are compatible with your contracts, there are also other +branches you can install that contain different versions. For +example for branch [main-0.8.15](https://github.com/succinctlabs/sp1-contracts/tree/main-0.8.15) +contains the contracts with: + +```c++ +pragma solidity ^0.8.15; +``` + +and you can install it with: + +```sh +forge install succinctlabs/sp1-contracts@main-0.8.15 +``` + +If there is different versions that you need but there aren't branches for them yet, please ask in +the [SP1 Telegram](https://t.me/+AzG4ws-kD24yMGYx). diff --git a/book2/docs/what-is-a-zkvm.md b/book2/docs/what-is-a-zkvm.md new file mode 100644 index 0000000000..4f91fa3213 --- /dev/null +++ b/book2/docs/what-is-a-zkvm.md @@ -0,0 +1,35 @@ +# What is a zkVM? + +A zero-knowledge virtual machine (zkVM) is zero-knowledge proof system that allows developers to prove the execution of arbitrary Rust (or other LLVM-compiled language) programs. + +Conceptually, you can think of the SP1 zkVM as proving the evaluation of a function `f(x) = y` by following the steps below: + +- Define `f` using normal Rust code and compile it to an ELF (covered in the [writing programs](./writing-programs/setup.md) section). +- Setup a proving key (`pk`) and verifying key (`vk`) for the program given the ELF. +- Generate a proof `π` using the SP1 zkVM that `f(x) = y` with `prove(pk, x)`. +- Verify the proof `π` using `verify(vk, x, y, π)`. + +As a practical example, `f` could be a simple Fibonacci [program](https://github.com/succinctlabs/sp1/blob/main/examples/fibonacci/program/src/main.rs). The process of generating a proof and verifying it can be seen [here](https://github.com/succinctlabs/sp1/blob/main/examples/fibonacci/script/src/main.rs). + +For blockchain applications, the verification usually happens inside of a [smart contract](https://github.com/succinctlabs/sp1-project-template/blob/main/contracts/src/Fibonacci.sol). + +## How does SP1 Work? + +At a high level, SP1 works with the following steps: + +* Write a program in Rust that defines the logic of your computation for which you want to generate a ZKP. +* Compile the program to the RISC-V ISA (a standard Rust compilation target) using the `cargo prove` CLI tool (installation instructions [here](./getting-started/install.md)) and generate a RISC-V ELF file. +* SP1 will prove the correct execution of arbitrary RISC-V programs by generating a STARK proof of execution. +* Developers can leverage the `sp1-sdk` crate to generate proofs with their ELF and input data. Under the hood the `sp1-sdk` will either generate proofs locally or use a beta version of Succinct's prover network to generate proofs. + +SP1 leverages performant STARK recursion that allows us to prove the execution of arbitrarily long programs and also has a STARK -> SNARK "wrapping system" that allows us to generate small SNARK proofs that can be efficiently verified on EVM chains. + +## Proof System + +For more technical details, check out the SP1 technical note that explains our proof system in detail. In short, we use: + +* STARKs + FRI over the Baby Bear field +* We use performant STARK recursion that allows us to prove the execution of arbitrarily long programs +* We have a system of performant precompiles that accelerate hash functions and cryptographic signature verification that allow us to get substantial performance gains on blockchain workloads + + diff --git a/book2/docs/why-use-sp1.md b/book2/docs/why-use-sp1.md new file mode 100644 index 0000000000..44db0ab6bc --- /dev/null +++ b/book2/docs/why-use-sp1.md @@ -0,0 +1,46 @@ +# Why use SP1? + +## Use-Cases + +Zero-knowledge proofs (ZKPs) are a powerful primitive that enable **verifiable computation**. With ZKPs, anyone can verify a cryptographic proof that a program has executed correctly, without needing to trust the prover, re-execute the program or even know the inputs to the program. + +Historically, building ZKP systems has been extremely complicated, requiring large teams with specialized cryptography expertise and taking years to go to production. SP1 is a performant, general-purpose zkVM that solves this problem and creates a future where all blockchain infrastructure, including rollups, bridges, coprocessors, and more, utilize ZKPs **via maintainable software written in Rust**. + +SP1 is especially powerful in blockchain contexts which rely on verifiable computation. Example applications include: +- [Rollups](https://ethereum.org/en/developers/docs/scaling/zk-rollups/): SP1 can be used in combination with existing node infrastructure like [Reth](https://github.com/paradigmxyz/reth) to build rollups with ZKP validity proofs or ZK fraud proofs. +- [Coprocessors](https://crypto.mirror.xyz/BFqUfBNVZrqYau3Vz9WJ-BACw5FT3W30iUX3mPlKxtA): SP1 can be used to outsource onchain computation to offchain provers to enable use cases such as large-scale computation over historical state and onchain machine learning, dramatically reducing gas costs. +- [Light Clients](https://ethereum.org/en/developers/docs/nodes-and-clients/light-clients/): SP1 can be used to build light clients that can verify the state of other chains, facilitating interoperability between different blockchains without relying on any trusted third parties. + +SP1 has already been integrated in many of these applications, including but not limited to: + +- [SP1 Tendermint](https://github.com/succinctlabs/sp1-tendermint-example): An example of a ZK Tendermint light client on Ethereum powered by SP1. +- [SP1 Reth](https://github.com/succinctlabs/rsp): A performant, type-1 zkEVM written in Rust & SP1 using Reth. +- [SP1 Contract Call](https://github.com/succinctlabs/sp1-contract-call): A lightweight library to generate ZKPs of Ethereum smart contract execution +- and many more! + +SP1 is used by protocols in production today: + +- [SP1 Blobstream](https://github.com/succinctlabs/sp1-blobstream): A bridge that verifies [Celestia](https://celestia.org/) “data roots” (a commitment to all data blobs posted in a range of Celestia blocks) on Ethereum and other EVM chains. +- [SP1 Vector](https://github.com/succinctlabs/sp1-vector): A bridge that relays [Avail's](https://www.availproject.org/) merkle root to Ethereum and also functions as a token bridge from Avail to Ethereum. + + +## 100x developer productivity + +SP1 enables teams to use ZKPs in production with minimal overhead and fast timelines. + +**Maintainable:** With SP1, you can reuse existing Rust crates, like `revm`, `reth`, `tendermint-rs`, `serde` and more, to write your ZKP logic in maintainable, Rust code. + +**Go to market faster:** By reusing existing crates and expressing ZKP logic in regular code, SP1 significantly reduces audit surface area and complexity, enabling teams to go to market with ZKPs faster. + +## Blazing Fast Performance + +SP1 is the fastest zkVM and has blazing fast performance on a variety of realistic blockchain workloads, including light clients and rollups. With SP1, ZKP proving costs are an order of magnitude less than alternative zkVMs or even circuits, making it cost-effective and fast for practical use. + +Read more about our benchmarking results [here](https://blog.succinct.xyz/sp1-benchmarks-8-6-24). + +## Open Source + +SP1 is 100% open-source (MIT / Apache 2.0) with no code obfuscation and built to be contributor friendly, with all development done in the open. Unlike existing zkVMs whose constraint logic is closed-source and impossible to audit or modify, SP1 is modularly architected and designed to be customizable from day one. This customizability (unique to SP1) allows for users to add “precompiles” to the core zkVM logic that yield substantial performance gains, making SP1’s performance not only SOTA vs. existing zkVMs, but also competitive with circuits in a variety of use-cases. + + + diff --git a/book2/docs/writing-programs/basics.mdx b/book2/docs/writing-programs/basics.mdx new file mode 100644 index 0000000000..f300f3c3c7 --- /dev/null +++ b/book2/docs/writing-programs/basics.mdx @@ -0,0 +1,15 @@ +import Example from "../../static/examples_fibonacci_program_src_main.rs.mdx"; + +# Basics + +The easiest way to understand how to write programs for the SP1 zkVM is to look at some examples. + +## Example: Fibonacci + +This program is from the `examples` [directory](https://github.com/succinctlabs/sp1/tree/main/examples) in the SP1 repo which contains several example programs of varying complexity. + + + +As you can see, writing programs is as simple as writing normal Rust. + +After you've written your program, you must compile it to an ELF that the SP1 zkVM can prove. To read more about compiling programs, refer to the section on [Compiling Programs](./compiling.md). To read more about how inputs and outputs work, refer to the section on [Inputs & Outputs](./inputs-and-outputs.md). diff --git a/book2/docs/writing-programs/compiling.mdx b/book2/docs/writing-programs/compiling.mdx new file mode 100644 index 0000000000..6586d25539 --- /dev/null +++ b/book2/docs/writing-programs/compiling.mdx @@ -0,0 +1,100 @@ +import Example from "../../static/examples_fibonacci_script_build.rs.mdx"; + +# Compiling Programs + +Once you have written an SP1 program, you must compile it to an ELF file that can be executed in the zkVM. The `cargo prove` CLI tool (downloaded during installation) provides convenient commands for compiling SP1 programs. + +## Development Builds + +> WARNING: This may not generate a reproducible ELF which is necessary for verifying that your binary corresponds to given source code. +> +> Use the [reproducible build system](#reproducible-builds-with-docker-production) for production builds. + +To build a program while developing, simply run the following command in the crate that contains your SP1 program: + +```bash +cargo prove build +``` + +This will compile the ELF that can be executed in the zkVM and put it in the file `elf/riscv32im-succinct-zkvm-elf`. The output from the command will look something like this: + +```bash +[sp1] Compiling version_check v0.9.4 +[sp1] Compiling proc-macro2 v1.0.86 +[sp1] Compiling unicode-ident v1.0.12 +[sp1] Compiling cfg-if v1.0.0 +... +[sp1] Compiling sp1-lib v1.0.1 +[sp1] Compiling sp1-zkvm v1.0.1 +[sp1] Compiling fibonacci-program v0.1.0 (/Users/username/Documents/fibonacci/program) +[sp1] Finished `release` profile [optimized] target(s) in 8.33s +``` + +Under the hood, this CLI command calls `cargo build` with the `riscv32im-succinct-zkvm-elf` target and other required environment variables and flags. The logic for this command is defined in the [sp1-build](https://github.com/succinctlabs/sp1/tree/main/build) crate. + +### Advanced Build Options + +You can pass additional arguments to the `cargo prove build` command to customize the build process, like configuring what features are enabled, customizing the output directory and more. To see all available options, run `cargo prove build --help`. Many of these options mirror the options available in the `cargo build` command. + +## Production Builds + +For production builds of programs, you can build your program inside a Docker container which will generate a **reproducible ELF** on all platforms. To do so, just use the `--docker` flag and optionally the `--tag` flag with the release version you want to use (defaults to `latest`). For example: + +```bash +cargo prove build --docker --tag v1.0.1 +``` + +To verify that your build is reproducible, you can compute the SHA-512 hash of the ELF on different platforms and systems with: + +```bash +$ shasum -a 512 elf/riscv32im-succinct-zkvm-elf +f9afb8caaef10de9a8aad484c4dd3bfa54ba7218f3fc245a20e8a03ed40b38c617e175328515968aecbd3c38c47b2ca034a99e6dbc928512894f20105b03a203 +``` + +## Build Script + +If you want your program crate to be built automatically whenever you build/run your script crate, you can add a `build.rs` file inside of `script/` (at the same level as `Cargo.toml` of your script crate) that utilizes the `sp1-build` crate: + + + +The path passed in to `build_program` should point to the directory containing the `Cargo.toml` file for your program. Make sure to also add `sp1-build` as a build dependency in `script/Cargo.toml`: + +```toml +[build-dependencies] +sp1-build = "2.0.0" +``` + +You will see output like the following from the build script if the program has changed, indicating that the program was rebuilt: + +``` +[fibonacci-script 0.1.0] cargo:rerun-if-changed=../program/src +[fibonacci-script 0.1.0] cargo:rerun-if-changed=../program/Cargo.toml +[fibonacci-script 0.1.0] cargo:rerun-if-changed=../program/Cargo.lock +[fibonacci-script 0.1.0] cargo:warning=fibonacci-program built at 2024-03-02 22:01:26 +[fibonacci-script 0.1.0] [sp1] Compiling fibonacci-program v0.1.0 (/Users/umaroy/Documents/fibonacci/program) +[fibonacci-script 0.1.0] [sp1] Finished release [optimized] target(s) in 0.15s +warning: fibonacci-script@0.1.0: fibonacci-program built at 2024-03-02 22:01:26 +``` + +The above output was generated by running `RUST_LOG=info cargo run --release -vv` for the `script` folder of the Fibonacci example. + +### Advanced Build Options + +To configure the build process when using the `sp1-build` crate, you can pass a [`BuildArgs`](https://docs.rs/sp1-build/1.2.0/sp1_build/struct.BuildArgs.html) struct to to the [`build_program_with_args`](https://docs.rs/sp1-build/1.2.0/sp1_build/fn.build_program_with_args.html) function. The build arguments are the same as the ones available from the `cargo prove build` command. + +As an example, you could use the following code to build the Fibonacci example with the `docker` flag set to `true` and a custom output directory for the generated ELF: + +```rust +use sp1_build::{build_program_with_args, BuildArgs}; + +fn main() { + let args = BuildArgs { + docker: true, + output_directory: "./fibonacci-program".to_string(), + ..Default::default() + }; + build_program_with_args("../program", &args); +} +``` + +**Note:** If you want reproducible builds with the `build.rs` approach, you should use the `docker` flag and the `build_program_with_args` function, as shown in the example above. diff --git a/book2/docs/writing-programs/cycle-tracking.mdx b/book2/docs/writing-programs/cycle-tracking.mdx new file mode 100644 index 0000000000..bb1d739f57 --- /dev/null +++ b/book2/docs/writing-programs/cycle-tracking.mdx @@ -0,0 +1,124 @@ +import Example from "../../static/examples_cycle-tracking_program_bin_normal.rs.mdx"; + +# Cycle Tracking + +When writing a program, it is useful to know how many RISC-V cycles a portion of the program takes to identify potential performance bottlenecks. SP1 provides a way to track the number of cycles spent in a portion of the program. + +## Tracking Cycles with Annotations + +To track the number of cycles spent in a portion of the program, you can either put `println!("cycle-tracker-start: block name")` + `println!("cycle-tracker-end: block name")` statements (block name must be same between start and end) around the portion of your program you want to profile or use the `#[sp1_derive::cycle_tracker]` macro on a function. An example is shown below: + + + +Note that to use the macro, you must add the `sp1-derive` crate to your dependencies for your program. + +```toml +[dependencies] +sp1-derive = "2.0.0" +``` + +In the script for proof generation, setup the logger with `utils::setup_logger()` and run the script with `RUST_LOG=info cargo run --release`. You should see the following output: + +``` +$ RUST_LOG=info cargo run --release + Finished release [optimized] target(s) in 0.21s + Running `target/release/cycle-tracking-script` +2024-03-13T02:03:40.567500Z INFO execute: loading memory image +2024-03-13T02:03:40.567751Z INFO execute: starting execution +2024-03-13T02:03:40.567760Z INFO execute: clk = 0 pc = 0x2013b8 +2024-03-13T02:03:40.567822Z INFO execute: ┌╴setup +2024-03-13T02:03:40.568095Z INFO execute: └╴4,398 cycles +2024-03-13T02:03:40.568122Z INFO execute: ┌╴main-body +2024-03-13T02:03:40.568149Z INFO execute: │ ┌╴expensive_function +2024-03-13T02:03:40.568250Z INFO execute: │ └╴1,368 cycles +stdout: result: 5561 +2024-03-13T02:03:40.568373Z INFO execute: │ ┌╴expensive_function +2024-03-13T02:03:40.568470Z INFO execute: │ └╴1,368 cycles +stdout: result: 2940 +2024-03-13T02:03:40.568556Z INFO execute: └╴5,766 cycles +2024-03-13T02:03:40.568566Z INFO execute: finished execution clk = 11127 pc = 0x0 +2024-03-13T02:03:40.569251Z INFO execute: close time.busy=1.78ms time.idle=21.1µs +``` + +Note that we elegantly handle nested cycle tracking, as you can see above. + +### Get Tracked Cycle Counts + +To include tracked cycle counts in the `ExecutionReport` when using `ProverClient::execute`, use the following annotations: + +```rust +fn main() { + println!("cycle-tracker-report-start: block name"); + // ... + println!("cycle-tracker-report-end: block name"); +} +``` + +This will log the cycle count for `block name` and include it in the `ExecutionReport` in the `cycle_tracker` map. + +## Tracking Cycles with Tracing + +The `cycle-tracker` annotation is a convenient way to track cycles for specific sections of code. However, sometimes it can also be useful to track what functions are taking the most cycles across the entire program, without having to annotate every function individually. + +First, we need to generate a trace file of the program counter at each cycle while the program is executing. This can be done by simply setting the `TRACE_FILE` environment variable with the path of the file you want to write the trace to. For example, you can run the following command in the `script` directory for any example program: + +```bash +TRACE_FILE=trace.log RUST_LOG=info cargo run --release +``` + +When the `TRACE_FILE` environment variable is set, as SP1's RISC-V runtime is executing, it will write a log of the program counter to the file specified by `TRACE_FILE`. + +Next, we can use the `cargo prove` CLI with the `trace` command to analyze the trace file and generate a table of instruction counts. This can be done with the following command: + +```bash +cargo prove trace --elf --trace +``` + +The `trace` command will generate a table of instruction counts, sorted by the number of cycles spent in each function. The output will look something like this: + +``` + [00:00:00] [########################################] 17053/17053 (0s) + +Total instructions in trace: 17053 + + + Instruction counts considering call graph ++----------------------------------------+-------------------+ +| Function Name | Instruction Count | +| __start | 17045 | +| main | 12492 | +| sp1_zkvm::syscalls::halt::syscall_halt | 4445 | +| sha2::sha256::compress256 | 4072 | +| sp1_lib::io::commit | 258 | +| sp1_lib::io::SyscallWriter::write | 255 | +| syscall_write | 195 | +| memcpy | 176 | +| memset | 109 | +| sp1_lib::io::read_vec | 71 | +| __rust_alloc | 29 | +| sp1_zkvm::heap::SimpleAlloc::alloc | 22 | +| syscall_hint_len | 3 | +| syscall_hint_read | 2 | ++----------------------------------------+-------------------+ + + + Instruction counts ignoring call graph ++----------------------------------------+-------------------+ +| Function Name | Instruction Count | +| main | 12075 | +| sha2::sha256::compress256 | 4073 | +| sp1_zkvm::syscalls::halt::syscall_halt | 219 | +| memcpy | 180 | +| syscall_write | 123 | +| memset | 111 | +| sp1_lib::io::commit | 88 | +| sp1_lib::io::SyscallWriter::write | 60 | +| __start | 45 | +| sp1_lib::io::read_vec | 35 | +| sp1_zkvm::heap::SimpleAlloc::alloc | 23 | +| anonymous | 7 | +| __rust_alloc | 7 | +| syscall_hint_len | 4 | +| syscall_hint_read | 3 | ++----------------------------------------+-------------------+ +``` diff --git a/book2/docs/writing-programs/inputs-and-outputs.mdx b/book2/docs/writing-programs/inputs-and-outputs.mdx new file mode 100644 index 0000000000..00788365e0 --- /dev/null +++ b/book2/docs/writing-programs/inputs-and-outputs.mdx @@ -0,0 +1,67 @@ +import Example from "../../static/examples_io_program_src_main.rs.mdx"; + +# Inputs and Outputs + +In real world applications of zero-knowledge proofs, you almost always want to verify your proof in the context of some inputs and outputs. For example: + +- **Rollups**: Given a list of transactions, prove the new state of the blockchain. +- **Coprocessors**: Given a block header, prove the historical state of some storage slot inside a smart contract. +- **Attested Images**: Given a signed image, prove that you made a restricted set of image transformations. + +In this section, we cover how you pass inputs and outputs to the zkVM and create new types that support serialization. + +## Reading Data + +Data that is read is not public to the verifier by default. Use the `sp1_zkvm::io::read::` method: + +```rust +let a = sp1_zkvm::io::read::(); +let b = sp1_zkvm::io::read::(); +let c = sp1_zkvm::io::read::(); +``` + +Note that `T` must implement the `serde::Serialize` and `serde::Deserialize` trait. If you want to read bytes directly, you can also use the `sp1_zkvm::io::read_vec` method. + +```rust +let my_vec = sp1_zkvm::io::read_vec(); +``` + +## Committing Data + +Committing to data makes the data public to the verifier. Use the `sp1_zkvm::io::commit::` method: + +```rust +sp1_zkvm::io::commit::(&a); +sp1_zkvm::io::commit::(&b); +sp1_zkvm::io::commit::(&c); +``` + +Note that `T` must implement the `Serialize` and `Deserialize` trait. If you want to write bytes directly, you can also use `sp1_zkvm::io::commit_slice` method: + +```rust +let mut my_slice = [0_u8; 32]; +sp1_zkvm::io::commit_slice(&my_slice); +``` + +## Creating Serializable Types + +Typically, you can implement the `Serialize` and `Deserialize` traits using a simple derive macro on a struct. + +```rust +use serde::{Serialize, Deserialize}; + +#[derive(Serialize, Deserialize)] +struct MyStruct { + a: u32, + b: u64, + c: String +} +``` + +For more complex usecases, refer to the [Serde docs](https://serde.rs/). + +## Example + +Here is a basic example of using inputs and outputs with more complex types. + + diff --git a/book2/docs/writing-programs/patched-crates.md b/book2/docs/writing-programs/patched-crates.md new file mode 100644 index 0000000000..818190f2ee --- /dev/null +++ b/book2/docs/writing-programs/patched-crates.md @@ -0,0 +1,234 @@ +# Patched Crates + +We maintain forks of commonly used libraries in blockchain infrastructure to significantly accelerate the execution of certain operations. +Under the hood, we use [precompiles](./precompiles) to achieve tremendous performance improvements in proof generation time. + +**If you know of a library or library version that you think should be patched, please open an issue or a pull request!** + +## Supported Libraries + +| Crate Name | Repository | Notes | Versions | +|---------------------|---------------------------------------------------------------------------------------|------------------|-----------------------| +| sha2 | [sp1-patches/RustCrypto-hashes](https://github.com/sp1-patches/RustCrypto-hashes) | sha256 | 0.9.8, 0.10.6, 0.10.8 | +| sha3 | [sp1-patches/RustCrypto-hashes](https://github.com/sp1-patches/RustCrypto-hashes) | keccak256 | 0.9.8, 0.10.6, 0.10.8 | +| bigint | [sp1-patches/RustCrypto-bigint](https://github.com/sp1-patches/RustCrypto-bigint) | bigint | 0.5.5 | +| tiny-keccak | [sp1-patches/tiny-keccak](https://github.com/sp1-patches/tiny-keccak) | keccak256 | 2.0.2 | +| curve25519-dalek | [sp1-patches/curve25519-dalek](https://github.com/sp1-patches/curve25519-dalek) | ed25519 verify | 4.1.3, 3.2.0 | +| curve25519-dalek-ng | [sp1-patches/curve25519-dalek-ng](https://github.com/sp1-patches/curve25519-dalek-ng) | ed25519 verify | 4.1.1 | +| ed25519-consensus | [sp1-patches/ed25519-consensus](http://github.com/sp1-patches/ed25519-consensus) | ed25519 verify | 2.1.0 | +| ed25519-dalek | [sp1-patches/ed25519-dalek](http://github.com/sp1-patches/ed25519-dalek) | ed25519 verify | 1.0.1 | +| ecdsa-core | [sp1-patches/signatures](http://github.com/sp1-patches/signatures) | secp256k1 verify | 0.16.8, 0.16.9 | +| secp256k1 | [sp1-patches/rust-secp256k1](http://github.com/sp1-patches/rust-secp256k1) | secp256k1 verify | 0.29.0, 0.29.1 | +| substrate-bn | [sp1-patches/bn](https://github.com/sp1-patches/bn) | BN254 | 0.6.0 | +| bls12_381 | [sp1-patches/bls12_381](https://github.com/sp1-patches/bls12_381) | BLS12-381 | 0.8.0 | + +## Using Patched Crates + +To use the patched libraries, you can use corresponding patch entries in your program's `Cargo.toml` such as: + +```toml +[patch.crates-io] +sha2-v0-9-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "sha2-v0.9.8-patch-v1" } +sha2-v0-10-6 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "sha2-v0.10.6-patch-v1" } +sha2-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "sha2-v0.10.8-patch-v1" } +sha3-v0-9-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "sha3-v0.9.8-patch-v1" } +sha3-v0-10-6 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "sha3-v0.10.6-patch-v1" } +sha3-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "sha3-v0.10.8-patch-v1" } +crypto-bigint = { git = "https://github.com/sp1-patches/RustCrypto-bigint", tag = "crypto_bigint-v0.5.5-patch-v1" } +tiny-keccak = { git = "https://github.com/sp1-patches/tiny-keccak", tag = "tiny_keccak-v2.0.2-patch-v1" } +substrate-bn = { git = "https://github.com/sp1-patches/bn", tag = "substrate_bn-v0.6.0-patch-v1" } +bls12_381 = { git = "https://github.com/sp1-patches/bls12_381", tag = "bls12_381-v0.8.0-patch-v1" } + +# For sp1 versions >= 3.4.0 +curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "patch-v4.1.3-v3.4.0" } +# For sp1 versions < 3.4.0 +curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "curve25519_dalek-v4.1.3-patch-v1" } +curve25519-dalek-ng = { git = "https://github.com/sp1-patches/curve25519-dalek-ng", tag = "curve25519_dalek_ng-v4.1.1-patch-v1" } +ed25519-consensus = { git = "https://github.com/sp1-patches/ed25519-consensus", tag = "ed25519_consensus-v2.1.0-patch-v1" } +# For sp1 versions >= 3.3.0 +ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", tag = "ecdsa-v0.16.9-patch-v3.3.0" } +secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "secp256k1-v0.29.0-patch-v3.3.0" } +# For sp1 versions < 3.3.0 +ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", tag = "ecdsa-v0.16.9-patch-v1" } +secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "secp256k1-v0.29.0-patch-v1" } +``` + +If you are patching a crate from Github instead of from crates.io, you need to specify the +repository in the patch section. For example: + +```toml +[patch."https://github.com/RustCrypto/hashes"] +sha3 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "sha3-v0.10.8-patch-v1" } +``` + +An example of using patched crates is available in our [Tendermint Example](https://github.com/succinctlabs/sp1/blob/main/examples/tendermint/program/Cargo.toml#L22-L25). + +## Ed25519 Acceleration + +To accelerate Ed25519 operations, you'll need to patch crates depending on if you're using the `ed25519-consensus` or `ed25519-dalek` library in your program or dependencies. + +Generally, `ed25519-consensus` has better performance than `ed25519-dalek` by a factor of 2. + +### Patches + +Apply the following patches based on what crates are in your dependencies. + +- `ed25519-consensus` + + ```toml + ed25519-consensus = { git = "https://github.com/sp1-patches/ed25519-consensus", tag = "ed25519_consensus-v2.1.0-patch-v1" } + ``` + + Note: The curve operations for Ed25519 occur mainly inside of `curve25519-dalek-ng`, but the crate also exposes + a `u32_backend` feature flag which accelerates signature recovery by 10% over the default `u64_backend`, which is why + `ed25519-consensus` is patched rather than `ed25519-dalek`. + +- `ed25519-dalek` + + If using `ed25519-dalek` version `2.1`, you can patch it with the following: + + ```toml + curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "curve25519_dalek-v4.1.3-patch-v1" } + ``` + + If using `ed25519-dalek` version `1.0.1`, you can patch it with the following: + + ```toml + ed25519-dalek = { git = "https://github.com/sp1-patches/ed25519-dalek", tag = "ed25519_dalek-v1.0.1-patch-v1" } + ``` + + Note: We need to patch the underlying Ed25519 curve operations in the `curve25519-dalek` crate. `ed25519-dalek` + version `2.1` uses `curve25519-dalek` version `4.1.3`, while `1.0.1` uses `3.2.0`. For version `2.1`, we patch + `curve25519-dalek` directly, while for version `1.0.1`, we patch `ed25519-dalek`. + +- `curve25519-dalek` + + ```toml + curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "curve25519_dalek-v4.1.3-patch-v1" } + ``` + +- `curve25519-dalek-ng` + + ```toml + curve25519-dalek-ng = { git = "https://github.com/sp1-patches/curve25519-dalek-ng", tag = "curve25519_dalek_ng-v4.1.1-patch-v1" } + ``` + +## Secp256k1 Acceleration + +To accelerate Secp256k1 operations, you'll need to patch `k256` or `secp256k1` depending on your usage. + +Generally, if a crate you're using (ex. `revm`) has support for using `k256` instead of `secp256k1`, you should use `k256`. + +### Patches + +Apply the following patches based on what crates are in your dependencies. + +- `k256` + + ```toml + ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", tag = "ecdsa-v0.16.9-patch-v1" } + ``` + + Note: The curve operations for `k256` are inside of the `ecdsa-core` crate, so you don't need to patch `k256` itself, and just patching `ecdsa-core` is enough. + +- `secp256k1` + + ```toml + secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "secp256k1-v0.29.0-patch-v1" } + ``` + +## BN254 Acceleration + +To accelerate BN254 (Also known as BN128 and Alt-BN128), you will need to patch the `substrate-bn` crate. + +### Patches + +Apply the patch by adding the following to your list of dependencies: + +```rust +substrate-bn = { git = "https://github.com/sp1-patches/bn", tag = "substrate_bn-v0.6.0-patch-v1" } +``` + +### Performance Benchmarks for Patched `substrate-bn` in `revm` + +| Operation | Standard `substrate-bn` Cycles | Patched `substrate-bn` Cycles | Times Faster | +| --------- | ------------------------------ | ----------------------------- | ------------ | +| run-add | 170,298 | 111,615 | 1.52 | +| run-mul | 1,860,836 | 243,830 | 7.64 | +| run-pair | 255,627,625 | 11,528,503 | 22.15 | + +Note: The operations `run-add`, `run-mul`, and `run-pair` are from the `revm` crate, specifically from the file `crates/precompile/src/bn128.rs` on GitHub. In the patched version of the `substrate-bn` crate, these functions utilize SP1's BN254 Fp precompiles. + +To accelerate [revm](https://github.com/bluealloy/revm) in SP1 using the BN254 patched crate, replace the `substrate-bn` crate with the patched crate by adding the following to `crates/precompile/Cargo.toml`: + +```toml +bn = { git = "https://github.com/sp1-patches/bn", package = "substrate-bn", tag = "substrate_bn-v0.6.0-patch-v1" } +``` + +## BLS12-381 Acceleration + +To accelerate BLS12-381 operations, you'll need to patch the `bls12_381` crate. Apply the following patch by adding the following to your list of dependencies: + +```toml +bls12_381 = { git = "https://github.com/sp1-patches/bls12_381", tag = "bls12_381-v0.8.0-patch-v1" } +``` + +This patch significantly improves the performance of BLS12-381 operations, making it essential for applications that rely heavily on these cryptographic primitives. + +### Performance Benchmarks for Patched `bls12_381` in [`kzg-rs`](https://github.com/succinctlabs/kzg-rs) + +| Test | Unpatched Cycles | Patched Cycles | Improvement (x faster) | +| -------------------------------------- | ---------------- | -------------- | ---------------------- | +| Verify blob KZG proof | 265,322,934 | 27,166,173 | 9.77x | +| Verify blob KZG proof batch (10 blobs) | 1,228,277,089 | 196,571,578 | 6.25x | +| Evaluate polynomial in evaluation form | 90,717,711 | 59,370,556 | 1.53x | +| Compute challenge | 63,400,511 | 57,341,532 | 1.11x | +| Verify KZG proof | 212,708,597 | 9,390,640 | 22.65x | + +## Troubleshooting + +### Verifying Patch Usage: Cargo + +You can check if the patch was applied by using cargo's tree command to print the dependencies of the crate you patched. + +```bash +cargo tree -p sha2@0.9.8 +``` + +Next to the package name, it should have a link to the Github repository that you patched with. + +Ex. + +```text +sha2 v0.9.8 (https://github.com/sp1-patches/RustCrypto-hashes?branch=patch-sha2-v0.9.8#afdbfb09) +├── ... +``` + +### Verifying Patch Usage: SP1 + +To check if a precompile is used by your program, you can view SP1's ExecutionReport, which is returned when executing a program with `execute`. In `ExecutionReport` you can view the `syscall_counts` map to view if a specific syscall was used. + +For example, if you wanted to check `sha256` was used, you would look for `SHA_EXTEND` and `SHA_COMPRESS` in `syscall_counts`. + +An example of this is available in our [Patch Testing Example](https://github.com/succinctlabs/sp1/blob/dd032eb23949828d244d1ad1f1569aa78155837c/examples/patch-testing/script/src/main.rs). + +### Cargo Version Issues + +If you encounter issues with version commits on your patches, you should try updating the patched crate manually. + +```bash +cargo update -p +``` + +If you encounter issues relating to cargo / git, you can try setting `CARGO_NET_GIT_FETCH_WITH_CLI`: + +```bash +CARGO_NET_GIT_FETCH_WITH_CLI=true cargo update -p +``` + +You can permanently set this value in `~/.cargo/config`: + +```toml +[net] +git-fetch-with-cli = true +``` diff --git a/book2/docs/writing-programs/precompiles.mdx b/book2/docs/writing-programs/precompiles.mdx new file mode 100644 index 0000000000..ded8be759d --- /dev/null +++ b/book2/docs/writing-programs/precompiles.mdx @@ -0,0 +1,24 @@ +import Example from "../../static/crates_zkvm_lib_src_lib.rs.mdx"; +import CodeBlock from '@theme/CodeBlock'; + +# Precompiles + +Precompiles are built into the SP1 zkVM and accelerate commonly used operations such as elliptic curve arithmetic and hashing. Under the hood, precompiles are implemented as custom STARK tables dedicated to proving one or few operations. **They typically improve the performance +of executing expensive operations in SP1 by a few orders of magnitude.** + +Inside the zkVM, precompiles are exposed as system calls executed through the `ecall` RISC-V instruction. +Each precompile has a unique system call number and implements an interface for the computation. + +SP1 also has been designed specifically to make it easy for external contributors to create and extend the zkVM with their own precompiles. +To learn more about this, you can look at implementations of existing precompiles in the [precompiles](https://github.com/succinctlabs/sp1/tree/main/crates/core/executor/src/events/precompiles) folder. More documentation on this will be coming soon. + +**To use precompiles, we typically recommend you interact with them through [patches](./patched-crates.md), which are crates modified +to use these precompiles under the hood, without requiring you to call system calls directly.** + +## Specification + +If you are an advanced user you can interact with the precompiles directly using external system calls. + +Here is a list of all available system calls & precompiles. + + diff --git a/book2/docs/writing-programs/proof-aggregation.md b/book2/docs/writing-programs/proof-aggregation.md new file mode 100644 index 0000000000..dc13d6e42c --- /dev/null +++ b/book2/docs/writing-programs/proof-aggregation.md @@ -0,0 +1,58 @@ +# Proof Aggregation + +SP1 supports proof aggregation and recursion, which allows you to verify an SP1 proof within SP1. Use cases include: + +- Reducing on-chain verification costs by aggregating multiple SP1 proofs into a single SP1 proof. +- Proving logic that is split into multiple proofs, such as proving a statement about a rollup's state transition function by proving each block individually and aggregating these proofs to produce a final proof of a range of blocks. + +**For an example of how to use proof aggregation and recursion in SP1, refer to the [aggregation example](https://github.com/succinctlabs/sp1/blob/main/examples/aggregation/script/src/main.rs).** + +Note that to verify an SP1 proof inside SP1, you must generate a "compressed" SP1 proof (see [Proof Types](../generating-proofs/proof-types.md) for more details). + +### When to use aggregation + +Note that by itself, SP1 can already prove arbitrarily large programs by chunking the program's execution into multiple "shards" (contiguous batches of cycles) and generating proofs for each shard in parallel, and then recursively aggregating the proofs. Thus, aggregation is generally **not necessary** for most use-cases, as SP1's proving for large programs is already parallelized. However, aggregation can be useful for aggregating computations that require more than the zkVM's limited (~2GB) memory or for aggregating multiple SP1 proofs from different parties into a single proof to save on onchain verification costs. + +## Verifying Proofs inside the zkVM + +To verify a proof inside the zkVM, you can use the `sp1_zkvm::lib::verify::verify_sp1_proof` function. + +```rust +sp1_zkvm::lib::verify::verify_sp1_proof(vkey, public_values_digest); +``` + +**You do not need to pass in the proof as input into the syscall, as the proof will automatically be read for the proof input stream by the prover.** + +Note that you must include the `verify` feature in your `Cargo.toml` for `sp1-zkvm` to be able to use the `verify_proof` function (like [this](https://github.com/succinctlabs/sp1/blob/main/examples/aggregation/program/Cargo.toml#L11)). + +## Generating Proofs with Aggregation + +To provide an existing proof as input to the SP1 zkVM, you can use the existing `SP1Stdin` object +which is already used for all inputs to the zkVM. + +```rust +# Generating proving key and verifying key. +let (input_pk, input_vk) = client.setup(PROOF_INPUT_ELF); +let (aggregation_pk, aggregation_vk) = client.setup(AGGREGATION_ELF); + +// Generate a proof that will be recursively verified / aggregated. Note that we use the "compressed" +// proof type, which is necessary for aggregation. +let mut stdin = SP1Stdin::new(); +let input_proof = client + .prove(&input_pk, stdin) + .compressed() + .run() + .expect("proving failed"); + +// Create a new stdin object to write the proof and the corresponding verifying key to. +let mut stdin = SP1Stdin::new(); +stdin.write_proof(input_proof, input_vk); + +// Generate a proof that will recursively verify / aggregate the input proof. +let aggregation_proof = client + .prove(&aggregation_pk, stdin) + .compressed() + .run() + .expect("proving failed"); + +``` diff --git a/book2/docs/writing-programs/setup.md b/book2/docs/writing-programs/setup.md new file mode 100644 index 0000000000..2cd677f4a9 --- /dev/null +++ b/book2/docs/writing-programs/setup.md @@ -0,0 +1,50 @@ +# Setup + +In this section, we will teach you how to setup a self-contained crate which can be compiled as a program that can be executed inside the zkVM. + +## Create Project with CLI (Recommended) + +The recommended way to setup your first program to prove inside the zkVM is using the method described in [Quickstart](../getting-started/quickstart.md) which will create a program folder. + +```bash +cargo prove new +cd program +``` + +## Manual Project Setup + +You can also manually setup a project. First create a new Rust project using `cargo`: + +```bash +cargo new program +cd program +``` + +### Cargo Manifest + +Inside this crate, add the `sp1-zkvm` crate as a dependency. Your `Cargo.toml` should look like the following: + +```rust +[workspace] +[package] +version = "0.1.0" +name = "program" +edition = "2021" + +[dependencies] +sp1-zkvm = "2.0.0" +``` + +The `sp1-zkvm` crate includes necessary utilities for your program, including handling inputs and outputs, +precompiles, patches, and more. + +### main.rs + +Inside the `src/main.rs` file, you must make sure to include these two lines to ensure that your program properly compiles to a valid SP1 program. + +```rust +#![no_main] +sp1_zkvm::entrypoint!(main); +``` + +These two lines of code wrap your main function with some additional logic to ensure that your program compiles correctly with the RISC-V target. diff --git a/book2/docusaurus.config.ts b/book2/docusaurus.config.ts new file mode 100644 index 0000000000..df730e12ca --- /dev/null +++ b/book2/docusaurus.config.ts @@ -0,0 +1,113 @@ +import {themes as prismThemes} from 'prism-react-renderer'; +import type {Config} from '@docusaurus/types'; +import type * as Preset from '@docusaurus/preset-classic'; + +// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) + +const config: Config = { + title: 'SP1 Docs', + tagline: 'Prove the worlds software.', + favicon: 'img/favicon.ico', + + // Set the production url of your site here + url: 'https://docs.succinct.xyz', + // Set the // pathname under which your site is served + // For GitHub pages deployment, it is often '//' + baseUrl: '/', + + // GitHub pages deployment config. + // If you aren't using GitHub pages, you don't need these. + organizationName: 'succinctlabs', // Usually your GitHub org/user name. + projectName: 'sp1', // Usually your repo name. + + onBrokenLinks: 'throw', + onBrokenMarkdownLinks: 'warn', + + // Even if you don't use internationalization, you can use this field to set + // useful metadata like html lang. For example, if your site is Chinese, you + // may want to replace "en" with "zh-Hans". + i18n: { + defaultLocale: 'en', + locales: ['en'], + }, + + presets: [ + [ + "classic", + ({ + docs: { + routeBasePath: "docs", + sidebarPath: require.resolve("./sidebars.ts"), + }, + blog: false, + pages: {}, + theme: { + customCss: require.resolve("./src/css/custom.css"), + }, + }), + ], + ], + + themeConfig: { + docs: { + sidebar: { + hideable: false, + } + }, + navbar: { + title: 'SP1 Docs', + logo: { + alt: 'Succinct Logo', + src: 'img/favicon.ico', + }, + items: [ + { + href: 'https://github.com/succinctlabs/sp1', + label: 'GitHub', + position: 'right', + }, + ], + }, + footer: { + style: 'dark', + links: [ + { + title: 'Docs', + items: [ + { + label: 'Home', + to: '/docs/summary', + }, + ], + }, + { + title: 'Community', + items: [ + { + label: 'X', + href: 'https://x.com/succinctlabs', + }, + ], + }, + { + title: 'More', + items: [ + { + label: 'Website', + href: 'https://succinct.xyz', + }, + ], + }, + ], + }, + prism: { + theme: prismThemes.github, + darkTheme: prismThemes.dracula, + }, + colorMode: { + defaultMode: 'dark', + } + } satisfies Preset.ThemeConfig, +}; + +export default config; diff --git a/book2/package-lock.json b/book2/package-lock.json new file mode 100644 index 0000000000..450a7dab4e --- /dev/null +++ b/book2/package-lock.json @@ -0,0 +1,18242 @@ +{ + "name": "book-2", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "book-2", + "version": "0.0.0", + "dependencies": { + "@docusaurus/core": "3.6.3", + "@docusaurus/plugin-content-docs": "^3.6.3", + "@docusaurus/preset-classic": "3.6.3", + "@mdx-js/react": "^3.0.0", + "clsx": "^2.0.0", + "prism-react-renderer": "^2.3.0", + "react": "^18.0.0", + "react-dom": "^18.0.0", + "remark": "^15.0.1", + "remark-import-partial": "^0.0.2" + }, + "devDependencies": { + "@docusaurus/module-type-aliases": "3.6.3", + "@docusaurus/tsconfig": "3.6.3", + "@docusaurus/types": "3.6.3", + "typescript": "~5.6.2" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz", + "integrity": "sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.17.7", + "@algolia/autocomplete-shared": "1.17.7" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz", + "integrity": "sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.17.7" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" + } + }, + "node_modules/@algolia/autocomplete-preset-algolia": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz", + "integrity": "sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.17.7" + }, + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/autocomplete-shared": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz", + "integrity": "sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==", + "license": "MIT", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/cache-browser-local-storage": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.24.0.tgz", + "integrity": "sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww==", + "license": "MIT", + "dependencies": { + "@algolia/cache-common": "4.24.0" + } + }, + "node_modules/@algolia/cache-common": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.24.0.tgz", + "integrity": "sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g==", + "license": "MIT" + }, + "node_modules/@algolia/cache-in-memory": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.24.0.tgz", + "integrity": "sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w==", + "license": "MIT", + "dependencies": { + "@algolia/cache-common": "4.24.0" + } + }, + "node_modules/@algolia/client-abtesting": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.15.0.tgz", + "integrity": "sha512-FaEM40iuiv1mAipYyiptP4EyxkJ8qHfowCpEeusdHUC4C7spATJYArD2rX3AxkVeREkDIgYEOuXcwKUbDCr7Nw==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.15.0", + "@algolia/requester-browser-xhr": "5.15.0", + "@algolia/requester-fetch": "5.15.0", + "@algolia/requester-node-http": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-account": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.24.0.tgz", + "integrity": "sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "4.24.0", + "@algolia/client-search": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/client-account/node_modules/@algolia/client-common": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", + "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", + "license": "MIT", + "dependencies": { + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/client-account/node_modules/@algolia/client-search": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", + "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.24.0.tgz", + "integrity": "sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "4.24.0", + "@algolia/client-search": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/client-analytics/node_modules/@algolia/client-common": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", + "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", + "license": "MIT", + "dependencies": { + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/client-analytics/node_modules/@algolia/client-search": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", + "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/client-common": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.15.0.tgz", + "integrity": "sha512-IofrVh213VLsDkPoSKMeM9Dshrv28jhDlBDLRcVJQvlL8pzue7PEB1EZ4UoJFYS3NSn7JOcJ/V+olRQzXlJj1w==", + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-insights": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.15.0.tgz", + "integrity": "sha512-bDDEQGfFidDi0UQUCbxXOCdphbVAgbVmxvaV75cypBTQkJ+ABx/Npw7LkFGw1FsoVrttlrrQbwjvUB6mLVKs/w==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.15.0", + "@algolia/requester-browser-xhr": "5.15.0", + "@algolia/requester-fetch": "5.15.0", + "@algolia/requester-node-http": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.24.0.tgz", + "integrity": "sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/client-personalization/node_modules/@algolia/client-common": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", + "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", + "license": "MIT", + "dependencies": { + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/client-query-suggestions": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.15.0.tgz", + "integrity": "sha512-wu8GVluiZ5+il8WIRsGKu8VxMK9dAlr225h878GGtpTL6VBvwyJvAyLdZsfFIpY0iN++jiNb31q2C1PlPL+n/A==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.15.0", + "@algolia/requester-browser-xhr": "5.15.0", + "@algolia/requester-fetch": "5.15.0", + "@algolia/requester-node-http": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-search": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.15.0.tgz", + "integrity": "sha512-Z32gEMrRRpEta5UqVQA612sLdoqY3AovvUPClDfMxYrbdDAebmGDVPtSogUba1FZ4pP5dx20D3OV3reogLKsRA==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.15.0", + "@algolia/requester-browser-xhr": "5.15.0", + "@algolia/requester-fetch": "5.15.0", + "@algolia/requester-node-http": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/events": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", + "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==", + "license": "MIT" + }, + "node_modules/@algolia/ingestion": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.15.0.tgz", + "integrity": "sha512-MkqkAxBQxtQ5if/EX2IPqFA7LothghVyvPoRNA/meS2AW2qkHwcxjuiBxv4H6mnAVEPfJlhu9rkdVz9LgCBgJg==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.15.0", + "@algolia/requester-browser-xhr": "5.15.0", + "@algolia/requester-fetch": "5.15.0", + "@algolia/requester-node-http": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/logger-common": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.24.0.tgz", + "integrity": "sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==", + "license": "MIT" + }, + "node_modules/@algolia/logger-console": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.24.0.tgz", + "integrity": "sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg==", + "license": "MIT", + "dependencies": { + "@algolia/logger-common": "4.24.0" + } + }, + "node_modules/@algolia/monitoring": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.15.0.tgz", + "integrity": "sha512-QPrFnnGLMMdRa8t/4bs7XilPYnoUXDY8PMQJ1sf9ZFwhUysYYhQNX34/enoO0LBjpoOY6rLpha39YQEFbzgKyQ==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.15.0", + "@algolia/requester-browser-xhr": "5.15.0", + "@algolia/requester-fetch": "5.15.0", + "@algolia/requester-node-http": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/recommend": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.24.0.tgz", + "integrity": "sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==", + "license": "MIT", + "dependencies": { + "@algolia/cache-browser-local-storage": "4.24.0", + "@algolia/cache-common": "4.24.0", + "@algolia/cache-in-memory": "4.24.0", + "@algolia/client-common": "4.24.0", + "@algolia/client-search": "4.24.0", + "@algolia/logger-common": "4.24.0", + "@algolia/logger-console": "4.24.0", + "@algolia/requester-browser-xhr": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/requester-node-http": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/recommend/node_modules/@algolia/client-common": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", + "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", + "license": "MIT", + "dependencies": { + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/recommend/node_modules/@algolia/client-search": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", + "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/recommend/node_modules/@algolia/requester-browser-xhr": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz", + "integrity": "sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==", + "license": "MIT", + "dependencies": { + "@algolia/requester-common": "4.24.0" + } + }, + "node_modules/@algolia/recommend/node_modules/@algolia/requester-node-http": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz", + "integrity": "sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==", + "license": "MIT", + "dependencies": { + "@algolia/requester-common": "4.24.0" + } + }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.15.0.tgz", + "integrity": "sha512-Po/GNib6QKruC3XE+WKP1HwVSfCDaZcXu48kD+gwmtDlqHWKc7Bq9lrS0sNZ456rfCKhXksOmMfUs4wRM/Y96w==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-common": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.24.0.tgz", + "integrity": "sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==", + "license": "MIT" + }, + "node_modules/@algolia/requester-fetch": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.15.0.tgz", + "integrity": "sha512-rOZ+c0P7ajmccAvpeeNrUmEKoliYFL8aOR5qGW5pFq3oj3Iept7Y5mEtEsOBYsRt6qLnaXn4zUKf+N8nvJpcIw==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-node-http": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.15.0.tgz", + "integrity": "sha512-b1jTpbFf9LnQHEJP5ddDJKE2sAlhYd7EVSOWgzo/27n/SfCoHfqD0VWntnWYD83PnOKvfe8auZ2+xCb0TXotrQ==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/transporter": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.24.0.tgz", + "integrity": "sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==", + "license": "MIT", + "dependencies": { + "@algolia/cache-common": "4.24.0", + "@algolia/logger-common": "4.24.0", + "@algolia/requester-common": "4.24.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", + "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", + "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", + "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", + "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", + "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", + "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", + "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", + "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", + "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", + "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", + "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", + "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", + "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", + "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", + "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", + "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", + "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", + "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", + "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", + "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", + "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", + "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-simple-access": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", + "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", + "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", + "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", + "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", + "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", + "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.9.tgz", + "integrity": "sha512-Ncw2JFsJVuvfRsa2lSHiC55kETQVLSnsYGQ1JDDwkUeWGTL/8Tom8aLTnlqgoeuopWrbbGndrc9AlLYrIosrow==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", + "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", + "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", + "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", + "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", + "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", + "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", + "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz", + "integrity": "sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-syntax-typescript": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", + "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", + "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", + "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.26.0", + "@babel/plugin-syntax-import-attributes": "^7.26.0", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.25.9", + "@babel/plugin-transform-async-to-generator": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.25.9", + "@babel/plugin-transform-block-scoping": "^7.25.9", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/plugin-transform-class-static-block": "^7.26.0", + "@babel/plugin-transform-classes": "^7.25.9", + "@babel/plugin-transform-computed-properties": "^7.25.9", + "@babel/plugin-transform-destructuring": "^7.25.9", + "@babel/plugin-transform-dotall-regex": "^7.25.9", + "@babel/plugin-transform-duplicate-keys": "^7.25.9", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-dynamic-import": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.25.9", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.25.9", + "@babel/plugin-transform-function-name": "^7.25.9", + "@babel/plugin-transform-json-strings": "^7.25.9", + "@babel/plugin-transform-literals": "^7.25.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", + "@babel/plugin-transform-member-expression-literals": "^7.25.9", + "@babel/plugin-transform-modules-amd": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-modules-systemjs": "^7.25.9", + "@babel/plugin-transform-modules-umd": "^7.25.9", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-new-target": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", + "@babel/plugin-transform-numeric-separator": "^7.25.9", + "@babel/plugin-transform-object-rest-spread": "^7.25.9", + "@babel/plugin-transform-object-super": "^7.25.9", + "@babel/plugin-transform-optional-catch-binding": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9", + "@babel/plugin-transform-private-methods": "^7.25.9", + "@babel/plugin-transform-private-property-in-object": "^7.25.9", + "@babel/plugin-transform-property-literals": "^7.25.9", + "@babel/plugin-transform-regenerator": "^7.25.9", + "@babel/plugin-transform-regexp-modifiers": "^7.26.0", + "@babel/plugin-transform-reserved-words": "^7.25.9", + "@babel/plugin-transform-shorthand-properties": "^7.25.9", + "@babel/plugin-transform-spread": "^7.25.9", + "@babel/plugin-transform-sticky-regex": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.25.9", + "@babel/plugin-transform-typeof-symbol": "^7.25.9", + "@babel/plugin-transform-unicode-escapes": "^7.25.9", + "@babel/plugin-transform-unicode-property-regex": "^7.25.9", + "@babel/plugin-transform-unicode-regex": "^7.25.9", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.38.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.25.9.tgz", + "integrity": "sha512-D3to0uSPiWE7rBrdIICCd0tJSIGpLaaGptna2+w7Pft5xMqLpA1sz99DK5TZ1TjGbdQ/VI1eCSZ06dv3lT4JOw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-transform-react-display-name": "^7.25.9", + "@babel/plugin-transform-react-jsx": "^7.25.9", + "@babel/plugin-transform-react-jsx-development": "^7.25.9", + "@babel/plugin-transform-react-pure-annotations": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", + "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-typescript": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.26.0.tgz", + "integrity": "sha512-YXHu5lN8kJCb1LOb9PgV6pvak43X2h4HvRApcN5SdWeaItQOzfn1hgP6jasD6KWQyJDBxrVmA9o9OivlnNJK/w==", + "license": "MIT", + "dependencies": { + "core-js-pure": "^3.30.2", + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@csstools/cascade-layer-name-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.4.tgz", + "integrity": "sha512-7DFHlPuIxviKYZrOiwVU/PiHLm3lLUR23OMuEEtfEOQTOp9hzQ2JjdY6X5H18RVuUPJqSCI+qNnD5iOLMVE0bA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.1.tgz", + "integrity": "sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.0.tgz", + "integrity": "sha512-X69PmFOrjTZfN5ijxtI8hZ9kRADFSLrmmQ6hgDJ272Il049WGKpDY64KhrFm/7rbWve0z81QepawzjkKlqkNGw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.6.tgz", + "integrity": "sha512-S/IjXqTHdpI4EtzGoNCHfqraXF37x12ZZHA1Lk7zoT5pm2lMjFuqhX/89L7dqX4CcMacKK+6ZCs5TmEGb/+wKw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^5.0.1", + "@csstools/css-calc": "^2.1.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", + "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", + "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz", + "integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.1.tgz", + "integrity": "sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-cascade-layers/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/@csstools/postcss-cascade-layers/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.6.tgz", + "integrity": "sha512-EcvXfC60cTIumzpsxWuvVjb7rsJEHPvqn3jeMEBUaE3JSc4FRuP7mEQ+1eicxWmIrs3FtzMH9gR3sgA5TH+ebQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-mix-function": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.6.tgz", + "integrity": "sha512-jVKdJn4+JkASYGhyPO+Wa5WXSx1+oUgaXb3JsjJn/BlrtFh5zjocCY7pwWi0nuP24V1fY7glQsxEYcYNy0dMFg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-content-alt-text": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.4.tgz", + "integrity": "sha512-YItlZUOuZJCBlRaCf8Aucc1lgN41qYGALMly0qQllrxYJhiyzlI6RxOTMUvtWk+KhS8GphMDsDhKQ7KTPfEMSw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-exponential-functions": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.5.tgz", + "integrity": "sha512-mi8R6dVfA2nDoKM3wcEi64I8vOYEgQVtVKCfmLHXupeLpACfGAided5ddMt5f+CnEodNu4DifuVwb0I6fQDGGQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.0", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz", + "integrity": "sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-gamut-mapping": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.6.tgz", + "integrity": "sha512-0ke7fmXfc8H+kysZz246yjirAH6JFhyX9GTlyRnM0exHO80XcA9zeJpy5pOp5zo/AZiC/q5Pf+Hw7Pd6/uAoYA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-gradients-interpolation-method": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.6.tgz", + "integrity": "sha512-Itrbx6SLUzsZ6Mz3VuOlxhbfuyLTogG5DwEF1V8dAi24iMuvQPIHd7Ti+pNDp7j6WixndJGZaoNR0f9VSzwuTg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.6.tgz", + "integrity": "sha512-927Pqy3a1uBP7U8sTfaNdZVB0mNXzIrJO/GZ8us9219q9n06gOqCdfZ0E6d1P66Fm0fYHvxfDbfcUuwAn5UwhQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.0.tgz", + "integrity": "sha512-9QT5TDGgx7wD3EEMN3BSUG6ckb6Eh5gSPT5kZoVtUuAonfPmLDJyPhqR4ntPpMYhUKAMVKAg3I/AgzqHMSeLhA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-initial": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.0.tgz", + "integrity": "sha512-dv2lNUKR+JV+OOhZm9paWzYBXOCi+rJPqJ2cJuhh9xd8USVrd0cBEPczla81HNOyThMQWeCcdln3gZkQV2kYxA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.1.tgz", + "integrity": "sha512-JLp3POui4S1auhDR0n8wHd/zTOWmMsmK3nQd3hhL6FhWPaox5W7j1se6zXOG/aP07wV2ww0lxbKYGwbBszOtfQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/postcss-light-dark-function": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.7.tgz", + "integrity": "sha512-ZZ0rwlanYKOHekyIPaU+sVm3BEHCe+Ha0/px+bmHe62n0Uc1lL34vbwrLYn6ote8PHlsqzKeTQdIejQCJ05tfw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-float-and-clear": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-3.0.0.tgz", + "integrity": "sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-overflow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-2.0.0.tgz", + "integrity": "sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-overscroll-behavior": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-2.0.0.tgz", + "integrity": "sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-resize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-resize/-/postcss-logical-resize-3.0.0.tgz", + "integrity": "sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-viewport-units": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.3.tgz", + "integrity": "sha512-OC1IlG/yoGJdi0Y+7duz/kU/beCwO+Gua01sD6GtOtLi7ByQUpcIqs7UE/xuRPay4cHgOMatWdnDdsIDjnWpPw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-media-minmax": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.5.tgz", + "integrity": "sha512-sdh5i5GToZOIAiwhdntRWv77QDtsxP2r2gXW/WbLSCoLr00KTq/yiF1qlQ5XX2+lmiFa8rATKMcbwl3oXDMNew==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.0", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/media-query-list-parser": "^4.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.4.tgz", + "integrity": "sha512-AnGjVslHMm5xw9keusQYvjVWvuS7KWK+OJagaG0+m9QnIjZsrysD2kJP/tr/UJIyYtMCtu8OkUd+Rajb4DqtIQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/media-query-list-parser": "^4.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-4.0.0.tgz", + "integrity": "sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz", + "integrity": "sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.6.tgz", + "integrity": "sha512-Hptoa0uX+XsNacFBCIQKTUBrFKDiplHan42X73EklG6XmQLG7/aIvxoNhvZ7PvOWMt67Pw3bIlUY2nD6p5vL8A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.0.0.tgz", + "integrity": "sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-random-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-1.0.1.tgz", + "integrity": "sha512-Ab/tF8/RXktQlFwVhiC70UNfpFQRhtE5fQQoP2pO+KCPGLsLdWFiOuHgSRtBOqEshCVAzR4H6o38nhvRZq8deA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.0", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-relative-color-syntax": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.6.tgz", + "integrity": "sha512-yxP618Xb+ji1I624jILaYM62uEmZcmbdmFoZHoaThw896sq0vU39kqTTF+ZNic9XyPtPMvq0vyvbgmHaszq8xg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-scope-pseudo-class": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.1.tgz", + "integrity": "sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-scope-pseudo-class/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/postcss-sign-functions": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.0.tgz", + "integrity": "sha512-SLcc20Nujx/kqbSwDmj6oaXgpy3UjFhBy1sfcqPgDkHfOIfUtUVH7OXO+j7BU4v/At5s61N5ZX6shvgPwluhsA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.0", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.5.tgz", + "integrity": "sha512-G6SJ6hZJkhxo6UZojVlLo14MohH4J5J7z8CRBrxxUYy9JuZiIqUo5TBYyDGcE0PLdzpg63a7mHSJz3VD+gMwqw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.0", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.1.tgz", + "integrity": "sha512-xPZIikbx6jyzWvhms27uugIc0I4ykH4keRvoa3rxX5K7lEhkbd54rjj/dv60qOCTisoS+3bmwJTeyV1VNBrXaw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/color-helpers": "^5.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.5.tgz", + "integrity": "sha512-/YQThYkt5MLvAmVu7zxjhceCYlKrYddK6LEmK5I4ojlS6BmO9u2yO4+xjXzu2+NPYmHSTtP4NFSamBCMmJ1NJA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.0", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz", + "integrity": "sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/utilities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/utilities/-/utilities-2.0.0.tgz", + "integrity": "sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@docsearch/css": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.8.0.tgz", + "integrity": "sha512-pieeipSOW4sQ0+bE5UFC51AOZp9NGxg89wAlZ1BAQFaiRAGK1IKUaPQ0UGZeNctJXyqZ1UvBtOQh2HH+U5GtmA==", + "license": "MIT" + }, + "node_modules/@docsearch/react": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.8.0.tgz", + "integrity": "sha512-WnFK720+iwTVt94CxY3u+FgX6exb3BfN5kE9xUY6uuAH/9W/UFboBZFLlrw/zxFRHoHZCOXRtOylsXF+6LHI+Q==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-core": "1.17.7", + "@algolia/autocomplete-preset-algolia": "1.17.7", + "@docsearch/css": "3.8.0", + "algoliasearch": "^5.12.0" + }, + "peerDependencies": { + "@types/react": ">= 16.8.0 < 19.0.0", + "react": ">= 16.8.0 < 19.0.0", + "react-dom": ">= 16.8.0 < 19.0.0", + "search-insights": ">= 1 < 3" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "search-insights": { + "optional": true + } + } + }, + "node_modules/@docsearch/react/node_modules/@algolia/client-analytics": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.15.0.tgz", + "integrity": "sha512-lho0gTFsQDIdCwyUKTtMuf9nCLwq9jOGlLGIeQGKDxXF7HbiAysFIu5QW/iQr1LzMgDyM9NH7K98KY+BiIFriQ==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.15.0", + "@algolia/requester-browser-xhr": "5.15.0", + "@algolia/requester-fetch": "5.15.0", + "@algolia/requester-node-http": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@docsearch/react/node_modules/@algolia/client-personalization": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.15.0.tgz", + "integrity": "sha512-LfaZqLUWxdYFq44QrasCDED5bSYOswpQjSiIL7Q5fYlefAAUO95PzBPKCfUhSwhb4rKxigHfDkd81AvEicIEoA==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.15.0", + "@algolia/requester-browser-xhr": "5.15.0", + "@algolia/requester-fetch": "5.15.0", + "@algolia/requester-node-http": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@docsearch/react/node_modules/@algolia/recommend": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.15.0.tgz", + "integrity": "sha512-5eupMwSqMLDObgSMF0XG958zR6GJP3f7jHDQ3/WlzCM9/YIJiWIUoJFGsko9GYsA5xbLDHE/PhWtq4chcCdaGQ==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.15.0", + "@algolia/requester-browser-xhr": "5.15.0", + "@algolia/requester-fetch": "5.15.0", + "@algolia/requester-node-http": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@docsearch/react/node_modules/algoliasearch": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.15.0.tgz", + "integrity": "sha512-Yf3Swz1s63hjvBVZ/9f2P1Uu48GjmjCN+Esxb6MAONMGtZB1fRX8/S1AhUTtsuTlcGovbYLxpHgc7wEzstDZBw==", + "license": "MIT", + "dependencies": { + "@algolia/client-abtesting": "5.15.0", + "@algolia/client-analytics": "5.15.0", + "@algolia/client-common": "5.15.0", + "@algolia/client-insights": "5.15.0", + "@algolia/client-personalization": "5.15.0", + "@algolia/client-query-suggestions": "5.15.0", + "@algolia/client-search": "5.15.0", + "@algolia/ingestion": "1.15.0", + "@algolia/monitoring": "1.15.0", + "@algolia/recommend": "5.15.0", + "@algolia/requester-browser-xhr": "5.15.0", + "@algolia/requester-fetch": "5.15.0", + "@algolia/requester-node-http": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@docusaurus/babel": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.6.3.tgz", + "integrity": "sha512-7dW9Hat9EHYCVicFXYA4hjxBY38+hPuCURL8oRF9fySRm7vzNWuEOghA1TXcykuXZp0HLG2td4RhDxCvGG7tNw==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.25.9", + "@babel/preset-env": "^7.25.9", + "@babel/preset-react": "^7.25.9", + "@babel/preset-typescript": "^7.25.9", + "@babel/runtime": "^7.25.9", + "@babel/runtime-corejs3": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@docusaurus/logger": "3.6.3", + "@docusaurus/utils": "3.6.3", + "babel-plugin-dynamic-import-node": "^2.3.3", + "fs-extra": "^11.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/bundler": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.6.3.tgz", + "integrity": "sha512-47JLuc8D4wA+6VOvmMd5fUC9rFppBQpQOnxDYiVXffm/DeV/wmm3sbpNd5Y+O+G2+nevLTRnvCm/qyancv0Y3A==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.9", + "@docusaurus/babel": "3.6.3", + "@docusaurus/cssnano-preset": "3.6.3", + "@docusaurus/logger": "3.6.3", + "@docusaurus/types": "3.6.3", + "@docusaurus/utils": "3.6.3", + "babel-loader": "^9.2.1", + "clean-css": "^5.3.2", + "copy-webpack-plugin": "^11.0.0", + "css-loader": "^6.8.1", + "css-minimizer-webpack-plugin": "^5.0.1", + "cssnano": "^6.1.2", + "file-loader": "^6.2.0", + "html-minifier-terser": "^7.2.0", + "mini-css-extract-plugin": "^2.9.1", + "null-loader": "^4.0.1", + "postcss": "^8.4.26", + "postcss-loader": "^7.3.3", + "postcss-preset-env": "^10.1.0", + "react-dev-utils": "^12.0.1", + "terser-webpack-plugin": "^5.3.9", + "tslib": "^2.6.0", + "url-loader": "^4.1.1", + "webpack": "^5.95.0", + "webpackbar": "^6.0.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "@docusaurus/faster": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/faster": { + "optional": true + } + } + }, + "node_modules/@docusaurus/core": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.6.3.tgz", + "integrity": "sha512-xL7FRY9Jr5DWqB6pEnqgKqcMPJOX5V0pgWXi5lCiih11sUBmcFKM7c3+GyxcVeeWFxyYSDP3grLTWqJoP4P9Vw==", + "license": "MIT", + "dependencies": { + "@docusaurus/babel": "3.6.3", + "@docusaurus/bundler": "3.6.3", + "@docusaurus/logger": "3.6.3", + "@docusaurus/mdx-loader": "3.6.3", + "@docusaurus/utils": "3.6.3", + "@docusaurus/utils-common": "3.6.3", + "@docusaurus/utils-validation": "3.6.3", + "boxen": "^6.2.1", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cli-table3": "^0.6.3", + "combine-promises": "^1.1.0", + "commander": "^5.1.0", + "core-js": "^3.31.1", + "del": "^6.1.1", + "detect-port": "^1.5.1", + "escape-html": "^1.0.3", + "eta": "^2.2.0", + "eval": "^0.1.8", + "fs-extra": "^11.1.1", + "html-tags": "^3.3.1", + "html-webpack-plugin": "^5.6.0", + "leven": "^3.1.0", + "lodash": "^4.17.21", + "p-map": "^4.0.0", + "prompts": "^2.4.2", + "react-dev-utils": "^12.0.1", + "react-helmet-async": "^1.3.0", + "react-loadable": "npm:@docusaurus/react-loadable@6.0.0", + "react-loadable-ssr-addon-v5-slorber": "^1.0.1", + "react-router": "^5.3.4", + "react-router-config": "^5.1.1", + "react-router-dom": "^5.3.4", + "rtl-detect": "^1.0.4", + "semver": "^7.5.4", + "serve-handler": "^6.1.6", + "shelljs": "^0.8.5", + "tslib": "^2.6.0", + "update-notifier": "^6.0.2", + "webpack": "^5.95.0", + "webpack-bundle-analyzer": "^4.10.2", + "webpack-dev-server": "^4.15.2", + "webpack-merge": "^6.0.1" + }, + "bin": { + "docusaurus": "bin/docusaurus.mjs" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "@mdx-js/react": "^3.0.0", + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/cssnano-preset": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.6.3.tgz", + "integrity": "sha512-qP7SXrwZ+23GFJdPN4aIHQrZW+oH/7tzwEuc/RNL0+BdZdmIjYQqUxdXsjE4lFxLNZjj0eUrSNYIS6xwfij+5Q==", + "license": "MIT", + "dependencies": { + "cssnano-preset-advanced": "^6.1.2", + "postcss": "^8.4.38", + "postcss-sort-media-queries": "^5.2.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/logger": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.6.3.tgz", + "integrity": "sha512-xSubJixcNyMV9wMV4q0s47CBz3Rlc5jbcCCuij8pfQP8qn/DIpt0ks8W6hQWzHAedg/J/EwxxUOUrnEoKzJo8g==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/mdx-loader": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.6.3.tgz", + "integrity": "sha512-3iJdiDz9540ppBseeI93tWTDtUGVkxzh59nMq4ignylxMuXBLK8dFqVeaEor23v1vx6TrGKZ2FuLaTB+U7C0QQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/logger": "3.6.3", + "@docusaurus/utils": "3.6.3", + "@docusaurus/utils-validation": "3.6.3", + "@mdx-js/mdx": "^3.0.0", + "@slorber/remark-comment": "^1.0.0", + "escape-html": "^1.0.3", + "estree-util-value-to-estree": "^3.0.1", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "image-size": "^1.0.2", + "mdast-util-mdx": "^3.0.0", + "mdast-util-to-string": "^4.0.0", + "rehype-raw": "^7.0.0", + "remark-directive": "^3.0.0", + "remark-emoji": "^4.0.0", + "remark-frontmatter": "^5.0.0", + "remark-gfm": "^4.0.0", + "stringify-object": "^3.3.0", + "tslib": "^2.6.0", + "unified": "^11.0.3", + "unist-util-visit": "^5.0.0", + "url-loader": "^4.1.1", + "vfile": "^6.0.1", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/module-type-aliases": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.6.3.tgz", + "integrity": "sha512-MjaXX9PN/k5ugNvfRZdWyKWq4FsrhN4LEXaj0pEmMebJuBNlFeGyKQUa9DRhJHpadNaiMLrbo9m3U7Ig5YlsZg==", + "license": "MIT", + "dependencies": { + "@docusaurus/types": "3.6.3", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "@types/react-router-dom": "*", + "react-helmet-async": "*", + "react-loadable": "npm:@docusaurus/react-loadable@6.0.0" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@docusaurus/plugin-content-blog": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.6.3.tgz", + "integrity": "sha512-k0ogWwwJU3pFRFfvW1kRVHxzf2DutLGaaLjAnHVEU6ju+aRP0Z5ap/13DHyPOfHeE4WKpn/M0TqjdwZAcY3kAw==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.6.3", + "@docusaurus/logger": "3.6.3", + "@docusaurus/mdx-loader": "3.6.3", + "@docusaurus/theme-common": "3.6.3", + "@docusaurus/types": "3.6.3", + "@docusaurus/utils": "3.6.3", + "@docusaurus/utils-common": "3.6.3", + "@docusaurus/utils-validation": "3.6.3", + "cheerio": "1.0.0-rc.12", + "feed": "^4.2.2", + "fs-extra": "^11.1.1", + "lodash": "^4.17.21", + "reading-time": "^1.5.0", + "srcset": "^4.0.0", + "tslib": "^2.6.0", + "unist-util-visit": "^5.0.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "@docusaurus/plugin-content-docs": "*", + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-docs": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.6.3.tgz", + "integrity": "sha512-r2wS8y/fsaDcxkm20W5bbYJFPzdWdEaTWVYjNxlHlcmX086eqQR1Fomlg9BHTJ0dLXPzAlbC8EN4XqMr3QzNCQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.6.3", + "@docusaurus/logger": "3.6.3", + "@docusaurus/mdx-loader": "3.6.3", + "@docusaurus/module-type-aliases": "3.6.3", + "@docusaurus/theme-common": "3.6.3", + "@docusaurus/types": "3.6.3", + "@docusaurus/utils": "3.6.3", + "@docusaurus/utils-common": "3.6.3", + "@docusaurus/utils-validation": "3.6.3", + "@types/react-router-config": "^5.0.7", + "combine-promises": "^1.1.0", + "fs-extra": "^11.1.1", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "tslib": "^2.6.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-pages": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.6.3.tgz", + "integrity": "sha512-eHrmTgjgLZsuqfsYr5X2xEwyIcck0wseSofWrjTwT9FLOWp+KDmMAuVK+wRo7sFImWXZk3oV/xX/g9aZrhD7OA==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.6.3", + "@docusaurus/mdx-loader": "3.6.3", + "@docusaurus/types": "3.6.3", + "@docusaurus/utils": "3.6.3", + "@docusaurus/utils-validation": "3.6.3", + "fs-extra": "^11.1.1", + "tslib": "^2.6.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-debug": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.6.3.tgz", + "integrity": "sha512-zB9GXfIZNPRfzKnNjU6xGVrqn9bPXuGhpjgsuc/YtcTDjnjhasg38NdYd5LEqXex5G/zIorQgWB3n6x/Ut62vQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.6.3", + "@docusaurus/types": "3.6.3", + "@docusaurus/utils": "3.6.3", + "fs-extra": "^11.1.1", + "react-json-view-lite": "^1.2.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-analytics": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.6.3.tgz", + "integrity": "sha512-rCDNy1QW8Dag7nZq67pcum0bpFLrwvxJhYuVprhFh8BMBDxV0bY+bAkGHbSf68P3Bk9C3hNOAXX1srGLIDvcTA==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.6.3", + "@docusaurus/types": "3.6.3", + "@docusaurus/utils-validation": "3.6.3", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-gtag": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.6.3.tgz", + "integrity": "sha512-+OyDvhM6rqVkQOmLVkQWVJAizEEfkPzVWtIHXlWPOCFGK9X4/AWeBSrU0WG4iMg9Z4zD4YDRrU+lvI4s6DSC+w==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.6.3", + "@docusaurus/types": "3.6.3", + "@docusaurus/utils-validation": "3.6.3", + "@types/gtag.js": "^0.0.12", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-tag-manager": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.6.3.tgz", + "integrity": "sha512-1M6UPB13gWUtN2UHX083/beTn85PlRI9ABItTl/JL1FJ5dJTWWFXXsHf9WW/6hrVwthwTeV/AGbGKvLKV+IlCA==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.6.3", + "@docusaurus/types": "3.6.3", + "@docusaurus/utils-validation": "3.6.3", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-sitemap": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.6.3.tgz", + "integrity": "sha512-94qOO4M9Fwv9KfVQJsgbe91k+fPJ4byf1L3Ez8TUa6TAFPo/BrLwQ80zclHkENlL1824TuxkcMKv33u6eydQCg==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.6.3", + "@docusaurus/logger": "3.6.3", + "@docusaurus/types": "3.6.3", + "@docusaurus/utils": "3.6.3", + "@docusaurus/utils-common": "3.6.3", + "@docusaurus/utils-validation": "3.6.3", + "fs-extra": "^11.1.1", + "sitemap": "^7.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/preset-classic": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.6.3.tgz", + "integrity": "sha512-VHSYWROT3flvNNI1SrnMOtW1EsjeHNK9dhU6s9eY5hryZe79lUqnZJyze/ymDe2LXAqzyj6y5oYvyBoZZk6ErA==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.6.3", + "@docusaurus/plugin-content-blog": "3.6.3", + "@docusaurus/plugin-content-docs": "3.6.3", + "@docusaurus/plugin-content-pages": "3.6.3", + "@docusaurus/plugin-debug": "3.6.3", + "@docusaurus/plugin-google-analytics": "3.6.3", + "@docusaurus/plugin-google-gtag": "3.6.3", + "@docusaurus/plugin-google-tag-manager": "3.6.3", + "@docusaurus/plugin-sitemap": "3.6.3", + "@docusaurus/theme-classic": "3.6.3", + "@docusaurus/theme-common": "3.6.3", + "@docusaurus/theme-search-algolia": "3.6.3", + "@docusaurus/types": "3.6.3" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-classic": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.6.3.tgz", + "integrity": "sha512-1RRLK1tSArI2c00qugWYO3jRocjOZwGF1mBzPPylDVRwWCS/rnWWR91ChdbbaxIupRJ+hX8ZBYrwr5bbU0oztQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.6.3", + "@docusaurus/logger": "3.6.3", + "@docusaurus/mdx-loader": "3.6.3", + "@docusaurus/module-type-aliases": "3.6.3", + "@docusaurus/plugin-content-blog": "3.6.3", + "@docusaurus/plugin-content-docs": "3.6.3", + "@docusaurus/plugin-content-pages": "3.6.3", + "@docusaurus/theme-common": "3.6.3", + "@docusaurus/theme-translations": "3.6.3", + "@docusaurus/types": "3.6.3", + "@docusaurus/utils": "3.6.3", + "@docusaurus/utils-common": "3.6.3", + "@docusaurus/utils-validation": "3.6.3", + "@mdx-js/react": "^3.0.0", + "clsx": "^2.0.0", + "copy-text-to-clipboard": "^3.2.0", + "infima": "0.2.0-alpha.45", + "lodash": "^4.17.21", + "nprogress": "^0.2.0", + "postcss": "^8.4.26", + "prism-react-renderer": "^2.3.0", + "prismjs": "^1.29.0", + "react-router-dom": "^5.3.4", + "rtlcss": "^4.1.0", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-common": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.6.3.tgz", + "integrity": "sha512-b8ZkhczXHDxWWyvz+YJy4t/PlPbEogTTbgnHoflYnH7rmRtyoodTsu8WVM12la5LmlMJBclBXFl29OH8kPE7gg==", + "license": "MIT", + "dependencies": { + "@docusaurus/mdx-loader": "3.6.3", + "@docusaurus/module-type-aliases": "3.6.3", + "@docusaurus/utils": "3.6.3", + "@docusaurus/utils-common": "3.6.3", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "clsx": "^2.0.0", + "parse-numeric-range": "^1.3.0", + "prism-react-renderer": "^2.3.0", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "@docusaurus/plugin-content-docs": "*", + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-search-algolia": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.6.3.tgz", + "integrity": "sha512-rt+MGCCpYgPyWCGXtbxlwFbTSobu15jWBTPI2LHsHNa5B0zSmOISX6FWYAPt5X1rNDOqMGM0FATnh7TBHRohVA==", + "license": "MIT", + "dependencies": { + "@docsearch/react": "^3.5.2", + "@docusaurus/core": "3.6.3", + "@docusaurus/logger": "3.6.3", + "@docusaurus/plugin-content-docs": "3.6.3", + "@docusaurus/theme-common": "3.6.3", + "@docusaurus/theme-translations": "3.6.3", + "@docusaurus/utils": "3.6.3", + "@docusaurus/utils-validation": "3.6.3", + "algoliasearch": "^4.18.0", + "algoliasearch-helper": "^3.13.3", + "clsx": "^2.0.0", + "eta": "^2.2.0", + "fs-extra": "^11.1.1", + "lodash": "^4.17.21", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-translations": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.6.3.tgz", + "integrity": "sha512-Gb0regclToVlngSIIwUCtBMQBq48qVUaN1XQNKW4XwlsgUyk0vP01LULdqbem7czSwIeBAFXFoORJ0RPX7ht/w==", + "license": "MIT", + "dependencies": { + "fs-extra": "^11.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/tsconfig": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.6.3.tgz", + "integrity": "sha512-1pT/rTrRpMV15E4tJH95W5PrjboMn5JkKF+Ys8cTjMegetiXjs0gPFOSDA5hdTlberKQLDO50xPjMJHondLuzA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@docusaurus/types": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.3.tgz", + "integrity": "sha512-xD9oTGDrouWzefkhe9ogB2fDV96/82cRpNGx2HIvI5L87JHNhQVIWimQ/3JIiiX/TEd5S9s+VO6FFguwKNRVow==", + "license": "MIT", + "dependencies": { + "@mdx-js/mdx": "^3.0.0", + "@types/history": "^4.7.11", + "@types/react": "*", + "commander": "^5.1.0", + "joi": "^17.9.2", + "react-helmet-async": "^1.3.0", + "utility-types": "^3.10.0", + "webpack": "^5.95.0", + "webpack-merge": "^5.9.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/types/node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@docusaurus/utils": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.6.3.tgz", + "integrity": "sha512-0R/FR3bKVl4yl8QwbL4TYFfR+OXBRpVUaTJdENapBGR3YMwfM6/JnhGilWQO8AOwPJGtGoDK7ib8+8UF9f3OZQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/logger": "3.6.3", + "@docusaurus/types": "3.6.3", + "@docusaurus/utils-common": "3.6.3", + "@svgr/webpack": "^8.1.0", + "escape-string-regexp": "^4.0.0", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "github-slugger": "^1.5.0", + "globby": "^11.1.0", + "gray-matter": "^4.0.3", + "jiti": "^1.20.0", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "micromatch": "^4.0.5", + "prompts": "^2.4.2", + "resolve-pathname": "^3.0.0", + "shelljs": "^0.8.5", + "tslib": "^2.6.0", + "url-loader": "^4.1.1", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/utils-common": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.6.3.tgz", + "integrity": "sha512-v4nKDaANLgT3pMBewHYEMAl/ufY0LkXao1QkFWzI5huWFOmNQ2UFzv2BiKeHX5Ownis0/w6cAyoxPhVdDonlSQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/types": "3.6.3", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/utils-validation": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.6.3.tgz", + "integrity": "sha512-bhEGGiN5BE38h21vjqD70Gxg++j+PfYVddDUE5UFvLDup68QOcpD33CLr+2knPorlxRbEaNfz6HQDUMQ3HuqKw==", + "license": "MIT", + "dependencies": { + "@docusaurus/logger": "3.6.3", + "@docusaurus/utils": "3.6.3", + "@docusaurus/utils-common": "3.6.3", + "fs-extra": "^11.2.0", + "joi": "^17.9.2", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "license": "MIT" + }, + "node_modules/@mdx-js/mdx": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", + "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdx": "^2.0.0", + "collapse-white-space": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-scope": "^1.0.0", + "estree-walker": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "markdown-extensions": "^2.0.0", + "recma-build-jsx": "^1.0.0", + "recma-jsx": "^1.0.0", + "recma-stringify": "^1.0.0", + "rehype-recma": "^1.0.0", + "remark-mdx": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "source-map": "^0.7.0", + "unified": "^11.0.0", + "unist-util-position-from-estree": "^2.0.0", + "unist-util-stringify-position": "^4.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/react": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz", + "integrity": "sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==", + "license": "MIT", + "dependencies": { + "@types/mdx": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=16", + "react": ">=16" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "license": "MIT", + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", + "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", + "license": "MIT", + "dependencies": { + "graceful-fs": "4.2.10" + }, + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "license": "ISC" + }, + "node_modules/@pnpm/npm-conf": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", + "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", + "license": "MIT", + "dependencies": { + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.28", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", + "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", + "license": "MIT" + }, + "node_modules/@sideway/address": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "license": "BSD-3-Clause" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "license": "MIT" + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@slorber/remark-comment": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@slorber/remark-comment/-/remark-comment-1.0.0.tgz", + "integrity": "sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==", + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.1.0", + "micromark-util-symbol": "^1.0.1" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "license": "MIT", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/webpack": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/acorn": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", + "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "license": "MIT", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "license": "MIT" + }, + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.2.tgz", + "integrity": "sha512-vluaspfvWEtE4vcSDlKRNer52DvOGrB2xv6diXy6UKyKW0lqZiWHGNApSyxOv+8DE5Z27IzVvE7hNkxg7EXIcg==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/express/node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/gtag.js": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz", + "integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==", + "license": "MIT" + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/history": { + "version": "4.7.11", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", + "license": "MIT" + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "license": "MIT" + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "license": "MIT" + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "license": "MIT" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.15", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz", + "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdx": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.1.tgz", + "integrity": "sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" + }, + "node_modules/@types/prismjs": { + "version": "1.26.5", + "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz", + "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==", + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.9.17", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", + "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", + "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-router": { + "version": "5.1.20", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", + "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*" + } + }, + "node_modules/@types/react-router-config": { + "version": "5.0.11", + "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.11.tgz", + "integrity": "sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==", + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "^5.1.0" + } + }, + "node_modules/@types/react-router-dom": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "license": "MIT" + }, + "node_modules/@types/sax": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", + "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.5.13", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", + "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "license": "ISC" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "license": "Apache-2.0" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/algoliasearch": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.24.0.tgz", + "integrity": "sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==", + "license": "MIT", + "dependencies": { + "@algolia/cache-browser-local-storage": "4.24.0", + "@algolia/cache-common": "4.24.0", + "@algolia/cache-in-memory": "4.24.0", + "@algolia/client-account": "4.24.0", + "@algolia/client-analytics": "4.24.0", + "@algolia/client-common": "4.24.0", + "@algolia/client-personalization": "4.24.0", + "@algolia/client-search": "4.24.0", + "@algolia/logger-common": "4.24.0", + "@algolia/logger-console": "4.24.0", + "@algolia/recommend": "4.24.0", + "@algolia/requester-browser-xhr": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/requester-node-http": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/algoliasearch-helper": { + "version": "3.22.5", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.22.5.tgz", + "integrity": "sha512-lWvhdnc+aKOKx8jyA3bsdEgHzm/sglC4cYdMG4xSQyRiPLJVJtH/IVYZG3Hp6PkTEhQqhyVYkeP9z2IlcHJsWw==", + "license": "MIT", + "dependencies": { + "@algolia/events": "^4.0.1" + }, + "peerDependencies": { + "algoliasearch": ">= 3.1 < 6" + } + }, + "node_modules/algoliasearch/node_modules/@algolia/client-common": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", + "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", + "license": "MIT", + "dependencies": { + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/algoliasearch/node_modules/@algolia/client-search": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", + "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/algoliasearch/node_modules/@algolia/requester-browser-xhr": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz", + "integrity": "sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==", + "license": "MIT", + "dependencies": { + "@algolia/requester-common": "4.24.0" + } + }, + "node_modules/algoliasearch/node_modules/@algolia/requester-node-http": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz", + "integrity": "sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==", + "license": "MIT", + "dependencies": { + "@algolia/requester-common": "4.24.0" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/astring": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "license": "MIT", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/babel-loader": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", + "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", + "license": "MIT", + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "license": "MIT", + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", + "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.3", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", + "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.3" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "license": "MIT" + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/bonjour-service": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", + "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, + "node_modules/boxen": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", + "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^6.2.0", + "chalk": "^4.1.2", + "cli-boxes": "^3.0.0", + "string-width": "^5.0.1", + "type-fest": "^2.5.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "10.2.14", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", + "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "^4.0.2", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.3", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001686", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001686.tgz", + "integrity": "sha512-Y7deg0Aergpa24M3qLC5xjNklnKnhsmSyR/V89dLZ1n0ucJIFNs7PgR2Yfa/Zf6W79SbBicgtGxZr2juHkEUIA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-table3/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/cli-table3/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/collapse-white-space": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", + "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" + }, + "node_modules/combine-promises": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.2.0.tgz", + "integrity": "sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "license": "ISC" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compressible/node_modules/mime-db": { + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", + "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", + "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.0.2", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/configstore": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", + "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", + "license": "BSD-2-Clause", + "dependencies": { + "dot-prop": "^6.0.1", + "graceful-fs": "^4.2.6", + "unique-string": "^3.0.0", + "write-file-atomic": "^3.0.3", + "xdg-basedir": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/yeoman/configstore?sponsor=1" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/consola": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", + "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/copy-text-to-clipboard": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz", + "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "license": "MIT", + "dependencies": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "license": "MIT", + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-js": { + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.39.0.tgz", + "integrity": "sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", + "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.39.0.tgz", + "integrity": "sha512-7fEcWwKI4rJinnK+wLTezeg2smbFFdSBP6E2kQZNbnzM2s1rpKQ6aaRteZSSg7FLU3P0HGGVo/gbpfanU36urg==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "license": "MIT", + "dependencies": { + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/crypto-random-string/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/css-blank-pseudo": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz", + "integrity": "sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-blank-pseudo/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", + "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", + "license": "ISC", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.1.tgz", + "integrity": "sha512-EOcoyJt+OsuKfCADgLT7gADZI5jMzIe/AeI6MeAYKiFBDmNmM7kk46DtSfMj5AohUJisqVzopBpnQTlvbyaBWg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-has-pseudo/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", + "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "cssnano": "^6.0.1", + "jest-worker": "^29.4.3", + "postcss": "^8.4.24", + "schema-utils": "^4.0.1", + "serialize-javascript": "^6.0.1" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "lightningcss": { + "optional": true + } + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz", + "integrity": "sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssdb": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.2.2.tgz", + "integrity": "sha512-Z3kpWyvN68aKyeMxOUGmffQeHjvrzDxbre2B2ikr/WqQ4ZMkhHu2nOD6uwSeq3TpuOYU7ckvmJRAUIt6orkYUg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + } + ], + "license": "MIT-0" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", + "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", + "license": "MIT", + "dependencies": { + "cssnano-preset-default": "^6.1.2", + "lilconfig": "^3.1.1" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-preset-advanced": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", + "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", + "license": "MIT", + "dependencies": { + "autoprefixer": "^10.4.19", + "browserslist": "^4.23.0", + "cssnano-preset-default": "^6.1.2", + "postcss-discard-unused": "^6.0.5", + "postcss-merge-idents": "^6.0.3", + "postcss-reduce-idents": "^6.0.3", + "postcss-zindex": "^6.0.2" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-preset-default": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", + "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^4.0.2", + "postcss-calc": "^9.0.1", + "postcss-colormin": "^6.1.0", + "postcss-convert-values": "^6.1.0", + "postcss-discard-comments": "^6.0.2", + "postcss-discard-duplicates": "^6.0.3", + "postcss-discard-empty": "^6.0.3", + "postcss-discard-overridden": "^6.0.2", + "postcss-merge-longhand": "^6.0.5", + "postcss-merge-rules": "^6.1.1", + "postcss-minify-font-values": "^6.1.0", + "postcss-minify-gradients": "^6.0.3", + "postcss-minify-params": "^6.1.0", + "postcss-minify-selectors": "^6.0.4", + "postcss-normalize-charset": "^6.0.2", + "postcss-normalize-display-values": "^6.0.2", + "postcss-normalize-positions": "^6.0.2", + "postcss-normalize-repeat-style": "^6.0.2", + "postcss-normalize-string": "^6.0.2", + "postcss-normalize-timing-functions": "^6.0.2", + "postcss-normalize-unicode": "^6.1.0", + "postcss-normalize-url": "^6.0.2", + "postcss-normalize-whitespace": "^6.0.2", + "postcss-ordered-values": "^6.0.2", + "postcss-reduce-initial": "^6.1.0", + "postcss-reduce-transforms": "^6.0.2", + "postcss-svgo": "^6.0.3", + "postcss-unique-selectors": "^6.0.4" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-utils": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", + "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "license": "CC0-1.0" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "license": "BSD-2-Clause", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "license": "MIT", + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT" + }, + "node_modules/detect-port": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", + "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==", + "license": "MIT", + "dependencies": { + "address": "^1.0.1", + "debug": "4" + }, + "bin": { + "detect": "bin/detect-port.js", + "detect-port": "bin/detect-port.js" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "license": "MIT", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port-alt/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/detect-port-alt/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "license": "MIT", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "license": "MIT", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dot-prop/node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.68", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.68.tgz", + "integrity": "sha512-FgMdJlma0OzUYlbrtZ4AeXjKxKPk6KT8WOP8BjcqxWtlg8qyJQjRzPJzUtUn5GBg1oQ26hFs7HOOHJMYiJRnvQ==", + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/emojilib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", + "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/emoticon": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.1.0.tgz", + "integrity": "sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "license": "MIT" + }, + "node_modules/esast-util-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", + "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esast-util-from-js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", + "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "acorn": "^8.0.0", + "esast-util-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", + "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-util-attach-comments": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", + "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-build-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", + "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-walker": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-scope": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", + "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-to-js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", + "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "astring": "^1.8.0", + "source-map": "^0.7.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-value-to-estree": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.2.1.tgz", + "integrity": "sha512-Vt2UOjyPbNQQgT5eJh+K5aATti0OjCIAGc9SgMdOFYbohuifsWclR74l0iZTJwePMgWYdX1hlVS+dedH9XV8kw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/remcohaszing" + } + }, + "node_modules/estree-util-visit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", + "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eta": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/eta/-/eta-2.2.0.tgz", + "integrity": "sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "url": "https://github.com/eta-dev/eta?sponsor=1" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eval": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", + "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", + "dependencies": { + "@types/node": "*", + "require-like": ">= 0.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/express": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.10", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", + "license": "MIT" + }, + "node_modules/express/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fault": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", + "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", + "license": "MIT", + "dependencies": { + "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/feed": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", + "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", + "license": "MIT", + "dependencies": { + "xml-js": "^1.6.11" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/file-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/file-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "license": "MIT", + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "license": "MIT", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "license": "MIT", + "engines": { + "node": ">= 14.17" + } + }, + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", + "license": "Unlicense" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "license": "ISC" + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/github-slugger": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", + "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", + "license": "ISC" + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause" + }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "license": "MIT", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-dirs/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "license": "MIT", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "license": "MIT", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.1.0.tgz", + "integrity": "sha512-FQoVQnqcdk4hVM4JN1eromaun4iuS34oStkdlLENLdpULsuQcTyXj8w7ayhuUfPwEYZ1ZOooOTT6fdA9Vmx/RA==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/got/node_modules/@sindresorhus/is": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "license": "MIT", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/gray-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/gray-matter/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.1.0.tgz", + "integrity": "sha512-QLdzI9IIO1Jg7f9GT1gXpPpXArAn6cS31R1eEZqz08Gc+uQ8/XiqHWt17Fiw+2p6oTTIq5GXEpQkAlA88YRl/Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-yarn": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", + "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.2.tgz", + "integrity": "sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^9.0.0", + "property-information": "^6.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", + "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-from-parse5": "^8.0.0", + "hast-util-to-parse5": "^8.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "parse5": "^7.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz", + "integrity": "sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-attach-comments": "^3.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^0.4.0", + "unist-util-position": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree/node_modules/inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", + "license": "MIT" + }, + "node_modules/hast-util-to-estree/node_modules/style-to-object": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", + "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.1.1" + } + }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.2.tgz", + "integrity": "sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", + "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.0.tgz", + "integrity": "sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "license": "MIT" + }, + "node_modules/html-minifier-terser": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", + "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "~5.3.2", + "commander": "^10.0.0", + "entities": "^4.4.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.15.1" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz", + "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==", + "license": "MIT", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/html-webpack-plugin/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/html-webpack-plugin/node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "license": "BSD-2-Clause" + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "license": "MIT" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", + "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/http2-wrapper": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz", + "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==", + "license": "MIT", + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=16.x" + } + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/infima": { + "version": "0.2.0-alpha.45", + "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.45.tgz", + "integrity": "sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/inline-style-parser": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", + "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", + "license": "MIT" + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ipaddr.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "license": "MIT", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "license": "MIT", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-npm": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", + "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-yarn-global": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", + "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/joi": { + "version": "17.13.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", + "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/latest-version": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", + "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", + "license": "MIT", + "dependencies": { + "package-json": "^8.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/launch-editor": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", + "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "license": "MIT", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "license": "MIT" + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/markdown-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", + "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-directive": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz", + "integrity": "sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", + "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/mdast-util-frontmatter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", + "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "escape-string-regexp": "^5.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", + "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", + "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", + "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz", + "integrity": "sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "license": "CC0-1.0" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "license": "Unlicense", + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromark": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz", + "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz", + "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-directive": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz", + "integrity": "sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "parse-entities": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-directive/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-directive/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-directive/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-frontmatter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", + "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", + "license": "MIT", + "dependencies": { + "fault": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.0.tgz", + "integrity": "sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-mdx-expression": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz", + "integrity": "sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-expression/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-mdx-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.1.tgz", + "integrity": "sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==", + "license": "MIT", + "dependencies": { + "@types/acorn": "^4.0.0", + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-mdx-md": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", + "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", + "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "license": "MIT", + "dependencies": { + "acorn": "^8.0.0", + "acorn-jsx": "^5.0.0", + "micromark-extension-mdx-expression": "^3.0.0", + "micromark-extension-mdx-jsx": "^3.0.0", + "micromark-extension-mdx-md": "^2.0.0", + "micromark-extension-mdxjs-esm": "^3.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", + "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-destination/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-destination/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-factory-mdx-expression": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.2.tgz", + "integrity": "sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-factory-space": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", + "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-space/node_modules/micromark-util-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-character": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", + "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-character/node_modules/micromark-util-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-events-to-acorn": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz", + "integrity": "sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/acorn": "^4.0.0", + "@types/estree": "^1.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-util-events-to-acorn/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-normalize-identifier/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.3.tgz", + "integrity": "sha512-VXJJuNxYWSoYL6AJ6OQECCFGhIU2GGHMw8tahogePBrjkG8aCCas3ibkp7RnVOSTClg2is05/R7maAhF1XyQMg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-symbol": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", + "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz", + "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "license": "MIT", + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", + "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", + "license": "MIT", + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-emoji": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz", + "integrity": "sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.6.0", + "char-regex": "^1.0.2", + "emojilib": "^2.4.0", + "skin-tone": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==", + "license": "MIT" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/null-loader": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz", + "integrity": "sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/null-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/null-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/null-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/null-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "license": "MIT" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "license": "MIT", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", + "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", + "license": "MIT", + "dependencies": { + "got": "^12.1.0", + "registry-auth-token": "^5.0.1", + "registry-url": "^6.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-entities": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", + "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-numeric-range": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", + "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==", + "license": "ISC" + }, + "node_modules/parse5": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "license": "MIT", + "dependencies": { + "entities": "^4.5.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "license": "(WTFPL OR MIT)" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", + "license": "MIT", + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "license": "MIT", + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz", + "integrity": "sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-attribute-case-insensitive/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-calc": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", + "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.6.tgz", + "integrity": "sha512-wLXvm8RmLs14Z2nVpB4CWlnvaWPRcOZFltJSlcbYwSJ1EDZKsKDhPKIMecCnuU054KSmlmubkqczmm6qBPCBhA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-10.0.0.tgz", + "integrity": "sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-10.0.0.tgz", + "integrity": "sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-colormin": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", + "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0", + "colord": "^2.9.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-convert-values": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", + "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-custom-media": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.5.tgz", + "integrity": "sha512-SQHhayVNgDvSAdX9NQ/ygcDQGEY+aSF4b/96z7QUX6mqL5yl/JgG/DywcF6fW9XbnCRE+aVYk+9/nqGuzOPWeQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.4", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/media-query-list-parser": "^4.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-properties": { + "version": "14.0.4", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.4.tgz", + "integrity": "sha512-QnW8FCCK6q+4ierwjnmXF9Y9KF8q0JkbgVfvQEMa93x1GT8FvOiUevWCN2YLaOWyByeDX8S6VFbZEeWoAoXs2A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.4", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.4.tgz", + "integrity": "sha512-ASOXqNvDCE0dAJ/5qixxPeL1aOVGHGW2JwSy7HyjWNbnWTQCl+fDc968HY1jCmZI0+BaYT5CxsOiUhavpG/7eg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.4", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz", + "integrity": "sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-discard-comments": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", + "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", + "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-empty": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", + "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", + "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-unused": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz", + "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.0.tgz", + "integrity": "sha512-JkIGah3RVbdSEIrcobqj4Gzq0h53GG4uqDPsho88SgY84WnpkTpI0k50MFK/sX7XqVisZ6OqUfFnoUO6m1WWdg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz", + "integrity": "sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-visible/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-focus-within": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz", + "integrity": "sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-6.0.0.tgz", + "integrity": "sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-image-set-function": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz", + "integrity": "sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-lab-function": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.6.tgz", + "integrity": "sha512-HPwvsoK7C949vBZ+eMyvH2cQeMr3UREoHvbtra76/UhDuiViZH6pir+z71UaJQohd7VDSVUdR6TkWYKExEc9aQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-loader": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz", + "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^8.3.5", + "jiti": "^1.20.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.0.0.tgz", + "integrity": "sha512-HpIdsdieClTjXLOyYdUPAX/XQASNIwdKt5hoZW08ZOAiI+tbV0ta1oclkpVkW5ANU+xJvk3KkA0FejkjGLXUkg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-merge-idents": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz", + "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==", + "license": "MIT", + "dependencies": { + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", + "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^6.1.1" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-merge-rules": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", + "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^4.0.2", + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", + "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", + "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", + "license": "MIT", + "dependencies": { + "colord": "^2.9.3", + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-params": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", + "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", + "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.1.0.tgz", + "integrity": "sha512-rm0bdSv4jC3BDma3s9H19ZddW0aHX6EoqwDYU2IfZhRN+53QrufTRo2IdkAbRqLx4R2IYbZnbjKKxg4VN5oU9Q==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nesting": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.1.tgz", + "integrity": "sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-resolve-nested": "^3.0.0", + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.0.0.tgz", + "integrity": "sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/postcss-nesting/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/postcss-nesting/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", + "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", + "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", + "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", + "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-string": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", + "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", + "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", + "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-url": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", + "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", + "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz", + "integrity": "sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-ordered-values": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", + "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", + "license": "MIT", + "dependencies": { + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-6.0.0.tgz", + "integrity": "sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-10.0.0.tgz", + "integrity": "sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-preset-env": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.1.1.tgz", + "integrity": "sha512-wqqsnBFD6VIwcHHRbhjTOcOi4qRVlB26RwSr0ordPj7OubRRxdWebv/aLjKLRR8zkZrbxZyuus03nOIgC5elMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/postcss-cascade-layers": "^5.0.1", + "@csstools/postcss-color-function": "^4.0.6", + "@csstools/postcss-color-mix-function": "^3.0.6", + "@csstools/postcss-content-alt-text": "^2.0.4", + "@csstools/postcss-exponential-functions": "^2.0.5", + "@csstools/postcss-font-format-keywords": "^4.0.0", + "@csstools/postcss-gamut-mapping": "^2.0.6", + "@csstools/postcss-gradients-interpolation-method": "^5.0.6", + "@csstools/postcss-hwb-function": "^4.0.6", + "@csstools/postcss-ic-unit": "^4.0.0", + "@csstools/postcss-initial": "^2.0.0", + "@csstools/postcss-is-pseudo-class": "^5.0.1", + "@csstools/postcss-light-dark-function": "^2.0.7", + "@csstools/postcss-logical-float-and-clear": "^3.0.0", + "@csstools/postcss-logical-overflow": "^2.0.0", + "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", + "@csstools/postcss-logical-resize": "^3.0.0", + "@csstools/postcss-logical-viewport-units": "^3.0.3", + "@csstools/postcss-media-minmax": "^2.0.5", + "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.4", + "@csstools/postcss-nested-calc": "^4.0.0", + "@csstools/postcss-normalize-display-values": "^4.0.0", + "@csstools/postcss-oklab-function": "^4.0.6", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/postcss-random-function": "^1.0.1", + "@csstools/postcss-relative-color-syntax": "^3.0.6", + "@csstools/postcss-scope-pseudo-class": "^4.0.1", + "@csstools/postcss-sign-functions": "^1.1.0", + "@csstools/postcss-stepped-value-functions": "^4.0.5", + "@csstools/postcss-text-decoration-shorthand": "^4.0.1", + "@csstools/postcss-trigonometric-functions": "^4.0.5", + "@csstools/postcss-unset-value": "^4.0.0", + "autoprefixer": "^10.4.19", + "browserslist": "^4.23.1", + "css-blank-pseudo": "^7.0.1", + "css-has-pseudo": "^7.0.1", + "css-prefers-color-scheme": "^10.0.0", + "cssdb": "^8.2.1", + "postcss-attribute-case-insensitive": "^7.0.1", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^7.0.6", + "postcss-color-hex-alpha": "^10.0.0", + "postcss-color-rebeccapurple": "^10.0.0", + "postcss-custom-media": "^11.0.5", + "postcss-custom-properties": "^14.0.4", + "postcss-custom-selectors": "^8.0.4", + "postcss-dir-pseudo-class": "^9.0.1", + "postcss-double-position-gradients": "^6.0.0", + "postcss-focus-visible": "^10.0.1", + "postcss-focus-within": "^9.0.1", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^6.0.0", + "postcss-image-set-function": "^7.0.0", + "postcss-lab-function": "^7.0.6", + "postcss-logical": "^8.0.0", + "postcss-nesting": "^13.0.1", + "postcss-opacity-percentage": "^3.0.0", + "postcss-overflow-shorthand": "^6.0.0", + "postcss-page-break": "^3.0.4", + "postcss-place": "^10.0.0", + "postcss-pseudo-class-any-link": "^10.0.1", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^8.0.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz", + "integrity": "sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-reduce-idents": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz", + "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", + "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", + "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz", + "integrity": "sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-selector-not/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-sort-media-queries": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz", + "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==", + "license": "MIT", + "dependencies": { + "sort-css-media-queries": "2.2.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.4.23" + } + }, + "node_modules/postcss-svgo": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", + "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^3.2.0" + }, + "engines": { + "node": "^14 || ^16 || >= 18" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", + "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/postcss-zindex": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz", + "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", + "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/prism-react-renderer": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.4.0.tgz", + "integrity": "sha512-327BsVCD/unU4CNLZTWVHyUHKnsqcvj2qbPlQ8MiBE2eq2rgctjigPA1Gp9HLF83kZ20zNN6jgizHJeEsyFYOw==", + "license": "MIT", + "dependencies": { + "@types/prismjs": "^1.26.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.0.0" + } + }, + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "license": "ISC" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", + "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", + "license": "MIT", + "dependencies": { + "escape-goat": "^4.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "license": "MIT", + "dependencies": { + "inherits": "~2.0.3" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dev-utils/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/react-dev-utils/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-error-overlay": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==", + "license": "MIT" + }, + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", + "license": "MIT" + }, + "node_modules/react-helmet-async": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", + "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.12.5", + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.2.0", + "shallowequal": "^1.1.0" + }, + "peerDependencies": { + "react": "^16.6.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-json-view-lite": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-1.5.0.tgz", + "integrity": "sha512-nWqA1E4jKPklL2jvHWs6s+7Na0qNgw9HCP6xehdQJeg6nPBTFZgGwyko9Q0oj+jQWKTTVRS30u0toM5wiuL3iw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-loadable": { + "name": "@docusaurus/react-loadable", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", + "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", + "license": "MIT", + "dependencies": { + "@types/react": "*" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-loadable-ssr-addon-v5-slorber": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", + "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.3" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "react-loadable": "*", + "webpack": ">=4.41.1 || 5.x" + } + }, + "node_modules/react-router": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", + "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-router-config": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", + "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2" + }, + "peerDependencies": { + "react": ">=15", + "react-router": ">=5" + } + }, + "node_modules/react-router-dom": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", + "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.3.4", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reading-time": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz", + "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==", + "license": "MIT" + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/recma-build-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", + "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-build-jsx": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz", + "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==", + "license": "MIT", + "dependencies": { + "acorn-jsx": "^5.0.0", + "estree-util-to-js": "^2.0.0", + "recma-parse": "^1.0.0", + "recma-stringify": "^1.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", + "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "esast-util-from-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", + "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-to-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "license": "MIT", + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/registry-auth-token": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.3.tgz", + "integrity": "sha512-1bpc9IyC+e+CNFRaWyn77tk4xGG4PPUyfakSmA6F6cvUDjrm58dfyJ3II+9yb10EDkHoy1LaPSmHaWLOH3m6HA==", + "license": "MIT", + "dependencies": { + "@pnpm/npm-conf": "^2.1.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/registry-url": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", + "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", + "license": "MIT", + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.0.2" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-recma": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", + "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "hast-util-to-estree": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remark": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/remark/-/remark-15.0.1.tgz", + "integrity": "sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-directive": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.0.tgz", + "integrity": "sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-directive": "^3.0.0", + "micromark-extension-directive": "^3.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-emoji": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-4.0.1.tgz", + "integrity": "sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.2", + "emoticon": "^4.0.1", + "mdast-util-find-and-replace": "^3.0.1", + "node-emoji": "^2.1.0", + "unified": "^11.0.4" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/remark-frontmatter": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", + "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-frontmatter": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", + "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-import-partial": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/remark-import-partial/-/remark-import-partial-0.0.2.tgz", + "integrity": "sha512-HuIcpGITU/PK+fZvYYamayCH/jlsoB2Uxj1QaGBgTYtcpozvJQth+PKp9NUZpksUldGAmJf59IyMJgczMpbhwg==", + "license": "MIT", + "dependencies": { + "unist-util-visit": "2.0.2" + } + }, + "node_modules/remark-import-partial/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/remark-import-partial/node_modules/unist-util-is": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-import-partial/node_modules/unist-util-visit": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.2.tgz", + "integrity": "sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-import-partial/node_modules/unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", + "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", + "license": "MIT", + "dependencies": { + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz", + "integrity": "sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "license": "MIT", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/renderkid/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/renderkid/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-like": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", + "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==", + "engines": { + "node": "*" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "license": "MIT" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", + "license": "MIT" + }, + "node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "license": "MIT", + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rtl-detect": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.1.2.tgz", + "integrity": "sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==", + "license": "BSD-3-Clause" + }, + "node_modules/rtlcss": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz", + "integrity": "sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==", + "license": "MIT", + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0", + "postcss": "^8.4.21", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "rtlcss": "bin/rtlcss.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "license": "ISC" + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/search-insights": { + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz", + "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==", + "license": "MIT", + "peer": true + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "license": "MIT", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", + "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-handler": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.6.tgz", + "integrity": "sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==", + "license": "MIT", + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "mime-types": "2.1.18", + "minimatch": "3.1.2", + "path-is-inside": "1.0.2", + "path-to-regexp": "3.3.0", + "range-parser": "1.2.0" + } + }, + "node_modules/serve-handler/node_modules/path-to-regexp": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz", + "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==", + "license": "MIT" + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "license": "ISC" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "license": "ISC" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "license": "BSD-3-Clause", + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/sitemap": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.2.tgz", + "integrity": "sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==", + "license": "MIT", + "dependencies": { + "@types/node": "^17.0.5", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.2.4" + }, + "bin": { + "sitemap": "dist/cli.js" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=5.6.0" + } + }, + "node_modules/sitemap/node_modules/@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", + "license": "MIT" + }, + "node_modules/skin-tone": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", + "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", + "license": "MIT", + "dependencies": { + "unicode-emoji-modifier-base": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "license": "MIT", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/sort-css-media-queries": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", + "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==", + "license": "MIT", + "engines": { + "node": ">= 6.3.0" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/srcset": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", + "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", + "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==", + "license": "MIT" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "license": "BSD-2-Clause", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-to-object": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", + "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.4" + } + }, + "node_modules/stylehacks": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", + "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "license": "MIT" + }, + "node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", + "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "license": "MIT" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "license": "MIT" + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", + "license": "MIT" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-emoji-modifier-base": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", + "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unique-string": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "license": "MIT", + "dependencies": { + "crypto-random-string": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", + "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/update-notifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", + "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", + "license": "BSD-2-Clause", + "dependencies": { + "boxen": "^7.0.0", + "chalk": "^5.0.1", + "configstore": "^6.0.0", + "has-yarn": "^3.0.0", + "import-lazy": "^4.0.0", + "is-ci": "^3.0.1", + "is-installed-globally": "^0.4.0", + "is-npm": "^6.0.0", + "is-yarn-global": "^0.4.0", + "latest-version": "^7.0.0", + "pupa": "^3.1.0", + "semver": "^7.3.7", + "semver-diff": "^4.0.0", + "xdg-basedir": "^5.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/boxen": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", + "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^7.0.1", + "chalk": "^5.2.0", + "cli-boxes": "^3.0.0", + "string-width": "^5.1.2", + "type-fest": "^2.13.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/camelcase": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true + } + } + }, + "node_modules/url-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/url-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/url-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/url-loader/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/url-loader/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/url-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "license": "MIT" + }, + "node_modules/utility-types": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", + "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==", + "license": "MIT" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", + "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "license": "MIT", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/webpack": { + "version": "5.97.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.0.tgz", + "integrity": "sha512-CWT8v7ShSfj7tGs4TLRtaOLmOCPWhoKEvp+eA7FVx8Xrjb3XfT0aXdxDItnRZmE8sHcH+a8ayDrJCOjXKxVFfQ==", + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", + "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", + "license": "MIT", + "dependencies": { + "@discoveryjs/json-ext": "0.5.7", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "commander": "^7.2.0", + "debounce": "^1.2.1", + "escape-string-regexp": "^4.0.0", + "gzip-size": "^6.0.0", + "html-escaper": "^2.0.2", + "opener": "^1.5.2", + "picocolors": "^1.0.0", + "sirv": "^2.0.3", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "license": "MIT", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", + "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.4", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/webpack/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpackbar": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-6.0.1.tgz", + "integrity": "sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q==", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "consola": "^3.2.3", + "figures": "^3.2.0", + "markdown-table": "^2.0.0", + "pretty-time": "^1.1.0", + "std-env": "^3.7.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=14.21.3" + }, + "peerDependencies": { + "webpack": "3 || 4 || 5" + } + }, + "node_modules/webpackbar/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/webpackbar/node_modules/markdown-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", + "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", + "license": "MIT", + "dependencies": { + "repeat-string": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/webpackbar/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpackbar/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/widest-line": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "license": "MIT", + "dependencies": { + "string-width": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xdg-basedir": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", + "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xml-js": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", + "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", + "license": "MIT", + "dependencies": { + "sax": "^1.2.4" + }, + "bin": { + "xml-js": "bin/cli.js" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/book2/package.json b/book2/package.json new file mode 100644 index 0000000000..3d6d4006b0 --- /dev/null +++ b/book2/package.json @@ -0,0 +1,48 @@ +{ + "name": "book-2", + "version": "0.0.0", + "private": true, + "scripts": { + "docusaurus": "docusaurus", + "start": "docusaurus start", + "build": "docusaurus build", + "swizzle": "docusaurus swizzle", + "deploy": "docusaurus deploy", + "clear": "docusaurus clear", + "serve": "docusaurus serve", + "write-translations": "docusaurus write-translations", + "write-heading-ids": "docusaurus write-heading-ids", + "typecheck": "tsc" + }, + "dependencies": { + "@docusaurus/core": "3.6.3", + "@docusaurus/plugin-content-docs": "^3.6.3", + "@docusaurus/preset-classic": "3.6.3", + "@mdx-js/react": "^3.0.0", + "clsx": "^2.0.0", + "prism-react-renderer": "^2.3.0", + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "devDependencies": { + "@docusaurus/module-type-aliases": "3.6.3", + "@docusaurus/tsconfig": "3.6.3", + "@docusaurus/types": "3.6.3", + "typescript": "~5.6.2" + }, + "browserslist": { + "production": [ + ">0.5%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 3 chrome version", + "last 3 firefox version", + "last 5 safari version" + ] + }, + "engines": { + "node": ">=18.0" + } +} diff --git a/book2/sidebars.ts b/book2/sidebars.ts new file mode 100644 index 0000000000..b2c0ce6812 --- /dev/null +++ b/book2/sidebars.ts @@ -0,0 +1,108 @@ +import type {SidebarsConfig} from '@docusaurus/plugin-content-docs'; + +// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) + +/** + * Creating a sidebar enables you to: + - create an ordered group of docs + - render a sidebar for each doc of that group + - provide next/previous navigation + + The sidebars can be generated from the filesystem, or explicitly defined here. + + Create as many sidebars as you want. + */ +const sidebars: SidebarsConfig = { + docs: [ + "introduction", + { + type: 'category', + label: 'Getting Started', + items: [ + 'getting-started/install', + 'getting-started/quickstart', + 'getting-started/hardware-requirements', + 'getting-started/project-template' + ], + collapsed: false, + }, + { + type: 'category', + label: 'Writing Programs', + items: [ + 'writing-programs/basics', + 'writing-programs/compiling', + 'writing-programs/cycle-tracking', + 'writing-programs/inputs-and-outputs', + 'writing-programs/patched-crates', + 'writing-programs/precompiles', + 'writing-programs/proof-aggregation', + 'writing-programs/setup' + ], + collapsed: true, + }, + { + type: 'category', + label: 'Generating Proofs', + items: [ + "generating-proofs/basics", + "generating-proofs/setup", + "generating-proofs/proof-types", + "generating-proofs/recommended-workflow", + "generating-proofs/sp1-sdk-faq", + { + type: 'category', + label: 'Hardware Acceleration', + link: { type: 'doc', id: 'generating-proofs/hardware-acceleration' }, + items: [ + "generating-proofs/hardware-acceleration", + "generating-proofs/hardware-acceleration/avx", + "generating-proofs/hardware-acceleration/cuda" + ], + }, + { + type: 'category', + label: 'Prover Network', + link: { type: 'doc', id: 'generating-proofs/prover-network' }, + items: [ + "generating-proofs/prover-network/key-setup", + "generating-proofs/prover-network/usage", + "generating-proofs/prover-network/versions" + ], + }, + "generating-proofs/advanced", + ], + collapsed: true, + }, + { + type: 'category', + label: 'Verification', + items: [ + 'verification/off-chain-verification', + { + type: 'category', + label: 'On-Chain Verification', + items: [ + "verification/onchain/getting-started", + "verification/onchain/contract-addresses", + "verification/onchain/solidity-sdk" + ], + }, + ] + }, + { + type: 'category', + label: 'Developers', + items: [ + "developers/common-issues", + "developers/usage-in-ci", + "developers/building-circuit-artifacts", + "developers/rv32im-specification", + ] + }, + 'what-is-a-zkvm', + 'why-use-sp1', + ], +}; + +export default sidebars; diff --git a/book2/src/css/custom.css b/book2/src/css/custom.css new file mode 100644 index 0000000000..2bc6a4cfde --- /dev/null +++ b/book2/src/css/custom.css @@ -0,0 +1,30 @@ +/** + * Any CSS included here will be global. The classic template + * bundles Infima by default. Infima is a CSS framework designed to + * work well for content-centric websites. + */ + +/* You can override the default Infima variables here. */ +:root { + --ifm-color-primary: #2e8555; + --ifm-color-primary-dark: #29784c; + --ifm-color-primary-darker: #277148; + --ifm-color-primary-darkest: #205d3b; + --ifm-color-primary-light: #33925d; + --ifm-color-primary-lighter: #359962; + --ifm-color-primary-lightest: #3cad6e; + --ifm-code-font-size: 95%; + --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); +} + +/* For readability concerns, you should choose a lighter palette in dark mode. */ +[data-theme='dark'] { + --ifm-color-primary: #25c2a0; + --ifm-color-primary-dark: #21af90; + --ifm-color-primary-darker: #1fa588; + --ifm-color-primary-darkest: #1a8870; + --ifm-color-primary-light: #29d5b0; + --ifm-color-primary-lighter: #32d8b4; + --ifm-color-primary-lightest: #4fddbf; + --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); +} diff --git a/book2/src/pages/index.tsx b/book2/src/pages/index.tsx new file mode 100644 index 0000000000..a45a79231e --- /dev/null +++ b/book2/src/pages/index.tsx @@ -0,0 +1,11 @@ +import { Redirect } from "@docusaurus/router"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import React from "react"; + +const Home = () => { + const url = useBaseUrl("/docs/introduction"); + return ; +}; + +export default Home; + diff --git a/book2/static/.nojekyll b/book2/static/.nojekyll new file mode 100644 index 0000000000..e69de29bb2 diff --git a/book2/static/crates_zkvm_lib_src_lib.rs.mdx b/book2/static/crates_zkvm_lib_src_lib.rs.mdx new file mode 100644 index 0000000000..e552f31364 --- /dev/null +++ b/book2/static/crates_zkvm_lib_src_lib.rs.mdx @@ -0,0 +1,133 @@ +```rust +//! Syscalls for the SP1 zkVM. +//! +//! Documentation for these syscalls can be found in the zkVM entrypoint +//! `sp1_zkvm::syscalls` module. + +pub mod bls12381; +pub mod bn254; +pub mod ed25519; +pub mod io; +pub mod secp256k1; +pub mod unconstrained; +pub mod utils; +#[cfg(feature = "verify")] +pub mod verify; + +extern "C" { + /// Halts the program with the given exit code. + pub fn syscall_halt(exit_code: u8) -> !; + + /// Writes the bytes in the given buffer to the given file descriptor. + pub fn syscall_write(fd: u32, write_buf: *const u8, nbytes: usize); + + /// Reads the bytes from the given file descriptor into the given buffer. + pub fn syscall_read(fd: u32, read_buf: *mut u8, nbytes: usize); + + /// Executes the SHA-256 extend operation on the given word array. + pub fn syscall_sha256_extend(w: *mut [u32; 64]); + + /// Executes the SHA-256 compress operation on the given word array and a given state. + pub fn syscall_sha256_compress(w: *mut [u32; 64], state: *mut [u32; 8]); + + /// Executes an Ed25519 curve addition on the given points. + pub fn syscall_ed_add(p: *mut [u32; 16], q: *const [u32; 16]); + + /// Executes an Ed25519 curve decompression on the given point. + pub fn syscall_ed_decompress(point: &mut [u8; 64]); + + /// Executes an Sepc256k1 curve addition on the given points. + pub fn syscall_secp256k1_add(p: *mut [u32; 16], q: *const [u32; 16]); + + /// Executes an Secp256k1 curve doubling on the given point. + pub fn syscall_secp256k1_double(p: *mut [u32; 16]); + + /// Executes an Secp256k1 curve decompression on the given point. + pub fn syscall_secp256k1_decompress(point: &mut [u8; 64], is_odd: bool); + + /// Executes a Bn254 curve addition on the given points. + pub fn syscall_bn254_add(p: *mut [u32; 16], q: *const [u32; 16]); + + /// Executes a Bn254 curve doubling on the given point. + pub fn syscall_bn254_double(p: *mut [u32; 16]); + + /// Executes a BLS12-381 curve addition on the given points. + pub fn syscall_bls12381_add(p: *mut [u32; 24], q: *const [u32; 24]); + + /// Executes a BLS12-381 curve doubling on the given point. + pub fn syscall_bls12381_double(p: *mut [u32; 24]); + + /// Executes the Keccak-256 permutation on the given state. + pub fn syscall_keccak_permute(state: *mut [u64; 25]); + + /// Executes an uint256 multiplication on the given inputs. + pub fn syscall_uint256_mulmod(x: *mut [u32; 8], y: *const [u32; 8]); + + /// Enters unconstrained mode. + pub fn syscall_enter_unconstrained() -> bool; + + /// Exits unconstrained mode. + pub fn syscall_exit_unconstrained(); + + /// Defers the verification of a valid SP1 zkVM proof. + pub fn syscall_verify_sp1_proof(vk_digest: &[u32; 8], pv_digest: &[u8; 32]); + + /// Returns the length of the next element in the hint stream. + pub fn syscall_hint_len() -> usize; + + /// Reads the next element in the hint stream into the given buffer. + pub fn syscall_hint_read(ptr: *mut u8, len: usize); + + /// Allocates a buffer aligned to the given alignment. + pub fn sys_alloc_aligned(bytes: usize, align: usize) -> *mut u8; + + /// Decompresses a BLS12-381 point. + pub fn syscall_bls12381_decompress(point: &mut [u8; 96], is_odd: bool); + + /// Computes a big integer operation with a modulus. + pub fn sys_bigint( + result: *mut [u32; 8], + op: u32, + x: *const [u32; 8], + y: *const [u32; 8], + modulus: *const [u32; 8], + ); + + /// Executes a BLS12-381 field addition on the given inputs. + pub fn syscall_bls12381_fp_addmod(p: *mut u32, q: *const u32); + + /// Executes a BLS12-381 field subtraction on the given inputs. + pub fn syscall_bls12381_fp_submod(p: *mut u32, q: *const u32); + + /// Executes a BLS12-381 field multiplication on the given inputs. + pub fn syscall_bls12381_fp_mulmod(p: *mut u32, q: *const u32); + + /// Executes a BLS12-381 Fp2 addition on the given inputs. + pub fn syscall_bls12381_fp2_addmod(p: *mut u32, q: *const u32); + + /// Executes a BLS12-381 Fp2 subtraction on the given inputs. + pub fn syscall_bls12381_fp2_submod(p: *mut u32, q: *const u32); + + /// Executes a BLS12-381 Fp2 multiplication on the given inputs. + pub fn syscall_bls12381_fp2_mulmod(p: *mut u32, q: *const u32); + + /// Executes a BN254 field addition on the given inputs. + pub fn syscall_bn254_fp_addmod(p: *mut u32, q: *const u32); + + /// Executes a BN254 field subtraction on the given inputs. + pub fn syscall_bn254_fp_submod(p: *mut u32, q: *const u32); + + /// Executes a BN254 field multiplication on the given inputs. + pub fn syscall_bn254_fp_mulmod(p: *mut u32, q: *const u32); + + /// Executes a BN254 Fp2 addition on the given inputs. + pub fn syscall_bn254_fp2_addmod(p: *mut u32, q: *const u32); + + /// Executes a BN254 Fp2 subtraction on the given inputs. + pub fn syscall_bn254_fp2_submod(p: *mut u32, q: *const u32); + + /// Executes a BN254 Fp2 multiplication on the given inputs. + pub fn syscall_bn254_fp2_mulmod(p: *mut u32, q: *const u32); + +} +``` diff --git a/book2/static/examples_cycle-tracking_program_bin_normal.rs.mdx b/book2/static/examples_cycle-tracking_program_bin_normal.rs.mdx new file mode 100644 index 0000000000..a9dc61d95d --- /dev/null +++ b/book2/static/examples_cycle-tracking_program_bin_normal.rs.mdx @@ -0,0 +1,34 @@ +```rust +#![no_main] +sp1_zkvm::entrypoint!(main); + +#[sp1_derive::cycle_tracker] +pub fn expensive_function(x: usize) -> usize { + let mut y = 1; + for _ in 0..100 { + y *= x; + y %= 7919; + } + y +} + +pub fn main() { + let mut nums = vec![1, 1]; + + // Setup a large vector with Fibonacci-esque numbers. + println!("cycle-tracker-start: setup"); + for _ in 0..100 { + let mut c = nums[nums.len() - 1] + nums[nums.len() - 2]; + c %= 7919; + nums.push(c); + } + println!("cycle-tracker-end: setup"); + + println!("cycle-tracker-start: main-body"); + for i in 0..2 { + let result = expensive_function(nums[nums.len() - i - 1]); + println!("result: {}", result); + } + println!("cycle-tracker-end: main-body"); +} +``` diff --git a/book2/static/examples_fibonacci_program_src_main.rs.mdx b/book2/static/examples_fibonacci_program_src_main.rs.mdx new file mode 100644 index 0000000000..86d550cddf --- /dev/null +++ b/book2/static/examples_fibonacci_program_src_main.rs.mdx @@ -0,0 +1,39 @@ +```rust +//! A simple program that takes a number `n` as input, and writes the `n-1`th and `n`th fibonacci +//! number as an output. + +// These two lines are necessary for the program to properly compile. +// +// Under the hood, we wrap your main function with some extra code so that it behaves properly +// inside the zkVM. +#![no_main] +sp1_zkvm::entrypoint!(main); + +pub fn main() { + // Read an input to the program. + // + // Behind the scenes, this compiles down to a system call which handles reading inputs + // from the prover. + let n = sp1_zkvm::io::read::(); + + // Write n to public input + sp1_zkvm::io::commit(&n); + + // Compute the n'th fibonacci number, using normal Rust code. + let mut a = 0; + let mut b = 1; + for _ in 0..n { + let mut c = a + b; + c %= 7919; // Modulus to prevent overflow. + a = b; + b = c; + } + + // Write the output of the program. + // + // Behind the scenes, this also compiles down to a system call which handles writing + // outputs to the prover. + sp1_zkvm::io::commit(&a); + sp1_zkvm::io::commit(&b); +} +``` diff --git a/book2/static/examples_fibonacci_script_bin_compressed.rs.mdx b/book2/static/examples_fibonacci_script_bin_compressed.rs.mdx new file mode 100644 index 0000000000..4115db7b74 --- /dev/null +++ b/book2/static/examples_fibonacci_script_bin_compressed.rs.mdx @@ -0,0 +1,35 @@ +```rust +use sp1_sdk::{utils, ProverClient, SP1Stdin}; + +/// The ELF we want to execute inside the zkVM. +const ELF: &[u8] = include_bytes!("../../program/elf/riscv32im-succinct-zkvm-elf"); + +fn main() { + // Setup logging. + utils::setup_logger(); + + // Create an input stream and write '500' to it. + let n = 500u32; + let mut stdin = SP1Stdin::new(); + stdin.write(&n); + + // Generate the constant-sized proof for the given program and input. + let client = ProverClient::new(); + let (pk, vk) = client.setup(ELF); + let mut proof = client.prove(&pk, stdin).compressed().run().unwrap(); + + println!("generated proof"); + // Read and verify the output. + let a = proof.public_values.read::(); + let b = proof.public_values.read::(); + println!("a: {}, b: {}", a, b); + + // Verify proof and public values + client.verify(&proof, &vk).expect("verification failed"); + + // Save the proof. + proof.save("compressed-proof-with-pis.bin").expect("saving proof failed"); + + println!("successfully generated and verified proof for the program!") +} +``` diff --git a/book2/static/examples_fibonacci_script_bin_execute.rs.mdx b/book2/static/examples_fibonacci_script_bin_execute.rs.mdx new file mode 100644 index 0000000000..3e808935d2 --- /dev/null +++ b/book2/static/examples_fibonacci_script_bin_execute.rs.mdx @@ -0,0 +1,37 @@ +```rust +use sp1_sdk::{utils, ProverClient, SP1Stdin}; + +/// The ELF we want to execute inside the zkVM. +const ELF: &[u8] = include_bytes!("../../program/elf/riscv32im-succinct-zkvm-elf"); + +fn main() { + // Setup logging. + utils::setup_logger(); + + // Create an input stream and write '500' to it. + let n = 500u32; + + let mut stdin = SP1Stdin::new(); + stdin.write(&n); + + // Only execute the program and get a `SP1PublicValues` object. + let client = ProverClient::new(); + let (mut public_values, execution_report) = client.execute(ELF, stdin).run().unwrap(); + + // Print the total number of cycles executed and the full execution report with a breakdown of + // the RISC-V opcode and syscall counts. + println!( + "Executed program with {} cycles", + execution_report.total_instruction_count() + execution_report.total_syscall_count() + ); + println!("Full execution report:\n{:?}", execution_report); + + // Read and verify the output. + let _ = public_values.read::(); + let a = public_values.read::(); + let b = public_values.read::(); + + println!("a: {}", a); + println!("b: {}", b); +} +``` diff --git a/book2/static/examples_fibonacci_script_bin_groth16_bn254.rs.mdx b/book2/static/examples_fibonacci_script_bin_groth16_bn254.rs.mdx new file mode 100644 index 0000000000..37d7f3f23c --- /dev/null +++ b/book2/static/examples_fibonacci_script_bin_groth16_bn254.rs.mdx @@ -0,0 +1,42 @@ +```rust +use sp1_sdk::{utils, HashableKey, ProverClient, SP1Stdin}; + +/// The ELF we want to execute inside the zkVM. +const ELF: &[u8] = include_bytes!("../../program/elf/riscv32im-succinct-zkvm-elf"); + +fn main() { + // Setup logging. + utils::setup_logger(); + + // Create an input stream and write '500' to it. + let n = 500u32; + + let mut stdin = SP1Stdin::new(); + stdin.write(&n); + + // Set up the pk and vk. + let client = ProverClient::new(); + let (pk, vk) = client.setup(ELF); + println!("vk: {:?}", vk.bytes32()); + + // Generate the Groth16 proof. + let proof = client.prove(&pk, stdin).groth16().run().unwrap(); + println!("generated proof"); + + // Get the public values as bytes. + let public_values = proof.public_values.as_slice(); + println!("public values: 0x{}", hex::encode(public_values)); + + // Get the proof as bytes. + let solidity_proof = proof.bytes(); + println!("proof: 0x{}", hex::encode(solidity_proof)); + + // Verify proof and public values + client.verify(&proof, &vk).expect("verification failed"); + + // Save the proof. + proof.save("fibonacci-groth16.bin").expect("saving proof failed"); + + println!("successfully generated and verified proof for the program!") +} +``` diff --git a/book2/static/examples_fibonacci_script_build.rs.mdx b/book2/static/examples_fibonacci_script_build.rs.mdx new file mode 100644 index 0000000000..a6f5f1636e --- /dev/null +++ b/book2/static/examples_fibonacci_script_build.rs.mdx @@ -0,0 +1,5 @@ +```rust +fn main() { + sp1_build::build_program("../program"); +} +``` diff --git a/book2/static/examples_fibonacci_script_src_main.rs.mdx b/book2/static/examples_fibonacci_script_src_main.rs.mdx new file mode 100644 index 0000000000..0aa64a9583 --- /dev/null +++ b/book2/static/examples_fibonacci_script_src_main.rs.mdx @@ -0,0 +1,56 @@ +```rust +use sp1_sdk::{include_elf, utils, ProverClient, SP1ProofWithPublicValues, SP1Stdin}; + +/// The ELF we want to execute inside the zkVM. +const ELF: &[u8] = include_elf!("fibonacci-program"); + +fn main() { + // Setup logging. + utils::setup_logger(); + + // Create an input stream and write '500' to it. + let n = 1000u32; + + // The input stream that the program will read from using `sp1_zkvm::io::read`. Note that the + // types of the elements in the input stream must match the types being read in the program. + let mut stdin = SP1Stdin::new(); + stdin.write(&n); + + // Create a `ProverClient` method. + let client = ProverClient::new(); + + // Execute the program using the `ProverClient.execute` method, without generating a proof. + let (_, report) = client.execute(ELF, stdin.clone()).run().unwrap(); + println!("executed program with {} cycles", report.total_instruction_count()); + + // Generate the proof for the given program and input. + let (pk, vk) = client.setup(ELF); + let mut proof = client.prove(&pk, stdin).run().unwrap(); + + println!("generated proof"); + + // Read and verify the output. + // + // Note that this output is read from values committed to in the program using + // `sp1_zkvm::io::commit`. + let _ = proof.public_values.read::(); + let a = proof.public_values.read::(); + let b = proof.public_values.read::(); + + println!("a: {}", a); + println!("b: {}", b); + + // Verify proof and public values + client.verify(&proof, &vk).expect("verification failed"); + + // Test a round trip of proof serialization and deserialization. + proof.save("proof-with-pis.bin").expect("saving proof failed"); + let deserialized_proof = + SP1ProofWithPublicValues::load("proof-with-pis.bin").expect("loading proof failed"); + + // Verify the deserialized proof. + client.verify(&deserialized_proof, &vk).expect("verification failed"); + + println!("successfully generated and verified proof for the program!") +} +``` diff --git a/book2/static/examples_groth16_program_src_main.rs.mdx b/book2/static/examples_groth16_program_src_main.rs.mdx new file mode 100644 index 0000000000..6e195f06bf --- /dev/null +++ b/book2/static/examples_groth16_program_src_main.rs.mdx @@ -0,0 +1,30 @@ +```rust +//! A program that verifies a Groth16 proof in SP1. + +#![no_main] +sp1_zkvm::entrypoint!(main); + +use sp1_verifier::Groth16Verifier; + +pub fn main() { + // Read the proof, public values, and vkey hash from the input stream. + let proof = sp1_zkvm::io::read_vec(); + let sp1_public_values = sp1_zkvm::io::read_vec(); + let sp1_vkey_hash: String = sp1_zkvm::io::read(); + + // Verify the groth16 proof. + let groth16_vk = *sp1_verifier::GROTH16_VK_BYTES; + println!("cycle-tracker-start: verify"); + let result = Groth16Verifier::verify(&proof, &sp1_public_values, &sp1_vkey_hash, groth16_vk); + println!("cycle-tracker-end: verify"); + + match result { + Ok(()) => { + println!("Proof is valid"); + } + Err(e) => { + println!("Error verifying proof: {:?}", e); + } + } +} +``` diff --git a/book2/static/examples_groth16_script_src_main.rs.mdx b/book2/static/examples_groth16_script_src_main.rs.mdx new file mode 100644 index 0000000000..7be12e7e3d --- /dev/null +++ b/book2/static/examples_groth16_script_src_main.rs.mdx @@ -0,0 +1,57 @@ +```rust +//! A script that generates a Groth16 proof for the Fibonacci program, and verifies the +//! Groth16 proof in SP1. + +use sp1_sdk::{include_elf, utils, HashableKey, ProverClient, SP1Stdin}; + +/// The ELF for the Groth16 verifier program. +const GROTH16_ELF: &[u8] = include_elf!("groth16-verifier-program"); + +/// The ELF for the Fibonacci program. +const FIBONACCI_ELF: &[u8] = include_elf!("fibonacci-program"); + +/// Generates the proof, public values, and vkey hash for the Fibonacci program in a format that +/// can be read by `sp1-verifier`. +/// +/// Returns the proof bytes, public values, and vkey hash. +fn generate_fibonacci_proof() -> (Vec, Vec, String) { + // Create an input stream and write '20' to it. + let n = 20u32; + + // The input stream that the program will read from using `sp1_zkvm::io::read`. Note that the + // types of the elements in the input stream must match the types being read in the program. + let mut stdin = SP1Stdin::new(); + stdin.write(&n); + + // Create a `ProverClient`. + let client = ProverClient::new(); + + // Generate the groth16 proof for the Fibonacci program. + let (pk, vk) = client.setup(FIBONACCI_ELF); + println!("vk: {:?}", vk.bytes32()); + let proof = client.prove(&pk, stdin).groth16().run().unwrap(); + (proof.bytes(), proof.public_values.to_vec(), vk.bytes32()) +} + +fn main() { + // Setup logging. + utils::setup_logger(); + + // Generate the Fibonacci proof, public values, and vkey hash. + let (fibonacci_proof, fibonacci_public_values, vk) = generate_fibonacci_proof(); + + // Write the proof, public values, and vkey hash to the input stream. + let mut stdin = SP1Stdin::new(); + stdin.write_vec(fibonacci_proof); + stdin.write_vec(fibonacci_public_values); + stdin.write(&vk); + + // Create a `ProverClient`. + let client = ProverClient::new(); + + // Execute the program using the `ProverClient.execute` method, without generating a proof. + let (_, report) = client.execute(GROTH16_ELF, stdin.clone()).run().unwrap(); + println!("executed groth16 program with {} cycles", report.total_instruction_count()); + println!("{}", report); +} +``` diff --git a/book2/static/examples_io_program_src_main.rs.mdx b/book2/static/examples_io_program_src_main.rs.mdx new file mode 100644 index 0000000000..ec0c239891 --- /dev/null +++ b/book2/static/examples_io_program_src_main.rs.mdx @@ -0,0 +1,25 @@ +```rust +#![no_main] +sp1_zkvm::entrypoint!(main); + +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize, Debug, PartialEq)] +struct MyPointUnaligned { + pub x: usize, + pub y: usize, + pub b: bool, +} + +pub fn main() { + let p1 = sp1_zkvm::io::read::(); + println!("Read point: {:?}", p1); + + let p2 = sp1_zkvm::io::read::(); + println!("Read point: {:?}", p2); + + let p3: MyPointUnaligned = MyPointUnaligned { x: p1.x + p2.x, y: p1.y + p2.y, b: p1.b && p2.b }; + println!("Addition of 2 points: {:?}", p3); + sp1_zkvm::io::commit(&p3); +} +``` diff --git a/book2/static/img/favicon.ico b/book2/static/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..fe73ed177aa0be8e28a0eeb32c40528b5fddcb30 GIT binary patch literal 4286 zcmdT|%S%*I9KP*)*vl408EquW76n0zFsNP8Cg?@WYL`Xz2UM$sP$LL>&;ubMs#OtD z;9@k*DK%eVT0Ta{QAW)Nkbx1-eRrx-ANU6&x!Sf;$!ZN`d%5?l>f4KUgU4|(TvQ?Wwi8IYLp zpT|ru5G*n}r*Iv7`!2TlxIv-)xWaffpl1E!q49T7Pg_^bL2TfDck!s-s?dE|VY-7H zly@Fk_{0{BFMHB`kg|=`>yaa|Gb3CC>X!F=lBUAiS zyPo;5U7_GHak1CA4XRW?NT=LTVgad65D)){rvHk4~vAE}wewdQ) z(o=Hd^X}Z>iz#HUDK$m*0vca@Y~$;@#Kt^xe(3LV1>%E1f9V4I;|xBMC!q@O_IKm! zXVw?lk9C!BpCadj44=rm-XEW^&n#I2{F%__BgS3ZF~$b>BBHPOLVP6kI2Y%G`It)& jkp9 Date: Tue, 3 Dec 2024 16:33:23 -0800 Subject: [PATCH 10/36] Revert "chore(docs) migrate to docusaurus" This reverts commit 3917e90c1a149f732e1d2d1f07f162e73265fad7. --- book2/.gitignore | 20 - book2/README.md | 41 - book2/create-markdown-templates.sh | 45 - .../developers/building-circuit-artifacts.md | 8 - book2/docs/developers/common-issues.md | 147 - book2/docs/developers/rv32im-specification.md | 8 - book2/docs/developers/usage-in-ci.md | 27 - book2/docs/generating-proofs/advanced.mdx | 68 - book2/docs/generating-proofs/basics.mdx | 19 - .../hardware-acceleration.md | 7 - .../hardware-acceleration/avx.md | 30 - .../hardware-acceleration/cuda.md | 26 - book2/docs/generating-proofs/proof-types.md | 49 - .../docs/generating-proofs/prover-network.md | 9 - .../prover-network/explorer.png | Bin 167094 -> 0 bytes .../prover-network/key-setup.md | 40 - .../generating-proofs/prover-network/key.png | Bin 10085 -> 0 bytes .../generating-proofs/prover-network/usage.md | 83 - .../prover-network/versions.md | 30 - .../recommended-workflow.mdx | 57 - book2/docs/generating-proofs/setup.md | 38 - book2/docs/generating-proofs/sp1-sdk-faq.md | 15 - .../getting-started/hardware-requirements.md | 41 - book2/docs/getting-started/install.md | 115 - .../docs/getting-started/project-template.md | 5 - book2/docs/getting-started/quickstart.md | 124 - book2/docs/introduction.md | 33 - .../contract-addresses.md | 80 - .../onchain-verification/getting-started.mdx | 34 - .../docs/onchain-verification/solidity-sdk.md | 122 - book2/docs/sp1.png | Bin 66629 -> 0 bytes book2/docs/theme/head.hbs | 6 - .../verification/off-chain-verification.md | 48 - .../onchain/contract-addresses.md | 101 - .../verification/onchain/getting-started.mdx | 35 - .../docs/verification/onchain/solidity-sdk.md | 122 - book2/docs/what-is-a-zkvm.md | 35 - book2/docs/why-use-sp1.md | 46 - book2/docs/writing-programs/basics.mdx | 15 - book2/docs/writing-programs/compiling.mdx | 100 - .../docs/writing-programs/cycle-tracking.mdx | 124 - .../writing-programs/inputs-and-outputs.mdx | 67 - book2/docs/writing-programs/patched-crates.md | 234 - book2/docs/writing-programs/precompiles.mdx | 24 - .../writing-programs/proof-aggregation.md | 58 - book2/docs/writing-programs/setup.md | 50 - book2/docusaurus.config.ts | 113 - book2/package-lock.json | 18242 ---------------- book2/package.json | 48 - book2/sidebars.ts | 108 - book2/src/css/custom.css | 30 - book2/src/pages/index.tsx | 11 - book2/static/.nojekyll | 0 book2/static/crates_zkvm_lib_src_lib.rs.mdx | 133 - ...s_cycle-tracking_program_bin_normal.rs.mdx | 34 - ...examples_fibonacci_program_src_main.rs.mdx | 39 - ...les_fibonacci_script_bin_compressed.rs.mdx | 35 - ...amples_fibonacci_script_bin_execute.rs.mdx | 37 - ..._fibonacci_script_bin_groth16_bn254.rs.mdx | 42 - .../examples_fibonacci_script_build.rs.mdx | 5 - .../examples_fibonacci_script_src_main.rs.mdx | 56 - .../examples_groth16_program_src_main.rs.mdx | 30 - .../examples_groth16_script_src_main.rs.mdx | 57 - .../examples_io_program_src_main.rs.mdx | 25 - book2/static/img/favicon.ico | Bin 4286 -> 0 bytes book2/tsconfig.json | 8 - 66 files changed, 21439 deletions(-) delete mode 100644 book2/.gitignore delete mode 100644 book2/README.md delete mode 100755 book2/create-markdown-templates.sh delete mode 100644 book2/docs/developers/building-circuit-artifacts.md delete mode 100644 book2/docs/developers/common-issues.md delete mode 100644 book2/docs/developers/rv32im-specification.md delete mode 100644 book2/docs/developers/usage-in-ci.md delete mode 100644 book2/docs/generating-proofs/advanced.mdx delete mode 100644 book2/docs/generating-proofs/basics.mdx delete mode 100644 book2/docs/generating-proofs/hardware-acceleration.md delete mode 100644 book2/docs/generating-proofs/hardware-acceleration/avx.md delete mode 100644 book2/docs/generating-proofs/hardware-acceleration/cuda.md delete mode 100644 book2/docs/generating-proofs/proof-types.md delete mode 100644 book2/docs/generating-proofs/prover-network.md delete mode 100644 book2/docs/generating-proofs/prover-network/explorer.png delete mode 100644 book2/docs/generating-proofs/prover-network/key-setup.md delete mode 100644 book2/docs/generating-proofs/prover-network/key.png delete mode 100644 book2/docs/generating-proofs/prover-network/usage.md delete mode 100644 book2/docs/generating-proofs/prover-network/versions.md delete mode 100644 book2/docs/generating-proofs/recommended-workflow.mdx delete mode 100644 book2/docs/generating-proofs/setup.md delete mode 100644 book2/docs/generating-proofs/sp1-sdk-faq.md delete mode 100644 book2/docs/getting-started/hardware-requirements.md delete mode 100644 book2/docs/getting-started/install.md delete mode 100644 book2/docs/getting-started/project-template.md delete mode 100644 book2/docs/getting-started/quickstart.md delete mode 100644 book2/docs/introduction.md delete mode 100644 book2/docs/onchain-verification/contract-addresses.md delete mode 100644 book2/docs/onchain-verification/getting-started.mdx delete mode 100644 book2/docs/onchain-verification/solidity-sdk.md delete mode 100644 book2/docs/sp1.png delete mode 100644 book2/docs/theme/head.hbs delete mode 100644 book2/docs/verification/off-chain-verification.md delete mode 100644 book2/docs/verification/onchain/contract-addresses.md delete mode 100644 book2/docs/verification/onchain/getting-started.mdx delete mode 100644 book2/docs/verification/onchain/solidity-sdk.md delete mode 100644 book2/docs/what-is-a-zkvm.md delete mode 100644 book2/docs/why-use-sp1.md delete mode 100644 book2/docs/writing-programs/basics.mdx delete mode 100644 book2/docs/writing-programs/compiling.mdx delete mode 100644 book2/docs/writing-programs/cycle-tracking.mdx delete mode 100644 book2/docs/writing-programs/inputs-and-outputs.mdx delete mode 100644 book2/docs/writing-programs/patched-crates.md delete mode 100644 book2/docs/writing-programs/precompiles.mdx delete mode 100644 book2/docs/writing-programs/proof-aggregation.md delete mode 100644 book2/docs/writing-programs/setup.md delete mode 100644 book2/docusaurus.config.ts delete mode 100644 book2/package-lock.json delete mode 100644 book2/package.json delete mode 100644 book2/sidebars.ts delete mode 100644 book2/src/css/custom.css delete mode 100644 book2/src/pages/index.tsx delete mode 100644 book2/static/.nojekyll delete mode 100644 book2/static/crates_zkvm_lib_src_lib.rs.mdx delete mode 100644 book2/static/examples_cycle-tracking_program_bin_normal.rs.mdx delete mode 100644 book2/static/examples_fibonacci_program_src_main.rs.mdx delete mode 100644 book2/static/examples_fibonacci_script_bin_compressed.rs.mdx delete mode 100644 book2/static/examples_fibonacci_script_bin_execute.rs.mdx delete mode 100644 book2/static/examples_fibonacci_script_bin_groth16_bn254.rs.mdx delete mode 100644 book2/static/examples_fibonacci_script_build.rs.mdx delete mode 100644 book2/static/examples_fibonacci_script_src_main.rs.mdx delete mode 100644 book2/static/examples_groth16_program_src_main.rs.mdx delete mode 100644 book2/static/examples_groth16_script_src_main.rs.mdx delete mode 100644 book2/static/examples_io_program_src_main.rs.mdx delete mode 100644 book2/static/img/favicon.ico delete mode 100644 book2/tsconfig.json diff --git a/book2/.gitignore b/book2/.gitignore deleted file mode 100644 index b2d6de3062..0000000000 --- a/book2/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -# Dependencies -/node_modules - -# Production -/build - -# Generated files -.docusaurus -.cache-loader - -# Misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* diff --git a/book2/README.md b/book2/README.md deleted file mode 100644 index 0c6c2c27be..0000000000 --- a/book2/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Website - -This website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator. - -### Installation - -``` -$ yarn -``` - -### Local Development - -``` -$ yarn start -``` - -This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. - -### Build - -``` -$ yarn build -``` - -This command generates static content into the `build` directory and can be served using any static contents hosting service. - -### Deployment - -Using SSH: - -``` -$ USE_SSH=true yarn deploy -``` - -Not using SSH: - -``` -$ GIT_USER= yarn deploy -``` - -If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. diff --git a/book2/create-markdown-templates.sh b/book2/create-markdown-templates.sh deleted file mode 100755 index 9aaae0de9f..0000000000 --- a/book2/create-markdown-templates.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash - -# Define an array of file paths -paths=( - "../examples/fibonacci/script/bin/execute.rs" - "../examples/fibonacci/script/src/main.rs" - "../examples/fibonacci/script/bin/groth16_bn254.rs" - "../examples/fibonacci/script/build.rs" - "../examples/fibonacci/script/src/main.rs" - "../examples/groth16/program/src/main.rs" - "../examples/groth16/script/src/main.rs" - "../examples/io/program/src/main.rs" - "../examples/cycle-tracking/program/bin/normal.rs" - "../crates/zkvm/lib/src/lib.rs" - "../examples/fibonacci/script/bin/compressed.rs" - "../examples/fibonacci/program/src/main.rs" -) - -# Ensure the ./static directory exists -mkdir -p ./static - -# Loop over the paths and process each file -for file in "${paths[@]}"; do - if [[ -f "$file" ]]; then - # Get the full path and strip everything before 'sp1/' - stripped_path=$(readlink -f "$file" | sed -e 's|.*sp1/||') - - # Replace slashes with underscores for the target file name - target_name=$(echo "$stripped_path" | tr '/' '_') - - # Define the target markdown file path - target="./static/${target_name}.mdx" - - # Write the content into the markdown file - { - echo "\`\`\`rust" - cat "$file" - echo "\`\`\`" - } > "$target" - - echo "Processed $file -> $target" - else - echo "File not found: $file" - fi -done diff --git a/book2/docs/developers/building-circuit-artifacts.md b/book2/docs/developers/building-circuit-artifacts.md deleted file mode 100644 index 9e936d3ff3..0000000000 --- a/book2/docs/developers/building-circuit-artifacts.md +++ /dev/null @@ -1,8 +0,0 @@ -# Building Circuit Artifacts - -To build the production Groth16 and PLONK Bn254 artifacts from scratch, you can use the `Makefile` inside the `prover` directory. - -```shell,noplayground -cd prover -RUST_LOG=info make build-circuits -``` diff --git a/book2/docs/developers/common-issues.md b/book2/docs/developers/common-issues.md deleted file mode 100644 index 5d0a50e808..0000000000 --- a/book2/docs/developers/common-issues.md +++ /dev/null @@ -1,147 +0,0 @@ -# Common Issues - -## Rust Version Errors - -If you are using a library that has an MSRV specified, you may encounter an error like this when building your program. - -```txt -package `alloy v0.1.1 cannot be built because it requires rustc 1.76 or newer, while the currently active rustc version is 1.75.0-nightly` -``` - -This is due to the fact that your current Succinct Rust toolchain has been built with a lower version than the MSRV of the crates you are using. - -You can check the version of your local Succinct Rust toolchain by running `cargo +succinct --version`. The latest release of the Succinct Rust toolchain is **1.81**. You can update to the latest version by running [`sp1up`](../getting-started/install.md). - -```shell -% sp1up -% cargo +succinct --version -cargo 1.81.0-dev (2dbb1af80 2024-08-20) -``` - -A Succinct Rust toolchain with version **1.81** should work for all crates that have an MSRV of **1.81** or lower. - -If the MSRV of your crate is higher than **1.81**, try the following: - -- If using `cargo prove build` directly, pass the `--ignore-rust-version` flag: - - ```bash - cargo prove build --ignore-rust-version - ``` - -- If using `build_program` in an `build.rs` file with the `sp1-build` crate, set `ignore_rust_version` to true inside the `BuildArgs` struct and use - `build_program_with_args`: - - ```rust - let args = BuildArgs { - ignore_rust_version: true, - ..Default::default() - }; - build_program_with_args("path/to/program", args); - ``` - -## `alloy_sol_types` Errors - -If you are using a library that depends on `alloy_sol_types`, and encounter an error like this: - -```txt -perhaps two different versions of crate `alloy_sol_types` are being used? -``` - -This is likely due to two different versions of `alloy_sol_types` being used. To fix this, you can set `default-features` to `false` for the `sp1-sdk` dependency in your `Cargo.toml`. - -```toml -[dependencies] -sp1-sdk = { version = "2.0.0", default-features = false } -``` - -This will configure out the `network` feature which will remove the dependency on `alloy_sol_types` and configure out the `NetworkProver`. - -## Stack Overflow Errors + Bus Errors - -If you encounter any of the following errors in a script using `sp1-sdk`: - -```shell -# Stack Overflow Error -thread 'main' has overflowed its stack -fatal runtime error: stack overflow - -# Bus Error -zsh: bus error - -# Segmentation Fault -Segmentation fault (core dumped) -``` - -Run your script with the `--release` flag. SP1 currently only supports release builds. This is because -the `sp1-core` library and `sp1-recursion` require being compiled with the `release` profile. - -## C Binding Errors - -If you are building a program that uses C bindings or has dependencies that use C bindings, you may encounter the following errors: - -```txt -cc did not execute successfully -``` - -```txt -Failed to find tool. Is `riscv32-unknown-elf-gcc` installed? -``` - -To resolve this, re-install sp1 with the `--c-toolchain` flag: - -```bash -sp1up --c-toolchain -``` - -This will install the C++ toolchain for RISC-V and set the `CC_riscv32im_succinct_zkvm_elf` environment -variable to the path of the installed `riscv32-unknown-elf-gcc` binary. You can also use your own -C++ toolchain be setting this variable manually: - -```bash -export CC_riscv32im_succinct_zkvm_elf=/path/to/toolchain -``` - -## Compilation Errors with [`sp1-lib::syscall_verify_sp1_proof`](https://docs.rs/sp1-lib/latest/sp1_lib/fn.syscall_verify_sp1_proof.html) - -If you are using the [`sp1-lib::syscall_verify_sp1_proof`](https://docs.rs/sp1-lib/latest/sp1_lib/fn.syscall_verify_sp1_proof.html) function, you may encounter compilation errors when building your program. - -```bash - [sp1] = note: rust-lld: error: undefined symbol: syscall_verify_sp1_proof - [sp1] >>> referenced by sp1_lib.b593533d149f0f6e-cgu.0 - [sp1] >>> sp1_lib-8f5deb4c47d01871.sp1_lib.b593533d149f0f6e-cgu.0.rcgu.o:(sp1_lib::verify::verify_sp1_proof::h5c1bb38f11b3fe71) in ... - [sp1] - [sp1] - [sp1] error: could not compile `package-name` (bin "package-name") due to 1 previous error -``` - -To resolve this, ensure that you're importing both `sp1-lib` and `sp1-zkvm` with the verify feature enabled. - -```toml -[dependencies] -sp1-lib = { version = "", features = ["verify"] } -sp1-zkvm = { version = "", features = ["verify"] } -``` - -## `sp1-sdk` `rc` Version Semver Errors - -When using release candidate (RC) versions of `sp1-sdk` (such as `3.0.0-rc1`), you might face compilation errors if you upgrade to a newer RC version (like `3.0.0-rc4`) and then try to downgrade back to an earlier RC version (such as `3.0.0-rc1`). - -This issue arises because some RC releases introduce breaking changes that aren't reflected in their version numbers according to Semantic Versioning (SemVer) rules. To fix this, you need to explicitly downgrade all related crates in your `Cargo.lock` file to match the desired RC version. - -To start, verify that the `sp1-sdk` version in your `Cargo.lock` file differs from the version specified in your `Cargo.toml` file: - -```shell -% cargo tree -i sp1-sdk -sp1-sdk v3.0.0-rc4 (/Users/sp1/crates/sdk) -├── sp1-cli v3.0.0-rc4 (/Users/sp1/crates/cli) -├── sp1-eval v3.0.0-rc4 (/Users/sp1/crates/eval) -└── sp1-perf v3.0.0-rc4 (/Users/sp1/crates/perf) -``` - -After confirming the version of `sp1-sdk` in your lockfile, you can downgrade to a specific RC version using the following command. Replace `3.0.0-rc1` with the desired version number: - -```shell -% cargo update -p sp1-build -p sp1-sdk -p sp1-recursion-derive -p sp1-recursion-gnark-ffi -p sp1-zkvm --precise 3.0.0-rc1 -``` - -This command will update the `Cargo.lock` file to specify the lower RC version, resolving any version conflicts and allowing you to continue development. diff --git a/book2/docs/developers/rv32im-specification.md b/book2/docs/developers/rv32im-specification.md deleted file mode 100644 index 84e8aa7584..0000000000 --- a/book2/docs/developers/rv32im-specification.md +++ /dev/null @@ -1,8 +0,0 @@ -# RV32IM Specification - -SP1 implements the RISC-V RV32IM instruction set with some implementation details that make it more suitable for proving. - -- LW/SW memory access must be word aligned. -- LH/LHU/SH memory access must be half-word aligned. -- Memory access is only valid for addresses `0x20, 0x78000000`. Accessing addresses outside of this range will result in undefined behavior. The global heap allocator in `sp1_zkvm` will panic if memory exceeds this range. -- The ECALL instruction is used for system calls and precompiles. Only valid syscall IDs should be called, and only using the specific convention of loading the ID into register T0 and arguments into registers A0 and A1. If the arguments are addresses, they must be word-aligned. Failure to follow this convention can result in undefined behavior. Correct usages can be found in the `sp1_zkvm` and `sp1_lib` crates. diff --git a/book2/docs/developers/usage-in-ci.md b/book2/docs/developers/usage-in-ci.md deleted file mode 100644 index 33da5e45f9..0000000000 --- a/book2/docs/developers/usage-in-ci.md +++ /dev/null @@ -1,27 +0,0 @@ -# Usage in CI - -You may want to use SP1 in your [Github Actions](https://docs.github.com/en/actions) CI workflow. - -You first need to have Rust installed, and you can use -[actions-rs/toolchain](https://github.com/actions-rs/toolchain) for this: - -```yaml -- name: Install Rust Toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: 1.81.0 - profile: default - override: true - default: true - components: llvm-tools, rustc-dev -``` - -And then you can install the SP1 toolchain: - -```yaml -- name: Install SP1 toolchain - run: | - curl -L https://sp1.succinct.xyz | bash - ~/.sp1/bin/sp1up - ~/.sp1/bin/cargo-prove prove --version -``` diff --git a/book2/docs/generating-proofs/advanced.mdx b/book2/docs/generating-proofs/advanced.mdx deleted file mode 100644 index cd4848c48d..0000000000 --- a/book2/docs/generating-proofs/advanced.mdx +++ /dev/null @@ -1,68 +0,0 @@ -import Compressed from "../../static/examples_fibonacci_script_bin_compressed.rs.mdx"; -import Execute from "../../static/examples_fibonacci_script_bin_execute.rs.mdx"; - -# Advanced Usage - -## Execution Only - -We recommend that during the development of large programs (> 1 million cycles) you do not generate proofs each time. -Instead, you should have your script only execute the program with the RISC-V runtime and read `public_values`. Here is an example: - - - -If the execution of your program succeeds, then proof generation should succeed as well! (Unless there is a bug in our zkVM implementation.) - -## Compressed Proofs - -With the `ProverClient`, the default `prove` function generates a proof that is succinct, but can have size that scales with the number of cycles of the program. To generate a compressed proof of constant size, you can use the `prove_compressed` function instead. This will use STARK recursion to generate a proof that is constant size (around 7Kb), but will be slower than just calling `prove`, as it will use recursion to combine the core SP1 proof into a single constant-sized proof. - - - -You can run the above script with `RUST_LOG=info cargo run --bin compressed --release` from `examples/fibonacci/script`. - -## Logging and Tracing Information - -You can use `utils::setup_logger()` to enable logging information respectively. You should only use one or the other of these functions. - -**Logging:** - -```rust -utils::setup_logger(); -``` - -You must run your command with: - -```bash -RUST_LOG=info cargo run --release -``` - -## CPU Acceleration - -To enable CPU acceleration, you can use the `RUSTFLAGS` environment variable to enable the `target-cpu=native` flag when running your script. This will enable the compiler to generate code that is optimized for your CPU. - -```bash -RUSTFLAGS='-C target-cpu=native' cargo run --release -``` - -Currently there is support for AVX512 and NEON SIMD instructions. For NEON, you must also enable the `sp1-sdk` feature `neon` in your script crate's `Cargo.toml` file. - -```toml -sp1-sdk = { version = "2.0.0", features = ["neon"] } -``` - -## Performance - -For maximal performance, you should run proof generation with the following command and vary your `shard_size` depending on your program's number of cycles. - -```rust -SHARD_SIZE=4194304 RUST_LOG=info RUSTFLAGS='-C target-cpu=native' cargo run --release -``` - -## Memory Usage - -To reduce memory usage, set the `SHARD_BATCH_SIZE` environment variable depending on how much RAM -your machine has. A higher number will use more memory, but will be faster. - -```rust -SHARD_BATCH_SIZE=1 SHARD_SIZE=2097152 RUST_LOG=info RUSTFLAGS='-C target-cpu=native' cargo run --release -``` diff --git a/book2/docs/generating-proofs/basics.mdx b/book2/docs/generating-proofs/basics.mdx deleted file mode 100644 index 808833e905..0000000000 --- a/book2/docs/generating-proofs/basics.mdx +++ /dev/null @@ -1,19 +0,0 @@ -import Example from "../../static/examples_fibonacci_script_src_main.rs.mdx"; - -# Basics - -All the methods you'll need for generating proofs are included in the `sp1_sdk` crate. Most importantly, you'll need to use the `ProverClient` to setup a proving key and verifying key for your program and then use the `execute`, `prove` and `verify` methods to execute your program, and generate and verify proofs. - -To make this more concrete, let's walk through a simple example of generating a proof for a Fibonacci program inside the zkVM. - -## Example: Fibonacci - - - -You can run the above script in the `script` directory with `RUST_LOG=info cargo run --release`. Note that running the above script will generate a proof locally. - -
-WARNING: Local proving often is much slower than the prover network and for certain proof types (e.g. Groth16, PLONK) require a significant amount of RAM and will likely not work on a laptop. -
- -We recommend using the [prover network](./prover-network.md) to generate proofs. Read more about the [recommended workflow](./recommended-workflow.md) for developing with SP1. diff --git a/book2/docs/generating-proofs/hardware-acceleration.md b/book2/docs/generating-proofs/hardware-acceleration.md deleted file mode 100644 index 766c9db4ed..0000000000 --- a/book2/docs/generating-proofs/hardware-acceleration.md +++ /dev/null @@ -1,7 +0,0 @@ -# Hardware Acceleration - -SP1 supports hardware acceleration on the following platforms: -- [AVX256/AVX512](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions) on x86 CPUs -- [CUDA](https://en.wikipedia.org/wiki/CUDA) on Nvidia GPUs - -To enable hardware acceleration, please refer to the platform specific instructions available in this section. \ No newline at end of file diff --git a/book2/docs/generating-proofs/hardware-acceleration/avx.md b/book2/docs/generating-proofs/hardware-acceleration/avx.md deleted file mode 100644 index e9fe8007bf..0000000000 --- a/book2/docs/generating-proofs/hardware-acceleration/avx.md +++ /dev/null @@ -1,30 +0,0 @@ -# AVX - -SP1 supports both AVX256 and AVX512 acceleration on x86 CPUs due to support in [Plonky3](https://github.com/Plonky3/Plonky3). -Whenever possible, we recommend using AVX512 acceleration as it provides better performance. - -## Checking for AVX - -To check if your CPU supports AVX, you can run the following command: - -`grep avx /proc/cpuinfo` - -Look for the flags `avx2` and `avx512`. - -## Enabling AVX256 - -To enable AVX256 acceleration, you can set the `RUSTFLAGS` environment variable to include the following flags: - -```bash -RUSTFLAGS="-C target-cpu=native" cargo run --release -``` - -## Enabling AVX512 - -To enable AVX512 acceleration, you can set the `RUSTFLAGS` environment variable to include the following flags: - -```bash -RUSTFLAGS="-C target-cpu=native -C target-feature=+avx512f" cargo run --release -``` - -Note that the `+avx512f` flag is required to enable AVX512 acceleration. \ No newline at end of file diff --git a/book2/docs/generating-proofs/hardware-acceleration/cuda.md b/book2/docs/generating-proofs/hardware-acceleration/cuda.md deleted file mode 100644 index e27d0ce9ac..0000000000 --- a/book2/docs/generating-proofs/hardware-acceleration/cuda.md +++ /dev/null @@ -1,26 +0,0 @@ -# CUDA - -
-WARNING: CUDA proving is still an experimental feature and may be buggy. -
- - -SP1 supports CUDA acceleration, which can provide dramatically better latency and cost performance -compared to using the CPU prover, even with AVX acceleration. - -## Software Requirements - -Please make sure you have the following installed before using the CUDA prover: - -- [CUDA 12](https://developer.nvidia.com/cuda-12-0-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=22.04&target_type=deb_local) -- [CUDA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html) - -## Hardware Requirements - -- **CPU**: We recommend having at least 8 CPU cores with 32GB of RAM available to fully utilize the GPU. -- **GPU**: 24GB or more for core/compressed proofs, 40GB or more for shrink/wrap proofs - -## Usage - -To use the CUDA prover, you can compile the `sp1-sdk` crate with the `cuda` feature enabled. You -can use the normal methods on the `ProverClient` to generate proofs. \ No newline at end of file diff --git a/book2/docs/generating-proofs/proof-types.md b/book2/docs/generating-proofs/proof-types.md deleted file mode 100644 index c6d713e754..0000000000 --- a/book2/docs/generating-proofs/proof-types.md +++ /dev/null @@ -1,49 +0,0 @@ -# Proof Types - -There are a few different types of proofs that can be generated by the SP1 zkVM. Each proof type has its own tradeoffs in terms of proof generation time, verification cost, and proof size. - -The `ProverClient` follows a "builder" pattern that allows you to configure the proof type and other options after creating a `ProverClient` and calling `prove` on it. - -For a full list of options, see the following [docs](https://docs.rs/sp1-sdk/1.2.0/sp1_sdk/action/struct.Prove.html). - -## Core (Default) - -The default prover mode generates a list of STARK proofs that in aggregate have size proportional to -the size of the execution. Use this in settings where you don't care about **verification cost / proof size**. - -```rust -let client = ProverClient::new(); -client.prove(&pk, stdin).run().unwrap(); -``` - -## Compressed - -The compressed prover mode generates STARK proofs that have constant size. Use this in settings where you -care about **verification cost / proof size**, but not onchain verification. Compressed proofs are also useful because they can be cheaply recursively verified within SP1 itself (see the [proof aggregation](../writing-programs/proof-aggregation.md) section). - -```rust -let client = ProverClient::new(); -client.prove(&pk, stdin).compressed().run().unwrap(); -``` - -## Groth16 (Recommended) - -The Groth16 prover mode generates a SNARK proof that is ~260 bytes large and can be verified onchain for around ~270k gas. - -The trusted setup for the Groth16 circuit keys uses the [Aztec Ignition ceremony](https://github.com/AztecProtocol/ignition-verification) + entropy contributions from members of the Succinct team. - -```rust -let client = ProverClient::new(); -client.prove(&pk, stdin).groth16().run().unwrap(); -``` - -## PLONK - -The PLONK prover mode generates a SNARK proof that is ~868 bytes large and can also be verified onchain for around ~300k gas. Plonk proofs take about ~1m30s longer to generate over a compressed proof. - -PLONK does not require a trusted setup. - -```rust -let client = ProverClient::new(); -client.prove(&pk, stdin).plonk().run().unwrap(); -``` diff --git a/book2/docs/generating-proofs/prover-network.md b/book2/docs/generating-proofs/prover-network.md deleted file mode 100644 index f5b61d2204..0000000000 --- a/book2/docs/generating-proofs/prover-network.md +++ /dev/null @@ -1,9 +0,0 @@ -# Prover Network Beta - -> **See [Supported Versions](./prover-network/versions.md) for the currently supported versions of SP1 on the Prover Network.** - -Succinct [has been building](https://blog.succinct.xyz/succinct-network/) the Succinct Prover Network, a distributed network of provers that can generate proofs of any size quickly and reliably. It's currently in private beta, but you can get access by following the steps below. - -To get started, **[FILL OUT THIS FORM](https://forms.gle/rTUvhstS8PFfv9B3A)** to gain access to the Succinct -Network. Completing this form requires you to complete the [key -setup](./prover-network/key-setup.md) steps below. diff --git a/book2/docs/generating-proofs/prover-network/explorer.png b/book2/docs/generating-proofs/prover-network/explorer.png deleted file mode 100644 index 9241510cd8c277134e60ce1a11c46a34f9c0cf37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167094 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
-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 z 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 z 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 Aa{vGU diff --git a/book2/docs/generating-proofs/prover-network/key-setup.md b/book2/docs/generating-proofs/prover-network/key-setup.md deleted file mode 100644 index 222fba840f..0000000000 --- a/book2/docs/generating-proofs/prover-network/key-setup.md +++ /dev/null @@ -1,40 +0,0 @@ -# Prover Network: Key Setup - -The prover network uses Secp256k1 keypairs for authentication, similar to Ethereum wallets. You may generate a new keypair explicitly for use with the prover network, or use an existing keypair. - -> **You do not need to hold any funds in this account, it is used solely for access control.** - -### Generate a Public Key - -Prover network keypair credentials can be generated using the -[cast](https://book.getfoundry.sh/cast/) CLI tool. - -First install [Foundry](https://book.getfoundry.sh/getting-started/installation#using-foundryup): - -```sh -curl -L https://foundry.paradigm.xyz | bash -``` - -Upon running this command, you will be prompted to source your shell profile and run `foundryup`. Afterwards you should have access to the `cast` command. - -Use `cast` to generate a new keypair: - -```sh -cast wallet new -``` - -which will give you an output similar to this: - -![Screenshot from running 'cast wallet new' to generate an SP1_PRIVATE_KEY.](../prover-network/key.png) - -The "Address" what you should submit in the [form](https://forms.gle/rTUvhstS8PFfv9B3A), in the example above this is `0x552f0FC6D736ed965CE07a3D71aA639De15B627b`. The "Private key" should be kept safe and -secure. When interacting with the network, you will set your `SP1_PRIVATE_KEY` environment variable -to this value. - -### Retrieve an Existing Key - -If you already have an existing key you would like to use, you can also use `cast` retrieve your address: - -```sh -cast wallet address --private-key $PRIVATE_KEY -``` diff --git a/book2/docs/generating-proofs/prover-network/key.png b/book2/docs/generating-proofs/prover-network/key.png deleted file mode 100644 index ccbb4b8974830a141d0e20687d2b52f42af3bbf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10085 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 **See [Supported Versions](./versions.md) for the currently supported versions of SP1 on the Prover Network.** - -## Sending a proof request - -To use the prover network to generate a proof, you can run your script that uses `sp1_sdk::ProverClient` as you would normally but with additional environment variables set: - -```rust -// Generate the proof for the given program. -let client = ProverClient::new(); -let (pk, vk) = client.setup(ELF); -let mut proof = client.prove(&pk, stdin).run().unwrap(); -``` - -```sh -SP1_PROVER=network SP1_PRIVATE_KEY=... RUST_LOG=info cargo run --release -``` - -- `SP1_PROVER` should be set to `network` when using the prover network. - -- `SP1_PRIVATE_KEY` should be set to your [private key](../prover-network.md#key-setup). You will need - to be using a [whitelisted](../prover-network.md#get-access) key to use the network. - -When you call any of the prove functions in ProverClient now, it will first simulate your program, then wait for it to be proven through the network and finally return the proof. - -## View the status of your proof - -You can view your proof and other running proofs on the [explorer](https://explorer.succinct.xyz/). The page for your proof will show details such as the stage of your proof and the cycles used. It also shows the program hash which is the keccak256 of the program bytes. - -![Screenshot from explorer.succinct.xyz showing the details of a proof including status, stage, type, program, requester, prover, CPU cycles used, time requested, and time claimed.](./explorer.png) - -## Advanced Usage - -### Skip simulation - -To skip the simulation step and directly submit the program for proof generation, you can set the `SKIP_SIMULATION` environment variable to `true`. This will save some time if you are sure that your program is correct. If your program panics, the proof will fail and ProverClient will panic. - -### Use NetworkProver directly - -By using the `sp1_sdk::NetworkProver` struct directly, you can call async functions directly and have programmatic access to the proof ID and download proofs by ID. - -```rust -impl NetworkProver { - /// Creates a new [NetworkProver] with the private key set in `SP1_PRIVATE_KEY`. - pub fn new() -> Self; - - /// Creates a new [NetworkProver] with the given private key. - pub fn new_from_key(private_key: &str); - - /// Requests a proof from the prover network, returning the proof ID. - pub async fn request_proof( - &self, - elf: &[u8], - stdin: SP1Stdin, - mode: ProofMode, - ) -> Result; - - /// Waits for a proof to be generated and returns the proof. If a timeout is supplied, the - /// function will return an error if the proof is not generated within the timeout. - pub async fn wait_proof( - &self, - proof_id: &str, - timeout: Option, - ) -> Result; - - /// Get the status and the proof if available of a given proof request. The proof is returned - /// only if the status is Fulfilled. - pub async fn get_proof_status( - &self, - proof_id: &str, - ) -> Result<(GetProofStatusResponse, Option)>; - - /// Requests a proof from the prover network and waits for it to be generated. - pub async fn prove( - &self, - elf: &[u8], - stdin: SP1Stdin, - mode: ProofMode, - timeout: Option, - ) -> Result; -} -``` diff --git a/book2/docs/generating-proofs/prover-network/versions.md b/book2/docs/generating-proofs/prover-network/versions.md deleted file mode 100644 index 31503adb80..0000000000 --- a/book2/docs/generating-proofs/prover-network/versions.md +++ /dev/null @@ -1,30 +0,0 @@ -# Supported Versions - -The prover network currently only supports specific versions of SP1: - -| Version | Description | -| ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| v2.X.X | Audited, production ready version. | -| v3.X.X | Pre-release version with enhanced performance, currently being audited. **Recommended for benchmarking or testing, not recommended for production use.** | - -`X` denotes that any minor and patch version is supported (e.g. `v2.1.0`, `v2.1.1`). - -If you submit a proof request to the prover network and you are not using a supported version, you will receive an error message. - -## Changing versions - -You must switch to a supported version before submitting a proof. To do so, replace the `sp1-zkvm` version in your program's `Cargo.toml`: - -```toml -[dependencies] -sp1-zkvm = "2.0.0" -``` - -replace the `sp1-sdk` version in your script's `Cargo.toml`: - -```toml -[dependencies] -sp1-sdk = "2.0.0" -``` - -Re-build your program and script, and then try again. diff --git a/book2/docs/generating-proofs/recommended-workflow.mdx b/book2/docs/generating-proofs/recommended-workflow.mdx deleted file mode 100644 index 5c721f0cbd..0000000000 --- a/book2/docs/generating-proofs/recommended-workflow.mdx +++ /dev/null @@ -1,57 +0,0 @@ -import Example from "../../static/examples_fibonacci_script_bin_execute.rs.mdx"; - -# Recommended Workflow for Developing with SP1 - -We recommend the following workflow for developing with SP1. - -## Step 1: Iterate on your program with execution only - -While iterating on your SP1 program, you should **only execute** the program with the RISC-V runtime. This will allow you to verify the correctness of your program and test the `SP1Stdin` as well as the `SP1PublicValues` that are returned, without having to generate a proof (which can be slow and/or expensive). If the execution of your program succeeds, then proof generation should succeed as well! - - - -Note that printing out the total number of executed cycles and the full execution report provides helpful insight into proof generation latency and cost either for local proving or when using the prover network. - -**Crate Setup:** We recommend that your program crate that defines the `main` function (around which you wrap the `sp1_zkvm::entrypoint!` macro) should be kept minimal. Most of your business logic should be in a separate crate (in the same repo/workspace) that can be tested independently and that is not tied to the SP1 zkVM. This will allow you to unit test your program logic without having to worry about the `zkvm` compilation target. This will also allow you to efficient reuse types between your program crate and your crate that generates proofs. - -## Step 2: Generate proofs - -After you have iterated on your program and finalized that it works correctly, you can generate proofs for your program for final end to end testing or production use. - -### Generating proofs on the prover network (recommended) - -Using Succinct's prover prover network will generally be faster and cheaper than local proving, as it parallelizes proof generation amongst multiple machines and also uses SP1's GPU prover that is not yet available for local proving. Follow the [setup instructions](./prover-network.md) to get started with the prover network. Using the prover network only requires adding 1 environment variable from a regular SP1 proof generation script with the `ProverClient`. - -There are a few things to keep in mind when using the prover network. - -### Prover Network FAQ - -#### Benchmarking latency on the prover network - -The prover network currently parallelizes proof generation across multiple machines. This means the latency of proof generation does not scale linearly with the number of cycles of your program, but rather with the number of cycles of your program divided by the number of currently available machines on the prover network. - -Our prover network currently has limited capacity because it is still in beta. If you have an extremely latency sensitive use-case and you want to figure out the **minimal latency possible** for your program, you should [reach out to us](https://partner.succinct.xyz/) and we can onboard you to our reserved capacity cluster that has a dedicated instances that can significantly reduce latency. - -#### Costs on the prover network - -The cost of proof generation on the prover network scales approximately linearly with the number of cycles of your program (along with the number of `syscalls` that your program makes). For larger workloads with regular proof frequency (like rollups and light clients), we can offer discounted pricing. To figure out how much your program will cost to prove, you can get [in touch with us](https://partner.succinct.xyz/) to discuss pricing options. - -Note that **latency is not the same as cost**, because we parallelize proof generation across multiple machines, so two proofs with the same latency can be using a different number of machines, impacting the cost. - -#### Benchmarking on small vs. large programs - -In SP1, there is a fixed overhead for proving that is independent of your program's cycle count. This means that benchmarking on _small programs_ is not representative of the performance of larger programs. To get an idea of the scale of programs for real-world workloads, you can refer to our [benchmarking blog post](https://blog.succinct.xyz/sp1-production-benchmarks) and also some numbers below: - -- An average Ethereum block can be between 100-500M cycles (including merkle proof verification for storage and execution of transactions) with our `keccak` and `secp256k1` precompiles. -- For a Tendermint light client, the average cycle count can be between 10M and 50M cycles (including our ed25519 precompiles). -- We consider programs with \<2M cycles to be "small" and by default, the fixed overhead of proving will dominate the proof latency. If latency is incredibly important for your use-case, we can specialize the prover network for your program if you reach out to us. - -Note that if you generate Groth16 or PLONK proofs on the prover network, you will encounter a fixed overhead for the STARK -> SNARK wrapping step. We're actively working on reducing this overhead in future releases. - -#### On-Demand vs. Reserved Capacity - -The prover network is currently in beta and has limited capacity. For high volume use-cases, we can offer discounted pricing and a reserved capacity cluster that has a dedicated instances that can significantly reduce latency and have higher throughput and guaranteed SLAs. - -### Generating proofs locally - -If you want to generate proofs locally, you can use the `sp1_sdk` crate to generate proofs locally as outlined in the [Basics](./basics.md) section. By default, the `ProverClient` will generate proofs locally using your CPU. Check out the hardware requirements for locally proving [here](../getting-started/hardware-requirements.md#local-proving). diff --git a/book2/docs/generating-proofs/setup.md b/book2/docs/generating-proofs/setup.md deleted file mode 100644 index 6e9b5483c7..0000000000 --- a/book2/docs/generating-proofs/setup.md +++ /dev/null @@ -1,38 +0,0 @@ -# Setup - -In this section, we will teach you how to setup a self-contained crate which can generate proofs of programs that have been compiled with the SP1 toolchain inside the SP1 zkVM, using the `sp1-sdk` crate. - -## CLI (Recommended) - -The recommended way to setup your first program to prove inside the zkVM is using the method described in [Quickstart](../getting-started/quickstart.md) which will create a script folder. - -```bash -cargo prove new -cd script -``` - -## Manual - -You can also manually setup a project. First create a new cargo project: - -```bash -cargo new script -cd script -``` - -#### Cargo Manifest - -Inside this crate, add the `sp1-sdk` crate as a dependency. Your `Cargo.toml` should look like as follows: - -```rust -[workspace] -[package] -version = "0.1.0" -name = "script" -edition = "2021" - -[dependencies] -sp1-sdk = "2.0.0" -``` - -The `sp1-sdk` crate includes the necessary utilities to generate, save, and verify proofs. diff --git a/book2/docs/generating-proofs/sp1-sdk-faq.md b/book2/docs/generating-proofs/sp1-sdk-faq.md deleted file mode 100644 index ca2a0a0596..0000000000 --- a/book2/docs/generating-proofs/sp1-sdk-faq.md +++ /dev/null @@ -1,15 +0,0 @@ -# FAQ - -## Logging and Tracing Information - -You can use `sp1_sdk::utils::setup_logger()` to enable logging information respectively. You can set the logging level with the `RUST_LOG` environment variable. - -```rust -sp1_sdk::utils::setup_logger(); -``` - -Example of setting the logging level to `info` (other options are `debug`, `trace`, and `warn`): - -```bash -RUST_LOG=info cargo run --release -``` \ No newline at end of file diff --git a/book2/docs/getting-started/hardware-requirements.md b/book2/docs/getting-started/hardware-requirements.md deleted file mode 100644 index 828ea96080..0000000000 --- a/book2/docs/getting-started/hardware-requirements.md +++ /dev/null @@ -1,41 +0,0 @@ -# Proof Generation Requirements - -

-We recommend that developers who want to use SP1 for non-trivial programs generate proofs on our prover network. The prover network generates SP1 proofs across multiple machines, reducing latency and also runs SP1 on optimized hardware instances that result in faster + cheaper proof generation times. - -We recommend that for any production benchmarking, you use the prover network to estimate latency and costs of proof generation. - -
- -## Local Proving - -If you want to generate SP1 proofs locally, this section has an overview of the hardware requirements required. These requires depend on which [types of proofs](../generating-proofs/proof-types.md) you want to generate and can also change over time as the design of the zKVM evolves. - -**The most important requirement is CPU for performance/latency and RAM to prevent running out of memory.** - -| | Mock / Network | Core / Compress | Groth16 and PLONK (EVM) | -| -------------- | ---------------------------- | ---------------------------------- | ----------------------- | -| CPU | 1+, single-core perf matters | 16+, more is better | 16+, more is better | -| Memory | 8GB+, more is better | 16GB+, more if you have more cores | 16GB+, more is better | -| Disk | 10GB+ | 10GB+ | 10GB+ | -| EVM Compatible | ✅ | ❌ | ✅ | - -### CPU - -The execution & trace generation of the zkVM is mostly CPU bound, having a high single-core -performance is recommended to accelerate these steps. The rest of the prover is mostly bound by hashing/field operations -which can be parallelized with multiple cores. - -### Memory - -Our prover requires keeping large matrices (i.e., traces) in memory to generate the proofs. Certain steps of the prover -have a minimum memory requirement, meaning that if you have less than this amount of memory, the process will OOM. - -This effect is most noticeable when using the Groth16 or PLONK provers. - -### Disk - -Disk is required to install the SP1 zkVM toolchain and to install the circuit artifacts, if you -plan to locally build the Groth16 or PLONK provers. - -Furthermore, disk is used to checkpoint the state of the program execution, which is required to generate the proofs. diff --git a/book2/docs/getting-started/install.md b/book2/docs/getting-started/install.md deleted file mode 100644 index e58b9a624e..0000000000 --- a/book2/docs/getting-started/install.md +++ /dev/null @@ -1,115 +0,0 @@ -# Installation - -SP1 currently runs on Linux and macOS. You can either use prebuilt binaries through sp1up or -build the Succinct [Rust toolchain](https://rust-lang.github.io/rustup/concepts/toolchains.html) and CLI from source. - -## Requirements - -- [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) -- [Rust (Nightly)](https://www.rust-lang.org/tools/install) -- [Docker](https://docs.docker.com/get-docker/) - -## Option 1: Prebuilt Binaries (Recommended) - -`sp1up` is the SP1 toolchain installer. Open your terminal and run the following command and follow the instructions: - -```bash -curl -L https://sp1.succinct.xyz | bash -``` - -Then simply follow the instructions on-screen, which will make the `sp1up` command available in your CLI. - -After following the instructions, you can run `sp1up` to install the toolchain and the `cargo prove` CLI: - -```bash -sp1up -``` - -This will install two things: - -1. The `succinct` Rust toolchain which has support for the `riscv32im-succinct-zkvm-elf` compilation target. -2. `cargo prove` CLI tool that provides convenient commands for compiling SP1 programs and other helper functionality. - -You can verify the installation of the CLI by running `cargo prove --version`: - -```bash -cargo prove --version -``` - -You can check the version of the Succinct Rust toolchain by running: - -```bash -RUSTUP_TOOLCHAIN=succinct cargo --version -``` -or equivalently: - -```bash -cargo +succinct --version -``` - -If this works, go to the [next section](./quickstart.md) to compile and prove a simple zkVM program. - -### Troubleshooting - -#### Rate-limiting - -If you experience [rate-limiting](https://docs.github.com/en/rest/using-the-rest-api/getting-started-with-the-rest-api?apiVersion=2022-11-28#rate-limiting) when using the `sp1up` command, you can resolve this by using the `--token` flag and providing your GitHub token. To create a Github token, follow the instructions [here](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic). - - - -#### Unsupported OS Architectures - -Currently our prebuilt binaries are built on Ubuntu 20.04 (22.04 on ARM) and macOS. If your OS uses an older GLIBC version, it's possible these may not work and you will need to [build the toolchain from source](#option-2-building-from-source). - -#### Conflicting `cargo-prove` installations - -If you have installed `cargo-prove` from source, it may conflict with `sp1up`'s `cargo-prove` installation or vice versa. You can remove the `cargo-prove` that was installed from source with the following command: - -```bash -rm ~/.cargo/bin/cargo-prove -``` - -Or, you can remove the `cargo-prove` that was installed through `sp1up`: - -```bash -rm ~/.sp1/bin/cargo-prove -``` - - -## Option 2: Building from Source - -
-Warning: This option will take a long time to build and is only recommended for advanced users. -
- -Make sure you have installed the [dependencies](https://github.com/rust-lang/rust/blob/master/INSTALL.md#dependencies) needed to build the rust toolchain from source. - -Clone the `sp1` repository and navigate to the root directory. - -```bash -git clone git@github.com:succinctlabs/sp1.git -cd sp1 -cd crates -cd cli -cargo install --locked --path . -cd ~ -cargo prove build-toolchain -``` - -Building the toolchain can take a while, ranging from 30 mins to an hour depending on your machine. If you're on a machine that we have prebuilt binaries for (ARM Mac or x86 or ARM Linux), you can use the following to download a prebuilt version. - -```bash -cargo prove install-toolchain -``` - -To verify the installation of the toolchain, run and make sure you see `succinct`: - -```bash -rustup toolchain list -``` - -You can delete your existing installation of the toolchain with: - -```bash -rustup toolchain remove succinct -``` diff --git a/book2/docs/getting-started/project-template.md b/book2/docs/getting-started/project-template.md deleted file mode 100644 index b6cbd8d733..0000000000 --- a/book2/docs/getting-started/project-template.md +++ /dev/null @@ -1,5 +0,0 @@ -# Project Template - -Another option for getting started with SP1 is to use the [SP1 Project Template](https://github.com/succinctlabs/sp1-project-template/tree/main). - -You can use this as a Github template to create a new repository that has a SP1 program, a script to generate proofs, and also a contracts folder that contains a Solidity contract that can verify SP1 proofs on any EVM chain. diff --git a/book2/docs/getting-started/quickstart.md b/book2/docs/getting-started/quickstart.md deleted file mode 100644 index 824ddbf857..0000000000 --- a/book2/docs/getting-started/quickstart.md +++ /dev/null @@ -1,124 +0,0 @@ -# Quickstart - -In this section, we will show you how to create a simple Fibonacci program using the SP1 zkVM. - -## Create an SP1 Project - -### Option 1: Cargo Prove New CLI (Recommended) - -You can use the `cargo prove` CLI to create a new project using the `cargo prove new <--bare|--evm> ` command. The `--bare` option sets up a basic SP1 project for standalone zkVM programs, while `--evm` adds additional components including Solidity contracts for on-chain proof verification. - -This command will create a new folder in your current directory which includes solidity smart contracts for onchain integration. - -```bash -cargo prove new --evm fibonacci -cd fibonacci -``` - -### Option 2: Project Template (Solidity Contracts for Onchain Verification) - -If you want to use SP1 to generate proofs that will eventually be verified on an EVM chain, you should use the [SP1 project template](https://github.com/succinctlabs/sp1-project-template/tree/main). This Github template is scaffolded with a SP1 program, a script to generate proofs, and also a contracts folder that contains a Solidity contract that can verify SP1 proofs on any EVM chain. - -Either fork the project template repository or clone it: - -```bash -git clone https://github.com/succinctlabs/sp1-project-template.git -``` - -### Project Overview - -Your new project will have the following structure (ignoring the `contracts` folder, if you are using the project template): - -``` -. -├── program -│   ├── Cargo.lock -│   ├── Cargo.toml -│   ├── elf -│   │   └── riscv32im-succinct-zkvm-elf -│   └── src -│   └── main.rs -├── rust-toolchain -└── script - ├── Cargo.lock - ├── Cargo.toml - ├── build.rs - └── src - └── bin - ├── prove.rs - └── vkey.rs - -6 directories, 4 files -``` - -There are 2 directories (each a crate) in the project: -- `program`: the source code that will be proven inside the zkVM. -- `script`: code that contains proof generation and verification code. - -**We recommend you install the [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer) extension.** -Note that if you use `cargo prove new` inside a monorepo, you will need to add the manifest file to `rust-analyzer.linkedProjects` to get full IDE support. - -## Build - -Before we can run the program inside the zkVM, it must be compiled to a RISC-V executable using the `succinct` Rust toolchain. This is called an [ELF (Executable and Linkable Format)](https://en.wikipedia.org/wiki/Executable_and_Linkable_Format). To compile the program, you can run the following command: - -``` -cd program && cargo prove build -``` - -which will output the compiled ELF to the file `program/elf/riscv32im-succinct-zkvm-elf`. - -Note: the `build.rs` file in the `script` directory will use run the above command automatically to build the ELF, meaning you don't have to manually run `cargo prove build` every time you make a change to the program! - -## Execute - -To test your program, you can first execute your program without generating a proof. In general this is helpful for iterating on your program and verifying that it is correct. - -```bash -cd ../script -RUST_LOG=info cargo run --release -- --execute -``` - -## Prove - -When you are ready to generate a proof, you should run the script with the `--prove` flag that will generate a proof. - -```bash -cd ../script -RUST_LOG=info cargo run --release -- --prove -``` - -The output should show something like this: -``` -n: 20 -2024-07-23T17:07:07.874856Z INFO prove_core:collect_checkpoints: clk = 0 pc = 0x2017e8 -2024-07-23T17:07:07.876264Z INFO prove_core:collect_checkpoints: close time.busy=2.00ms time.idle=1.50µs -2024-07-23T17:07:07.913304Z INFO prove_core:shard: close time.busy=32.2ms time.idle=791ns -2024-07-23T17:07:10.724280Z INFO prove_core:commit: close time.busy=2.81s time.idle=1.25µs -2024-07-23T17:07:10.725923Z INFO prove_core:prove_checkpoint: clk = 0 pc = 0x2017e8 num=0 -2024-07-23T17:07:10.729130Z INFO prove_core:prove_checkpoint: close time.busy=3.68ms time.idle=1.17µs num=0 -2024-07-23T17:07:14.648146Z INFO prove_core: execution report (totals): total_cycles=9329, total_syscall_cycles=20 -2024-07-23T17:07:14.648180Z INFO prove_core: execution report (opcode counts): -2024-07-23T17:07:14.648197Z INFO prove_core: 1948 add -... -2024-07-23T17:07:14.648277Z INFO prove_core: execution report (syscall counts): -2024-07-23T17:07:14.648408Z INFO prove_core: 8 commit -... -2024-07-23T17:07:14.648858Z INFO prove_core: summary: cycles=9329, e2e=9.193968459, khz=1014.69, proofSize=1419780 -2024-07-23T17:07:14.653193Z INFO prove_core: close time.busy=9.20s time.idle=12.2µs -Successfully generated proof! -fib(n): 10946 -``` - -The program by default is quite small, so proof generation will only take a few seconds locally. After it generates, the proof will be verified for correctness. - -**Note:** When benchmarking proof generation times locally, it is important to note that there is a fixed overhead for proving, which means that the proof generation time for programs with a small number of cycles is not representative of the performance of larger programs (which often have better performance characteristics as the overhead is amortized across many cycles). - -## Recommended Workflow - -Please see the [Recommended Workflow](../generating-proofs/recommended-workflow.md) section for more details on how to develop your SP1 program and generate proofs. - -We *strongly recommend* that developers who want to use SP1 for non-trivial programs generate proofs on the beta version of our [Prover Network](../generating-proofs/prover-network.md). The prover network generates SP1 proofs across multiple machines, reducing latency and also runs SP1 on optimized hardware instances that result in faster + cheaper proof generation times. - -We recommend that for any production benchmarking, you use the prover network to estimate latency and costs of proof generation. We also would love to chat with your team directly to help you get started with the prover network--please fill out this [form](https://partner.succinct.xyz/). - diff --git a/book2/docs/introduction.md b/book2/docs/introduction.md deleted file mode 100644 index f3a645786c..0000000000 --- a/book2/docs/introduction.md +++ /dev/null @@ -1,33 +0,0 @@ -# Introduction - -*Documentation for SP1 users and developers*. - -[![Telegram Chat][tg-badge]][tg-url] - -![](./sp1.png) - - -SP1 is a performant, open-source zero-knowledge virtual machine (zkVM) that verifies the execution of arbitrary Rust (or any LLVM-compiled language) programs. - -[tg-badge]: https://img.shields.io/endpoint?color=neon&logo=telegram&label=chat&url=https%3A%2F%2Ftg.sumanjay.workers.dev%2Fsuccinct%5Fsp1 -[tg-url]: https://t.me/+AzG4ws-kD24yMGYx - -SP1 has undergone multiple audits from leading ZK security firms and is currently used in production by many top blockchain teams. - -## The future of ZK is writing normal code - -Zero-knowledge proofs (ZKPs) are one of the most critical technologies to blockchain scaling, interoperability and privacy. But, historically building ZKP systems was extremely complicated--requiring large teams with specialized cryptography expertise and taking years to go to production. - -SP1 provides a performant, general-purpose zkVM that enables **any developer** to use ZKPs by writing normal code (in Rust), and get cheap and fast proofs. SP1 will enable ZKPs to become mainstream, introducing a new era of verifiability for all of blockchain infrastructure and beyond. - - -## SP1 enables a diversity of use-cases - -ZKPs enable a diversity of use-cases in blockchain and beyond, including: - -* Rollups: Use SP1 to generate a ZKP for the state transition function of your rollup and connect to Ethereum, Bitcoin or other chains with full validity proofs or ZK fraud proofs. -* Interoperability: Use SP1 for fast-finality, cross rollup interoperability -* Bridges: Use SP1 to generate a ZKP for verifying consensus of L1s, including Tendermint, Ethereum’s Light Client protocol and more, for bridging between chains. -* Oracles: Use SP1 for large scale computations with onchain state, including consensus data and storage data. -* Aggregation: Use SP1 to aggregate and verify other ZKPs for reduced onchain verification costs. -* Privacy: Use SP1 for onchain privacy, including private transactions and private state. diff --git a/book2/docs/onchain-verification/contract-addresses.md b/book2/docs/onchain-verification/contract-addresses.md deleted file mode 100644 index 3acb971edf..0000000000 --- a/book2/docs/onchain-verification/contract-addresses.md +++ /dev/null @@ -1,80 +0,0 @@ -# Contract Addresses - -To verify SP1 proofs on-chain, we recommend using our deployed canonical verifier gateways. The -[SP1VerifierGateway](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1VerifierGateway.sol) -will automatically route your SP1 proof to the correct verifier based on the SP1 version used. - -## Canonical Verifier Gateways - -| Chain ID | Chain | Gateway | -| -------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------- | -| 1 | Mainnet | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 11155111 | Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 17000 | Holesky | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://holesky.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 42161 | Arbitrum One | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 421614 | Arbitrum Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 8453 | Base | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://basescan.org/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 84532 | Base Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.basescan.org/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 10 | Optimism | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://optimistic.etherscan.io/address/0x3b6041173b80e77f038f3f2c0f9744f04837185e) | -| 11155420 | Optimism Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia-optimism.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 534351 | Scroll Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.scrollscan.com/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 534352 | Scroll | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://scrollscan.com/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | - -The most up-to-date reference on each chain can be found in the -[deployments](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/deployments) -directory in the -SP1 contracts repository, where each chain has a dedicated JSON file with each verifier's address. - -## Versioning Policy - -Whenever a verifier for a new SP1 version is deployed, the gateway contract will be updated to -support it with -[addRoute()](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1VerifierGateway.sol#L65). -If a verifier for an SP1 version has an issue, the route will be frozen with -[freezeRoute()](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1VerifierGateway.sol#L71). - -On mainnets, only official versioned releases are deployed and added to the gateway. Testnets have -`rc` versions of the verifier deployed supported in addition to the official versions. - -## Deploying to other Chains - -In the case that you need to use a chain that is not listed above, you can deploy your own -verifier contract by following the instructions in the -[SP1 Contracts Repo](https://github.com/succinctlabs/sp1-contracts/blob/main/README.md#deployments). - -Since both the `SP1VerifierGateway` and each `SP1Verifier` implement the [ISP1Verifier -interface](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1Verifier.sol), you can choose to either: - -* Deploy the `SP1VerifierGateway` and add `SP1Verifier` contracts to it. Then point to the - `SP1VerifierGateway` address in your contracts. -* Deploy just the `SP1Verifier` contract that you want to use. Then point to the `SP1Verifier` - address in - your contracts. - -If you want support for a canonical verifier on your chain, contact us [here](https://t.me/+AzG4ws-kD24yMGYx). We often deploy canonical verifiers on new chains if there's enough demand. - -## ISP1Verifier Interface - -All verifiers implement the [ISP1Verifier](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1Verifier.sol) interface. - -```c++ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - -/// @title SP1 Verifier Interface -/// @author Succinct Labs -/// @notice This contract is the interface for the SP1 Verifier. -interface ISP1Verifier { - /// @notice Verifies a proof with given public values and vkey. - /// @dev It is expected that the first 4 bytes of proofBytes must match the first 4 bytes of - /// target verifier's VERIFIER_HASH. - /// @param programVKey The verification key for the RISC-V program. - /// @param publicValues The public values encoded as bytes. - /// @param proofBytes The proof of the program execution the SP1 zkVM encoded as bytes. - function verifyProof( - bytes32 programVKey, - bytes calldata publicValues, - bytes calldata proofBytes - ) external view; -} -``` diff --git a/book2/docs/onchain-verification/getting-started.mdx b/book2/docs/onchain-verification/getting-started.mdx deleted file mode 100644 index 3cbe73933a..0000000000 --- a/book2/docs/onchain-verification/getting-started.mdx +++ /dev/null @@ -1,34 +0,0 @@ -import Example from "../../static/examples_fibonacci_script_bin_groth16_bn254.rs.mdx"; - - -# Onchain Verification: Setup - -The best way to get started with verifying SP1 proofs on-chain is to refer to the [SP1 Project Template](https://github.com/succinctlabs/sp1-project-template/tree/main). - -- The template [program](https://github.com/succinctlabs/sp1-project-template/blob/main/program/src/main.rs) shows how to write outputs that can be decoded in Solidity. -- The template [script](https://github.com/succinctlabs/sp1-project-template/blob/main/script/src/bin/prove.rs) shows how to generate the proof using the SDK and save it to a file. -- The template [contract](https://github.com/succinctlabs/sp1-project-template/blob/main/contracts/src/Fibonacci.sol) shows how to verify the proof onchain using Solidity. - -Refer to the section on [Contract Addresses](./contract-addresses.md#contract-addresses) for the addresses of the deployed verifiers. - -## Generating SP1 Proofs for Onchain Verification - -By default, the proofs generated by SP1 are not verifiable onchain, as they are non-constant size and STARK verification on Ethereum is very expensive. To generate a proof that can be verified onchain, we use performant STARK recursion to combine SP1 shard proofs into a single STARK proof and then wrap that in a SNARK proof. Our `ProverClient` has a prover option for this called `plonk`. Behind the scenes, this function will first generate a normal SP1 proof, then recursively combine all of them into a single proof using the STARK recursion protocol. Finally, the proof is wrapped in a SNARK proof using PLONK. - -> WARNING: The Groth16 and PLONK provers are only guaranteed to work on official releases of SP1. To -> use Groth16 or PLONK proving & verification locally, ensure that you have Docker installed and have -> at least 128GB of RAM. - -### Example - - - -You can run the above script with `RUST_LOG=info cargo run --bin groth16_bn254 --release` in `examples/fibonacci/script`. - -#### Using Groth16 and PLONK without Docker (Advanced) - -If you would like to run the Groth16 or PLONK prover directly without Docker, you must have Go 1.22 installed and enable the `native-gnark` feature in `sp1-sdk`. This path is not recommended and may require additional native dependencies. - -```toml -sp1-sdk = { version = "2.0.0", features = ["native-gnark"] } -``` diff --git a/book2/docs/onchain-verification/solidity-sdk.md b/book2/docs/onchain-verification/solidity-sdk.md deleted file mode 100644 index 822ab620b9..0000000000 --- a/book2/docs/onchain-verification/solidity-sdk.md +++ /dev/null @@ -1,122 +0,0 @@ -# Solidity Verifier - -We maintain a suite of [contracts](https://github.com/succinctlabs/sp1-contracts/tree/main) used for verifying SP1 proofs onchain. We highly recommend using [Foundry](https://book.getfoundry.sh/). - -## Installation - -To install the latest release version: - -```bash -forge install succinctlabs/sp1-contracts -``` - -To install a specific version: - -```bash -forge install succinctlabs/sp1-contracts@ -``` - -Finally, add `@sp1-contracts/=lib/sp1-contracts/contracts/src/` in `remappings.txt.` - -### Usage - -Once installed, you can use the contracts in the library by importing them: - -```c++ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - -import {ISP1Verifier} from "@sp1-contracts/ISP1Verifier.sol"; - -/// @title Fibonacci. -/// @author Succinct Labs -/// @notice This contract implements a simple example of verifying the proof of a computing a -/// fibonacci number. -contract Fibonacci { - /// @notice The address of the SP1 verifier contract. - /// @dev This can either be a specific SP1Verifier for a specific version, or the - /// SP1VerifierGateway which can be used to verify proofs for any version of SP1. - /// For the list of supported verifiers on each chain, see: - /// https://docs.succinct.xyz/onchain-verification/contract-addresses - address public verifier; - - /// @notice The verification key for the fibonacci program. - bytes32 public fibonacciProgramVKey; - - constructor(address _verifier, bytes32 _fibonacciProgramVKey) { - verifier = _verifier; - fibonacciProgramVKey = _fibonacciProgramVKey; - } - - /// @notice The entrypoint for verifying the proof of a fibonacci number. - /// @param _proofBytes The encoded proof. - /// @param _publicValues The encoded public values. - function verifyFibonacciProof(bytes calldata _publicValues, bytes calldata _proofBytes) - public - view - returns (uint32, uint32, uint32) - { - ISP1Verifier(verifier).verifyProof(fibonacciProgramVKey, _publicValues, _proofBytes); - (uint32 n, uint32 a, uint32 b) = abi.decode(_publicValues, (uint32, uint32, uint32)); - return (n, a, b); - } -} - -``` - -### Finding your program vkey - -The program vkey (`fibonacciProgramVKey` in the example above) is passed into the `ISP1Verifier` along with the public values and proof bytes. You -can find your program vkey by going through the following steps: - -1. Find what version of SP1 crates you are using. -2. Use the version from step to run this command: `sp1up --version ` -3. Use the vkey command to get the program vkey: `cargo prove vkey -elf ` - -Alternatively, you can set up a simple script to do this using the `sp1-sdk` crate: - -```rust -fn main() { - // Setup the logger. - sp1_sdk::utils::setup_logger(); - - // Setup the prover client. - let client = ProverClient::new(); - - // Setup the program. - let (_, vk) = client.setup(FIBONACCI_ELF); - - // Print the verification key. - println!("Program Verification Key: {}", vk.bytes32()); -} -``` - -### Testing - -To test the contract, we recommend setting up [Foundry -Tests](https://book.getfoundry.sh/forge/tests). We have an example of such a test in the [SP1 -Project -Template](https://github.com/succinctlabs/sp1-project-template/blob/dev/contracts/test/Fibonacci.t.sol). - -### Solidity Versions - -The officially deployed contracts are built using Solidity 0.8.20 and exist on the -[sp1-contracts main](https://github.com/succinctlabs/sp1-contracts/tree/main) branch. - -If you need to use different versions that are compatible with your contracts, there are also other -branches you can install that contain different versions. For -example for branch [main-0.8.15](https://github.com/succinctlabs/sp1-contracts/tree/main-0.8.15) -contains the contracts with: - -```c++ -pragma solidity ^0.8.15; -``` - -and you can install it with: - -```sh -forge install succinctlabs/sp1-contracts@main-0.8.15 -``` - -If there is different versions that you need but there aren't branches for them yet, please ask in -the [SP1 Telegram](https://t.me/+AzG4ws-kD24yMGYx). diff --git a/book2/docs/sp1.png b/book2/docs/sp1.png deleted file mode 100644 index 78576befe311ab327f31e2fd3054f8dddcd081dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66629 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
Wi0laIaXMHlQ%Y!|l_${WD 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 Twg!hb@;){(x_Gt->KySO+>0Oy diff --git a/book2/docs/theme/head.hbs b/book2/docs/theme/head.hbs deleted file mode 100644 index 2e2be7a19f..0000000000 --- a/book2/docs/theme/head.hbs +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/book2/docs/verification/off-chain-verification.md b/book2/docs/verification/off-chain-verification.md deleted file mode 100644 index a0297229da..0000000000 --- a/book2/docs/verification/off-chain-verification.md +++ /dev/null @@ -1,48 +0,0 @@ -import ProgramMain from "../../static/examples_groth16_program_src_main.rs.mdx"; -import ProgramScript from "../../static/examples_groth16_script_src_main.rs.mdx"; - -# Offchain Verification - -## Rust `no_std` Verification - -You can verify SP1 Groth16 and Plonk proofs in `no_std` environments with [`sp1-verifier`](https://docs.rs/sp1-verifier/latest/sp1_verifier/). - -`sp1-verifier` is also patched to verify Groth16 and Plonk proofs within the SP1 ZKVM, using -[bn254](https://blog.succinct.xyz/succinctshipsprecompiles/) precompiles. For an example of this, see -the [Groth16 Example](https://github.com/succinctlabs/sp1/tree/main/examples/groth16/). - -### Installation - -Import the following dependency in your `Cargo.toml`: - -```toml -sp1-verifier = {version = "3.0.0", default-features = false} -``` - -### Usage - -`sp1-verifier`'s interface is very similar to the solidity verifier's. It exposes two public functions: -[`Groth16Verifier::verify_proof`](https://docs.rs/sp1-verifier/latest/src/sp1_verifier/groth16.rs.html) -and [`PlonkVerifier::verify_proof`](https://docs.rs/sp1-verifier/latest/src/sp1_verifier/plonk.rs.html). - -`sp1-verifier` also exposes the Groth16 and Plonk verifying keys as constants, `GROTH16_VK_BYTES` and `PLONK_VK_BYTES`. These -keys correspond to the current SP1 version's official Groth16 and Plonk verifying keys, which are used for verifying proofs generated -using docker or the prover network. - -First, generate your groth16/plonk proof with the SP1 SDK. See [here](./onchain/getting-started.md#generating-sp1-proofs-for-onchain-verification) -for more information -- `sp1-verifier` and the solidity verifier expect inputs in the same format. - -Next, verify the proof with `sp1-verifier`. The following snippet is from the [Groth16 example program](https://github.com/succinctlabs/sp1/tree/dev/examples/groth16/), which verifies a Groth16 proof within SP1 using `sp1-verifier`. - - - -Here, the proof, public inputs, and vkey hash are read from stdin. See the following snippet to see how these values are generated. - - - -> Note that the SP1 SDK itself is *not* `no_std` compatible. - -## Wasm Verification - -The [`example-sp1-wasm-verifier`](https://github.com/succinctlabs/example-sp1-wasm-verifier) demonstrates how to -verify SP1 proofs in wasm. For a more detailed explanation of the process, please see the [README](https://github.com/succinctlabs/example-sp1-wasm-verifier/blob/main/README.md). diff --git a/book2/docs/verification/onchain/contract-addresses.md b/book2/docs/verification/onchain/contract-addresses.md deleted file mode 100644 index 0a23f6ab2e..0000000000 --- a/book2/docs/verification/onchain/contract-addresses.md +++ /dev/null @@ -1,101 +0,0 @@ -# Contract Addresses - -To verify SP1 proofs on-chain, we recommend using our deployed canonical verifier gateways. The -[SP1VerifierGateway](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1VerifierGateway.sol) -will automatically route your SP1 proof to the correct verifier based on the SP1 version used. - -## Canonical Verifier Gateways - -There are different verifier gateway for each proof system: Groth16 and PLONK. This means that you -must use the correct verifier gateway depending on if you are verifying a Groth16 or PLONK proof. - -### Groth16 - -| Chain ID | Chain | Gateway | -| -------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------- | -| 1 | Mainnet | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | -| 11155111 | Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia.etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | -| 17000 | Holesky | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://holesky.etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | -| 42161 | Arbitrum One | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://arbiscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | -| 421614 | Arbitrum Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia.arbiscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | -| 8453 | Base | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://basescan.org/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | -| 84532 | Base Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia.basescan.org/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | -| 10 | Optimism | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://optimistic.etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | -| 11155420 | Optimism Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia-optimism.etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | -| 534351 | Scroll Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia.scrollscan.com/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | -| 534352 | Scroll | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://scrollscan.com/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | - -### PLONK - -| Chain ID | Chain | Gateway | -| -------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------- | -| 1 | Mainnet | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 11155111 | Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 17000 | Holesky | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://holesky.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 42161 | Arbitrum One | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 421614 | Arbitrum Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 8453 | Base | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://basescan.org/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 84532 | Base Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.basescan.org/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 10 | Optimism | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://optimistic.etherscan.io/address/0x3b6041173b80e77f038f3f2c0f9744f04837185e) | -| 11155420 | Optimism Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia-optimism.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 534351 | Scroll Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.scrollscan.com/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 534352 | Scroll | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://scrollscan.com/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | - -The most up-to-date reference on each chain can be found in the -[deployments](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/deployments) -directory in the -SP1 contracts repository, where each chain has a dedicated JSON file with each verifier's address. - -## Versioning Policy - -Whenever a verifier for a new SP1 version is deployed, the gateway contract will be updated to -support it with -[addRoute()](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1VerifierGateway.sol#L65). -If a verifier for an SP1 version has an issue, the route will be frozen with -[freezeRoute()](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1VerifierGateway.sol#L71). - -On mainnets, only official versioned releases are deployed and added to the gateway. Testnets have -`rc` versions of the verifier deployed supported in addition to the official versions. - -## Deploying to other Chains - -In the case that you need to use a chain that is not listed above, you can deploy your own -verifier contract by following the instructions in the -[SP1 Contracts Repo](https://github.com/succinctlabs/sp1-contracts/blob/main/README.md#deployments). - -Since both the `SP1VerifierGateway` and each `SP1Verifier` implement the [ISP1Verifier -interface](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1Verifier.sol), you can choose to either: - -* Deploy the `SP1VerifierGateway` and add `SP1Verifier` contracts to it. Then point to the - `SP1VerifierGateway` address in your contracts. -* Deploy just the `SP1Verifier` contract that you want to use. Then point to the `SP1Verifier` - address in - your contracts. - -If you want support for a canonical verifier on your chain, contact us [here](https://t.me/+AzG4ws-kD24yMGYx). We often deploy canonical verifiers on new chains if there's enough demand. - -## ISP1Verifier Interface - -All verifiers implement the [ISP1Verifier](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1Verifier.sol) interface. - -```c++ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - -/// @title SP1 Verifier Interface -/// @author Succinct Labs -/// @notice This contract is the interface for the SP1 Verifier. -interface ISP1Verifier { - /// @notice Verifies a proof with given public values and vkey. - /// @dev It is expected that the first 4 bytes of proofBytes must match the first 4 bytes of - /// target verifier's VERIFIER_HASH. - /// @param programVKey The verification key for the RISC-V program. - /// @param publicValues The public values encoded as bytes. - /// @param proofBytes The proof of the program execution the SP1 zkVM encoded as bytes. - function verifyProof( - bytes32 programVKey, - bytes calldata publicValues, - bytes calldata proofBytes - ) external view; -} -``` diff --git a/book2/docs/verification/onchain/getting-started.mdx b/book2/docs/verification/onchain/getting-started.mdx deleted file mode 100644 index dae34a817e..0000000000 --- a/book2/docs/verification/onchain/getting-started.mdx +++ /dev/null @@ -1,35 +0,0 @@ -import Example from "../../../static/examples_fibonacci_script_bin_groth16_bn254.rs.mdx"; - -# Onchain Verification: Setup - -The best way to get started with verifying SP1 proofs on-chain is to refer to the [SP1 Project Template](https://github.com/succinctlabs/sp1-project-template/tree/main). - -- The template [program](https://github.com/succinctlabs/sp1-project-template/blob/main/program/src/main.rs) shows how to write outputs that can be decoded in Solidity. -- The template [script](https://github.com/succinctlabs/sp1-project-template/blob/main/script/src/bin/prove.rs) shows how to generate the proof using the SDK and save it to a file. -- The template [contract](https://github.com/succinctlabs/sp1-project-template/blob/main/contracts/src/Fibonacci.sol) shows how to verify the proof onchain using Solidity. - -Refer to the section on [Contract Addresses](./contract-addresses.md#contract-addresses) for the addresses of the deployed verifiers. - -## Generating SP1 Proofs for Onchain Verification - -By default, the proofs generated by SP1 are not verifiable onchain, as they are non-constant size and STARK verification on Ethereum is very expensive. To generate a proof that can be verified onchain, we use performant STARK recursion to combine SP1 shard proofs into a single STARK proof and then wrap that in a SNARK proof. Our `ProverClient` has a prover option for this called `plonk`. Behind the scenes, this function will first generate a normal SP1 proof, then recursively combine all of them into a single proof using the STARK recursion protocol. Finally, the proof is wrapped in a SNARK proof using PLONK. - -> WARNING: The Groth16 and PLONK provers are only guaranteed to work on official releases of SP1. To -> use Groth16 or PLONK proving & verification locally, ensure that you have Docker installed and have -> at least 128GB of RAM. - -### Example - -```rust -{{#include ../../examples/fibonacci/script/bin/groth16_bn254.rs}} -``` - -You can run the above script with `RUST_LOG=info cargo run --bin groth16_bn254 --release` in `examples/fibonacci/script`. - -#### Using Groth16 and PLONK without Docker (Advanced) - -If you would like to run the Groth16 or PLONK prover directly without Docker, you must have Go 1.22 installed and enable the `native-gnark` feature in `sp1-sdk`. This path is not recommended and may require additional native dependencies. - -```toml -sp1-sdk = { version = "2.0.0", features = ["native-gnark"] } -``` diff --git a/book2/docs/verification/onchain/solidity-sdk.md b/book2/docs/verification/onchain/solidity-sdk.md deleted file mode 100644 index 822ab620b9..0000000000 --- a/book2/docs/verification/onchain/solidity-sdk.md +++ /dev/null @@ -1,122 +0,0 @@ -# Solidity Verifier - -We maintain a suite of [contracts](https://github.com/succinctlabs/sp1-contracts/tree/main) used for verifying SP1 proofs onchain. We highly recommend using [Foundry](https://book.getfoundry.sh/). - -## Installation - -To install the latest release version: - -```bash -forge install succinctlabs/sp1-contracts -``` - -To install a specific version: - -```bash -forge install succinctlabs/sp1-contracts@ -``` - -Finally, add `@sp1-contracts/=lib/sp1-contracts/contracts/src/` in `remappings.txt.` - -### Usage - -Once installed, you can use the contracts in the library by importing them: - -```c++ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - -import {ISP1Verifier} from "@sp1-contracts/ISP1Verifier.sol"; - -/// @title Fibonacci. -/// @author Succinct Labs -/// @notice This contract implements a simple example of verifying the proof of a computing a -/// fibonacci number. -contract Fibonacci { - /// @notice The address of the SP1 verifier contract. - /// @dev This can either be a specific SP1Verifier for a specific version, or the - /// SP1VerifierGateway which can be used to verify proofs for any version of SP1. - /// For the list of supported verifiers on each chain, see: - /// https://docs.succinct.xyz/onchain-verification/contract-addresses - address public verifier; - - /// @notice The verification key for the fibonacci program. - bytes32 public fibonacciProgramVKey; - - constructor(address _verifier, bytes32 _fibonacciProgramVKey) { - verifier = _verifier; - fibonacciProgramVKey = _fibonacciProgramVKey; - } - - /// @notice The entrypoint for verifying the proof of a fibonacci number. - /// @param _proofBytes The encoded proof. - /// @param _publicValues The encoded public values. - function verifyFibonacciProof(bytes calldata _publicValues, bytes calldata _proofBytes) - public - view - returns (uint32, uint32, uint32) - { - ISP1Verifier(verifier).verifyProof(fibonacciProgramVKey, _publicValues, _proofBytes); - (uint32 n, uint32 a, uint32 b) = abi.decode(_publicValues, (uint32, uint32, uint32)); - return (n, a, b); - } -} - -``` - -### Finding your program vkey - -The program vkey (`fibonacciProgramVKey` in the example above) is passed into the `ISP1Verifier` along with the public values and proof bytes. You -can find your program vkey by going through the following steps: - -1. Find what version of SP1 crates you are using. -2. Use the version from step to run this command: `sp1up --version ` -3. Use the vkey command to get the program vkey: `cargo prove vkey -elf ` - -Alternatively, you can set up a simple script to do this using the `sp1-sdk` crate: - -```rust -fn main() { - // Setup the logger. - sp1_sdk::utils::setup_logger(); - - // Setup the prover client. - let client = ProverClient::new(); - - // Setup the program. - let (_, vk) = client.setup(FIBONACCI_ELF); - - // Print the verification key. - println!("Program Verification Key: {}", vk.bytes32()); -} -``` - -### Testing - -To test the contract, we recommend setting up [Foundry -Tests](https://book.getfoundry.sh/forge/tests). We have an example of such a test in the [SP1 -Project -Template](https://github.com/succinctlabs/sp1-project-template/blob/dev/contracts/test/Fibonacci.t.sol). - -### Solidity Versions - -The officially deployed contracts are built using Solidity 0.8.20 and exist on the -[sp1-contracts main](https://github.com/succinctlabs/sp1-contracts/tree/main) branch. - -If you need to use different versions that are compatible with your contracts, there are also other -branches you can install that contain different versions. For -example for branch [main-0.8.15](https://github.com/succinctlabs/sp1-contracts/tree/main-0.8.15) -contains the contracts with: - -```c++ -pragma solidity ^0.8.15; -``` - -and you can install it with: - -```sh -forge install succinctlabs/sp1-contracts@main-0.8.15 -``` - -If there is different versions that you need but there aren't branches for them yet, please ask in -the [SP1 Telegram](https://t.me/+AzG4ws-kD24yMGYx). diff --git a/book2/docs/what-is-a-zkvm.md b/book2/docs/what-is-a-zkvm.md deleted file mode 100644 index 4f91fa3213..0000000000 --- a/book2/docs/what-is-a-zkvm.md +++ /dev/null @@ -1,35 +0,0 @@ -# What is a zkVM? - -A zero-knowledge virtual machine (zkVM) is zero-knowledge proof system that allows developers to prove the execution of arbitrary Rust (or other LLVM-compiled language) programs. - -Conceptually, you can think of the SP1 zkVM as proving the evaluation of a function `f(x) = y` by following the steps below: - -- Define `f` using normal Rust code and compile it to an ELF (covered in the [writing programs](./writing-programs/setup.md) section). -- Setup a proving key (`pk`) and verifying key (`vk`) for the program given the ELF. -- Generate a proof `π` using the SP1 zkVM that `f(x) = y` with `prove(pk, x)`. -- Verify the proof `π` using `verify(vk, x, y, π)`. - -As a practical example, `f` could be a simple Fibonacci [program](https://github.com/succinctlabs/sp1/blob/main/examples/fibonacci/program/src/main.rs). The process of generating a proof and verifying it can be seen [here](https://github.com/succinctlabs/sp1/blob/main/examples/fibonacci/script/src/main.rs). - -For blockchain applications, the verification usually happens inside of a [smart contract](https://github.com/succinctlabs/sp1-project-template/blob/main/contracts/src/Fibonacci.sol). - -## How does SP1 Work? - -At a high level, SP1 works with the following steps: - -* Write a program in Rust that defines the logic of your computation for which you want to generate a ZKP. -* Compile the program to the RISC-V ISA (a standard Rust compilation target) using the `cargo prove` CLI tool (installation instructions [here](./getting-started/install.md)) and generate a RISC-V ELF file. -* SP1 will prove the correct execution of arbitrary RISC-V programs by generating a STARK proof of execution. -* Developers can leverage the `sp1-sdk` crate to generate proofs with their ELF and input data. Under the hood the `sp1-sdk` will either generate proofs locally or use a beta version of Succinct's prover network to generate proofs. - -SP1 leverages performant STARK recursion that allows us to prove the execution of arbitrarily long programs and also has a STARK -> SNARK "wrapping system" that allows us to generate small SNARK proofs that can be efficiently verified on EVM chains. - -## Proof System - -For more technical details, check out the SP1 technical note that explains our proof system in detail. In short, we use: - -* STARKs + FRI over the Baby Bear field -* We use performant STARK recursion that allows us to prove the execution of arbitrarily long programs -* We have a system of performant precompiles that accelerate hash functions and cryptographic signature verification that allow us to get substantial performance gains on blockchain workloads - - diff --git a/book2/docs/why-use-sp1.md b/book2/docs/why-use-sp1.md deleted file mode 100644 index 44db0ab6bc..0000000000 --- a/book2/docs/why-use-sp1.md +++ /dev/null @@ -1,46 +0,0 @@ -# Why use SP1? - -## Use-Cases - -Zero-knowledge proofs (ZKPs) are a powerful primitive that enable **verifiable computation**. With ZKPs, anyone can verify a cryptographic proof that a program has executed correctly, without needing to trust the prover, re-execute the program or even know the inputs to the program. - -Historically, building ZKP systems has been extremely complicated, requiring large teams with specialized cryptography expertise and taking years to go to production. SP1 is a performant, general-purpose zkVM that solves this problem and creates a future where all blockchain infrastructure, including rollups, bridges, coprocessors, and more, utilize ZKPs **via maintainable software written in Rust**. - -SP1 is especially powerful in blockchain contexts which rely on verifiable computation. Example applications include: -- [Rollups](https://ethereum.org/en/developers/docs/scaling/zk-rollups/): SP1 can be used in combination with existing node infrastructure like [Reth](https://github.com/paradigmxyz/reth) to build rollups with ZKP validity proofs or ZK fraud proofs. -- [Coprocessors](https://crypto.mirror.xyz/BFqUfBNVZrqYau3Vz9WJ-BACw5FT3W30iUX3mPlKxtA): SP1 can be used to outsource onchain computation to offchain provers to enable use cases such as large-scale computation over historical state and onchain machine learning, dramatically reducing gas costs. -- [Light Clients](https://ethereum.org/en/developers/docs/nodes-and-clients/light-clients/): SP1 can be used to build light clients that can verify the state of other chains, facilitating interoperability between different blockchains without relying on any trusted third parties. - -SP1 has already been integrated in many of these applications, including but not limited to: - -- [SP1 Tendermint](https://github.com/succinctlabs/sp1-tendermint-example): An example of a ZK Tendermint light client on Ethereum powered by SP1. -- [SP1 Reth](https://github.com/succinctlabs/rsp): A performant, type-1 zkEVM written in Rust & SP1 using Reth. -- [SP1 Contract Call](https://github.com/succinctlabs/sp1-contract-call): A lightweight library to generate ZKPs of Ethereum smart contract execution -- and many more! - -SP1 is used by protocols in production today: - -- [SP1 Blobstream](https://github.com/succinctlabs/sp1-blobstream): A bridge that verifies [Celestia](https://celestia.org/) “data roots” (a commitment to all data blobs posted in a range of Celestia blocks) on Ethereum and other EVM chains. -- [SP1 Vector](https://github.com/succinctlabs/sp1-vector): A bridge that relays [Avail's](https://www.availproject.org/) merkle root to Ethereum and also functions as a token bridge from Avail to Ethereum. - - -## 100x developer productivity - -SP1 enables teams to use ZKPs in production with minimal overhead and fast timelines. - -**Maintainable:** With SP1, you can reuse existing Rust crates, like `revm`, `reth`, `tendermint-rs`, `serde` and more, to write your ZKP logic in maintainable, Rust code. - -**Go to market faster:** By reusing existing crates and expressing ZKP logic in regular code, SP1 significantly reduces audit surface area and complexity, enabling teams to go to market with ZKPs faster. - -## Blazing Fast Performance - -SP1 is the fastest zkVM and has blazing fast performance on a variety of realistic blockchain workloads, including light clients and rollups. With SP1, ZKP proving costs are an order of magnitude less than alternative zkVMs or even circuits, making it cost-effective and fast for practical use. - -Read more about our benchmarking results [here](https://blog.succinct.xyz/sp1-benchmarks-8-6-24). - -## Open Source - -SP1 is 100% open-source (MIT / Apache 2.0) with no code obfuscation and built to be contributor friendly, with all development done in the open. Unlike existing zkVMs whose constraint logic is closed-source and impossible to audit or modify, SP1 is modularly architected and designed to be customizable from day one. This customizability (unique to SP1) allows for users to add “precompiles” to the core zkVM logic that yield substantial performance gains, making SP1’s performance not only SOTA vs. existing zkVMs, but also competitive with circuits in a variety of use-cases. - - - diff --git a/book2/docs/writing-programs/basics.mdx b/book2/docs/writing-programs/basics.mdx deleted file mode 100644 index f300f3c3c7..0000000000 --- a/book2/docs/writing-programs/basics.mdx +++ /dev/null @@ -1,15 +0,0 @@ -import Example from "../../static/examples_fibonacci_program_src_main.rs.mdx"; - -# Basics - -The easiest way to understand how to write programs for the SP1 zkVM is to look at some examples. - -## Example: Fibonacci - -This program is from the `examples` [directory](https://github.com/succinctlabs/sp1/tree/main/examples) in the SP1 repo which contains several example programs of varying complexity. - - - -As you can see, writing programs is as simple as writing normal Rust. - -After you've written your program, you must compile it to an ELF that the SP1 zkVM can prove. To read more about compiling programs, refer to the section on [Compiling Programs](./compiling.md). To read more about how inputs and outputs work, refer to the section on [Inputs & Outputs](./inputs-and-outputs.md). diff --git a/book2/docs/writing-programs/compiling.mdx b/book2/docs/writing-programs/compiling.mdx deleted file mode 100644 index 6586d25539..0000000000 --- a/book2/docs/writing-programs/compiling.mdx +++ /dev/null @@ -1,100 +0,0 @@ -import Example from "../../static/examples_fibonacci_script_build.rs.mdx"; - -# Compiling Programs - -Once you have written an SP1 program, you must compile it to an ELF file that can be executed in the zkVM. The `cargo prove` CLI tool (downloaded during installation) provides convenient commands for compiling SP1 programs. - -## Development Builds - -> WARNING: This may not generate a reproducible ELF which is necessary for verifying that your binary corresponds to given source code. -> -> Use the [reproducible build system](#reproducible-builds-with-docker-production) for production builds. - -To build a program while developing, simply run the following command in the crate that contains your SP1 program: - -```bash -cargo prove build -``` - -This will compile the ELF that can be executed in the zkVM and put it in the file `elf/riscv32im-succinct-zkvm-elf`. The output from the command will look something like this: - -```bash -[sp1] Compiling version_check v0.9.4 -[sp1] Compiling proc-macro2 v1.0.86 -[sp1] Compiling unicode-ident v1.0.12 -[sp1] Compiling cfg-if v1.0.0 -... -[sp1] Compiling sp1-lib v1.0.1 -[sp1] Compiling sp1-zkvm v1.0.1 -[sp1] Compiling fibonacci-program v0.1.0 (/Users/username/Documents/fibonacci/program) -[sp1] Finished `release` profile [optimized] target(s) in 8.33s -``` - -Under the hood, this CLI command calls `cargo build` with the `riscv32im-succinct-zkvm-elf` target and other required environment variables and flags. The logic for this command is defined in the [sp1-build](https://github.com/succinctlabs/sp1/tree/main/build) crate. - -### Advanced Build Options - -You can pass additional arguments to the `cargo prove build` command to customize the build process, like configuring what features are enabled, customizing the output directory and more. To see all available options, run `cargo prove build --help`. Many of these options mirror the options available in the `cargo build` command. - -## Production Builds - -For production builds of programs, you can build your program inside a Docker container which will generate a **reproducible ELF** on all platforms. To do so, just use the `--docker` flag and optionally the `--tag` flag with the release version you want to use (defaults to `latest`). For example: - -```bash -cargo prove build --docker --tag v1.0.1 -``` - -To verify that your build is reproducible, you can compute the SHA-512 hash of the ELF on different platforms and systems with: - -```bash -$ shasum -a 512 elf/riscv32im-succinct-zkvm-elf -f9afb8caaef10de9a8aad484c4dd3bfa54ba7218f3fc245a20e8a03ed40b38c617e175328515968aecbd3c38c47b2ca034a99e6dbc928512894f20105b03a203 -``` - -## Build Script - -If you want your program crate to be built automatically whenever you build/run your script crate, you can add a `build.rs` file inside of `script/` (at the same level as `Cargo.toml` of your script crate) that utilizes the `sp1-build` crate: - - - -The path passed in to `build_program` should point to the directory containing the `Cargo.toml` file for your program. Make sure to also add `sp1-build` as a build dependency in `script/Cargo.toml`: - -```toml -[build-dependencies] -sp1-build = "2.0.0" -``` - -You will see output like the following from the build script if the program has changed, indicating that the program was rebuilt: - -``` -[fibonacci-script 0.1.0] cargo:rerun-if-changed=../program/src -[fibonacci-script 0.1.0] cargo:rerun-if-changed=../program/Cargo.toml -[fibonacci-script 0.1.0] cargo:rerun-if-changed=../program/Cargo.lock -[fibonacci-script 0.1.0] cargo:warning=fibonacci-program built at 2024-03-02 22:01:26 -[fibonacci-script 0.1.0] [sp1] Compiling fibonacci-program v0.1.0 (/Users/umaroy/Documents/fibonacci/program) -[fibonacci-script 0.1.0] [sp1] Finished release [optimized] target(s) in 0.15s -warning: fibonacci-script@0.1.0: fibonacci-program built at 2024-03-02 22:01:26 -``` - -The above output was generated by running `RUST_LOG=info cargo run --release -vv` for the `script` folder of the Fibonacci example. - -### Advanced Build Options - -To configure the build process when using the `sp1-build` crate, you can pass a [`BuildArgs`](https://docs.rs/sp1-build/1.2.0/sp1_build/struct.BuildArgs.html) struct to to the [`build_program_with_args`](https://docs.rs/sp1-build/1.2.0/sp1_build/fn.build_program_with_args.html) function. The build arguments are the same as the ones available from the `cargo prove build` command. - -As an example, you could use the following code to build the Fibonacci example with the `docker` flag set to `true` and a custom output directory for the generated ELF: - -```rust -use sp1_build::{build_program_with_args, BuildArgs}; - -fn main() { - let args = BuildArgs { - docker: true, - output_directory: "./fibonacci-program".to_string(), - ..Default::default() - }; - build_program_with_args("../program", &args); -} -``` - -**Note:** If you want reproducible builds with the `build.rs` approach, you should use the `docker` flag and the `build_program_with_args` function, as shown in the example above. diff --git a/book2/docs/writing-programs/cycle-tracking.mdx b/book2/docs/writing-programs/cycle-tracking.mdx deleted file mode 100644 index bb1d739f57..0000000000 --- a/book2/docs/writing-programs/cycle-tracking.mdx +++ /dev/null @@ -1,124 +0,0 @@ -import Example from "../../static/examples_cycle-tracking_program_bin_normal.rs.mdx"; - -# Cycle Tracking - -When writing a program, it is useful to know how many RISC-V cycles a portion of the program takes to identify potential performance bottlenecks. SP1 provides a way to track the number of cycles spent in a portion of the program. - -## Tracking Cycles with Annotations - -To track the number of cycles spent in a portion of the program, you can either put `println!("cycle-tracker-start: block name")` + `println!("cycle-tracker-end: block name")` statements (block name must be same between start and end) around the portion of your program you want to profile or use the `#[sp1_derive::cycle_tracker]` macro on a function. An example is shown below: - - - -Note that to use the macro, you must add the `sp1-derive` crate to your dependencies for your program. - -```toml -[dependencies] -sp1-derive = "2.0.0" -``` - -In the script for proof generation, setup the logger with `utils::setup_logger()` and run the script with `RUST_LOG=info cargo run --release`. You should see the following output: - -``` -$ RUST_LOG=info cargo run --release - Finished release [optimized] target(s) in 0.21s - Running `target/release/cycle-tracking-script` -2024-03-13T02:03:40.567500Z INFO execute: loading memory image -2024-03-13T02:03:40.567751Z INFO execute: starting execution -2024-03-13T02:03:40.567760Z INFO execute: clk = 0 pc = 0x2013b8 -2024-03-13T02:03:40.567822Z INFO execute: ┌╴setup -2024-03-13T02:03:40.568095Z INFO execute: └╴4,398 cycles -2024-03-13T02:03:40.568122Z INFO execute: ┌╴main-body -2024-03-13T02:03:40.568149Z INFO execute: │ ┌╴expensive_function -2024-03-13T02:03:40.568250Z INFO execute: │ └╴1,368 cycles -stdout: result: 5561 -2024-03-13T02:03:40.568373Z INFO execute: │ ┌╴expensive_function -2024-03-13T02:03:40.568470Z INFO execute: │ └╴1,368 cycles -stdout: result: 2940 -2024-03-13T02:03:40.568556Z INFO execute: └╴5,766 cycles -2024-03-13T02:03:40.568566Z INFO execute: finished execution clk = 11127 pc = 0x0 -2024-03-13T02:03:40.569251Z INFO execute: close time.busy=1.78ms time.idle=21.1µs -``` - -Note that we elegantly handle nested cycle tracking, as you can see above. - -### Get Tracked Cycle Counts - -To include tracked cycle counts in the `ExecutionReport` when using `ProverClient::execute`, use the following annotations: - -```rust -fn main() { - println!("cycle-tracker-report-start: block name"); - // ... - println!("cycle-tracker-report-end: block name"); -} -``` - -This will log the cycle count for `block name` and include it in the `ExecutionReport` in the `cycle_tracker` map. - -## Tracking Cycles with Tracing - -The `cycle-tracker` annotation is a convenient way to track cycles for specific sections of code. However, sometimes it can also be useful to track what functions are taking the most cycles across the entire program, without having to annotate every function individually. - -First, we need to generate a trace file of the program counter at each cycle while the program is executing. This can be done by simply setting the `TRACE_FILE` environment variable with the path of the file you want to write the trace to. For example, you can run the following command in the `script` directory for any example program: - -```bash -TRACE_FILE=trace.log RUST_LOG=info cargo run --release -``` - -When the `TRACE_FILE` environment variable is set, as SP1's RISC-V runtime is executing, it will write a log of the program counter to the file specified by `TRACE_FILE`. - -Next, we can use the `cargo prove` CLI with the `trace` command to analyze the trace file and generate a table of instruction counts. This can be done with the following command: - -```bash -cargo prove trace --elf --trace -``` - -The `trace` command will generate a table of instruction counts, sorted by the number of cycles spent in each function. The output will look something like this: - -``` - [00:00:00] [########################################] 17053/17053 (0s) - -Total instructions in trace: 17053 - - - Instruction counts considering call graph -+----------------------------------------+-------------------+ -| Function Name | Instruction Count | -| __start | 17045 | -| main | 12492 | -| sp1_zkvm::syscalls::halt::syscall_halt | 4445 | -| sha2::sha256::compress256 | 4072 | -| sp1_lib::io::commit | 258 | -| sp1_lib::io::SyscallWriter::write | 255 | -| syscall_write | 195 | -| memcpy | 176 | -| memset | 109 | -| sp1_lib::io::read_vec | 71 | -| __rust_alloc | 29 | -| sp1_zkvm::heap::SimpleAlloc::alloc | 22 | -| syscall_hint_len | 3 | -| syscall_hint_read | 2 | -+----------------------------------------+-------------------+ - - - Instruction counts ignoring call graph -+----------------------------------------+-------------------+ -| Function Name | Instruction Count | -| main | 12075 | -| sha2::sha256::compress256 | 4073 | -| sp1_zkvm::syscalls::halt::syscall_halt | 219 | -| memcpy | 180 | -| syscall_write | 123 | -| memset | 111 | -| sp1_lib::io::commit | 88 | -| sp1_lib::io::SyscallWriter::write | 60 | -| __start | 45 | -| sp1_lib::io::read_vec | 35 | -| sp1_zkvm::heap::SimpleAlloc::alloc | 23 | -| anonymous | 7 | -| __rust_alloc | 7 | -| syscall_hint_len | 4 | -| syscall_hint_read | 3 | -+----------------------------------------+-------------------+ -``` diff --git a/book2/docs/writing-programs/inputs-and-outputs.mdx b/book2/docs/writing-programs/inputs-and-outputs.mdx deleted file mode 100644 index 00788365e0..0000000000 --- a/book2/docs/writing-programs/inputs-and-outputs.mdx +++ /dev/null @@ -1,67 +0,0 @@ -import Example from "../../static/examples_io_program_src_main.rs.mdx"; - -# Inputs and Outputs - -In real world applications of zero-knowledge proofs, you almost always want to verify your proof in the context of some inputs and outputs. For example: - -- **Rollups**: Given a list of transactions, prove the new state of the blockchain. -- **Coprocessors**: Given a block header, prove the historical state of some storage slot inside a smart contract. -- **Attested Images**: Given a signed image, prove that you made a restricted set of image transformations. - -In this section, we cover how you pass inputs and outputs to the zkVM and create new types that support serialization. - -## Reading Data - -Data that is read is not public to the verifier by default. Use the `sp1_zkvm::io::read::` method: - -```rust -let a = sp1_zkvm::io::read::(); -let b = sp1_zkvm::io::read::(); -let c = sp1_zkvm::io::read::(); -``` - -Note that `T` must implement the `serde::Serialize` and `serde::Deserialize` trait. If you want to read bytes directly, you can also use the `sp1_zkvm::io::read_vec` method. - -```rust -let my_vec = sp1_zkvm::io::read_vec(); -``` - -## Committing Data - -Committing to data makes the data public to the verifier. Use the `sp1_zkvm::io::commit::` method: - -```rust -sp1_zkvm::io::commit::(&a); -sp1_zkvm::io::commit::(&b); -sp1_zkvm::io::commit::(&c); -``` - -Note that `T` must implement the `Serialize` and `Deserialize` trait. If you want to write bytes directly, you can also use `sp1_zkvm::io::commit_slice` method: - -```rust -let mut my_slice = [0_u8; 32]; -sp1_zkvm::io::commit_slice(&my_slice); -``` - -## Creating Serializable Types - -Typically, you can implement the `Serialize` and `Deserialize` traits using a simple derive macro on a struct. - -```rust -use serde::{Serialize, Deserialize}; - -#[derive(Serialize, Deserialize)] -struct MyStruct { - a: u32, - b: u64, - c: String -} -``` - -For more complex usecases, refer to the [Serde docs](https://serde.rs/). - -## Example - -Here is a basic example of using inputs and outputs with more complex types. - - diff --git a/book2/docs/writing-programs/patched-crates.md b/book2/docs/writing-programs/patched-crates.md deleted file mode 100644 index 818190f2ee..0000000000 --- a/book2/docs/writing-programs/patched-crates.md +++ /dev/null @@ -1,234 +0,0 @@ -# Patched Crates - -We maintain forks of commonly used libraries in blockchain infrastructure to significantly accelerate the execution of certain operations. -Under the hood, we use [precompiles](./precompiles) to achieve tremendous performance improvements in proof generation time. - -**If you know of a library or library version that you think should be patched, please open an issue or a pull request!** - -## Supported Libraries - -| Crate Name | Repository | Notes | Versions | -|---------------------|---------------------------------------------------------------------------------------|------------------|-----------------------| -| sha2 | [sp1-patches/RustCrypto-hashes](https://github.com/sp1-patches/RustCrypto-hashes) | sha256 | 0.9.8, 0.10.6, 0.10.8 | -| sha3 | [sp1-patches/RustCrypto-hashes](https://github.com/sp1-patches/RustCrypto-hashes) | keccak256 | 0.9.8, 0.10.6, 0.10.8 | -| bigint | [sp1-patches/RustCrypto-bigint](https://github.com/sp1-patches/RustCrypto-bigint) | bigint | 0.5.5 | -| tiny-keccak | [sp1-patches/tiny-keccak](https://github.com/sp1-patches/tiny-keccak) | keccak256 | 2.0.2 | -| curve25519-dalek | [sp1-patches/curve25519-dalek](https://github.com/sp1-patches/curve25519-dalek) | ed25519 verify | 4.1.3, 3.2.0 | -| curve25519-dalek-ng | [sp1-patches/curve25519-dalek-ng](https://github.com/sp1-patches/curve25519-dalek-ng) | ed25519 verify | 4.1.1 | -| ed25519-consensus | [sp1-patches/ed25519-consensus](http://github.com/sp1-patches/ed25519-consensus) | ed25519 verify | 2.1.0 | -| ed25519-dalek | [sp1-patches/ed25519-dalek](http://github.com/sp1-patches/ed25519-dalek) | ed25519 verify | 1.0.1 | -| ecdsa-core | [sp1-patches/signatures](http://github.com/sp1-patches/signatures) | secp256k1 verify | 0.16.8, 0.16.9 | -| secp256k1 | [sp1-patches/rust-secp256k1](http://github.com/sp1-patches/rust-secp256k1) | secp256k1 verify | 0.29.0, 0.29.1 | -| substrate-bn | [sp1-patches/bn](https://github.com/sp1-patches/bn) | BN254 | 0.6.0 | -| bls12_381 | [sp1-patches/bls12_381](https://github.com/sp1-patches/bls12_381) | BLS12-381 | 0.8.0 | - -## Using Patched Crates - -To use the patched libraries, you can use corresponding patch entries in your program's `Cargo.toml` such as: - -```toml -[patch.crates-io] -sha2-v0-9-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "sha2-v0.9.8-patch-v1" } -sha2-v0-10-6 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "sha2-v0.10.6-patch-v1" } -sha2-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "sha2-v0.10.8-patch-v1" } -sha3-v0-9-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "sha3-v0.9.8-patch-v1" } -sha3-v0-10-6 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "sha3-v0.10.6-patch-v1" } -sha3-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "sha3-v0.10.8-patch-v1" } -crypto-bigint = { git = "https://github.com/sp1-patches/RustCrypto-bigint", tag = "crypto_bigint-v0.5.5-patch-v1" } -tiny-keccak = { git = "https://github.com/sp1-patches/tiny-keccak", tag = "tiny_keccak-v2.0.2-patch-v1" } -substrate-bn = { git = "https://github.com/sp1-patches/bn", tag = "substrate_bn-v0.6.0-patch-v1" } -bls12_381 = { git = "https://github.com/sp1-patches/bls12_381", tag = "bls12_381-v0.8.0-patch-v1" } - -# For sp1 versions >= 3.4.0 -curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "patch-v4.1.3-v3.4.0" } -# For sp1 versions < 3.4.0 -curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "curve25519_dalek-v4.1.3-patch-v1" } -curve25519-dalek-ng = { git = "https://github.com/sp1-patches/curve25519-dalek-ng", tag = "curve25519_dalek_ng-v4.1.1-patch-v1" } -ed25519-consensus = { git = "https://github.com/sp1-patches/ed25519-consensus", tag = "ed25519_consensus-v2.1.0-patch-v1" } -# For sp1 versions >= 3.3.0 -ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", tag = "ecdsa-v0.16.9-patch-v3.3.0" } -secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "secp256k1-v0.29.0-patch-v3.3.0" } -# For sp1 versions < 3.3.0 -ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", tag = "ecdsa-v0.16.9-patch-v1" } -secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "secp256k1-v0.29.0-patch-v1" } -``` - -If you are patching a crate from Github instead of from crates.io, you need to specify the -repository in the patch section. For example: - -```toml -[patch."https://github.com/RustCrypto/hashes"] -sha3 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "sha3-v0.10.8-patch-v1" } -``` - -An example of using patched crates is available in our [Tendermint Example](https://github.com/succinctlabs/sp1/blob/main/examples/tendermint/program/Cargo.toml#L22-L25). - -## Ed25519 Acceleration - -To accelerate Ed25519 operations, you'll need to patch crates depending on if you're using the `ed25519-consensus` or `ed25519-dalek` library in your program or dependencies. - -Generally, `ed25519-consensus` has better performance than `ed25519-dalek` by a factor of 2. - -### Patches - -Apply the following patches based on what crates are in your dependencies. - -- `ed25519-consensus` - - ```toml - ed25519-consensus = { git = "https://github.com/sp1-patches/ed25519-consensus", tag = "ed25519_consensus-v2.1.0-patch-v1" } - ``` - - Note: The curve operations for Ed25519 occur mainly inside of `curve25519-dalek-ng`, but the crate also exposes - a `u32_backend` feature flag which accelerates signature recovery by 10% over the default `u64_backend`, which is why - `ed25519-consensus` is patched rather than `ed25519-dalek`. - -- `ed25519-dalek` - - If using `ed25519-dalek` version `2.1`, you can patch it with the following: - - ```toml - curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "curve25519_dalek-v4.1.3-patch-v1" } - ``` - - If using `ed25519-dalek` version `1.0.1`, you can patch it with the following: - - ```toml - ed25519-dalek = { git = "https://github.com/sp1-patches/ed25519-dalek", tag = "ed25519_dalek-v1.0.1-patch-v1" } - ``` - - Note: We need to patch the underlying Ed25519 curve operations in the `curve25519-dalek` crate. `ed25519-dalek` - version `2.1` uses `curve25519-dalek` version `4.1.3`, while `1.0.1` uses `3.2.0`. For version `2.1`, we patch - `curve25519-dalek` directly, while for version `1.0.1`, we patch `ed25519-dalek`. - -- `curve25519-dalek` - - ```toml - curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "curve25519_dalek-v4.1.3-patch-v1" } - ``` - -- `curve25519-dalek-ng` - - ```toml - curve25519-dalek-ng = { git = "https://github.com/sp1-patches/curve25519-dalek-ng", tag = "curve25519_dalek_ng-v4.1.1-patch-v1" } - ``` - -## Secp256k1 Acceleration - -To accelerate Secp256k1 operations, you'll need to patch `k256` or `secp256k1` depending on your usage. - -Generally, if a crate you're using (ex. `revm`) has support for using `k256` instead of `secp256k1`, you should use `k256`. - -### Patches - -Apply the following patches based on what crates are in your dependencies. - -- `k256` - - ```toml - ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", tag = "ecdsa-v0.16.9-patch-v1" } - ``` - - Note: The curve operations for `k256` are inside of the `ecdsa-core` crate, so you don't need to patch `k256` itself, and just patching `ecdsa-core` is enough. - -- `secp256k1` - - ```toml - secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "secp256k1-v0.29.0-patch-v1" } - ``` - -## BN254 Acceleration - -To accelerate BN254 (Also known as BN128 and Alt-BN128), you will need to patch the `substrate-bn` crate. - -### Patches - -Apply the patch by adding the following to your list of dependencies: - -```rust -substrate-bn = { git = "https://github.com/sp1-patches/bn", tag = "substrate_bn-v0.6.0-patch-v1" } -``` - -### Performance Benchmarks for Patched `substrate-bn` in `revm` - -| Operation | Standard `substrate-bn` Cycles | Patched `substrate-bn` Cycles | Times Faster | -| --------- | ------------------------------ | ----------------------------- | ------------ | -| run-add | 170,298 | 111,615 | 1.52 | -| run-mul | 1,860,836 | 243,830 | 7.64 | -| run-pair | 255,627,625 | 11,528,503 | 22.15 | - -Note: The operations `run-add`, `run-mul`, and `run-pair` are from the `revm` crate, specifically from the file `crates/precompile/src/bn128.rs` on GitHub. In the patched version of the `substrate-bn` crate, these functions utilize SP1's BN254 Fp precompiles. - -To accelerate [revm](https://github.com/bluealloy/revm) in SP1 using the BN254 patched crate, replace the `substrate-bn` crate with the patched crate by adding the following to `crates/precompile/Cargo.toml`: - -```toml -bn = { git = "https://github.com/sp1-patches/bn", package = "substrate-bn", tag = "substrate_bn-v0.6.0-patch-v1" } -``` - -## BLS12-381 Acceleration - -To accelerate BLS12-381 operations, you'll need to patch the `bls12_381` crate. Apply the following patch by adding the following to your list of dependencies: - -```toml -bls12_381 = { git = "https://github.com/sp1-patches/bls12_381", tag = "bls12_381-v0.8.0-patch-v1" } -``` - -This patch significantly improves the performance of BLS12-381 operations, making it essential for applications that rely heavily on these cryptographic primitives. - -### Performance Benchmarks for Patched `bls12_381` in [`kzg-rs`](https://github.com/succinctlabs/kzg-rs) - -| Test | Unpatched Cycles | Patched Cycles | Improvement (x faster) | -| -------------------------------------- | ---------------- | -------------- | ---------------------- | -| Verify blob KZG proof | 265,322,934 | 27,166,173 | 9.77x | -| Verify blob KZG proof batch (10 blobs) | 1,228,277,089 | 196,571,578 | 6.25x | -| Evaluate polynomial in evaluation form | 90,717,711 | 59,370,556 | 1.53x | -| Compute challenge | 63,400,511 | 57,341,532 | 1.11x | -| Verify KZG proof | 212,708,597 | 9,390,640 | 22.65x | - -## Troubleshooting - -### Verifying Patch Usage: Cargo - -You can check if the patch was applied by using cargo's tree command to print the dependencies of the crate you patched. - -```bash -cargo tree -p sha2@0.9.8 -``` - -Next to the package name, it should have a link to the Github repository that you patched with. - -Ex. - -```text -sha2 v0.9.8 (https://github.com/sp1-patches/RustCrypto-hashes?branch=patch-sha2-v0.9.8#afdbfb09) -├── ... -``` - -### Verifying Patch Usage: SP1 - -To check if a precompile is used by your program, you can view SP1's ExecutionReport, which is returned when executing a program with `execute`. In `ExecutionReport` you can view the `syscall_counts` map to view if a specific syscall was used. - -For example, if you wanted to check `sha256` was used, you would look for `SHA_EXTEND` and `SHA_COMPRESS` in `syscall_counts`. - -An example of this is available in our [Patch Testing Example](https://github.com/succinctlabs/sp1/blob/dd032eb23949828d244d1ad1f1569aa78155837c/examples/patch-testing/script/src/main.rs). - -### Cargo Version Issues - -If you encounter issues with version commits on your patches, you should try updating the patched crate manually. - -```bash -cargo update -p -``` - -If you encounter issues relating to cargo / git, you can try setting `CARGO_NET_GIT_FETCH_WITH_CLI`: - -```bash -CARGO_NET_GIT_FETCH_WITH_CLI=true cargo update -p -``` - -You can permanently set this value in `~/.cargo/config`: - -```toml -[net] -git-fetch-with-cli = true -``` diff --git a/book2/docs/writing-programs/precompiles.mdx b/book2/docs/writing-programs/precompiles.mdx deleted file mode 100644 index ded8be759d..0000000000 --- a/book2/docs/writing-programs/precompiles.mdx +++ /dev/null @@ -1,24 +0,0 @@ -import Example from "../../static/crates_zkvm_lib_src_lib.rs.mdx"; -import CodeBlock from '@theme/CodeBlock'; - -# Precompiles - -Precompiles are built into the SP1 zkVM and accelerate commonly used operations such as elliptic curve arithmetic and hashing. Under the hood, precompiles are implemented as custom STARK tables dedicated to proving one or few operations. **They typically improve the performance -of executing expensive operations in SP1 by a few orders of magnitude.** - -Inside the zkVM, precompiles are exposed as system calls executed through the `ecall` RISC-V instruction. -Each precompile has a unique system call number and implements an interface for the computation. - -SP1 also has been designed specifically to make it easy for external contributors to create and extend the zkVM with their own precompiles. -To learn more about this, you can look at implementations of existing precompiles in the [precompiles](https://github.com/succinctlabs/sp1/tree/main/crates/core/executor/src/events/precompiles) folder. More documentation on this will be coming soon. - -**To use precompiles, we typically recommend you interact with them through [patches](./patched-crates.md), which are crates modified -to use these precompiles under the hood, without requiring you to call system calls directly.** - -## Specification - -If you are an advanced user you can interact with the precompiles directly using external system calls. - -Here is a list of all available system calls & precompiles. - - diff --git a/book2/docs/writing-programs/proof-aggregation.md b/book2/docs/writing-programs/proof-aggregation.md deleted file mode 100644 index dc13d6e42c..0000000000 --- a/book2/docs/writing-programs/proof-aggregation.md +++ /dev/null @@ -1,58 +0,0 @@ -# Proof Aggregation - -SP1 supports proof aggregation and recursion, which allows you to verify an SP1 proof within SP1. Use cases include: - -- Reducing on-chain verification costs by aggregating multiple SP1 proofs into a single SP1 proof. -- Proving logic that is split into multiple proofs, such as proving a statement about a rollup's state transition function by proving each block individually and aggregating these proofs to produce a final proof of a range of blocks. - -**For an example of how to use proof aggregation and recursion in SP1, refer to the [aggregation example](https://github.com/succinctlabs/sp1/blob/main/examples/aggregation/script/src/main.rs).** - -Note that to verify an SP1 proof inside SP1, you must generate a "compressed" SP1 proof (see [Proof Types](../generating-proofs/proof-types.md) for more details). - -### When to use aggregation - -Note that by itself, SP1 can already prove arbitrarily large programs by chunking the program's execution into multiple "shards" (contiguous batches of cycles) and generating proofs for each shard in parallel, and then recursively aggregating the proofs. Thus, aggregation is generally **not necessary** for most use-cases, as SP1's proving for large programs is already parallelized. However, aggregation can be useful for aggregating computations that require more than the zkVM's limited (~2GB) memory or for aggregating multiple SP1 proofs from different parties into a single proof to save on onchain verification costs. - -## Verifying Proofs inside the zkVM - -To verify a proof inside the zkVM, you can use the `sp1_zkvm::lib::verify::verify_sp1_proof` function. - -```rust -sp1_zkvm::lib::verify::verify_sp1_proof(vkey, public_values_digest); -``` - -**You do not need to pass in the proof as input into the syscall, as the proof will automatically be read for the proof input stream by the prover.** - -Note that you must include the `verify` feature in your `Cargo.toml` for `sp1-zkvm` to be able to use the `verify_proof` function (like [this](https://github.com/succinctlabs/sp1/blob/main/examples/aggregation/program/Cargo.toml#L11)). - -## Generating Proofs with Aggregation - -To provide an existing proof as input to the SP1 zkVM, you can use the existing `SP1Stdin` object -which is already used for all inputs to the zkVM. - -```rust -# Generating proving key and verifying key. -let (input_pk, input_vk) = client.setup(PROOF_INPUT_ELF); -let (aggregation_pk, aggregation_vk) = client.setup(AGGREGATION_ELF); - -// Generate a proof that will be recursively verified / aggregated. Note that we use the "compressed" -// proof type, which is necessary for aggregation. -let mut stdin = SP1Stdin::new(); -let input_proof = client - .prove(&input_pk, stdin) - .compressed() - .run() - .expect("proving failed"); - -// Create a new stdin object to write the proof and the corresponding verifying key to. -let mut stdin = SP1Stdin::new(); -stdin.write_proof(input_proof, input_vk); - -// Generate a proof that will recursively verify / aggregate the input proof. -let aggregation_proof = client - .prove(&aggregation_pk, stdin) - .compressed() - .run() - .expect("proving failed"); - -``` diff --git a/book2/docs/writing-programs/setup.md b/book2/docs/writing-programs/setup.md deleted file mode 100644 index 2cd677f4a9..0000000000 --- a/book2/docs/writing-programs/setup.md +++ /dev/null @@ -1,50 +0,0 @@ -# Setup - -In this section, we will teach you how to setup a self-contained crate which can be compiled as a program that can be executed inside the zkVM. - -## Create Project with CLI (Recommended) - -The recommended way to setup your first program to prove inside the zkVM is using the method described in [Quickstart](../getting-started/quickstart.md) which will create a program folder. - -```bash -cargo prove new -cd program -``` - -## Manual Project Setup - -You can also manually setup a project. First create a new Rust project using `cargo`: - -```bash -cargo new program -cd program -``` - -### Cargo Manifest - -Inside this crate, add the `sp1-zkvm` crate as a dependency. Your `Cargo.toml` should look like the following: - -```rust -[workspace] -[package] -version = "0.1.0" -name = "program" -edition = "2021" - -[dependencies] -sp1-zkvm = "2.0.0" -``` - -The `sp1-zkvm` crate includes necessary utilities for your program, including handling inputs and outputs, -precompiles, patches, and more. - -### main.rs - -Inside the `src/main.rs` file, you must make sure to include these two lines to ensure that your program properly compiles to a valid SP1 program. - -```rust -#![no_main] -sp1_zkvm::entrypoint!(main); -``` - -These two lines of code wrap your main function with some additional logic to ensure that your program compiles correctly with the RISC-V target. diff --git a/book2/docusaurus.config.ts b/book2/docusaurus.config.ts deleted file mode 100644 index df730e12ca..0000000000 --- a/book2/docusaurus.config.ts +++ /dev/null @@ -1,113 +0,0 @@ -import {themes as prismThemes} from 'prism-react-renderer'; -import type {Config} from '@docusaurus/types'; -import type * as Preset from '@docusaurus/preset-classic'; - -// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) - -const config: Config = { - title: 'SP1 Docs', - tagline: 'Prove the worlds software.', - favicon: 'img/favicon.ico', - - // Set the production url of your site here - url: 'https://docs.succinct.xyz', - // Set the // pathname under which your site is served - // For GitHub pages deployment, it is often '//' - baseUrl: '/', - - // GitHub pages deployment config. - // If you aren't using GitHub pages, you don't need these. - organizationName: 'succinctlabs', // Usually your GitHub org/user name. - projectName: 'sp1', // Usually your repo name. - - onBrokenLinks: 'throw', - onBrokenMarkdownLinks: 'warn', - - // Even if you don't use internationalization, you can use this field to set - // useful metadata like html lang. For example, if your site is Chinese, you - // may want to replace "en" with "zh-Hans". - i18n: { - defaultLocale: 'en', - locales: ['en'], - }, - - presets: [ - [ - "classic", - ({ - docs: { - routeBasePath: "docs", - sidebarPath: require.resolve("./sidebars.ts"), - }, - blog: false, - pages: {}, - theme: { - customCss: require.resolve("./src/css/custom.css"), - }, - }), - ], - ], - - themeConfig: { - docs: { - sidebar: { - hideable: false, - } - }, - navbar: { - title: 'SP1 Docs', - logo: { - alt: 'Succinct Logo', - src: 'img/favicon.ico', - }, - items: [ - { - href: 'https://github.com/succinctlabs/sp1', - label: 'GitHub', - position: 'right', - }, - ], - }, - footer: { - style: 'dark', - links: [ - { - title: 'Docs', - items: [ - { - label: 'Home', - to: '/docs/summary', - }, - ], - }, - { - title: 'Community', - items: [ - { - label: 'X', - href: 'https://x.com/succinctlabs', - }, - ], - }, - { - title: 'More', - items: [ - { - label: 'Website', - href: 'https://succinct.xyz', - }, - ], - }, - ], - }, - prism: { - theme: prismThemes.github, - darkTheme: prismThemes.dracula, - }, - colorMode: { - defaultMode: 'dark', - } - } satisfies Preset.ThemeConfig, -}; - -export default config; diff --git a/book2/package-lock.json b/book2/package-lock.json deleted file mode 100644 index 450a7dab4e..0000000000 --- a/book2/package-lock.json +++ /dev/null @@ -1,18242 +0,0 @@ -{ - "name": "book-2", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "book-2", - "version": "0.0.0", - "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/plugin-content-docs": "^3.6.3", - "@docusaurus/preset-classic": "3.6.3", - "@mdx-js/react": "^3.0.0", - "clsx": "^2.0.0", - "prism-react-renderer": "^2.3.0", - "react": "^18.0.0", - "react-dom": "^18.0.0", - "remark": "^15.0.1", - "remark-import-partial": "^0.0.2" - }, - "devDependencies": { - "@docusaurus/module-type-aliases": "3.6.3", - "@docusaurus/tsconfig": "3.6.3", - "@docusaurus/types": "3.6.3", - "typescript": "~5.6.2" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@algolia/autocomplete-core": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz", - "integrity": "sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==", - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-plugin-algolia-insights": "1.17.7", - "@algolia/autocomplete-shared": "1.17.7" - } - }, - "node_modules/@algolia/autocomplete-plugin-algolia-insights": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz", - "integrity": "sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==", - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-shared": "1.17.7" - }, - "peerDependencies": { - "search-insights": ">= 1 < 3" - } - }, - "node_modules/@algolia/autocomplete-preset-algolia": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz", - "integrity": "sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==", - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-shared": "1.17.7" - }, - "peerDependencies": { - "@algolia/client-search": ">= 4.9.1 < 6", - "algoliasearch": ">= 4.9.1 < 6" - } - }, - "node_modules/@algolia/autocomplete-shared": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz", - "integrity": "sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==", - "license": "MIT", - "peerDependencies": { - "@algolia/client-search": ">= 4.9.1 < 6", - "algoliasearch": ">= 4.9.1 < 6" - } - }, - "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.24.0.tgz", - "integrity": "sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww==", - "license": "MIT", - "dependencies": { - "@algolia/cache-common": "4.24.0" - } - }, - "node_modules/@algolia/cache-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.24.0.tgz", - "integrity": "sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g==", - "license": "MIT" - }, - "node_modules/@algolia/cache-in-memory": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.24.0.tgz", - "integrity": "sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w==", - "license": "MIT", - "dependencies": { - "@algolia/cache-common": "4.24.0" - } - }, - "node_modules/@algolia/client-abtesting": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.15.0.tgz", - "integrity": "sha512-FaEM40iuiv1mAipYyiptP4EyxkJ8qHfowCpEeusdHUC4C7spATJYArD2rX3AxkVeREkDIgYEOuXcwKUbDCr7Nw==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.15.0", - "@algolia/requester-browser-xhr": "5.15.0", - "@algolia/requester-fetch": "5.15.0", - "@algolia/requester-node-http": "5.15.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-account": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.24.0.tgz", - "integrity": "sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-account/node_modules/@algolia/client-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", - "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-account/node_modules/@algolia/client-search": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", - "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-analytics": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.24.0.tgz", - "integrity": "sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-analytics/node_modules/@algolia/client-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", - "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-analytics/node_modules/@algolia/client-search": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", - "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-common": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.15.0.tgz", - "integrity": "sha512-IofrVh213VLsDkPoSKMeM9Dshrv28jhDlBDLRcVJQvlL8pzue7PEB1EZ4UoJFYS3NSn7JOcJ/V+olRQzXlJj1w==", - "license": "MIT", - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-insights": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.15.0.tgz", - "integrity": "sha512-bDDEQGfFidDi0UQUCbxXOCdphbVAgbVmxvaV75cypBTQkJ+ABx/Npw7LkFGw1FsoVrttlrrQbwjvUB6mLVKs/w==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.15.0", - "@algolia/requester-browser-xhr": "5.15.0", - "@algolia/requester-fetch": "5.15.0", - "@algolia/requester-node-http": "5.15.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-personalization": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.24.0.tgz", - "integrity": "sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-personalization/node_modules/@algolia/client-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", - "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-query-suggestions": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.15.0.tgz", - "integrity": "sha512-wu8GVluiZ5+il8WIRsGKu8VxMK9dAlr225h878GGtpTL6VBvwyJvAyLdZsfFIpY0iN++jiNb31q2C1PlPL+n/A==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.15.0", - "@algolia/requester-browser-xhr": "5.15.0", - "@algolia/requester-fetch": "5.15.0", - "@algolia/requester-node-http": "5.15.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-search": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.15.0.tgz", - "integrity": "sha512-Z32gEMrRRpEta5UqVQA612sLdoqY3AovvUPClDfMxYrbdDAebmGDVPtSogUba1FZ4pP5dx20D3OV3reogLKsRA==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.15.0", - "@algolia/requester-browser-xhr": "5.15.0", - "@algolia/requester-fetch": "5.15.0", - "@algolia/requester-node-http": "5.15.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/events": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", - "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==", - "license": "MIT" - }, - "node_modules/@algolia/ingestion": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.15.0.tgz", - "integrity": "sha512-MkqkAxBQxtQ5if/EX2IPqFA7LothghVyvPoRNA/meS2AW2qkHwcxjuiBxv4H6mnAVEPfJlhu9rkdVz9LgCBgJg==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.15.0", - "@algolia/requester-browser-xhr": "5.15.0", - "@algolia/requester-fetch": "5.15.0", - "@algolia/requester-node-http": "5.15.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/logger-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.24.0.tgz", - "integrity": "sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==", - "license": "MIT" - }, - "node_modules/@algolia/logger-console": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.24.0.tgz", - "integrity": "sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg==", - "license": "MIT", - "dependencies": { - "@algolia/logger-common": "4.24.0" - } - }, - "node_modules/@algolia/monitoring": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.15.0.tgz", - "integrity": "sha512-QPrFnnGLMMdRa8t/4bs7XilPYnoUXDY8PMQJ1sf9ZFwhUysYYhQNX34/enoO0LBjpoOY6rLpha39YQEFbzgKyQ==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.15.0", - "@algolia/requester-browser-xhr": "5.15.0", - "@algolia/requester-fetch": "5.15.0", - "@algolia/requester-node-http": "5.15.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/recommend": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.24.0.tgz", - "integrity": "sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==", - "license": "MIT", - "dependencies": { - "@algolia/cache-browser-local-storage": "4.24.0", - "@algolia/cache-common": "4.24.0", - "@algolia/cache-in-memory": "4.24.0", - "@algolia/client-common": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/logger-common": "4.24.0", - "@algolia/logger-console": "4.24.0", - "@algolia/requester-browser-xhr": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/requester-node-http": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/recommend/node_modules/@algolia/client-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", - "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/recommend/node_modules/@algolia/client-search": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", - "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/recommend/node_modules/@algolia/requester-browser-xhr": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz", - "integrity": "sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0" - } - }, - "node_modules/@algolia/recommend/node_modules/@algolia/requester-node-http": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz", - "integrity": "sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0" - } - }, - "node_modules/@algolia/requester-browser-xhr": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.15.0.tgz", - "integrity": "sha512-Po/GNib6QKruC3XE+WKP1HwVSfCDaZcXu48kD+gwmtDlqHWKc7Bq9lrS0sNZ456rfCKhXksOmMfUs4wRM/Y96w==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.15.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/requester-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.24.0.tgz", - "integrity": "sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==", - "license": "MIT" - }, - "node_modules/@algolia/requester-fetch": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.15.0.tgz", - "integrity": "sha512-rOZ+c0P7ajmccAvpeeNrUmEKoliYFL8aOR5qGW5pFq3oj3Iept7Y5mEtEsOBYsRt6qLnaXn4zUKf+N8nvJpcIw==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.15.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/requester-node-http": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.15.0.tgz", - "integrity": "sha512-b1jTpbFf9LnQHEJP5ddDJKE2sAlhYd7EVSOWgzo/27n/SfCoHfqD0VWntnWYD83PnOKvfe8auZ2+xCb0TXotrQ==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.15.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/transporter": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.24.0.tgz", - "integrity": "sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==", - "license": "MIT", - "dependencies": { - "@algolia/cache-common": "4.24.0", - "@algolia/logger-common": "4.24.0", - "@algolia/requester-common": "4.24.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", - "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", - "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.0", - "@babel/generator": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.0", - "@babel/parser": "^7.26.0", - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.26.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", - "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.26.2", - "@babel/types": "^7.26.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", - "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", - "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/traverse": "^7.25.9", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", - "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "regexpu-core": "^6.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", - "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", - "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", - "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", - "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-wrap-function": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", - "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", - "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", - "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", - "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", - "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", - "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.26.0" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", - "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", - "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", - "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", - "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", - "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", - "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", - "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", - "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", - "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", - "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", - "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", - "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", - "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", - "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", - "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", - "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/traverse": "^7.25.9", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", - "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/template": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", - "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", - "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", - "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", - "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", - "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", - "license": "MIT", - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", - "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", - "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", - "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", - "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", - "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", - "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", - "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", - "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", - "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-simple-access": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", - "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", - "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", - "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", - "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", - "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", - "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", - "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", - "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", - "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", - "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", - "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", - "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.9.tgz", - "integrity": "sha512-Ncw2JFsJVuvfRsa2lSHiC55kETQVLSnsYGQ1JDDwkUeWGTL/8Tom8aLTnlqgoeuopWrbbGndrc9AlLYrIosrow==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", - "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", - "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", - "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", - "license": "MIT", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", - "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", - "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", - "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", - "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", - "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", - "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", - "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", - "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", - "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", - "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz", - "integrity": "sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-syntax-typescript": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", - "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", - "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", - "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", - "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", - "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.26.0", - "@babel/plugin-syntax-import-attributes": "^7.26.0", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.25.9", - "@babel/plugin-transform-async-generator-functions": "^7.25.9", - "@babel/plugin-transform-async-to-generator": "^7.25.9", - "@babel/plugin-transform-block-scoped-functions": "^7.25.9", - "@babel/plugin-transform-block-scoping": "^7.25.9", - "@babel/plugin-transform-class-properties": "^7.25.9", - "@babel/plugin-transform-class-static-block": "^7.26.0", - "@babel/plugin-transform-classes": "^7.25.9", - "@babel/plugin-transform-computed-properties": "^7.25.9", - "@babel/plugin-transform-destructuring": "^7.25.9", - "@babel/plugin-transform-dotall-regex": "^7.25.9", - "@babel/plugin-transform-duplicate-keys": "^7.25.9", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-dynamic-import": "^7.25.9", - "@babel/plugin-transform-exponentiation-operator": "^7.25.9", - "@babel/plugin-transform-export-namespace-from": "^7.25.9", - "@babel/plugin-transform-for-of": "^7.25.9", - "@babel/plugin-transform-function-name": "^7.25.9", - "@babel/plugin-transform-json-strings": "^7.25.9", - "@babel/plugin-transform-literals": "^7.25.9", - "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", - "@babel/plugin-transform-member-expression-literals": "^7.25.9", - "@babel/plugin-transform-modules-amd": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", - "@babel/plugin-transform-modules-systemjs": "^7.25.9", - "@babel/plugin-transform-modules-umd": "^7.25.9", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-new-target": "^7.25.9", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", - "@babel/plugin-transform-numeric-separator": "^7.25.9", - "@babel/plugin-transform-object-rest-spread": "^7.25.9", - "@babel/plugin-transform-object-super": "^7.25.9", - "@babel/plugin-transform-optional-catch-binding": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9", - "@babel/plugin-transform-private-methods": "^7.25.9", - "@babel/plugin-transform-private-property-in-object": "^7.25.9", - "@babel/plugin-transform-property-literals": "^7.25.9", - "@babel/plugin-transform-regenerator": "^7.25.9", - "@babel/plugin-transform-regexp-modifiers": "^7.26.0", - "@babel/plugin-transform-reserved-words": "^7.25.9", - "@babel/plugin-transform-shorthand-properties": "^7.25.9", - "@babel/plugin-transform-spread": "^7.25.9", - "@babel/plugin-transform-sticky-regex": "^7.25.9", - "@babel/plugin-transform-template-literals": "^7.25.9", - "@babel/plugin-transform-typeof-symbol": "^7.25.9", - "@babel/plugin-transform-unicode-escapes": "^7.25.9", - "@babel/plugin-transform-unicode-property-regex": "^7.25.9", - "@babel/plugin-transform-unicode-regex": "^7.25.9", - "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.38.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.25.9.tgz", - "integrity": "sha512-D3to0uSPiWE7rBrdIICCd0tJSIGpLaaGptna2+w7Pft5xMqLpA1sz99DK5TZ1TjGbdQ/VI1eCSZ06dv3lT4JOw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-transform-react-display-name": "^7.25.9", - "@babel/plugin-transform-react-jsx": "^7.25.9", - "@babel/plugin-transform-react-jsx-development": "^7.25.9", - "@babel/plugin-transform-react-pure-annotations": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", - "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", - "@babel/plugin-transform-typescript": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", - "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.26.0.tgz", - "integrity": "sha512-YXHu5lN8kJCb1LOb9PgV6pvak43X2h4HvRApcN5SdWeaItQOzfn1hgP6jasD6KWQyJDBxrVmA9o9OivlnNJK/w==", - "license": "MIT", - "dependencies": { - "core-js-pure": "^3.30.2", - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", - "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", - "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@csstools/cascade-layer-name-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.4.tgz", - "integrity": "sha512-7DFHlPuIxviKYZrOiwVU/PiHLm3lLUR23OMuEEtfEOQTOp9hzQ2JjdY6X5H18RVuUPJqSCI+qNnD5iOLMVE0bA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - } - }, - "node_modules/@csstools/color-helpers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.1.tgz", - "integrity": "sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - } - }, - "node_modules/@csstools/css-calc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.0.tgz", - "integrity": "sha512-X69PmFOrjTZfN5ijxtI8hZ9kRADFSLrmmQ6hgDJ272Il049WGKpDY64KhrFm/7rbWve0z81QepawzjkKlqkNGw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - } - }, - "node_modules/@csstools/css-color-parser": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.6.tgz", - "integrity": "sha512-S/IjXqTHdpI4EtzGoNCHfqraXF37x12ZZHA1Lk7zoT5pm2lMjFuqhX/89L7dqX4CcMacKK+6ZCs5TmEGb/+wKw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/color-helpers": "^5.0.1", - "@csstools/css-calc": "^2.1.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - } - }, - "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", - "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.3" - } - }, - "node_modules/@csstools/css-tokenizer": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", - "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@csstools/media-query-list-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz", - "integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - } - }, - "node_modules/@csstools/postcss-cascade-layers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.1.tgz", - "integrity": "sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/selector-specificity": "^5.0.0", - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-cascade-layers/node_modules/@csstools/selector-specificity": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", - "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" - } - }, - "node_modules/@csstools/postcss-cascade-layers/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@csstools/postcss-color-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.6.tgz", - "integrity": "sha512-EcvXfC60cTIumzpsxWuvVjb7rsJEHPvqn3jeMEBUaE3JSc4FRuP7mEQ+1eicxWmIrs3FtzMH9gR3sgA5TH+ebQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.6", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-color-mix-function": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.6.tgz", - "integrity": "sha512-jVKdJn4+JkASYGhyPO+Wa5WXSx1+oUgaXb3JsjJn/BlrtFh5zjocCY7pwWi0nuP24V1fY7glQsxEYcYNy0dMFg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.6", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-content-alt-text": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.4.tgz", - "integrity": "sha512-YItlZUOuZJCBlRaCf8Aucc1lgN41qYGALMly0qQllrxYJhiyzlI6RxOTMUvtWk+KhS8GphMDsDhKQ7KTPfEMSw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-exponential-functions": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.5.tgz", - "integrity": "sha512-mi8R6dVfA2nDoKM3wcEi64I8vOYEgQVtVKCfmLHXupeLpACfGAided5ddMt5f+CnEodNu4DifuVwb0I6fQDGGQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.0", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-font-format-keywords": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz", - "integrity": "sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-gamut-mapping": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.6.tgz", - "integrity": "sha512-0ke7fmXfc8H+kysZz246yjirAH6JFhyX9GTlyRnM0exHO80XcA9zeJpy5pOp5zo/AZiC/q5Pf+Hw7Pd6/uAoYA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.6", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-gradients-interpolation-method": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.6.tgz", - "integrity": "sha512-Itrbx6SLUzsZ6Mz3VuOlxhbfuyLTogG5DwEF1V8dAi24iMuvQPIHd7Ti+pNDp7j6WixndJGZaoNR0f9VSzwuTg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.6", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-hwb-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.6.tgz", - "integrity": "sha512-927Pqy3a1uBP7U8sTfaNdZVB0mNXzIrJO/GZ8us9219q9n06gOqCdfZ0E6d1P66Fm0fYHvxfDbfcUuwAn5UwhQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.6", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-ic-unit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.0.tgz", - "integrity": "sha512-9QT5TDGgx7wD3EEMN3BSUG6ckb6Eh5gSPT5kZoVtUuAonfPmLDJyPhqR4ntPpMYhUKAMVKAg3I/AgzqHMSeLhA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-initial": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.0.tgz", - "integrity": "sha512-dv2lNUKR+JV+OOhZm9paWzYBXOCi+rJPqJ2cJuhh9xd8USVrd0cBEPczla81HNOyThMQWeCcdln3gZkQV2kYxA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-is-pseudo-class": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.1.tgz", - "integrity": "sha512-JLp3POui4S1auhDR0n8wHd/zTOWmMsmK3nQd3hhL6FhWPaox5W7j1se6zXOG/aP07wV2ww0lxbKYGwbBszOtfQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/selector-specificity": "^5.0.0", - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-is-pseudo-class/node_modules/@csstools/selector-specificity": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", - "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" - } - }, - "node_modules/@csstools/postcss-is-pseudo-class/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@csstools/postcss-light-dark-function": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.7.tgz", - "integrity": "sha512-ZZ0rwlanYKOHekyIPaU+sVm3BEHCe+Ha0/px+bmHe62n0Uc1lL34vbwrLYn6ote8PHlsqzKeTQdIejQCJ05tfw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-logical-float-and-clear": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-3.0.0.tgz", - "integrity": "sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-logical-overflow": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-2.0.0.tgz", - "integrity": "sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-logical-overscroll-behavior": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-2.0.0.tgz", - "integrity": "sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-logical-resize": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-resize/-/postcss-logical-resize-3.0.0.tgz", - "integrity": "sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-logical-viewport-units": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.3.tgz", - "integrity": "sha512-OC1IlG/yoGJdi0Y+7duz/kU/beCwO+Gua01sD6GtOtLi7ByQUpcIqs7UE/xuRPay4cHgOMatWdnDdsIDjnWpPw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-media-minmax": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.5.tgz", - "integrity": "sha512-sdh5i5GToZOIAiwhdntRWv77QDtsxP2r2gXW/WbLSCoLr00KTq/yiF1qlQ5XX2+lmiFa8rATKMcbwl3oXDMNew==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/css-calc": "^2.1.0", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/media-query-list-parser": "^4.0.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.4.tgz", - "integrity": "sha512-AnGjVslHMm5xw9keusQYvjVWvuS7KWK+OJagaG0+m9QnIjZsrysD2kJP/tr/UJIyYtMCtu8OkUd+Rajb4DqtIQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/media-query-list-parser": "^4.0.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-nested-calc": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-4.0.0.tgz", - "integrity": "sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-normalize-display-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz", - "integrity": "sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-oklab-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.6.tgz", - "integrity": "sha512-Hptoa0uX+XsNacFBCIQKTUBrFKDiplHan42X73EklG6XmQLG7/aIvxoNhvZ7PvOWMt67Pw3bIlUY2nD6p5vL8A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.6", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.0.0.tgz", - "integrity": "sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-random-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-1.0.1.tgz", - "integrity": "sha512-Ab/tF8/RXktQlFwVhiC70UNfpFQRhtE5fQQoP2pO+KCPGLsLdWFiOuHgSRtBOqEshCVAzR4H6o38nhvRZq8deA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.0", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-relative-color-syntax": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.6.tgz", - "integrity": "sha512-yxP618Xb+ji1I624jILaYM62uEmZcmbdmFoZHoaThw896sq0vU39kqTTF+ZNic9XyPtPMvq0vyvbgmHaszq8xg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.6", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-scope-pseudo-class": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.1.tgz", - "integrity": "sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-scope-pseudo-class/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@csstools/postcss-sign-functions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.0.tgz", - "integrity": "sha512-SLcc20Nujx/kqbSwDmj6oaXgpy3UjFhBy1sfcqPgDkHfOIfUtUVH7OXO+j7BU4v/At5s61N5ZX6shvgPwluhsA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.0", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-stepped-value-functions": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.5.tgz", - "integrity": "sha512-G6SJ6hZJkhxo6UZojVlLo14MohH4J5J7z8CRBrxxUYy9JuZiIqUo5TBYyDGcE0PLdzpg63a7mHSJz3VD+gMwqw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.0", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-text-decoration-shorthand": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.1.tgz", - "integrity": "sha512-xPZIikbx6jyzWvhms27uugIc0I4ykH4keRvoa3rxX5K7lEhkbd54rjj/dv60qOCTisoS+3bmwJTeyV1VNBrXaw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/color-helpers": "^5.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.5.tgz", - "integrity": "sha512-/YQThYkt5MLvAmVu7zxjhceCYlKrYddK6LEmK5I4ojlS6BmO9u2yO4+xjXzu2+NPYmHSTtP4NFSamBCMmJ1NJA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.0", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-unset-value": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz", - "integrity": "sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/utilities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/utilities/-/utilities-2.0.0.tgz", - "integrity": "sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@docsearch/css": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.8.0.tgz", - "integrity": "sha512-pieeipSOW4sQ0+bE5UFC51AOZp9NGxg89wAlZ1BAQFaiRAGK1IKUaPQ0UGZeNctJXyqZ1UvBtOQh2HH+U5GtmA==", - "license": "MIT" - }, - "node_modules/@docsearch/react": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.8.0.tgz", - "integrity": "sha512-WnFK720+iwTVt94CxY3u+FgX6exb3BfN5kE9xUY6uuAH/9W/UFboBZFLlrw/zxFRHoHZCOXRtOylsXF+6LHI+Q==", - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-core": "1.17.7", - "@algolia/autocomplete-preset-algolia": "1.17.7", - "@docsearch/css": "3.8.0", - "algoliasearch": "^5.12.0" - }, - "peerDependencies": { - "@types/react": ">= 16.8.0 < 19.0.0", - "react": ">= 16.8.0 < 19.0.0", - "react-dom": ">= 16.8.0 < 19.0.0", - "search-insights": ">= 1 < 3" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "search-insights": { - "optional": true - } - } - }, - "node_modules/@docsearch/react/node_modules/@algolia/client-analytics": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.15.0.tgz", - "integrity": "sha512-lho0gTFsQDIdCwyUKTtMuf9nCLwq9jOGlLGIeQGKDxXF7HbiAysFIu5QW/iQr1LzMgDyM9NH7K98KY+BiIFriQ==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.15.0", - "@algolia/requester-browser-xhr": "5.15.0", - "@algolia/requester-fetch": "5.15.0", - "@algolia/requester-node-http": "5.15.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@docsearch/react/node_modules/@algolia/client-personalization": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.15.0.tgz", - "integrity": "sha512-LfaZqLUWxdYFq44QrasCDED5bSYOswpQjSiIL7Q5fYlefAAUO95PzBPKCfUhSwhb4rKxigHfDkd81AvEicIEoA==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.15.0", - "@algolia/requester-browser-xhr": "5.15.0", - "@algolia/requester-fetch": "5.15.0", - "@algolia/requester-node-http": "5.15.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@docsearch/react/node_modules/@algolia/recommend": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.15.0.tgz", - "integrity": "sha512-5eupMwSqMLDObgSMF0XG958zR6GJP3f7jHDQ3/WlzCM9/YIJiWIUoJFGsko9GYsA5xbLDHE/PhWtq4chcCdaGQ==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.15.0", - "@algolia/requester-browser-xhr": "5.15.0", - "@algolia/requester-fetch": "5.15.0", - "@algolia/requester-node-http": "5.15.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@docsearch/react/node_modules/algoliasearch": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.15.0.tgz", - "integrity": "sha512-Yf3Swz1s63hjvBVZ/9f2P1Uu48GjmjCN+Esxb6MAONMGtZB1fRX8/S1AhUTtsuTlcGovbYLxpHgc7wEzstDZBw==", - "license": "MIT", - "dependencies": { - "@algolia/client-abtesting": "5.15.0", - "@algolia/client-analytics": "5.15.0", - "@algolia/client-common": "5.15.0", - "@algolia/client-insights": "5.15.0", - "@algolia/client-personalization": "5.15.0", - "@algolia/client-query-suggestions": "5.15.0", - "@algolia/client-search": "5.15.0", - "@algolia/ingestion": "1.15.0", - "@algolia/monitoring": "1.15.0", - "@algolia/recommend": "5.15.0", - "@algolia/requester-browser-xhr": "5.15.0", - "@algolia/requester-fetch": "5.15.0", - "@algolia/requester-node-http": "5.15.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@docusaurus/babel": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.6.3.tgz", - "integrity": "sha512-7dW9Hat9EHYCVicFXYA4hjxBY38+hPuCURL8oRF9fySRm7vzNWuEOghA1TXcykuXZp0HLG2td4RhDxCvGG7tNw==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.25.9", - "@babel/preset-env": "^7.25.9", - "@babel/preset-react": "^7.25.9", - "@babel/preset-typescript": "^7.25.9", - "@babel/runtime": "^7.25.9", - "@babel/runtime-corejs3": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@docusaurus/logger": "3.6.3", - "@docusaurus/utils": "3.6.3", - "babel-plugin-dynamic-import-node": "^2.3.3", - "fs-extra": "^11.1.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/bundler": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.6.3.tgz", - "integrity": "sha512-47JLuc8D4wA+6VOvmMd5fUC9rFppBQpQOnxDYiVXffm/DeV/wmm3sbpNd5Y+O+G2+nevLTRnvCm/qyancv0Y3A==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.25.9", - "@docusaurus/babel": "3.6.3", - "@docusaurus/cssnano-preset": "3.6.3", - "@docusaurus/logger": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils": "3.6.3", - "babel-loader": "^9.2.1", - "clean-css": "^5.3.2", - "copy-webpack-plugin": "^11.0.0", - "css-loader": "^6.8.1", - "css-minimizer-webpack-plugin": "^5.0.1", - "cssnano": "^6.1.2", - "file-loader": "^6.2.0", - "html-minifier-terser": "^7.2.0", - "mini-css-extract-plugin": "^2.9.1", - "null-loader": "^4.0.1", - "postcss": "^8.4.26", - "postcss-loader": "^7.3.3", - "postcss-preset-env": "^10.1.0", - "react-dev-utils": "^12.0.1", - "terser-webpack-plugin": "^5.3.9", - "tslib": "^2.6.0", - "url-loader": "^4.1.1", - "webpack": "^5.95.0", - "webpackbar": "^6.0.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/faster": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/faster": { - "optional": true - } - } - }, - "node_modules/@docusaurus/core": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.6.3.tgz", - "integrity": "sha512-xL7FRY9Jr5DWqB6pEnqgKqcMPJOX5V0pgWXi5lCiih11sUBmcFKM7c3+GyxcVeeWFxyYSDP3grLTWqJoP4P9Vw==", - "license": "MIT", - "dependencies": { - "@docusaurus/babel": "3.6.3", - "@docusaurus/bundler": "3.6.3", - "@docusaurus/logger": "3.6.3", - "@docusaurus/mdx-loader": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-common": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", - "boxen": "^6.2.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "cli-table3": "^0.6.3", - "combine-promises": "^1.1.0", - "commander": "^5.1.0", - "core-js": "^3.31.1", - "del": "^6.1.1", - "detect-port": "^1.5.1", - "escape-html": "^1.0.3", - "eta": "^2.2.0", - "eval": "^0.1.8", - "fs-extra": "^11.1.1", - "html-tags": "^3.3.1", - "html-webpack-plugin": "^5.6.0", - "leven": "^3.1.0", - "lodash": "^4.17.21", - "p-map": "^4.0.0", - "prompts": "^2.4.2", - "react-dev-utils": "^12.0.1", - "react-helmet-async": "^1.3.0", - "react-loadable": "npm:@docusaurus/react-loadable@6.0.0", - "react-loadable-ssr-addon-v5-slorber": "^1.0.1", - "react-router": "^5.3.4", - "react-router-config": "^5.1.1", - "react-router-dom": "^5.3.4", - "rtl-detect": "^1.0.4", - "semver": "^7.5.4", - "serve-handler": "^6.1.6", - "shelljs": "^0.8.5", - "tslib": "^2.6.0", - "update-notifier": "^6.0.2", - "webpack": "^5.95.0", - "webpack-bundle-analyzer": "^4.10.2", - "webpack-dev-server": "^4.15.2", - "webpack-merge": "^6.0.1" - }, - "bin": { - "docusaurus": "bin/docusaurus.mjs" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@mdx-js/react": "^3.0.0", - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/cssnano-preset": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.6.3.tgz", - "integrity": "sha512-qP7SXrwZ+23GFJdPN4aIHQrZW+oH/7tzwEuc/RNL0+BdZdmIjYQqUxdXsjE4lFxLNZjj0eUrSNYIS6xwfij+5Q==", - "license": "MIT", - "dependencies": { - "cssnano-preset-advanced": "^6.1.2", - "postcss": "^8.4.38", - "postcss-sort-media-queries": "^5.2.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/logger": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.6.3.tgz", - "integrity": "sha512-xSubJixcNyMV9wMV4q0s47CBz3Rlc5jbcCCuij8pfQP8qn/DIpt0ks8W6hQWzHAedg/J/EwxxUOUrnEoKzJo8g==", - "license": "MIT", - "dependencies": { - "chalk": "^4.1.2", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/mdx-loader": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.6.3.tgz", - "integrity": "sha512-3iJdiDz9540ppBseeI93tWTDtUGVkxzh59nMq4ignylxMuXBLK8dFqVeaEor23v1vx6TrGKZ2FuLaTB+U7C0QQ==", - "license": "MIT", - "dependencies": { - "@docusaurus/logger": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", - "@mdx-js/mdx": "^3.0.0", - "@slorber/remark-comment": "^1.0.0", - "escape-html": "^1.0.3", - "estree-util-value-to-estree": "^3.0.1", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "image-size": "^1.0.2", - "mdast-util-mdx": "^3.0.0", - "mdast-util-to-string": "^4.0.0", - "rehype-raw": "^7.0.0", - "remark-directive": "^3.0.0", - "remark-emoji": "^4.0.0", - "remark-frontmatter": "^5.0.0", - "remark-gfm": "^4.0.0", - "stringify-object": "^3.3.0", - "tslib": "^2.6.0", - "unified": "^11.0.3", - "unist-util-visit": "^5.0.0", - "url-loader": "^4.1.1", - "vfile": "^6.0.1", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/module-type-aliases": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.6.3.tgz", - "integrity": "sha512-MjaXX9PN/k5ugNvfRZdWyKWq4FsrhN4LEXaj0pEmMebJuBNlFeGyKQUa9DRhJHpadNaiMLrbo9m3U7Ig5YlsZg==", - "license": "MIT", - "dependencies": { - "@docusaurus/types": "3.6.3", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "@types/react-router-dom": "*", - "react-helmet-async": "*", - "react-loadable": "npm:@docusaurus/react-loadable@6.0.0" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/@docusaurus/plugin-content-blog": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.6.3.tgz", - "integrity": "sha512-k0ogWwwJU3pFRFfvW1kRVHxzf2DutLGaaLjAnHVEU6ju+aRP0Z5ap/13DHyPOfHeE4WKpn/M0TqjdwZAcY3kAw==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/logger": "3.6.3", - "@docusaurus/mdx-loader": "3.6.3", - "@docusaurus/theme-common": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-common": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", - "cheerio": "1.0.0-rc.12", - "feed": "^4.2.2", - "fs-extra": "^11.1.1", - "lodash": "^4.17.21", - "reading-time": "^1.5.0", - "srcset": "^4.0.0", - "tslib": "^2.6.0", - "unist-util-visit": "^5.0.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/plugin-content-docs": "*", - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-docs": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.6.3.tgz", - "integrity": "sha512-r2wS8y/fsaDcxkm20W5bbYJFPzdWdEaTWVYjNxlHlcmX086eqQR1Fomlg9BHTJ0dLXPzAlbC8EN4XqMr3QzNCQ==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/logger": "3.6.3", - "@docusaurus/mdx-loader": "3.6.3", - "@docusaurus/module-type-aliases": "3.6.3", - "@docusaurus/theme-common": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-common": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", - "@types/react-router-config": "^5.0.7", - "combine-promises": "^1.1.0", - "fs-extra": "^11.1.1", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "tslib": "^2.6.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-pages": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.6.3.tgz", - "integrity": "sha512-eHrmTgjgLZsuqfsYr5X2xEwyIcck0wseSofWrjTwT9FLOWp+KDmMAuVK+wRo7sFImWXZk3oV/xX/g9aZrhD7OA==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/mdx-loader": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", - "fs-extra": "^11.1.1", - "tslib": "^2.6.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-debug": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.6.3.tgz", - "integrity": "sha512-zB9GXfIZNPRfzKnNjU6xGVrqn9bPXuGhpjgsuc/YtcTDjnjhasg38NdYd5LEqXex5G/zIorQgWB3n6x/Ut62vQ==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils": "3.6.3", - "fs-extra": "^11.1.1", - "react-json-view-lite": "^1.2.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-analytics": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.6.3.tgz", - "integrity": "sha512-rCDNy1QW8Dag7nZq67pcum0bpFLrwvxJhYuVprhFh8BMBDxV0bY+bAkGHbSf68P3Bk9C3hNOAXX1srGLIDvcTA==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-gtag": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.6.3.tgz", - "integrity": "sha512-+OyDvhM6rqVkQOmLVkQWVJAizEEfkPzVWtIHXlWPOCFGK9X4/AWeBSrU0WG4iMg9Z4zD4YDRrU+lvI4s6DSC+w==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", - "@types/gtag.js": "^0.0.12", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-tag-manager": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.6.3.tgz", - "integrity": "sha512-1M6UPB13gWUtN2UHX083/beTn85PlRI9ABItTl/JL1FJ5dJTWWFXXsHf9WW/6hrVwthwTeV/AGbGKvLKV+IlCA==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-sitemap": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.6.3.tgz", - "integrity": "sha512-94qOO4M9Fwv9KfVQJsgbe91k+fPJ4byf1L3Ez8TUa6TAFPo/BrLwQ80zclHkENlL1824TuxkcMKv33u6eydQCg==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/logger": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-common": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", - "fs-extra": "^11.1.1", - "sitemap": "^7.1.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/preset-classic": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.6.3.tgz", - "integrity": "sha512-VHSYWROT3flvNNI1SrnMOtW1EsjeHNK9dhU6s9eY5hryZe79lUqnZJyze/ymDe2LXAqzyj6y5oYvyBoZZk6ErA==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/plugin-content-blog": "3.6.3", - "@docusaurus/plugin-content-docs": "3.6.3", - "@docusaurus/plugin-content-pages": "3.6.3", - "@docusaurus/plugin-debug": "3.6.3", - "@docusaurus/plugin-google-analytics": "3.6.3", - "@docusaurus/plugin-google-gtag": "3.6.3", - "@docusaurus/plugin-google-tag-manager": "3.6.3", - "@docusaurus/plugin-sitemap": "3.6.3", - "@docusaurus/theme-classic": "3.6.3", - "@docusaurus/theme-common": "3.6.3", - "@docusaurus/theme-search-algolia": "3.6.3", - "@docusaurus/types": "3.6.3" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/theme-classic": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.6.3.tgz", - "integrity": "sha512-1RRLK1tSArI2c00qugWYO3jRocjOZwGF1mBzPPylDVRwWCS/rnWWR91ChdbbaxIupRJ+hX8ZBYrwr5bbU0oztQ==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/logger": "3.6.3", - "@docusaurus/mdx-loader": "3.6.3", - "@docusaurus/module-type-aliases": "3.6.3", - "@docusaurus/plugin-content-blog": "3.6.3", - "@docusaurus/plugin-content-docs": "3.6.3", - "@docusaurus/plugin-content-pages": "3.6.3", - "@docusaurus/theme-common": "3.6.3", - "@docusaurus/theme-translations": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-common": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", - "@mdx-js/react": "^3.0.0", - "clsx": "^2.0.0", - "copy-text-to-clipboard": "^3.2.0", - "infima": "0.2.0-alpha.45", - "lodash": "^4.17.21", - "nprogress": "^0.2.0", - "postcss": "^8.4.26", - "prism-react-renderer": "^2.3.0", - "prismjs": "^1.29.0", - "react-router-dom": "^5.3.4", - "rtlcss": "^4.1.0", - "tslib": "^2.6.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/theme-common": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.6.3.tgz", - "integrity": "sha512-b8ZkhczXHDxWWyvz+YJy4t/PlPbEogTTbgnHoflYnH7rmRtyoodTsu8WVM12la5LmlMJBclBXFl29OH8kPE7gg==", - "license": "MIT", - "dependencies": { - "@docusaurus/mdx-loader": "3.6.3", - "@docusaurus/module-type-aliases": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-common": "3.6.3", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "clsx": "^2.0.0", - "parse-numeric-range": "^1.3.0", - "prism-react-renderer": "^2.3.0", - "tslib": "^2.6.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/plugin-content-docs": "*", - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/theme-search-algolia": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.6.3.tgz", - "integrity": "sha512-rt+MGCCpYgPyWCGXtbxlwFbTSobu15jWBTPI2LHsHNa5B0zSmOISX6FWYAPt5X1rNDOqMGM0FATnh7TBHRohVA==", - "license": "MIT", - "dependencies": { - "@docsearch/react": "^3.5.2", - "@docusaurus/core": "3.6.3", - "@docusaurus/logger": "3.6.3", - "@docusaurus/plugin-content-docs": "3.6.3", - "@docusaurus/theme-common": "3.6.3", - "@docusaurus/theme-translations": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", - "algoliasearch": "^4.18.0", - "algoliasearch-helper": "^3.13.3", - "clsx": "^2.0.0", - "eta": "^2.2.0", - "fs-extra": "^11.1.1", - "lodash": "^4.17.21", - "tslib": "^2.6.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/theme-translations": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.6.3.tgz", - "integrity": "sha512-Gb0regclToVlngSIIwUCtBMQBq48qVUaN1XQNKW4XwlsgUyk0vP01LULdqbem7czSwIeBAFXFoORJ0RPX7ht/w==", - "license": "MIT", - "dependencies": { - "fs-extra": "^11.1.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/tsconfig": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.6.3.tgz", - "integrity": "sha512-1pT/rTrRpMV15E4tJH95W5PrjboMn5JkKF+Ys8cTjMegetiXjs0gPFOSDA5hdTlberKQLDO50xPjMJHondLuzA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@docusaurus/types": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.3.tgz", - "integrity": "sha512-xD9oTGDrouWzefkhe9ogB2fDV96/82cRpNGx2HIvI5L87JHNhQVIWimQ/3JIiiX/TEd5S9s+VO6FFguwKNRVow==", - "license": "MIT", - "dependencies": { - "@mdx-js/mdx": "^3.0.0", - "@types/history": "^4.7.11", - "@types/react": "*", - "commander": "^5.1.0", - "joi": "^17.9.2", - "react-helmet-async": "^1.3.0", - "utility-types": "^3.10.0", - "webpack": "^5.95.0", - "webpack-merge": "^5.9.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/types/node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", - "license": "MIT", - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@docusaurus/utils": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.6.3.tgz", - "integrity": "sha512-0R/FR3bKVl4yl8QwbL4TYFfR+OXBRpVUaTJdENapBGR3YMwfM6/JnhGilWQO8AOwPJGtGoDK7ib8+8UF9f3OZQ==", - "license": "MIT", - "dependencies": { - "@docusaurus/logger": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils-common": "3.6.3", - "@svgr/webpack": "^8.1.0", - "escape-string-regexp": "^4.0.0", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "github-slugger": "^1.5.0", - "globby": "^11.1.0", - "gray-matter": "^4.0.3", - "jiti": "^1.20.0", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "micromatch": "^4.0.5", - "prompts": "^2.4.2", - "resolve-pathname": "^3.0.0", - "shelljs": "^0.8.5", - "tslib": "^2.6.0", - "url-loader": "^4.1.1", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/utils-common": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.6.3.tgz", - "integrity": "sha512-v4nKDaANLgT3pMBewHYEMAl/ufY0LkXao1QkFWzI5huWFOmNQ2UFzv2BiKeHX5Ownis0/w6cAyoxPhVdDonlSQ==", - "license": "MIT", - "dependencies": { - "@docusaurus/types": "3.6.3", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/utils-validation": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.6.3.tgz", - "integrity": "sha512-bhEGGiN5BE38h21vjqD70Gxg++j+PfYVddDUE5UFvLDup68QOcpD33CLr+2knPorlxRbEaNfz6HQDUMQ3HuqKw==", - "license": "MIT", - "dependencies": { - "@docusaurus/logger": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-common": "3.6.3", - "fs-extra": "^11.2.0", - "joi": "^17.9.2", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", - "license": "MIT" - }, - "node_modules/@mdx-js/mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", - "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdx": "^2.0.0", - "collapse-white-space": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "estree-util-scope": "^1.0.0", - "estree-walker": "^3.0.0", - "hast-util-to-jsx-runtime": "^2.0.0", - "markdown-extensions": "^2.0.0", - "recma-build-jsx": "^1.0.0", - "recma-jsx": "^1.0.0", - "recma-stringify": "^1.0.0", - "rehype-recma": "^1.0.0", - "remark-mdx": "^3.0.0", - "remark-parse": "^11.0.0", - "remark-rehype": "^11.0.0", - "source-map": "^0.7.0", - "unified": "^11.0.0", - "unist-util-position-from-estree": "^2.0.0", - "unist-util-stringify-position": "^4.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/react": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz", - "integrity": "sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==", - "license": "MIT", - "dependencies": { - "@types/mdx": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@types/react": ">=16", - "react": ">=16" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pnpm/config.env-replace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", - "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", - "license": "MIT", - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", - "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", - "license": "MIT", - "dependencies": { - "graceful-fs": "4.2.10" - }, - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "license": "ISC" - }, - "node_modules/@pnpm/npm-conf": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", - "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", - "license": "MIT", - "dependencies": { - "@pnpm/config.env-replace": "^1.1.0", - "@pnpm/network.ca-file": "^1.0.1", - "config-chain": "^1.1.11" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@polka/url": { - "version": "1.0.0-next.28", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", - "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", - "license": "MIT" - }, - "node_modules/@sideway/address": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", - "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "license": "BSD-3-Clause" - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "license": "MIT" - }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@slorber/remark-comment": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@slorber/remark-comment/-/remark-comment-1.0.0.tgz", - "integrity": "sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==", - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.1.0", - "micromark-util-symbol": "^1.0.1" - } - }, - "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", - "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", - "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", - "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", - "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", - "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", - "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", - "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", - "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-preset": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", - "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", - "license": "MIT", - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", - "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", - "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", - "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", - "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", - "@svgr/babel-plugin-transform-svg-component": "8.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/core": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", - "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^8.1.3", - "snake-case": "^3.0.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", - "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.21.3", - "entities": "^4.4.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-jsx": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", - "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "@svgr/hast-util-to-babel-ast": "8.0.0", - "svg-parser": "^2.0.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" - } - }, - "node_modules/@svgr/plugin-svgo": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", - "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", - "license": "MIT", - "dependencies": { - "cosmiconfig": "^8.1.3", - "deepmerge": "^4.3.1", - "svgo": "^3.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" - } - }, - "node_modules/@svgr/webpack": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", - "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.21.3", - "@babel/plugin-transform-react-constant-elements": "^7.21.3", - "@babel/preset-env": "^7.20.2", - "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.21.0", - "@svgr/core": "8.1.0", - "@svgr/plugin-jsx": "8.1.0", - "@svgr/plugin-svgo": "8.1.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "license": "MIT", - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "license": "ISC", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@types/acorn": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", - "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", - "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", - "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", - "license": "MIT", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", - "license": "MIT", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/eslint": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", - "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", - "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "license": "MIT", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "license": "MIT" - }, - "node_modules/@types/estree-jsx": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", - "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.2.tgz", - "integrity": "sha512-vluaspfvWEtE4vcSDlKRNer52DvOGrB2xv6diXy6UKyKW0lqZiWHGNApSyxOv+8DE5Z27IzVvE7hNkxg7EXIcg==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/express/node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/gtag.js": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz", - "integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==", - "license": "MIT" - }, - "node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/history": { - "version": "4.7.11", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", - "license": "MIT" - }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "license": "MIT" - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "license": "MIT" - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", - "license": "MIT" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.15", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz", - "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "license": "MIT" - }, - "node_modules/@types/mdast": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", - "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/mdx": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", - "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", - "license": "MIT" - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "license": "MIT" - }, - "node_modules/@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.10.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.1.tgz", - "integrity": "sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==", - "license": "MIT", - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "node_modules/@types/node-forge": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", - "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "license": "MIT" - }, - "node_modules/@types/prismjs": { - "version": "1.26.5", - "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz", - "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==", - "license": "MIT" - }, - "node_modules/@types/prop-types": { - "version": "15.7.13", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", - "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", - "license": "MIT" - }, - "node_modules/@types/qs": { - "version": "6.9.17", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", - "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "18.3.12", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", - "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", - "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-router": { - "version": "5.1.20", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", - "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", - "license": "MIT", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*" - } - }, - "node_modules/@types/react-router-config": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.11.tgz", - "integrity": "sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==", - "license": "MIT", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "^5.1.0" - } - }, - "node_modules/@types/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", - "license": "MIT", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "license": "MIT" - }, - "node_modules/@types/sax": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", - "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-index": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", - "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", - "license": "MIT", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.36", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", - "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "license": "MIT" - }, - "node_modules/@types/ws": { - "version": "8.5.13", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", - "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", - "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "license": "MIT" - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "license": "ISC" - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.13.2", - "@webassemblyjs/helper-api-error": "1.13.2", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/wasm-gen": "1.14.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "license": "MIT", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "license": "Apache-2.0", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/helper-wasm-section": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-opt": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1", - "@webassemblyjs/wast-printer": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-api-error": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "license": "BSD-3-Clause" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "license": "Apache-2.0" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "license": "MIT", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/address": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/algoliasearch": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.24.0.tgz", - "integrity": "sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==", - "license": "MIT", - "dependencies": { - "@algolia/cache-browser-local-storage": "4.24.0", - "@algolia/cache-common": "4.24.0", - "@algolia/cache-in-memory": "4.24.0", - "@algolia/client-account": "4.24.0", - "@algolia/client-analytics": "4.24.0", - "@algolia/client-common": "4.24.0", - "@algolia/client-personalization": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/logger-common": "4.24.0", - "@algolia/logger-console": "4.24.0", - "@algolia/recommend": "4.24.0", - "@algolia/requester-browser-xhr": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/requester-node-http": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/algoliasearch-helper": { - "version": "3.22.5", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.22.5.tgz", - "integrity": "sha512-lWvhdnc+aKOKx8jyA3bsdEgHzm/sglC4cYdMG4xSQyRiPLJVJtH/IVYZG3Hp6PkTEhQqhyVYkeP9z2IlcHJsWw==", - "license": "MIT", - "dependencies": { - "@algolia/events": "^4.0.1" - }, - "peerDependencies": { - "algoliasearch": ">= 3.1 < 6" - } - }, - "node_modules/algoliasearch/node_modules/@algolia/client-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", - "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/algoliasearch/node_modules/@algolia/client-search": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", - "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/algoliasearch/node_modules/@algolia/requester-browser-xhr": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz", - "integrity": "sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0" - } - }, - "node_modules/algoliasearch/node_modules/@algolia/requester-node-http": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz", - "integrity": "sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0" - } - }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "license": "ISC", - "dependencies": { - "string-width": "^4.1.0" - } - }, - "node_modules/ansi-align/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/ansi-align/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "engines": [ - "node >= 0.8.0" - ], - "license": "Apache-2.0", - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "license": "MIT" - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "license": "MIT" - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/astring": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", - "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", - "license": "MIT", - "bin": { - "astring": "bin/astring" - } - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "license": "ISC", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/babel-loader": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", - "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", - "license": "MIT", - "dependencies": { - "find-cache-dir": "^4.0.0", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0", - "webpack": ">=5" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "license": "MIT", - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", - "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.3", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", - "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2", - "core-js-compat": "^3.38.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", - "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "license": "MIT" - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/bonjour-service": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", - "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "license": "ISC" - }, - "node_modules/boxen": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", - "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", - "license": "MIT", - "dependencies": { - "ansi-align": "^3.0.1", - "camelcase": "^6.2.0", - "chalk": "^4.1.2", - "cli-boxes": "^3.0.0", - "string-width": "^5.0.1", - "type-fest": "^2.5.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.0.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", - "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001669", - "electron-to-chromium": "^1.5.41", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "license": "MIT" - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "license": "MIT", - "engines": { - "node": ">=14.16" - } - }, - "node_modules/cacheable-request": { - "version": "10.2.14", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", - "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", - "license": "MIT", - "dependencies": { - "@types/http-cache-semantics": "^4.0.2", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.3", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "license": "MIT", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001686", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001686.tgz", - "integrity": "sha512-Y7deg0Aergpa24M3qLC5xjNklnKnhsmSyR/V89dLZ1n0ucJIFNs7PgR2Yfa/Zf6W79SbBicgtGxZr2juHkEUIA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-html4": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", - "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", - "license": "MIT", - "dependencies": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" - }, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - } - }, - "node_modules/cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "license": "MIT", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/clean-css": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", - "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", - "license": "MIT", - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, - "node_modules/clean-css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-boxes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-table3": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", - "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", - "license": "MIT", - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/cli-table3/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/cli-table3/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/collapse-white-space": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", - "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "license": "MIT" - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "license": "MIT" - }, - "node_modules/combine-promises": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.2.0.tgz", - "integrity": "sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "license": "ISC" - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "license": "MIT", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compressible/node_modules/mime-db": { - "version": "1.53.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", - "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", - "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "compressible": "~2.0.18", - "debug": "2.6.9", - "negotiator": "~0.6.4", - "on-headers": "~1.0.2", - "safe-buffer": "5.2.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "license": "MIT" - }, - "node_modules/config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "license": "MIT", - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/configstore": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", - "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", - "license": "BSD-2-Clause", - "dependencies": { - "dot-prop": "^6.0.1", - "graceful-fs": "^4.2.6", - "unique-string": "^3.0.0", - "write-file-atomic": "^3.0.3", - "xdg-basedir": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/yeoman/configstore?sponsor=1" - } - }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/consola": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", - "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", - "license": "MIT", - "engines": { - "node": "^14.18.0 || >=16.10.0" - } - }, - "node_modules/content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "license": "MIT" - }, - "node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "license": "MIT" - }, - "node_modules/copy-text-to-clipboard": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz", - "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", - "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", - "license": "MIT", - "dependencies": { - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.1", - "globby": "^13.1.1", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", - "license": "MIT", - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/core-js": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.39.0.tgz", - "integrity": "sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", - "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.24.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-pure": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.39.0.tgz", - "integrity": "sha512-7fEcWwKI4rJinnK+wLTezeg2smbFFdSBP6E2kQZNbnzM2s1rpKQ6aaRteZSSg7FLU3P0HGGVo/gbpfanU36urg==", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT" - }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "license": "MIT", - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-random-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", - "license": "MIT", - "dependencies": { - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/crypto-random-string/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/css-blank-pseudo": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz", - "integrity": "sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-blank-pseudo/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-declaration-sorter": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", - "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", - "license": "ISC", - "engines": { - "node": "^14 || ^16 || >=18" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-has-pseudo": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.1.tgz", - "integrity": "sha512-EOcoyJt+OsuKfCADgLT7gADZI5jMzIe/AeI6MeAYKiFBDmNmM7kk46DtSfMj5AohUJisqVzopBpnQTlvbyaBWg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/selector-specificity": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-has-pseudo/node_modules/@csstools/selector-specificity": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", - "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" - } - }, - "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-loader": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", - "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", - "license": "MIT", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/css-minimizer-webpack-plugin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", - "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "cssnano": "^6.0.1", - "jest-worker": "^29.4.3", - "postcss": "^8.4.24", - "schema-utils": "^4.0.1", - "serialize-javascript": "^6.0.1" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "@swc/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "lightningcss": { - "optional": true - } - } - }, - "node_modules/css-prefers-color-scheme": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz", - "integrity": "sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssdb": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.2.2.tgz", - "integrity": "sha512-Z3kpWyvN68aKyeMxOUGmffQeHjvrzDxbre2B2ikr/WqQ4ZMkhHu2nOD6uwSeq3TpuOYU7ckvmJRAUIt6orkYUg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - } - ], - "license": "MIT-0" - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", - "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", - "license": "MIT", - "dependencies": { - "cssnano-preset-default": "^6.1.2", - "lilconfig": "^3.1.1" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/cssnano-preset-advanced": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", - "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", - "license": "MIT", - "dependencies": { - "autoprefixer": "^10.4.19", - "browserslist": "^4.23.0", - "cssnano-preset-default": "^6.1.2", - "postcss-discard-unused": "^6.0.5", - "postcss-merge-idents": "^6.0.3", - "postcss-reduce-idents": "^6.0.3", - "postcss-zindex": "^6.0.2" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/cssnano-preset-default": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", - "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "css-declaration-sorter": "^7.2.0", - "cssnano-utils": "^4.0.2", - "postcss-calc": "^9.0.1", - "postcss-colormin": "^6.1.0", - "postcss-convert-values": "^6.1.0", - "postcss-discard-comments": "^6.0.2", - "postcss-discard-duplicates": "^6.0.3", - "postcss-discard-empty": "^6.0.3", - "postcss-discard-overridden": "^6.0.2", - "postcss-merge-longhand": "^6.0.5", - "postcss-merge-rules": "^6.1.1", - "postcss-minify-font-values": "^6.1.0", - "postcss-minify-gradients": "^6.0.3", - "postcss-minify-params": "^6.1.0", - "postcss-minify-selectors": "^6.0.4", - "postcss-normalize-charset": "^6.0.2", - "postcss-normalize-display-values": "^6.0.2", - "postcss-normalize-positions": "^6.0.2", - "postcss-normalize-repeat-style": "^6.0.2", - "postcss-normalize-string": "^6.0.2", - "postcss-normalize-timing-functions": "^6.0.2", - "postcss-normalize-unicode": "^6.1.0", - "postcss-normalize-url": "^6.0.2", - "postcss-normalize-whitespace": "^6.0.2", - "postcss-ordered-values": "^6.0.2", - "postcss-reduce-initial": "^6.1.0", - "postcss-reduce-transforms": "^6.0.2", - "postcss-svgo": "^6.0.3", - "postcss-unique-selectors": "^6.0.4" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/cssnano-utils": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", - "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "license": "MIT", - "dependencies": { - "css-tree": "~2.2.0" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "license": "CC0-1.0" - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, - "node_modules/debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", - "license": "MIT" - }, - "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", - "license": "MIT", - "dependencies": { - "character-entities": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "license": "MIT", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "license": "BSD-2-Clause", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "license": "MIT", - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "license": "MIT" - }, - "node_modules/detect-port": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", - "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==", - "license": "MIT", - "dependencies": { - "address": "^1.0.1", - "debug": "4" - }, - "bin": { - "detect": "bin/detect-port.js", - "detect-port": "bin/detect-port.js" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "license": "MIT", - "dependencies": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" - }, - "engines": { - "node": ">= 4.2.1" - } - }, - "node_modules/detect-port-alt/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/detect-port-alt/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/devlop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", - "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", - "license": "MIT", - "dependencies": { - "dequal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dns-packet": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", - "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", - "license": "MIT", - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "license": "MIT", - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "license": "MIT", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/dot-prop/node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "license": "MIT" - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "license": "MIT" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.68", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.68.tgz", - "integrity": "sha512-FgMdJlma0OzUYlbrtZ4AeXjKxKPk6KT8WOP8BjcqxWtlg8qyJQjRzPJzUtUn5GBg1oQ26hFs7HOOHJMYiJRnvQ==", - "license": "ISC" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "license": "MIT" - }, - "node_modules/emojilib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", - "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", - "license": "MIT" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/emoticon": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.1.0.tgz", - "integrity": "sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", - "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", - "license": "MIT" - }, - "node_modules/esast-util-from-estree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", - "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-visit": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/esast-util-from-js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", - "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "acorn": "^8.0.0", - "esast-util-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-goat": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", - "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-util-attach-comments": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", - "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-build-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", - "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "estree-walker": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-is-identifier-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", - "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-scope": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", - "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-to-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", - "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "astring": "^1.8.0", - "source-map": "^0.7.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-value-to-estree": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.2.1.tgz", - "integrity": "sha512-Vt2UOjyPbNQQgT5eJh+K5aATti0OjCIAGc9SgMdOFYbohuifsWclR74l0iZTJwePMgWYdX1hlVS+dedH9XV8kw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/remcohaszing" - } - }, - "node_modules/estree-util-visit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", - "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eta": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/eta/-/eta-2.2.0.tgz", - "integrity": "sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "url": "https://github.com/eta-dev/eta?sponsor=1" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eval": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", - "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", - "dependencies": { - "@types/node": "*", - "require-like": ">= 0.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", - "license": "MIT" - }, - "node_modules/express/node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "license": "MIT" - }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "license": "MIT" - }, - "node_modules/fast-uri": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", - "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", - "license": "BSD-3-Clause" - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fault": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", - "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", - "license": "MIT", - "dependencies": { - "format": "^0.2.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "license": "Apache-2.0", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/feed": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", - "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", - "license": "MIT", - "dependencies": { - "xml-js": "^1.6.11" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/file-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/file-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/file-loader/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/find-cache-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", - "license": "MIT", - "dependencies": { - "common-path-prefix": "^3.0.0", - "pkg-dir": "^7.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "license": "MIT", - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", - "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=10", - "yarn": ">=1.0.0" - }, - "peerDependencies": { - "eslint": ">= 6", - "typescript": ">= 2.7", - "vue-template-compiler": "*", - "webpack": ">= 4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/form-data-encoder": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", - "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", - "license": "MIT", - "engines": { - "node": ">= 14.17" - } - }, - "node_modules/format": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", - "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", - "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", - "license": "Unlicense" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "license": "ISC" - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/github-slugger": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", - "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", - "license": "ISC" - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "license": "BSD-2-Clause" - }, - "node_modules/global-dirs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", - "license": "MIT", - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/global-dirs/node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "license": "MIT", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "license": "MIT", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.1.0.tgz", - "integrity": "sha512-FQoVQnqcdk4hVM4JN1eromaun4iuS34oStkdlLENLdpULsuQcTyXj8w7ayhuUfPwEYZ1ZOooOTT6fdA9Vmx/RA==", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/got/node_modules/@sindresorhus/is": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", - "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, - "node_modules/gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", - "license": "MIT", - "dependencies": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/gray-matter/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/gray-matter/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "license": "MIT", - "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "license": "MIT" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.1.0.tgz", - "integrity": "sha512-QLdzI9IIO1Jg7f9GT1gXpPpXArAn6cS31R1eEZqz08Gc+uQ8/XiqHWt17Fiw+2p6oTTIq5GXEpQkAlA88YRl/Q==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-yarn": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", - "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hast-util-from-parse5": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.2.tgz", - "integrity": "sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "hastscript": "^9.0.0", - "property-information": "^6.0.0", - "vfile": "^6.0.0", - "vfile-location": "^5.0.0", - "web-namespaces": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-parse-selector": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", - "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", - "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "@ungap/structured-clone": "^1.0.0", - "hast-util-from-parse5": "^8.0.0", - "hast-util-to-parse5": "^8.0.0", - "html-void-elements": "^3.0.0", - "mdast-util-to-hast": "^13.0.0", - "parse5": "^7.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-estree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz", - "integrity": "sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-attach-comments": "^3.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "hast-util-whitespace": "^3.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^0.4.0", - "unist-util-position": "^5.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-estree/node_modules/inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", - "license": "MIT" - }, - "node_modules/hast-util-to-estree/node_modules/style-to-object": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", - "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", - "license": "MIT", - "dependencies": { - "inline-style-parser": "0.1.1" - } - }, - "node_modules/hast-util-to-jsx-runtime": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.2.tgz", - "integrity": "sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "hast-util-whitespace": "^3.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^1.0.0", - "unist-util-position": "^5.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-parse5": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", - "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-whitespace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hastscript": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.0.tgz", - "integrity": "sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-parse-selector": "^4.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "license": "BSD-3-Clause", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-entities": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", - "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ], - "license": "MIT" - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "license": "MIT" - }, - "node_modules/html-minifier-terser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", - "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", - "license": "MIT", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "~5.3.2", - "commander": "^10.0.0", - "entities": "^4.4.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.15.1" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0" - } - }, - "node_modules/html-minifier-terser/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/html-tags": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", - "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/html-void-elements": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", - "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/html-webpack-plugin": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz", - "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==", - "license": "MIT", - "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.20.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/html-webpack-plugin/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/html-webpack-plugin/node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "license": "MIT", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "license": "BSD-2-Clause" - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "license": "MIT" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "license": "MIT" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "license": "MIT", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", - "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", - "license": "MIT", - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/http2-wrapper": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", - "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", - "license": "MIT", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/image-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz", - "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==", - "license": "MIT", - "dependencies": { - "queue": "6.0.2" - }, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=16.x" - } - }, - "node_modules/immer": { - "version": "9.0.21", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/infima": { - "version": "0.2.0-alpha.45", - "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.45.tgz", - "integrity": "sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw==", - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "license": "ISC" - }, - "node_modules/inline-style-parser": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", - "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", - "license": "MIT" - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-alphabetical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", - "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", - "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", - "license": "MIT", - "dependencies": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "license": "MIT" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "license": "MIT", - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-decimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", - "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hexadecimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", - "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "license": "MIT", - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-npm": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", - "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "license": "MIT" - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-yarn-global": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", - "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jiti": { - "version": "1.21.6", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", - "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/joi": { - "version": "17.13.3", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", - "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/hoek": "^9.3.0", - "@hapi/topo": "^5.1.0", - "@sideway/address": "^4.1.5", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/latest-version": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", - "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", - "license": "MIT", - "dependencies": { - "package-json": "^8.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/launch-editor": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", - "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", - "license": "MIT", - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "license": "MIT", - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "license": "MIT", - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "license": "MIT" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "license": "MIT" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "license": "MIT" - }, - "node_modules/longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/markdown-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", - "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/markdown-table": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", - "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdast-util-directive": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz", - "integrity": "sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", - "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "escape-string-regexp": "^5.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mdast-util-from-markdown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", - "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark": "^4.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-from-markdown/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/mdast-util-frontmatter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", - "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "escape-string-regexp": "^5.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "micromark-extension-frontmatter": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-frontmatter/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mdast-util-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", - "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", - "license": "MIT", - "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-gfm-autolink-literal": "^2.0.0", - "mdast-util-gfm-footnote": "^2.0.0", - "mdast-util-gfm-strikethrough": "^2.0.0", - "mdast-util-gfm-table": "^2.0.0", - "mdast-util-gfm-task-list-item": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-autolink-literal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", - "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "ccount": "^2.0.0", - "devlop": "^1.0.0", - "mdast-util-find-and-replace": "^3.0.0", - "micromark-util-character": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/mdast-util-gfm-footnote": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", - "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-strikethrough": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", - "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", - "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-task-list-item": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", - "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", - "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", - "license": "MIT", - "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-expression": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", - "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-jsx": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz", - "integrity": "sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdxjs-esm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", - "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-phrasing": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", - "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", - "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@ungap/structured-clone": "^1.0.0", - "devlop": "^1.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "trim-lines": "^3.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", - "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^4.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "unist-util-visit": "^5.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", - "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "license": "CC0-1.0" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", - "license": "Unlicense", - "dependencies": { - "fs-monkey": "^1.0.4" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromark": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz", - "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-core-commonmark": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz", - "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-destination": "^2.0.0", - "micromark-factory-label": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-factory-title": "^2.0.0", - "micromark-factory-whitespace": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-html-tag-name": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-core-commonmark/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-core-commonmark/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-core-commonmark/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-directive": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz", - "integrity": "sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-factory-whitespace": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "parse-entities": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-directive/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-directive/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-directive/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-frontmatter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", - "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", - "license": "MIT", - "dependencies": { - "fault": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", - "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", - "license": "MIT", - "dependencies": { - "micromark-extension-gfm-autolink-literal": "^2.0.0", - "micromark-extension-gfm-footnote": "^2.0.0", - "micromark-extension-gfm-strikethrough": "^2.0.0", - "micromark-extension-gfm-table": "^2.0.0", - "micromark-extension-gfm-tagfilter": "^2.0.0", - "micromark-extension-gfm-task-list-item": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", - "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-gfm-footnote": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", - "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-gfm-strikethrough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", - "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-gfm-table": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.0.tgz", - "integrity": "sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-table/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-gfm-tagfilter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", - "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-task-list-item": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", - "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-mdx-expression": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz", - "integrity": "sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-mdx-expression": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdx-expression/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-mdx-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.1.tgz", - "integrity": "sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==", - "license": "MIT", - "dependencies": { - "@types/acorn": "^4.0.0", - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "micromark-factory-mdx-expression": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-mdx-md": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", - "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdxjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", - "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", - "license": "MIT", - "dependencies": { - "acorn": "^8.0.0", - "acorn-jsx": "^5.0.0", - "micromark-extension-mdx-expression": "^3.0.0", - "micromark-extension-mdx-jsx": "^3.0.0", - "micromark-extension-mdx-md": "^2.0.0", - "micromark-extension-mdxjs-esm": "^3.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdxjs-esm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", - "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-factory-destination": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", - "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-destination/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-destination/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-factory-label": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", - "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-label/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-label/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-factory-mdx-expression": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.2.tgz", - "integrity": "sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" - } - }, - "node_modules/micromark-factory-mdx-expression/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-factory-space": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", - "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-factory-space/node_modules/micromark-util-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", - "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-factory-title": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", - "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-title/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-title/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-title/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-factory-whitespace": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", - "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-whitespace/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-whitespace/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-whitespace/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-character": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", - "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-character/node_modules/micromark-util-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", - "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-chunked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", - "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-chunked/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-classify-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", - "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-classify-character/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-classify-character/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-combine-extensions": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", - "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-chunked": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", - "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-decode-string": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", - "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-string/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-string/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-encode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", - "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-events-to-acorn": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz", - "integrity": "sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/acorn": "^4.0.0", - "@types/estree": "^1.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "estree-util-visit": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "vfile-message": "^4.0.0" - } - }, - "node_modules/micromark-util-events-to-acorn/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-html-tag-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", - "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", - "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-normalize-identifier/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-resolve-all": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", - "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", - "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-subtokenize": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.3.tgz", - "integrity": "sha512-VXJJuNxYWSoYL6AJ6OQECCFGhIU2GGHMw8tahogePBrjkG8aCCas3ibkp7RnVOSTClg2is05/R7maAhF1XyQMg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-subtokenize/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-symbol": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", - "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-types": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz", - "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "license": "MIT", - "dependencies": { - "mime-db": "~1.33.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", - "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", - "license": "MIT", - "dependencies": { - "schema-utils": "^4.0.0", - "tapable": "^2.2.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "license": "ISC" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mrmime": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", - "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "license": "MIT", - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "license": "MIT" - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "license": "MIT", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-emoji": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz", - "integrity": "sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==", - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^4.6.0", - "char-regex": "^1.0.2", - "emojilib": "^2.4.0", - "skin-tone": "^2.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "license": "(BSD-3-Clause OR GPL-2.0)", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", - "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==", - "license": "MIT" - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/null-loader": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz", - "integrity": "sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==", - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/null-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/null-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/null-loader/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/null-loader/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", - "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "license": "MIT" - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "license": "MIT", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "license": "(WTFPL OR MIT)", - "bin": { - "opener": "bin/opener-bin.js" - } - }, - "node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "license": "MIT", - "engines": { - "node": ">=12.20" - } - }, - "node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "license": "MIT", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "license": "MIT", - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "license": "MIT", - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", - "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", - "license": "MIT", - "dependencies": { - "got": "^12.1.0", - "registry-auth-token": "^5.0.1", - "registry-url": "^6.0.0", - "semver": "^7.3.7" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-entities": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", - "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "character-entities": "^2.0.0", - "character-entities-legacy": "^3.0.0", - "character-reference-invalid": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0", - "is-hexadecimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/parse-entities/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-numeric-range": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", - "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==", - "license": "ISC" - }, - "node_modules/parse5": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", - "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", - "license": "MIT", - "dependencies": { - "entities": "^4.5.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", - "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", - "license": "MIT", - "dependencies": { - "domhandler": "^5.0.3", - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", - "license": "(WTFPL OR MIT)" - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "license": "MIT" - }, - "node_modules/path-to-regexp": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", - "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", - "license": "MIT", - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "license": "MIT", - "dependencies": { - "find-up": "^6.3.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "license": "MIT", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss": { - "version": "8.4.49", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", - "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-attribute-case-insensitive": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz", - "integrity": "sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-attribute-case-insensitive/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-calc": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", - "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-clamp": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", - "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=7.6.0" - }, - "peerDependencies": { - "postcss": "^8.4.6" - } - }, - "node_modules/postcss-color-functional-notation": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.6.tgz", - "integrity": "sha512-wLXvm8RmLs14Z2nVpB4CWlnvaWPRcOZFltJSlcbYwSJ1EDZKsKDhPKIMecCnuU054KSmlmubkqczmm6qBPCBhA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.6", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-hex-alpha": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-10.0.0.tgz", - "integrity": "sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-rebeccapurple": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-10.0.0.tgz", - "integrity": "sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-colormin": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", - "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0", - "colord": "^2.9.3", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-convert-values": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", - "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-custom-media": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.5.tgz", - "integrity": "sha512-SQHhayVNgDvSAdX9NQ/ygcDQGEY+aSF4b/96z7QUX6mqL5yl/JgG/DywcF6fW9XbnCRE+aVYk+9/nqGuzOPWeQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.4", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/media-query-list-parser": "^4.0.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-custom-properties": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.4.tgz", - "integrity": "sha512-QnW8FCCK6q+4ierwjnmXF9Y9KF8q0JkbgVfvQEMa93x1GT8FvOiUevWCN2YLaOWyByeDX8S6VFbZEeWoAoXs2A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.4", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-custom-selectors": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.4.tgz", - "integrity": "sha512-ASOXqNvDCE0dAJ/5qixxPeL1aOVGHGW2JwSy7HyjWNbnWTQCl+fDc968HY1jCmZI0+BaYT5CxsOiUhavpG/7eg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.4", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-dir-pseudo-class": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz", - "integrity": "sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-discard-comments": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", - "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", - "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-empty": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", - "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", - "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-unused": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz", - "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-double-position-gradients": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.0.tgz", - "integrity": "sha512-JkIGah3RVbdSEIrcobqj4Gzq0h53GG4uqDPsho88SgY84WnpkTpI0k50MFK/sX7XqVisZ6OqUfFnoUO6m1WWdg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-focus-visible": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz", - "integrity": "sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-focus-visible/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-focus-within": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz", - "integrity": "sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-focus-within/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-font-variant": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", - "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-gap-properties": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-6.0.0.tgz", - "integrity": "sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-image-set-function": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz", - "integrity": "sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-lab-function": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.6.tgz", - "integrity": "sha512-HPwvsoK7C949vBZ+eMyvH2cQeMr3UREoHvbtra76/UhDuiViZH6pir+z71UaJQohd7VDSVUdR6TkWYKExEc9aQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.6", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-loader": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz", - "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==", - "license": "MIT", - "dependencies": { - "cosmiconfig": "^8.3.5", - "jiti": "^1.20.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "node_modules/postcss-logical": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.0.0.tgz", - "integrity": "sha512-HpIdsdieClTjXLOyYdUPAX/XQASNIwdKt5hoZW08ZOAiI+tbV0ta1oclkpVkW5ANU+xJvk3KkA0FejkjGLXUkg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-merge-idents": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz", - "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==", - "license": "MIT", - "dependencies": { - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", - "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^6.1.1" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-merge-rules": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", - "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^4.0.2", - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", - "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", - "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", - "license": "MIT", - "dependencies": { - "colord": "^2.9.3", - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-minify-params": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", - "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", - "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.1.0.tgz", - "integrity": "sha512-rm0bdSv4jC3BDma3s9H19ZddW0aHX6EoqwDYU2IfZhRN+53QrufTRo2IdkAbRqLx4R2IYbZnbjKKxg4VN5oU9Q==", - "license": "MIT", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", - "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "license": "ISC", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-nesting": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.1.tgz", - "integrity": "sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/selector-resolve-nested": "^3.0.0", - "@csstools/selector-specificity": "^5.0.0", - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.0.0.tgz", - "integrity": "sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" - } - }, - "node_modules/postcss-nesting/node_modules/@csstools/selector-specificity": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", - "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" - } - }, - "node_modules/postcss-nesting/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", - "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", - "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", - "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", - "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-string": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", - "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", - "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", - "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-url": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", - "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", - "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-opacity-percentage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz", - "integrity": "sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==", - "funding": [ - { - "type": "kofi", - "url": "https://ko-fi.com/mrcgrtz" - }, - { - "type": "liberapay", - "url": "https://liberapay.com/mrcgrtz" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-ordered-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", - "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", - "license": "MIT", - "dependencies": { - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-overflow-shorthand": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-6.0.0.tgz", - "integrity": "sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-page-break": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", - "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8" - } - }, - "node_modules/postcss-place": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-10.0.0.tgz", - "integrity": "sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-preset-env": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.1.1.tgz", - "integrity": "sha512-wqqsnBFD6VIwcHHRbhjTOcOi4qRVlB26RwSr0ordPj7OubRRxdWebv/aLjKLRR8zkZrbxZyuus03nOIgC5elMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/postcss-cascade-layers": "^5.0.1", - "@csstools/postcss-color-function": "^4.0.6", - "@csstools/postcss-color-mix-function": "^3.0.6", - "@csstools/postcss-content-alt-text": "^2.0.4", - "@csstools/postcss-exponential-functions": "^2.0.5", - "@csstools/postcss-font-format-keywords": "^4.0.0", - "@csstools/postcss-gamut-mapping": "^2.0.6", - "@csstools/postcss-gradients-interpolation-method": "^5.0.6", - "@csstools/postcss-hwb-function": "^4.0.6", - "@csstools/postcss-ic-unit": "^4.0.0", - "@csstools/postcss-initial": "^2.0.0", - "@csstools/postcss-is-pseudo-class": "^5.0.1", - "@csstools/postcss-light-dark-function": "^2.0.7", - "@csstools/postcss-logical-float-and-clear": "^3.0.0", - "@csstools/postcss-logical-overflow": "^2.0.0", - "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", - "@csstools/postcss-logical-resize": "^3.0.0", - "@csstools/postcss-logical-viewport-units": "^3.0.3", - "@csstools/postcss-media-minmax": "^2.0.5", - "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.4", - "@csstools/postcss-nested-calc": "^4.0.0", - "@csstools/postcss-normalize-display-values": "^4.0.0", - "@csstools/postcss-oklab-function": "^4.0.6", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/postcss-random-function": "^1.0.1", - "@csstools/postcss-relative-color-syntax": "^3.0.6", - "@csstools/postcss-scope-pseudo-class": "^4.0.1", - "@csstools/postcss-sign-functions": "^1.1.0", - "@csstools/postcss-stepped-value-functions": "^4.0.5", - "@csstools/postcss-text-decoration-shorthand": "^4.0.1", - "@csstools/postcss-trigonometric-functions": "^4.0.5", - "@csstools/postcss-unset-value": "^4.0.0", - "autoprefixer": "^10.4.19", - "browserslist": "^4.23.1", - "css-blank-pseudo": "^7.0.1", - "css-has-pseudo": "^7.0.1", - "css-prefers-color-scheme": "^10.0.0", - "cssdb": "^8.2.1", - "postcss-attribute-case-insensitive": "^7.0.1", - "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^7.0.6", - "postcss-color-hex-alpha": "^10.0.0", - "postcss-color-rebeccapurple": "^10.0.0", - "postcss-custom-media": "^11.0.5", - "postcss-custom-properties": "^14.0.4", - "postcss-custom-selectors": "^8.0.4", - "postcss-dir-pseudo-class": "^9.0.1", - "postcss-double-position-gradients": "^6.0.0", - "postcss-focus-visible": "^10.0.1", - "postcss-focus-within": "^9.0.1", - "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^6.0.0", - "postcss-image-set-function": "^7.0.0", - "postcss-lab-function": "^7.0.6", - "postcss-logical": "^8.0.0", - "postcss-nesting": "^13.0.1", - "postcss-opacity-percentage": "^3.0.0", - "postcss-overflow-shorthand": "^6.0.0", - "postcss-page-break": "^3.0.4", - "postcss-place": "^10.0.0", - "postcss-pseudo-class-any-link": "^10.0.1", - "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^8.0.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-pseudo-class-any-link": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz", - "integrity": "sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-reduce-idents": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz", - "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", - "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", - "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-replace-overflow-wrap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", - "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8.0.3" - } - }, - "node_modules/postcss-selector-not": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz", - "integrity": "sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-selector-not/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-sort-media-queries": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz", - "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==", - "license": "MIT", - "dependencies": { - "sort-css-media-queries": "2.2.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.4.23" - } - }, - "node_modules/postcss-svgo": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", - "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^3.2.0" - }, - "engines": { - "node": "^14 || ^16 || >= 18" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", - "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "license": "MIT" - }, - "node_modules/postcss-zindex": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz", - "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "node_modules/pretty-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", - "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/prism-react-renderer": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.4.0.tgz", - "integrity": "sha512-327BsVCD/unU4CNLZTWVHyUHKnsqcvj2qbPlQ8MiBE2eq2rgctjigPA1Gp9HLF83kZ20zNN6jgizHJeEsyFYOw==", - "license": "MIT", - "dependencies": { - "@types/prismjs": "^1.26.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": ">=16.0.0" - } - }, - "node_modules/prismjs": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "license": "MIT" - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "license": "ISC" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pupa": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", - "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", - "license": "MIT", - "dependencies": { - "escape-goat": "^4.0.0" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "license": "MIT", - "dependencies": { - "inherits": "~2.0.3" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dev-utils": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", - "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-dev-utils/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", - "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", - "license": "MIT", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/react-dev-utils/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/react-dev-utils/node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/react-error-overlay": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", - "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==", - "license": "MIT" - }, - "node_modules/react-fast-compare": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", - "license": "MIT" - }, - "node_modules/react-helmet-async": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", - "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.12.5", - "invariant": "^2.2.4", - "prop-types": "^15.7.2", - "react-fast-compare": "^3.2.0", - "shallowequal": "^1.1.0" - }, - "peerDependencies": { - "react": "^16.6.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, - "node_modules/react-json-view-lite": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-1.5.0.tgz", - "integrity": "sha512-nWqA1E4jKPklL2jvHWs6s+7Na0qNgw9HCP6xehdQJeg6nPBTFZgGwyko9Q0oj+jQWKTTVRS30u0toM5wiuL3iw==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "react": "^16.13.1 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-loadable": { - "name": "@docusaurus/react-loadable", - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", - "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", - "license": "MIT", - "dependencies": { - "@types/react": "*" - }, - "peerDependencies": { - "react": "*" - } - }, - "node_modules/react-loadable-ssr-addon-v5-slorber": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", - "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.3" - }, - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "react-loadable": "*", - "webpack": ">=4.41.1 || 5.x" - } - }, - "node_modules/react-router": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", - "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/react-router-config": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", - "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.1.2" - }, - "peerDependencies": { - "react": ">=15", - "react-router": ">=5" - } - }, - "node_modules/react-router-dom": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", - "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.3.4", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/reading-time": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz", - "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==", - "license": "MIT" - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/recma-build-jsx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", - "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-util-build-jsx": "^3.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recma-jsx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz", - "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==", - "license": "MIT", - "dependencies": { - "acorn-jsx": "^5.0.0", - "estree-util-to-js": "^2.0.0", - "recma-parse": "^1.0.0", - "recma-stringify": "^1.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recma-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", - "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "esast-util-from-js": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recma-stringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", - "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-util-to-js": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recursive-readdir": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", - "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", - "license": "MIT", - "dependencies": { - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "license": "MIT" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "license": "MIT" - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexpu-core": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", - "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.0", - "regjsgen": "^0.8.0", - "regjsparser": "^0.12.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/registry-auth-token": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.3.tgz", - "integrity": "sha512-1bpc9IyC+e+CNFRaWyn77tk4xGG4PPUyfakSmA6F6cvUDjrm58dfyJ3II+9yb10EDkHoy1LaPSmHaWLOH3m6HA==", - "license": "MIT", - "dependencies": { - "@pnpm/npm-conf": "^2.1.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/registry-url": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", - "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", - "license": "MIT", - "dependencies": { - "rc": "1.2.8" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", - "license": "MIT" - }, - "node_modules/regjsparser": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", - "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", - "license": "BSD-2-Clause", - "dependencies": { - "jsesc": "~3.0.2" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/rehype-raw": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", - "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "hast-util-raw": "^9.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-recma": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", - "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/hast": "^3.0.0", - "hast-util-to-estree": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remark": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/remark/-/remark-15.0.1.tgz", - "integrity": "sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "remark-parse": "^11.0.0", - "remark-stringify": "^11.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-directive": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.0.tgz", - "integrity": "sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-directive": "^3.0.0", - "micromark-extension-directive": "^3.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-emoji": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-4.0.1.tgz", - "integrity": "sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.2", - "emoticon": "^4.0.1", - "mdast-util-find-and-replace": "^3.0.1", - "node-emoji": "^2.1.0", - "unified": "^11.0.4" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/remark-frontmatter": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", - "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-frontmatter": "^2.0.0", - "micromark-extension-frontmatter": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-gfm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", - "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-gfm": "^3.0.0", - "micromark-extension-gfm": "^3.0.0", - "remark-parse": "^11.0.0", - "remark-stringify": "^11.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-import-partial": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/remark-import-partial/-/remark-import-partial-0.0.2.tgz", - "integrity": "sha512-HuIcpGITU/PK+fZvYYamayCH/jlsoB2Uxj1QaGBgTYtcpozvJQth+PKp9NUZpksUldGAmJf59IyMJgczMpbhwg==", - "license": "MIT", - "dependencies": { - "unist-util-visit": "2.0.2" - } - }, - "node_modules/remark-import-partial/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" - }, - "node_modules/remark-import-partial/node_modules/unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-import-partial/node_modules/unist-util-visit": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.2.tgz", - "integrity": "sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-import-partial/node_modules/unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", - "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", - "license": "MIT", - "dependencies": { - "mdast-util-mdx": "^3.0.0", - "micromark-extension-mdxjs": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-parse": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", - "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz", - "integrity": "sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "mdast-util-to-hast": "^13.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-stringify": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", - "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-to-markdown": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "license": "MIT", - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "node_modules/renderkid/node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/renderkid/node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-like": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", - "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==", - "engines": { - "node": "*" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "license": "MIT" - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", - "license": "MIT" - }, - "node_modules/responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "license": "MIT", - "dependencies": { - "lowercase-keys": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rtl-detect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.1.2.tgz", - "integrity": "sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==", - "license": "BSD-3-Clause" - }, - "node_modules/rtlcss": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz", - "integrity": "sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==", - "license": "MIT", - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0", - "postcss": "^8.4.21", - "strip-json-comments": "^3.1.1" - }, - "bin": { - "rtlcss": "bin/rtlcss.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "license": "ISC" - }, - "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/search-insights": { - "version": "2.17.3", - "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz", - "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==", - "license": "MIT", - "peer": true - }, - "node_modules/section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "license": "MIT" - }, - "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", - "license": "MIT", - "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", - "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", - "license": "MIT", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/send/node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-handler": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.6.tgz", - "integrity": "sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==", - "license": "MIT", - "dependencies": { - "bytes": "3.0.0", - "content-disposition": "0.5.2", - "mime-types": "2.1.18", - "minimatch": "3.1.2", - "path-is-inside": "1.0.2", - "path-to-regexp": "3.3.0", - "range-parser": "1.2.0" - } - }, - "node_modules/serve-handler/node_modules/path-to-regexp": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz", - "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==", - "license": "MIT" - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "license": "ISC" - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "license": "ISC" - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", - "license": "MIT" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", - "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "license": "BSD-3-Clause", - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC" - }, - "node_modules/sirv": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", - "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", - "license": "MIT", - "dependencies": { - "@polka/url": "^1.0.0-next.24", - "mrmime": "^2.0.0", - "totalist": "^3.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "license": "MIT" - }, - "node_modules/sitemap": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.2.tgz", - "integrity": "sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==", - "license": "MIT", - "dependencies": { - "@types/node": "^17.0.5", - "@types/sax": "^1.2.1", - "arg": "^5.0.0", - "sax": "^1.2.4" - }, - "bin": { - "sitemap": "dist/cli.js" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=5.6.0" - } - }, - "node_modules/sitemap/node_modules/@types/node": { - "version": "17.0.45", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", - "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", - "license": "MIT" - }, - "node_modules/skin-tone": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", - "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", - "license": "MIT", - "dependencies": { - "unicode-emoji-modifier-base": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "license": "MIT", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/sort-css-media-queries": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", - "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==", - "license": "MIT", - "engines": { - "node": ">= 6.3.0" - } - }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "license": "BSD-3-Clause" - }, - "node_modules/srcset": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", - "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/std-env": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", - "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==", - "license": "MIT" - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/stringify-entities": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", - "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", - "license": "MIT", - "dependencies": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "license": "BSD-2-Clause", - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-to-object": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", - "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", - "license": "MIT", - "dependencies": { - "inline-style-parser": "0.2.4" - } - }, - "node_modules/stylehacks": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", - "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", - "license": "MIT" - }, - "node_modules/svgo": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", - "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", - "license": "MIT", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^5.1.0", - "css-tree": "^2.3.1", - "css-what": "^6.1.0", - "csso": "^5.0.5", - "picocolors": "^1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/svgo" - } - }, - "node_modules/svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/terser": { - "version": "5.36.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", - "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", - "license": "BSD-2-Clause", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/terser-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT" - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "license": "MIT" - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "license": "MIT" - }, - "node_modules/tiny-invariant": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", - "license": "MIT" - }, - "node_modules/tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", - "license": "MIT" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/totalist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/trough": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", - "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "license": "MIT" - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", - "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-emoji-modifier-base": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", - "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "license": "MIT", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", - "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unified": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", - "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unique-string": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", - "license": "MIT", - "dependencies": { - "crypto-random-string": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position-from-estree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", - "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/update-notifier": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", - "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", - "license": "BSD-2-Clause", - "dependencies": { - "boxen": "^7.0.0", - "chalk": "^5.0.1", - "configstore": "^6.0.0", - "has-yarn": "^3.0.0", - "import-lazy": "^4.0.0", - "is-ci": "^3.0.1", - "is-installed-globally": "^0.4.0", - "is-npm": "^6.0.0", - "is-yarn-global": "^0.4.0", - "latest-version": "^7.0.0", - "pupa": "^3.1.0", - "semver": "^7.3.7", - "semver-diff": "^4.0.0", - "xdg-basedir": "^5.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/boxen": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", - "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", - "license": "MIT", - "dependencies": { - "ansi-align": "^3.0.1", - "camelcase": "^7.0.1", - "chalk": "^5.2.0", - "cli-boxes": "^3.0.0", - "string-width": "^5.1.2", - "type-fest": "^2.13.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/update-notifier/node_modules/camelcase": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", - "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/update-notifier/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-loader": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", - "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "mime-types": "^2.1.27", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "file-loader": "*", - "webpack": "^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "file-loader": { - "optional": true - } - } - }, - "node_modules/url-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/url-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/url-loader/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/url-loader/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/url-loader/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/url-loader/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", - "license": "MIT" - }, - "node_modules/utility-types": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", - "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==", - "license": "MIT" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", - "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/watchpack": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", - "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", - "license": "MIT", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "license": "MIT", - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/web-namespaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", - "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/webpack": { - "version": "5.97.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.0.tgz", - "integrity": "sha512-CWT8v7ShSfj7tGs4TLRtaOLmOCPWhoKEvp+eA7FVx8Xrjb3XfT0aXdxDItnRZmE8sHcH+a8ayDrJCOjXKxVFfQ==", - "license": "MIT", - "dependencies": { - "@types/eslint-scope": "^3.7.7", - "@types/estree": "^1.0.6", - "@webassemblyjs/ast": "^1.14.1", - "@webassemblyjs/wasm-edit": "^1.14.1", - "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.14.0", - "browserslist": "^4.24.0", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-bundle-analyzer": { - "version": "4.10.2", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", - "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", - "license": "MIT", - "dependencies": { - "@discoveryjs/json-ext": "0.5.7", - "acorn": "^8.0.4", - "acorn-walk": "^8.0.0", - "commander": "^7.2.0", - "debounce": "^1.2.1", - "escape-string-regexp": "^4.0.0", - "gzip-size": "^6.0.0", - "html-escaper": "^2.0.2", - "opener": "^1.5.2", - "picocolors": "^1.0.0", - "sirv": "^2.0.3", - "ws": "^7.3.1" - }, - "bin": { - "webpack-bundle-analyzer": "lib/bin/analyzer.js" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", - "license": "MIT", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack-dev-middleware/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack-dev-middleware/node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.15.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", - "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", - "license": "MIT", - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.4", - "ws": "^8.13.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/webpack-merge": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", - "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", - "license": "MIT", - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.1" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/webpack/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpackbar": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-6.0.1.tgz", - "integrity": "sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q==", - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "consola": "^3.2.3", - "figures": "^3.2.0", - "markdown-table": "^2.0.0", - "pretty-time": "^1.1.0", - "std-env": "^3.7.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=14.21.3" - }, - "peerDependencies": { - "webpack": "3 || 4 || 5" - } - }, - "node_modules/webpackbar/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/webpackbar/node_modules/markdown-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", - "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", - "license": "MIT", - "dependencies": { - "repeat-string": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/webpackbar/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/webpackbar/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "license": "Apache-2.0", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "license": "Apache-2.0", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/widest-line": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", - "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", - "license": "MIT", - "dependencies": { - "string-width": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "license": "MIT" - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xdg-basedir": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", - "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/xml-js": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", - "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", - "license": "MIT", - "dependencies": { - "sax": "^1.2.4" - }, - "bin": { - "xml-js": "bin/cli.js" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "license": "ISC" - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yocto-queue": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", - "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", - "license": "MIT", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - } - } -} diff --git a/book2/package.json b/book2/package.json deleted file mode 100644 index 3d6d4006b0..0000000000 --- a/book2/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "book-2", - "version": "0.0.0", - "private": true, - "scripts": { - "docusaurus": "docusaurus", - "start": "docusaurus start", - "build": "docusaurus build", - "swizzle": "docusaurus swizzle", - "deploy": "docusaurus deploy", - "clear": "docusaurus clear", - "serve": "docusaurus serve", - "write-translations": "docusaurus write-translations", - "write-heading-ids": "docusaurus write-heading-ids", - "typecheck": "tsc" - }, - "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/plugin-content-docs": "^3.6.3", - "@docusaurus/preset-classic": "3.6.3", - "@mdx-js/react": "^3.0.0", - "clsx": "^2.0.0", - "prism-react-renderer": "^2.3.0", - "react": "^18.0.0", - "react-dom": "^18.0.0" - }, - "devDependencies": { - "@docusaurus/module-type-aliases": "3.6.3", - "@docusaurus/tsconfig": "3.6.3", - "@docusaurus/types": "3.6.3", - "typescript": "~5.6.2" - }, - "browserslist": { - "production": [ - ">0.5%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 3 chrome version", - "last 3 firefox version", - "last 5 safari version" - ] - }, - "engines": { - "node": ">=18.0" - } -} diff --git a/book2/sidebars.ts b/book2/sidebars.ts deleted file mode 100644 index b2c0ce6812..0000000000 --- a/book2/sidebars.ts +++ /dev/null @@ -1,108 +0,0 @@ -import type {SidebarsConfig} from '@docusaurus/plugin-content-docs'; - -// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) - -/** - * Creating a sidebar enables you to: - - create an ordered group of docs - - render a sidebar for each doc of that group - - provide next/previous navigation - - The sidebars can be generated from the filesystem, or explicitly defined here. - - Create as many sidebars as you want. - */ -const sidebars: SidebarsConfig = { - docs: [ - "introduction", - { - type: 'category', - label: 'Getting Started', - items: [ - 'getting-started/install', - 'getting-started/quickstart', - 'getting-started/hardware-requirements', - 'getting-started/project-template' - ], - collapsed: false, - }, - { - type: 'category', - label: 'Writing Programs', - items: [ - 'writing-programs/basics', - 'writing-programs/compiling', - 'writing-programs/cycle-tracking', - 'writing-programs/inputs-and-outputs', - 'writing-programs/patched-crates', - 'writing-programs/precompiles', - 'writing-programs/proof-aggregation', - 'writing-programs/setup' - ], - collapsed: true, - }, - { - type: 'category', - label: 'Generating Proofs', - items: [ - "generating-proofs/basics", - "generating-proofs/setup", - "generating-proofs/proof-types", - "generating-proofs/recommended-workflow", - "generating-proofs/sp1-sdk-faq", - { - type: 'category', - label: 'Hardware Acceleration', - link: { type: 'doc', id: 'generating-proofs/hardware-acceleration' }, - items: [ - "generating-proofs/hardware-acceleration", - "generating-proofs/hardware-acceleration/avx", - "generating-proofs/hardware-acceleration/cuda" - ], - }, - { - type: 'category', - label: 'Prover Network', - link: { type: 'doc', id: 'generating-proofs/prover-network' }, - items: [ - "generating-proofs/prover-network/key-setup", - "generating-proofs/prover-network/usage", - "generating-proofs/prover-network/versions" - ], - }, - "generating-proofs/advanced", - ], - collapsed: true, - }, - { - type: 'category', - label: 'Verification', - items: [ - 'verification/off-chain-verification', - { - type: 'category', - label: 'On-Chain Verification', - items: [ - "verification/onchain/getting-started", - "verification/onchain/contract-addresses", - "verification/onchain/solidity-sdk" - ], - }, - ] - }, - { - type: 'category', - label: 'Developers', - items: [ - "developers/common-issues", - "developers/usage-in-ci", - "developers/building-circuit-artifacts", - "developers/rv32im-specification", - ] - }, - 'what-is-a-zkvm', - 'why-use-sp1', - ], -}; - -export default sidebars; diff --git a/book2/src/css/custom.css b/book2/src/css/custom.css deleted file mode 100644 index 2bc6a4cfde..0000000000 --- a/book2/src/css/custom.css +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Any CSS included here will be global. The classic template - * bundles Infima by default. Infima is a CSS framework designed to - * work well for content-centric websites. - */ - -/* You can override the default Infima variables here. */ -:root { - --ifm-color-primary: #2e8555; - --ifm-color-primary-dark: #29784c; - --ifm-color-primary-darker: #277148; - --ifm-color-primary-darkest: #205d3b; - --ifm-color-primary-light: #33925d; - --ifm-color-primary-lighter: #359962; - --ifm-color-primary-lightest: #3cad6e; - --ifm-code-font-size: 95%; - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); -} - -/* For readability concerns, you should choose a lighter palette in dark mode. */ -[data-theme='dark'] { - --ifm-color-primary: #25c2a0; - --ifm-color-primary-dark: #21af90; - --ifm-color-primary-darker: #1fa588; - --ifm-color-primary-darkest: #1a8870; - --ifm-color-primary-light: #29d5b0; - --ifm-color-primary-lighter: #32d8b4; - --ifm-color-primary-lightest: #4fddbf; - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); -} diff --git a/book2/src/pages/index.tsx b/book2/src/pages/index.tsx deleted file mode 100644 index a45a79231e..0000000000 --- a/book2/src/pages/index.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { Redirect } from "@docusaurus/router"; -import useBaseUrl from "@docusaurus/useBaseUrl"; -import React from "react"; - -const Home = () => { - const url = useBaseUrl("/docs/introduction"); - return ; -}; - -export default Home; - diff --git a/book2/static/.nojekyll b/book2/static/.nojekyll deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/book2/static/crates_zkvm_lib_src_lib.rs.mdx b/book2/static/crates_zkvm_lib_src_lib.rs.mdx deleted file mode 100644 index e552f31364..0000000000 --- a/book2/static/crates_zkvm_lib_src_lib.rs.mdx +++ /dev/null @@ -1,133 +0,0 @@ -```rust -//! Syscalls for the SP1 zkVM. -//! -//! Documentation for these syscalls can be found in the zkVM entrypoint -//! `sp1_zkvm::syscalls` module. - -pub mod bls12381; -pub mod bn254; -pub mod ed25519; -pub mod io; -pub mod secp256k1; -pub mod unconstrained; -pub mod utils; -#[cfg(feature = "verify")] -pub mod verify; - -extern "C" { - /// Halts the program with the given exit code. - pub fn syscall_halt(exit_code: u8) -> !; - - /// Writes the bytes in the given buffer to the given file descriptor. - pub fn syscall_write(fd: u32, write_buf: *const u8, nbytes: usize); - - /// Reads the bytes from the given file descriptor into the given buffer. - pub fn syscall_read(fd: u32, read_buf: *mut u8, nbytes: usize); - - /// Executes the SHA-256 extend operation on the given word array. - pub fn syscall_sha256_extend(w: *mut [u32; 64]); - - /// Executes the SHA-256 compress operation on the given word array and a given state. - pub fn syscall_sha256_compress(w: *mut [u32; 64], state: *mut [u32; 8]); - - /// Executes an Ed25519 curve addition on the given points. - pub fn syscall_ed_add(p: *mut [u32; 16], q: *const [u32; 16]); - - /// Executes an Ed25519 curve decompression on the given point. - pub fn syscall_ed_decompress(point: &mut [u8; 64]); - - /// Executes an Sepc256k1 curve addition on the given points. - pub fn syscall_secp256k1_add(p: *mut [u32; 16], q: *const [u32; 16]); - - /// Executes an Secp256k1 curve doubling on the given point. - pub fn syscall_secp256k1_double(p: *mut [u32; 16]); - - /// Executes an Secp256k1 curve decompression on the given point. - pub fn syscall_secp256k1_decompress(point: &mut [u8; 64], is_odd: bool); - - /// Executes a Bn254 curve addition on the given points. - pub fn syscall_bn254_add(p: *mut [u32; 16], q: *const [u32; 16]); - - /// Executes a Bn254 curve doubling on the given point. - pub fn syscall_bn254_double(p: *mut [u32; 16]); - - /// Executes a BLS12-381 curve addition on the given points. - pub fn syscall_bls12381_add(p: *mut [u32; 24], q: *const [u32; 24]); - - /// Executes a BLS12-381 curve doubling on the given point. - pub fn syscall_bls12381_double(p: *mut [u32; 24]); - - /// Executes the Keccak-256 permutation on the given state. - pub fn syscall_keccak_permute(state: *mut [u64; 25]); - - /// Executes an uint256 multiplication on the given inputs. - pub fn syscall_uint256_mulmod(x: *mut [u32; 8], y: *const [u32; 8]); - - /// Enters unconstrained mode. - pub fn syscall_enter_unconstrained() -> bool; - - /// Exits unconstrained mode. - pub fn syscall_exit_unconstrained(); - - /// Defers the verification of a valid SP1 zkVM proof. - pub fn syscall_verify_sp1_proof(vk_digest: &[u32; 8], pv_digest: &[u8; 32]); - - /// Returns the length of the next element in the hint stream. - pub fn syscall_hint_len() -> usize; - - /// Reads the next element in the hint stream into the given buffer. - pub fn syscall_hint_read(ptr: *mut u8, len: usize); - - /// Allocates a buffer aligned to the given alignment. - pub fn sys_alloc_aligned(bytes: usize, align: usize) -> *mut u8; - - /// Decompresses a BLS12-381 point. - pub fn syscall_bls12381_decompress(point: &mut [u8; 96], is_odd: bool); - - /// Computes a big integer operation with a modulus. - pub fn sys_bigint( - result: *mut [u32; 8], - op: u32, - x: *const [u32; 8], - y: *const [u32; 8], - modulus: *const [u32; 8], - ); - - /// Executes a BLS12-381 field addition on the given inputs. - pub fn syscall_bls12381_fp_addmod(p: *mut u32, q: *const u32); - - /// Executes a BLS12-381 field subtraction on the given inputs. - pub fn syscall_bls12381_fp_submod(p: *mut u32, q: *const u32); - - /// Executes a BLS12-381 field multiplication on the given inputs. - pub fn syscall_bls12381_fp_mulmod(p: *mut u32, q: *const u32); - - /// Executes a BLS12-381 Fp2 addition on the given inputs. - pub fn syscall_bls12381_fp2_addmod(p: *mut u32, q: *const u32); - - /// Executes a BLS12-381 Fp2 subtraction on the given inputs. - pub fn syscall_bls12381_fp2_submod(p: *mut u32, q: *const u32); - - /// Executes a BLS12-381 Fp2 multiplication on the given inputs. - pub fn syscall_bls12381_fp2_mulmod(p: *mut u32, q: *const u32); - - /// Executes a BN254 field addition on the given inputs. - pub fn syscall_bn254_fp_addmod(p: *mut u32, q: *const u32); - - /// Executes a BN254 field subtraction on the given inputs. - pub fn syscall_bn254_fp_submod(p: *mut u32, q: *const u32); - - /// Executes a BN254 field multiplication on the given inputs. - pub fn syscall_bn254_fp_mulmod(p: *mut u32, q: *const u32); - - /// Executes a BN254 Fp2 addition on the given inputs. - pub fn syscall_bn254_fp2_addmod(p: *mut u32, q: *const u32); - - /// Executes a BN254 Fp2 subtraction on the given inputs. - pub fn syscall_bn254_fp2_submod(p: *mut u32, q: *const u32); - - /// Executes a BN254 Fp2 multiplication on the given inputs. - pub fn syscall_bn254_fp2_mulmod(p: *mut u32, q: *const u32); - -} -``` diff --git a/book2/static/examples_cycle-tracking_program_bin_normal.rs.mdx b/book2/static/examples_cycle-tracking_program_bin_normal.rs.mdx deleted file mode 100644 index a9dc61d95d..0000000000 --- a/book2/static/examples_cycle-tracking_program_bin_normal.rs.mdx +++ /dev/null @@ -1,34 +0,0 @@ -```rust -#![no_main] -sp1_zkvm::entrypoint!(main); - -#[sp1_derive::cycle_tracker] -pub fn expensive_function(x: usize) -> usize { - let mut y = 1; - for _ in 0..100 { - y *= x; - y %= 7919; - } - y -} - -pub fn main() { - let mut nums = vec![1, 1]; - - // Setup a large vector with Fibonacci-esque numbers. - println!("cycle-tracker-start: setup"); - for _ in 0..100 { - let mut c = nums[nums.len() - 1] + nums[nums.len() - 2]; - c %= 7919; - nums.push(c); - } - println!("cycle-tracker-end: setup"); - - println!("cycle-tracker-start: main-body"); - for i in 0..2 { - let result = expensive_function(nums[nums.len() - i - 1]); - println!("result: {}", result); - } - println!("cycle-tracker-end: main-body"); -} -``` diff --git a/book2/static/examples_fibonacci_program_src_main.rs.mdx b/book2/static/examples_fibonacci_program_src_main.rs.mdx deleted file mode 100644 index 86d550cddf..0000000000 --- a/book2/static/examples_fibonacci_program_src_main.rs.mdx +++ /dev/null @@ -1,39 +0,0 @@ -```rust -//! A simple program that takes a number `n` as input, and writes the `n-1`th and `n`th fibonacci -//! number as an output. - -// These two lines are necessary for the program to properly compile. -// -// Under the hood, we wrap your main function with some extra code so that it behaves properly -// inside the zkVM. -#![no_main] -sp1_zkvm::entrypoint!(main); - -pub fn main() { - // Read an input to the program. - // - // Behind the scenes, this compiles down to a system call which handles reading inputs - // from the prover. - let n = sp1_zkvm::io::read::(); - - // Write n to public input - sp1_zkvm::io::commit(&n); - - // Compute the n'th fibonacci number, using normal Rust code. - let mut a = 0; - let mut b = 1; - for _ in 0..n { - let mut c = a + b; - c %= 7919; // Modulus to prevent overflow. - a = b; - b = c; - } - - // Write the output of the program. - // - // Behind the scenes, this also compiles down to a system call which handles writing - // outputs to the prover. - sp1_zkvm::io::commit(&a); - sp1_zkvm::io::commit(&b); -} -``` diff --git a/book2/static/examples_fibonacci_script_bin_compressed.rs.mdx b/book2/static/examples_fibonacci_script_bin_compressed.rs.mdx deleted file mode 100644 index 4115db7b74..0000000000 --- a/book2/static/examples_fibonacci_script_bin_compressed.rs.mdx +++ /dev/null @@ -1,35 +0,0 @@ -```rust -use sp1_sdk::{utils, ProverClient, SP1Stdin}; - -/// The ELF we want to execute inside the zkVM. -const ELF: &[u8] = include_bytes!("../../program/elf/riscv32im-succinct-zkvm-elf"); - -fn main() { - // Setup logging. - utils::setup_logger(); - - // Create an input stream and write '500' to it. - let n = 500u32; - let mut stdin = SP1Stdin::new(); - stdin.write(&n); - - // Generate the constant-sized proof for the given program and input. - let client = ProverClient::new(); - let (pk, vk) = client.setup(ELF); - let mut proof = client.prove(&pk, stdin).compressed().run().unwrap(); - - println!("generated proof"); - // Read and verify the output. - let a = proof.public_values.read::(); - let b = proof.public_values.read::(); - println!("a: {}, b: {}", a, b); - - // Verify proof and public values - client.verify(&proof, &vk).expect("verification failed"); - - // Save the proof. - proof.save("compressed-proof-with-pis.bin").expect("saving proof failed"); - - println!("successfully generated and verified proof for the program!") -} -``` diff --git a/book2/static/examples_fibonacci_script_bin_execute.rs.mdx b/book2/static/examples_fibonacci_script_bin_execute.rs.mdx deleted file mode 100644 index 3e808935d2..0000000000 --- a/book2/static/examples_fibonacci_script_bin_execute.rs.mdx +++ /dev/null @@ -1,37 +0,0 @@ -```rust -use sp1_sdk::{utils, ProverClient, SP1Stdin}; - -/// The ELF we want to execute inside the zkVM. -const ELF: &[u8] = include_bytes!("../../program/elf/riscv32im-succinct-zkvm-elf"); - -fn main() { - // Setup logging. - utils::setup_logger(); - - // Create an input stream and write '500' to it. - let n = 500u32; - - let mut stdin = SP1Stdin::new(); - stdin.write(&n); - - // Only execute the program and get a `SP1PublicValues` object. - let client = ProverClient::new(); - let (mut public_values, execution_report) = client.execute(ELF, stdin).run().unwrap(); - - // Print the total number of cycles executed and the full execution report with a breakdown of - // the RISC-V opcode and syscall counts. - println!( - "Executed program with {} cycles", - execution_report.total_instruction_count() + execution_report.total_syscall_count() - ); - println!("Full execution report:\n{:?}", execution_report); - - // Read and verify the output. - let _ = public_values.read::(); - let a = public_values.read::(); - let b = public_values.read::(); - - println!("a: {}", a); - println!("b: {}", b); -} -``` diff --git a/book2/static/examples_fibonacci_script_bin_groth16_bn254.rs.mdx b/book2/static/examples_fibonacci_script_bin_groth16_bn254.rs.mdx deleted file mode 100644 index 37d7f3f23c..0000000000 --- a/book2/static/examples_fibonacci_script_bin_groth16_bn254.rs.mdx +++ /dev/null @@ -1,42 +0,0 @@ -```rust -use sp1_sdk::{utils, HashableKey, ProverClient, SP1Stdin}; - -/// The ELF we want to execute inside the zkVM. -const ELF: &[u8] = include_bytes!("../../program/elf/riscv32im-succinct-zkvm-elf"); - -fn main() { - // Setup logging. - utils::setup_logger(); - - // Create an input stream and write '500' to it. - let n = 500u32; - - let mut stdin = SP1Stdin::new(); - stdin.write(&n); - - // Set up the pk and vk. - let client = ProverClient::new(); - let (pk, vk) = client.setup(ELF); - println!("vk: {:?}", vk.bytes32()); - - // Generate the Groth16 proof. - let proof = client.prove(&pk, stdin).groth16().run().unwrap(); - println!("generated proof"); - - // Get the public values as bytes. - let public_values = proof.public_values.as_slice(); - println!("public values: 0x{}", hex::encode(public_values)); - - // Get the proof as bytes. - let solidity_proof = proof.bytes(); - println!("proof: 0x{}", hex::encode(solidity_proof)); - - // Verify proof and public values - client.verify(&proof, &vk).expect("verification failed"); - - // Save the proof. - proof.save("fibonacci-groth16.bin").expect("saving proof failed"); - - println!("successfully generated and verified proof for the program!") -} -``` diff --git a/book2/static/examples_fibonacci_script_build.rs.mdx b/book2/static/examples_fibonacci_script_build.rs.mdx deleted file mode 100644 index a6f5f1636e..0000000000 --- a/book2/static/examples_fibonacci_script_build.rs.mdx +++ /dev/null @@ -1,5 +0,0 @@ -```rust -fn main() { - sp1_build::build_program("../program"); -} -``` diff --git a/book2/static/examples_fibonacci_script_src_main.rs.mdx b/book2/static/examples_fibonacci_script_src_main.rs.mdx deleted file mode 100644 index 0aa64a9583..0000000000 --- a/book2/static/examples_fibonacci_script_src_main.rs.mdx +++ /dev/null @@ -1,56 +0,0 @@ -```rust -use sp1_sdk::{include_elf, utils, ProverClient, SP1ProofWithPublicValues, SP1Stdin}; - -/// The ELF we want to execute inside the zkVM. -const ELF: &[u8] = include_elf!("fibonacci-program"); - -fn main() { - // Setup logging. - utils::setup_logger(); - - // Create an input stream and write '500' to it. - let n = 1000u32; - - // The input stream that the program will read from using `sp1_zkvm::io::read`. Note that the - // types of the elements in the input stream must match the types being read in the program. - let mut stdin = SP1Stdin::new(); - stdin.write(&n); - - // Create a `ProverClient` method. - let client = ProverClient::new(); - - // Execute the program using the `ProverClient.execute` method, without generating a proof. - let (_, report) = client.execute(ELF, stdin.clone()).run().unwrap(); - println!("executed program with {} cycles", report.total_instruction_count()); - - // Generate the proof for the given program and input. - let (pk, vk) = client.setup(ELF); - let mut proof = client.prove(&pk, stdin).run().unwrap(); - - println!("generated proof"); - - // Read and verify the output. - // - // Note that this output is read from values committed to in the program using - // `sp1_zkvm::io::commit`. - let _ = proof.public_values.read::(); - let a = proof.public_values.read::(); - let b = proof.public_values.read::(); - - println!("a: {}", a); - println!("b: {}", b); - - // Verify proof and public values - client.verify(&proof, &vk).expect("verification failed"); - - // Test a round trip of proof serialization and deserialization. - proof.save("proof-with-pis.bin").expect("saving proof failed"); - let deserialized_proof = - SP1ProofWithPublicValues::load("proof-with-pis.bin").expect("loading proof failed"); - - // Verify the deserialized proof. - client.verify(&deserialized_proof, &vk).expect("verification failed"); - - println!("successfully generated and verified proof for the program!") -} -``` diff --git a/book2/static/examples_groth16_program_src_main.rs.mdx b/book2/static/examples_groth16_program_src_main.rs.mdx deleted file mode 100644 index 6e195f06bf..0000000000 --- a/book2/static/examples_groth16_program_src_main.rs.mdx +++ /dev/null @@ -1,30 +0,0 @@ -```rust -//! A program that verifies a Groth16 proof in SP1. - -#![no_main] -sp1_zkvm::entrypoint!(main); - -use sp1_verifier::Groth16Verifier; - -pub fn main() { - // Read the proof, public values, and vkey hash from the input stream. - let proof = sp1_zkvm::io::read_vec(); - let sp1_public_values = sp1_zkvm::io::read_vec(); - let sp1_vkey_hash: String = sp1_zkvm::io::read(); - - // Verify the groth16 proof. - let groth16_vk = *sp1_verifier::GROTH16_VK_BYTES; - println!("cycle-tracker-start: verify"); - let result = Groth16Verifier::verify(&proof, &sp1_public_values, &sp1_vkey_hash, groth16_vk); - println!("cycle-tracker-end: verify"); - - match result { - Ok(()) => { - println!("Proof is valid"); - } - Err(e) => { - println!("Error verifying proof: {:?}", e); - } - } -} -``` diff --git a/book2/static/examples_groth16_script_src_main.rs.mdx b/book2/static/examples_groth16_script_src_main.rs.mdx deleted file mode 100644 index 7be12e7e3d..0000000000 --- a/book2/static/examples_groth16_script_src_main.rs.mdx +++ /dev/null @@ -1,57 +0,0 @@ -```rust -//! A script that generates a Groth16 proof for the Fibonacci program, and verifies the -//! Groth16 proof in SP1. - -use sp1_sdk::{include_elf, utils, HashableKey, ProverClient, SP1Stdin}; - -/// The ELF for the Groth16 verifier program. -const GROTH16_ELF: &[u8] = include_elf!("groth16-verifier-program"); - -/// The ELF for the Fibonacci program. -const FIBONACCI_ELF: &[u8] = include_elf!("fibonacci-program"); - -/// Generates the proof, public values, and vkey hash for the Fibonacci program in a format that -/// can be read by `sp1-verifier`. -/// -/// Returns the proof bytes, public values, and vkey hash. -fn generate_fibonacci_proof() -> (Vec, Vec, String) { - // Create an input stream and write '20' to it. - let n = 20u32; - - // The input stream that the program will read from using `sp1_zkvm::io::read`. Note that the - // types of the elements in the input stream must match the types being read in the program. - let mut stdin = SP1Stdin::new(); - stdin.write(&n); - - // Create a `ProverClient`. - let client = ProverClient::new(); - - // Generate the groth16 proof for the Fibonacci program. - let (pk, vk) = client.setup(FIBONACCI_ELF); - println!("vk: {:?}", vk.bytes32()); - let proof = client.prove(&pk, stdin).groth16().run().unwrap(); - (proof.bytes(), proof.public_values.to_vec(), vk.bytes32()) -} - -fn main() { - // Setup logging. - utils::setup_logger(); - - // Generate the Fibonacci proof, public values, and vkey hash. - let (fibonacci_proof, fibonacci_public_values, vk) = generate_fibonacci_proof(); - - // Write the proof, public values, and vkey hash to the input stream. - let mut stdin = SP1Stdin::new(); - stdin.write_vec(fibonacci_proof); - stdin.write_vec(fibonacci_public_values); - stdin.write(&vk); - - // Create a `ProverClient`. - let client = ProverClient::new(); - - // Execute the program using the `ProverClient.execute` method, without generating a proof. - let (_, report) = client.execute(GROTH16_ELF, stdin.clone()).run().unwrap(); - println!("executed groth16 program with {} cycles", report.total_instruction_count()); - println!("{}", report); -} -``` diff --git a/book2/static/examples_io_program_src_main.rs.mdx b/book2/static/examples_io_program_src_main.rs.mdx deleted file mode 100644 index ec0c239891..0000000000 --- a/book2/static/examples_io_program_src_main.rs.mdx +++ /dev/null @@ -1,25 +0,0 @@ -```rust -#![no_main] -sp1_zkvm::entrypoint!(main); - -use serde::{Deserialize, Serialize}; - -#[derive(Serialize, Deserialize, Debug, PartialEq)] -struct MyPointUnaligned { - pub x: usize, - pub y: usize, - pub b: bool, -} - -pub fn main() { - let p1 = sp1_zkvm::io::read::(); - println!("Read point: {:?}", p1); - - let p2 = sp1_zkvm::io::read::(); - println!("Read point: {:?}", p2); - - let p3: MyPointUnaligned = MyPointUnaligned { x: p1.x + p2.x, y: p1.y + p2.y, b: p1.b && p2.b }; - println!("Addition of 2 points: {:?}", p3); - sp1_zkvm::io::commit(&p3); -} -``` diff --git a/book2/static/img/favicon.ico b/book2/static/img/favicon.ico deleted file mode 100644 index fe73ed177aa0be8e28a0eeb32c40528b5fddcb30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmdT|%S%*I9KP*)*vl408EquW76n0zFsNP8Cg?@WYL`Xz2UM$sP$LL>&;ubMs#OtD z;9@k*DK%eVT0Ta{QAW)Nkbx1-eRrx-ANU6&x!Sf;$!ZN`d%5?l>f4KUgU4|(TvQ?Wwi8IYLp zpT|ru5G*n}r*Iv7`!2TlxIv-)xWaffpl1E!q49T7Pg_^bL2TfDck!s-s?dE|VY-7H zly@Fk_{0{BFMHB`kg|=`>yaa|Gb3CC>X!F=lBUAiS zyPo;5U7_GHak1CA4XRW?NT=LTVgad65D)){rvHk4~vAE}wewdQ) z(o=Hd^X}Z>iz#HUDK$m*0vca@Y~$;@#Kt^xe(3LV1>%E1f9V4I;|xBMC!q@O_IKm! zXVw?lk9C!BpCadj44=rm-XEW^&n#I2{F%__BgS3ZF~$b>BBHPOLVP6kI2Y%G`It)& jkp9 Date: Tue, 17 Dec 2024 12:05:42 -0800 Subject: [PATCH 11/36] ProverClient builder tweaks, compiles --- crates/prover/src/types.rs | 16 +- crates/sdk/src/action.rs | 232 --------------------- crates/sdk/src/lib.rs | 346 +++++++++++++------------------ crates/sdk/src/network/prover.rs | 40 +--- crates/sdk/src/provers/cpu.rs | 39 ++-- crates/sdk/src/provers/mock.rs | 15 +- crates/sdk/src/provers/mod.rs | 3 - 7 files changed, 192 insertions(+), 499 deletions(-) delete mode 100644 crates/sdk/src/action.rs diff --git a/crates/prover/src/types.rs b/crates/prover/src/types.rs index b05776fca1..6abd080445 100644 --- a/crates/prover/src/types.rs +++ b/crates/prover/src/types.rs @@ -1,4 +1,4 @@ -use std::{fs::File, path::Path}; +use std::{fs::File, path::Path, str::FromStr}; use anyhow::Result; use clap::ValueEnum; @@ -209,6 +209,20 @@ pub enum ProverMode { Mock, } +impl FromStr for ProverMode { + type Err = anyhow::Error; + + fn from_str(s: &str) -> Result { + match s { + "cpu" => Ok(Self::Cpu), + "cuda" => Ok(Self::Cuda), + "network" => Ok(Self::Network), + "mock" => Ok(Self::Mock), + _ => Err(anyhow::anyhow!("invalid prover mode")), + } + } +} + #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum ProofSystem { Plonk, diff --git a/crates/sdk/src/action.rs b/crates/sdk/src/action.rs deleted file mode 100644 index 58b38da010..0000000000 --- a/crates/sdk/src/action.rs +++ /dev/null @@ -1,232 +0,0 @@ -use sp1_core_executor::{ExecutionReport, HookEnv, SP1ContextBuilder}; -use sp1_core_machine::io::SP1Stdin; -use sp1_primitives::io::SP1PublicValues; -use sp1_prover::{components::DefaultProverComponents, SP1ProvingKey}; - -use anyhow::{Ok, Result}; -use sp1_stark::{SP1CoreOpts, SP1ProverOpts}; -use std::time::Duration; - -use crate::{provers::ProofOpts, Prover, SP1ProofKind, SP1ProofWithPublicValues}; - -/// Builder to prepare and configure execution of a program on an input. -/// May be run with [Self::run]. -pub struct Execute<'a> { - prover: &'a dyn Prover, - context_builder: SP1ContextBuilder<'a>, - elf: &'a [u8], - stdin: SP1Stdin, -} - -impl<'a> Execute<'a> { - /// Prepare to execute the given program on the given input (without generating a proof). - /// - /// Prefer using [ProverClient::execute](super::ProverClient::execute). - /// See there for more documentation. - pub fn new( - prover: &'a dyn Prover, - elf: &'a [u8], - stdin: SP1Stdin, - ) -> Self { - Self { prover, elf, stdin, context_builder: Default::default() } - } - - /// Execute the program on the input, consuming the built action `self`. - pub fn run(self) -> Result<(SP1PublicValues, ExecutionReport)> { - let Self { prover, elf, stdin, mut context_builder } = self; - let context = context_builder.build(); - Ok(prover.sp1_prover().execute(elf, &stdin, context)?) - } - - /// Add a runtime [Hook](super::Hook) into the context. - /// - /// Hooks may be invoked from within SP1 by writing to the specified file descriptor `fd` - /// with [`sp1_zkvm::io::write`], returning a list of arbitrary data that may be read - /// with successive calls to [`sp1_zkvm::io::read`]. - pub fn with_hook( - mut self, - fd: u32, - f: impl FnMut(HookEnv, &[u8]) -> Vec> + Send + Sync + 'a, - ) -> Self { - self.context_builder.hook(fd, f); - self - } - - /// Avoid registering the default hooks in the runtime. - /// - /// It is not necessary to call this to override hooks --- instead, simply - /// register a hook with the same value of `fd` by calling [`Self::with_hook`]. - pub fn without_default_hooks(mut self) -> Self { - self.context_builder.without_default_hooks(); - self - } - - /// Set the maximum number of cpu cycles to use for execution. - /// - /// If the cycle limit is exceeded, execution will return - /// [`sp1_core_executor::ExecutionError::ExceededCycleLimit`]. - pub fn max_cycles(mut self, max_cycles: u64) -> Self { - self.context_builder.max_cycles(max_cycles); - self - } - - /// Skip deferred proof verification. - pub fn set_skip_deferred_proof_verification(mut self, value: bool) -> Self { - self.context_builder.set_skip_deferred_proof_verification(value); - self - } -} - -/// Builder to prepare and configure proving execution of a program on an input. -/// May be run with [Self::run]. -pub struct Prove<'a> { - prover: &'a dyn Prover, - kind: SP1ProofKind, - context_builder: SP1ContextBuilder<'a>, - pk: &'a SP1ProvingKey, - stdin: SP1Stdin, - core_opts: SP1CoreOpts, - recursion_opts: SP1CoreOpts, - timeout: Option, -} - -impl<'a> Prove<'a> { - /// Prepare to prove the execution of the given program with the given input. - /// - /// Prefer using [ProverClient::prove](super::ProverClient::prove). - /// See there for more documentation. - pub fn new( - prover: &'a dyn Prover, - pk: &'a SP1ProvingKey, - stdin: SP1Stdin, - ) -> Self { - Self { - prover, - kind: Default::default(), - pk, - stdin, - context_builder: Default::default(), - core_opts: SP1CoreOpts::default(), - recursion_opts: SP1CoreOpts::recursion(), - timeout: None, - } - } - - /// Prove the execution of the program on the input, consuming the built action `self`. - pub fn run(self) -> Result { - let Self { - prover, - kind, - pk, - stdin, - mut context_builder, - core_opts, - recursion_opts, - timeout, - } = self; - let opts = SP1ProverOpts { core_opts, recursion_opts }; - let proof_opts = ProofOpts { sp1_prover_opts: opts, timeout }; - let context = context_builder.build(); - - // Dump the program and stdin to files for debugging if `SP1_DUMP` is set. - if std::env::var("SP1_DUMP") - .map(|v| v == "1" || v.to_lowercase() == "true") - .unwrap_or(false) - { - let program = pk.elf.clone(); - std::fs::write("program.bin", program).unwrap(); - let stdin = bincode::serialize(&stdin).unwrap(); - std::fs::write("stdin.bin", stdin.clone()).unwrap(); - } - - prover.prove(pk, stdin, proof_opts, context, kind) - } - - /// Set the proof kind to the core mode. This is the default. - pub fn core(mut self) -> Self { - self.kind = SP1ProofKind::Core; - self - } - - /// Set the proof kind to the compressed mode. - pub fn compressed(mut self) -> Self { - self.kind = SP1ProofKind::Compressed; - self - } - - /// Set the proof mode to the plonk bn254 mode. - pub fn plonk(mut self) -> Self { - self.kind = SP1ProofKind::Plonk; - self - } - - /// Set the proof mode to the groth16 bn254 mode. - pub fn groth16(mut self) -> Self { - self.kind = SP1ProofKind::Groth16; - self - } - - /// Add a runtime [Hook](super::Hook) into the context. - /// - /// Hooks may be invoked from within SP1 by writing to the specified file descriptor `fd` - /// with [`sp1_zkvm::io::write`], returning a list of arbitrary data that may be read - /// with successive calls to [`sp1_zkvm::io::read`]. - pub fn with_hook( - mut self, - fd: u32, - f: impl FnMut(HookEnv, &[u8]) -> Vec> + Send + Sync + 'a, - ) -> Self { - self.context_builder.hook(fd, f); - self - } - - /// Avoid registering the default hooks in the runtime. - /// - /// It is not necessary to call this to override hooks --- instead, simply - /// register a hook with the same value of `fd` by calling [`Self::with_hook`]. - pub fn without_default_hooks(mut self) -> Self { - self.context_builder.without_default_hooks(); - self - } - - /// Set the shard size for proving. - pub fn shard_size(mut self, value: usize) -> Self { - self.core_opts.shard_size = value; - self - } - - /// Set the shard batch size for proving. - pub fn shard_batch_size(mut self, value: usize) -> Self { - self.core_opts.shard_batch_size = value; - self - } - - /// Set whether we should reconstruct commitments while proving. - pub fn reconstruct_commitments(mut self, value: bool) -> Self { - self.core_opts.reconstruct_commitments = value; - self - } - - /// Set the maximum number of cpu cycles to use for execution. - /// - /// If the cycle limit is exceeded, execution will return - /// [`sp1_core_executor::ExecutionError::ExceededCycleLimit`]. - pub fn cycle_limit(mut self, cycle_limit: u64) -> Self { - self.context_builder.max_cycles(cycle_limit); - self - } - - /// Set the timeout for the proof's generation. - /// - /// This parameter is only used when the prover is run in network mode. - pub fn timeout(mut self, timeout: Duration) -> Self { - self.timeout = Some(timeout); - self - } - - /// Set the skip deferred proof verification flag. - pub fn set_skip_deferred_proof_verification(mut self, value: bool) -> Self { - self.context_builder.set_skip_deferred_proof_verification(value); - self - } -} diff --git a/crates/sdk/src/lib.rs b/crates/sdk/src/lib.rs index 7b7bb96f2b..2991e755a1 100644 --- a/crates/sdk/src/lib.rs +++ b/crates/sdk/src/lib.rs @@ -5,7 +5,6 @@ //! Visit the [Getting Started](https://succinctlabs.github.io/sp1/getting-started.html) section //! in the official SP1 documentation for a quick start guide. -pub mod action; pub mod artifacts; pub mod install; #[cfg(feature = "network")] @@ -29,6 +28,7 @@ pub mod utils { pub use sp1_core_machine::utils::setup_logger; } +use anyhow::Result; use cfg_if::cfg_if; pub use proof::*; pub use provers::SP1VerificationError; @@ -54,154 +54,24 @@ pub struct ProverClient { pub prover: Box>, } +cfg_if! { + if #[cfg(feature = "network-v2")] { + type NetworkProver = NetworkProverV2; + } else if #[cfg(feature = "network")] { + type NetworkProver = NetworkProverV1; + } +} + impl ProverClient { - /// Creates a new [ProverClient]. - /// - /// Setting the `SP1_PROVER` environment variable can change the prover used under the hood. - /// - `local` (default): Uses [CpuProver] or [CudaProver] if the `cuda` feature is enabled. - /// Recommended for proving end-to-end locally. - /// - `mock`: Uses [MockProver]. Recommended for testing and development. - /// - `network`: Uses [NetworkProver]. Recommended for outsourcing proof generation to an RPC. - /// - /// ### Examples - /// - /// ```no_run - /// use sp1_sdk::ProverClient; - /// - /// std::env::set_var("SP1_PROVER", "local"); - /// let client = ProverClient::new(); - /// ``` + #[deprecated(since = "4.0.0", note = "use ProverClient::builder().from_env() instead")] pub fn new() -> Self { - #[allow(unreachable_code)] - match env::var("SP1_PROVER").unwrap_or("local".to_string()).to_lowercase().as_str() { - "mock" => Self { prover: Box::new(MockProver::new()) }, - "local" => { - #[cfg(debug_assertions)] - eprintln!("Warning: Local prover in dev mode is not recommended. Proof generation may be slow."); - Self { - #[cfg(not(feature = "cuda"))] - prover: Box::new(CpuProver::new()), - #[cfg(feature = "cuda")] - prover: Box::new(CudaProver::new(SP1Prover::new())), - } - } - "network" => { - let private_key = env::var("SP1_PRIVATE_KEY") - .expect("SP1_PRIVATE_KEY must be set for remote proving"); - let rpc_url = env::var("PROVER_NETWORK_RPC").ok(); - let skip_simulation = - env::var("SKIP_SIMULATION").map(|val| val == "true").unwrap_or_default(); - - cfg_if! { - if #[cfg(feature = "network-v2")] { - Self { - prover: Box::new(NetworkProverV2::new(&private_key, rpc_url, skip_simulation)), - } - } else if #[cfg(feature = "network")] { - Self { - prover: Box::new(NetworkProverV1::new(&private_key, rpc_url, skip_simulation)), - } - } else { - panic!("network feature is not enabled") - } - } - } - _ => panic!( - "invalid value for SP1_PROVER environment variable: expected 'local', 'mock', or 'network'" - ), - } + Self::builder().from_env() } - /// Returns a [ProverClientBuilder] to easily create a [ProverClient]. pub fn builder() -> ProverClientBuilder { ProverClientBuilder::default() } - /// Creates a new [ProverClient] with the mock prover. - /// - /// ### Examples - /// - /// ```no_run - /// use sp1_sdk::ProverClient; - /// - /// let client = ProverClient::mock(); - /// ``` - pub fn mock() -> Self { - Self { prover: Box::new(MockProver::new()) } - } - - /// Creates a new [ProverClient] with the local prover, using the CPU. - /// - /// ### Examples - /// - /// ```no_run - /// use sp1_sdk::ProverClient; - /// - /// let client = ProverClient::local(); - /// ``` - #[deprecated(note = "Please use `cpu` instead")] - pub fn local() -> Self { - Self { prover: Box::new(CpuProver::new()) } - } - - /// Creates a new [ProverClient] with the local prover, using the CPU. - /// - /// ### Examples - /// - /// ```no_run - /// use sp1_sdk::ProverClient; - /// - /// let client = ProverClient::cpu(); - /// ``` - pub fn cpu() -> Self { - Self { prover: Box::new(CpuProver::new()) } - } - - /// Creates a new [ProverClient] with the local prover, using the GPU. - /// - /// ### Examples - /// - /// ```no_run - /// use sp1_sdk::ProverClient; - /// - /// let client = ProverClient::cuda(); - /// ``` - #[cfg(feature = "cuda")] - pub fn cuda() -> Self { - Self { prover: Box::new(CudaProver::new(SP1Prover::new())) } - } - - /// Creates a new [ProverClient] with the network prover. - /// - /// ### Examples - /// - /// ```no_run - /// use sp1_sdk::ProverClient; - /// - /// let private_key = std::env::var("SP1_PRIVATE_KEY").unwrap(); - /// let rpc_url = std::env::var("PROVER_NETWORK_RPC").ok(); - /// let skip_simulation = - /// std::env::var("SKIP_SIMULATION").map(|val| val == "true").unwrap_or_default(); - /// - /// let client = ProverClient::network(private_key, rpc_url, skip_simulation); - /// ``` - #[cfg(any(feature = "network", feature = "network-v2"))] - pub fn network(private_key: String, rpc_url: Option, skip_simulation: bool) -> Self { - cfg_if! { - if #[cfg(feature = "network-v2")] { - Self { - prover: Box::new(NetworkProverV2::new(&private_key, rpc_url, skip_simulation)), - } - } else if #[cfg(feature = "network")] { - Self { - prover: Box::new(NetworkProverV1::new(&private_key, rpc_url, skip_simulation)), - } - } else { - panic!("network feature is not enabled") - } - } - } - /// Prepare to execute the given program on the given input (without generating a proof). /// The returned [action::Execute] may be configured via its methods before running. /// For example, calling [action::Execute::with_hook] registers hooks for execution. @@ -226,8 +96,8 @@ impl ProverClient { /// // Execute the program on the inputs. /// let (public_values, report) = client.execute(elf, stdin).run().unwrap(); /// ``` - pub fn execute<'a>(&'a self, elf: &'a [u8], stdin: SP1Stdin) -> action::Execute<'a> { - action::Execute::new(self.prover.as_ref(), elf, stdin) + pub fn execute<'a>(&'a self, elf: &'a [u8], stdin: SP1Stdin) -> SimpleExecute<'a> { + SimpleExecute::new(self, elf, stdin) } /// Prepare to prove the execution of the given program with the given input in the default @@ -259,8 +129,8 @@ impl ProverClient { /// // Generate the proof. /// let proof = client.prove(&pk, stdin).run().unwrap(); /// ``` - pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> action::Prove<'a> { - action::Prove::new(self.prover.as_ref(), pk, stdin) + pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> SimpleProve<'a> { + SimpleProve::new(self.prover.as_ref(), pk, stdin) } /// Verifies that the given proof is valid and matches the given verification key produced by @@ -316,52 +186,121 @@ impl ProverClient { impl Default for ProverClient { fn default() -> Self { - Self::new() + Self::builder().from_env() + } +} + +/// Builder to prepare and configure proving execution of a program on an input. +/// May be run with [Self::run]. +pub struct SimpleProve<'a> { + prover: &'a dyn Prover, + kind: SP1ProofKind, + pk: &'a SP1ProvingKey, + stdin: SP1Stdin, +} + +impl<'a> SimpleProve<'a> { + /// Prepare to prove the execution of the given program with the given input. + /// + /// Prefer using [ProverClient::prove](super::ProverClient::prove). + /// See there for more documentation. + pub fn new( + prover: &'a dyn Prover, + pk: &'a SP1ProvingKey, + stdin: SP1Stdin, + ) -> Self { + Self { prover, kind: Default::default(), pk, stdin } + } + + /// Prove the execution of the program on the input, consuming the built action `self`. + pub fn run(self) -> Result { + let Self { prover, kind, pk, stdin } = self; + + // Dump the program and stdin to files for debugging if `SP1_DUMP` is set. + if std::env::var("SP1_DUMP") + .map(|v| v == "1" || v.to_lowercase() == "true") + .unwrap_or(false) + { + let program = pk.elf.clone(); + std::fs::write("program.bin", program).unwrap(); + let stdin = bincode::serialize(&stdin).unwrap(); + std::fs::write("stdin.bin", stdin.clone()).unwrap(); + } + + prover.prove(pk, stdin, kind) + } + + /// Set the proof kind to the core mode. This is the default. + pub fn core(mut self) -> Self { + self.kind = SP1ProofKind::Core; + self + } + + /// Set the proof kind to the compressed mode. + pub fn compressed(mut self) -> Self { + self.kind = SP1ProofKind::Compressed; + self + } + + /// Set the proof mode to the plonk bn254 mode. + pub fn plonk(mut self) -> Self { + self.kind = SP1ProofKind::Plonk; + self + } + + /// Set the proof mode to the groth16 bn254 mode. + pub fn groth16(mut self) -> Self { + self.kind = SP1ProofKind::Groth16; + self } } /// Builder type for [`ProverClient`]. #[derive(Debug, Default)] pub struct ProverClientBuilder { - mode: Option, private_key: Option, rpc_url: Option, skip_simulation: bool, } impl ProverClientBuilder { - /// Sets the mode of the prover client being created. - pub fn mode(mut self, mode: ProverMode) -> Self { - self.mode = Some(mode); - self - } - - /// Sets the private key. + /// Sets the private key. Only used for network prover. pub fn private_key(mut self, private_key: String) -> Self { self.private_key = Some(private_key); self } - /// Sets the RPC URL. + /// Sets the RPC URL. Only used for network prover. pub fn rpc_url(mut self, rpc_url: String) -> Self { self.rpc_url = Some(rpc_url); self } - /// Skips simulation. + /// Skips simulation. Only used for network prover. pub fn skip_simulation(mut self) -> Self { self.skip_simulation = true; self } - /// Builds a [ProverClient], using the provided private key. - pub fn build(self) -> ProverClient { - match self.mode.expect("The prover mode is required") { - ProverMode::Cpu => ProverClient::cpu(), + /// Builds a [ProverClient], filling in unset fields from environment variables. + pub fn from_env(mut self) -> ProverClient { + let mode = env::var("SP1_PROVER") + .unwrap_or_else(|_| "local".to_string()) + .parse::() + .unwrap_or(ProverMode::Cpu); + self.rpc_url = self.rpc_url.or_else(|| env::var("PROVER_NETWORK_RPC").ok()); + self.private_key = self.private_key.or_else(|| env::var("SP1_PRIVATE_KEY").ok()); + self.build(mode) + } + + /// Builds a [ProverClient], using the provided mode. + pub fn build(self, mode: ProverMode) -> ProverClient { + let prover: Box> = match mode { + ProverMode::Cpu => Box::new(CpuProver::new()), ProverMode::Cuda => { cfg_if! { if #[cfg(feature = "cuda")] { - ProverClient::cuda() + Box::new(CudaProver::new(SP1Prover::new())) } else { panic!("cuda feature is not enabled") } @@ -372,66 +311,67 @@ impl ProverClientBuilder { cfg_if! { if #[cfg(feature = "network-v2")] { - ProverClient { - prover: Box::new(NetworkProverV2::new(&private_key, self.rpc_url, self.skip_simulation)), - } + Box::new(NetworkProverV2::new(&private_key, self.rpc_url, self.skip_simulation)) } else if #[cfg(feature = "network")] { - ProverClient { - prover: Box::new(NetworkProverV1::new(&private_key, self.rpc_url, self.skip_simulation)), - } + Box::new(NetworkProverV1::new(&private_key, self.rpc_url, self.skip_simulation)) } else { panic!("network feature is not enabled") } } } - ProverMode::Mock => ProverClient::mock(), - } + ProverMode::Mock => Box::new(MockProver::new()), + }; + ProverClient { prover } } -} -/// Builder type for network prover. -#[cfg(any(feature = "network", feature = "network-v2"))] -#[derive(Debug, Default)] -pub struct NetworkProverBuilder { - private_key: Option, - rpc_url: Option, - skip_simulation: bool, -} + /// Builds a [CpuProver] specifically for local CPU proving. + pub fn cpu(self) -> CpuProver { + CpuProver::new() + } -#[cfg(any(feature = "network", feature = "network-v2"))] -impl NetworkProverBuilder { - /// Sets the private key. - pub fn private_key(mut self, private_key: String) -> Self { - self.private_key = Some(private_key); - self + /// Builds a [CudaProver] specifically for local NVIDIA GPU proving. + #[cfg(feature = "cuda")] + pub fn cuda(self) -> CudaProver { + CudaProver::new(SP1Prover::new()) } - /// Sets the RPC URL. - pub fn rpc_url(mut self, rpc_url: String) -> Self { - self.rpc_url = Some(rpc_url); - self + /// Builds a [NetworkProver] specifically for network proving. + #[cfg(any(feature = "network", feature = "network-v2"))] + pub fn network(self) -> NetworkProver { + NetworkProver::new( + &self.private_key.expect("Private key must be set"), + self.rpc_url, + self.skip_simulation, + ) } - /// Skips simulation. - pub fn skip_simulation(mut self) -> Self { - self.skip_simulation = true; - self + /// Builds a [MockProver] specifically for mock proving. + pub fn mock(self) -> MockProver { + MockProver::new() } +} - /// Creates a new [NetworkProverV1]. - #[cfg(feature = "network")] - pub fn build(self) -> NetworkProverV1 { - let private_key = self.private_key.expect("The private key is required"); +/// Builder to prepare and configure execution of a program on an input. +/// May be run with [Self::run]. +pub struct SimpleExecute<'a> { + prover: &'a ProverClient, + elf: &'a [u8], + stdin: SP1Stdin, +} - NetworkProverV1::new(&private_key, self.rpc_url, self.skip_simulation) +impl<'a> SimpleExecute<'a> { + /// Prepare to execute the given program on the given input (without generating a proof). + /// + /// Prefer using [ProverClient::execute](super::ProverClient::execute). + /// See there for more documentation. + pub fn new(prover: &'a ProverClient, elf: &'a [u8], stdin: SP1Stdin) -> Self { + Self { prover, elf, stdin } } - /// Creates a new [NetworkProverV2]. - #[cfg(feature = "network-v2")] - pub fn build_v2(self) -> NetworkProverV2 { - let private_key = self.private_key.expect("The private key is required"); - - NetworkProverV2::new(&private_key, self.rpc_url, self.skip_simulation) + /// Execute the program on the input, consuming the built action `self`. + pub fn run(self) -> Result<(SP1PublicValues, ExecutionReport)> { + let Self { prover, elf, stdin } = self; + Ok(prover.prover.sp1_prover().execute(elf, &stdin, Default::default())?) } } diff --git a/crates/sdk/src/network/prover.rs b/crates/sdk/src/network/prover.rs index 70969adf5b..13110fe230 100644 --- a/crates/sdk/src/network/prover.rs +++ b/crates/sdk/src/network/prover.rs @@ -1,24 +1,19 @@ use std::time::{Duration, Instant}; +use super::proto::network::GetProofStatusResponse; +use crate::provers::{CpuProver, ProverType}; use crate::{ network::{ client::NetworkClient, proto::network::{ProofMode, ProofStatus}, }, - NetworkProverBuilder, Prover, SP1Context, SP1ProofKind, SP1ProofWithPublicValues, - SP1ProvingKey, SP1VerifyingKey, + Prover, SP1ProofKind, SP1ProofWithPublicValues, SP1ProvingKey, SP1VerifyingKey, }; use anyhow::Result; use sp1_core_machine::io::SP1Stdin; use sp1_prover::{components::DefaultProverComponents, SP1Prover, SP1_CIRCUIT_VERSION}; -use sp1_stark::SP1ProverOpts; - -use super::proto::network::GetProofStatusResponse; - use {crate::block_on, tokio::time::sleep}; -use crate::provers::{CpuProver, ProofOpts, ProverType}; - /// Number of consecutive errors to tolerate before returning an error while polling proof status. const MAX_CONSECUTIVE_ERRORS: usize = 10; @@ -39,11 +34,6 @@ impl NetworkProver { Self { client: NetworkClient::new(private_key, rpc_url), local_prover, skip_simulation } } - /// Creates a new network prover builder. See [`NetworkProverBuilder`] for more details. - pub fn builder() -> NetworkProverBuilder { - NetworkProverBuilder::default() - } - /// Requests a proof from the prover network, returning the proof ID. pub async fn request_proof( &self, @@ -171,31 +161,9 @@ impl Prover for NetworkProver { &'a self, pk: &SP1ProvingKey, stdin: SP1Stdin, - opts: ProofOpts, - context: SP1Context<'a>, kind: SP1ProofKind, ) -> Result { - warn_if_not_default(&opts.sp1_prover_opts, &context); - block_on(self.prove(&pk.elf, stdin, kind.into(), opts.timeout)) - } -} - -/// Warns if `opts` or `context` are not default values, since they are currently unsupported. -fn warn_if_not_default(opts: &SP1ProverOpts, context: &SP1Context) { - if opts != &SP1ProverOpts::default() { - tracing::warn!("non-default opts will be ignored: {:?}", opts.core_opts); - tracing::warn!("custom SP1ProverOpts are currently unsupported by the network prover"); - } - // Exhaustive match is done to ensure we update the warnings if the types change. - let SP1Context { hook_registry, subproof_verifier, .. } = context; - if hook_registry.is_some() { - tracing::warn!("non-default context.hook_registry will be ignored: {:?}", hook_registry); - tracing::warn!("custom runtime hooks are currently unsupported by the network prover"); - tracing::warn!("proving may fail due to missing hooks"); - } - if subproof_verifier.is_some() { - tracing::warn!("non-default context.subproof_verifier will be ignored"); - tracing::warn!("custom subproof verifiers are currently unsupported by the network prover"); + block_on(self.prove(&pk.elf, stdin, kind.into(), None)) } } diff --git a/crates/sdk/src/provers/cpu.rs b/crates/sdk/src/provers/cpu.rs index 234e663909..082da09bdb 100644 --- a/crates/sdk/src/provers/cpu.rs +++ b/crates/sdk/src/provers/cpu.rs @@ -27,22 +27,8 @@ impl CpuProver { pub fn from_prover(prover: SP1Prover) -> Self { Self { prover } } -} - -impl Prover for CpuProver { - fn id(&self) -> ProverType { - ProverType::Cpu - } - - fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey) { - self.prover.setup(elf) - } - fn sp1_prover(&self) -> &SP1Prover { - &self.prover - } - - fn prove<'a>( + pub(crate) fn prove_impl<'a>( &'a self, pk: &SP1ProvingKey, stdin: SP1Stdin, @@ -124,6 +110,29 @@ impl Prover for CpuProver { } } +impl Prover for CpuProver { + fn id(&self) -> ProverType { + ProverType::Cpu + } + + fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey) { + self.prover.setup(elf) + } + + fn sp1_prover(&self) -> &SP1Prover { + &self.prover + } + + fn prove<'a>( + &'a self, + pk: &SP1ProvingKey, + stdin: SP1Stdin, + kind: SP1ProofKind, + ) -> Result { + self.prove_impl(pk, stdin, Default::default(), SP1Context::default(), kind) + } +} + impl Default for CpuProver { fn default() -> Self { Self::new() diff --git a/crates/sdk/src/provers/mock.rs b/crates/sdk/src/provers/mock.rs index ca317972ac..4fe00bd27d 100644 --- a/crates/sdk/src/provers/mock.rs +++ b/crates/sdk/src/provers/mock.rs @@ -1,24 +1,22 @@ #![allow(unused_variables)] -use hashbrown::HashMap; -use sp1_core_executor::{SP1Context, SP1ReduceProof}; -use sp1_core_machine::io::SP1Stdin; -use sp1_stark::{ShardCommitment, ShardOpenedValues, ShardProof, StarkVerifyingKey}; - +use super::ProverType; use crate::{ Prover, SP1Proof, SP1ProofKind, SP1ProofWithPublicValues, SP1ProvingKey, SP1VerificationError, SP1VerifyingKey, }; use anyhow::Result; +use hashbrown::HashMap; use p3_baby_bear::BabyBear; use p3_field::{AbstractField, PrimeField}; use p3_fri::{FriProof, TwoAdicFriPcsProof}; +use sp1_core_executor::{SP1Context, SP1ReduceProof}; +use sp1_core_machine::io::SP1Stdin; use sp1_prover::{ components::DefaultProverComponents, verify::{verify_groth16_bn254_public_inputs, verify_plonk_bn254_public_inputs}, Groth16Bn254Proof, HashableKey, PlonkBn254Proof, SP1Prover, }; - -use super::{ProofOpts, ProverType}; +use sp1_stark::{ShardCommitment, ShardOpenedValues, ShardProof, StarkVerifyingKey}; /// An implementation of [crate::ProverClient] that can generate mock proofs. pub struct MockProver { @@ -50,10 +48,9 @@ impl Prover for MockProver { &'a self, pk: &SP1ProvingKey, stdin: SP1Stdin, - opts: ProofOpts, - context: SP1Context<'a>, kind: SP1ProofKind, ) -> Result { + let context = SP1Context::default(); match kind { SP1ProofKind::Core => { let (public_values, _) = self.prover.execute(&pk.elf, &stdin, context)?; diff --git a/crates/sdk/src/provers/mod.rs b/crates/sdk/src/provers/mod.rs index 1db5309fac..a4abbe145d 100644 --- a/crates/sdk/src/provers/mod.rs +++ b/crates/sdk/src/provers/mod.rs @@ -14,7 +14,6 @@ use std::borrow::Borrow; use std::time::Duration; use anyhow::Result; -use sp1_core_executor::SP1Context; use sp1_core_machine::{io::SP1Stdin, SP1_CIRCUIT_VERSION}; use sp1_prover::{ components::SP1ProverComponents, CoreSC, InnerSC, SP1CoreProofData, SP1Prover, SP1ProvingKey, @@ -78,8 +77,6 @@ pub trait Prover: Send + Sync { &'a self, pk: &SP1ProvingKey, stdin: SP1Stdin, - opts: ProofOpts, - context: SP1Context<'a>, kind: SP1ProofKind, ) -> Result; From f51bf5e3655f8accf8978ab8d04916d0dbdd55f5 Mon Sep 17 00:00:00 2001 From: Chris Tian Date: Tue, 17 Dec 2024 14:01:55 -0800 Subject: [PATCH 12/36] network builders --- crates/sdk/src/lib.rs | 21 +--- crates/sdk/src/network-v2/prover.rs | 121 ++++++++++++++-------- crates/sdk/src/network/prover.rs | 84 +++++++++++++-- crates/sdk/src/provers/cpu.rs | 154 ++++++++++++++++++++++++++-- crates/sdk/src/util.rs | 10 ++ 5 files changed, 312 insertions(+), 78 deletions(-) create mode 100644 crates/sdk/src/util.rs diff --git a/crates/sdk/src/lib.rs b/crates/sdk/src/lib.rs index 2991e755a1..4147c4f164 100644 --- a/crates/sdk/src/lib.rs +++ b/crates/sdk/src/lib.rs @@ -12,8 +12,7 @@ pub mod network; #[cfg(feature = "network-v2")] #[path = "network-v2/mod.rs"] pub mod network_v2; - -use std::env; +pub(crate) mod util; #[cfg(feature = "network")] pub use crate::network::prover::NetworkProver as NetworkProverV1; @@ -33,6 +32,7 @@ use cfg_if::cfg_if; pub use proof::*; pub use provers::SP1VerificationError; use sp1_prover::components::DefaultProverComponents; +use std::env; #[cfg(any(feature = "network", feature = "network-v2"))] use {std::future::Future, tokio::task::block_in_place}; @@ -260,7 +260,6 @@ impl<'a> SimpleProve<'a> { pub struct ProverClientBuilder { private_key: Option, rpc_url: Option, - skip_simulation: bool, } impl ProverClientBuilder { @@ -276,12 +275,6 @@ impl ProverClientBuilder { self } - /// Skips simulation. Only used for network prover. - pub fn skip_simulation(mut self) -> Self { - self.skip_simulation = true; - self - } - /// Builds a [ProverClient], filling in unset fields from environment variables. pub fn from_env(mut self) -> ProverClient { let mode = env::var("SP1_PROVER") @@ -311,9 +304,9 @@ impl ProverClientBuilder { cfg_if! { if #[cfg(feature = "network-v2")] { - Box::new(NetworkProverV2::new(&private_key, self.rpc_url, self.skip_simulation)) + Box::new(NetworkProverV2::new(&private_key, self.rpc_url)) } else if #[cfg(feature = "network")] { - Box::new(NetworkProverV1::new(&private_key, self.rpc_url, self.skip_simulation)) + Box::new(NetworkProverV1::new(&private_key, self.rpc_url)) } else { panic!("network feature is not enabled") } @@ -338,11 +331,7 @@ impl ProverClientBuilder { /// Builds a [NetworkProver] specifically for network proving. #[cfg(any(feature = "network", feature = "network-v2"))] pub fn network(self) -> NetworkProver { - NetworkProver::new( - &self.private_key.expect("Private key must be set"), - self.rpc_url, - self.skip_simulation, - ) + NetworkProver::new(&self.private_key.expect("Private key must be set"), self.rpc_url) } /// Builds a [MockProver] specifically for mock proving. diff --git a/crates/sdk/src/network-v2/prover.rs b/crates/sdk/src/network-v2/prover.rs index 91056adde1..d4b1913662 100644 --- a/crates/sdk/src/network-v2/prover.rs +++ b/crates/sdk/src/network-v2/prover.rs @@ -1,26 +1,23 @@ use std::time::{Duration, Instant}; use crate::network_v2::client::DEFAULT_PROVER_NETWORK_RPC; +use crate::provers::{CpuProver, ProverType}; +use crate::util::dump_proof_input; use crate::{ network_v2::client::NetworkClient, network_v2::proto::network::{ ExecutionStatus, FulfillmentStatus, FulfillmentStrategy, ProofMode, }, - NetworkProverBuilder, Prover, SP1Context, SP1ProofKind, SP1ProofWithPublicValues, - SP1ProvingKey, SP1VerifyingKey, + Prover, SP1ProofKind, SP1ProofWithPublicValues, SP1ProvingKey, SP1VerifyingKey, }; use anyhow::Result; use backoff::{future::retry, Error as BackoffError, ExponentialBackoff}; use serde::de::DeserializeOwned; use sp1_core_machine::io::SP1Stdin; use sp1_prover::{components::DefaultProverComponents, SP1Prover, SP1_CIRCUIT_VERSION}; -use sp1_stark::SP1ProverOpts; use tonic::Code; - use {crate::block_on, tokio::time::sleep}; -use crate::provers::{CpuProver, ProofOpts, ProverType}; - /// The timeout for a proof request to be fulfilled. const TIMEOUT_SECS: u64 = 14400; @@ -31,18 +28,17 @@ const DEFAULT_CYCLE_LIMIT: u64 = 100_000_000; pub struct NetworkProver { client: NetworkClient, local_prover: CpuProver, - skip_simulation: bool, strategy: FulfillmentStrategy, } impl NetworkProver { /// Creates a new [NetworkProver] with the given private key. - pub fn new(private_key: &str, rpc_url: Option, skip_simulation: bool) -> Self { + pub fn new(private_key: &str, rpc_url: Option) -> Self { let version = SP1_CIRCUIT_VERSION; log::info!("Client circuit version: {}", version); let local_prover = CpuProver::new(); let client = NetworkClient::new(private_key, rpc_url); - Self { client, local_prover, skip_simulation, strategy: FulfillmentStrategy::Hosted } + Self { client, local_prover, strategy: FulfillmentStrategy::Hosted } } /// Sets the fulfillment strategy for the client. By default, the strategy is set to `Hosted`. @@ -50,19 +46,14 @@ impl NetworkProver { self.strategy = strategy; } - /// Creates a new network prover builder. See [`NetworkProverBuilder`] for more details. - pub fn builder() -> NetworkProverBuilder { - NetworkProverBuilder::default() - } - /// Registers a program if it is not already registered. pub async fn register_program(&self, vk: &SP1VerifyingKey, elf: &[u8]) -> Result> { self.client.register_program(vk, elf).await } /// Get the cycle limit, either by simulating or using the default cycle limit. - fn get_cycle_limit(&self, elf: &[u8], stdin: &SP1Stdin) -> Result { - if !self.skip_simulation { + fn get_cycle_limit(&self, elf: &[u8], stdin: &SP1Stdin, skip_simulation: bool) -> Result { + if !skip_simulation { let (_, report) = self.local_prover.sp1_prover().execute(elf, stdin, Default::default())?; let cycles = report.total_instruction_count(); @@ -73,7 +64,7 @@ impl NetworkProver { } /// Requests a proof from the prover network, returning the request ID. - pub async fn request_proof( + pub(crate) async fn request_proof( &self, vk_hash: &[u8], stdin: &SP1Stdin, @@ -121,7 +112,7 @@ impl NetworkProver { /// Waits for a proof to be generated and returns the proof. If a timeout is supplied, the /// function will return an error if the proof is not generated within the timeout. - pub async fn wait_proof( + pub(crate) async fn wait_proof( &self, request_id: &[u8], timeout: Option, @@ -180,15 +171,16 @@ impl NetworkProver { } /// Requests a proof from the prover network and waits for it to be generated. - pub async fn prove( + pub(crate) async fn prove( &self, pk: &SP1ProvingKey, stdin: SP1Stdin, mode: ProofMode, timeout: Option, + skip_simulation: bool, ) -> Result { let vk_hash = self.register_program(&pk.vk, &pk.elf).await?; - let cycle_limit = self.get_cycle_limit(&pk.elf, &stdin)?; + let cycle_limit = self.get_cycle_limit(&pk.elf, &stdin, skip_simulation)?; let request_id = self.request_proof(&vk_hash, &stdin, mode, cycle_limit, timeout).await?; self.wait_proof(&request_id, timeout).await } @@ -211,32 +203,9 @@ impl Prover for NetworkProver { &'a self, pk: &SP1ProvingKey, stdin: SP1Stdin, - opts: ProofOpts, - context: SP1Context<'a>, kind: SP1ProofKind, ) -> Result { - warn_if_not_default(&opts.sp1_prover_opts, &context); - block_on(self.prove(pk, stdin, kind.into(), opts.timeout)) - } -} - -/// Warns if `opts` or `context` are not default values, since they are currently unsupported. -fn warn_if_not_default(opts: &SP1ProverOpts, context: &SP1Context) { - let _guard = tracing::warn_span!("network_prover").entered(); - if opts != &SP1ProverOpts::default() { - tracing::warn!("non-default opts will be ignored: {:?}", opts.core_opts); - tracing::warn!("custom SP1ProverOpts are currently unsupported by the network prover"); - } - // Exhaustive match is done to ensure we update the warnings if the types change. - let SP1Context { hook_registry, subproof_verifier, .. } = context; - if hook_registry.is_some() { - tracing::warn!("non-default context.hook_registry will be ignored: {:?}", hook_registry); - tracing::warn!("custom runtime hooks are currently unsupported by the network prover"); - tracing::warn!("proving may fail due to missing hooks"); - } - if subproof_verifier.is_some() { - tracing::warn!("non-default context.subproof_verifier will be ignored"); - tracing::warn!("custom subproof verifiers are currently unsupported by the network prover"); + block_on(self.prove(pk, stdin, kind.into(), None, false)) } } @@ -328,3 +297,67 @@ where }) .await } + +/// Builder to prepare and configure proving execution of a program on an input. +/// May be run with [Self::run]. +pub struct NetworkProve<'a> { + prover: &'a NetworkProver, + kind: SP1ProofKind, + pk: &'a SP1ProvingKey, + stdin: SP1Stdin, + timeout: Option, + skip_simulation: bool, +} + +impl<'a> NetworkProve<'a> { + /// Prove the execution of the program on the input, consuming the built action `self`. + pub async fn run(self) -> Result { + let Self { prover, kind, pk, stdin, timeout, skip_simulation } = self; + + dump_proof_input(&pk.elf, &stdin); + + prover.prove(&pk, stdin, kind.into(), timeout, skip_simulation).await + } + + /// Set the proof kind to the core mode. This is the default. + pub fn core(mut self) -> Self { + self.kind = SP1ProofKind::Core; + self + } + + /// Set the proof kind to the compressed mode. + pub fn compressed(mut self) -> Self { + self.kind = SP1ProofKind::Compressed; + self + } + + /// Set the proof mode to the plonk bn254 mode. + pub fn plonk(mut self) -> Self { + self.kind = SP1ProofKind::Plonk; + self + } + + /// Set the proof mode to the groth16 bn254 mode. + pub fn groth16(mut self) -> Self { + self.kind = SP1ProofKind::Groth16; + self + } + + /// Set the proof mode to the given mode. + pub fn mode(mut self, mode: SP1ProofKind) -> Self { + self.kind = mode; + self + } + + /// Set the timeout for the proof's generation. + pub fn timeout(mut self, timeout: Duration) -> Self { + self.timeout = Some(timeout); + self + } + + /// Enable skipping the simulation step. + pub fn skip_simulation(mut self, skip_simulation: bool) -> Self { + self.skip_simulation = skip_simulation; + self + } +} diff --git a/crates/sdk/src/network/prover.rs b/crates/sdk/src/network/prover.rs index 13110fe230..a788c6754b 100644 --- a/crates/sdk/src/network/prover.rs +++ b/crates/sdk/src/network/prover.rs @@ -2,6 +2,7 @@ use std::time::{Duration, Instant}; use super::proto::network::GetProofStatusResponse; use crate::provers::{CpuProver, ProverType}; +use crate::util::dump_proof_input; use crate::{ network::{ client::NetworkClient, @@ -21,29 +22,29 @@ const MAX_CONSECUTIVE_ERRORS: usize = 10; pub struct NetworkProver { client: NetworkClient, local_prover: CpuProver, - skip_simulation: bool, } impl NetworkProver { /// Creates a new [NetworkProver] with the given private key. - pub fn new(private_key: &str, rpc_url: Option, skip_simulation: bool) -> Self { + pub fn new(private_key: &str, rpc_url: Option) -> Self { let version = SP1_CIRCUIT_VERSION; log::info!("Client circuit version: {}", version); let local_prover = CpuProver::new(); - Self { client: NetworkClient::new(private_key, rpc_url), local_prover, skip_simulation } + Self { client: NetworkClient::new(private_key, rpc_url), local_prover } } /// Requests a proof from the prover network, returning the proof ID. - pub async fn request_proof( + pub(crate) async fn request_proof( &self, elf: &[u8], stdin: SP1Stdin, mode: ProofMode, + skip_simulation: bool, ) -> Result { let client = &self.client; - if !self.skip_simulation { + if !skip_simulation { let (_, report) = self.local_prover.sp1_prover().execute(elf, &stdin, Default::default())?; log::info!("Simulation complete, cycles: {}", report.total_instruction_count()); @@ -62,7 +63,7 @@ impl NetworkProver { /// Waits for a proof to be generated and returns the proof. If a timeout is supplied, the /// function will return an error if the proof is not generated within the timeout. - pub async fn wait_proof( + pub(crate) async fn wait_proof( &self, proof_id: &str, timeout: Option, @@ -132,14 +133,15 @@ impl NetworkProver { } /// Requests a proof from the prover network and waits for it to be generated. - pub async fn prove( + pub(crate) async fn prove( &self, elf: &[u8], stdin: SP1Stdin, mode: ProofMode, timeout: Option, + skip_simulation: bool, ) -> Result { - let proof_id = self.request_proof(elf, stdin, mode).await?; + let proof_id = self.request_proof(elf, stdin, mode, skip_simulation).await?; self.wait_proof(&proof_id, timeout).await } } @@ -163,7 +165,7 @@ impl Prover for NetworkProver { stdin: SP1Stdin, kind: SP1ProofKind, ) -> Result { - block_on(self.prove(&pk.elf, stdin, kind.into(), None)) + block_on(self.prove(&pk.elf, stdin, kind.into(), None, false)) } } @@ -177,3 +179,67 @@ impl From for ProofMode { } } } + +/// Builder to prepare and configure proving execution of a program on an input. +/// May be run with [Self::run]. +pub struct NetworkProve<'a> { + prover: &'a NetworkProver, + kind: SP1ProofKind, + pk: &'a SP1ProvingKey, + stdin: SP1Stdin, + timeout: Option, + skip_simulation: bool, +} + +impl<'a> NetworkProve<'a> { + /// Prove the execution of the program on the input, consuming the built action `self`. + pub async fn run(self) -> Result { + let Self { prover, kind, pk, stdin, timeout, skip_simulation } = self; + + dump_proof_input(&pk.elf, &stdin); + + prover.prove(&pk.elf, stdin, kind.into(), timeout, skip_simulation).await + } + + /// Set the proof kind to the core mode. This is the default. + pub fn core(mut self) -> Self { + self.kind = SP1ProofKind::Core; + self + } + + /// Set the proof kind to the compressed mode. + pub fn compressed(mut self) -> Self { + self.kind = SP1ProofKind::Compressed; + self + } + + /// Set the proof mode to the plonk bn254 mode. + pub fn plonk(mut self) -> Self { + self.kind = SP1ProofKind::Plonk; + self + } + + /// Set the proof mode to the groth16 bn254 mode. + pub fn groth16(mut self) -> Self { + self.kind = SP1ProofKind::Groth16; + self + } + + /// Set the proof mode to the given mode. + pub fn mode(mut self, mode: SP1ProofKind) -> Self { + self.kind = mode; + self + } + + /// Set the timeout for the proof's generation. + pub fn timeout(mut self, timeout: Duration) -> Self { + self.timeout = Some(timeout); + self + } + + /// Enable skipping the simulation step. + pub fn skip_simulation(mut self, skip_simulation: bool) -> Self { + self.skip_simulation = skip_simulation; + self + } +} diff --git a/crates/sdk/src/provers/cpu.rs b/crates/sdk/src/provers/cpu.rs index 082da09bdb..25d5de6c1f 100644 --- a/crates/sdk/src/provers/cpu.rs +++ b/crates/sdk/src/provers/cpu.rs @@ -1,12 +1,12 @@ use anyhow::Result; -use sp1_core_executor::SP1Context; +use sp1_core_executor::{HookEnv, SP1Context, SP1ContextBuilder}; use sp1_core_machine::io::SP1Stdin; use sp1_prover::{components::DefaultProverComponents, SP1Prover}; +use sp1_stark::{SP1CoreOpts, SP1ProverOpts}; use crate::install::try_install_circuit_artifacts; use crate::{ - provers::ProofOpts, Prover, SP1Proof, SP1ProofKind, SP1ProofWithPublicValues, SP1ProvingKey, - SP1VerifyingKey, + Prover, SP1Proof, SP1ProofKind, SP1ProofWithPublicValues, SP1ProvingKey, SP1VerifyingKey, }; use super::ProverType; @@ -32,13 +32,13 @@ impl CpuProver { &'a self, pk: &SP1ProvingKey, stdin: SP1Stdin, - opts: ProofOpts, + opts: SP1ProverOpts, context: SP1Context<'a>, kind: SP1ProofKind, ) -> Result { // Generate the core proof. let proof: sp1_prover::SP1ProofWithMetadata = - self.prover.prove_core(pk, &stdin, opts.sp1_prover_opts, context)?; + self.prover.prove_core(pk, &stdin, opts, context)?; if kind == SP1ProofKind::Core { return Ok(SP1ProofWithPublicValues { proof: SP1Proof::Core(proof.proof.0), @@ -53,8 +53,7 @@ impl CpuProver { let public_values = proof.public_values.clone(); // Generate the compressed proof. - let reduce_proof = - self.prover.compress(&pk.vk, proof, deferred_proofs, opts.sp1_prover_opts)?; + let reduce_proof = self.prover.compress(&pk.vk, proof, deferred_proofs, opts)?; if kind == SP1ProofKind::Compressed { return Ok(SP1ProofWithPublicValues { proof: SP1Proof::Compressed(Box::new(reduce_proof)), @@ -65,11 +64,11 @@ impl CpuProver { } // Generate the shrink proof. - let compress_proof = self.prover.shrink(reduce_proof, opts.sp1_prover_opts)?; + let compress_proof = self.prover.shrink(reduce_proof, opts)?; // Genenerate the wrap proof. - let outer_proof = self.prover.wrap_bn254(compress_proof, opts.sp1_prover_opts)?; + let outer_proof = self.prover.wrap_bn254(compress_proof, opts)?; if kind == SP1ProofKind::Plonk { let plonk_bn254_artifacts = if sp1_prover::build::sp1_dev_mode() { sp1_prover::build::try_build_plonk_bn254_artifacts_dev( @@ -108,6 +107,23 @@ impl CpuProver { unreachable!() } + + pub fn prove<'a>( + &'a self, + pk: &'a SP1ProvingKey, + stdin: SP1Stdin, + kind: SP1ProofKind, + ) -> CpuProve<'a> { + CpuProve { + prover: self, + kind, + pk, + stdin, + context_builder: Default::default(), + core_opts: SP1CoreOpts::default(), + recursion_opts: SP1CoreOpts::recursion(), + } + } } impl Prover for CpuProver { @@ -138,3 +154,123 @@ impl Default for CpuProver { Self::new() } } + +/// Builder to prepare and configure proving execution of a program on an input. +/// May be run with [Self::run]. +pub struct CpuProve<'a> { + prover: &'a CpuProver, + kind: SP1ProofKind, + context_builder: SP1ContextBuilder<'a>, + pk: &'a SP1ProvingKey, + stdin: SP1Stdin, + core_opts: SP1CoreOpts, + recursion_opts: SP1CoreOpts, +} + +impl<'a> CpuProve<'a> { + /// Prove the execution of the program on the input, consuming the built action `self`. + pub fn run(self) -> Result { + let Self { prover, kind, pk, stdin, mut context_builder, core_opts, recursion_opts } = self; + let opts = SP1ProverOpts { core_opts, recursion_opts }; + let context = context_builder.build(); + + // Dump the program and stdin to files for debugging if `SP1_DUMP` is set. + if std::env::var("SP1_DUMP") + .map(|v| v == "1" || v.to_lowercase() == "true") + .unwrap_or(false) + { + let program = pk.elf.clone(); + std::fs::write("program.bin", program).unwrap(); + let stdin = bincode::serialize(&stdin).unwrap(); + std::fs::write("stdin.bin", stdin.clone()).unwrap(); + } + + prover.prove_impl(pk, stdin, opts, context, kind) + } + + /// Set the proof kind to the core mode. This is the default. + pub fn core(mut self) -> Self { + self.kind = SP1ProofKind::Core; + self + } + + /// Set the proof kind to the compressed mode. + pub fn compressed(mut self) -> Self { + self.kind = SP1ProofKind::Compressed; + self + } + + /// Set the proof mode to the plonk bn254 mode. + pub fn plonk(mut self) -> Self { + self.kind = SP1ProofKind::Plonk; + self + } + + /// Set the proof mode to the groth16 bn254 mode. + pub fn groth16(mut self) -> Self { + self.kind = SP1ProofKind::Groth16; + self + } + + /// Set the proof mode to the given mode. + pub fn mode(mut self, mode: SP1ProofKind) -> Self { + self.kind = mode; + self + } + + /// Add a runtime [Hook](super::Hook) into the context. + /// + /// Hooks may be invoked from within SP1 by writing to the specified file descriptor `fd` + /// with [`sp1_zkvm::io::write`], returning a list of arbitrary data that may be read + /// with successive calls to [`sp1_zkvm::io::read`]. + pub fn with_hook( + mut self, + fd: u32, + f: impl FnMut(HookEnv, &[u8]) -> Vec> + Send + Sync + 'a, + ) -> Self { + self.context_builder.hook(fd, f); + self + } + + /// Avoid registering the default hooks in the runtime. + /// + /// It is not necessary to call this to override hooks --- instead, simply + /// register a hook with the same value of `fd` by calling [`Self::with_hook`]. + pub fn without_default_hooks(mut self) -> Self { + self.context_builder.without_default_hooks(); + self + } + + /// Set the shard size for proving. + pub fn shard_size(mut self, value: usize) -> Self { + self.core_opts.shard_size = value; + self + } + + /// Set the shard batch size for proving. + pub fn shard_batch_size(mut self, value: usize) -> Self { + self.core_opts.shard_batch_size = value; + self + } + + /// Set whether we should reconstruct commitments while proving. + pub fn reconstruct_commitments(mut self, value: bool) -> Self { + self.core_opts.reconstruct_commitments = value; + self + } + + /// Set the maximum number of cpu cycles to use for execution. + /// + /// If the cycle limit is exceeded, execution will return + /// [`sp1_core_executor::ExecutionError::ExceededCycleLimit`]. + pub fn cycle_limit(mut self, cycle_limit: u64) -> Self { + self.context_builder.max_cycles(cycle_limit); + self + } + + /// Set the skip deferred proof verification flag. + pub fn set_skip_deferred_proof_verification(mut self, value: bool) -> Self { + self.context_builder.set_skip_deferred_proof_verification(value); + self + } +} diff --git a/crates/sdk/src/util.rs b/crates/sdk/src/util.rs new file mode 100644 index 0000000000..c3f3c454e2 --- /dev/null +++ b/crates/sdk/src/util.rs @@ -0,0 +1,10 @@ +use sp1_core_machine::io::SP1Stdin; + +/// Dump the program and stdin to files for debugging if `SP1_DUMP` is set. +pub(crate) fn dump_proof_input(elf: &[u8], stdin: &SP1Stdin) { + if std::env::var("SP1_DUMP").map(|v| v == "1" || v.to_lowercase() == "true").unwrap_or(false) { + std::fs::write("program.bin", elf).unwrap(); + let stdin = bincode::serialize(&stdin).unwrap(); + std::fs::write("stdin.bin", stdin.clone()).unwrap(); + } +} From 3f7acbc152f2967715339cb684b8ca9925874375 Mon Sep 17 00:00:00 2001 From: Chris Tian Date: Tue, 17 Dec 2024 14:23:06 -0800 Subject: [PATCH 13/36] SimpleProver --- crates/sdk/src/lib.rs | 222 ++----------------------------- crates/sdk/src/provers/mod.rs | 2 + crates/sdk/src/provers/simple.rs | 211 +++++++++++++++++++++++++++++ 3 files changed, 223 insertions(+), 212 deletions(-) create mode 100644 crates/sdk/src/provers/simple.rs diff --git a/crates/sdk/src/lib.rs b/crates/sdk/src/lib.rs index 4147c4f164..eebf442b41 100644 --- a/crates/sdk/src/lib.rs +++ b/crates/sdk/src/lib.rs @@ -27,10 +27,10 @@ pub mod utils { pub use sp1_core_machine::utils::setup_logger; } -use anyhow::Result; use cfg_if::cfg_if; pub use proof::*; pub use provers::SP1VerificationError; +use provers::SimpleProver; use sp1_prover::components::DefaultProverComponents; use std::env; @@ -49,10 +49,7 @@ pub use sp1_prover::{ }; /// A client for interacting with SP1. -pub struct ProverClient { - /// The underlying prover implementation. - pub prover: Box>, -} +pub struct ProverClient; cfg_if! { if #[cfg(feature = "network-v2")] { @@ -63,196 +60,21 @@ cfg_if! { } impl ProverClient { - #[deprecated(since = "4.0.0", note = "use ProverClient::builder().from_env() instead")] - pub fn new() -> Self { - Self::builder().from_env() + #[deprecated(since = "4.0.0", note = "use ProverClient::builder().env() instead")] + pub fn new() -> SimpleProver { + Self::builder().env() } pub fn builder() -> ProverClientBuilder { ProverClientBuilder::default() } - /// Prepare to execute the given program on the given input (without generating a proof). - /// The returned [action::Execute] may be configured via its methods before running. - /// For example, calling [action::Execute::with_hook] registers hooks for execution. - /// - /// To execute, call [action::Execute::run], which returns - /// the public values and execution report of the program after it has been executed. - /// - /// ### Examples - /// ```no_run - /// use sp1_sdk::{ProverClient, SP1Context, SP1Stdin}; - /// - /// // Load the program. - /// let elf = test_artifacts::FIBONACCI_ELF; - /// - /// // Initialize the prover client. - /// let client = ProverClient::new(); - /// - /// // Setup the inputs. - /// let mut stdin = SP1Stdin::new(); - /// stdin.write(&10usize); - /// - /// // Execute the program on the inputs. - /// let (public_values, report) = client.execute(elf, stdin).run().unwrap(); - /// ``` - pub fn execute<'a>(&'a self, elf: &'a [u8], stdin: SP1Stdin) -> SimpleExecute<'a> { - SimpleExecute::new(self, elf, stdin) - } - - /// Prepare to prove the execution of the given program with the given input in the default - /// mode. The returned [action::Prove] may be configured via its methods before running. - /// For example, calling [action::Prove::compressed] sets the mode to compressed mode. - /// - /// To prove, call [action::Prove::run], which returns a proof of the program's execution. - /// By default the proof generated will not be compressed to constant size. - /// To create a more succinct proof, use the [action::Prove::compressed], - /// [action::Prove::plonk], or [action::Prove::groth16] methods. - /// - /// ### Examples - /// ```no_run - /// use sp1_sdk::{ProverClient, SP1Context, SP1Stdin}; - /// - /// // Load the program. - /// let elf = test_artifacts::FIBONACCI_ELF; - /// - /// // Initialize the prover client. - /// let client = ProverClient::new(); - /// - /// // Setup the program. - /// let (pk, vk) = client.setup(elf); - /// - /// // Setup the inputs. - /// let mut stdin = SP1Stdin::new(); - /// stdin.write(&10usize); - /// - /// // Generate the proof. - /// let proof = client.prove(&pk, stdin).run().unwrap(); - /// ``` - pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> SimpleProve<'a> { - SimpleProve::new(self.prover.as_ref(), pk, stdin) - } - - /// Verifies that the given proof is valid and matches the given verification key produced by - /// [Self::setup]. - /// - /// ### Examples - /// ```no_run - /// use sp1_sdk::{ProverClient, SP1Stdin}; - /// - /// let elf = test_artifacts::FIBONACCI_ELF; - /// let client = ProverClient::new(); - /// let (pk, vk) = client.setup(elf); - /// let mut stdin = SP1Stdin::new(); - /// stdin.write(&10usize); - /// let proof = client.prove(&pk, stdin).run().unwrap(); - /// client.verify(&proof, &vk).unwrap(); - /// ``` - pub fn verify( - &self, - proof: &SP1ProofWithPublicValues, - vk: &SP1VerifyingKey, - ) -> Result<(), SP1VerificationError> { - self.prover.verify(proof, vk) - } - /// Gets the current version of the SP1 zkVM. /// /// Note: This is not the same as the version of the SP1 SDK. pub fn version(&self) -> String { SP1_CIRCUIT_VERSION.to_string() } - - /// Setup a program to be proven and verified by the SP1 RISC-V zkVM by computing the proving - /// and verifying keys. - /// - /// The proving key and verifying key essentially embed the program, as well as other auxiliary - /// data (such as lookup tables) that are used to prove the program's correctness. - /// - /// ### Examples - /// ```no_run - /// use sp1_sdk::{ProverClient, SP1Stdin}; - /// - /// let elf = test_artifacts::FIBONACCI_ELF; - /// let client = ProverClient::new(); - /// let mut stdin = SP1Stdin::new(); - /// stdin.write(&10usize); - /// let (pk, vk) = client.setup(elf); - /// ``` - pub fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey) { - self.prover.setup(elf) - } -} - -impl Default for ProverClient { - fn default() -> Self { - Self::builder().from_env() - } -} - -/// Builder to prepare and configure proving execution of a program on an input. -/// May be run with [Self::run]. -pub struct SimpleProve<'a> { - prover: &'a dyn Prover, - kind: SP1ProofKind, - pk: &'a SP1ProvingKey, - stdin: SP1Stdin, -} - -impl<'a> SimpleProve<'a> { - /// Prepare to prove the execution of the given program with the given input. - /// - /// Prefer using [ProverClient::prove](super::ProverClient::prove). - /// See there for more documentation. - pub fn new( - prover: &'a dyn Prover, - pk: &'a SP1ProvingKey, - stdin: SP1Stdin, - ) -> Self { - Self { prover, kind: Default::default(), pk, stdin } - } - - /// Prove the execution of the program on the input, consuming the built action `self`. - pub fn run(self) -> Result { - let Self { prover, kind, pk, stdin } = self; - - // Dump the program and stdin to files for debugging if `SP1_DUMP` is set. - if std::env::var("SP1_DUMP") - .map(|v| v == "1" || v.to_lowercase() == "true") - .unwrap_or(false) - { - let program = pk.elf.clone(); - std::fs::write("program.bin", program).unwrap(); - let stdin = bincode::serialize(&stdin).unwrap(); - std::fs::write("stdin.bin", stdin.clone()).unwrap(); - } - - prover.prove(pk, stdin, kind) - } - - /// Set the proof kind to the core mode. This is the default. - pub fn core(mut self) -> Self { - self.kind = SP1ProofKind::Core; - self - } - - /// Set the proof kind to the compressed mode. - pub fn compressed(mut self) -> Self { - self.kind = SP1ProofKind::Compressed; - self - } - - /// Set the proof mode to the plonk bn254 mode. - pub fn plonk(mut self) -> Self { - self.kind = SP1ProofKind::Plonk; - self - } - - /// Set the proof mode to the groth16 bn254 mode. - pub fn groth16(mut self) -> Self { - self.kind = SP1ProofKind::Groth16; - self - } } /// Builder type for [`ProverClient`]. @@ -275,8 +97,8 @@ impl ProverClientBuilder { self } - /// Builds a [ProverClient], filling in unset fields from environment variables. - pub fn from_env(mut self) -> ProverClient { + /// Builds a [SimpleProver], filling in the mode and any unset fields with values from the env. + pub fn env(mut self) -> SimpleProver { let mode = env::var("SP1_PROVER") .unwrap_or_else(|_| "local".to_string()) .parse::() @@ -286,8 +108,8 @@ impl ProverClientBuilder { self.build(mode) } - /// Builds a [ProverClient], using the provided mode. - pub fn build(self, mode: ProverMode) -> ProverClient { + /// Builds a [SimpleProver], using the provided mode. + pub fn build(self, mode: ProverMode) -> SimpleProver { let prover: Box> = match mode { ProverMode::Cpu => Box::new(CpuProver::new()), ProverMode::Cuda => { @@ -314,7 +136,7 @@ impl ProverClientBuilder { } ProverMode::Mock => Box::new(MockProver::new()), }; - ProverClient { prover } + SimpleProver { prover } } /// Builds a [CpuProver] specifically for local CPU proving. @@ -340,30 +162,6 @@ impl ProverClientBuilder { } } -/// Builder to prepare and configure execution of a program on an input. -/// May be run with [Self::run]. -pub struct SimpleExecute<'a> { - prover: &'a ProverClient, - elf: &'a [u8], - stdin: SP1Stdin, -} - -impl<'a> SimpleExecute<'a> { - /// Prepare to execute the given program on the given input (without generating a proof). - /// - /// Prefer using [ProverClient::execute](super::ProverClient::execute). - /// See there for more documentation. - pub fn new(prover: &'a ProverClient, elf: &'a [u8], stdin: SP1Stdin) -> Self { - Self { prover, elf, stdin } - } - - /// Execute the program on the input, consuming the built action `self`. - pub fn run(self) -> Result<(SP1PublicValues, ExecutionReport)> { - let Self { prover, elf, stdin } = self; - Ok(prover.prover.sp1_prover().execute(elf, &stdin, Default::default())?) - } -} - /// Utility method for blocking on an async function. /// /// If we're already in a tokio runtime, we'll block in place. Otherwise, we'll create a new diff --git a/crates/sdk/src/provers/mod.rs b/crates/sdk/src/provers/mod.rs index a4abbe145d..854cf39c71 100644 --- a/crates/sdk/src/provers/mod.rs +++ b/crates/sdk/src/provers/mod.rs @@ -1,11 +1,13 @@ mod cpu; #[cfg(feature = "cuda")] mod cuda; +mod simple; mod mock; pub use cpu::CpuProver; #[cfg(feature = "cuda")] pub use cuda::CudaProver; +pub use simple::SimpleProver; pub use mock::MockProver; use itertools::Itertools; diff --git a/crates/sdk/src/provers/simple.rs b/crates/sdk/src/provers/simple.rs new file mode 100644 index 0000000000..9ea4ef7273 --- /dev/null +++ b/crates/sdk/src/provers/simple.rs @@ -0,0 +1,211 @@ +use anyhow::Result; +use sp1_core_executor::ExecutionReport; +use sp1_core_machine::io::SP1Stdin; +use sp1_primitives::io::SP1PublicValues; +use sp1_prover::{components::DefaultProverComponents, SP1Prover, SP1ProvingKey, SP1VerifyingKey}; + +use crate::{SP1ProofKind, SP1ProofWithPublicValues}; + +use super::{Prover, ProverType, SP1VerificationError}; + +/// A simple prover that allows executing programs and generating proofs. The actual implementation +pub struct SimpleProver { + /// The underlying prover implementation. + pub prover: Box>, +} + +impl SimpleProver { + /// Execute the given program on the given input (without generating a proof). Returns the + /// public values and execution report of the program after it has been executed. + /// + /// ### Examples + /// ```no_run + /// use sp1_sdk::{ProverClient, SP1Context, SP1Stdin}; + /// + /// // Load the program. + /// let elf = test_artifacts::FIBONACCI_ELF; + /// + /// // Initialize the prover client. + /// let client = ProverClient::new(); + /// + /// // Setup the inputs. + /// let mut stdin = SP1Stdin::new(); + /// stdin.write(&10usize); + /// + /// // Execute the program on the inputs. + /// let (public_values, report) = client.execute(elf, stdin).unwrap(); + /// ``` + pub fn execute<'a>( + &'a self, + elf: &'a [u8], + stdin: SP1Stdin, + ) -> Result<(SP1PublicValues, ExecutionReport)> { + Ok(self.prover.sp1_prover().execute(elf, &stdin, Default::default())?) + } + + /// Prepare to prove the execution of the given program with the given input in the default + /// mode. The returned [action::Prove] may be configured via its methods before running. + /// For example, calling [action::Prove::compressed] sets the mode to compressed mode. + /// + /// To prove, call [action::Prove::run], which returns a proof of the program's execution. + /// By default the proof generated will not be compressed to constant size. + /// To create a more succinct proof, use the [action::Prove::compressed], + /// [action::Prove::plonk], or [action::Prove::groth16] methods. + /// + /// ### Examples + /// ```no_run + /// use sp1_sdk::{ProverClient, SP1Context, SP1Stdin}; + /// + /// // Load the program. + /// let elf = test_artifacts::FIBONACCI_ELF; + /// + /// // Initialize the prover client. + /// let client = ProverClient::new(); + /// + /// // Setup the program. + /// let (pk, vk) = client.setup(elf); + /// + /// // Setup the inputs. + /// let mut stdin = SP1Stdin::new(); + /// stdin.write(&10usize); + /// + /// // Generate the proof. + /// let proof = client.prove(&pk, stdin).run().unwrap(); + /// ``` + pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> SimpleProve<'a> { + SimpleProve::new(self.prover.as_ref(), pk, stdin) + } + + /// Verifies that the given proof is valid and matches the given verification key produced by + /// [Self::setup]. + /// + /// ### Examples + /// ```no_run + /// use sp1_sdk::{ProverClient, SP1Stdin}; + /// + /// let elf = test_artifacts::FIBONACCI_ELF; + /// let client = ProverClient::new(); + /// let (pk, vk) = client.setup(elf); + /// let mut stdin = SP1Stdin::new(); + /// stdin.write(&10usize); + /// let proof = client.prove(&pk, stdin).run().unwrap(); + /// client.verify(&proof, &vk).unwrap(); + /// ``` + pub fn verify( + &self, + proof: &SP1ProofWithPublicValues, + vk: &SP1VerifyingKey, + ) -> Result<(), SP1VerificationError> { + self.prover.verify(proof, vk) + } + + /// Setup a program to be proven and verified by the SP1 RISC-V zkVM by computing the proving + /// and verifying keys. + /// + /// The proving key and verifying key essentially embed the program, as well as other auxiliary + /// data (such as lookup tables) that are used to prove the program's correctness. + /// + /// ### Examples + /// ```no_run + /// use sp1_sdk::{ProverClient, SP1Stdin}; + /// + /// let elf = test_artifacts::FIBONACCI_ELF; + /// let client = ProverClient::new(); + /// let mut stdin = SP1Stdin::new(); + /// stdin.write(&10usize); + /// let (pk, vk) = client.setup(elf); + /// ``` + pub fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey) { + self.prover.setup(elf) + } +} + +impl Prover for SimpleProver { + fn id(&self) -> ProverType { + self.prover.id() + } + + fn sp1_prover(&self) -> &SP1Prover { + self.prover.sp1_prover() + } + + fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey) { + self.prover.setup(elf) + } + + fn prove<'a>( + &'a self, + pk: &SP1ProvingKey, + stdin: SP1Stdin, + kind: SP1ProofKind, + ) -> Result { + self.prover.prove(pk, stdin, kind) + } +} + +/// Builder to prepare and configure proving execution of a program on an input. +/// May be run with [Self::run]. +pub struct SimpleProve<'a> { + prover: &'a dyn Prover, + kind: SP1ProofKind, + pk: &'a SP1ProvingKey, + stdin: SP1Stdin, +} + +impl<'a> SimpleProve<'a> { + fn new( + prover: &'a dyn Prover, + pk: &'a SP1ProvingKey, + stdin: SP1Stdin, + ) -> Self { + Self { prover, kind: Default::default(), pk, stdin } + } + + /// Prove the execution of the program on the input, consuming the built action `self`. + pub fn run(self) -> Result { + let Self { prover, kind, pk, stdin } = self; + + // Dump the program and stdin to files for debugging if `SP1_DUMP` is set. + if std::env::var("SP1_DUMP") + .map(|v| v == "1" || v.to_lowercase() == "true") + .unwrap_or(false) + { + let program = pk.elf.clone(); + std::fs::write("program.bin", program).unwrap(); + let stdin = bincode::serialize(&stdin).unwrap(); + std::fs::write("stdin.bin", stdin.clone()).unwrap(); + } + + prover.prove(pk, stdin, kind) + } + + /// Set the proof kind to the core mode. This is the default. + pub fn core(mut self) -> Self { + self.kind = SP1ProofKind::Core; + self + } + + /// Set the proof kind to the compressed mode. + pub fn compressed(mut self) -> Self { + self.kind = SP1ProofKind::Compressed; + self + } + + /// Set the proof mode to the plonk bn254 mode. + pub fn plonk(mut self) -> Self { + self.kind = SP1ProofKind::Plonk; + self + } + + /// Set the proof mode to the groth16 bn254 mode. + pub fn groth16(mut self) -> Self { + self.kind = SP1ProofKind::Groth16; + self + } + + /// Set the proof mode to the given mode. + pub fn mode(mut self, mode: SP1ProofKind) -> Self { + self.kind = mode; + self + } +} From 2d8e6c1f305a45ed7bb9e1d2b94d83edd8950d3e Mon Sep 17 00:00:00 2001 From: Chris Tian Date: Tue, 17 Dec 2024 14:56:26 -0800 Subject: [PATCH 14/36] move mock into cpu prover --- crates/sdk/src/lib.rs | 14 +-- crates/sdk/src/network-v2/prover.rs | 2 +- crates/sdk/src/network/prover.rs | 2 +- crates/sdk/src/provers/cpu.rs | 162 +++++++++++++++++++++++++-- crates/sdk/src/provers/mock.rs | 167 ---------------------------- crates/sdk/src/provers/mod.rs | 155 +++++++++++++------------- 6 files changed, 239 insertions(+), 263 deletions(-) delete mode 100644 crates/sdk/src/provers/mock.rs diff --git a/crates/sdk/src/lib.rs b/crates/sdk/src/lib.rs index eebf442b41..6fe4cfbd8a 100644 --- a/crates/sdk/src/lib.rs +++ b/crates/sdk/src/lib.rs @@ -72,7 +72,7 @@ impl ProverClient { /// Gets the current version of the SP1 zkVM. /// /// Note: This is not the same as the version of the SP1 SDK. - pub fn version(&self) -> String { + pub fn version() -> String { SP1_CIRCUIT_VERSION.to_string() } } @@ -111,7 +111,7 @@ impl ProverClientBuilder { /// Builds a [SimpleProver], using the provided mode. pub fn build(self, mode: ProverMode) -> SimpleProver { let prover: Box> = match mode { - ProverMode::Cpu => Box::new(CpuProver::new()), + ProverMode::Cpu => Box::new(CpuProver::new(false)), ProverMode::Cuda => { cfg_if! { if #[cfg(feature = "cuda")] { @@ -134,14 +134,14 @@ impl ProverClientBuilder { } } } - ProverMode::Mock => Box::new(MockProver::new()), + ProverMode::Mock => Box::new(CpuProver::new(true)), }; SimpleProver { prover } } /// Builds a [CpuProver] specifically for local CPU proving. pub fn cpu(self) -> CpuProver { - CpuProver::new() + CpuProver::new(false) } /// Builds a [CudaProver] specifically for local NVIDIA GPU proving. @@ -156,9 +156,9 @@ impl ProverClientBuilder { NetworkProver::new(&self.private_key.expect("Private key must be set"), self.rpc_url) } - /// Builds a [MockProver] specifically for mock proving. - pub fn mock(self) -> MockProver { - MockProver::new() + /// Builds a [CpuProver] specifically for mock proving. + pub fn mock(self) -> CpuProver { + CpuProver::new(true) } } diff --git a/crates/sdk/src/network-v2/prover.rs b/crates/sdk/src/network-v2/prover.rs index d4b1913662..00d70456f1 100644 --- a/crates/sdk/src/network-v2/prover.rs +++ b/crates/sdk/src/network-v2/prover.rs @@ -36,7 +36,7 @@ impl NetworkProver { pub fn new(private_key: &str, rpc_url: Option) -> Self { let version = SP1_CIRCUIT_VERSION; log::info!("Client circuit version: {}", version); - let local_prover = CpuProver::new(); + let local_prover = CpuProver::new(false); let client = NetworkClient::new(private_key, rpc_url); Self { client, local_prover, strategy: FulfillmentStrategy::Hosted } } diff --git a/crates/sdk/src/network/prover.rs b/crates/sdk/src/network/prover.rs index a788c6754b..4d9044f438 100644 --- a/crates/sdk/src/network/prover.rs +++ b/crates/sdk/src/network/prover.rs @@ -30,7 +30,7 @@ impl NetworkProver { let version = SP1_CIRCUIT_VERSION; log::info!("Client circuit version: {}", version); - let local_prover = CpuProver::new(); + let local_prover = CpuProver::new(false); Self { client: NetworkClient::new(private_key, rpc_url), local_prover } } diff --git a/crates/sdk/src/provers/cpu.rs b/crates/sdk/src/provers/cpu.rs index 25d5de6c1f..f594fae6ee 100644 --- a/crates/sdk/src/provers/cpu.rs +++ b/crates/sdk/src/provers/cpu.rs @@ -1,31 +1,42 @@ use anyhow::Result; -use sp1_core_executor::{HookEnv, SP1Context, SP1ContextBuilder}; +use hashbrown::HashMap; +use p3_baby_bear::BabyBear; +use p3_field::AbstractField; +use p3_field::PrimeField; +use p3_fri::{FriProof, TwoAdicFriPcsProof}; +use sp1_core_executor::{HookEnv, SP1Context, SP1ContextBuilder, SP1ReduceProof}; use sp1_core_machine::io::SP1Stdin; +use sp1_prover::verify::{verify_groth16_bn254_public_inputs, verify_plonk_bn254_public_inputs}; use sp1_prover::{components::DefaultProverComponents, SP1Prover}; -use sp1_stark::{SP1CoreOpts, SP1ProverOpts}; +use sp1_prover::{Groth16Bn254Proof, HashableKey, PlonkBn254Proof}; +use sp1_stark::{ + SP1CoreOpts, SP1ProverOpts, ShardCommitment, ShardOpenedValues, ShardProof, StarkVerifyingKey, +}; use crate::install::try_install_circuit_artifacts; use crate::{ Prover, SP1Proof, SP1ProofKind, SP1ProofWithPublicValues, SP1ProvingKey, SP1VerifyingKey, }; -use super::ProverType; +use super::verify_proof; +use super::{ProverType, SP1VerificationError}; -/// An implementation of [crate::ProverClient] that can generate end-to-end proofs locally. +/// An implementation of [crate::Prover] that can generate end-to-end proofs locally. pub struct CpuProver { prover: SP1Prover, + mock: bool, } impl CpuProver { - /// Creates a new [LocalProver]. - pub fn new() -> Self { + /// Creates a new [CpuProver]. + pub fn new(mock: bool) -> Self { let prover = SP1Prover::new(); - Self { prover } + Self { prover, mock } } - /// Creates a new [LocalProver] from an existing [SP1Prover]. + /// Creates a new [CpuProver] from an existing [SP1Prover]. pub fn from_prover(prover: SP1Prover) -> Self { - Self { prover } + Self { prover, mock: false } } pub(crate) fn prove_impl<'a>( @@ -36,6 +47,11 @@ impl CpuProver { context: SP1Context<'a>, kind: SP1ProofKind, ) -> Result { + if self.mock { + tracing::info!("Using mock prover"); + return self.mock_proof(&pk, stdin, kind); + } + // Generate the core proof. let proof: sp1_prover::SP1ProofWithMetadata = self.prover.prove_core(pk, &stdin, opts, context)?; @@ -124,6 +140,120 @@ impl CpuProver { recursion_opts: SP1CoreOpts::recursion(), } } + + fn mock_proof( + &self, + pk: &SP1ProvingKey, + stdin: SP1Stdin, + kind: SP1ProofKind, + ) -> Result { + let context = SP1Context::default(); + match kind { + SP1ProofKind::Core => { + let (public_values, _) = self.prover.execute(&pk.elf, &stdin, context)?; + Ok(SP1ProofWithPublicValues { + proof: SP1Proof::Core(vec![]), + stdin, + public_values, + sp1_version: self.version().to_string(), + }) + } + SP1ProofKind::Compressed => { + let (public_values, _) = self.prover.execute(&pk.elf, &stdin, context)?; + + let shard_proof = ShardProof { + commitment: ShardCommitment { + global_main_commit: [BabyBear::zero(); 8].into(), + local_main_commit: [BabyBear::zero(); 8].into(), + permutation_commit: [BabyBear::zero(); 8].into(), + quotient_commit: [BabyBear::zero(); 8].into(), + }, + opened_values: ShardOpenedValues { chips: vec![] }, + opening_proof: TwoAdicFriPcsProof { + fri_proof: FriProof { + commit_phase_commits: vec![], + query_proofs: vec![], + final_poly: Default::default(), + pow_witness: BabyBear::zero(), + }, + query_openings: vec![], + }, + chip_ordering: HashMap::new(), + public_values: vec![], + }; + + let reduce_vk = StarkVerifyingKey { + commit: [BabyBear::zero(); 8].into(), + pc_start: BabyBear::zero(), + chip_information: vec![], + chip_ordering: HashMap::new(), + }; + + let proof = SP1Proof::Compressed(Box::new(SP1ReduceProof { + vk: reduce_vk, + proof: shard_proof, + })); + + Ok(SP1ProofWithPublicValues { + proof, + stdin, + public_values, + sp1_version: self.version().to_string(), + }) + } + SP1ProofKind::Plonk => { + let (public_values, _) = self.prover.execute(&pk.elf, &stdin, context)?; + Ok(SP1ProofWithPublicValues { + proof: SP1Proof::Plonk(PlonkBn254Proof { + public_inputs: [ + pk.vk.hash_bn254().as_canonical_biguint().to_string(), + public_values.hash_bn254().to_string(), + ], + encoded_proof: "".to_string(), + raw_proof: "".to_string(), + plonk_vkey_hash: [0; 32], + }), + stdin, + public_values, + sp1_version: self.version().to_string(), + }) + } + SP1ProofKind::Groth16 => { + let (public_values, _) = self.prover.execute(&pk.elf, &stdin, context)?; + Ok(SP1ProofWithPublicValues { + proof: SP1Proof::Groth16(Groth16Bn254Proof { + public_inputs: [ + pk.vk.hash_bn254().as_canonical_biguint().to_string(), + public_values.hash_bn254().to_string(), + ], + encoded_proof: "".to_string(), + raw_proof: "".to_string(), + groth16_vkey_hash: [0; 32], + }), + stdin, + public_values, + sp1_version: self.version().to_string(), + }) + } + } + } + + fn mock_verify( + bundle: &SP1ProofWithPublicValues, + vkey: &SP1VerifyingKey, + ) -> Result<(), SP1VerificationError> { + match &bundle.proof { + SP1Proof::Plonk(PlonkBn254Proof { public_inputs, .. }) => { + verify_plonk_bn254_public_inputs(vkey, &bundle.public_values, public_inputs) + .map_err(SP1VerificationError::Plonk) + } + SP1Proof::Groth16(Groth16Bn254Proof { public_inputs, .. }) => { + verify_groth16_bn254_public_inputs(vkey, &bundle.public_values, public_inputs) + .map_err(SP1VerificationError::Groth16) + } + _ => Ok(()), + } + } } impl Prover for CpuProver { @@ -147,11 +277,23 @@ impl Prover for CpuProver { ) -> Result { self.prove_impl(pk, stdin, Default::default(), SP1Context::default(), kind) } + + fn verify( + &self, + bundle: &SP1ProofWithPublicValues, + vkey: &SP1VerifyingKey, + ) -> Result<(), SP1VerificationError> { + if self.mock { + tracing::warn!("Using mock verifier"); + return Self::mock_verify(bundle, vkey); + } + verify_proof(self.sp1_prover(), self.version(), bundle, vkey) + } } impl Default for CpuProver { fn default() -> Self { - Self::new() + Self::new(false) } } diff --git a/crates/sdk/src/provers/mock.rs b/crates/sdk/src/provers/mock.rs deleted file mode 100644 index 4fe00bd27d..0000000000 --- a/crates/sdk/src/provers/mock.rs +++ /dev/null @@ -1,167 +0,0 @@ -#![allow(unused_variables)] -use super::ProverType; -use crate::{ - Prover, SP1Proof, SP1ProofKind, SP1ProofWithPublicValues, SP1ProvingKey, SP1VerificationError, - SP1VerifyingKey, -}; -use anyhow::Result; -use hashbrown::HashMap; -use p3_baby_bear::BabyBear; -use p3_field::{AbstractField, PrimeField}; -use p3_fri::{FriProof, TwoAdicFriPcsProof}; -use sp1_core_executor::{SP1Context, SP1ReduceProof}; -use sp1_core_machine::io::SP1Stdin; -use sp1_prover::{ - components::DefaultProverComponents, - verify::{verify_groth16_bn254_public_inputs, verify_plonk_bn254_public_inputs}, - Groth16Bn254Proof, HashableKey, PlonkBn254Proof, SP1Prover, -}; -use sp1_stark::{ShardCommitment, ShardOpenedValues, ShardProof, StarkVerifyingKey}; - -/// An implementation of [crate::ProverClient] that can generate mock proofs. -pub struct MockProver { - pub(crate) prover: SP1Prover, -} - -impl MockProver { - /// Creates a new [MockProver]. - pub fn new() -> Self { - let prover = SP1Prover::new(); - Self { prover } - } -} - -impl Prover for MockProver { - fn id(&self) -> ProverType { - ProverType::Mock - } - - fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey) { - self.prover.setup(elf) - } - - fn sp1_prover(&self) -> &SP1Prover { - &self.prover - } - - fn prove<'a>( - &'a self, - pk: &SP1ProvingKey, - stdin: SP1Stdin, - kind: SP1ProofKind, - ) -> Result { - let context = SP1Context::default(); - match kind { - SP1ProofKind::Core => { - let (public_values, _) = self.prover.execute(&pk.elf, &stdin, context)?; - Ok(SP1ProofWithPublicValues { - proof: SP1Proof::Core(vec![]), - stdin, - public_values, - sp1_version: self.version().to_string(), - }) - } - SP1ProofKind::Compressed => { - let (public_values, _) = self.prover.execute(&pk.elf, &stdin, context)?; - - let shard_proof = ShardProof { - commitment: ShardCommitment { - global_main_commit: [BabyBear::zero(); 8].into(), - local_main_commit: [BabyBear::zero(); 8].into(), - permutation_commit: [BabyBear::zero(); 8].into(), - quotient_commit: [BabyBear::zero(); 8].into(), - }, - opened_values: ShardOpenedValues { chips: vec![] }, - opening_proof: TwoAdicFriPcsProof { - fri_proof: FriProof { - commit_phase_commits: vec![], - query_proofs: vec![], - final_poly: Default::default(), - pow_witness: BabyBear::zero(), - }, - query_openings: vec![], - }, - chip_ordering: HashMap::new(), - public_values: vec![], - }; - - let reduce_vk = StarkVerifyingKey { - commit: [BabyBear::zero(); 8].into(), - pc_start: BabyBear::zero(), - chip_information: vec![], - chip_ordering: HashMap::new(), - }; - - let proof = SP1Proof::Compressed(Box::new(SP1ReduceProof { - vk: reduce_vk, - proof: shard_proof, - })); - - Ok(SP1ProofWithPublicValues { - proof, - stdin, - public_values, - sp1_version: self.version().to_string(), - }) - } - SP1ProofKind::Plonk => { - let (public_values, _) = self.prover.execute(&pk.elf, &stdin, context)?; - Ok(SP1ProofWithPublicValues { - proof: SP1Proof::Plonk(PlonkBn254Proof { - public_inputs: [ - pk.vk.hash_bn254().as_canonical_biguint().to_string(), - public_values.hash_bn254().to_string(), - ], - encoded_proof: "".to_string(), - raw_proof: "".to_string(), - plonk_vkey_hash: [0; 32], - }), - stdin, - public_values, - sp1_version: self.version().to_string(), - }) - } - SP1ProofKind::Groth16 => { - let (public_values, _) = self.prover.execute(&pk.elf, &stdin, context)?; - Ok(SP1ProofWithPublicValues { - proof: SP1Proof::Groth16(Groth16Bn254Proof { - public_inputs: [ - pk.vk.hash_bn254().as_canonical_biguint().to_string(), - public_values.hash_bn254().to_string(), - ], - encoded_proof: "".to_string(), - raw_proof: "".to_string(), - groth16_vkey_hash: [0; 32], - }), - stdin, - public_values, - sp1_version: self.version().to_string(), - }) - } - } - } - - fn verify( - &self, - bundle: &SP1ProofWithPublicValues, - vkey: &SP1VerifyingKey, - ) -> Result<(), SP1VerificationError> { - match &bundle.proof { - SP1Proof::Plonk(PlonkBn254Proof { public_inputs, .. }) => { - verify_plonk_bn254_public_inputs(vkey, &bundle.public_values, public_inputs) - .map_err(SP1VerificationError::Plonk) - } - SP1Proof::Groth16(Groth16Bn254Proof { public_inputs, .. }) => { - verify_groth16_bn254_public_inputs(vkey, &bundle.public_values, public_inputs) - .map_err(SP1VerificationError::Groth16) - } - _ => Ok(()), - } - } -} - -impl Default for MockProver { - fn default() -> Self { - Self::new() - } -} diff --git a/crates/sdk/src/provers/mod.rs b/crates/sdk/src/provers/mod.rs index 854cf39c71..b605263ceb 100644 --- a/crates/sdk/src/provers/mod.rs +++ b/crates/sdk/src/provers/mod.rs @@ -1,14 +1,14 @@ mod cpu; #[cfg(feature = "cuda")] mod cuda; -mod simple; mod mock; +mod simple; pub use cpu::CpuProver; #[cfg(feature = "cuda")] pub use cuda::CudaProver; -pub use simple::SimpleProver; pub use mock::MockProver; +pub use simple::SimpleProver; use itertools::Itertools; use p3_field::PrimeField32; @@ -90,85 +90,86 @@ pub trait Prover: Send + Sync { bundle: &SP1ProofWithPublicValues, vkey: &SP1VerifyingKey, ) -> Result<(), SP1VerificationError> { - if bundle.sp1_version != self.version() { - return Err(SP1VerificationError::VersionMismatch(bundle.sp1_version.clone())); - } - match &bundle.proof { - SP1Proof::Core(proof) => { - let public_values: &PublicValues, _> = - proof.last().unwrap().public_values.as_slice().borrow(); - - // Get the committed value digest bytes. - let committed_value_digest_bytes = public_values - .committed_value_digest - .iter() - .flat_map(|w| w.0.iter().map(|x| x.as_canonical_u32() as u8)) - .collect_vec(); - - // Make sure the committed value digest matches the public values hash. - for (a, b) in - committed_value_digest_bytes.iter().zip_eq(bundle.public_values.hash()) - { - if *a != b { - return Err(SP1VerificationError::InvalidPublicValues); - } - } + verify_proof(self.sp1_prover(), self.version(), bundle, vkey) + } +} - // Verify the core proof. - self.sp1_prover() - .verify(&SP1CoreProofData(proof.clone()), vkey) - .map_err(SP1VerificationError::Core) - } - SP1Proof::Compressed(proof) => { - let public_values: &PublicValues, _> = - proof.proof.public_values.as_slice().borrow(); - - // Get the committed value digest bytes. - let committed_value_digest_bytes = public_values - .committed_value_digest - .iter() - .flat_map(|w| w.0.iter().map(|x| x.as_canonical_u32() as u8)) - .collect_vec(); - - // Make sure the committed value digest matches the public values hash. - for (a, b) in - committed_value_digest_bytes.iter().zip_eq(bundle.public_values.hash()) - { - if *a != b { - return Err(SP1VerificationError::InvalidPublicValues); - } +pub(crate) fn verify_proof( + prover: &SP1Prover, + version: &str, + bundle: &SP1ProofWithPublicValues, + vkey: &SP1VerifyingKey, +) -> Result<(), SP1VerificationError> { + if bundle.sp1_version != version { + return Err(SP1VerificationError::VersionMismatch(bundle.sp1_version.clone())); + } + match &bundle.proof { + SP1Proof::Core(proof) => { + let public_values: &PublicValues, _> = + proof.last().unwrap().public_values.as_slice().borrow(); + + // Get the committed value digest bytes. + let committed_value_digest_bytes = public_values + .committed_value_digest + .iter() + .flat_map(|w| w.0.iter().map(|x| x.as_canonical_u32() as u8)) + .collect_vec(); + + // Make sure the committed value digest matches the public values hash. + for (a, b) in committed_value_digest_bytes.iter().zip_eq(bundle.public_values.hash()) { + if *a != b { + return Err(SP1VerificationError::InvalidPublicValues); } + } - self.sp1_prover() - .verify_compressed(proof, vkey) - .map_err(SP1VerificationError::Recursion) + // Verify the core proof. + prover + .verify(&SP1CoreProofData(proof.clone()), vkey) + .map_err(SP1VerificationError::Core) + } + SP1Proof::Compressed(proof) => { + let public_values: &PublicValues, _> = + proof.proof.public_values.as_slice().borrow(); + + // Get the committed value digest bytes. + let committed_value_digest_bytes = public_values + .committed_value_digest + .iter() + .flat_map(|w| w.0.iter().map(|x| x.as_canonical_u32() as u8)) + .collect_vec(); + + // Make sure the committed value digest matches the public values hash. + for (a, b) in committed_value_digest_bytes.iter().zip_eq(bundle.public_values.hash()) { + if *a != b { + return Err(SP1VerificationError::InvalidPublicValues); + } } - SP1Proof::Plonk(proof) => self - .sp1_prover() - .verify_plonk_bn254( - proof, - vkey, - &bundle.public_values, - &if sp1_prover::build::sp1_dev_mode() { - sp1_prover::build::plonk_bn254_artifacts_dev_dir() - } else { - try_install_circuit_artifacts("plonk") - }, - ) - .map_err(SP1VerificationError::Plonk), - SP1Proof::Groth16(proof) => self - .sp1_prover() - .verify_groth16_bn254( - proof, - vkey, - &bundle.public_values, - &if sp1_prover::build::sp1_dev_mode() { - sp1_prover::build::groth16_bn254_artifacts_dev_dir() - } else { - try_install_circuit_artifacts("groth16") - }, - ) - .map_err(SP1VerificationError::Groth16), + + prover.verify_compressed(proof, vkey).map_err(SP1VerificationError::Recursion) } + SP1Proof::Plonk(proof) => prover + .verify_plonk_bn254( + proof, + vkey, + &bundle.public_values, + &if sp1_prover::build::sp1_dev_mode() { + sp1_prover::build::plonk_bn254_artifacts_dev_dir() + } else { + try_install_circuit_artifacts("plonk") + }, + ) + .map_err(SP1VerificationError::Plonk), + SP1Proof::Groth16(proof) => prover + .verify_groth16_bn254( + proof, + vkey, + &bundle.public_values, + &if sp1_prover::build::sp1_dev_mode() { + sp1_prover::build::groth16_bn254_artifacts_dev_dir() + } else { + try_install_circuit_artifacts("groth16") + }, + ) + .map_err(SP1VerificationError::Groth16), } } From 92e5b0c90340fc0caa7f23ae4850ea441f02ea24 Mon Sep 17 00:00:00 2001 From: Chris Tian Date: Tue, 17 Dec 2024 16:07:36 -0800 Subject: [PATCH 15/36] remove ProverClient::builder --- crates/sdk/src/lib.rs | 134 ++++++----- crates/sdk/src/network-v2/prover.rs | 6 +- crates/sdk/src/network/prover.rs | 6 +- crates/sdk/src/provers/cpu/builder.rs | 226 +++++++++++++++++++ crates/sdk/src/provers/cpu/mod.rs | 203 +++++++++++++++++ crates/sdk/src/provers/{simple.rs => env.rs} | 45 +++- crates/sdk/src/provers/{cpu.rs => local.rs} | 14 +- crates/sdk/src/provers/mod.rs | 10 +- 8 files changed, 551 insertions(+), 93 deletions(-) create mode 100644 crates/sdk/src/provers/cpu/builder.rs create mode 100644 crates/sdk/src/provers/cpu/mod.rs rename crates/sdk/src/provers/{simple.rs => env.rs} (80%) rename crates/sdk/src/provers/{cpu.rs => local.rs} (98%) diff --git a/crates/sdk/src/lib.rs b/crates/sdk/src/lib.rs index 6fe4cfbd8a..a2fc58b84d 100644 --- a/crates/sdk/src/lib.rs +++ b/crates/sdk/src/lib.rs @@ -29,15 +29,14 @@ pub mod utils { use cfg_if::cfg_if; pub use proof::*; +use provers::EnvProver; pub use provers::SP1VerificationError; -use provers::SimpleProver; -use sp1_prover::components::DefaultProverComponents; use std::env; #[cfg(any(feature = "network", feature = "network-v2"))] use {std::future::Future, tokio::task::block_in_place}; -pub use provers::{CpuProver, MockProver, Prover}; +pub use provers::{LocalProver, Prover}; pub use sp1_build::include_elf; pub use sp1_core_executor::{ExecutionReport, HookEnv, SP1Context, SP1ContextBuilder}; @@ -60,9 +59,9 @@ cfg_if! { } impl ProverClient { - #[deprecated(since = "4.0.0", note = "use ProverClient::builder().env() instead")] - pub fn new() -> SimpleProver { - Self::builder().env() + #[deprecated(since = "4.0.0", note = "use ProverClient::env() instead")] + pub fn new() -> EnvProver { + Self::env() } pub fn builder() -> ProverClientBuilder { @@ -75,6 +74,33 @@ impl ProverClient { pub fn version() -> String { SP1_CIRCUIT_VERSION.to_string() } + + /// Builds a [EnvProver], filling in the mode and any unset fields with values from the env. + pub fn env() -> EnvProver { + EnvProver::new() + } + + /// Builds a [LocalProver] specifically for local CPU proving. + pub fn local() -> LocalProver { + LocalProver::new(false) + } + + /// Builds a [CudaProver] specifically for local NVIDIA GPU proving. + #[cfg(feature = "cuda")] + pub fn cuda() -> CudaProver { + CudaProver::new(SP1Prover::new()) + } + + /// Builds a [NetworkProver] specifically for network proving. + #[cfg(any(feature = "network", feature = "network-v2"))] + pub fn network() -> NetworkProverBuilder { + NetworkProverBuilder::new() + } + + /// Builds a [LocalProver] specifically for mock proving. + pub fn mock() -> LocalProver { + LocalProver::new(true) + } } /// Builder type for [`ProverClient`]. @@ -96,70 +122,6 @@ impl ProverClientBuilder { self.rpc_url = Some(rpc_url); self } - - /// Builds a [SimpleProver], filling in the mode and any unset fields with values from the env. - pub fn env(mut self) -> SimpleProver { - let mode = env::var("SP1_PROVER") - .unwrap_or_else(|_| "local".to_string()) - .parse::() - .unwrap_or(ProverMode::Cpu); - self.rpc_url = self.rpc_url.or_else(|| env::var("PROVER_NETWORK_RPC").ok()); - self.private_key = self.private_key.or_else(|| env::var("SP1_PRIVATE_KEY").ok()); - self.build(mode) - } - - /// Builds a [SimpleProver], using the provided mode. - pub fn build(self, mode: ProverMode) -> SimpleProver { - let prover: Box> = match mode { - ProverMode::Cpu => Box::new(CpuProver::new(false)), - ProverMode::Cuda => { - cfg_if! { - if #[cfg(feature = "cuda")] { - Box::new(CudaProver::new(SP1Prover::new())) - } else { - panic!("cuda feature is not enabled") - } - } - } - ProverMode::Network => { - let private_key = self.private_key.expect("The private key is required"); - - cfg_if! { - if #[cfg(feature = "network-v2")] { - Box::new(NetworkProverV2::new(&private_key, self.rpc_url)) - } else if #[cfg(feature = "network")] { - Box::new(NetworkProverV1::new(&private_key, self.rpc_url)) - } else { - panic!("network feature is not enabled") - } - } - } - ProverMode::Mock => Box::new(CpuProver::new(true)), - }; - SimpleProver { prover } - } - - /// Builds a [CpuProver] specifically for local CPU proving. - pub fn cpu(self) -> CpuProver { - CpuProver::new(false) - } - - /// Builds a [CudaProver] specifically for local NVIDIA GPU proving. - #[cfg(feature = "cuda")] - pub fn cuda(self) -> CudaProver { - CudaProver::new(SP1Prover::new()) - } - - /// Builds a [NetworkProver] specifically for network proving. - #[cfg(any(feature = "network", feature = "network-v2"))] - pub fn network(self) -> NetworkProver { - NetworkProver::new(&self.private_key.expect("Private key must be set"), self.rpc_url) - } - - /// Builds a [CpuProver] specifically for mock proving. - pub fn mock(self) -> CpuProver { - CpuProver::new(true) - } } /// Utility method for blocking on an async function. @@ -178,6 +140,38 @@ pub fn block_on(fut: impl Future) -> T { } } +#[cfg(any(feature = "network", feature = "network-v2"))] +pub struct NetworkProverBuilder { + private_key: Option, + rpc_url: Option, +} + +#[cfg(any(feature = "network", feature = "network-v2"))] +impl NetworkProverBuilder { + pub(crate) fn new() -> Self { + Self { private_key: None, rpc_url: None } + } + + /// Sets the private key. Only used for network prover. + pub fn private_key(mut self, private_key: String) -> Self { + self.private_key = Some(private_key); + self + } + + /// Sets the RPC URL. Only used for network prover. + pub fn rpc_url(mut self, rpc_url: String) -> Self { + self.rpc_url = Some(rpc_url); + self + } + + pub fn build(self) -> NetworkProver { + let private_key = self.private_key.unwrap_or_else(|| { + env::var("SP1_PRIVATE_KEY").expect("Private key must be provided through `NetworkProverBuilder::private_key` or the SP1_PRIVATE_KEY environment variable.") + }); + NetworkProver::new(&private_key, self.rpc_url) + } +} + #[cfg(test)] mod tests { diff --git a/crates/sdk/src/network-v2/prover.rs b/crates/sdk/src/network-v2/prover.rs index 00d70456f1..fed7ab8a80 100644 --- a/crates/sdk/src/network-v2/prover.rs +++ b/crates/sdk/src/network-v2/prover.rs @@ -1,7 +1,7 @@ use std::time::{Duration, Instant}; use crate::network_v2::client::DEFAULT_PROVER_NETWORK_RPC; -use crate::provers::{CpuProver, ProverType}; +use crate::provers::{LocalProver, ProverType}; use crate::util::dump_proof_input; use crate::{ network_v2::client::NetworkClient, @@ -27,7 +27,7 @@ const DEFAULT_CYCLE_LIMIT: u64 = 100_000_000; /// An implementation of [crate::ProverClient] that can generate proofs on a remote RPC server. pub struct NetworkProver { client: NetworkClient, - local_prover: CpuProver, + local_prover: LocalProver, strategy: FulfillmentStrategy, } @@ -36,7 +36,7 @@ impl NetworkProver { pub fn new(private_key: &str, rpc_url: Option) -> Self { let version = SP1_CIRCUIT_VERSION; log::info!("Client circuit version: {}", version); - let local_prover = CpuProver::new(false); + let local_prover = LocalProver::new(false); let client = NetworkClient::new(private_key, rpc_url); Self { client, local_prover, strategy: FulfillmentStrategy::Hosted } } diff --git a/crates/sdk/src/network/prover.rs b/crates/sdk/src/network/prover.rs index 4d9044f438..0faa16b236 100644 --- a/crates/sdk/src/network/prover.rs +++ b/crates/sdk/src/network/prover.rs @@ -1,7 +1,7 @@ use std::time::{Duration, Instant}; use super::proto::network::GetProofStatusResponse; -use crate::provers::{CpuProver, ProverType}; +use crate::provers::{LocalProver, ProverType}; use crate::util::dump_proof_input; use crate::{ network::{ @@ -21,7 +21,7 @@ const MAX_CONSECUTIVE_ERRORS: usize = 10; /// An implementation of [crate::ProverClient] that can generate proofs on a remote RPC server. pub struct NetworkProver { client: NetworkClient, - local_prover: CpuProver, + local_prover: LocalProver, } impl NetworkProver { @@ -30,7 +30,7 @@ impl NetworkProver { let version = SP1_CIRCUIT_VERSION; log::info!("Client circuit version: {}", version); - let local_prover = CpuProver::new(false); + let local_prover = LocalProver::new(false); Self { client: NetworkClient::new(private_key, rpc_url), local_prover } } diff --git a/crates/sdk/src/provers/cpu/builder.rs b/crates/sdk/src/provers/cpu/builder.rs new file mode 100644 index 0000000000..b33024c060 --- /dev/null +++ b/crates/sdk/src/provers/cpu/builder.rs @@ -0,0 +1,226 @@ +use sp1_core_executor::{ExecutionReport, HookEnv, SP1ContextBuilder}; +use sp1_core_machine::io::SP1Stdin; +use sp1_primitives::io::SP1PublicValues; +use sp1_prover::SP1ProvingKey; + +use anyhow::{Ok, Result}; +use sp1_stark::{SP1CoreOpts, SP1ProverOpts}; +use std::time::Duration; + +use crate::{provers::ProofOpts, Prover, SP1ProofKind, SP1ProofWithPublicValues}; + +use super::LocalProver; + +/// Builder to prepare and configure execution of a program on an input. +/// May be run with [Self::run]. +pub struct Execute<'a> { + prover: &'a LocalProver, + context_builder: SP1ContextBuilder<'a>, + elf: &'a [u8], + stdin: SP1Stdin, +} + +impl<'a> Execute<'a> { + /// Prepare to execute the given program on the given input (without generating a proof). + /// + /// Prefer using [ProverClient::execute](super::ProverClient::execute). + /// See there for more documentation. + pub fn new(prover: &'a LocalProver, elf: &'a [u8], stdin: SP1Stdin) -> Self { + Self { prover, elf, stdin, context_builder: Default::default() } + } + + /// Execute the program on the input, consuming the built action `self`. + pub fn run(self) -> Result<(SP1PublicValues, ExecutionReport)> { + let Self { prover, elf, stdin, mut context_builder } = self; + let context = context_builder.build(); + Ok(prover.sp1_prover().execute(elf, &stdin, context)?) + } + + /// Add a runtime [Hook](super::Hook) into the context. + /// + /// Hooks may be invoked from within SP1 by writing to the specified file descriptor `fd` + /// with [`sp1_zkvm::io::write`], returning a list of arbitrary data that may be read + /// with successive calls to [`sp1_zkvm::io::read`]. + pub fn with_hook( + mut self, + fd: u32, + f: impl FnMut(HookEnv, &[u8]) -> Vec> + Send + Sync + 'a, + ) -> Self { + self.context_builder.hook(fd, f); + self + } + + /// Avoid registering the default hooks in the runtime. + /// + /// It is not necessary to call this to override hooks --- instead, simply + /// register a hook with the same value of `fd` by calling [`Self::with_hook`]. + pub fn without_default_hooks(mut self) -> Self { + self.context_builder.without_default_hooks(); + self + } + + /// Set the maximum number of cpu cycles to use for execution. + /// + /// If the cycle limit is exceeded, execution will return + /// [`sp1_core_executor::ExecutionError::ExceededCycleLimit`]. + pub fn max_cycles(mut self, max_cycles: u64) -> Self { + self.context_builder.max_cycles(max_cycles); + self + } + + /// Skip deferred proof verification. + pub fn set_skip_deferred_proof_verification(mut self, value: bool) -> Self { + self.context_builder.set_skip_deferred_proof_verification(value); + self + } +} + +/// Builder to prepare and configure proving execution of a program on an input. +/// May be run with [Self::run]. +pub struct Prove<'a> { + prover: &'a LocalProver, + kind: SP1ProofKind, + context_builder: SP1ContextBuilder<'a>, + pk: &'a SP1ProvingKey, + stdin: SP1Stdin, + core_opts: SP1CoreOpts, + recursion_opts: SP1CoreOpts, + timeout: Option, +} + +impl<'a> Prove<'a> { + /// Prepare to prove the execution of the given program with the given input. + /// + /// Prefer using [ProverClient::prove](super::ProverClient::prove). + /// See there for more documentation. + pub fn new(prover: &'a LocalProver, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> Self { + Self { + prover, + kind: Default::default(), + pk, + stdin, + context_builder: Default::default(), + core_opts: SP1CoreOpts::default(), + recursion_opts: SP1CoreOpts::recursion(), + timeout: None, + } + } + + /// Prove the execution of the program on the input, consuming the built action `self`. + pub fn run(self) -> Result { + let Self { + prover, + kind, + pk, + stdin, + mut context_builder, + core_opts, + recursion_opts, + timeout, + } = self; + let opts = SP1ProverOpts { core_opts, recursion_opts }; + let proof_opts = ProofOpts { sp1_prover_opts: opts, timeout }; + let context = context_builder.build(); + + // Dump the program and stdin to files for debugging if `SP1_DUMP` is set. + if std::env::var("SP1_DUMP") + .map(|v| v == "1" || v.to_lowercase() == "true") + .unwrap_or(false) + { + let program = pk.elf.clone(); + std::fs::write("program.bin", program).unwrap(); + let stdin = bincode::serialize(&stdin).unwrap(); + std::fs::write("stdin.bin", stdin.clone()).unwrap(); + } + + prover.prove_impl(pk, stdin, proof_opts, context, kind) + } + + /// Set the proof kind to the core mode. This is the default. + pub fn core(mut self) -> Self { + self.kind = SP1ProofKind::Core; + self + } + + /// Set the proof kind to the compressed mode. + pub fn compressed(mut self) -> Self { + self.kind = SP1ProofKind::Compressed; + self + } + + /// Set the proof mode to the plonk bn254 mode. + pub fn plonk(mut self) -> Self { + self.kind = SP1ProofKind::Plonk; + self + } + + /// Set the proof mode to the groth16 bn254 mode. + pub fn groth16(mut self) -> Self { + self.kind = SP1ProofKind::Groth16; + self + } + + /// Add a runtime [Hook](super::Hook) into the context. + /// + /// Hooks may be invoked from within SP1 by writing to the specified file descriptor `fd` + /// with [`sp1_zkvm::io::write`], returning a list of arbitrary data that may be read + /// with successive calls to [`sp1_zkvm::io::read`]. + pub fn with_hook( + mut self, + fd: u32, + f: impl FnMut(HookEnv, &[u8]) -> Vec> + Send + Sync + 'a, + ) -> Self { + self.context_builder.hook(fd, f); + self + } + + /// Avoid registering the default hooks in the runtime. + /// + /// It is not necessary to call this to override hooks --- instead, simply + /// register a hook with the same value of `fd` by calling [`Self::with_hook`]. + pub fn without_default_hooks(mut self) -> Self { + self.context_builder.without_default_hooks(); + self + } + + /// Set the shard size for proving. + pub fn shard_size(mut self, value: usize) -> Self { + self.core_opts.shard_size = value; + self + } + + /// Set the shard batch size for proving. + pub fn shard_batch_size(mut self, value: usize) -> Self { + self.core_opts.shard_batch_size = value; + self + } + + /// Set whether we should reconstruct commitments while proving. + pub fn reconstruct_commitments(mut self, value: bool) -> Self { + self.core_opts.reconstruct_commitments = value; + self + } + + /// Set the maximum number of cpu cycles to use for execution. + /// + /// If the cycle limit is exceeded, execution will return + /// [`sp1_core_executor::ExecutionError::ExceededCycleLimit`]. + pub fn cycle_limit(mut self, cycle_limit: u64) -> Self { + self.context_builder.max_cycles(cycle_limit); + self + } + + /// Set the timeout for the proof's generation. + /// + /// This parameter is only used when the prover is run in network mode. + pub fn timeout(mut self, timeout: Duration) -> Self { + self.timeout = Some(timeout); + self + } + + /// Set the skip deferred proof verification flag. + pub fn set_skip_deferred_proof_verification(mut self, value: bool) -> Self { + self.context_builder.set_skip_deferred_proof_verification(value); + self + } +} diff --git a/crates/sdk/src/provers/cpu/mod.rs b/crates/sdk/src/provers/cpu/mod.rs new file mode 100644 index 0000000000..bc5ca4cc80 --- /dev/null +++ b/crates/sdk/src/provers/cpu/mod.rs @@ -0,0 +1,203 @@ +use anyhow::Result; +use sp1_core_executor::SP1Context; +use sp1_core_machine::io::SP1Stdin; +use sp1_prover::{components::DefaultProverComponents, SP1Prover}; + +use crate::install::try_install_circuit_artifacts; +use crate::{ + provers::ProofOpts, Prover, SP1Proof, SP1ProofKind, SP1ProofWithPublicValues, SP1ProvingKey, + SP1VerifyingKey, +}; + +pub mod builder; + +use super::ProverType; + +/// An implementation of [crate::ProverClient] that can generate end-to-end proofs locally. +pub struct LocalProver { + prover: SP1Prover, +} + +impl LocalProver { + /// Creates a new [LocalProver]. + pub fn new() -> Self { + let prover = SP1Prover::new(); + Self { prover } + } + + /// Creates a new [LocalProver] from an existing [SP1Prover]. + pub fn from_prover(prover: SP1Prover) -> Self { + Self { prover } + } + + /// Prepare to execute the given program on the given input (without generating a proof). + /// The returned [builder::Execute] may be configured via its methods before running. + /// For example, calling [builder::Execute::with_hook] registers hooks for execution. + /// + /// To execute, call [builder::Execute::run], which returns + /// the public values and execution report of the program after it has been executed. + /// + /// ### Examples + /// ```no_run + /// use sp1_sdk::{ProverClient, SP1Context, SP1Stdin}; + /// + /// // Load the program. + /// let elf = test_artifacts::FIBONACCI_ELF; + /// + /// // Initialize the prover client. + /// let client = ProverClient::new(); + /// + /// // Setup the inputs. + /// let mut stdin = SP1Stdin::new(); + /// stdin.write(&10usize); + /// + /// // Execute the program on the inputs. + /// let (public_values, report) = client.execute(elf, stdin).run().unwrap(); + /// ``` + pub fn execute<'a>(&'a self, elf: &'a [u8], stdin: SP1Stdin) -> builder::Execute<'a> { + builder::Execute::new(self, elf, stdin) + } + + /// Prepare to prove the execution of the given program with the given input in the default + /// mode. The returned [builder::Prove] may be configured via its methods before running. + /// For example, calling [builder::Prove::compressed] sets the mode to compressed mode. + /// + /// To prove, call [builder::Prove::run], which returns a proof of the program's execution. + /// By default the proof generated will not be compressed to constant size. + /// To create a more succinct proof, use the [builder::Prove::compressed], + /// [builder::Prove::plonk], or [builder::Prove::groth16] methods. + /// + /// ### Examples + /// ```no_run + /// use sp1_sdk::{ProverClient, SP1Context, SP1Stdin}; + /// + /// // Load the program. + /// let elf = test_artifacts::FIBONACCI_ELF; + /// + /// // Initialize the prover client. + /// let client = ProverClient::new(); + /// + /// // Setup the program. + /// let (pk, vk) = client.setup(elf); + /// + /// // Setup the inputs. + /// let mut stdin = SP1Stdin::new(); + /// stdin.write(&10usize); + /// + /// // Generate the proof. + /// let proof = client.prove(&pk, stdin).run().unwrap(); + /// ``` + pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> builder::Prove<'a> { + builder::Prove::new(self, pk, stdin) + } + + pub(crate) fn prove_impl<'a>( + &'a self, + pk: &SP1ProvingKey, + stdin: SP1Stdin, + opts: ProofOpts, + context: SP1Context<'a>, + kind: SP1ProofKind, + ) -> Result { + // Generate the core proof. + let proof: sp1_prover::SP1ProofWithMetadata = + self.prover.prove_core(pk, &stdin, opts.sp1_prover_opts, context)?; + if kind == SP1ProofKind::Core { + return Ok(SP1ProofWithPublicValues { + proof: SP1Proof::Core(proof.proof.0), + stdin: proof.stdin, + public_values: proof.public_values, + sp1_version: self.version().to_string(), + }); + } + + let deferred_proofs = + stdin.proofs.iter().map(|(reduce_proof, _)| reduce_proof.clone()).collect(); + let public_values = proof.public_values.clone(); + + // Generate the compressed proof. + let reduce_proof = + self.prover.compress(&pk.vk, proof, deferred_proofs, opts.sp1_prover_opts)?; + if kind == SP1ProofKind::Compressed { + return Ok(SP1ProofWithPublicValues { + proof: SP1Proof::Compressed(Box::new(reduce_proof)), + stdin, + public_values, + sp1_version: self.version().to_string(), + }); + } + + // Generate the shrink proof. + let compress_proof = self.prover.shrink(reduce_proof, opts.sp1_prover_opts)?; + + // Genenerate the wrap proof. + let outer_proof = self.prover.wrap_bn254(compress_proof, opts.sp1_prover_opts)?; + + if kind == SP1ProofKind::Plonk { + let plonk_bn254_artifacts = if sp1_prover::build::sp1_dev_mode() { + sp1_prover::build::try_build_plonk_bn254_artifacts_dev( + &outer_proof.vk, + &outer_proof.proof, + ) + } else { + try_install_circuit_artifacts("plonk") + }; + let proof = self.prover.wrap_plonk_bn254(outer_proof, &plonk_bn254_artifacts); + + return Ok(SP1ProofWithPublicValues { + proof: SP1Proof::Plonk(proof), + stdin, + public_values, + sp1_version: self.version().to_string(), + }); + } else if kind == SP1ProofKind::Groth16 { + let groth16_bn254_artifacts = if sp1_prover::build::sp1_dev_mode() { + sp1_prover::build::try_build_groth16_bn254_artifacts_dev( + &outer_proof.vk, + &outer_proof.proof, + ) + } else { + try_install_circuit_artifacts("groth16") + }; + + let proof = self.prover.wrap_groth16_bn254(outer_proof, &groth16_bn254_artifacts); + return Ok(SP1ProofWithPublicValues { + proof: SP1Proof::Groth16(proof), + stdin, + public_values, + sp1_version: self.version().to_string(), + }); + } + + unreachable!() + } +} + +impl Prover for LocalProver { + fn id(&self) -> ProverType { + ProverType::Cpu + } + + fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey) { + self.prover.setup(elf) + } + + fn sp1_prover(&self) -> &SP1Prover { + &self.prover + } + + fn prove<'a>( + &'a self, + pk: &SP1ProvingKey, + stdin: SP1Stdin, + kind: SP1ProofKind, + ) -> Result { + self.prove_impl(pk, stdin, ProofOpts::default(), SP1Context::default(), kind) + } +} + +impl Default for LocalProver { + fn default() -> Self { + Self::new() + } +} diff --git a/crates/sdk/src/provers/simple.rs b/crates/sdk/src/provers/env.rs similarity index 80% rename from crates/sdk/src/provers/simple.rs rename to crates/sdk/src/provers/env.rs index 9ea4ef7273..5bdc57fc65 100644 --- a/crates/sdk/src/provers/simple.rs +++ b/crates/sdk/src/provers/env.rs @@ -1,4 +1,7 @@ +use std::env; + use anyhow::Result; +use cfg_if::cfg_if; use sp1_core_executor::ExecutionReport; use sp1_core_machine::io::SP1Stdin; use sp1_primitives::io::SP1PublicValues; @@ -6,15 +9,49 @@ use sp1_prover::{components::DefaultProverComponents, SP1Prover, SP1ProvingKey, use crate::{SP1ProofKind, SP1ProofWithPublicValues}; -use super::{Prover, ProverType, SP1VerificationError}; +use super::{LocalProver, Prover, ProverType, SP1VerificationError}; /// A simple prover that allows executing programs and generating proofs. The actual implementation -pub struct SimpleProver { +pub struct EnvProver { /// The underlying prover implementation. pub prover: Box>, } -impl SimpleProver { +impl EnvProver { + pub fn new() -> Self { + let mode = env::var("SP1_PROVER").unwrap_or_else(|_| "local".to_string()); + + let prover: Box> = match mode.as_str() { + "local" => Box::new(LocalProver::new(false)), + "cuda" => { + cfg_if! { + if #[cfg(feature = "cuda")] { + Box::new(CudaProver::new(SP1Prover::new())) + } else { + panic!("cuda sp1-sdk feature is not enabled") + } + } + } + "network" => { + let rpc_url = env::var("PROVER_NETWORK_RPC").ok(); + let private_key = env::var("SP1_PRIVATE_KEY").expect("SP1_PRIVATE_KEY must be set"); + + cfg_if! { + if #[cfg(feature = "network-v2")] { + Box::new(crate::NetworkProverV2::new(&private_key, rpc_url)) + } else if #[cfg(feature = "network")] { + Box::new(crate::NetworkProverV1::new(&private_key, rpc_url)) + } else { + panic!("network sp1-sdk feature is not enabled") + } + } + } + "mock" => Box::new(LocalProver::new(true)), + _ => panic!("invalid SP1_PROVER value"), + }; + EnvProver { prover } + } + /// Execute the given program on the given input (without generating a proof). Returns the /// public values and execution report of the program after it has been executed. /// @@ -120,7 +157,7 @@ impl SimpleProver { } } -impl Prover for SimpleProver { +impl Prover for EnvProver { fn id(&self) -> ProverType { self.prover.id() } diff --git a/crates/sdk/src/provers/cpu.rs b/crates/sdk/src/provers/local.rs similarity index 98% rename from crates/sdk/src/provers/cpu.rs rename to crates/sdk/src/provers/local.rs index f594fae6ee..5ab1947075 100644 --- a/crates/sdk/src/provers/cpu.rs +++ b/crates/sdk/src/provers/local.rs @@ -22,19 +22,19 @@ use super::verify_proof; use super::{ProverType, SP1VerificationError}; /// An implementation of [crate::Prover] that can generate end-to-end proofs locally. -pub struct CpuProver { +pub struct LocalProver { prover: SP1Prover, mock: bool, } -impl CpuProver { - /// Creates a new [CpuProver]. +impl LocalProver { + /// Creates a new [LocalProver]. pub fn new(mock: bool) -> Self { let prover = SP1Prover::new(); Self { prover, mock } } - /// Creates a new [CpuProver] from an existing [SP1Prover]. + /// Creates a new [LocalProver] from an existing [SP1Prover]. pub fn from_prover(prover: SP1Prover) -> Self { Self { prover, mock: false } } @@ -256,7 +256,7 @@ impl CpuProver { } } -impl Prover for CpuProver { +impl Prover for LocalProver { fn id(&self) -> ProverType { ProverType::Cpu } @@ -291,7 +291,7 @@ impl Prover for CpuProver { } } -impl Default for CpuProver { +impl Default for LocalProver { fn default() -> Self { Self::new(false) } @@ -300,7 +300,7 @@ impl Default for CpuProver { /// Builder to prepare and configure proving execution of a program on an input. /// May be run with [Self::run]. pub struct CpuProve<'a> { - prover: &'a CpuProver, + prover: &'a LocalProver, kind: SP1ProofKind, context_builder: SP1ContextBuilder<'a>, pk: &'a SP1ProvingKey, diff --git a/crates/sdk/src/provers/mod.rs b/crates/sdk/src/provers/mod.rs index b605263ceb..c091d50d5d 100644 --- a/crates/sdk/src/provers/mod.rs +++ b/crates/sdk/src/provers/mod.rs @@ -1,14 +1,12 @@ -mod cpu; #[cfg(feature = "cuda")] mod cuda; -mod mock; -mod simple; +mod env; +mod local; -pub use cpu::CpuProver; #[cfg(feature = "cuda")] pub use cuda::CudaProver; -pub use mock::MockProver; -pub use simple::SimpleProver; +pub use env::EnvProver; +pub use local::LocalProver; use itertools::Itertools; use p3_field::PrimeField32; From 7df7f1d79345cad33e38d5f75745380d24f5a9d3 Mon Sep 17 00:00:00 2001 From: Chris Tian Date: Tue, 17 Dec 2024 16:59:05 -0800 Subject: [PATCH 16/36] cleanup --- crates/sdk/src/lib.rs | 85 ++++------ crates/sdk/src/network-v2/prover.rs | 6 +- crates/sdk/src/network/prover.rs | 6 +- crates/sdk/src/provers/cpu/builder.rs | 226 -------------------------- crates/sdk/src/provers/cpu/mod.rs | 203 ----------------------- crates/sdk/src/provers/env.rs | 14 +- crates/sdk/src/provers/local.rs | 23 +-- crates/sdk/src/provers/mod.rs | 2 +- crates/sdk/src/util.rs | 20 +++ 9 files changed, 76 insertions(+), 509 deletions(-) delete mode 100644 crates/sdk/src/provers/cpu/builder.rs delete mode 100644 crates/sdk/src/provers/cpu/mod.rs diff --git a/crates/sdk/src/lib.rs b/crates/sdk/src/lib.rs index a2fc58b84d..d9d64dac69 100644 --- a/crates/sdk/src/lib.rs +++ b/crates/sdk/src/lib.rs @@ -32,11 +32,10 @@ pub use proof::*; use provers::EnvProver; pub use provers::SP1VerificationError; use std::env; +pub use util::block_on; #[cfg(any(feature = "network", feature = "network-v2"))] -use {std::future::Future, tokio::task::block_in_place}; - -pub use provers::{LocalProver, Prover}; +pub use provers::{CpuProver, Prover}; pub use sp1_build::include_elf; pub use sp1_core_executor::{ExecutionReport, HookEnv, SP1Context, SP1ContextBuilder}; @@ -64,10 +63,6 @@ impl ProverClient { Self::env() } - pub fn builder() -> ProverClientBuilder { - ProverClientBuilder::default() - } - /// Gets the current version of the SP1 zkVM. /// /// Note: This is not the same as the version of the SP1 SDK. @@ -75,14 +70,25 @@ impl ProverClient { SP1_CIRCUIT_VERSION.to_string() } - /// Builds a [EnvProver], filling in the mode and any unset fields with values from the env. + /// Builds an [EnvProver], which loads the mode and any settings from the environment. + /// + /// # Usage + /// ```no_run + /// use sp1_sdk::ProverClient; + /// + /// std::env::set_var("SP1_PROVER", "network"); + /// std::env::set_var("SP1_PRIVATE_KEY", "..."); + /// let prover = ProverClient::env(); + /// let (pk, vk) = prover.setup(elf); + /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); + /// ``` pub fn env() -> EnvProver { EnvProver::new() } - /// Builds a [LocalProver] specifically for local CPU proving. - pub fn local() -> LocalProver { - LocalProver::new(false) + /// Builds a [CpuProver] specifically for local CPU proving. + pub fn cpu() -> CpuProver { + CpuProver::new(false) } /// Builds a [CudaProver] specifically for local NVIDIA GPU proving. @@ -97,49 +103,23 @@ impl ProverClient { NetworkProverBuilder::new() } - /// Builds a [LocalProver] specifically for mock proving. - pub fn mock() -> LocalProver { - LocalProver::new(true) + /// Builds a [CpuProver] specifically for mock proving. + pub fn mock() -> CpuProver { + CpuProver::new(true) } } -/// Builder type for [`ProverClient`]. -#[derive(Debug, Default)] -pub struct ProverClientBuilder { - private_key: Option, - rpc_url: Option, -} - -impl ProverClientBuilder { - /// Sets the private key. Only used for network prover. - pub fn private_key(mut self, private_key: String) -> Self { - self.private_key = Some(private_key); - self - } - - /// Sets the RPC URL. Only used for network prover. - pub fn rpc_url(mut self, rpc_url: String) -> Self { - self.rpc_url = Some(rpc_url); - self - } -} - -/// Utility method for blocking on an async function. +/// A builder for [`NetworkProver`]. /// -/// If we're already in a tokio runtime, we'll block in place. Otherwise, we'll create a new -/// runtime. -#[cfg(any(feature = "network", feature = "network-v2"))] -pub fn block_on(fut: impl Future) -> T { - // Handle case if we're already in an tokio runtime. - if let Ok(handle) = tokio::runtime::Handle::try_current() { - block_in_place(|| handle.block_on(fut)) - } else { - // Otherwise create a new runtime. - let rt = tokio::runtime::Runtime::new().expect("Failed to create a new runtime"); - rt.block_on(fut) - } -} - +/// This builder is obtained via [`ProverClient::network()`] and allows setting +/// network-specific proving options like RPC URL and private key. +/// +/// # Example +/// ``` +/// let prover = ProverClient::network() +/// .private_key("my_private_key") +/// .build(); +/// ``` #[cfg(any(feature = "network", feature = "network-v2"))] pub struct NetworkProverBuilder { private_key: Option, @@ -152,18 +132,19 @@ impl NetworkProverBuilder { Self { private_key: None, rpc_url: None } } - /// Sets the private key. Only used for network prover. + /// Sets the private key. pub fn private_key(mut self, private_key: String) -> Self { self.private_key = Some(private_key); self } - /// Sets the RPC URL. Only used for network prover. + /// Sets the RPC URL. pub fn rpc_url(mut self, rpc_url: String) -> Self { self.rpc_url = Some(rpc_url); self } + /// Builds a [NetworkProver]. pub fn build(self) -> NetworkProver { let private_key = self.private_key.unwrap_or_else(|| { env::var("SP1_PRIVATE_KEY").expect("Private key must be provided through `NetworkProverBuilder::private_key` or the SP1_PRIVATE_KEY environment variable.") diff --git a/crates/sdk/src/network-v2/prover.rs b/crates/sdk/src/network-v2/prover.rs index fed7ab8a80..00d70456f1 100644 --- a/crates/sdk/src/network-v2/prover.rs +++ b/crates/sdk/src/network-v2/prover.rs @@ -1,7 +1,7 @@ use std::time::{Duration, Instant}; use crate::network_v2::client::DEFAULT_PROVER_NETWORK_RPC; -use crate::provers::{LocalProver, ProverType}; +use crate::provers::{CpuProver, ProverType}; use crate::util::dump_proof_input; use crate::{ network_v2::client::NetworkClient, @@ -27,7 +27,7 @@ const DEFAULT_CYCLE_LIMIT: u64 = 100_000_000; /// An implementation of [crate::ProverClient] that can generate proofs on a remote RPC server. pub struct NetworkProver { client: NetworkClient, - local_prover: LocalProver, + local_prover: CpuProver, strategy: FulfillmentStrategy, } @@ -36,7 +36,7 @@ impl NetworkProver { pub fn new(private_key: &str, rpc_url: Option) -> Self { let version = SP1_CIRCUIT_VERSION; log::info!("Client circuit version: {}", version); - let local_prover = LocalProver::new(false); + let local_prover = CpuProver::new(false); let client = NetworkClient::new(private_key, rpc_url); Self { client, local_prover, strategy: FulfillmentStrategy::Hosted } } diff --git a/crates/sdk/src/network/prover.rs b/crates/sdk/src/network/prover.rs index 0faa16b236..4d9044f438 100644 --- a/crates/sdk/src/network/prover.rs +++ b/crates/sdk/src/network/prover.rs @@ -1,7 +1,7 @@ use std::time::{Duration, Instant}; use super::proto::network::GetProofStatusResponse; -use crate::provers::{LocalProver, ProverType}; +use crate::provers::{CpuProver, ProverType}; use crate::util::dump_proof_input; use crate::{ network::{ @@ -21,7 +21,7 @@ const MAX_CONSECUTIVE_ERRORS: usize = 10; /// An implementation of [crate::ProverClient] that can generate proofs on a remote RPC server. pub struct NetworkProver { client: NetworkClient, - local_prover: LocalProver, + local_prover: CpuProver, } impl NetworkProver { @@ -30,7 +30,7 @@ impl NetworkProver { let version = SP1_CIRCUIT_VERSION; log::info!("Client circuit version: {}", version); - let local_prover = LocalProver::new(false); + let local_prover = CpuProver::new(false); Self { client: NetworkClient::new(private_key, rpc_url), local_prover } } diff --git a/crates/sdk/src/provers/cpu/builder.rs b/crates/sdk/src/provers/cpu/builder.rs deleted file mode 100644 index b33024c060..0000000000 --- a/crates/sdk/src/provers/cpu/builder.rs +++ /dev/null @@ -1,226 +0,0 @@ -use sp1_core_executor::{ExecutionReport, HookEnv, SP1ContextBuilder}; -use sp1_core_machine::io::SP1Stdin; -use sp1_primitives::io::SP1PublicValues; -use sp1_prover::SP1ProvingKey; - -use anyhow::{Ok, Result}; -use sp1_stark::{SP1CoreOpts, SP1ProverOpts}; -use std::time::Duration; - -use crate::{provers::ProofOpts, Prover, SP1ProofKind, SP1ProofWithPublicValues}; - -use super::LocalProver; - -/// Builder to prepare and configure execution of a program on an input. -/// May be run with [Self::run]. -pub struct Execute<'a> { - prover: &'a LocalProver, - context_builder: SP1ContextBuilder<'a>, - elf: &'a [u8], - stdin: SP1Stdin, -} - -impl<'a> Execute<'a> { - /// Prepare to execute the given program on the given input (without generating a proof). - /// - /// Prefer using [ProverClient::execute](super::ProverClient::execute). - /// See there for more documentation. - pub fn new(prover: &'a LocalProver, elf: &'a [u8], stdin: SP1Stdin) -> Self { - Self { prover, elf, stdin, context_builder: Default::default() } - } - - /// Execute the program on the input, consuming the built action `self`. - pub fn run(self) -> Result<(SP1PublicValues, ExecutionReport)> { - let Self { prover, elf, stdin, mut context_builder } = self; - let context = context_builder.build(); - Ok(prover.sp1_prover().execute(elf, &stdin, context)?) - } - - /// Add a runtime [Hook](super::Hook) into the context. - /// - /// Hooks may be invoked from within SP1 by writing to the specified file descriptor `fd` - /// with [`sp1_zkvm::io::write`], returning a list of arbitrary data that may be read - /// with successive calls to [`sp1_zkvm::io::read`]. - pub fn with_hook( - mut self, - fd: u32, - f: impl FnMut(HookEnv, &[u8]) -> Vec> + Send + Sync + 'a, - ) -> Self { - self.context_builder.hook(fd, f); - self - } - - /// Avoid registering the default hooks in the runtime. - /// - /// It is not necessary to call this to override hooks --- instead, simply - /// register a hook with the same value of `fd` by calling [`Self::with_hook`]. - pub fn without_default_hooks(mut self) -> Self { - self.context_builder.without_default_hooks(); - self - } - - /// Set the maximum number of cpu cycles to use for execution. - /// - /// If the cycle limit is exceeded, execution will return - /// [`sp1_core_executor::ExecutionError::ExceededCycleLimit`]. - pub fn max_cycles(mut self, max_cycles: u64) -> Self { - self.context_builder.max_cycles(max_cycles); - self - } - - /// Skip deferred proof verification. - pub fn set_skip_deferred_proof_verification(mut self, value: bool) -> Self { - self.context_builder.set_skip_deferred_proof_verification(value); - self - } -} - -/// Builder to prepare and configure proving execution of a program on an input. -/// May be run with [Self::run]. -pub struct Prove<'a> { - prover: &'a LocalProver, - kind: SP1ProofKind, - context_builder: SP1ContextBuilder<'a>, - pk: &'a SP1ProvingKey, - stdin: SP1Stdin, - core_opts: SP1CoreOpts, - recursion_opts: SP1CoreOpts, - timeout: Option, -} - -impl<'a> Prove<'a> { - /// Prepare to prove the execution of the given program with the given input. - /// - /// Prefer using [ProverClient::prove](super::ProverClient::prove). - /// See there for more documentation. - pub fn new(prover: &'a LocalProver, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> Self { - Self { - prover, - kind: Default::default(), - pk, - stdin, - context_builder: Default::default(), - core_opts: SP1CoreOpts::default(), - recursion_opts: SP1CoreOpts::recursion(), - timeout: None, - } - } - - /// Prove the execution of the program on the input, consuming the built action `self`. - pub fn run(self) -> Result { - let Self { - prover, - kind, - pk, - stdin, - mut context_builder, - core_opts, - recursion_opts, - timeout, - } = self; - let opts = SP1ProverOpts { core_opts, recursion_opts }; - let proof_opts = ProofOpts { sp1_prover_opts: opts, timeout }; - let context = context_builder.build(); - - // Dump the program and stdin to files for debugging if `SP1_DUMP` is set. - if std::env::var("SP1_DUMP") - .map(|v| v == "1" || v.to_lowercase() == "true") - .unwrap_or(false) - { - let program = pk.elf.clone(); - std::fs::write("program.bin", program).unwrap(); - let stdin = bincode::serialize(&stdin).unwrap(); - std::fs::write("stdin.bin", stdin.clone()).unwrap(); - } - - prover.prove_impl(pk, stdin, proof_opts, context, kind) - } - - /// Set the proof kind to the core mode. This is the default. - pub fn core(mut self) -> Self { - self.kind = SP1ProofKind::Core; - self - } - - /// Set the proof kind to the compressed mode. - pub fn compressed(mut self) -> Self { - self.kind = SP1ProofKind::Compressed; - self - } - - /// Set the proof mode to the plonk bn254 mode. - pub fn plonk(mut self) -> Self { - self.kind = SP1ProofKind::Plonk; - self - } - - /// Set the proof mode to the groth16 bn254 mode. - pub fn groth16(mut self) -> Self { - self.kind = SP1ProofKind::Groth16; - self - } - - /// Add a runtime [Hook](super::Hook) into the context. - /// - /// Hooks may be invoked from within SP1 by writing to the specified file descriptor `fd` - /// with [`sp1_zkvm::io::write`], returning a list of arbitrary data that may be read - /// with successive calls to [`sp1_zkvm::io::read`]. - pub fn with_hook( - mut self, - fd: u32, - f: impl FnMut(HookEnv, &[u8]) -> Vec> + Send + Sync + 'a, - ) -> Self { - self.context_builder.hook(fd, f); - self - } - - /// Avoid registering the default hooks in the runtime. - /// - /// It is not necessary to call this to override hooks --- instead, simply - /// register a hook with the same value of `fd` by calling [`Self::with_hook`]. - pub fn without_default_hooks(mut self) -> Self { - self.context_builder.without_default_hooks(); - self - } - - /// Set the shard size for proving. - pub fn shard_size(mut self, value: usize) -> Self { - self.core_opts.shard_size = value; - self - } - - /// Set the shard batch size for proving. - pub fn shard_batch_size(mut self, value: usize) -> Self { - self.core_opts.shard_batch_size = value; - self - } - - /// Set whether we should reconstruct commitments while proving. - pub fn reconstruct_commitments(mut self, value: bool) -> Self { - self.core_opts.reconstruct_commitments = value; - self - } - - /// Set the maximum number of cpu cycles to use for execution. - /// - /// If the cycle limit is exceeded, execution will return - /// [`sp1_core_executor::ExecutionError::ExceededCycleLimit`]. - pub fn cycle_limit(mut self, cycle_limit: u64) -> Self { - self.context_builder.max_cycles(cycle_limit); - self - } - - /// Set the timeout for the proof's generation. - /// - /// This parameter is only used when the prover is run in network mode. - pub fn timeout(mut self, timeout: Duration) -> Self { - self.timeout = Some(timeout); - self - } - - /// Set the skip deferred proof verification flag. - pub fn set_skip_deferred_proof_verification(mut self, value: bool) -> Self { - self.context_builder.set_skip_deferred_proof_verification(value); - self - } -} diff --git a/crates/sdk/src/provers/cpu/mod.rs b/crates/sdk/src/provers/cpu/mod.rs deleted file mode 100644 index bc5ca4cc80..0000000000 --- a/crates/sdk/src/provers/cpu/mod.rs +++ /dev/null @@ -1,203 +0,0 @@ -use anyhow::Result; -use sp1_core_executor::SP1Context; -use sp1_core_machine::io::SP1Stdin; -use sp1_prover::{components::DefaultProverComponents, SP1Prover}; - -use crate::install::try_install_circuit_artifacts; -use crate::{ - provers::ProofOpts, Prover, SP1Proof, SP1ProofKind, SP1ProofWithPublicValues, SP1ProvingKey, - SP1VerifyingKey, -}; - -pub mod builder; - -use super::ProverType; - -/// An implementation of [crate::ProverClient] that can generate end-to-end proofs locally. -pub struct LocalProver { - prover: SP1Prover, -} - -impl LocalProver { - /// Creates a new [LocalProver]. - pub fn new() -> Self { - let prover = SP1Prover::new(); - Self { prover } - } - - /// Creates a new [LocalProver] from an existing [SP1Prover]. - pub fn from_prover(prover: SP1Prover) -> Self { - Self { prover } - } - - /// Prepare to execute the given program on the given input (without generating a proof). - /// The returned [builder::Execute] may be configured via its methods before running. - /// For example, calling [builder::Execute::with_hook] registers hooks for execution. - /// - /// To execute, call [builder::Execute::run], which returns - /// the public values and execution report of the program after it has been executed. - /// - /// ### Examples - /// ```no_run - /// use sp1_sdk::{ProverClient, SP1Context, SP1Stdin}; - /// - /// // Load the program. - /// let elf = test_artifacts::FIBONACCI_ELF; - /// - /// // Initialize the prover client. - /// let client = ProverClient::new(); - /// - /// // Setup the inputs. - /// let mut stdin = SP1Stdin::new(); - /// stdin.write(&10usize); - /// - /// // Execute the program on the inputs. - /// let (public_values, report) = client.execute(elf, stdin).run().unwrap(); - /// ``` - pub fn execute<'a>(&'a self, elf: &'a [u8], stdin: SP1Stdin) -> builder::Execute<'a> { - builder::Execute::new(self, elf, stdin) - } - - /// Prepare to prove the execution of the given program with the given input in the default - /// mode. The returned [builder::Prove] may be configured via its methods before running. - /// For example, calling [builder::Prove::compressed] sets the mode to compressed mode. - /// - /// To prove, call [builder::Prove::run], which returns a proof of the program's execution. - /// By default the proof generated will not be compressed to constant size. - /// To create a more succinct proof, use the [builder::Prove::compressed], - /// [builder::Prove::plonk], or [builder::Prove::groth16] methods. - /// - /// ### Examples - /// ```no_run - /// use sp1_sdk::{ProverClient, SP1Context, SP1Stdin}; - /// - /// // Load the program. - /// let elf = test_artifacts::FIBONACCI_ELF; - /// - /// // Initialize the prover client. - /// let client = ProverClient::new(); - /// - /// // Setup the program. - /// let (pk, vk) = client.setup(elf); - /// - /// // Setup the inputs. - /// let mut stdin = SP1Stdin::new(); - /// stdin.write(&10usize); - /// - /// // Generate the proof. - /// let proof = client.prove(&pk, stdin).run().unwrap(); - /// ``` - pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> builder::Prove<'a> { - builder::Prove::new(self, pk, stdin) - } - - pub(crate) fn prove_impl<'a>( - &'a self, - pk: &SP1ProvingKey, - stdin: SP1Stdin, - opts: ProofOpts, - context: SP1Context<'a>, - kind: SP1ProofKind, - ) -> Result { - // Generate the core proof. - let proof: sp1_prover::SP1ProofWithMetadata = - self.prover.prove_core(pk, &stdin, opts.sp1_prover_opts, context)?; - if kind == SP1ProofKind::Core { - return Ok(SP1ProofWithPublicValues { - proof: SP1Proof::Core(proof.proof.0), - stdin: proof.stdin, - public_values: proof.public_values, - sp1_version: self.version().to_string(), - }); - } - - let deferred_proofs = - stdin.proofs.iter().map(|(reduce_proof, _)| reduce_proof.clone()).collect(); - let public_values = proof.public_values.clone(); - - // Generate the compressed proof. - let reduce_proof = - self.prover.compress(&pk.vk, proof, deferred_proofs, opts.sp1_prover_opts)?; - if kind == SP1ProofKind::Compressed { - return Ok(SP1ProofWithPublicValues { - proof: SP1Proof::Compressed(Box::new(reduce_proof)), - stdin, - public_values, - sp1_version: self.version().to_string(), - }); - } - - // Generate the shrink proof. - let compress_proof = self.prover.shrink(reduce_proof, opts.sp1_prover_opts)?; - - // Genenerate the wrap proof. - let outer_proof = self.prover.wrap_bn254(compress_proof, opts.sp1_prover_opts)?; - - if kind == SP1ProofKind::Plonk { - let plonk_bn254_artifacts = if sp1_prover::build::sp1_dev_mode() { - sp1_prover::build::try_build_plonk_bn254_artifacts_dev( - &outer_proof.vk, - &outer_proof.proof, - ) - } else { - try_install_circuit_artifacts("plonk") - }; - let proof = self.prover.wrap_plonk_bn254(outer_proof, &plonk_bn254_artifacts); - - return Ok(SP1ProofWithPublicValues { - proof: SP1Proof::Plonk(proof), - stdin, - public_values, - sp1_version: self.version().to_string(), - }); - } else if kind == SP1ProofKind::Groth16 { - let groth16_bn254_artifacts = if sp1_prover::build::sp1_dev_mode() { - sp1_prover::build::try_build_groth16_bn254_artifacts_dev( - &outer_proof.vk, - &outer_proof.proof, - ) - } else { - try_install_circuit_artifacts("groth16") - }; - - let proof = self.prover.wrap_groth16_bn254(outer_proof, &groth16_bn254_artifacts); - return Ok(SP1ProofWithPublicValues { - proof: SP1Proof::Groth16(proof), - stdin, - public_values, - sp1_version: self.version().to_string(), - }); - } - - unreachable!() - } -} - -impl Prover for LocalProver { - fn id(&self) -> ProverType { - ProverType::Cpu - } - - fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey) { - self.prover.setup(elf) - } - - fn sp1_prover(&self) -> &SP1Prover { - &self.prover - } - - fn prove<'a>( - &'a self, - pk: &SP1ProvingKey, - stdin: SP1Stdin, - kind: SP1ProofKind, - ) -> Result { - self.prove_impl(pk, stdin, ProofOpts::default(), SP1Context::default(), kind) - } -} - -impl Default for LocalProver { - fn default() -> Self { - Self::new() - } -} diff --git a/crates/sdk/src/provers/env.rs b/crates/sdk/src/provers/env.rs index 5bdc57fc65..39c32f60bc 100644 --- a/crates/sdk/src/provers/env.rs +++ b/crates/sdk/src/provers/env.rs @@ -9,7 +9,7 @@ use sp1_prover::{components::DefaultProverComponents, SP1Prover, SP1ProvingKey, use crate::{SP1ProofKind, SP1ProofWithPublicValues}; -use super::{LocalProver, Prover, ProverType, SP1VerificationError}; +use super::{CpuProver, Prover, ProverType, SP1VerificationError}; /// A simple prover that allows executing programs and generating proofs. The actual implementation pub struct EnvProver { @@ -22,7 +22,7 @@ impl EnvProver { let mode = env::var("SP1_PROVER").unwrap_or_else(|_| "local".to_string()); let prover: Box> = match mode.as_str() { - "local" => Box::new(LocalProver::new(false)), + "local" => Box::new(CpuProver::new(false)), "cuda" => { cfg_if! { if #[cfg(feature = "cuda")] { @@ -46,7 +46,7 @@ impl EnvProver { } } } - "mock" => Box::new(LocalProver::new(true)), + "mock" => Box::new(CpuProver::new(true)), _ => panic!("invalid SP1_PROVER value"), }; EnvProver { prover } @@ -109,8 +109,8 @@ impl EnvProver { /// // Generate the proof. /// let proof = client.prove(&pk, stdin).run().unwrap(); /// ``` - pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> SimpleProve<'a> { - SimpleProve::new(self.prover.as_ref(), pk, stdin) + pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> EnvProve<'a> { + EnvProve::new(self.prover.as_ref(), pk, stdin) } /// Verifies that the given proof is valid and matches the given verification key produced by @@ -182,14 +182,14 @@ impl Prover for EnvProver { /// Builder to prepare and configure proving execution of a program on an input. /// May be run with [Self::run]. -pub struct SimpleProve<'a> { +pub struct EnvProve<'a> { prover: &'a dyn Prover, kind: SP1ProofKind, pk: &'a SP1ProvingKey, stdin: SP1Stdin, } -impl<'a> SimpleProve<'a> { +impl<'a> EnvProve<'a> { fn new( prover: &'a dyn Prover, pk: &'a SP1ProvingKey, diff --git a/crates/sdk/src/provers/local.rs b/crates/sdk/src/provers/local.rs index 5ab1947075..bc11d3cd55 100644 --- a/crates/sdk/src/provers/local.rs +++ b/crates/sdk/src/provers/local.rs @@ -22,19 +22,19 @@ use super::verify_proof; use super::{ProverType, SP1VerificationError}; /// An implementation of [crate::Prover] that can generate end-to-end proofs locally. -pub struct LocalProver { +pub struct CpuProver { prover: SP1Prover, mock: bool, } -impl LocalProver { - /// Creates a new [LocalProver]. +impl CpuProver { + /// Creates a new [CpuProver]. pub fn new(mock: bool) -> Self { let prover = SP1Prover::new(); Self { prover, mock } } - /// Creates a new [LocalProver] from an existing [SP1Prover]. + /// Creates a new [CpuProver] from an existing [SP1Prover]. pub fn from_prover(prover: SP1Prover) -> Self { Self { prover, mock: false } } @@ -124,15 +124,10 @@ impl LocalProver { unreachable!() } - pub fn prove<'a>( - &'a self, - pk: &'a SP1ProvingKey, - stdin: SP1Stdin, - kind: SP1ProofKind, - ) -> CpuProve<'a> { + pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> CpuProve<'a> { CpuProve { prover: self, - kind, + kind: SP1ProofKind::Core, pk, stdin, context_builder: Default::default(), @@ -256,7 +251,7 @@ impl LocalProver { } } -impl Prover for LocalProver { +impl Prover for CpuProver { fn id(&self) -> ProverType { ProverType::Cpu } @@ -291,7 +286,7 @@ impl Prover for LocalProver { } } -impl Default for LocalProver { +impl Default for CpuProver { fn default() -> Self { Self::new(false) } @@ -300,7 +295,7 @@ impl Default for LocalProver { /// Builder to prepare and configure proving execution of a program on an input. /// May be run with [Self::run]. pub struct CpuProve<'a> { - prover: &'a LocalProver, + prover: &'a CpuProver, kind: SP1ProofKind, context_builder: SP1ContextBuilder<'a>, pk: &'a SP1ProvingKey, diff --git a/crates/sdk/src/provers/mod.rs b/crates/sdk/src/provers/mod.rs index c091d50d5d..68398220f5 100644 --- a/crates/sdk/src/provers/mod.rs +++ b/crates/sdk/src/provers/mod.rs @@ -6,7 +6,7 @@ mod local; #[cfg(feature = "cuda")] pub use cuda::CudaProver; pub use env::EnvProver; -pub use local::LocalProver; +pub use local::CpuProver; use itertools::Itertools; use p3_field::PrimeField32; diff --git a/crates/sdk/src/util.rs b/crates/sdk/src/util.rs index c3f3c454e2..efa580058b 100644 --- a/crates/sdk/src/util.rs +++ b/crates/sdk/src/util.rs @@ -1,4 +1,6 @@ use sp1_core_machine::io::SP1Stdin; +#[cfg(any(feature = "network", feature = "network-v2"))] +use std::future::Future; /// Dump the program and stdin to files for debugging if `SP1_DUMP` is set. pub(crate) fn dump_proof_input(elf: &[u8], stdin: &SP1Stdin) { @@ -8,3 +10,21 @@ pub(crate) fn dump_proof_input(elf: &[u8], stdin: &SP1Stdin) { std::fs::write("stdin.bin", stdin.clone()).unwrap(); } } + +/// Utility method for blocking on an async function. +/// +/// If we're already in a tokio runtime, we'll block in place. Otherwise, we'll create a new +/// runtime. +#[cfg(any(feature = "network", feature = "network-v2"))] +pub fn block_on(fut: impl Future) -> T { + use tokio::task::block_in_place; + + // Handle case if we're already in an tokio runtime. + if let Ok(handle) = tokio::runtime::Handle::try_current() { + block_in_place(|| handle.block_on(fut)) + } else { + // Otherwise create a new runtime. + let rt = tokio::runtime::Runtime::new().expect("Failed to create a new runtime"); + rt.block_on(fut) + } +} From 6bee15228382cfa8e8bf1602656917995c1989c3 Mon Sep 17 00:00:00 2001 From: Chris Tian Date: Tue, 17 Dec 2024 19:03:16 -0800 Subject: [PATCH 17/36] clippy --- crates/cli/src/commands/vkey.rs | 2 +- crates/perf/src/main.rs | 24 +++--- crates/sdk/src/lib.rs | 31 +++++++- crates/sdk/src/network-v2/prover.rs | 32 +++++--- crates/sdk/src/network/prover.rs | 31 ++++++-- crates/sdk/src/provers/cuda.rs | 83 ++++++++++++++++---- crates/sdk/src/provers/env.rs | 75 ++++++------------ crates/sdk/src/provers/local.rs | 113 +++++++++++++++++++++------- crates/sdk/src/provers/mod.rs | 17 ++++- 9 files changed, 286 insertions(+), 122 deletions(-) diff --git a/crates/cli/src/commands/vkey.rs b/crates/cli/src/commands/vkey.rs index 734b470970..0abf3c2fea 100644 --- a/crates/cli/src/commands/vkey.rs +++ b/crates/cli/src/commands/vkey.rs @@ -48,7 +48,7 @@ impl VkeyCmd { file.read_to_end(&mut elf)?; // Get the verification key - let prover = ProverClient::new(); + let prover = ProverClient::env(); let (_, vk) = prover.setup(&elf); // Print the verification key hash diff --git a/crates/perf/src/main.rs b/crates/perf/src/main.rs index 31a34c52ed..70d1cba1e1 100644 --- a/crates/perf/src/main.rs +++ b/crates/perf/src/main.rs @@ -7,7 +7,7 @@ use clap::{command, Parser}; use sp1_cuda::SP1CudaProver; use sp1_prover::HashableKey; use sp1_prover::{components::DefaultProverComponents, ProverMode}; -use sp1_sdk::{self, ProverClient, SP1Context, SP1Prover, SP1Stdin}; +use sp1_sdk::{self, Prover, ProverClient, SP1Context, SP1Prover, SP1Stdin}; use sp1_stark::SP1ProverOpts; use test_artifacts::VERIFY_PROOF_ELF; @@ -182,25 +182,29 @@ fn main() { let skip_simulation = env::var("SKIP_SIMULATION").map(|val| val == "true").unwrap_or_default(); - let mut prover_builder = ProverClient::builder().mode(ProverMode::Network); + let mut prover_builder = ProverClient::network(); if let Some(rpc_url) = rpc_url { prover_builder = prover_builder.rpc_url(rpc_url); } - if skip_simulation { - prover_builder = prover_builder.skip_simulation(); - } - let prover = prover_builder.private_key(private_key).build(); - let (_, _) = time_operation(|| prover.execute(&elf, stdin.clone())); + let (_, _) = time_operation(|| prover.execute(&elf, &stdin)); - let (proof, _) = - time_operation(|| prover.prove(&pk, stdin.clone()).groth16().run().unwrap()); + let (proof, _) = time_operation(|| { + prover + .prove(&pk, stdin.clone()) + .groth16() + .skip_simulation(skip_simulation) + .run() + .unwrap() + }); let (_, _) = time_operation(|| prover.verify(&proof, &vk)); - let (proof, _) = time_operation(|| prover.prove(&pk, stdin).plonk().run().unwrap()); + let (proof, _) = time_operation(|| { + prover.prove(&pk, stdin).plonk().skip_simulation(skip_simulation).run().unwrap() + }); let (_, _) = time_operation(|| prover.verify(&proof, &vk)); } diff --git a/crates/sdk/src/lib.rs b/crates/sdk/src/lib.rs index d9d64dac69..8c01d852ab 100644 --- a/crates/sdk/src/lib.rs +++ b/crates/sdk/src/lib.rs @@ -17,6 +17,8 @@ pub(crate) mod util; #[cfg(feature = "network")] pub use crate::network::prover::NetworkProver as NetworkProverV1; #[cfg(feature = "network-v2")] +pub use crate::network_v2::proto::network::FulfillmentStrategy; +#[cfg(feature = "network-v2")] pub use crate::network_v2::prover::NetworkProver as NetworkProverV2; #[cfg(feature = "cuda")] pub use crate::provers::CudaProver; @@ -59,6 +61,7 @@ cfg_if! { impl ProverClient { #[deprecated(since = "4.0.0", note = "use ProverClient::env() instead")] + #[allow(clippy::new_ret_no_self)] pub fn new() -> EnvProver { Self::env() } @@ -87,6 +90,15 @@ impl ProverClient { } /// Builds a [CpuProver] specifically for local CPU proving. + /// + /// # Usage + /// ```no_run + /// use sp1_sdk::ProverClient; + /// + /// let prover = ProverClient::cpu(); + /// let (pk, vk) = prover.setup(elf); + /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); + /// ``` pub fn cpu() -> CpuProver { CpuProver::new(false) } @@ -124,12 +136,19 @@ impl ProverClient { pub struct NetworkProverBuilder { private_key: Option, rpc_url: Option, + #[cfg(feature = "network-v2")] + strategy: FulfillmentStrategy, } #[cfg(any(feature = "network", feature = "network-v2"))] impl NetworkProverBuilder { pub(crate) fn new() -> Self { - Self { private_key: None, rpc_url: None } + Self { + private_key: None, + rpc_url: None, + #[cfg(feature = "network-v2")] + strategy: FulfillmentStrategy::Auction, + } } /// Sets the private key. @@ -144,6 +163,13 @@ impl NetworkProverBuilder { self } + /// Sets the fulfillment strategy for the client. By default, the strategy is set to `Hosted`. + #[cfg(feature = "network-v2")] + pub fn strategy(mut self, strategy: FulfillmentStrategy) -> Self { + self.strategy = strategy; + self + } + /// Builds a [NetworkProver]. pub fn build(self) -> NetworkProver { let private_key = self.private_key.unwrap_or_else(|| { @@ -156,9 +182,10 @@ impl NetworkProverBuilder { #[cfg(test)] mod tests { + use crate::CostEstimator; use sp1_primitives::io::SP1PublicValues; - use crate::{utils, CostEstimator, ProverClient, SP1Stdin}; + use crate::{utils, Prover, ProverClient, SP1Stdin}; #[test] fn test_execute() { diff --git a/crates/sdk/src/network-v2/prover.rs b/crates/sdk/src/network-v2/prover.rs index 00d70456f1..67f9a7cc45 100644 --- a/crates/sdk/src/network-v2/prover.rs +++ b/crates/sdk/src/network-v2/prover.rs @@ -41,9 +41,11 @@ impl NetworkProver { Self { client, local_prover, strategy: FulfillmentStrategy::Hosted } } - /// Sets the fulfillment strategy for the client. By default, the strategy is set to `Hosted`. - pub fn with_strategy(&mut self, strategy: FulfillmentStrategy) { - self.strategy = strategy; + /// Prepare to prove the execution of the given program with the given input in the default + /// mode. The returned [NetworkProve] may be configured via its methods before running. + /// For example, calling [NetworkProve::compressed] sets the mode to compressed mode. + pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> NetworkProve<'a> { + NetworkProve::new(self, pk, stdin) } /// Registers a program if it is not already registered. @@ -171,7 +173,7 @@ impl NetworkProver { } /// Requests a proof from the prover network and waits for it to be generated. - pub(crate) async fn prove( + pub(crate) async fn prove_impl( &self, pk: &SP1ProvingKey, stdin: SP1Stdin, @@ -199,13 +201,13 @@ impl Prover for NetworkProver { self.local_prover.sp1_prover() } - fn prove<'a>( - &'a self, + fn prove( + &self, pk: &SP1ProvingKey, stdin: SP1Stdin, kind: SP1ProofKind, ) -> Result { - block_on(self.prove(pk, stdin, kind.into(), None, false)) + block_on(self.prove_impl(pk, stdin, kind.into(), None, false)) } } @@ -310,13 +312,25 @@ pub struct NetworkProve<'a> { } impl<'a> NetworkProve<'a> { + fn new(prover: &'a NetworkProver, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> Self { + Self { prover, kind: Default::default(), pk, stdin, timeout: None, skip_simulation: false } + } + /// Prove the execution of the program on the input, consuming the built action `self`. - pub async fn run(self) -> Result { + pub fn run(self) -> Result { + let Self { prover, kind, pk, stdin, timeout, skip_simulation } = self; + + dump_proof_input(&pk.elf, &stdin); + + block_on(prover.prove_impl(pk, stdin, kind.into(), timeout, skip_simulation)) + } + + pub async fn run_async(self) -> Result { let Self { prover, kind, pk, stdin, timeout, skip_simulation } = self; dump_proof_input(&pk.elf, &stdin); - prover.prove(&pk, stdin, kind.into(), timeout, skip_simulation).await + prover.prove_impl(pk, stdin, kind.into(), timeout, skip_simulation).await } /// Set the proof kind to the core mode. This is the default. diff --git a/crates/sdk/src/network/prover.rs b/crates/sdk/src/network/prover.rs index 4d9044f438..84a6a2297f 100644 --- a/crates/sdk/src/network/prover.rs +++ b/crates/sdk/src/network/prover.rs @@ -34,6 +34,13 @@ impl NetworkProver { Self { client: NetworkClient::new(private_key, rpc_url), local_prover } } + /// Prepare to prove the execution of the given program with the given input in the default + /// mode. The returned [NetworkProve] may be configured via its methods before running. + /// For example, calling [NetworkProve::compressed] sets the mode to compressed mode. + pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> NetworkProve<'a> { + NetworkProve::new(self, pk, stdin) + } + /// Requests a proof from the prover network, returning the proof ID. pub(crate) async fn request_proof( &self, @@ -133,7 +140,7 @@ impl NetworkProver { } /// Requests a proof from the prover network and waits for it to be generated. - pub(crate) async fn prove( + pub(crate) async fn prove_impl( &self, elf: &[u8], stdin: SP1Stdin, @@ -159,13 +166,13 @@ impl Prover for NetworkProver { self.local_prover.sp1_prover() } - fn prove<'a>( - &'a self, + fn prove( + &self, pk: &SP1ProvingKey, stdin: SP1Stdin, kind: SP1ProofKind, ) -> Result { - block_on(self.prove(&pk.elf, stdin, kind.into(), None, false)) + block_on(self.prove_impl(&pk.elf, stdin, kind.into(), None, false)) } } @@ -192,13 +199,25 @@ pub struct NetworkProve<'a> { } impl<'a> NetworkProve<'a> { + fn new(prover: &'a NetworkProver, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> Self { + Self { prover, kind: Default::default(), pk, stdin, timeout: None, skip_simulation: false } + } + /// Prove the execution of the program on the input, consuming the built action `self`. - pub async fn run(self) -> Result { + pub async fn run_async(self) -> Result { + let Self { prover, kind, pk, stdin, timeout, skip_simulation } = self; + + dump_proof_input(&pk.elf, &stdin); + + prover.prove_impl(&pk.elf, stdin, kind.into(), timeout, skip_simulation).await + } + + pub fn run(self) -> Result { let Self { prover, kind, pk, stdin, timeout, skip_simulation } = self; dump_proof_input(&pk.elf, &stdin); - prover.prove(&pk.elf, stdin, kind.into(), timeout, skip_simulation).await + block_on(prover.prove_impl(&pk.elf, stdin, kind.into(), timeout, skip_simulation)) } /// Set the proof kind to the core mode. This is the default. diff --git a/crates/sdk/src/provers/cuda.rs b/crates/sdk/src/provers/cuda.rs index 5f8ab983aa..e2eaba569d 100644 --- a/crates/sdk/src/provers/cuda.rs +++ b/crates/sdk/src/provers/cuda.rs @@ -1,14 +1,13 @@ -use anyhow::Result; -use sp1_core_machine::io::SP1Stdin; -use sp1_cuda::SP1CudaProver; -use sp1_prover::{components::DefaultProverComponents, SP1Prover}; - use super::ProverType; use crate::install::try_install_circuit_artifacts; +use crate::util::dump_proof_input; use crate::{ - provers::ProofOpts, Prover, SP1Context, SP1Proof, SP1ProofKind, SP1ProofWithPublicValues, - SP1ProvingKey, SP1VerifyingKey, + Prover, SP1Proof, SP1ProofKind, SP1ProofWithPublicValues, SP1ProvingKey, SP1VerifyingKey, }; +use anyhow::Result; +use sp1_core_machine::io::SP1Stdin; +use sp1_cuda::SP1CudaProver; +use sp1_prover::{components::DefaultProverComponents, SP1Prover}; /// An implementation of [crate::ProverClient] that can generate proofs locally using CUDA. pub struct CudaProver { @@ -22,6 +21,13 @@ impl CudaProver { let cuda_prover = SP1CudaProver::new(); Self { prover, cuda_prover: cuda_prover.expect("Failed to initialize CUDA prover") } } + + /// Prepare to prove the execution of the given program with the given input in the default + /// mode. The returned [CudaProve] may be configured via its methods before running. + /// For example, calling [CudaProve::compressed] sets the mode to compressed mode. + pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> CudaProve<'a> { + CudaProve::new(self, pk, stdin) + } } impl Prover for CudaProver { @@ -37,16 +43,12 @@ impl Prover for CudaProver { &self.prover } - fn prove<'a>( - &'a self, + fn prove( + &self, pk: &SP1ProvingKey, stdin: SP1Stdin, - _opts: ProofOpts, - _context: SP1Context<'a>, kind: SP1ProofKind, ) -> Result { - tracing::warn!("opts and context are ignored for the cuda prover"); - // Generate the core proof. let proof = self.cuda_prover.prove_core(pk, &stdin)?; if kind == SP1ProofKind::Core { @@ -123,3 +125,58 @@ impl Default for CudaProver { Self::new(SP1Prover::new()) } } + +/// Builder to prepare and configure proving execution of a program on an input. +/// May be run with [Self::run]. +pub struct CudaProve<'a> { + prover: &'a CudaProver, + kind: SP1ProofKind, + pk: &'a SP1ProvingKey, + stdin: SP1Stdin, +} + +impl<'a> CudaProve<'a> { + fn new(prover: &'a CudaProver, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> Self { + Self { prover, kind: Default::default(), pk, stdin } + } + + /// Prove the execution of the program on the input, consuming the built action `self`. + pub fn run(self) -> Result { + let Self { prover, kind, pk, stdin } = self; + + // Dump the program and stdin to files for debugging if `SP1_DUMP` is set. + dump_proof_input(&pk.elf, &stdin); + + Prover::::prove(prover, pk, stdin, kind) + } + + /// Set the proof kind to the core mode. This is the default. + pub fn core(mut self) -> Self { + self.kind = SP1ProofKind::Core; + self + } + + /// Set the proof kind to the compressed mode. + pub fn compressed(mut self) -> Self { + self.kind = SP1ProofKind::Compressed; + self + } + + /// Set the proof mode to the plonk bn254 mode. + pub fn plonk(mut self) -> Self { + self.kind = SP1ProofKind::Plonk; + self + } + + /// Set the proof mode to the groth16 bn254 mode. + pub fn groth16(mut self) -> Self { + self.kind = SP1ProofKind::Groth16; + self + } + + /// Set the proof mode to the given mode. + pub fn mode(mut self, mode: SP1ProofKind) -> Self { + self.kind = mode; + self + } +} diff --git a/crates/sdk/src/provers/env.rs b/crates/sdk/src/provers/env.rs index 39c32f60bc..7caef17184 100644 --- a/crates/sdk/src/provers/env.rs +++ b/crates/sdk/src/provers/env.rs @@ -1,5 +1,7 @@ use std::env; +use crate::util::dump_proof_input; +use crate::{SP1ProofKind, SP1ProofWithPublicValues}; use anyhow::Result; use cfg_if::cfg_if; use sp1_core_executor::ExecutionReport; @@ -7,11 +9,12 @@ use sp1_core_machine::io::SP1Stdin; use sp1_primitives::io::SP1PublicValues; use sp1_prover::{components::DefaultProverComponents, SP1Prover, SP1ProvingKey, SP1VerifyingKey}; -use crate::{SP1ProofKind, SP1ProofWithPublicValues}; - +#[cfg(feature = "cuda")] +use super::CudaProver; use super::{CpuProver, Prover, ProverType, SP1VerificationError}; -/// A simple prover that allows executing programs and generating proofs. The actual implementation +/// A prover that allows executing programs and generating proofs. The actual implementation depends +/// on the value of the `SP1_PROVER` environment variable, and other settings may be loaded from env. pub struct EnvProver { /// The underlying prover implementation. pub prover: Box>, @@ -54,24 +57,6 @@ impl EnvProver { /// Execute the given program on the given input (without generating a proof). Returns the /// public values and execution report of the program after it has been executed. - /// - /// ### Examples - /// ```no_run - /// use sp1_sdk::{ProverClient, SP1Context, SP1Stdin}; - /// - /// // Load the program. - /// let elf = test_artifacts::FIBONACCI_ELF; - /// - /// // Initialize the prover client. - /// let client = ProverClient::new(); - /// - /// // Setup the inputs. - /// let mut stdin = SP1Stdin::new(); - /// stdin.write(&10usize); - /// - /// // Execute the program on the inputs. - /// let (public_values, report) = client.execute(elf, stdin).unwrap(); - /// ``` pub fn execute<'a>( &'a self, elf: &'a [u8], @@ -81,13 +66,13 @@ impl EnvProver { } /// Prepare to prove the execution of the given program with the given input in the default - /// mode. The returned [action::Prove] may be configured via its methods before running. - /// For example, calling [action::Prove::compressed] sets the mode to compressed mode. + /// mode. The returned [EnvProve] may be configured via its methods before running. + /// For example, calling [EnvProve::compressed] sets the mode to compressed mode. /// - /// To prove, call [action::Prove::run], which returns a proof of the program's execution. + /// To prove, call [EnvProve::run], which returns a proof of the program's execution. /// By default the proof generated will not be compressed to constant size. - /// To create a more succinct proof, use the [action::Prove::compressed], - /// [action::Prove::plonk], or [action::Prove::groth16] methods. + /// To create a more succinct proof, use the [EnvProve::compressed], + /// [EnvProve::plonk], or [EnvProve::groth16] methods. /// /// ### Examples /// ```no_run @@ -97,7 +82,7 @@ impl EnvProver { /// let elf = test_artifacts::FIBONACCI_ELF; /// /// // Initialize the prover client. - /// let client = ProverClient::new(); + /// let client = ProverClient::env(); /// /// // Setup the program. /// let (pk, vk) = client.setup(elf); @@ -121,7 +106,7 @@ impl EnvProver { /// use sp1_sdk::{ProverClient, SP1Stdin}; /// /// let elf = test_artifacts::FIBONACCI_ELF; - /// let client = ProverClient::new(); + /// let client = ProverClient::env(); /// let (pk, vk) = client.setup(elf); /// let mut stdin = SP1Stdin::new(); /// stdin.write(&10usize); @@ -138,25 +123,17 @@ impl EnvProver { /// Setup a program to be proven and verified by the SP1 RISC-V zkVM by computing the proving /// and verifying keys. - /// - /// The proving key and verifying key essentially embed the program, as well as other auxiliary - /// data (such as lookup tables) that are used to prove the program's correctness. - /// - /// ### Examples - /// ```no_run - /// use sp1_sdk::{ProverClient, SP1Stdin}; - /// - /// let elf = test_artifacts::FIBONACCI_ELF; - /// let client = ProverClient::new(); - /// let mut stdin = SP1Stdin::new(); - /// stdin.write(&10usize); - /// let (pk, vk) = client.setup(elf); - /// ``` pub fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey) { self.prover.setup(elf) } } +impl Default for EnvProver { + fn default() -> Self { + Self::new() + } +} + impl Prover for EnvProver { fn id(&self) -> ProverType { self.prover.id() @@ -170,8 +147,8 @@ impl Prover for EnvProver { self.prover.setup(elf) } - fn prove<'a>( - &'a self, + fn prove( + &self, pk: &SP1ProvingKey, stdin: SP1Stdin, kind: SP1ProofKind, @@ -203,15 +180,7 @@ impl<'a> EnvProve<'a> { let Self { prover, kind, pk, stdin } = self; // Dump the program and stdin to files for debugging if `SP1_DUMP` is set. - if std::env::var("SP1_DUMP") - .map(|v| v == "1" || v.to_lowercase() == "true") - .unwrap_or(false) - { - let program = pk.elf.clone(); - std::fs::write("program.bin", program).unwrap(); - let stdin = bincode::serialize(&stdin).unwrap(); - std::fs::write("stdin.bin", stdin.clone()).unwrap(); - } + dump_proof_input(&pk.elf, &stdin); prover.prove(pk, stdin, kind) } diff --git a/crates/sdk/src/provers/local.rs b/crates/sdk/src/provers/local.rs index bc11d3cd55..5901e7d76c 100644 --- a/crates/sdk/src/provers/local.rs +++ b/crates/sdk/src/provers/local.rs @@ -4,8 +4,10 @@ use p3_baby_bear::BabyBear; use p3_field::AbstractField; use p3_field::PrimeField; use p3_fri::{FriProof, TwoAdicFriPcsProof}; +use sp1_core_executor::ExecutionReport; use sp1_core_executor::{HookEnv, SP1Context, SP1ContextBuilder, SP1ReduceProof}; use sp1_core_machine::io::SP1Stdin; +use sp1_primitives::io::SP1PublicValues; use sp1_prover::verify::{verify_groth16_bn254_public_inputs, verify_plonk_bn254_public_inputs}; use sp1_prover::{components::DefaultProverComponents, SP1Prover}; use sp1_prover::{Groth16Bn254Proof, HashableKey, PlonkBn254Proof}; @@ -14,6 +16,7 @@ use sp1_stark::{ }; use crate::install::try_install_circuit_artifacts; +use crate::util::dump_proof_input; use crate::{ Prover, SP1Proof, SP1ProofKind, SP1ProofWithPublicValues, SP1ProvingKey, SP1VerifyingKey, }; @@ -39,6 +42,25 @@ impl CpuProver { Self { prover, mock: false } } + pub fn execute<'a>(&'a self, elf: &'a [u8], stdin: SP1Stdin) -> CpuExecute<'a> { + CpuExecute::new(self, elf, stdin) + } + + /// Prepare to prove the execution of the given program with the given input in the default + /// mode. The returned [CpuProve] may be configured via its methods before running. + /// For example, calling [CpuProve::compressed] sets the mode to compressed mode. + pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> CpuProve<'a> { + CpuProve { + prover: self, + kind: SP1ProofKind::Core, + pk, + stdin, + context_builder: Default::default(), + core_opts: SP1CoreOpts::default(), + recursion_opts: SP1CoreOpts::recursion(), + } + } + pub(crate) fn prove_impl<'a>( &'a self, pk: &SP1ProvingKey, @@ -49,7 +71,7 @@ impl CpuProver { ) -> Result { if self.mock { tracing::info!("Using mock prover"); - return self.mock_proof(&pk, stdin, kind); + return self.mock_proof(pk, stdin, kind); } // Generate the core proof. @@ -82,8 +104,7 @@ impl CpuProver { // Generate the shrink proof. let compress_proof = self.prover.shrink(reduce_proof, opts)?; - // Genenerate the wrap proof. - + // Generate the wrap proof. let outer_proof = self.prover.wrap_bn254(compress_proof, opts)?; if kind == SP1ProofKind::Plonk { let plonk_bn254_artifacts = if sp1_prover::build::sp1_dev_mode() { @@ -124,18 +145,6 @@ impl CpuProver { unreachable!() } - pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> CpuProve<'a> { - CpuProve { - prover: self, - kind: SP1ProofKind::Core, - pk, - stdin, - context_builder: Default::default(), - core_opts: SP1CoreOpts::default(), - recursion_opts: SP1CoreOpts::recursion(), - } - } - fn mock_proof( &self, pk: &SP1ProvingKey, @@ -264,8 +273,8 @@ impl Prover for CpuProver { &self.prover } - fn prove<'a>( - &'a self, + fn prove( + &self, pk: &SP1ProvingKey, stdin: SP1Stdin, kind: SP1ProofKind, @@ -292,6 +301,66 @@ impl Default for CpuProver { } } +/// Builder to prepare and configure execution of a program on an input. +/// May be run with [Self::run]. +pub struct CpuExecute<'a> { + prover: &'a CpuProver, + context_builder: SP1ContextBuilder<'a>, + elf: &'a [u8], + stdin: SP1Stdin, +} + +impl<'a> CpuExecute<'a> { + fn new(prover: &'a CpuProver, elf: &'a [u8], stdin: SP1Stdin) -> Self { + Self { prover, elf, stdin, context_builder: Default::default() } + } + + /// Execute the program on the input, consuming the built action `self`. + pub fn run(self) -> Result<(SP1PublicValues, ExecutionReport)> { + let Self { prover, elf, stdin, mut context_builder } = self; + let context = context_builder.build(); + Ok(prover.sp1_prover().execute(elf, &stdin, context)?) + } + + /// Add a runtime [Hook](super::Hook) into the context. + /// + /// Hooks may be invoked from within SP1 by writing to the specified file descriptor `fd` + /// with [`sp1_zkvm::io::write`], returning a list of arbitrary data that may be read + /// with successive calls to [`sp1_zkvm::io::read`]. + pub fn with_hook( + mut self, + fd: u32, + f: impl FnMut(HookEnv, &[u8]) -> Vec> + Send + Sync + 'a, + ) -> Self { + self.context_builder.hook(fd, f); + self + } + + /// Avoid registering the default hooks in the runtime. + /// + /// It is not necessary to call this to override hooks --- instead, simply + /// register a hook with the same value of `fd` by calling [`Self::with_hook`]. + pub fn without_default_hooks(mut self) -> Self { + self.context_builder.without_default_hooks(); + self + } + + /// Set the maximum number of cpu cycles to use for execution. + /// + /// If the cycle limit is exceeded, execution will return + /// [`sp1_core_executor::ExecutionError::ExceededCycleLimit`]. + pub fn max_cycles(mut self, max_cycles: u64) -> Self { + self.context_builder.max_cycles(max_cycles); + self + } + + /// Skip deferred proof verification. + pub fn set_skip_deferred_proof_verification(mut self, value: bool) -> Self { + self.context_builder.set_skip_deferred_proof_verification(value); + self + } +} + /// Builder to prepare and configure proving execution of a program on an input. /// May be run with [Self::run]. pub struct CpuProve<'a> { @@ -312,15 +381,7 @@ impl<'a> CpuProve<'a> { let context = context_builder.build(); // Dump the program and stdin to files for debugging if `SP1_DUMP` is set. - if std::env::var("SP1_DUMP") - .map(|v| v == "1" || v.to_lowercase() == "true") - .unwrap_or(false) - { - let program = pk.elf.clone(); - std::fs::write("program.bin", program).unwrap(); - let stdin = bincode::serialize(&stdin).unwrap(); - std::fs::write("stdin.bin", stdin.clone()).unwrap(); - } + dump_proof_input(&pk.elf, &stdin); prover.prove_impl(pk, stdin, opts, context, kind) } diff --git a/crates/sdk/src/provers/mod.rs b/crates/sdk/src/provers/mod.rs index 68398220f5..20b2387a9d 100644 --- a/crates/sdk/src/provers/mod.rs +++ b/crates/sdk/src/provers/mod.rs @@ -10,6 +10,8 @@ pub use local::CpuProver; use itertools::Itertools; use p3_field::PrimeField32; +use sp1_core_executor::ExecutionReport; +use sp1_primitives::io::SP1PublicValues; use std::borrow::Borrow; use std::time::Duration; @@ -62,19 +64,30 @@ pub enum SP1VerificationError { /// An implementation of [crate::ProverClient]. pub trait Prover: Send + Sync { + /// The type of prover. fn id(&self) -> ProverType; + /// The inner SP1Prover struct. fn sp1_prover(&self) -> &SP1Prover; + /// The version of the current SP1 circuit. This is distinct from the sp1-sdk version. fn version(&self) -> &str { SP1_CIRCUIT_VERSION } + /// Setup a program to be proven and verified by the SP1 RISC-V zkVM by computing the proving + /// and verifying keys. fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey); + /// Execute the given program on the given input (without generating a proof). Returns the + /// public values and execution report of the program after it has been executed. + fn execute(&self, elf: &[u8], stdin: &SP1Stdin) -> Result<(SP1PublicValues, ExecutionReport)> { + Ok(self.sp1_prover().execute(elf, stdin, Default::default())?) + } + /// Prove the execution of a RISCV ELF with the given inputs, according to the given proof mode. - fn prove<'a>( - &'a self, + fn prove( + &self, pk: &SP1ProvingKey, stdin: SP1Stdin, kind: SP1ProofKind, From ddc6b59ee547a95d2cd394fe8da0fa9de7685f51 Mon Sep 17 00:00:00 2001 From: Chris Tian Date: Tue, 17 Dec 2024 19:23:11 -0800 Subject: [PATCH 18/36] remove --- crates/prover/src/types.rs | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/crates/prover/src/types.rs b/crates/prover/src/types.rs index 6abd080445..b05776fca1 100644 --- a/crates/prover/src/types.rs +++ b/crates/prover/src/types.rs @@ -1,4 +1,4 @@ -use std::{fs::File, path::Path, str::FromStr}; +use std::{fs::File, path::Path}; use anyhow::Result; use clap::ValueEnum; @@ -209,20 +209,6 @@ pub enum ProverMode { Mock, } -impl FromStr for ProverMode { - type Err = anyhow::Error; - - fn from_str(s: &str) -> Result { - match s { - "cpu" => Ok(Self::Cpu), - "cuda" => Ok(Self::Cuda), - "network" => Ok(Self::Network), - "mock" => Ok(Self::Mock), - _ => Err(anyhow::anyhow!("invalid prover mode")), - } - } -} - #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum ProofSystem { Plonk, From 163fe054b16415583d109f535efb9d23798a4b17 Mon Sep 17 00:00:00 2001 From: Chris Tian Date: Tue, 17 Dec 2024 19:31:02 -0800 Subject: [PATCH 19/36] ProverClient::new -> ProverClient::env --- book/generating-proofs/proof-types.md | 10 +++++----- book/generating-proofs/prover-network/usage.md | 2 +- book/verification/onchain/solidity-sdk.md | 2 +- crates/verifier/src/groth16/mod.rs | 2 +- crates/verifier/src/plonk/mod.rs | 2 +- examples/aggregation/script/src/main.rs | 2 +- examples/bls12381/script/src/main.rs | 2 +- examples/bn254/script/src/main.rs | 2 +- examples/chess/script/src/main.rs | 2 +- examples/cycle-tracking/script/src/main.rs | 2 +- examples/fibonacci/script/bin/compressed.rs | 2 +- examples/fibonacci/script/bin/execute.rs | 2 +- examples/fibonacci/script/bin/groth16_bn254.rs | 2 +- examples/fibonacci/script/bin/plonk_bn254.rs | 2 +- examples/fibonacci/script/src/main.rs | 2 +- examples/groth16/script/src/main.rs | 4 ++-- examples/io/script/src/main.rs | 2 +- examples/is-prime/script/src/main.rs | 2 +- examples/json/script/src/main.rs | 2 +- examples/patch-testing/script/src/main.rs | 2 +- examples/regex/script/src/main.rs | 2 +- examples/rsa/script/src/main.rs | 2 +- examples/rsp/script/src/main.rs | 2 +- examples/ssz-withdrawals/script/src/main.rs | 2 +- examples/tendermint/script/src/main.rs | 2 +- 25 files changed, 30 insertions(+), 30 deletions(-) diff --git a/book/generating-proofs/proof-types.md b/book/generating-proofs/proof-types.md index 72dd9a41cd..209d8761d9 100644 --- a/book/generating-proofs/proof-types.md +++ b/book/generating-proofs/proof-types.md @@ -12,7 +12,7 @@ The default prover mode generates a list of STARK proofs that in aggregate have the size of the execution. Use this in settings where you don't care about **verification cost / proof size**. ```rust,noplayground -let client = ProverClient::new(); +let client = ProverClient::env(); client.prove(&pk, stdin).run().unwrap(); ``` @@ -22,18 +22,18 @@ The compressed prover mode generates STARK proofs that have constant size. Use t care about **verification cost / proof size**, but not onchain verification. Compressed proofs are also useful because they can be cheaply recursively verified within SP1 itself (see the [proof aggregation](../writing-programs/proof-aggregation.md) section). ```rust,noplayground -let client = ProverClient::new(); +let client = ProverClient::env(); client.prove(&pk, stdin).compressed().run().unwrap(); ``` ## Groth16 (Recommended) -The Groth16 prover mode generates a SNARK proof that is ~260 bytes large and can be verified onchain for around ~270k gas. +The Groth16 prover mode generates a SNARK proof that is ~260 bytes large and can be verified onchain for around ~270k gas. The trusted setup for the Groth16 circuit keys uses the [Aztec Ignition ceremony](https://github.com/AztecProtocol/ignition-verification) + entropy contributions from members of the Succinct team. If you are uncomfortable with the security assumptions of the ceremony, you can use the PLONK proof type instead. ```rust,noplayground -let client = ProverClient::new(); +let client = ProverClient::env(); client.prove(&pk, stdin).groth16().run().unwrap(); ``` @@ -44,6 +44,6 @@ The PLONK prover mode generates a SNARK proof that is ~868 bytes large and can a PLONK does not require a trusted setup and reuses contributions from the Aztec Ignition ceremony. ```rust,noplayground -let client = ProverClient::new(); +let client = ProverClient::env(); client.prove(&pk, stdin).plonk().run().unwrap(); ``` diff --git a/book/generating-proofs/prover-network/usage.md b/book/generating-proofs/prover-network/usage.md index b08497868d..e40a78c8d8 100644 --- a/book/generating-proofs/prover-network/usage.md +++ b/book/generating-proofs/prover-network/usage.md @@ -8,7 +8,7 @@ To use the prover network to generate a proof, you can run your script that uses ```rust,noplayground // Generate the proof for the given program. -let client = ProverClient::new(); +let client = ProverClient::env(); let (pk, vk) = client.setup(ELF); let mut proof = client.prove(&pk, stdin).run().unwrap(); ``` diff --git a/book/verification/onchain/solidity-sdk.md b/book/verification/onchain/solidity-sdk.md index 822ab620b9..768006db8d 100644 --- a/book/verification/onchain/solidity-sdk.md +++ b/book/verification/onchain/solidity-sdk.md @@ -81,7 +81,7 @@ fn main() { sp1_sdk::utils::setup_logger(); // Setup the prover client. - let client = ProverClient::new(); + let client = ProverClient::env(); // Setup the program. let (_, vk) = client.setup(FIBONACCI_ELF); diff --git a/crates/verifier/src/groth16/mod.rs b/crates/verifier/src/groth16/mod.rs index 9075d6491b..644c3b83a5 100644 --- a/crates/verifier/src/groth16/mod.rs +++ b/crates/verifier/src/groth16/mod.rs @@ -31,7 +31,7 @@ impl Groth16Verifier { /// /// ```ignore /// use sp1_sdk::ProverClient; - /// let client = ProverClient::new(); + /// let client = ProverClient::env(); /// let (pk, vk) = client.setup(ELF); /// let sp1_vkey_hash = vk.bytes32(); /// ``` diff --git a/crates/verifier/src/plonk/mod.rs b/crates/verifier/src/plonk/mod.rs index 613c2cab00..e061a0042d 100644 --- a/crates/verifier/src/plonk/mod.rs +++ b/crates/verifier/src/plonk/mod.rs @@ -39,7 +39,7 @@ impl PlonkVerifier { /// /// ```ignore /// use sp1_sdk::ProverClient; - /// let client = ProverClient::new(); + /// let client = ProverClient::env(); /// let (pk, vk) = client.setup(ELF); /// let sp1_vkey_hash = vk.bytes32(); /// ``` diff --git a/examples/aggregation/script/src/main.rs b/examples/aggregation/script/src/main.rs index 9015cafcc2..acc76027d8 100644 --- a/examples/aggregation/script/src/main.rs +++ b/examples/aggregation/script/src/main.rs @@ -24,7 +24,7 @@ fn main() { sp1_sdk::utils::setup_logger(); // Initialize the proving client. - let client = ProverClient::new(); + let client = ProverClient::env(); // Setup the proving and verifying keys. let (aggregation_pk, _) = client.setup(AGGREGATION_ELF); diff --git a/examples/bls12381/script/src/main.rs b/examples/bls12381/script/src/main.rs index 385b04124a..a7187630e8 100644 --- a/examples/bls12381/script/src/main.rs +++ b/examples/bls12381/script/src/main.rs @@ -6,7 +6,7 @@ fn main() { let stdin = SP1Stdin::new(); - let client = ProverClient::new(); + let client = ProverClient::env(); let (_public_values, report) = client.execute(ELF, stdin).run().expect("failed to prove"); println!("executed: {}", report); diff --git a/examples/bn254/script/src/main.rs b/examples/bn254/script/src/main.rs index 4decb3a3f7..b1e5d29c2b 100644 --- a/examples/bn254/script/src/main.rs +++ b/examples/bn254/script/src/main.rs @@ -6,7 +6,7 @@ fn main() { let stdin = SP1Stdin::new(); - let client = ProverClient::new(); + let client = ProverClient::env(); let (_public_values, report) = client.execute(ELF, stdin).run().expect("failed to prove"); println!("executed: {}", report); diff --git a/examples/chess/script/src/main.rs b/examples/chess/script/src/main.rs index 8026ddf454..8ea2a81823 100644 --- a/examples/chess/script/src/main.rs +++ b/examples/chess/script/src/main.rs @@ -13,7 +13,7 @@ fn main() { let san = "d4".to_string(); stdin.write(&san); - let client = ProverClient::new(); + let client = ProverClient::env(); let (pk, vk) = client.setup(ELF); let mut proof = client.prove(&pk, stdin).run().unwrap(); diff --git a/examples/cycle-tracking/script/src/main.rs b/examples/cycle-tracking/script/src/main.rs index 58da7f4e8f..0dcde054a7 100644 --- a/examples/cycle-tracking/script/src/main.rs +++ b/examples/cycle-tracking/script/src/main.rs @@ -9,7 +9,7 @@ fn main() { utils::setup_logger(); // Execute the normal program. - let client = ProverClient::new(); + let client = ProverClient::env(); let (_, _) = client.execute(NORMAL_ELF, SP1Stdin::new()).run().expect("proving failed"); // Execute the report program. diff --git a/examples/fibonacci/script/bin/compressed.rs b/examples/fibonacci/script/bin/compressed.rs index 9261d092f8..6611bdecd3 100644 --- a/examples/fibonacci/script/bin/compressed.rs +++ b/examples/fibonacci/script/bin/compressed.rs @@ -13,7 +13,7 @@ fn main() { stdin.write(&n); // Generate the constant-sized proof for the given program and input. - let client = ProverClient::new(); + let client = ProverClient::env(); let (pk, vk) = client.setup(ELF); let mut proof = client.prove(&pk, stdin).compressed().run().unwrap(); diff --git a/examples/fibonacci/script/bin/execute.rs b/examples/fibonacci/script/bin/execute.rs index 5cf1efe1b2..93aaddd7a5 100644 --- a/examples/fibonacci/script/bin/execute.rs +++ b/examples/fibonacci/script/bin/execute.rs @@ -14,7 +14,7 @@ fn main() { stdin.write(&n); // Only execute the program and get a `SP1PublicValues` object. - let client = ProverClient::new(); + let client = ProverClient::env(); let (mut public_values, execution_report) = client.execute(ELF, stdin).run().unwrap(); // Print the total number of cycles executed and the full execution report with a breakdown of diff --git a/examples/fibonacci/script/bin/groth16_bn254.rs b/examples/fibonacci/script/bin/groth16_bn254.rs index 06d5b0b95f..63a5c297e6 100644 --- a/examples/fibonacci/script/bin/groth16_bn254.rs +++ b/examples/fibonacci/script/bin/groth16_bn254.rs @@ -14,7 +14,7 @@ fn main() { stdin.write(&n); // Set up the pk and vk. - let client = ProverClient::new(); + let client = ProverClient::env(); let (pk, vk) = client.setup(ELF); println!("vk: {:?}", vk.bytes32()); diff --git a/examples/fibonacci/script/bin/plonk_bn254.rs b/examples/fibonacci/script/bin/plonk_bn254.rs index 8759293316..53b245b3af 100644 --- a/examples/fibonacci/script/bin/plonk_bn254.rs +++ b/examples/fibonacci/script/bin/plonk_bn254.rs @@ -14,7 +14,7 @@ fn main() { stdin.write(&n); // Set up the pk and vk. - let client = ProverClient::new(); + let client = ProverClient::env(); let (pk, vk) = client.setup(ELF); println!("vk: {:?}", vk.bytes32()); diff --git a/examples/fibonacci/script/src/main.rs b/examples/fibonacci/script/src/main.rs index 4cfb02879c..d7b9cb06cd 100644 --- a/examples/fibonacci/script/src/main.rs +++ b/examples/fibonacci/script/src/main.rs @@ -16,7 +16,7 @@ fn main() { stdin.write(&n); // Create a `ProverClient` method. - let client = ProverClient::new(); + let client = ProverClient::env(); // Execute the program using the `ProverClient.execute` method, without generating a proof. let (_, report) = client.execute(ELF, stdin.clone()).run().unwrap(); diff --git a/examples/groth16/script/src/main.rs b/examples/groth16/script/src/main.rs index b35a15f58c..ebca3156ee 100644 --- a/examples/groth16/script/src/main.rs +++ b/examples/groth16/script/src/main.rs @@ -23,7 +23,7 @@ fn generate_fibonacci_proof() -> (Vec, Vec, String) { stdin.write(&n); // Create a `ProverClient`. - let client = ProverClient::new(); + let client = ProverClient::env(); // Generate the groth16 proof for the Fibonacci program. let (pk, vk) = client.setup(FIBONACCI_ELF); @@ -46,7 +46,7 @@ fn main() { stdin.write(&vk); // Create a `ProverClient`. - let client = ProverClient::new(); + let client = ProverClient::env(); // Execute the program using the `ProverClient.execute` method, without generating a proof. let (_, report) = client.execute(GROTH16_ELF, stdin.clone()).run().unwrap(); diff --git a/examples/io/script/src/main.rs b/examples/io/script/src/main.rs index 21ad14d0fa..d17a6cd328 100644 --- a/examples/io/script/src/main.rs +++ b/examples/io/script/src/main.rs @@ -23,7 +23,7 @@ fn main() { stdin.write(&q); // Generate the proof for the given program. - let client = ProverClient::new(); + let client = ProverClient::env(); let (pk, vk) = client.setup(ELF); let mut proof = client.prove(&pk, stdin).run().unwrap(); diff --git a/examples/is-prime/script/src/main.rs b/examples/is-prime/script/src/main.rs index 628d1c605b..9622eee7fb 100644 --- a/examples/is-prime/script/src/main.rs +++ b/examples/is-prime/script/src/main.rs @@ -14,7 +14,7 @@ fn main() { stdin.write(&n); // Generate and verify the proof - let client = ProverClient::new(); + let client = ProverClient::env(); let (pk, vk) = client.setup(ELF); let mut proof = client.prove(&pk, stdin).run().unwrap(); diff --git a/examples/json/script/src/main.rs b/examples/json/script/src/main.rs index ee093c1629..1c99be77cd 100644 --- a/examples/json/script/src/main.rs +++ b/examples/json/script/src/main.rs @@ -34,7 +34,7 @@ fn main() { stdin.write(&initial_account_state); stdin.write(&transactions); - let client = ProverClient::new(); + let client = ProverClient::env(); let (pk, vk) = client.setup(JSON_ELF); let mut proof = client.prove(&pk, stdin).run().expect("proving failed"); diff --git a/examples/patch-testing/script/src/main.rs b/examples/patch-testing/script/src/main.rs index c80446a5b3..f1ab022c17 100644 --- a/examples/patch-testing/script/src/main.rs +++ b/examples/patch-testing/script/src/main.rs @@ -8,7 +8,7 @@ pub fn main() { let stdin = SP1Stdin::new(); - let client = ProverClient::new(); + let client = ProverClient::env(); let (_, report) = client.execute(PATCH_TEST_ELF, stdin).run().expect("executing failed"); // Confirm there was at least 1 SHA_COMPUTE syscall. diff --git a/examples/regex/script/src/main.rs b/examples/regex/script/src/main.rs index b198ab43c2..8ebe56f42c 100644 --- a/examples/regex/script/src/main.rs +++ b/examples/regex/script/src/main.rs @@ -18,7 +18,7 @@ fn main() { stdin.write(&target_string); // Generate the proof for the given program and input. - let client = ProverClient::new(); + let client = ProverClient::env(); let (pk, vk) = client.setup(REGEX_IO_ELF); let mut proof = client.prove(&pk, stdin).run().expect("proving failed"); diff --git a/examples/rsa/script/src/main.rs b/examples/rsa/script/src/main.rs index 4a6b50d640..ffa8c81116 100644 --- a/examples/rsa/script/src/main.rs +++ b/examples/rsa/script/src/main.rs @@ -52,7 +52,7 @@ fn main() { // let verified = stdout.read::(); // Generate the proof for the given program and input. - let client = ProverClient::new(); + let client = ProverClient::env(); let (pk, vk) = client.setup(RSA_ELF); let proof = client.prove(&pk, stdin).run().expect("proving failed"); diff --git a/examples/rsp/script/src/main.rs b/examples/rsp/script/src/main.rs index f67325ccc4..e77c6353d3 100644 --- a/examples/rsp/script/src/main.rs +++ b/examples/rsp/script/src/main.rs @@ -31,7 +31,7 @@ fn main() { let client_input = load_input_from_cache(CHAIN_ID_ETH_MAINNET, 20526624); // Generate the proof. - let client = ProverClient::new(); + let client = ProverClient::env(); // Setup the proving key and verification key. let (pk, vk) = client.setup(include_elf!("rsp-program")); diff --git a/examples/ssz-withdrawals/script/src/main.rs b/examples/ssz-withdrawals/script/src/main.rs index f410d10815..f65eaefa7c 100644 --- a/examples/ssz-withdrawals/script/src/main.rs +++ b/examples/ssz-withdrawals/script/src/main.rs @@ -8,7 +8,7 @@ fn main() { utils::setup_logger(); let stdin = SP1Stdin::new(); - let client = ProverClient::new(); + let client = ProverClient::env(); let (pk, vk) = client.setup(ELF); let proof = client.prove(&pk, stdin).run().expect("proving failed"); diff --git a/examples/tendermint/script/src/main.rs b/examples/tendermint/script/src/main.rs index 258aea371d..c61e8019ac 100644 --- a/examples/tendermint/script/src/main.rs +++ b/examples/tendermint/script/src/main.rs @@ -41,7 +41,7 @@ pub fn main() { // let encoded: Vec = bincode::serialize(&light_block_1).unwrap(); // let decoded: LightBlock = bincode::deserialize(&encoded[..]).unwrap(); - let client = ProverClient::new(); + let client = ProverClient::env(); let (pk, vk) = client.setup(TENDERMINT_ELF); client.execute(TENDERMINT_ELF, stdin.clone()).run().expect("proving failed"); From a45905b93e8366b3423a84644eea04b929e7e0b7 Mon Sep 17 00:00:00 2001 From: jtguibas Date: Thu, 19 Dec 2024 08:57:56 +0000 Subject: [PATCH 20/36] sdk improvements --- .vscode/settings.json | 22 +- crates/cli/src/commands/install_toolchain.rs | 13 +- crates/cli/src/commands/vkey.rs | 2 +- crates/cuda/src/lib.rs | 6 +- crates/eval/src/main.rs | 4 +- crates/perf/Cargo.toml | 2 +- crates/perf/src/main.rs | 4 +- crates/prover/scripts/build_compress_vks.rs | 4 +- crates/prover/scripts/fibonacci_groth16.rs | 4 +- crates/prover/scripts/fibonacci_sweep.rs | 11 +- crates/prover/scripts/tendermint_sweep.rs | 4 +- crates/prover/src/components.rs | 4 +- crates/prover/src/lib.rs | 18 +- crates/recursion/gnark-ffi/src/proof.rs | 3 - crates/sdk/Cargo.toml | 12 +- crates/sdk/src/artifacts.rs | 47 +- crates/sdk/src/client.rs | 79 + crates/sdk/src/cpu/execute.rs | 115 + crates/sdk/src/cpu/mod.rs | 326 ++ crates/sdk/src/cpu/prove.rs | 221 + crates/sdk/src/cuda/mod.rs | 160 + crates/sdk/src/cuda/prove.rs | 129 + crates/sdk/src/env/mod.rs | 174 + crates/sdk/src/env/prove.rs | 130 + crates/sdk/src/install.rs | 16 +- crates/sdk/src/lib.rs | 211 +- crates/sdk/src/network-v2/client.rs | 280 -- crates/sdk/src/network-v2/mod.rs | 20 - crates/sdk/src/network-v2/proto/mod.rs | 2 - crates/sdk/src/network-v2/proto/network.rs | 3932 --------------- crates/sdk/src/network-v2/prover.rs | 377 -- crates/sdk/src/network/auth.rs | 142 - crates/sdk/src/network/builder.rs | 88 + crates/sdk/src/network/client.rs | 499 +- crates/sdk/src/network/mod.rs | 15 +- .../{network-v2 => network}/proto/artifact.rs | 8 +- crates/sdk/src/network/proto/mod.rs | 1 + crates/sdk/src/network/proto/network.rs | 4295 ++++++++++++++--- crates/sdk/src/network/prove.rs | 214 + crates/sdk/src/network/prover.rs | 470 +- .../{network-v2 => network}/sign_message.rs | 4 +- .../{network-v2/json.rs => network/utils.rs} | 25 +- crates/sdk/src/proof.rs | 69 +- crates/sdk/src/{provers/mod.rs => prover.rs} | 110 +- crates/sdk/src/provers/cuda.rs | 182 - crates/sdk/src/provers/env.rs | 217 - crates/sdk/src/provers/local.rs | 474 -- crates/sdk/src/{util.rs => utils.rs} | 13 +- 48 files changed, 6144 insertions(+), 7014 deletions(-) create mode 100644 crates/sdk/src/client.rs create mode 100644 crates/sdk/src/cpu/execute.rs create mode 100644 crates/sdk/src/cpu/mod.rs create mode 100644 crates/sdk/src/cpu/prove.rs create mode 100644 crates/sdk/src/cuda/mod.rs create mode 100644 crates/sdk/src/cuda/prove.rs create mode 100644 crates/sdk/src/env/mod.rs create mode 100644 crates/sdk/src/env/prove.rs delete mode 100644 crates/sdk/src/network-v2/client.rs delete mode 100644 crates/sdk/src/network-v2/mod.rs delete mode 100644 crates/sdk/src/network-v2/proto/mod.rs delete mode 100644 crates/sdk/src/network-v2/proto/network.rs delete mode 100644 crates/sdk/src/network-v2/prover.rs delete mode 100644 crates/sdk/src/network/auth.rs create mode 100644 crates/sdk/src/network/builder.rs rename crates/sdk/src/{network-v2 => network}/proto/artifact.rs (98%) create mode 100644 crates/sdk/src/network/prove.rs rename crates/sdk/src/{network-v2 => network}/sign_message.rs (95%) rename crates/sdk/src/{network-v2/json.rs => network/utils.rs} (70%) rename crates/sdk/src/{provers/mod.rs => prover.rs} (75%) delete mode 100644 crates/sdk/src/provers/cuda.rs delete mode 100644 crates/sdk/src/provers/env.rs delete mode 100644 crates/sdk/src/provers/local.rs rename crates/sdk/src/{util.rs => utils.rs} (75%) diff --git a/.vscode/settings.json b/.vscode/settings.json index d1500a8b1a..41f465399b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -8,17 +8,17 @@ "editor.rulers": [ 100 ], - "rust-analyzer.check.overrideCommand": [ - "cargo", - "clippy", - "--workspace", - "--message-format=json", - "--all-features", - "--all-targets", - "--", - "-A", - "incomplete-features" - ], + // "rust-analyzer.check.overrideCommand": [ + // "cargo", + // "clippy", + // "--workspace", + // "--message-format=json", + // "--all-features", + // "--all-targets", + // "--", + // "-A", + // "incomplete-features" + // ], "rust-analyzer.linkedProjects": [ "Cargo.toml", // // Examples. diff --git a/crates/cli/src/commands/install_toolchain.rs b/crates/cli/src/commands/install_toolchain.rs index de09773cef..e027729f26 100644 --- a/crates/cli/src/commands/install_toolchain.rs +++ b/crates/cli/src/commands/install_toolchain.rs @@ -1,15 +1,16 @@ -use anyhow::Result; -use clap::Parser; -use dirs::home_dir; -use rand::{distributions::Alphanumeric, Rng}; -use reqwest::Client; -use sp1_sdk::artifacts::download_file; use std::{ fs::{self}, io::Read, process::Command, }; +use anyhow::Result; +use clap::Parser; +use dirs::home_dir; +use rand::{distributions::Alphanumeric, Rng}; +use reqwest::Client; +use sp1_sdk::install::download_file; + #[cfg(target_family = "unix")] use std::os::unix::fs::PermissionsExt; diff --git a/crates/cli/src/commands/vkey.rs b/crates/cli/src/commands/vkey.rs index 0abf3c2fea..b69e91c986 100644 --- a/crates/cli/src/commands/vkey.rs +++ b/crates/cli/src/commands/vkey.rs @@ -48,7 +48,7 @@ impl VkeyCmd { file.read_to_end(&mut elf)?; // Get the verification key - let prover = ProverClient::env(); + let prover = ProverClient::from_env(); let (_, vk) = prover.setup(&elf); // Print the verification key hash diff --git a/crates/cuda/src/lib.rs b/crates/cuda/src/lib.rs index 3493f6a58c..63495c6129 100644 --- a/crates/cuda/src/lib.rs +++ b/crates/cuda/src/lib.rs @@ -367,7 +367,7 @@ impl Middleware for LoggingMiddleware { #[cfg(test)] mod tests { use sp1_core_machine::{reduce::SP1ReduceProof, utils::setup_logger}; - use sp1_prover::{components::DefaultProverComponents, InnerSC, SP1CoreProof, SP1Prover}; + use sp1_prover::{components::CpuProverComponents, InnerSC, SP1CoreProof, SP1Prover}; use test_artifacts::FIBONACCI_ELF; use twirp::{url::Url, Client}; @@ -380,7 +380,7 @@ mod tests { fn test_client() { setup_logger(); - let prover = SP1Prover::::new(); + let prover = SP1Prover::::new(); let client = SP1CudaProver::new().expect("Failed to create SP1CudaProver"); let (pk, vk) = prover.setup(FIBONACCI_ELF); @@ -414,7 +414,7 @@ mod tests { let client = Client::from_base_url(Url::parse("http://localhost:3000/twirp/").unwrap()).unwrap(); - let prover = SP1Prover::::new(); + let prover = SP1Prover::::new(); let (pk, vk) = prover.setup(FIBONACCI_ELF); let payload = ProveCoreRequestPayload { pk, stdin: SP1Stdin::new() }; let request = diff --git a/crates/eval/src/main.rs b/crates/eval/src/main.rs index ca0e75a37b..8c7ca4e00d 100644 --- a/crates/eval/src/main.rs +++ b/crates/eval/src/main.rs @@ -1,10 +1,10 @@ use anyhow::Result; use sp1_eval::evaluate_performance; -use sp1_prover::components::DefaultProverComponents; +use sp1_prover::components::CpuProverComponents; use sp1_stark::SP1ProverOpts; #[tokio::main] async fn main() -> Result<(), Box> { let opts = SP1ProverOpts::default(); - evaluate_performance::(opts).await + evaluate_performance::(opts).await } diff --git a/crates/perf/Cargo.toml b/crates/perf/Cargo.toml index 38300783fe..c9ffb2970d 100644 --- a/crates/perf/Cargo.toml +++ b/crates/perf/Cargo.toml @@ -24,4 +24,4 @@ time = "0.3.26" [features] native-gnark = ["sp1-sdk/native-gnark"] -network-v2 = ["sp1-sdk/network-v2"] +network = ["sp1-sdk/network"] diff --git a/crates/perf/src/main.rs b/crates/perf/src/main.rs index 70d1cba1e1..6f45c7ed2f 100644 --- a/crates/perf/src/main.rs +++ b/crates/perf/src/main.rs @@ -6,7 +6,7 @@ use std::{ use clap::{command, Parser}; use sp1_cuda::SP1CudaProver; use sp1_prover::HashableKey; -use sp1_prover::{components::DefaultProverComponents, ProverMode}; +use sp1_prover::{components::CpuProverComponents, ProverMode}; use sp1_sdk::{self, Prover, ProverClient, SP1Context, SP1Prover, SP1Stdin}; use sp1_stark::SP1ProverOpts; use test_artifacts::VERIFY_PROOF_ELF; @@ -52,7 +52,7 @@ fn main() { let stdin = std::fs::read(args.stdin).expect("failed to read stdin"); let stdin: SP1Stdin = bincode::deserialize(&stdin).expect("failed to deserialize stdin"); - let prover = SP1Prover::::new(); + let prover = SP1Prover::::new(); let (pk, vk) = prover.setup(&elf); let cycles = sp1_prover::utils::get_cycles(&elf, &stdin); let opts = SP1ProverOpts::default(); diff --git a/crates/prover/scripts/build_compress_vks.rs b/crates/prover/scripts/build_compress_vks.rs index 0f8c5a0d08..2b700369f5 100644 --- a/crates/prover/scripts/build_compress_vks.rs +++ b/crates/prover/scripts/build_compress_vks.rs @@ -3,7 +3,7 @@ use std::path::PathBuf; use clap::Parser; use sp1_core_machine::utils::setup_logger; use sp1_prover::{ - components::DefaultProverComponents, shapes::build_vk_map_to_file, REDUCE_BATCH_SIZE, + components::CpuProverComponents, shapes::build_vk_map_to_file, REDUCE_BATCH_SIZE, }; #[derive(Parser, Debug)] @@ -37,7 +37,7 @@ fn main() { let range_start = args.start; let range_end = args.end; - build_vk_map_to_file::( + build_vk_map_to_file::( build_dir, reduce_batch_size, dummy, diff --git a/crates/prover/scripts/fibonacci_groth16.rs b/crates/prover/scripts/fibonacci_groth16.rs index 4ca51b00af..cbbc068593 100644 --- a/crates/prover/scripts/fibonacci_groth16.rs +++ b/crates/prover/scripts/fibonacci_groth16.rs @@ -5,7 +5,7 @@ use std::time::Instant; use itertools::iproduct; use sp1_core_executor::SP1Context; use sp1_core_machine::io::SP1Stdin; -use sp1_prover::components::DefaultProverComponents; +use sp1_prover::components::CpuProverComponents; use sp1_prover::SP1Prover; use sp1_stark::SP1ProverOpts; use tracing_subscriber::fmt::format::FmtSpan; @@ -38,7 +38,7 @@ fn main() { std::env::set_var("RECONSTRUCT_COMMITMENTS", "false"); // Initialize prover. - let prover = SP1Prover::::new(); + let prover = SP1Prover::::new(); // Setup sweep. let iterations = [480000u32]; diff --git a/crates/prover/scripts/fibonacci_sweep.rs b/crates/prover/scripts/fibonacci_sweep.rs index 5321d4cf71..67a3cc0922 100644 --- a/crates/prover/scripts/fibonacci_sweep.rs +++ b/crates/prover/scripts/fibonacci_sweep.rs @@ -5,7 +5,7 @@ use std::{fs::File, io::BufWriter, io::Write, time::Instant}; use itertools::iproduct; use sp1_core_executor::SP1Context; use sp1_core_machine::io::SP1Stdin; -use sp1_prover::components::DefaultProverComponents; +use sp1_prover::components::CpuProverComponents; use sp1_prover::SP1Prover; use sp1_stark::SP1ProverOpts; use tracing_subscriber::EnvFilter; @@ -37,7 +37,7 @@ fn main() { std::env::set_var("RECONSTRUCT_COMMITMENTS", "false"); // Initialize prover. - let prover = SP1Prover::::new(); + let prover = SP1Prover::::new(); // Setup sweep. let iterations = [480000u32]; @@ -46,9 +46,10 @@ fn main() { let elf = test_artifacts::FIBONACCI_ELF; let (pk, vk) = prover.setup(elf); - let mut lines = - vec!["iterations,shard_size,batch_size,leaf_proving_duration,recursion_proving_duration" - .to_string()]; + let mut lines = vec![ + "iterations,shard_size,batch_size,leaf_proving_duration,recursion_proving_duration" + .to_string(), + ]; for (shard_size, iterations, batch_size) in iproduct!(shard_sizes, iterations, batch_sizes) { tracing::info!( "running: shard_size={}, iterations={}, batch_size={}", diff --git a/crates/prover/scripts/tendermint_sweep.rs b/crates/prover/scripts/tendermint_sweep.rs index bb80f848ea..184e188dd5 100644 --- a/crates/prover/scripts/tendermint_sweep.rs +++ b/crates/prover/scripts/tendermint_sweep.rs @@ -5,7 +5,7 @@ use std::{fs::File, io::BufWriter, io::Write, time::Instant}; use itertools::iproduct; use sp1_core_executor::SP1Context; use sp1_core_machine::io::SP1Stdin; -use sp1_prover::components::DefaultProverComponents; +use sp1_prover::components::CpuProverComponents; use sp1_prover::SP1Prover; use sp1_stark::SP1ProverOpts; use tracing_subscriber::EnvFilter; @@ -37,7 +37,7 @@ fn main() { std::env::set_var("RECONSTRUCT_COMMITMENTS", "false"); // Initialize prover. - let prover = SP1Prover::::new(); + let prover = SP1Prover::::new(); // Setup sweep. let iterations = [480000u32]; diff --git a/crates/prover/src/components.rs b/crates/prover/src/components.rs index e88dd87ceb..12bd26e56e 100644 --- a/crates/prover/src/components.rs +++ b/crates/prover/src/components.rs @@ -25,9 +25,9 @@ pub trait SP1ProverComponents: Send + Sync { + Sync; } -pub struct DefaultProverComponents; +pub struct CpuProverComponents; -impl SP1ProverComponents for DefaultProverComponents { +impl SP1ProverComponents for CpuProverComponents { type CoreProver = CpuProver::Val>>; type CompressProver = CpuProver::Val>>; type ShrinkProver = CpuProver::Val>>; diff --git a/crates/prover/src/lib.rs b/crates/prover/src/lib.rs index 75915e5bc0..bdeb9fa93b 100644 --- a/crates/prover/src/lib.rs +++ b/crates/prover/src/lib.rs @@ -81,7 +81,7 @@ use tracing::instrument; pub use types::*; use utils::{sp1_committed_values_digest_bn254, sp1_vkey_digest_bn254, words_to_bytes}; -use components::{DefaultProverComponents, SP1ProverComponents}; +use components::{CpuProverComponents, SP1ProverComponents}; pub use sp1_core_machine::SP1_CIRCUIT_VERSION; @@ -115,7 +115,7 @@ pub type ShrinkAir = RecursionAir; pub type WrapAir = RecursionAir; /// A end-to-end prover implementation for the SP1 RISC-V zkVM. -pub struct SP1Prover { +pub struct SP1Prover { /// The machine used for proving the core step. pub core_prover: C::CoreProver, @@ -1516,14 +1516,8 @@ pub mod tests { // TODO(mattstam): We should Test::Plonk here, but this uses the existing // docker image which has a different API than the current. So we need to wait until the // next release (v1.2.0+), and then switch it back. - let prover = SP1Prover::::new(); - test_e2e_prover::( - &prover, - elf, - SP1Stdin::default(), - opts, - Test::All, - ) + let prover = SP1Prover::::new(); + test_e2e_prover::(&prover, elf, SP1Stdin::default(), opts, Test::All) } /// Tests an end-to-end workflow of proving a program across the entire proof generation @@ -1532,13 +1526,13 @@ pub mod tests { #[serial] fn test_e2e_with_deferred_proofs() -> Result<()> { setup_logger(); - test_e2e_with_deferred_proofs_prover::(SP1ProverOpts::default()) + test_e2e_with_deferred_proofs_prover::(SP1ProverOpts::default()) } #[test] fn test_deterministic_setup() { setup_logger(); - let prover = SP1Prover::::new(); + let prover = SP1Prover::::new(); let program = test_artifacts::FIBONACCI_ELF; let (pk, _) = prover.setup(program); let pk2 = prover.setup(program).0; diff --git a/crates/recursion/gnark-ffi/src/proof.rs b/crates/recursion/gnark-ffi/src/proof.rs index ab4345241a..fa71022f42 100644 --- a/crates/recursion/gnark-ffi/src/proof.rs +++ b/crates/recursion/gnark-ffi/src/proof.rs @@ -6,7 +6,6 @@ pub enum ProofBn254 { Groth16(Groth16Bn254Proof), } -/// A zero-knowledge proof generated by the PLONK protocol with a Base64 encoded gnark PLONK proof. #[derive(Debug, Clone, Serialize, Deserialize, Default)] pub struct PlonkBn254Proof { pub public_inputs: [String; 2], @@ -15,8 +14,6 @@ pub struct PlonkBn254Proof { pub plonk_vkey_hash: [u8; 32], } -/// A zero-knowledge proof generated by the Groth16 protocol with a Base64 encoded gnark Groth16 -/// proof. #[derive(Debug, Clone, Serialize, Deserialize, Default)] pub struct Groth16Bn254Proof { pub public_inputs: [String; 2], diff --git a/crates/sdk/Cargo.toml b/crates/sdk/Cargo.toml index f6fe5acdd3..095b86a24d 100644 --- a/crates/sdk/Cargo.toml +++ b/crates/sdk/Cargo.toml @@ -58,21 +58,11 @@ backoff = { version = "0.4", features = ["tokio"], optional = true } test-artifacts = { workspace = true } [features] -default = ["network"] +default = ["cuda", "network"] native-gnark = ["sp1-prover/native-gnark"] # TODO: Once alloy has a 1.* release, we can likely remove this feature flag, as there will be less # dependency resolution issues. network = [ - "dep:prost", - "dep:alloy-sol-types", - "dep:tokio", - "dep:alloy-signer", - "dep:alloy-signer-local", - "dep:reqwest", - "dep:twirp", - "dep:reqwest-middleware", -] -network-v2 = [ "dep:prost", "dep:alloy-sol-types", "dep:alloy-signer", diff --git a/crates/sdk/src/artifacts.rs b/crates/sdk/src/artifacts.rs index 2ed25462c0..f287e9a874 100644 --- a/crates/sdk/src/artifacts.rs +++ b/crates/sdk/src/artifacts.rs @@ -1,18 +1,13 @@ +//! # SP1 Artifacts +//! +//! A library for exporting the SP1 artifacts to the specified output directory. + use std::path::PathBuf; use anyhow::{Context, Result}; -#[cfg(any(feature = "network", feature = "network-v2"))] -use { - futures::StreamExt, - indicatif::{ProgressBar, ProgressStyle}, - reqwest::Client, - std::{cmp::min, fs::File, io::Write}, -}; - -pub use sp1_prover::build::build_plonk_bn254_artifacts_with_dummy; - use crate::install::try_install_circuit_artifacts; +pub use sp1_prover::build::build_plonk_bn254_artifacts_with_dummy; /// Exports the solidity verifier for PLONK proofs to the specified output directory. /// @@ -71,35 +66,3 @@ pub fn export_solidity_groth16_bn254_verifier(output_dir: impl Into) -> Ok(()) } - -#[cfg(any(feature = "network", feature = "network-v2"))] -pub async fn download_file( - client: &Client, - url: &str, - file: &mut File, -) -> std::result::Result<(), String> { - let res = client.get(url).send().await.or(Err(format!("Failed to GET from '{}'", &url)))?; - let total_size = - res.content_length().ok_or(format!("Failed to get content length from '{}'", &url))?; - - let pb = ProgressBar::new(total_size); - pb.set_style(ProgressStyle::default_bar() - .template("{msg}\n{spinner:.green} [{elapsed_precise}] [{wide_bar:.cyan/blue}] {bytes}/{total_bytes} ({bytes_per_sec}, {eta})").unwrap() - .progress_chars("#>-")); - println!("Downloading {}", url); - - let mut downloaded: u64 = 0; - let mut stream = res.bytes_stream(); - - while let Some(item) = stream.next().await { - let chunk = item.or(Err("Error while downloading file"))?; - file.write_all(&chunk).or(Err("Error while writing to file"))?; - let new = min(downloaded + (chunk.len() as u64), total_size); - downloaded = new; - pb.set_position(new); - } - - let msg = format!("Downloaded {} to {:?}", url, file); - pb.finish_with_message(msg); - Ok(()) -} diff --git a/crates/sdk/src/client.rs b/crates/sdk/src/client.rs new file mode 100644 index 0000000000..5db86a88d6 --- /dev/null +++ b/crates/sdk/src/client.rs @@ -0,0 +1,79 @@ +//! # SP1 Prover Client +//! +//! A client for interacting with the prover for the SP1 RISC-V zkVM. + +use sp1_prover::SP1_CIRCUIT_VERSION; + +use crate::cpu::CpuProver; +use crate::cuda::CudaProver; +use crate::env::EnvProver; +use crate::network::builder::NetworkProverBuilder; + +use sp1_prover::SP1Prover; + +/// A client for interacting with the prover for the SP1 RISC-V zkVM. +/// +/// The client can be used to execute programs, generate proofs, and verify proofs. +pub struct ProverClient; + +impl ProverClient { + /// Creates a new [EnvProver] from the environment. + #[deprecated(since = "4.0.0", note = "use `ProverClient::from_env()` instead")] + #[allow(clippy::new_ret_no_self)] + pub fn new() -> EnvProver { + Self::from_env() + } + + /// Gets the current version of the SP1 RISC-V zkVM. + /// + /// WARNING: This is not the same as the version of the SP1 SDK. + pub fn version() -> String { + SP1_CIRCUIT_VERSION.to_string() + } + + /// Builds an [EnvProver], which loads the mode and any settings from the environment. + /// + /// # Usage + /// ```no_run + /// use sp1_sdk::ProverClient; + /// + /// std::env::set_var("SP1_PROVER", "network"); + /// std::env::set_var("SP1_PRIVATE_KEY", "..."); + /// let prover = ProverClient::from_env(); + /// let (pk, vk) = prover.setup(elf); + /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); + /// ``` + pub fn from_env() -> EnvProver { + EnvProver::new() + } + + /// Builds a [CpuProver] specifically for local CPU proving. + /// + /// # Usage + /// ```no_run + /// use sp1_sdk::ProverClient; + /// + /// let prover = ProverClient::cpu(); + /// let (pk, vk) = prover.setup(elf); + /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); + /// ``` + pub fn cpu() -> CpuProver { + CpuProver::new() + } + + /// Builds a [CudaProver] specifically for local NVIDIA GPU proving. + pub fn cuda() -> CudaProver { + CudaProver::new(SP1Prover::new()) + } + + /// Builds a [NetworkProver] specifically for network proving. + #[cfg(feature = "network")] + pub fn network() -> NetworkProverBuilder { + NetworkProverBuilder { private_key: None, rpc_url: None } + } + + /// Builds a [CpuProver] specifically for mock proving. + pub fn mock() -> CpuProver { + CpuProver::mock() + } +} diff --git a/crates/sdk/src/cpu/execute.rs b/crates/sdk/src/cpu/execute.rs new file mode 100644 index 0000000000..f0f251a32e --- /dev/null +++ b/crates/sdk/src/cpu/execute.rs @@ -0,0 +1,115 @@ +//! # CPU Execution +//! +//! This module provides a builder for simulating the execution of a program on the CPU. + +use anyhow::Result; +use sp1_core_executor::{ExecutionReport, HookEnv, SP1ContextBuilder}; +use sp1_core_machine::io::SP1Stdin; +use sp1_primitives::io::SP1PublicValues; +use sp1_prover::{components::CpuProverComponents, SP1Prover}; + +/// A builder for simulating the execution of a program on the CPU. +/// +/// This builder providers a typed interface for configuring the SP1 RISC-V executor. The builder +/// is used for both the [crate::cpu::CpuProver] and [crate::CudaProver] client types. +pub struct CpuExecuteBuilder<'a> { + pub(crate) elf: &'a [u8], + pub(crate) stdin: SP1Stdin, + pub(crate) prover: &'a SP1Prover, + pub(crate) context_builder: SP1ContextBuilder<'a>, +} + +impl<'a> CpuExecuteBuilder<'a> { + /// Add a executor [sp1_core_executor::Hook] into the context. + /// + /// # Arguments + /// * `fd` - The file descriptor that triggers this execution hook. + /// * `f` - The function to invoke when the hook is triggered. + /// + /// # Details + /// Hooks may be invoked from within SP1 by writing to the specified file descriptor `fd` + /// with [`sp1_zkvm::io::write`], returning a list of arbitrary data that may be read + /// with successive calls to [`sp1_zkvm::io::read`]. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cpu(); + /// let builder = client.execute(elf, stdin) + /// .with_hook(1, |env, data| { + /// println!("Hook triggered with data: {:?}", data); + /// vec![vec![1, 2, 3]] + /// }) + /// .run(); + /// ``` + pub fn with_hook( + mut self, + fd: u32, + f: impl FnMut(HookEnv, &[u8]) -> Vec> + Send + Sync + 'a, + ) -> Self { + self.context_builder.hook(fd, f); + self + } + + /// Set the maximum number of cpu cycles to use for execution. + /// + /// # Arguments + /// * `max_cycles` - The maximum number of cycles to use for execution. + /// + /// # Details + /// If the cycle limit is exceeded, execution will fail with the + /// [`sp1_core_executor::ExecutionError::ExceededCycleLimit`]. This is useful for preventing + /// infinite loops in the and limiting the execution time of the program. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cpu(); + /// let builder = client.execute(elf, stdin) + /// .cycle_limit(1000000) + /// .run(); + /// ``` + pub fn cycle_limit(mut self, max_cycles: u64) -> Self { + self.context_builder.max_cycles(max_cycles); + self + } + + /// Whether to skip deferred proof verification in the executor. + /// + /// # Arguments + /// * `value` - Whether to skip deferred proof verification. + /// + /// # Details + /// If set to `true`, the executor will skip the deferred proof verification step. This is useful + /// for reducing the execution time of the program and optimistically assuming that the + /// deferred proofs are corect. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cpu(); + /// let builder = client.execute(elf, stdin) + /// .deferred_proof_verification(false) + /// .run(); + /// ``` + pub fn deferred_proof_verification(mut self, value: bool) -> Self { + self.context_builder.set_skip_deferred_proof_verification(!value); + self + } + + /// Executes the program on the input with the built arguments. + /// + /// # Details + /// This method will execute the program on the input with the built arguments. If the program + /// fails to execute, the method will return an error. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cpu(); + /// let (public_values, execution_report) = client.execute(elf, stdin) + /// .run() + /// .unwrap(); + /// ``` + pub fn run(self) -> Result<(SP1PublicValues, ExecutionReport)> { + let Self { prover, elf, stdin, mut context_builder } = self; + let context = context_builder.build(); + Ok(prover.execute(elf, &stdin, context)?) + } +} diff --git a/crates/sdk/src/cpu/mod.rs b/crates/sdk/src/cpu/mod.rs new file mode 100644 index 0000000000..2d0d9fbe66 --- /dev/null +++ b/crates/sdk/src/cpu/mod.rs @@ -0,0 +1,326 @@ +//! # SP1 CPU Prover +//! +//! A prover that uses the CPU to execute and prove programs. + +pub mod execute; +pub mod prove; + +use anyhow::Result; +use execute::CpuExecuteBuilder; +use hashbrown::HashMap; +use p3_baby_bear::BabyBear; +use p3_field::{AbstractField, PrimeField}; +use p3_fri::{FriProof, TwoAdicFriPcsProof}; +use prove::CpuProveBuilder; +use sp1_core_executor::{SP1Context, SP1ContextBuilder, SP1ReduceProof}; +use sp1_core_machine::io::SP1Stdin; +use sp1_prover::{ + components::CpuProverComponents, + verify::{verify_groth16_bn254_public_inputs, verify_plonk_bn254_public_inputs}, + Groth16Bn254Proof, HashableKey, PlonkBn254Proof, SP1CoreProofData, SP1ProofWithMetadata, + SP1Prover, +}; +use sp1_stark::{ + SP1CoreOpts, SP1ProverOpts, ShardCommitment, ShardOpenedValues, ShardProof, StarkVerifyingKey, +}; + +use crate::install::try_install_circuit_artifacts; +use crate::prover::verify_proof; +use crate::SP1VerificationError; +use crate::{ + Prover, SP1Proof, SP1ProofMode, SP1ProofWithPublicValues, SP1ProvingKey, SP1VerifyingKey, +}; + +/// A prover that uses the CPU to execute and prove programs. +pub struct CpuProver { + pub(crate) prover: SP1Prover, + pub(crate) mock: bool, +} + +impl CpuProver { + /// Creates a new [`CpuProver`]. + pub fn new() -> Self { + Self::default() + } + + /// Creates a new [`CpuProver`] in mock mode. + pub fn mock() -> Self { + Self { prover: SP1Prover::new(), mock: true } + } + + /// Creates a new [`CpuExecuteBuilder`] for simulating the execution of a program on the CPU. + /// + /// # Details + /// The builder is used for both the [crate::cpu::CpuProver] and [crate::CudaProver] client + /// types. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cpu(); + /// let (public_values, execution_report) = client.execute(elf, stdin) + /// .run() + /// .unwrap(); + /// ``` + pub fn execute<'a>(&'a self, elf: &'a [u8], stdin: &SP1Stdin) -> CpuExecuteBuilder<'a> { + CpuExecuteBuilder { + prover: &self.prover, + elf, + stdin: stdin.clone(), + context_builder: SP1ContextBuilder::default(), + } + } + + /// Creates a new [`CpuProveBuilder`] for proving a program on the CPU. + /// + /// # Details + /// The builder is used for only the [crate::cpu::CpuProver] client type. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cpu(); + /// let builder = client.prove(pk, stdin) + /// .core() + /// .run(); + /// ``` + pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> CpuProveBuilder<'a> { + CpuProveBuilder { + prover: self, + mode: SP1ProofMode::Core, + pk, + stdin, + context_builder: SP1ContextBuilder::default(), + core_opts: SP1CoreOpts::default(), + recursion_opts: SP1CoreOpts::recursion(), + } + } + + pub(crate) fn prove_impl<'a>( + &'a self, + pk: &SP1ProvingKey, + stdin: &SP1Stdin, + opts: SP1ProverOpts, + context: SP1Context<'a>, + mode: SP1ProofMode, + ) -> Result { + // If we're in mock mode, return a mock proof. + if self.mock { + return self.mock_prove_impl(pk, stdin.clone(), mode); + } + + // Generate the core proof. + let proof: SP1ProofWithMetadata = + self.prover.prove_core(pk, stdin, opts, context)?; + if mode == SP1ProofMode::Core { + return Ok(SP1ProofWithPublicValues { + proof: SP1Proof::Core(proof.proof.0), + public_values: proof.public_values, + sp1_version: self.version().to_string(), + }); + } + + // Generate the compressed proof. + let deferred_proofs = + stdin.proofs.iter().map(|(reduce_proof, _)| reduce_proof.clone()).collect(); + let public_values = proof.public_values.clone(); + let reduce_proof = self.prover.compress(&pk.vk, proof, deferred_proofs, opts)?; + if mode == SP1ProofMode::Compressed { + return Ok(SP1ProofWithPublicValues { + proof: SP1Proof::Compressed(Box::new(reduce_proof)), + public_values, + sp1_version: self.version().to_string(), + }); + } + + // Generate the shrink proof. + let compress_proof = self.prover.shrink(reduce_proof, opts)?; + + // Generate the wrap proof. + let outer_proof = self.prover.wrap_bn254(compress_proof, opts)?; + + // Generate the gnark proof. + match mode { + SP1ProofMode::Groth16 => { + let groth16_bn254_artifacts = if sp1_prover::build::sp1_dev_mode() { + sp1_prover::build::try_build_groth16_bn254_artifacts_dev( + &outer_proof.vk, + &outer_proof.proof, + ) + } else { + try_install_circuit_artifacts("groth16") + }; + + let proof = self.prover.wrap_groth16_bn254(outer_proof, &groth16_bn254_artifacts); + return Ok(SP1ProofWithPublicValues { + proof: SP1Proof::Groth16(proof), + public_values, + sp1_version: self.version().to_string(), + }); + } + SP1ProofMode::Plonk => { + let plonk_bn254_artifacts = if sp1_prover::build::sp1_dev_mode() { + sp1_prover::build::try_build_plonk_bn254_artifacts_dev( + &outer_proof.vk, + &outer_proof.proof, + ) + } else { + try_install_circuit_artifacts("plonk") + }; + let proof = self.prover.wrap_plonk_bn254(outer_proof, &plonk_bn254_artifacts); + return Ok(SP1ProofWithPublicValues { + proof: SP1Proof::Plonk(proof), + public_values, + sp1_version: self.version().to_string(), + }); + } + _ => unreachable!(), + } + } + + pub(crate) fn mock_prove_impl( + &self, + pk: &SP1ProvingKey, + stdin: SP1Stdin, + mode: SP1ProofMode, + ) -> Result { + let context = SP1Context::default(); + match mode { + SP1ProofMode::Core => { + let (public_values, _) = self.prover.execute(&pk.elf, &stdin, context)?; + Ok(SP1ProofWithPublicValues { + proof: SP1Proof::Core(vec![]), + public_values, + sp1_version: self.version().to_string(), + }) + } + SP1ProofMode::Compressed => { + let (public_values, _) = self.prover.execute(&pk.elf, &stdin, context)?; + + let shard_proof = ShardProof { + commitment: ShardCommitment { + global_main_commit: [BabyBear::zero(); 8].into(), + local_main_commit: [BabyBear::zero(); 8].into(), + permutation_commit: [BabyBear::zero(); 8].into(), + quotient_commit: [BabyBear::zero(); 8].into(), + }, + opened_values: ShardOpenedValues { chips: vec![] }, + opening_proof: TwoAdicFriPcsProof { + fri_proof: FriProof { + commit_phase_commits: vec![], + query_proofs: vec![], + final_poly: Default::default(), + pow_witness: BabyBear::zero(), + }, + query_openings: vec![], + }, + chip_ordering: HashMap::new(), + public_values: vec![], + }; + + let reduce_vk = StarkVerifyingKey { + commit: [BabyBear::zero(); 8].into(), + pc_start: BabyBear::zero(), + chip_information: vec![], + chip_ordering: HashMap::new(), + }; + + let proof = SP1Proof::Compressed(Box::new(SP1ReduceProof { + vk: reduce_vk, + proof: shard_proof, + })); + + Ok(SP1ProofWithPublicValues { + proof, + public_values, + sp1_version: self.version().to_string(), + }) + } + SP1ProofMode::Plonk => { + let (public_values, _) = self.prover.execute(&pk.elf, &stdin, context)?; + Ok(SP1ProofWithPublicValues { + proof: SP1Proof::Plonk(PlonkBn254Proof { + public_inputs: [ + pk.vk.hash_bn254().as_canonical_biguint().to_string(), + public_values.hash_bn254().to_string(), + ], + encoded_proof: "".to_string(), + raw_proof: "".to_string(), + plonk_vkey_hash: [0; 32], + }), + public_values, + sp1_version: self.version().to_string(), + }) + } + SP1ProofMode::Groth16 => { + let (public_values, _) = self.prover.execute(&pk.elf, &stdin, context)?; + Ok(SP1ProofWithPublicValues { + proof: SP1Proof::Groth16(Groth16Bn254Proof { + public_inputs: [ + pk.vk.hash_bn254().as_canonical_biguint().to_string(), + public_values.hash_bn254().to_string(), + ], + encoded_proof: "".to_string(), + raw_proof: "".to_string(), + groth16_vkey_hash: [0; 32], + }), + public_values, + sp1_version: self.version().to_string(), + }) + } + } + } + + fn mock_verify( + bundle: &SP1ProofWithPublicValues, + vkey: &SP1VerifyingKey, + ) -> Result<(), SP1VerificationError> { + match &bundle.proof { + SP1Proof::Plonk(PlonkBn254Proof { public_inputs, .. }) => { + verify_plonk_bn254_public_inputs(vkey, &bundle.public_values, public_inputs) + .map_err(SP1VerificationError::Plonk) + } + SP1Proof::Groth16(Groth16Bn254Proof { public_inputs, .. }) => { + verify_groth16_bn254_public_inputs(vkey, &bundle.public_values, public_inputs) + .map_err(SP1VerificationError::Groth16) + } + _ => Ok(()), + } + } +} + +impl Prover for CpuProver { + fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey) { + self.prover.setup(elf) + } + + fn inner(&self) -> &SP1Prover { + &self.prover + } + + fn prove( + &self, + pk: &SP1ProvingKey, + stdin: &SP1Stdin, + mode: SP1ProofMode, + ) -> Result { + self.prove_impl(pk, stdin, Default::default(), SP1Context::default(), mode) + } + + fn verify( + &self, + bundle: &SP1ProofWithPublicValues, + vkey: &SP1VerifyingKey, + ) -> Result<(), SP1VerificationError> { + if self.mock { + tracing::warn!("using mock verifier"); + return Self::mock_verify(bundle, vkey); + } + verify_proof(self.inner(), self.version(), bundle, vkey) + } +} + +impl Default for CpuProver { + fn default() -> Self { + let prover = SP1Prover::new(); + Self { prover, mock: false } + } +} diff --git a/crates/sdk/src/cpu/prove.rs b/crates/sdk/src/cpu/prove.rs new file mode 100644 index 0000000000..51f097830e --- /dev/null +++ b/crates/sdk/src/cpu/prove.rs @@ -0,0 +1,221 @@ +//! # CPU Proving +//! +//! This module provides a builder for proving a program on the CPU. + +use anyhow::Result; +use sp1_core_executor::SP1ContextBuilder; +use sp1_core_machine::io::SP1Stdin; +use sp1_prover::SP1ProvingKey; +use sp1_stark::{SP1CoreOpts, SP1ProverOpts}; + +use super::CpuProver; +use crate::{SP1ProofMode, SP1ProofWithPublicValues}; + +/// A builder for proving a program on the CPU. +/// +/// This builder provides a typed interface for configuring the SP1 RISC-V prover. The builder is +/// used for only the [crate::cpu::CpuProver] client type. +pub struct CpuProveBuilder<'a> { + pub(crate) prover: &'a CpuProver, + pub(crate) mode: SP1ProofMode, + pub(crate) context_builder: SP1ContextBuilder<'a>, + pub(crate) pk: &'a SP1ProvingKey, + pub(crate) stdin: SP1Stdin, + pub(crate) core_opts: SP1CoreOpts, + pub(crate) recursion_opts: SP1CoreOpts, +} + +impl<'a> CpuProveBuilder<'a> { + /// Set the proof kind to [SP1ProofKind::Core] mode. + /// + /// # Details + /// This is the default mode for the prover. The proofs grow linearly in size with the number + /// of cycles. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cpu(); + /// let builder = client.prove(pk, stdin) + /// .core() + /// .run(); + /// ``` + pub fn core(mut self) -> Self { + self.mode = SP1ProofMode::Core; + self + } + + /// Set the proof kind to [SP1ProofKind::Compressed] mode. + /// + /// # Details + /// This mode produces a proof that is of constant size, regardless of the number of cycles. It + /// takes longer to prove than [SP1ProofKind::Core] due to the need to recursively aggregate + /// proofs inot a single proof. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cpu(); + /// let builder = client.prove(pk, stdin) + /// .compressed() + /// .run(); + /// ``` + pub fn compressed(mut self) -> Self { + self.mode = SP1ProofMode::Compressed; + self + } + + /// Set the proof mode to [SP1ProofKind::Plonk] mode. + /// + /// # Details + /// This mode produces a const size PLONK proof that can be verified on chain for roughly ~300k + /// gas. This mode is useful for producing a maximally small proof that can be verified on + /// chain. For more efficient SNARK wrapping, you can use the [SP1ProofKind::Groth16] mode but + /// this mode is more . + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cpu(); + /// let builder = client.prove(pk, stdin) + /// .plonk() + /// .run(); + /// ``` + pub fn plonk(mut self) -> Self { + self.mode = SP1ProofMode::Plonk; + self + } + + /// Set the proof mode to [SP1ProofKind::Groth16] mode. + /// + /// # Details + /// This mode produces a Groth16 proof that can be verified on chain for roughly ~100k gas. This + /// mode is useful for producing a proof that can be verified on chain with minimal gas. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cpu(); + /// let builder = client.prove(pk, stdin) + /// .groth16() + /// .run(); + /// ``` + pub fn groth16(mut self) -> Self { + self.mode = SP1ProofMode::Groth16; + self + } + + /// Set the proof mode to the given [SP1ProofKind]. + /// + /// # Details + /// This method is useful for setting the proof mode to a custom mode. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cpu(); + /// let builder = client.prove(pk, stdin) + /// .mode(SP1ProofMode::Groth16) + /// .run(); + /// ``` + pub fn mode(mut self, mode: SP1ProofMode) -> Self { + self.mode = mode; + self + } + + /// Set the shard size for proving. + /// + /// # Details + /// The value should be 2^16, 2^17, ..., 2^22. You must be careful to set this value + /// correctly, as it will affect the memory usage of the prover and the recursion/verification + /// complexity. By default, the value is set to some predefined values that are optimized for performance + /// based on the available amount of RAM on the system. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cpu(); + /// let builder = client.prove(pk, stdin) + /// .shard_size(1 << 16) + /// .run(); + /// ``` + pub fn shard_size(mut self, value: usize) -> Self { + assert!(value.is_power_of_two(), "shard size must be a power of 2"); + self.core_opts.shard_size = value; + self + } + + /// Set the shard batch size for proving. + /// + /// # Details + /// This is the number of shards that are processed in a single batch in the prover. You should + /// probably not change this value unless you know what you are doing. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cpu(); + /// let builder = client.prove(pk, stdin) + /// .shard_batch_size(4) + /// .run(); + /// ``` + pub fn shard_batch_size(mut self, value: usize) -> Self { + self.core_opts.shard_batch_size = value; + self + } + + /// Set the maximum number of cpu cycles to use for execution. + /// + /// # Details + /// If the cycle limit is exceeded, execution will return + /// [`sp1_core_executor::ExecutionError::ExceededCycleLimit`]. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cpu(); + /// let builder = client.prove(pk, stdin) + /// .cycle_limit(1000000) + /// .run(); + /// ``` + pub fn cycle_limit(mut self, cycle_limit: u64) -> Self { + self.context_builder.max_cycles(cycle_limit); + self + } + + /// Set the skip deferred proof verification flag. + /// + /// # Details + /// If set to `true`, the prover will skip the deferred proof verification step in the executor. + /// This is useful for reducing the amount of time it takes to execute the program. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cpu(); + /// let builder = client.prove(pk, stdin) + /// .deferred_proof_verification(false) + /// .run(); + /// ``` + pub fn deferred_proof_verification(mut self, value: bool) -> Self { + self.context_builder.set_skip_deferred_proof_verification(value); + self + } + + /// Run the prover with the built arguments. + /// + /// # Details + /// This method will run the prover with the built arguments. If the prover fails to run, the + /// method will return an error. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cpu(); + /// let (proof, public_values) = client.prove(pk, stdin) + /// .run() + /// .unwrap(); + /// ``` + pub fn run(self) -> Result { + // Get the arguments. + let Self { prover, mode, pk, stdin, mut context_builder, core_opts, recursion_opts } = self; + let opts = SP1ProverOpts { core_opts, recursion_opts }; + let context = context_builder.build(); + + // Dump the program and stdin to files for debugging if `SP1_DUMP` is set. + crate::utils::sp1_dump(&pk.elf, &stdin); + + // Run the prover. + prover.prove_impl(pk, &stdin, opts, context, mode) + } +} diff --git a/crates/sdk/src/cuda/mod.rs b/crates/sdk/src/cuda/mod.rs new file mode 100644 index 0000000000..f539f15b9c --- /dev/null +++ b/crates/sdk/src/cuda/mod.rs @@ -0,0 +1,160 @@ +//! # SP1 CUDA Prover +//! +//! A prover that uses the CUDA to execute and prove programs. + +mod prove; + +use anyhow::Result; +use prove::CudaProveBuilder; +use sp1_core_executor::SP1ContextBuilder; +use sp1_core_machine::io::SP1Stdin; +use sp1_cuda::SP1CudaProver; +use sp1_prover::{components::CpuProverComponents, SP1Prover}; + +use crate::cpu::execute::CpuExecuteBuilder; +use crate::install::try_install_circuit_artifacts; +use crate::{ + Prover, SP1Proof, SP1ProofMode, SP1ProofWithPublicValues, SP1ProvingKey, SP1VerifyingKey, +}; + +/// A prover that uses the CPU for execution and the CUDA for proving. +pub struct CudaProver { + pub(crate) cpu_prover: SP1Prover, + pub(crate) cuda_prover: SP1CudaProver, +} + +impl CudaProver { + /// Creates a new [`CudaProver`]. + pub fn new(prover: SP1Prover) -> Self { + let cuda_prover = SP1CudaProver::new(); + Self { + cpu_prover: prover, + cuda_prover: cuda_prover.expect("Failed to initialize CUDA prover"), + } + } + + /// Creates a new [`CpuExecuteBuilder`] for simulating the execution of a program on the CPU. + /// + /// # Details + /// The builder is used for both the [crate::cpu::CpuProver] and [crate::CudaProver] client + /// types. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cpu(); + /// let (public_values, execution_report) = client.execute(elf, stdin) + /// .run() + /// .unwrap(); + /// ``` + pub fn execute<'a>(&'a self, elf: &'a [u8], stdin: &SP1Stdin) -> CpuExecuteBuilder<'a> { + CpuExecuteBuilder { + prover: &self.cpu_prover, + elf, + stdin: stdin.clone(), + context_builder: SP1ContextBuilder::default(), + } + } + + /// Creates a new [`CudaProveBuilder`] for proving a program on the CUDA. + /// + /// # Details + /// The builder is used for only the [crate::CudaProver] client type. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cuda(); + /// let (proof, public_values) = client.prove(pk, stdin) + /// .run() + /// .unwrap(); + /// ``` + pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> CudaProveBuilder<'a> { + CudaProveBuilder { prover: self, mode: SP1ProofMode::Core, pk, stdin } + } +} + +impl Prover for CudaProver { + fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey) { + self.cpu_prover.setup(elf) + } + + fn inner(&self) -> &SP1Prover { + &self.cpu_prover + } + + fn prove( + &self, + pk: &SP1ProvingKey, + stdin: &SP1Stdin, + kind: SP1ProofMode, + ) -> Result { + // Generate the core proof. + let proof = self.cuda_prover.prove_core(pk, stdin)?; + if kind == SP1ProofMode::Core { + return Ok(SP1ProofWithPublicValues { + proof: SP1Proof::Core(proof.proof.0), + public_values: proof.public_values, + sp1_version: self.version().to_string(), + }); + } + + // Generate the compressed proof. + let deferred_proofs = + stdin.proofs.iter().map(|(reduce_proof, _)| reduce_proof.clone()).collect(); + let public_values = proof.public_values.clone(); + let reduce_proof = self.cuda_prover.compress(&pk.vk, proof, deferred_proofs)?; + if kind == SP1ProofMode::Compressed { + return Ok(SP1ProofWithPublicValues { + proof: SP1Proof::Compressed(Box::new(reduce_proof)), + public_values, + sp1_version: self.version().to_string(), + }); + } + + // Generate the shrink proof. + let compress_proof = self.cuda_prover.shrink(reduce_proof)?; + + // Genenerate the wrap proof. + let outer_proof = self.cuda_prover.wrap_bn254(compress_proof)?; + + if kind == SP1ProofMode::Plonk { + let plonk_bn254_artifacts = if sp1_prover::build::sp1_dev_mode() { + sp1_prover::build::try_build_plonk_bn254_artifacts_dev( + &outer_proof.vk, + &outer_proof.proof, + ) + } else { + try_install_circuit_artifacts("plonk") + }; + let proof = self.cpu_prover.wrap_plonk_bn254(outer_proof, &plonk_bn254_artifacts); + return Ok(SP1ProofWithPublicValues { + proof: SP1Proof::Plonk(proof), + public_values, + sp1_version: self.version().to_string(), + }); + } else if kind == SP1ProofMode::Groth16 { + let groth16_bn254_artifacts = if sp1_prover::build::sp1_dev_mode() { + sp1_prover::build::try_build_groth16_bn254_artifacts_dev( + &outer_proof.vk, + &outer_proof.proof, + ) + } else { + try_install_circuit_artifacts("groth16") + }; + + let proof = self.cpu_prover.wrap_groth16_bn254(outer_proof, &groth16_bn254_artifacts); + return Ok(SP1ProofWithPublicValues { + proof: SP1Proof::Groth16(proof), + public_values, + sp1_version: self.version().to_string(), + }); + } + + unreachable!() + } +} + +impl Default for CudaProver { + fn default() -> Self { + Self::new(SP1Prover::new()) + } +} diff --git a/crates/sdk/src/cuda/prove.rs b/crates/sdk/src/cuda/prove.rs new file mode 100644 index 0000000000..ff69d13048 --- /dev/null +++ b/crates/sdk/src/cuda/prove.rs @@ -0,0 +1,129 @@ +use anyhow::Result; +use sp1_core_machine::io::SP1Stdin; +use sp1_prover::{components::CpuProverComponents, SP1ProvingKey}; + +use super::CudaProver; +use crate::{Prover, SP1ProofMode, SP1ProofWithPublicValues}; + +pub struct CudaProveBuilder<'a> { + pub(crate) prover: &'a CudaProver, + pub(crate) mode: SP1ProofMode, + pub(crate) pk: &'a SP1ProvingKey, + pub(crate) stdin: SP1Stdin, +} + +impl<'a> CudaProveBuilder<'a> { + /// Set the proof kind to [SP1ProofMode::Core] mode. + /// + /// # Details + /// This is the default mode for the prover. The proofs grow linearly in size with the number + /// of cycles. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cuda(); + /// let builder = client.prove(pk, stdin) + /// .core() + /// .run(); + /// ``` + pub fn core(mut self) -> Self { + self.mode = SP1ProofMode::Core; + self + } + + /// Set the proof kind to [SP1ProofMode::Compressed] mode. + /// + /// # Details + /// This mode produces a proof that is of constant size, regardless of the number of cycles. It + /// takes longer to prove than [SP1ProofMode::Core] due to the need to recursively aggregate + /// proofs into a single proof. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cuda(); + /// let builder = client.prove(pk, stdin) + /// .compressed() + /// .run(); + /// ``` + pub fn compressed(mut self) -> Self { + self.mode = SP1ProofMode::Compressed; + self + } + + /// Set the proof mode to [SP1ProofMode::Plonk] mode. + /// + /// # Details + /// This mode produces a const size PLONK proof that can be verified on chain for roughly ~300k + /// gas. This mode is useful for producing a maximally small proof that can be verified on + /// chain. For more efficient SNARK wrapping, you can use the [SP1ProofMode::Groth16] mode but + /// this mode is more . + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cuda(); + /// let builder = client.prove(pk, stdin) + /// .plonk() + /// .run(); + /// ``` + pub fn plonk(mut self) -> Self { + self.mode = SP1ProofMode::Plonk; + self + } + + /// Set the proof mode to [SP1ProofMode::Groth16] mode. + /// + /// # Details + /// This mode produces a Groth16 proof that can be verified on chain for roughly ~100k gas. This + /// mode is useful for producing a proof that can be verified on chain with minimal gas. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cuda(); + /// let builder = client.prove(pk, stdin) + /// .groth16() + /// .run(); + /// ``` + pub fn groth16(mut self) -> Self { + self.mode = SP1ProofMode::Groth16; + self + } + + /// Set the proof mode to the given [SP1ProofMode]. + /// + /// # Details + /// This method is useful for setting the proof mode to a custom mode. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::gpu(); + /// let builder = client.prove(pk, stdin) + /// .mode(SP1ProofMode::Groth16) + /// .run(); + /// ``` + pub fn mode(mut self, mode: SP1ProofMode) -> Self { + self.mode = mode; + self + } + + /// Run the prover with the built arguments. + /// + /// # Details + /// This method will run the prover with the built arguments. If the prover fails to run, the + /// method will return an error. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::gpu(); + /// let (proof, public_values) = client.prove(pk, stdin) + /// .run() + /// .unwrap(); + /// ``` + pub fn run(self) -> Result { + let Self { prover, mode: kind, pk, stdin } = self; + + // Dump the program and stdin to files for debugging if `SP1_DUMP` is set. + crate::utils::sp1_dump(&pk.elf, &stdin); + + Prover::::prove(prover, pk, &stdin, kind) + } +} diff --git a/crates/sdk/src/env/mod.rs b/crates/sdk/src/env/mod.rs new file mode 100644 index 0000000000..d51e79f7bb --- /dev/null +++ b/crates/sdk/src/env/mod.rs @@ -0,0 +1,174 @@ +//! # SP1 Environment Prover +//! +//! A prover that can execute programs and generate proofs with a different implementation based on +//! the value of certain environment variables. + +mod prove; + +use std::env; + +use anyhow::Result; +use prove::EnvProveBuilder; +use sp1_core_executor::SP1ContextBuilder; +use sp1_core_machine::io::SP1Stdin; +use sp1_prover::{components::CpuProverComponents, SP1Prover, SP1ProvingKey, SP1VerifyingKey}; + +use super::{Prover, SP1VerificationError}; +use crate::cpu::execute::CpuExecuteBuilder; +use crate::cpu::CpuProver; +use crate::cuda::CudaProver; +use crate::network::builder::NetworkProverBuilder; +use crate::{SP1ProofMode, SP1ProofWithPublicValues}; + +/// A prover that can execute programs and generate proofs with a different implementation based on +/// the value of certain environment variables. +/// +/// The enviroment variables are described in [EnvProver::new]. +pub struct EnvProver { + pub(crate) prover: Box>, +} + +impl EnvProver { + /// Creates a new [`EnvProver`] with the given configuration. + /// + /// The following environment variables are used to configure the prover: + /// - `SP1_PROVER`: The type of prover to use. Must be one of `mock`, `local`, `cuda`, or `network`. + /// - `NETWORK_PRIVATE_KEY`: The private key to use for the network prover. + /// - `NETWORK_RPC_URL`: The RPC URL to use for the network prover. + pub fn new() -> Self { + let mode = match env::var("SP1_PROVER") { + Ok(mode) => mode, + Err(_) => { + log::warn!("SP1_PROVER environment variable not set, defaulting to 'cpu'"); + "cpu".to_string() + } + }; + + let prover: Box> = match mode.as_str() { + "mock" => Box::new(CpuProver::mock()), + "cpu" => Box::new(CpuProver::new()), + "cuda" => { + #[cfg(not(feature = "cuda"))] + panic!( + "The CUDA prover requires the 'cuda' feature to be enabled. \ + Please enable it in your Cargo.toml with: \ + sp1-sdk = { version = \"...\", features = [\"cuda\"] }" + ); + + #[cfg(feature = "cuda")] + Box::new(CudaProver::new(SP1Prover::new())) + } + "network" => { + #[cfg(not(feature = "network"))] + panic!( + "The network prover requires the 'network' feature to be enabled. \ + Please enable it in your Cargo.toml with: \ + sp1-sdk = { version = \"...\", features = [\"network\"] }" + ); + + #[cfg(feature = "network")] + { + Box::new(NetworkProverBuilder::default().build()) + } + } + _ => panic!( + "Invalid SP1_PROVER value. Expected one of: mock, cpu, cuda, or network. Got: '{}'.\n\ + Please set the SP1_PROVER environment variable to one of the supported values.", + mode + ), + }; + EnvProver { prover } + } + + /// Creates a new [`CpuExecuteBuilder`] for simulating the execution of a program on the CPU. + /// + /// # Details + /// The builder is used for both the [crate::cpu::CpuProver] and [crate::CudaProver] client + /// types. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::from_env(); + /// let (public_values, execution_report) = client.execute(elf, stdin) + /// .run() + /// .unwrap(); + /// ``` + pub fn execute<'a>(&'a self, elf: &'a [u8], stdin: SP1Stdin) -> CpuExecuteBuilder<'a> { + CpuExecuteBuilder { + prover: &self.prover.inner(), + elf, + stdin: stdin.clone(), + context_builder: SP1ContextBuilder::default(), + } + } + + /// Creates a new [EnvProve] for proving a program on the CPU. + /// + /// # Details + /// The builder is used for only the [crate::cpu::CpuProver] client type. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cpu(); + /// let builder = client.prove(pk, stdin) + /// .core() + /// .run(); + /// ``` + pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> EnvProveBuilder<'a> { + EnvProveBuilder { prover: self.prover.as_ref(), mode: SP1ProofMode::Core, pk, stdin } + } + + /// Verifies that the given proof is valid and matches the given verification key produced by + /// [Self::setup]. + /// + /// ### Examples + /// ```no_run + /// use sp1_sdk::{ProverClient, SP1Stdin}; + /// + /// let elf = test_artifacts::FIBONACCI_ELF; + /// let client = ProverClient::env(); + /// let (pk, vk) = client.setup(elf); + /// let mut stdin = SP1Stdin::new(); + /// stdin.write(&10usize); + /// let proof = client.prove(&pk, stdin).run().unwrap(); + /// client.verify(&proof, &vk).unwrap(); + /// ``` + pub fn verify( + &self, + proof: &SP1ProofWithPublicValues, + vk: &SP1VerifyingKey, + ) -> Result<(), SP1VerificationError> { + self.prover.verify(proof, vk) + } + + /// Setup a program to be proven and verified by the SP1 RISC-V zkVM by computing the proving + /// and verifying keys. + pub fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey) { + self.prover.setup(elf) + } +} + +impl Default for EnvProver { + fn default() -> Self { + Self::new() + } +} + +impl Prover for EnvProver { + fn inner(&self) -> &SP1Prover { + self.prover.inner() + } + + fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey) { + self.prover.setup(elf) + } + + fn prove( + &self, + pk: &SP1ProvingKey, + stdin: &SP1Stdin, + mode: SP1ProofMode, + ) -> Result { + self.prover.prove(pk, stdin, mode) + } +} diff --git a/crates/sdk/src/env/prove.rs b/crates/sdk/src/env/prove.rs new file mode 100644 index 0000000000..db6bd4d709 --- /dev/null +++ b/crates/sdk/src/env/prove.rs @@ -0,0 +1,130 @@ +use anyhow::Result; +use sp1_core_machine::io::SP1Stdin; +use sp1_prover::{components::CpuProverComponents, SP1ProvingKey}; + +use crate::{Prover, SP1ProofMode, SP1ProofWithPublicValues}; + +/// Builder to prepare and configure proving execution of a program on an input. +/// May be run with [Self::run]. +pub struct EnvProveBuilder<'a> { + pub(crate) prover: &'a dyn Prover, + pub(crate) mode: SP1ProofMode, + pub(crate) pk: &'a SP1ProvingKey, + pub(crate) stdin: SP1Stdin, +} + +impl<'a> EnvProveBuilder<'a> { + /// Set the proof kind to [SP1ProofMode::Core] mode. + /// + /// # Details + /// This is the default mode for the prover. The proofs grow linearly in size with the number + /// of cycles. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::from_env(); + /// let builder = client.prove(pk, stdin) + /// .core() + /// .run(); + /// ``` + pub fn core(mut self) -> Self { + self.mode = SP1ProofMode::Core; + self + } + + /// Set the proof kind to [SP1ProofMode::Compressed] mode. + /// + /// # Details + /// This mode produces a proof that is of constant size, regardless of the number of cycles. It + /// takes longer to prove than [SP1ProofMode::Core] due to the need to recursively aggregate + /// proofs inot a single proof. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::from_env(); + /// let builder = client.prove(pk, stdin) + /// .compressed() + /// .run(); + /// ``` + pub fn compressed(mut self) -> Self { + self.mode = SP1ProofMode::Compressed; + self + } + + /// Set the proof mode to [SP1ProofMode::Plonk] mode. + /// + /// # Details + /// This mode produces a const size PLONK proof that can be verified on chain for roughly ~300k + /// gas. This mode is useful for producing a maximally small proof that can be verified on + /// chain. For more efficient SNARK wrapping, you can use the [SP1ProofMode::Groth16] mode but + /// this mode is more . + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::from_env(); + /// let builder = client.prove(pk, stdin) + /// .plonk() + /// .run(); + /// ``` + pub fn plonk(mut self) -> Self { + self.mode = SP1ProofMode::Plonk; + self + } + + /// Set the proof mode to [SP1ProofMode::Groth16] mode. + /// + /// # Details + /// This mode produces a Groth16 proof that can be verified on chain for roughly ~100k gas. This + /// mode is useful for producing a proof that can be verified on chain with minimal gas. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::from_env(); + /// let builder = client.prove(pk, stdin) + /// .groth16() + /// .run(); + /// ``` + pub fn groth16(mut self) -> Self { + self.mode = SP1ProofMode::Groth16; + self + } + + /// Set the proof mode to the given [SP1ProofMode]. + /// + /// # Details + /// This method is useful for setting the proof mode to a custom mode. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::from_env(); + /// let builder = client.prove(pk, stdin) + /// .mode(SP1ProofMode::Groth16) + /// .run(); + /// ``` + pub fn mode(mut self, mode: SP1ProofMode) -> Self { + self.mode = mode; + self + } + + /// Run the prover with the built arguments. + /// + /// # Details + /// This method will run the prover with the built arguments. If the prover fails to run, the + /// method will return an error. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::from_env(); + /// let (proof, public_values) = client.prove(pk, stdin) + /// .run() + /// .unwrap(); + /// ``` + pub fn run(self) -> Result { + let Self { prover, mode: kind, pk, stdin } = self; + + // Dump the program and stdin to files for debugging if `SP1_DUMP` is set. + crate::utils::sp1_dump(&pk.elf, &stdin); + + prover.prove(pk, &stdin, kind) + } +} diff --git a/crates/sdk/src/install.rs b/crates/sdk/src/install.rs index b3207664ba..ad3eba0498 100644 --- a/crates/sdk/src/install.rs +++ b/crates/sdk/src/install.rs @@ -1,13 +1,17 @@ +//! # SP1 Install +//! +//! A library for installing the SP1 circuit artifacts. + use cfg_if::cfg_if; use std::path::PathBuf; -#[cfg(any(feature = "network", feature = "network-v2"))] +#[cfg(any(feature = "network", feature = "network"))] use { crate::block_on, futures::StreamExt, indicatif::{ProgressBar, ProgressStyle}, reqwest::Client, - std::{cmp::min, io::Write, process::Command}, + std::{cmp::min, process::Command}, }; use crate::SP1_CIRCUIT_VERSION; @@ -43,7 +47,7 @@ pub fn try_install_circuit_artifacts(artifacts_type: &str) -> PathBuf { ); } else { cfg_if! { - if #[cfg(any(feature = "network", feature = "network-v2"))] { + if #[cfg(any(feature = "network", feature = "network"))] { println!( "[sp1] {} circuit artifacts for version {} do not exist at {}. downloading...", artifacts_type, @@ -61,7 +65,7 @@ pub fn try_install_circuit_artifacts(artifacts_type: &str) -> PathBuf { /// /// This function will download the latest circuit artifacts from the S3 bucket and extract them /// to the directory specified by [groth16_bn254_artifacts_dir()]. -#[cfg(any(feature = "network", feature = "network-v2"))] +#[cfg(any(feature = "network", feature = "network"))] pub fn install_circuit_artifacts(build_dir: PathBuf, artifacts_type: &str) { // Create the build directory. std::fs::create_dir_all(&build_dir).expect("failed to create build directory"); @@ -91,11 +95,11 @@ pub fn install_circuit_artifacts(build_dir: PathBuf, artifacts_type: &str) { } /// Download the file with a progress bar that indicates the progress. -#[cfg(any(feature = "network", feature = "network-v2"))] +#[cfg(any(feature = "network", feature = "network"))] pub async fn download_file( client: &Client, url: &str, - file: &mut tempfile::NamedTempFile, + file: &mut impl std::io::Write, ) -> std::result::Result<(), String> { let res = client.get(url).send().await.or(Err(format!("Failed to GET from '{}'", &url)))?; diff --git a/crates/sdk/src/lib.rs b/crates/sdk/src/lib.rs index 8c01d852ab..3bce2f600f 100644 --- a/crates/sdk/src/lib.rs +++ b/crates/sdk/src/lib.rs @@ -2,45 +2,61 @@ //! //! A library for interacting with the SP1 RISC-V zkVM. //! -//! Visit the [Getting Started](https://succinctlabs.github.io/sp1/getting-started.html) section +//! Visit the [Getting Started](https://docs.succinct.xyz/docs/getting-started/install) section //! in the official SP1 documentation for a quick start guide. +#![warn(clippy::pedantic)] +#![allow(clippy::similar_names)] +#![allow(clippy::cast_possible_wrap)] +#![allow(clippy::cast_possible_truncation)] +#![allow(clippy::cast_sign_loss)] +#![allow(clippy::module_name_repetitions)] +#![allow(clippy::needless_range_loop)] +#![allow(clippy::cast_lossless)] +#![allow(clippy::bool_to_int_with_if)] +#![allow(clippy::should_panic_without_expect)] +#![allow(clippy::field_reassign_with_default)] +#![allow(clippy::manual_assert)] +#![allow(clippy::unreadable_literal)] +#![allow(clippy::match_wildcard_for_single_variants)] +#![allow(clippy::missing_panics_doc)] +#![allow(clippy::missing_errors_doc)] +#![allow(clippy::explicit_iter_loop)] +#![warn(missing_docs)] + pub mod artifacts; +pub mod client; +pub mod cpu; +pub mod cuda; +pub mod env; pub mod install; #[cfg(feature = "network")] pub mod network; -#[cfg(feature = "network-v2")] -#[path = "network-v2/mod.rs"] -pub mod network_v2; -pub(crate) mod util; +pub mod proof; +pub mod prover; +pub(crate) mod utils; -#[cfg(feature = "network")] -pub use crate::network::prover::NetworkProver as NetworkProverV1; -#[cfg(feature = "network-v2")] -pub use crate::network_v2::proto::network::FulfillmentStrategy; -#[cfg(feature = "network-v2")] -pub use crate::network_v2::prover::NetworkProver as NetworkProverV2; -#[cfg(feature = "cuda")] -pub use crate::provers::CudaProver; +// Re-export the client. +pub use crate::client::ProverClient; -pub mod proof; -pub mod provers; -pub mod utils { - pub use sp1_core_machine::utils::setup_logger; -} +// Re-export the provers. +pub use crate::cpu::CpuProver; +pub use crate::cuda::CudaProver; +pub use crate::env::EnvProver; +#[cfg(feature = "network")] +pub use crate::network::prover::NetworkProver; -use cfg_if::cfg_if; +// Re-export the proof and prover traits. pub use proof::*; -use provers::EnvProver; -pub use provers::SP1VerificationError; -use std::env; -pub use util::block_on; - -#[cfg(any(feature = "network", feature = "network-v2"))] -pub use provers::{CpuProver, Prover}; +#[cfg(feature = "network")] +pub use prover::Prover; +pub use prover::SP1VerificationError; +// Re-export the build utilities and executor primitives. pub use sp1_build::include_elf; -pub use sp1_core_executor::{ExecutionReport, HookEnv, SP1Context, SP1ContextBuilder}; +pub use sp1_core_executor::{ExecutionReport, Executor, HookEnv, SP1Context, SP1ContextBuilder}; + +// Re-export the machine/prover primitives. pub use sp1_core_machine::{io::SP1Stdin, riscv::cost::CostEstimator, SP1_CIRCUIT_VERSION}; pub use sp1_primitives::io::SP1PublicValues; pub use sp1_prover::{ @@ -48,141 +64,12 @@ pub use sp1_prover::{ SP1VerifyingKey, }; -/// A client for interacting with SP1. -pub struct ProverClient; - -cfg_if! { - if #[cfg(feature = "network-v2")] { - type NetworkProver = NetworkProverV2; - } else if #[cfg(feature = "network")] { - type NetworkProver = NetworkProverV1; - } -} - -impl ProverClient { - #[deprecated(since = "4.0.0", note = "use ProverClient::env() instead")] - #[allow(clippy::new_ret_no_self)] - pub fn new() -> EnvProver { - Self::env() - } - - /// Gets the current version of the SP1 zkVM. - /// - /// Note: This is not the same as the version of the SP1 SDK. - pub fn version() -> String { - SP1_CIRCUIT_VERSION.to_string() - } - - /// Builds an [EnvProver], which loads the mode and any settings from the environment. - /// - /// # Usage - /// ```no_run - /// use sp1_sdk::ProverClient; - /// - /// std::env::set_var("SP1_PROVER", "network"); - /// std::env::set_var("SP1_PRIVATE_KEY", "..."); - /// let prover = ProverClient::env(); - /// let (pk, vk) = prover.setup(elf); - /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); - /// ``` - pub fn env() -> EnvProver { - EnvProver::new() - } - - /// Builds a [CpuProver] specifically for local CPU proving. - /// - /// # Usage - /// ```no_run - /// use sp1_sdk::ProverClient; - /// - /// let prover = ProverClient::cpu(); - /// let (pk, vk) = prover.setup(elf); - /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); - /// ``` - pub fn cpu() -> CpuProver { - CpuProver::new(false) - } - - /// Builds a [CudaProver] specifically for local NVIDIA GPU proving. - #[cfg(feature = "cuda")] - pub fn cuda() -> CudaProver { - CudaProver::new(SP1Prover::new()) - } - - /// Builds a [NetworkProver] specifically for network proving. - #[cfg(any(feature = "network", feature = "network-v2"))] - pub fn network() -> NetworkProverBuilder { - NetworkProverBuilder::new() - } - - /// Builds a [CpuProver] specifically for mock proving. - pub fn mock() -> CpuProver { - CpuProver::new(true) - } -} - -/// A builder for [`NetworkProver`]. -/// -/// This builder is obtained via [`ProverClient::network()`] and allows setting -/// network-specific proving options like RPC URL and private key. -/// -/// # Example -/// ``` -/// let prover = ProverClient::network() -/// .private_key("my_private_key") -/// .build(); -/// ``` -#[cfg(any(feature = "network", feature = "network-v2"))] -pub struct NetworkProverBuilder { - private_key: Option, - rpc_url: Option, - #[cfg(feature = "network-v2")] - strategy: FulfillmentStrategy, -} - -#[cfg(any(feature = "network", feature = "network-v2"))] -impl NetworkProverBuilder { - pub(crate) fn new() -> Self { - Self { - private_key: None, - rpc_url: None, - #[cfg(feature = "network-v2")] - strategy: FulfillmentStrategy::Auction, - } - } - - /// Sets the private key. - pub fn private_key(mut self, private_key: String) -> Self { - self.private_key = Some(private_key); - self - } - - /// Sets the RPC URL. - pub fn rpc_url(mut self, rpc_url: String) -> Self { - self.rpc_url = Some(rpc_url); - self - } - - /// Sets the fulfillment strategy for the client. By default, the strategy is set to `Hosted`. - #[cfg(feature = "network-v2")] - pub fn strategy(mut self, strategy: FulfillmentStrategy) -> Self { - self.strategy = strategy; - self - } - - /// Builds a [NetworkProver]. - pub fn build(self) -> NetworkProver { - let private_key = self.private_key.unwrap_or_else(|| { - env::var("SP1_PRIVATE_KEY").expect("Private key must be provided through `NetworkProverBuilder::private_key` or the SP1_PRIVATE_KEY environment variable.") - }); - NetworkProver::new(&private_key, self.rpc_url) - } -} +// Re-export the utilities. +pub use utils::{block_on, setup_logger}; #[cfg(test)] mod tests { - - use crate::CostEstimator; + use sp1_core_machine::riscv::cost::CostEstimator; use sp1_primitives::io::SP1PublicValues; use crate::{utils, Prover, ProverClient, SP1Stdin}; @@ -194,7 +81,7 @@ mod tests { let elf = test_artifacts::FIBONACCI_ELF; let mut stdin = SP1Stdin::new(); stdin.write(&10usize); - let (_, report) = client.execute(elf, stdin).run().unwrap(); + let (_, report) = client.execute(elf, &stdin).run().unwrap(); tracing::info!("gas = {}", report.estimate_gas()); } @@ -206,7 +93,7 @@ mod tests { let elf = test_artifacts::PANIC_ELF; let mut stdin = SP1Stdin::new(); stdin.write(&10usize); - client.execute(elf, stdin).run().unwrap(); + client.execute(elf, &stdin).run().unwrap(); } #[should_panic] @@ -217,7 +104,7 @@ mod tests { let elf = test_artifacts::PANIC_ELF; let mut stdin = SP1Stdin::new(); stdin.write(&10usize); - client.execute(elf, stdin).max_cycles(1).run().unwrap(); + client.execute(elf, &stdin).cycle_limit(1).run().unwrap(); } #[test] diff --git a/crates/sdk/src/network-v2/client.rs b/crates/sdk/src/network-v2/client.rs deleted file mode 100644 index 509aaad444..0000000000 --- a/crates/sdk/src/network-v2/client.rs +++ /dev/null @@ -1,280 +0,0 @@ -use std::result::Result::Ok as StdOk; -use std::str::FromStr; -use std::time::{Duration, SystemTime, UNIX_EPOCH}; - -use alloy_signer::SignerSync; -use alloy_signer_local::PrivateKeySigner; -use anyhow::{Context, Ok, Result}; -use reqwest_middleware::ClientWithMiddleware as HttpClientWithMiddleware; -use serde::{de::DeserializeOwned, Serialize}; -use tonic::{ - transport::{channel::ClientTlsConfig, Channel}, - Code, -}; - -use sp1_core_machine::io::SP1Stdin; -use sp1_prover::{HashableKey, SP1VerifyingKey}; - -use crate::network_v2::proto::artifact::{ - artifact_store_client::ArtifactStoreClient, CreateArtifactRequest, -}; -use crate::network_v2::proto::network::{ - prover_network_client::ProverNetworkClient, CreateProgramRequest, CreateProgramRequestBody, - CreateProgramResponse, FulfillmentStatus, FulfillmentStrategy, GetNonceRequest, - GetProgramRequest, GetProgramResponse, GetProofRequestStatusRequest, - GetProofRequestStatusResponse, MessageFormat, ProofMode, RequestProofRequest, - RequestProofRequestBody, RequestProofResponse, -}; -use crate::network_v2::Signable; - -/// The default RPC endpoint for the Succinct prover network. -pub const DEFAULT_PROVER_NETWORK_RPC: &str = "https://rpc.production.succinct.tools/"; - -pub struct NetworkClient { - signer: PrivateKeySigner, - http: HttpClientWithMiddleware, - rpc_url: String, -} - -impl NetworkClient { - /// Create a new network client with the given private key. - pub fn new(private_key: &str, rpc_url: Option) -> Self { - let signer = PrivateKeySigner::from_str(private_key).unwrap(); - - let http_client = reqwest::Client::builder() - .pool_max_idle_per_host(0) - .pool_idle_timeout(Duration::from_secs(240)) - .build() - .unwrap(); - - Self { - signer, - http: http_client.into(), - rpc_url: rpc_url.unwrap_or_else(|| DEFAULT_PROVER_NETWORK_RPC.to_string()), - } - } - - /// Returns the currently configured RPC endpoint for the Succinct prover network. - pub fn rpc_url(&self) -> String { - self.rpc_url.clone() - } - - /// Get a connected RPC client. - async fn get_rpc(&self) -> Result> { - let rpc_url = self.rpc_url(); - let mut endpoint = Channel::from_shared(rpc_url.clone())?; - - // Check if the URL scheme is HTTPS and configure TLS. - if rpc_url.starts_with("https://") { - let tls_config = ClientTlsConfig::new().with_enabled_roots(); - endpoint = endpoint.tls_config(tls_config)?; - } - - let channel = endpoint.connect().await?; - Ok(ProverNetworkClient::new(channel)) - } - - /// Get a connected artifact store client. - async fn get_store(&self) -> Result> { - let rpc_url = self.rpc_url(); - let mut endpoint = Channel::from_shared(rpc_url.clone())?; - - // Check if the URL scheme is HTTPS and configure TLS. - if rpc_url.starts_with("https://") { - let tls_config = ClientTlsConfig::new().with_enabled_roots(); - endpoint = endpoint.tls_config(tls_config)?; - } - - let channel = endpoint.connect().await?; - Ok(ArtifactStoreClient::new(channel.clone())) - } - - /// Get the latest nonce for this account's address. - pub async fn get_nonce(&self) -> Result { - let mut rpc = self.get_rpc().await?; - let res = - rpc.get_nonce(GetNonceRequest { address: self.signer.address().to_vec() }).await?; - Ok(res.into_inner().nonce) - } - - /// Get the verifying key hash from a verifying key. The verifying key hash is used to identify - /// a program. - pub fn get_vk_hash(vk: &SP1VerifyingKey) -> Result> { - let vk_hash_str = vk.bytes32(); - let vk_hash = hex::decode(vk_hash_str.strip_prefix("0x").unwrap_or(&vk_hash_str))?; - Ok(vk_hash) - } - - /// Registers a program if it is not already registered. - pub async fn register_program(&self, vk: &SP1VerifyingKey, elf: &[u8]) -> Result> { - let vk_hash = Self::get_vk_hash(vk)?; - - // Try to get the existing program. - match self.get_program(&vk_hash).await? { - Some(_) => { - // The program already exists. - Ok(vk_hash) - } - None => { - // The program doesn't exist, create it. - self.create_program(&vk_hash, vk, elf).await?; - log::info!("Registered program 0x{}", hex::encode(vk_hash.clone())); - Ok(vk_hash) - } - } - } - - /// Attempts to get program info, returns None if program doesn't exist. - async fn get_program(&self, vk_hash: &[u8]) -> Result> { - let mut rpc = self.get_rpc().await?; - match rpc.get_program(GetProgramRequest { vk_hash: vk_hash.to_vec() }).await { - StdOk(response) => Ok(Some(response.into_inner())), - Err(status) if status.code() == Code::NotFound => Ok(None), - Err(e) => Err(e.into()), - } - } - - /// Creates a new program. - async fn create_program( - &self, - vk_hash: &[u8], - vk: &SP1VerifyingKey, - elf: &[u8], - ) -> Result { - // Create the program artifact. - let mut store = self.get_store().await?; - let program_uri = self.create_artifact_with_content(&mut store, &elf).await?; - - // Serialize the verifying key. - let vk_encoded = bincode::serialize(&vk)?; - - // Send the request. - let mut rpc = self.get_rpc().await?; - let nonce = self.get_nonce().await?; - let request_body = CreateProgramRequestBody { - nonce, - vk_hash: vk_hash.to_vec(), - vk: vk_encoded, - program_uri, - }; - - Ok(rpc - .create_program(CreateProgramRequest { - format: MessageFormat::Binary.into(), - signature: request_body.sign(&self.signer).into(), - body: Some(request_body), - }) - .await? - .into_inner()) - } - - /// Get the status of a given proof. If the status is Fulfilled, the proof is also returned. - pub async fn get_proof_request_status( - &self, - request_id: &[u8], - ) -> Result<(GetProofRequestStatusResponse, Option

)> { - let mut rpc = self.get_rpc().await?; - let res = rpc - .get_proof_request_status(GetProofRequestStatusRequest { - request_id: request_id.to_vec(), - }) - .await? - .into_inner(); - - let status = FulfillmentStatus::try_from(res.fulfillment_status)?; - let proof = match status { - FulfillmentStatus::Fulfilled => { - let proof_uri = res - .proof_uri - .as_ref() - .ok_or_else(|| anyhow::anyhow!("No proof URI provided"))?; - let proof_bytes = self.download_artifact(proof_uri).await?; - Some(bincode::deserialize(&proof_bytes).context("Failed to deserialize proof")?) - } - _ => None, - }; - - Ok((res, proof)) - } - - /// Creates a proof request with the given verifying key hash and stdin. - #[allow(clippy::too_many_arguments)] - pub async fn request_proof( - &self, - vk_hash: &[u8], - stdin: &SP1Stdin, - mode: ProofMode, - version: &str, - strategy: FulfillmentStrategy, - timeout_secs: u64, - cycle_limit: u64, - ) -> Result { - // Calculate the deadline. - let start = SystemTime::now(); - let since_the_epoch = start.duration_since(UNIX_EPOCH).expect("Invalid start time"); - let deadline = since_the_epoch.as_secs() + timeout_secs; - - // Create the stdin artifact. - let mut store = self.get_store().await?; - let stdin_uri = self.create_artifact_with_content(&mut store, &stdin).await?; - - // Send the request. - let mut rpc = self.get_rpc().await?; - let nonce = self.get_nonce().await?; - let request_body = RequestProofRequestBody { - nonce, - version: format!("sp1-{}", version), - vk_hash: vk_hash.to_vec(), - mode: mode.into(), - strategy: strategy.into(), - stdin_uri, - deadline, - cycle_limit, - }; - let request_response = rpc - .request_proof(RequestProofRequest { - format: MessageFormat::Binary.into(), - signature: request_body.sign(&self.signer).into(), - body: Some(request_body), - }) - .await? - .into_inner(); - - Ok(request_response) - } - - /// Uses the artifact store to to create an artifact, upload the content, and return the URI. - async fn create_artifact_with_content( - &self, - store: &mut ArtifactStoreClient, - item: &T, - ) -> Result { - let signature = self.signer.sign_message_sync("create_artifact".as_bytes())?; - let request = CreateArtifactRequest { signature: signature.as_bytes().to_vec() }; - let response = store.create_artifact(request).await?.into_inner(); - - let presigned_url = response.artifact_presigned_url; - let uri = response.artifact_uri; - - let response = - self.http.put(&presigned_url).body(bincode::serialize::(item)?).send().await?; - - if !response.status().is_success() { - log::debug!("Artifact upload failed with status: {}", response.status()); - } - assert!(response.status().is_success()); - - Ok(uri) - } - - /// Download an artifact from a URI. - async fn download_artifact(&self, uri: &str) -> Result> { - let response = self.http.get(uri).send().await.context("Failed to download from URI")?; - - if !response.status().is_success() { - return Err(anyhow::anyhow!("Failed to download artifact: HTTP {}", response.status())); - } - - Ok(response.bytes().await.context("Failed to read response body")?.to_vec()) - } -} diff --git a/crates/sdk/src/network-v2/mod.rs b/crates/sdk/src/network-v2/mod.rs deleted file mode 100644 index 86f1a82d47..0000000000 --- a/crates/sdk/src/network-v2/mod.rs +++ /dev/null @@ -1,20 +0,0 @@ -pub mod client; -mod json; -pub mod prover; -mod sign_message; -#[rustfmt::skip] -pub mod proto; - -use alloy_signer::{Signature, SignerSync}; -use prost::Message; -pub use serde::{Deserialize, Serialize}; - -pub trait Signable: Message { - fn sign(&self, signer: &S) -> Signature; -} - -impl Signable for T { - fn sign(&self, signer: &S) -> Signature { - signer.sign_message_sync(&self.encode_to_vec()).unwrap() - } -} diff --git a/crates/sdk/src/network-v2/proto/mod.rs b/crates/sdk/src/network-v2/proto/mod.rs deleted file mode 100644 index 48eb63675a..0000000000 --- a/crates/sdk/src/network-v2/proto/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod artifact; -pub mod network; diff --git a/crates/sdk/src/network-v2/proto/network.rs b/crates/sdk/src/network-v2/proto/network.rs deleted file mode 100644 index dd0077db9a..0000000000 --- a/crates/sdk/src/network-v2/proto/network.rs +++ /dev/null @@ -1,3932 +0,0 @@ -// This file is @generated by prost-build. -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct RequestProofRequest { - /// The message format of the body. - #[prost(enumeration = "MessageFormat", tag = "1")] - pub format: i32, - /// The signature of the sender. - #[prost(bytes = "vec", tag = "2")] - pub signature: ::prost::alloc::vec::Vec, - /// The body of the request. - #[prost(message, optional, tag = "3")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct RequestProofRequestBody { - /// The account nonce of the sender. - #[prost(uint64, tag = "1")] - pub nonce: u64, - /// The verification key hash of the program. - #[prost(bytes = "vec", tag = "2")] - pub vk_hash: ::prost::alloc::vec::Vec, - /// The version of the prover to use. - #[prost(string, tag = "3")] - pub version: ::prost::alloc::string::String, - /// The mode for the request. - #[prost(enumeration = "ProofMode", tag = "4")] - pub mode: i32, - /// The strategy for fulfiller assignment. - #[prost(enumeration = "FulfillmentStrategy", tag = "5")] - pub strategy: i32, - /// The stdin resource identifier. - #[prost(string, tag = "6")] - pub stdin_uri: ::prost::alloc::string::String, - /// The deadline for the request. - #[prost(uint64, tag = "7")] - pub deadline: u64, - /// The cycle limit for the request. - #[prost(uint64, tag = "8")] - pub cycle_limit: u64, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct RequestProofResponse { - /// The transaction hash. - #[prost(bytes = "vec", tag = "1")] - pub tx_hash: ::prost::alloc::vec::Vec, - /// The body of the response. - #[prost(message, optional, tag = "2")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct RequestProofResponseBody { - /// The identifier for the request. - #[prost(bytes = "vec", tag = "1")] - pub request_id: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct FulfillProofRequest { - /// The message format of the body. - #[prost(enumeration = "MessageFormat", tag = "1")] - pub format: i32, - /// The signature of the sender. - #[prost(bytes = "vec", tag = "2")] - pub signature: ::prost::alloc::vec::Vec, - /// The body of the request. - #[prost(message, optional, tag = "3")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct FulfillProofRequestBody { - /// The account nonce of the sender. - #[prost(uint64, tag = "1")] - pub nonce: u64, - /// The identifier for the request. - #[prost(bytes = "vec", tag = "2")] - pub request_id: ::prost::alloc::vec::Vec, - /// The proof bytes. - #[prost(bytes = "vec", tag = "3")] - pub proof: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct FulfillProofResponse { - /// The transaction hash. - #[prost(bytes = "vec", tag = "1")] - pub tx_hash: ::prost::alloc::vec::Vec, - /// The body of the response. - #[prost(message, optional, tag = "2")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct FulfillProofResponseBody {} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct ExecuteProofRequest { - /// The message format of the body. - #[prost(enumeration = "MessageFormat", tag = "1")] - pub format: i32, - /// The signature of the sender. - #[prost(bytes = "vec", tag = "2")] - pub signature: ::prost::alloc::vec::Vec, - /// The body of the request. - #[prost(message, optional, tag = "3")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct ExecuteProofRequestBody { - /// The account nonce of the sender. - #[prost(uint64, tag = "1")] - pub nonce: u64, - /// The identifier for the request. - #[prost(bytes = "vec", tag = "2")] - pub request_id: ::prost::alloc::vec::Vec, - /// The execution status of the request. - #[prost(enumeration = "ExecutionStatus", tag = "3")] - pub execution_status: i32, - /// The optional public values hash of the request execution, only included if - /// the request is valid. - #[prost(bytes = "vec", optional, tag = "4")] - pub public_values_hash: ::core::option::Option<::prost::alloc::vec::Vec>, - /// The optional cycles used when executing the request, only included if the - /// request is valid. - #[prost(uint64, optional, tag = "5")] - pub cycles: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct ExecuteProofResponse { - /// The transaction hash. - #[prost(bytes = "vec", tag = "1")] - pub tx_hash: ::prost::alloc::vec::Vec, - /// The body of the response. - #[prost(message, optional, tag = "2")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct ExecuteProofResponseBody {} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct FailFulfillmentRequest { - /// The message format of the body. - #[prost(enumeration = "MessageFormat", tag = "1")] - pub format: i32, - /// The signature of the sender. - #[prost(bytes = "vec", tag = "2")] - pub signature: ::prost::alloc::vec::Vec, - /// The body of the request. - #[prost(message, optional, tag = "3")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct FailFulfillmentRequestBody { - /// The account nonce of the sender. - #[prost(uint64, tag = "1")] - pub nonce: u64, - /// The identifier for the request. - #[prost(bytes = "vec", tag = "2")] - pub request_id: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct FailFulfillmentResponse { - /// The transaction hash. - #[prost(bytes = "vec", tag = "1")] - pub tx_hash: ::prost::alloc::vec::Vec, - /// The body of the response. - #[prost(message, optional, tag = "2")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct FailFulfillmentResponseBody {} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct FailExecutionRequest { - /// The message format of the body. - #[prost(enumeration = "MessageFormat", tag = "1")] - pub format: i32, - /// The signature of the sender. - #[prost(bytes = "vec", tag = "2")] - pub signature: ::prost::alloc::vec::Vec, - /// The body of the request. - #[prost(message, optional, tag = "3")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct FailExecutionRequestBody { - /// The account nonce of the sender. - #[prost(uint64, tag = "1")] - pub nonce: u64, - /// The identifier for the request. - #[prost(bytes = "vec", tag = "2")] - pub request_id: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct FailExecutionResponse { - /// The transaction hash. - #[prost(bytes = "vec", tag = "1")] - pub tx_hash: ::prost::alloc::vec::Vec, - /// The body of the response. - #[prost(message, optional, tag = "2")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct FailExecutionResponseBody {} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct ProofRequest { - /// The request identifier. - #[prost(bytes = "vec", tag = "1")] - pub request_id: ::prost::alloc::vec::Vec, - /// The verification key hash of the program. - #[prost(bytes = "vec", tag = "2")] - pub vk_hash: ::prost::alloc::vec::Vec, - /// The version of the prover to use. - #[prost(string, tag = "3")] - pub version: ::prost::alloc::string::String, - /// The mode for the proof. - #[prost(enumeration = "ProofMode", tag = "4")] - pub mode: i32, - /// The strategy for fulfiller assignment. - #[prost(enumeration = "FulfillmentStrategy", tag = "5")] - pub strategy: i32, - /// The program resource identifier. - #[prost(string, tag = "6")] - pub program_uri: ::prost::alloc::string::String, - /// The stdin resource identifier. - #[prost(string, tag = "7")] - pub stdin_uri: ::prost::alloc::string::String, - /// The deadline for the request. - #[prost(uint64, tag = "8")] - pub deadline: u64, - /// The cycle limit for the request. - #[prost(uint64, tag = "9")] - pub cycle_limit: u64, - /// The gas price for the request. - #[prost(uint64, optional, tag = "10")] - pub gas_price: ::core::option::Option, - /// The fulfillment status of the request. - #[prost(enumeration = "FulfillmentStatus", tag = "11")] - pub fulfillment_status: i32, - /// The execution status of the request. - #[prost(enumeration = "ExecutionStatus", tag = "12")] - pub execution_status: i32, - /// The requester address that signed the request. - #[prost(bytes = "vec", tag = "13")] - pub requester: ::prost::alloc::vec::Vec, - /// The fulfiller address that fulfilled the request. - #[prost(bytes = "vec", optional, tag = "14")] - pub fulfiller: ::core::option::Option<::prost::alloc::vec::Vec>, - /// The optional name to refer to an alias of the program id. - #[prost(string, optional, tag = "15")] - pub program_name: ::core::option::Option<::prost::alloc::string::String>, - /// The optional name to refer to an alias of the requester address. - #[prost(string, optional, tag = "16")] - pub requester_name: ::core::option::Option<::prost::alloc::string::String>, - /// The optional name to refer to an alias of the fulfiller address. - #[prost(string, optional, tag = "17")] - pub fulfiller_name: ::core::option::Option<::prost::alloc::string::String>, - /// The unix timestamp of when the request was created. - #[prost(uint64, tag = "18")] - pub created_at: u64, - /// The unix timestamp of when the request was updated. - #[prost(uint64, tag = "19")] - pub updated_at: u64, - /// The unix timestamp of when the request was fulfilled. - #[prost(uint64, optional, tag = "20")] - pub fulfilled_at: ::core::option::Option, - /// The transaction hash of the request. - #[prost(bytes = "vec", tag = "21")] - pub tx_hash: ::prost::alloc::vec::Vec, - /// The cycle count for the request. - #[prost(uint64, optional, tag = "22")] - pub cycles: ::core::option::Option, - /// The amount deducted from the fulfiller's balance. - #[prost(string, optional, tag = "23")] - pub deduction_amount: ::core::option::Option<::prost::alloc::string::String>, - /// The amount refunded to the fulfiller's balance. - #[prost(string, optional, tag = "24")] - pub refund_amount: ::core::option::Option<::prost::alloc::string::String>, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetProofRequestStatusRequest { - /// The identifier for the request. - #[prost(bytes = "vec", tag = "1")] - pub request_id: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetProofRequestStatusResponse { - /// The fulfillment status of the request. - #[prost(enumeration = "FulfillmentStatus", tag = "1")] - pub fulfillment_status: i32, - /// The execution status of the request. - #[prost(enumeration = "ExecutionStatus", tag = "2")] - pub execution_status: i32, - /// The transaction hash of the request. - #[prost(bytes = "vec", tag = "3")] - pub request_tx_hash: ::prost::alloc::vec::Vec, - /// The optional transaction hash of the proof fulfill. Only included if the - /// request has a fulfillment status of FULFILLED. - #[prost(bytes = "vec", optional, tag = "4")] - pub fulfill_tx_hash: ::core::option::Option<::prost::alloc::vec::Vec>, - /// The optional proof URI, where you can download the result of the request. - /// Only included if the request has a fulfillment status of FULFILLED. - #[prost(string, optional, tag = "5")] - pub proof_uri: ::core::option::Option<::prost::alloc::string::String>, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetProofRequestDetailsRequest { - /// The identifier for the request. - #[prost(bytes = "vec", tag = "1")] - pub request_id: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetProofRequestDetailsResponse { - /// The detailed request. - #[prost(message, optional, tag = "1")] - pub request: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetFilteredProofRequestsRequest { - /// The optional version of the requests to filter for. - #[prost(string, optional, tag = "1")] - pub version: ::core::option::Option<::prost::alloc::string::String>, - /// The optional fulfillment status of the requests to filter for. - #[prost(enumeration = "FulfillmentStatus", optional, tag = "2")] - pub fulfillment_status: ::core::option::Option, - /// The optional execution status of the requests to filter for. - #[prost(enumeration = "ExecutionStatus", optional, tag = "3")] - pub execution_status: ::core::option::Option, - /// The optional minimum unix timestamp deadline of the requests to filter for. - /// Only returns requests with deadlines after this timestamp. - #[prost(uint64, optional, tag = "4")] - pub minimum_deadline: ::core::option::Option, - /// The optional verification key hash of the program to filter for. - #[prost(bytes = "vec", optional, tag = "5")] - pub vk_hash: ::core::option::Option<::prost::alloc::vec::Vec>, - /// The optional requester address to filter for. - #[prost(bytes = "vec", optional, tag = "6")] - pub requester: ::core::option::Option<::prost::alloc::vec::Vec>, - /// The optional fulfiller address to filter for. - #[prost(bytes = "vec", optional, tag = "7")] - pub fulfiller: ::core::option::Option<::prost::alloc::vec::Vec>, - /// The optional minimum creation unix timestamp of the requests to filter for. - #[prost(uint64, optional, tag = "8")] - pub from: ::core::option::Option, - /// The optional maximum creation unix timestamp of the requests to filter for. - #[prost(uint64, optional, tag = "9")] - pub to: ::core::option::Option, - /// The optional maximum number of requests to return (default is 10, - /// maximum is 100). - #[prost(uint32, optional, tag = "10")] - pub limit: ::core::option::Option, - /// The optional page number to return (default is 1). - #[prost(uint32, optional, tag = "11")] - pub page: ::core::option::Option, - /// The optional mode of the requests to filter for. - #[prost(enumeration = "ProofMode", optional, tag = "12")] - pub mode: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetFilteredProofRequestsResponse { - /// The requests that matched the filter criteria. - #[prost(message, repeated, tag = "1")] - pub requests: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetSearchResultsRequest { - /// The search query string. - #[prost(string, tag = "1")] - pub query: ::prost::alloc::string::String, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct SearchResult { - #[prost(bytes = "vec", tag = "1")] - pub id: ::prost::alloc::vec::Vec, - #[prost(string, optional, tag = "2")] - pub name: ::core::option::Option<::prost::alloc::string::String>, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetSearchResultsResponse { - /// List of matching request IDs with optional names. - #[prost(message, repeated, tag = "1")] - pub requests: ::prost::alloc::vec::Vec, - /// List of matching program IDs with optional names. - #[prost(message, repeated, tag = "2")] - pub programs: ::prost::alloc::vec::Vec, - /// List of matching requester IDs with optional names. - #[prost(message, repeated, tag = "3")] - pub requesters: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetProofRequestMetricsRequest { - /// The optional address to filter for. - #[prost(bytes = "vec", optional, tag = "1")] - pub address: ::core::option::Option<::prost::alloc::vec::Vec>, - /// The optional interval in days for volume calculation. - #[prost(uint64, optional, tag = "2")] - pub volume_interval_days: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct GetProofRequestMetricsResponse { - /// The total number of proofs. - #[prost(uint64, tag = "1")] - pub total_proofs: u64, - /// The total number of cycles. - #[prost(uint64, tag = "2")] - pub total_cycles: u64, - /// The volume in the specified interval. - #[prost(uint64, tag = "3")] - pub volume: u64, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetProofRequestGraphRequest { - /// The optional address to filter for. - #[prost(bytes = "vec", optional, tag = "1")] - pub address: ::core::option::Option<::prost::alloc::vec::Vec>, - /// The optional interval in days for the graph range. - #[prost(uint64, optional, tag = "2")] - pub range_interval_days: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GraphData { - /// The timestamp of the data point. - #[prost(string, tag = "1")] - pub timestamp: ::prost::alloc::string::String, - /// The value at this timestamp. - #[prost(uint64, tag = "2")] - pub value: u64, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetProofRequestGraphResponse { - /// The time series data points. - #[prost(message, repeated, tag = "1")] - pub data: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetAnalyticsGraphsRequest { - /// The optional address to filter for. - #[prost(bytes = "vec", optional, tag = "1")] - pub address: ::core::option::Option<::prost::alloc::vec::Vec>, - /// The optional interval in days for the graph range. - #[prost(uint64, optional, tag = "2")] - pub range_interval_days: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetAnalyticsGraphsResponse { - /// The time series data points for proof count. - #[prost(message, repeated, tag = "1")] - pub proofs: ::prost::alloc::vec::Vec, - /// The time series data points for program count. - #[prost(message, repeated, tag = "2")] - pub programs: ::prost::alloc::vec::Vec, - /// The time series data points for cycle count. - #[prost(message, repeated, tag = "3")] - pub cycles: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetNonceRequest { - /// The address of the account. - #[prost(bytes = "vec", tag = "1")] - pub address: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct GetNonceResponse { - /// The nonce of the account. - #[prost(uint64, tag = "1")] - pub nonce: u64, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct Delegation { - /// The address of the owner. - #[prost(bytes = "vec", tag = "1")] - pub owner: ::prost::alloc::vec::Vec, - /// The address of the delegate (the account with granted permissions). - #[prost(bytes = "vec", tag = "2")] - pub delegate: ::prost::alloc::vec::Vec, - /// Whether the delegation has been accepted. - #[prost(bool, tag = "3")] - pub accepted: bool, - /// The unix timestamp of when the delegation was created. - #[prost(uint64, tag = "4")] - pub created_at: u64, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetFilteredDelegationsRequest { - /// The optional owner address to filter for. - #[prost(bytes = "vec", optional, tag = "1")] - pub owner: ::core::option::Option<::prost::alloc::vec::Vec>, - /// The optional maximum number of requests to return (default is 10, - /// maximum is 100). - #[prost(uint32, optional, tag = "2")] - pub limit: ::core::option::Option, - /// The optional page number to return (default is 1). - #[prost(uint32, optional, tag = "3")] - pub page: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetFilteredDelegationsResponse { - /// The delegations that matched the filter criteria. - #[prost(message, repeated, tag = "1")] - pub delegations: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct AddDelegationRequest { - /// The message format of the body. - #[prost(enumeration = "MessageFormat", tag = "1")] - pub format: i32, - /// The signature of the sender. - #[prost(bytes = "vec", tag = "2")] - pub signature: ::prost::alloc::vec::Vec, - /// The body of the request. - #[prost(message, optional, tag = "3")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct AddDelegationRequestBody { - /// The account nonce of the sender. - #[prost(uint64, tag = "1")] - pub nonce: u64, - /// The delegate address to add. - #[prost(bytes = "vec", tag = "2")] - pub delegate: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct AddDelegationResponse { - /// The transaction hash. - #[prost(bytes = "vec", tag = "1")] - pub tx_hash: ::prost::alloc::vec::Vec, - /// The body of the response. - #[prost(message, optional, tag = "2")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct AddDelegationResponseBody {} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct RemoveDelegationRequest { - /// The message format of the body. - #[prost(enumeration = "MessageFormat", tag = "1")] - pub format: i32, - /// The signature of the sender. - #[prost(bytes = "vec", tag = "2")] - pub signature: ::prost::alloc::vec::Vec, - /// The body of the request. - #[prost(message, optional, tag = "3")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct RemoveDelegationRequestBody { - /// The account nonce of the sender. - #[prost(uint64, tag = "1")] - pub nonce: u64, - /// The delegate address to remove. - #[prost(bytes = "vec", tag = "2")] - pub delegate: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct RemoveDelegationResponse { - /// The transaction hash. - #[prost(bytes = "vec", tag = "1")] - pub tx_hash: ::prost::alloc::vec::Vec, - /// The body of the response. - #[prost(message, optional, tag = "2")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct RemoveDelegationResponseBody {} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct AcceptDelegationRequest { - /// The message format of the body. - #[prost(enumeration = "MessageFormat", tag = "1")] - pub format: i32, - /// The signature of the sender. - #[prost(bytes = "vec", tag = "2")] - pub signature: ::prost::alloc::vec::Vec, - /// The body of the request. - #[prost(message, optional, tag = "3")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct AcceptDelegationRequestBody { - /// The account nonce of the sender. - #[prost(uint64, tag = "1")] - pub nonce: u64, - /// The address of the owner who requested the delegation - #[prost(bytes = "vec", tag = "2")] - pub owner: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct AcceptDelegationResponse { - /// The transaction hash. - #[prost(bytes = "vec", tag = "1")] - pub tx_hash: ::prost::alloc::vec::Vec, - /// The body of the response. - #[prost(message, optional, tag = "2")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct AcceptDelegationResponseBody {} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct SetAccountNameRequest { - /// The message format of the body. - #[prost(enumeration = "MessageFormat", tag = "1")] - pub format: i32, - /// The signature of the sender. - #[prost(bytes = "vec", tag = "2")] - pub signature: ::prost::alloc::vec::Vec, - /// The body of the request. - #[prost(message, optional, tag = "3")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct SetAccountNameRequestBody { - /// The account nonce of the sender. - #[prost(uint64, tag = "1")] - pub nonce: u64, - /// The address of the account to update the name of. Only the sender can - /// update the name unless authorized. - #[prost(bytes = "vec", tag = "2")] - pub address: ::prost::alloc::vec::Vec, - /// The name of the account. Must be unique. - #[prost(string, tag = "3")] - pub name: ::prost::alloc::string::String, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct SetAccountNameResponse { - /// The transaction hash. - #[prost(bytes = "vec", tag = "1")] - pub tx_hash: ::prost::alloc::vec::Vec, - /// The body of the response. - #[prost(message, optional, tag = "2")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct SetAccountNameResponseBody {} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetAccountNameRequest { - /// The address of the account. - #[prost(bytes = "vec", tag = "1")] - pub address: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetAccountNameResponse { - /// The name of the account. - #[prost(string, optional, tag = "1")] - pub name: ::core::option::Option<::prost::alloc::string::String>, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetTermsSignatureRequest { - /// The address of the account. - #[prost(bytes = "vec", tag = "1")] - pub address: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct GetTermsSignatureResponse { - /// Whether the account has signed the terms. - #[prost(bool, tag = "1")] - pub is_signed: bool, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct SetTermsSignatureRequest { - /// The message format of the body. - #[prost(enumeration = "MessageFormat", tag = "1")] - pub format: i32, - /// The signature of the sender. - #[prost(bytes = "vec", tag = "2")] - pub signature: ::prost::alloc::vec::Vec, - /// The body of the request. - #[prost(message, optional, tag = "3")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct SetTermsSignatureRequestBody { - /// The account nonce of the sender. - #[prost(uint64, tag = "1")] - pub nonce: u64, - /// The address of the account. - #[prost(bytes = "vec", tag = "2")] - pub address: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct SetTermsSignatureResponse { - /// The transaction hash. - #[prost(bytes = "vec", tag = "1")] - pub tx_hash: ::prost::alloc::vec::Vec, - /// The body of the response. - #[prost(message, optional, tag = "2")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct SetTermsSignatureResponseBody {} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct Program { - /// The verification key hash. - #[prost(bytes = "vec", tag = "1")] - pub vk_hash: ::prost::alloc::vec::Vec, - /// The verification key. - #[prost(bytes = "vec", tag = "2")] - pub vk: ::prost::alloc::vec::Vec, - /// The program resource identifier. - #[prost(string, tag = "3")] - pub program_uri: ::prost::alloc::string::String, - /// The optional name of the program. - #[prost(string, optional, tag = "4")] - pub name: ::core::option::Option<::prost::alloc::string::String>, - /// The owner of the program. - #[prost(bytes = "vec", tag = "5")] - pub owner: ::prost::alloc::vec::Vec, - /// The unix timestamp of when the program was created. - #[prost(uint64, tag = "6")] - pub created_at: u64, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetProgramRequest { - /// The verification key hash of the program. - #[prost(bytes = "vec", tag = "1")] - pub vk_hash: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetProgramResponse { - /// The program details. - #[prost(message, optional, tag = "1")] - pub program: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct CreateProgramRequest { - /// The message format of the body. - #[prost(enumeration = "MessageFormat", tag = "1")] - pub format: i32, - /// The signature of the sender. - #[prost(bytes = "vec", tag = "2")] - pub signature: ::prost::alloc::vec::Vec, - /// The body of the request. - #[prost(message, optional, tag = "3")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct CreateProgramRequestBody { - /// The account nonce of the sender. - #[prost(uint64, tag = "1")] - pub nonce: u64, - /// The verification key hash. - #[prost(bytes = "vec", tag = "2")] - pub vk_hash: ::prost::alloc::vec::Vec, - /// The verification key. - #[prost(bytes = "vec", tag = "3")] - pub vk: ::prost::alloc::vec::Vec, - /// The program resource identifier. - #[prost(string, tag = "4")] - pub program_uri: ::prost::alloc::string::String, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct CreateProgramResponse { - /// The transaction hash. - #[prost(bytes = "vec", tag = "1")] - pub tx_hash: ::prost::alloc::vec::Vec, - /// The body of the response. - #[prost(message, optional, tag = "2")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct CreateProgramResponseBody {} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct SetProgramNameRequest { - /// The message format of the body. - #[prost(enumeration = "MessageFormat", tag = "1")] - pub format: i32, - /// The signature of the sender. - #[prost(bytes = "vec", tag = "2")] - pub signature: ::prost::alloc::vec::Vec, - /// The body of the request. - #[prost(message, optional, tag = "3")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct SetProgramNameRequestBody { - /// The account nonce of the sender. - #[prost(uint64, tag = "1")] - pub nonce: u64, - /// The identifier of the program to update the name of. Only the original - /// program creator can update the name unless authorized. - #[prost(bytes = "vec", tag = "2")] - pub vk_hash: ::prost::alloc::vec::Vec, - /// The name of the program. Must be unique. - #[prost(string, tag = "3")] - pub name: ::prost::alloc::string::String, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct SetProgramNameResponse { - /// The transaction hash. - #[prost(bytes = "vec", tag = "1")] - pub tx_hash: ::prost::alloc::vec::Vec, - /// The body of the response. - #[prost(message, optional, tag = "2")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct SetProgramNameResponseBody {} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetBalanceRequest { - /// The address of the account. - #[prost(bytes = "vec", tag = "1")] - pub address: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetBalanceResponse { - /// The amount of credits owned by the account. - #[prost(string, tag = "1")] - pub amount: ::prost::alloc::string::String, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct BalanceLog { - /// The address of the account. - #[prost(bytes = "vec", tag = "1")] - pub address: ::prost::alloc::vec::Vec, - /// The type of balance change operation. - #[prost(enumeration = "BalanceOperation", tag = "2")] - pub operation: i32, - /// The amount of the change (can be positive or negative). - #[prost(string, tag = "3")] - pub amount: ::prost::alloc::string::String, - /// The transaction hash that caused this change. - #[prost(bytes = "vec", tag = "4")] - pub tx_hash: ::prost::alloc::vec::Vec, - /// The unix timestamp of when this change occurred. - #[prost(uint64, tag = "5")] - pub created_at: u64, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetFilteredBalanceLogsRequest { - /// The optional address to filter for. - #[prost(bytes = "vec", optional, tag = "1")] - pub address: ::core::option::Option<::prost::alloc::vec::Vec>, - /// The optional type of operations to filter for. - #[prost(enumeration = "BalanceOperation", optional, tag = "2")] - pub operation: ::core::option::Option, - /// The optional minimum unix timestamp to filter logs from. Only returns - /// logs after this timestamp. - #[prost(uint64, optional, tag = "3")] - pub minimum_timestamp: ::core::option::Option, - /// The optional maximum unix timestamp to filter logs to. Only returns - /// logs before this timestamp. - #[prost(uint64, optional, tag = "4")] - pub maximum_timestamp: ::core::option::Option, - /// The optional maximum number of logs to return (default is 10, maximum is 100). - #[prost(uint32, optional, tag = "5")] - pub limit: ::core::option::Option, - /// The optional page number to return (default is 1). - #[prost(uint32, optional, tag = "6")] - pub page: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetFilteredBalanceLogsResponse { - /// The balance logs that matched the filter criteria. - #[prost(message, repeated, tag = "1")] - pub logs: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct AddCreditRequest { - /// The message format of the body. - #[prost(enumeration = "MessageFormat", tag = "1")] - pub format: i32, - /// The signature of the sender. - #[prost(bytes = "vec", tag = "2")] - pub signature: ::prost::alloc::vec::Vec, - /// The body of the request. - #[prost(message, optional, tag = "3")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct AddCreditRequestBody { - /// The account nonce of the sender. - #[prost(uint64, tag = "1")] - pub nonce: u64, - /// The address of the account to add credits to. - #[prost(bytes = "vec", tag = "2")] - pub address: ::prost::alloc::vec::Vec, - /// The amount of credits to add. - #[prost(string, tag = "3")] - pub amount: ::prost::alloc::string::String, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct AddCreditResponse { - /// The transaction hash. - #[prost(bytes = "vec", tag = "1")] - pub tx_hash: ::prost::alloc::vec::Vec, - /// The body of the response. - #[prost(message, optional, tag = "2")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct AddCreditResponseBody {} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct GetLatestBridgeBlockRequest { - /// The chain ID of the bridge. - #[prost(uint32, tag = "1")] - pub chain_id: u32, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct GetLatestBridgeBlockResponse { - /// The latest processed block in the bridge. - #[prost(uint64, tag = "1")] - pub block_number: u64, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct GetGasPriceEstimateRequest { - #[prost(enumeration = "FulfillmentStrategy", tag = "1")] - pub strategy: i32, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct GetGasPriceEstimateResponse { - #[prost(uint64, tag = "1")] - pub gas_price: u64, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetTransactionDetailsRequest { - /// The transaction hash. - #[prost(bytes = "vec", tag = "1")] - pub tx_hash: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct TransactionDetails { - #[prost(bytes = "vec", tag = "1")] - pub tx_hash: ::prost::alloc::vec::Vec, - #[prost(bytes = "vec", tag = "2")] - pub sender: ::prost::alloc::vec::Vec, - #[prost(bytes = "vec", tag = "3")] - pub signature: ::prost::alloc::vec::Vec, - #[prost(uint64, tag = "4")] - pub nonce: u64, - #[prost(uint64, tag = "5")] - pub created_at: u64, - #[prost(string, optional, tag = "6")] - pub name: ::core::option::Option<::prost::alloc::string::String>, - #[prost(bytes = "vec", optional, tag = "7")] - pub request_id: ::core::option::Option<::prost::alloc::vec::Vec>, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetTransactionDetailsResponse { - #[prost(message, optional, tag = "1")] - pub transaction: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct Reservation { - /// The address of the requester. - #[prost(bytes = "vec", tag = "1")] - pub requester: ::prost::alloc::vec::Vec, - /// The address of the fulfiller. - #[prost(bytes = "vec", tag = "2")] - pub fulfiller: ::prost::alloc::vec::Vec, - /// The optional name to refer to an alias of the requester address. - #[prost(string, optional, tag = "3")] - pub requester_name: ::core::option::Option<::prost::alloc::string::String>, - /// The optional name to refer to an alias of the fulfiller address. - #[prost(string, optional, tag = "4")] - pub fulfiller_name: ::core::option::Option<::prost::alloc::string::String>, - /// The unix timestamp of when the reservation was created. - #[prost(uint64, tag = "5")] - pub created_at: u64, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct GetFilteredReservationsRequest { - /// The optional maximum number of reservations to return (default is 10, - /// maximum is 100). - #[prost(uint32, optional, tag = "1")] - pub limit: ::core::option::Option, - /// The optional page number to return (default is 1). - #[prost(uint32, optional, tag = "2")] - pub page: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetFilteredReservationsResponse { - /// The reservations that matched the filter criteria. - #[prost(message, repeated, tag = "1")] - pub reservations: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct AddReservationRequest { - /// The message format of the body. - #[prost(enumeration = "MessageFormat", tag = "1")] - pub format: i32, - /// The signature of the sender. - #[prost(bytes = "vec", tag = "2")] - pub signature: ::prost::alloc::vec::Vec, - /// The body of the request. - #[prost(message, optional, tag = "3")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct AddReservationRequestBody { - /// The account nonce of the sender. - #[prost(uint64, tag = "1")] - pub nonce: u64, - /// The address of the requester to add reservation for. - #[prost(bytes = "vec", tag = "2")] - pub requester: ::prost::alloc::vec::Vec, - /// The address of the fulfiller to reserve. - #[prost(bytes = "vec", tag = "3")] - pub fulfiller: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct AddReservationResponse { - /// The transaction hash. - #[prost(bytes = "vec", tag = "1")] - pub tx_hash: ::prost::alloc::vec::Vec, - /// The body of the response. - #[prost(message, optional, tag = "2")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct AddReservationResponseBody {} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct RemoveReservationRequest { - /// The message format of the body. - #[prost(enumeration = "MessageFormat", tag = "1")] - pub format: i32, - /// The signature of the sender. - #[prost(bytes = "vec", tag = "2")] - pub signature: ::prost::alloc::vec::Vec, - /// The body of the request. - #[prost(message, optional, tag = "3")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct RemoveReservationRequestBody { - /// The account nonce of the sender. - #[prost(uint64, tag = "1")] - pub nonce: u64, - /// The address of the requester to remove reservation for. - #[prost(bytes = "vec", tag = "2")] - pub requester: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct RemoveReservationResponse { - /// The transaction hash. - #[prost(bytes = "vec", tag = "1")] - pub tx_hash: ::prost::alloc::vec::Vec, - /// The body of the response. - #[prost(message, optional, tag = "2")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct RemoveReservationResponseBody {} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct BidRequest { - /// The message format of the body. - #[prost(enumeration = "MessageFormat", tag = "1")] - pub format: i32, - /// The signature of the sender. - #[prost(bytes = "vec", tag = "2")] - pub signature: ::prost::alloc::vec::Vec, - /// The body of the request. - #[prost(message, optional, tag = "3")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct BidRequestBody { - /// The account nonce of the sender. - #[prost(uint64, tag = "1")] - pub nonce: u64, - /// The request ID to bid on. - #[prost(bytes = "vec", tag = "2")] - pub request_id: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct BidResponse { - /// The transaction hash. - #[prost(bytes = "vec", tag = "1")] - pub tx_hash: ::prost::alloc::vec::Vec, - /// The body of the response. - #[prost(message, optional, tag = "2")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct BidResponseBody {} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct SettleRequest { - /// The message format of the body. - #[prost(enumeration = "MessageFormat", tag = "1")] - pub format: i32, - /// The signature of the sender. - #[prost(bytes = "vec", tag = "2")] - pub signature: ::prost::alloc::vec::Vec, - /// The body of the request. - #[prost(message, optional, tag = "3")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct SettleRequestBody { - /// The account nonce of the sender. - #[prost(uint64, tag = "1")] - pub nonce: u64, - /// The request ID to settle bids for. - #[prost(bytes = "vec", tag = "2")] - pub request_id: ::prost::alloc::vec::Vec, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct SettleResponse { - /// The transaction hash. - #[prost(bytes = "vec", tag = "1")] - pub tx_hash: ::prost::alloc::vec::Vec, - /// The body of the response. - #[prost(message, optional, tag = "2")] - pub body: ::core::option::Option, -} -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct SettleResponseBody {} -/// Format to help decode signature in backend. -#[derive( - serde::Serialize, - serde::Deserialize, - Clone, - Copy, - Debug, - PartialEq, - Eq, - Hash, - PartialOrd, - Ord, - ::prost::Enumeration, -)] -#[repr(i32)] -pub enum MessageFormat { - /// Unspecified message format. - UnspecifiedMessageFormat = 0, - /// The message is in binary format. - Binary = 1, - /// The message is in JSON format. - Json = 2, -} -impl MessageFormat { - /// String value of the enum field names used in the ProtoBuf definition. - /// - /// The values are not transformed in any way and thus are considered stable - /// (if the ProtoBuf definition does not change) and safe for programmatic use. - pub fn as_str_name(&self) -> &'static str { - match self { - Self::UnspecifiedMessageFormat => "UNSPECIFIED_MESSAGE_FORMAT", - Self::Binary => "BINARY", - Self::Json => "JSON", - } - } - /// Creates an enum from field names used in the ProtoBuf definition. - pub fn from_str_name(value: &str) -> ::core::option::Option { - match value { - "UNSPECIFIED_MESSAGE_FORMAT" => Some(Self::UnspecifiedMessageFormat), - "BINARY" => Some(Self::Binary), - "JSON" => Some(Self::Json), - _ => None, - } - } -} -#[derive( - serde::Serialize, - serde::Deserialize, - Clone, - Copy, - Debug, - PartialEq, - Eq, - Hash, - PartialOrd, - Ord, - ::prost::Enumeration, -)] -#[repr(i32)] -pub enum ProofMode { - UnspecifiedProofMode = 0, - /// The core proof mode. - Core = 1, - /// The compressed proof mode. - Compressed = 2, - /// The plonk proof mode. - Plonk = 3, - /// The groth16 proof mode. - Groth16 = 4, -} -impl ProofMode { - /// String value of the enum field names used in the ProtoBuf definition. - /// - /// The values are not transformed in any way and thus are considered stable - /// (if the ProtoBuf definition does not change) and safe for programmatic use. - pub fn as_str_name(&self) -> &'static str { - match self { - Self::UnspecifiedProofMode => "UNSPECIFIED_PROOF_MODE", - Self::Core => "CORE", - Self::Compressed => "COMPRESSED", - Self::Plonk => "PLONK", - Self::Groth16 => "GROTH16", - } - } - /// Creates an enum from field names used in the ProtoBuf definition. - pub fn from_str_name(value: &str) -> ::core::option::Option { - match value { - "UNSPECIFIED_PROOF_MODE" => Some(Self::UnspecifiedProofMode), - "CORE" => Some(Self::Core), - "COMPRESSED" => Some(Self::Compressed), - "PLONK" => Some(Self::Plonk), - "GROTH16" => Some(Self::Groth16), - _ => None, - } - } -} -/// The different strategies that can be used for fulfilling requests. -#[derive( - serde::Serialize, - serde::Deserialize, - Clone, - Copy, - Debug, - PartialEq, - Eq, - Hash, - PartialOrd, - Ord, - ::prost::Enumeration, -)] -#[repr(i32)] -pub enum FulfillmentStrategy { - UnspecifiedFulfillmentStrategy = 0, - /// The hosted fulfillment strategy. Uses Succinct's on-demand prover to fulfill requests. - Hosted = 1, - /// The reserved fulfillment strategy. Uses an already existing agreement with a - /// fulfiller to fulfill requests. - Reserved = 2, - /// The auction fulfillment strategy. Uses a decentralized proof contest to - /// fulfill requests. - Auction = 3, -} -impl FulfillmentStrategy { - /// String value of the enum field names used in the ProtoBuf definition. - /// - /// The values are not transformed in any way and thus are considered stable - /// (if the ProtoBuf definition does not change) and safe for programmatic use. - pub fn as_str_name(&self) -> &'static str { - match self { - Self::UnspecifiedFulfillmentStrategy => "UNSPECIFIED_FULFILLMENT_STRATEGY", - Self::Hosted => "HOSTED", - Self::Reserved => "RESERVED", - Self::Auction => "AUCTION", - } - } - /// Creates an enum from field names used in the ProtoBuf definition. - pub fn from_str_name(value: &str) -> ::core::option::Option { - match value { - "UNSPECIFIED_FULFILLMENT_STRATEGY" => Some(Self::UnspecifiedFulfillmentStrategy), - "HOSTED" => Some(Self::Hosted), - "RESERVED" => Some(Self::Reserved), - "AUCTION" => Some(Self::Auction), - _ => None, - } - } -} -/// The different fulfillment statuses that a request can be in. -#[derive( - serde::Serialize, - serde::Deserialize, - Clone, - Copy, - Debug, - PartialEq, - Eq, - Hash, - PartialOrd, - Ord, - ::prost::Enumeration, -)] -#[repr(i32)] -pub enum FulfillmentStatus { - UnspecifiedFulfillmentStatus = 0, - /// The request has been requested. - Requested = 1, - /// The request has been assigned to a fulfiller. - Assigned = 2, - /// The request has been fulfilled. - Fulfilled = 3, - /// The request cannot be fulfilled. - Unfulfillable = 4, -} -impl FulfillmentStatus { - /// String value of the enum field names used in the ProtoBuf definition. - /// - /// The values are not transformed in any way and thus are considered stable - /// (if the ProtoBuf definition does not change) and safe for programmatic use. - pub fn as_str_name(&self) -> &'static str { - match self { - Self::UnspecifiedFulfillmentStatus => "UNSPECIFIED_FULFILLMENT_STATUS", - Self::Requested => "REQUESTED", - Self::Assigned => "ASSIGNED", - Self::Fulfilled => "FULFILLED", - Self::Unfulfillable => "UNFULFILLABLE", - } - } - /// Creates an enum from field names used in the ProtoBuf definition. - pub fn from_str_name(value: &str) -> ::core::option::Option { - match value { - "UNSPECIFIED_FULFILLMENT_STATUS" => Some(Self::UnspecifiedFulfillmentStatus), - "REQUESTED" => Some(Self::Requested), - "ASSIGNED" => Some(Self::Assigned), - "FULFILLED" => Some(Self::Fulfilled), - "UNFULFILLABLE" => Some(Self::Unfulfillable), - _ => None, - } - } -} -/// The different execution statuses that a request can be in. -#[derive( - serde::Serialize, - serde::Deserialize, - Clone, - Copy, - Debug, - PartialEq, - Eq, - Hash, - PartialOrd, - Ord, - ::prost::Enumeration, -)] -#[repr(i32)] -pub enum ExecutionStatus { - UnspecifiedExecutionStatus = 0, - /// The request has not been executed. - Unexecuted = 1, - /// The request has been executed. - Executed = 2, - /// The request cannot be executed. - Unexecutable = 3, -} -impl ExecutionStatus { - /// String value of the enum field names used in the ProtoBuf definition. - /// - /// The values are not transformed in any way and thus are considered stable - /// (if the ProtoBuf definition does not change) and safe for programmatic use. - pub fn as_str_name(&self) -> &'static str { - match self { - Self::UnspecifiedExecutionStatus => "UNSPECIFIED_EXECUTION_STATUS", - Self::Unexecuted => "UNEXECUTED", - Self::Executed => "EXECUTED", - Self::Unexecutable => "UNEXECUTABLE", - } - } - /// Creates an enum from field names used in the ProtoBuf definition. - pub fn from_str_name(value: &str) -> ::core::option::Option { - match value { - "UNSPECIFIED_EXECUTION_STATUS" => Some(Self::UnspecifiedExecutionStatus), - "UNEXECUTED" => Some(Self::Unexecuted), - "EXECUTED" => Some(Self::Executed), - "UNEXECUTABLE" => Some(Self::Unexecutable), - _ => None, - } - } -} -/// The different types of balance changes that can occur. -#[derive( - serde::Serialize, - serde::Deserialize, - Clone, - Copy, - Debug, - PartialEq, - Eq, - Hash, - PartialOrd, - Ord, - ::prost::Enumeration, -)] -#[repr(i32)] -pub enum BalanceOperation { - UnspecifiedBalanceChangeOperation = 0, - /// A deposit operation (positive). - Deposit = 1, - /// A withdrawal operation (negative). - Withdrawal = 2, - /// A credit operation (positive). - Credit = 3, - /// A deduction operation (negative). - Deduction = 4, - /// A refund operation (positive). - Refund = 5, - /// A bid operation (negative). - Bid = 6, -} -impl BalanceOperation { - /// String value of the enum field names used in the ProtoBuf definition. - /// - /// The values are not transformed in any way and thus are considered stable - /// (if the ProtoBuf definition does not change) and safe for programmatic use. - pub fn as_str_name(&self) -> &'static str { - match self { - Self::UnspecifiedBalanceChangeOperation => "UNSPECIFIED_BALANCE_CHANGE_OPERATION", - Self::Deposit => "DEPOSIT", - Self::Withdrawal => "WITHDRAWAL", - Self::Credit => "CREDIT", - Self::Deduction => "DEDUCTION", - Self::Refund => "REFUND", - Self::Bid => "BID", - } - } - /// Creates an enum from field names used in the ProtoBuf definition. - pub fn from_str_name(value: &str) -> ::core::option::Option { - match value { - "UNSPECIFIED_BALANCE_CHANGE_OPERATION" => Some(Self::UnspecifiedBalanceChangeOperation), - "DEPOSIT" => Some(Self::Deposit), - "WITHDRAWAL" => Some(Self::Withdrawal), - "CREDIT" => Some(Self::Credit), - "DEDUCTION" => Some(Self::Deduction), - "REFUND" => Some(Self::Refund), - "BID" => Some(Self::Bid), - _ => None, - } - } -} -/// Generated client implementations. -pub mod prover_network_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] - use tonic::codegen::http::Uri; - use tonic::codegen::*; - #[derive(Debug, Clone)] - pub struct ProverNetworkClient { - inner: tonic::client::Grpc, - } - impl ProverNetworkClient { - /// Attempt to create a new client by connecting to a given endpoint. - pub async fn connect(dst: D) -> Result - where - D: TryInto, - D::Error: Into, - { - let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; - Ok(Self::new(conn)) - } - } - impl ProverNetworkClient - where - T: tonic::client::GrpcService, - T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, - { - pub fn new(inner: T) -> Self { - let inner = tonic::client::Grpc::new(inner); - Self { inner } - } - pub fn with_origin(inner: T, origin: Uri) -> Self { - let inner = tonic::client::Grpc::with_origin(inner, origin); - Self { inner } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> ProverNetworkClient> - where - F: tonic::service::Interceptor, - T::ResponseBody: Default, - T: tonic::codegen::Service< - http::Request, - Response = http::Response< - >::ResponseBody, - >, - >, - >>::Error: - Into + std::marker::Send + std::marker::Sync, - { - ProverNetworkClient::new(InterceptedService::new(inner, interceptor)) - } - /// Compress requests with the given encoding. - /// - /// This requires the server to support it otherwise it might respond with an - /// error. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.send_compressed(encoding); - self - } - /// Enable decompressing responses. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.accept_compressed(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_decoding_message_size(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_encoding_message_size(limit); - self - } - /// Creates a proof request. - pub async fn request_proof( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/RequestProof"); - let mut req = request.into_request(); - req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "RequestProof")); - self.inner.unary(req, path, codec).await - } - /// Fulfills a proof request. Only callable by the assigned fulfiller. - pub async fn fulfill_proof( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/FulfillProof"); - let mut req = request.into_request(); - req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "FulfillProof")); - self.inner.unary(req, path, codec).await - } - /// Executes a proof request. Only callable by the execution oracle. - pub async fn execute_proof( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/ExecuteProof"); - let mut req = request.into_request(); - req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "ExecuteProof")); - self.inner.unary(req, path, codec).await - } - /// Fails fulfillment. Only callable by the assigned fulfiller. - pub async fn fail_fulfillment( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = - http::uri::PathAndQuery::from_static("/network.ProverNetwork/FailFulfillment"); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("network.ProverNetwork", "FailFulfillment")); - self.inner.unary(req, path, codec).await - } - /// Fails execution. Only callable by the execution oracle. - pub async fn fail_execution( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/FailExecution"); - let mut req = request.into_request(); - req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "FailExecution")); - self.inner.unary(req, path, codec).await - } - /// Get the status of a proof request. - pub async fn get_proof_request_status( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/network.ProverNetwork/GetProofRequestStatus", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("network.ProverNetwork", "GetProofRequestStatus")); - self.inner.unary(req, path, codec).await - } - /// Get the details of a proof request. - pub async fn get_proof_request_details( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/network.ProverNetwork/GetProofRequestDetails", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("network.ProverNetwork", "GetProofRequestDetails")); - self.inner.unary(req, path, codec).await - } - /// Get the proof requests that meet the filter criteria. - pub async fn get_filtered_proof_requests( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/network.ProverNetwork/GetFilteredProofRequests", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("network.ProverNetwork", "GetFilteredProofRequests")); - self.inner.unary(req, path, codec).await - } - /// Search for proof requests, programs, and requesters. - pub async fn get_search_results( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = - http::uri::PathAndQuery::from_static("/network.ProverNetwork/GetSearchResults"); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("network.ProverNetwork", "GetSearchResults")); - self.inner.unary(req, path, codec).await - } - /// Get metrics for proof requests. - pub async fn get_proof_request_metrics( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/network.ProverNetwork/GetProofRequestMetrics", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("network.ProverNetwork", "GetProofRequestMetrics")); - self.inner.unary(req, path, codec).await - } - /// Get time series data for proof requests. - pub async fn get_proof_request_graph( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = - http::uri::PathAndQuery::from_static("/network.ProverNetwork/GetProofRequestGraph"); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("network.ProverNetwork", "GetProofRequestGraph")); - self.inner.unary(req, path, codec).await - } - /// Get analytics graphs for proof requests. - pub async fn get_analytics_graphs( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = - http::uri::PathAndQuery::from_static("/network.ProverNetwork/GetAnalyticsGraphs"); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("network.ProverNetwork", "GetAnalyticsGraphs")); - self.inner.unary(req, path, codec).await - } - /// Get the nonce of the account. - pub async fn get_nonce( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/GetNonce"); - let mut req = request.into_request(); - req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "GetNonce")); - self.inner.unary(req, path, codec).await - } - /// Get the delegations of the account. - pub async fn get_filtered_delegations( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/network.ProverNetwork/GetFilteredDelegations", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("network.ProverNetwork", "GetFilteredDelegations")); - self.inner.unary(req, path, codec).await - } - /// Add a delegation. Only callable by the owner of an account. - pub async fn add_delegation( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/AddDelegation"); - let mut req = request.into_request(); - req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "AddDelegation")); - self.inner.unary(req, path, codec).await - } - /// Remove a delegation. Only callable by the owner of an account. - pub async fn remove_delegation( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = - http::uri::PathAndQuery::from_static("/network.ProverNetwork/RemoveDelegation"); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("network.ProverNetwork", "RemoveDelegation")); - self.inner.unary(req, path, codec).await - } - /// Accept a delegation. Only callable by the delegate of a delegation. - pub async fn accept_delegation( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = - http::uri::PathAndQuery::from_static("/network.ProverNetwork/AcceptDelegation"); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("network.ProverNetwork", "AcceptDelegation")); - self.inner.unary(req, path, codec).await - } - /// Set the name of the account. Only callable by the owner of an account. - pub async fn set_account_name( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = - http::uri::PathAndQuery::from_static("/network.ProverNetwork/SetAccountName"); - let mut req = request.into_request(); - req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "SetAccountName")); - self.inner.unary(req, path, codec).await - } - /// Get the name of the account. - pub async fn get_account_name( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = - http::uri::PathAndQuery::from_static("/network.ProverNetwork/GetAccountName"); - let mut req = request.into_request(); - req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "GetAccountName")); - self.inner.unary(req, path, codec).await - } - /// Get whether the account has signed the terms. - pub async fn get_terms_signature( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = - http::uri::PathAndQuery::from_static("/network.ProverNetwork/GetTermsSignature"); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("network.ProverNetwork", "GetTermsSignature")); - self.inner.unary(req, path, codec).await - } - /// Set whether the account has signed the terms. - pub async fn set_terms_signature( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = - http::uri::PathAndQuery::from_static("/network.ProverNetwork/SetTermsSignature"); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("network.ProverNetwork", "SetTermsSignature")); - self.inner.unary(req, path, codec).await - } - /// Get metadata about a program. - pub async fn get_program( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/GetProgram"); - let mut req = request.into_request(); - req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "GetProgram")); - self.inner.unary(req, path, codec).await - } - /// Create a new program. Must be called before requesting proofs. - pub async fn create_program( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/CreateProgram"); - let mut req = request.into_request(); - req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "CreateProgram")); - self.inner.unary(req, path, codec).await - } - /// Set the name of the program. Only callable by the owner. - pub async fn set_program_name( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = - http::uri::PathAndQuery::from_static("/network.ProverNetwork/SetProgramName"); - let mut req = request.into_request(); - req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "SetProgramName")); - self.inner.unary(req, path, codec).await - } - /// Get the available balance of an account. - pub async fn get_balance( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/GetBalance"); - let mut req = request.into_request(); - req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "GetBalance")); - self.inner.unary(req, path, codec).await - } - /// Get the balance logs that meet the filter criteria. - pub async fn get_filtered_balance_logs( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/network.ProverNetwork/GetFilteredBalanceLogs", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("network.ProverNetwork", "GetFilteredBalanceLogs")); - self.inner.unary(req, path, codec).await - } - /// Add credit to an account. - pub async fn add_credit( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/AddCredit"); - let mut req = request.into_request(); - req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "AddCredit")); - self.inner.unary(req, path, codec).await - } - /// Get the latest processed block in the bridge. - pub async fn get_latest_bridge_block( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = - http::uri::PathAndQuery::from_static("/network.ProverNetwork/GetLatestBridgeBlock"); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("network.ProverNetwork", "GetLatestBridgeBlock")); - self.inner.unary(req, path, codec).await - } - /// Get the gas price estimate for a given fulfillment strategy. - pub async fn get_gas_price_estimate( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = - http::uri::PathAndQuery::from_static("/network.ProverNetwork/GetGasPriceEstimate"); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("network.ProverNetwork", "GetGasPriceEstimate")); - self.inner.unary(req, path, codec).await - } - /// Get the details of a transaction. - pub async fn get_transaction_details( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/network.ProverNetwork/GetTransactionDetails", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("network.ProverNetwork", "GetTransactionDetails")); - self.inner.unary(req, path, codec).await - } - /// Get the reservations that meet the filter criteria. - pub async fn get_filtered_reservations( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/network.ProverNetwork/GetFilteredReservations", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("network.ProverNetwork", "GetFilteredReservations")); - self.inner.unary(req, path, codec).await - } - /// Add a reservation for a requester. - pub async fn add_reservation( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = - http::uri::PathAndQuery::from_static("/network.ProverNetwork/AddReservation"); - let mut req = request.into_request(); - req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "AddReservation")); - self.inner.unary(req, path, codec).await - } - /// Remove a reservation for a requester. - pub async fn remove_reservation( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> - { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = - http::uri::PathAndQuery::from_static("/network.ProverNetwork/RemoveReservation"); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("network.ProverNetwork", "RemoveReservation")); - self.inner.unary(req, path, codec).await - } - /// Bid for a proof request. Provers that want to be assigned this request must first - /// bid on it. - pub async fn bid( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/Bid"); - let mut req = request.into_request(); - req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "Bid")); - self.inner.unary(req, path, codec).await - } - /// Settle the bids on a proof request to choose the assigned prover. Only callable by - /// the approved settler. - pub async fn settle( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> { - self.inner.ready().await.map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/Settle"); - let mut req = request.into_request(); - req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "Settle")); - self.inner.unary(req, path, codec).await - } - } -} -/// Generated server implementations. -pub mod prover_network_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] - use tonic::codegen::*; - /// Generated trait containing gRPC methods that should be implemented for use with ProverNetworkServer. - #[async_trait] - pub trait ProverNetwork: std::marker::Send + std::marker::Sync + 'static { - /// Creates a proof request. - async fn request_proof( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Fulfills a proof request. Only callable by the assigned fulfiller. - async fn fulfill_proof( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Executes a proof request. Only callable by the execution oracle. - async fn execute_proof( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Fails fulfillment. Only callable by the assigned fulfiller. - async fn fail_fulfillment( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Fails execution. Only callable by the execution oracle. - async fn fail_execution( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Get the status of a proof request. - async fn get_proof_request_status( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Get the details of a proof request. - async fn get_proof_request_details( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - /// Get the proof requests that meet the filter criteria. - async fn get_filtered_proof_requests( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - /// Search for proof requests, programs, and requesters. - async fn get_search_results( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Get metrics for proof requests. - async fn get_proof_request_metrics( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - /// Get time series data for proof requests. - async fn get_proof_request_graph( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Get analytics graphs for proof requests. - async fn get_analytics_graphs( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Get the nonce of the account. - async fn get_nonce( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Get the delegations of the account. - async fn get_filtered_delegations( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - /// Add a delegation. Only callable by the owner of an account. - async fn add_delegation( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Remove a delegation. Only callable by the owner of an account. - async fn remove_delegation( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Accept a delegation. Only callable by the delegate of a delegation. - async fn accept_delegation( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Set the name of the account. Only callable by the owner of an account. - async fn set_account_name( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Get the name of the account. - async fn get_account_name( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Get whether the account has signed the terms. - async fn get_terms_signature( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Set whether the account has signed the terms. - async fn set_terms_signature( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Get metadata about a program. - async fn get_program( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Create a new program. Must be called before requesting proofs. - async fn create_program( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Set the name of the program. Only callable by the owner. - async fn set_program_name( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Get the available balance of an account. - async fn get_balance( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Get the balance logs that meet the filter criteria. - async fn get_filtered_balance_logs( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - /// Add credit to an account. - async fn add_credit( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Get the latest processed block in the bridge. - async fn get_latest_bridge_block( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Get the gas price estimate for a given fulfillment strategy. - async fn get_gas_price_estimate( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Get the details of a transaction. - async fn get_transaction_details( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Get the reservations that meet the filter criteria. - async fn get_filtered_reservations( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - /// Add a reservation for a requester. - async fn add_reservation( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Remove a reservation for a requester. - async fn remove_reservation( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Bid for a proof request. Provers that want to be assigned this request must first - /// bid on it. - async fn bid( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - /// Settle the bids on a proof request to choose the assigned prover. Only callable by - /// the approved settler. - async fn settle( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - } - #[derive(Debug)] - pub struct ProverNetworkServer { - inner: Arc, - accept_compression_encodings: EnabledCompressionEncodings, - send_compression_encodings: EnabledCompressionEncodings, - max_decoding_message_size: Option, - max_encoding_message_size: Option, - } - impl ProverNetworkServer { - pub fn new(inner: T) -> Self { - Self::from_arc(Arc::new(inner)) - } - pub fn from_arc(inner: Arc) -> Self { - Self { - inner, - accept_compression_encodings: Default::default(), - send_compression_encodings: Default::default(), - max_decoding_message_size: None, - max_encoding_message_size: None, - } - } - pub fn with_interceptor(inner: T, interceptor: F) -> InterceptedService - where - F: tonic::service::Interceptor, - { - InterceptedService::new(Self::new(inner), interceptor) - } - /// Enable decompressing requests with the given encoding. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.accept_compression_encodings.enable(encoding); - self - } - /// Compress responses with the given encoding, if the client supports it. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.send_compression_encodings.enable(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.max_decoding_message_size = Some(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.max_encoding_message_size = Some(limit); - self - } - } - impl tonic::codegen::Service> for ProverNetworkServer - where - T: ProverNetwork, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, - { - type Response = http::Response; - type Error = std::convert::Infallible; - type Future = BoxFuture; - fn poll_ready( - &mut self, - _cx: &mut Context<'_>, - ) -> Poll> { - Poll::Ready(Ok(())) - } - fn call(&mut self, req: http::Request) -> Self::Future { - match req.uri().path() { - "/network.ProverNetwork/RequestProof" => { - #[allow(non_camel_case_types)] - struct RequestProofSvc(pub Arc); - impl tonic::server::UnaryService - for RequestProofSvc - { - type Response = super::RequestProofResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::request_proof(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = RequestProofSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/FulfillProof" => { - #[allow(non_camel_case_types)] - struct FulfillProofSvc(pub Arc); - impl tonic::server::UnaryService - for FulfillProofSvc - { - type Response = super::FulfillProofResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::fulfill_proof(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = FulfillProofSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/ExecuteProof" => { - #[allow(non_camel_case_types)] - struct ExecuteProofSvc(pub Arc); - impl tonic::server::UnaryService - for ExecuteProofSvc - { - type Response = super::ExecuteProofResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::execute_proof(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = ExecuteProofSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/FailFulfillment" => { - #[allow(non_camel_case_types)] - struct FailFulfillmentSvc(pub Arc); - impl - tonic::server::UnaryService - for FailFulfillmentSvc - { - type Response = super::FailFulfillmentResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::fail_fulfillment(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = FailFulfillmentSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/FailExecution" => { - #[allow(non_camel_case_types)] - struct FailExecutionSvc(pub Arc); - impl tonic::server::UnaryService - for FailExecutionSvc - { - type Response = super::FailExecutionResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::fail_execution(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = FailExecutionSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/GetProofRequestStatus" => { - #[allow(non_camel_case_types)] - struct GetProofRequestStatusSvc(pub Arc); - impl - tonic::server::UnaryService - for GetProofRequestStatusSvc - { - type Response = super::GetProofRequestStatusResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_proof_request_status(&inner, request) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetProofRequestStatusSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/GetProofRequestDetails" => { - #[allow(non_camel_case_types)] - struct GetProofRequestDetailsSvc(pub Arc); - impl - tonic::server::UnaryService - for GetProofRequestDetailsSvc - { - type Response = super::GetProofRequestDetailsResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_proof_request_details(&inner, request) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetProofRequestDetailsSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/GetFilteredProofRequests" => { - #[allow(non_camel_case_types)] - struct GetFilteredProofRequestsSvc(pub Arc); - impl - tonic::server::UnaryService - for GetFilteredProofRequestsSvc - { - type Response = super::GetFilteredProofRequestsResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_filtered_proof_requests(&inner, request) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetFilteredProofRequestsSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/GetSearchResults" => { - #[allow(non_camel_case_types)] - struct GetSearchResultsSvc(pub Arc); - impl - tonic::server::UnaryService - for GetSearchResultsSvc - { - type Response = super::GetSearchResultsResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_search_results(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetSearchResultsSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/GetProofRequestMetrics" => { - #[allow(non_camel_case_types)] - struct GetProofRequestMetricsSvc(pub Arc); - impl - tonic::server::UnaryService - for GetProofRequestMetricsSvc - { - type Response = super::GetProofRequestMetricsResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_proof_request_metrics(&inner, request) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetProofRequestMetricsSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/GetProofRequestGraph" => { - #[allow(non_camel_case_types)] - struct GetProofRequestGraphSvc(pub Arc); - impl - tonic::server::UnaryService - for GetProofRequestGraphSvc - { - type Response = super::GetProofRequestGraphResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_proof_request_graph(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetProofRequestGraphSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/GetAnalyticsGraphs" => { - #[allow(non_camel_case_types)] - struct GetAnalyticsGraphsSvc(pub Arc); - impl - tonic::server::UnaryService - for GetAnalyticsGraphsSvc - { - type Response = super::GetAnalyticsGraphsResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_analytics_graphs(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetAnalyticsGraphsSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/GetNonce" => { - #[allow(non_camel_case_types)] - struct GetNonceSvc(pub Arc); - impl tonic::server::UnaryService for GetNonceSvc { - type Response = super::GetNonceResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_nonce(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetNonceSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/GetFilteredDelegations" => { - #[allow(non_camel_case_types)] - struct GetFilteredDelegationsSvc(pub Arc); - impl - tonic::server::UnaryService - for GetFilteredDelegationsSvc - { - type Response = super::GetFilteredDelegationsResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_filtered_delegations(&inner, request) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetFilteredDelegationsSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/AddDelegation" => { - #[allow(non_camel_case_types)] - struct AddDelegationSvc(pub Arc); - impl tonic::server::UnaryService - for AddDelegationSvc - { - type Response = super::AddDelegationResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::add_delegation(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = AddDelegationSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/RemoveDelegation" => { - #[allow(non_camel_case_types)] - struct RemoveDelegationSvc(pub Arc); - impl - tonic::server::UnaryService - for RemoveDelegationSvc - { - type Response = super::RemoveDelegationResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::remove_delegation(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = RemoveDelegationSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/AcceptDelegation" => { - #[allow(non_camel_case_types)] - struct AcceptDelegationSvc(pub Arc); - impl - tonic::server::UnaryService - for AcceptDelegationSvc - { - type Response = super::AcceptDelegationResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::accept_delegation(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = AcceptDelegationSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/SetAccountName" => { - #[allow(non_camel_case_types)] - struct SetAccountNameSvc(pub Arc); - impl tonic::server::UnaryService - for SetAccountNameSvc - { - type Response = super::SetAccountNameResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::set_account_name(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = SetAccountNameSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/GetAccountName" => { - #[allow(non_camel_case_types)] - struct GetAccountNameSvc(pub Arc); - impl tonic::server::UnaryService - for GetAccountNameSvc - { - type Response = super::GetAccountNameResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_account_name(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetAccountNameSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/GetTermsSignature" => { - #[allow(non_camel_case_types)] - struct GetTermsSignatureSvc(pub Arc); - impl - tonic::server::UnaryService - for GetTermsSignatureSvc - { - type Response = super::GetTermsSignatureResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_terms_signature(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetTermsSignatureSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/SetTermsSignature" => { - #[allow(non_camel_case_types)] - struct SetTermsSignatureSvc(pub Arc); - impl - tonic::server::UnaryService - for SetTermsSignatureSvc - { - type Response = super::SetTermsSignatureResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::set_terms_signature(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = SetTermsSignatureSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/GetProgram" => { - #[allow(non_camel_case_types)] - struct GetProgramSvc(pub Arc); - impl tonic::server::UnaryService for GetProgramSvc { - type Response = super::GetProgramResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_program(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetProgramSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/CreateProgram" => { - #[allow(non_camel_case_types)] - struct CreateProgramSvc(pub Arc); - impl tonic::server::UnaryService - for CreateProgramSvc - { - type Response = super::CreateProgramResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::create_program(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = CreateProgramSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/SetProgramName" => { - #[allow(non_camel_case_types)] - struct SetProgramNameSvc(pub Arc); - impl tonic::server::UnaryService - for SetProgramNameSvc - { - type Response = super::SetProgramNameResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::set_program_name(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = SetProgramNameSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/GetBalance" => { - #[allow(non_camel_case_types)] - struct GetBalanceSvc(pub Arc); - impl tonic::server::UnaryService for GetBalanceSvc { - type Response = super::GetBalanceResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_balance(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetBalanceSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/GetFilteredBalanceLogs" => { - #[allow(non_camel_case_types)] - struct GetFilteredBalanceLogsSvc(pub Arc); - impl - tonic::server::UnaryService - for GetFilteredBalanceLogsSvc - { - type Response = super::GetFilteredBalanceLogsResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_filtered_balance_logs(&inner, request) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetFilteredBalanceLogsSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/AddCredit" => { - #[allow(non_camel_case_types)] - struct AddCreditSvc(pub Arc); - impl tonic::server::UnaryService for AddCreditSvc { - type Response = super::AddCreditResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::add_credit(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = AddCreditSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/GetLatestBridgeBlock" => { - #[allow(non_camel_case_types)] - struct GetLatestBridgeBlockSvc(pub Arc); - impl - tonic::server::UnaryService - for GetLatestBridgeBlockSvc - { - type Response = super::GetLatestBridgeBlockResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_latest_bridge_block(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetLatestBridgeBlockSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/GetGasPriceEstimate" => { - #[allow(non_camel_case_types)] - struct GetGasPriceEstimateSvc(pub Arc); - impl - tonic::server::UnaryService - for GetGasPriceEstimateSvc - { - type Response = super::GetGasPriceEstimateResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_gas_price_estimate(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetGasPriceEstimateSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/GetTransactionDetails" => { - #[allow(non_camel_case_types)] - struct GetTransactionDetailsSvc(pub Arc); - impl - tonic::server::UnaryService - for GetTransactionDetailsSvc - { - type Response = super::GetTransactionDetailsResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_transaction_details(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetTransactionDetailsSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/GetFilteredReservations" => { - #[allow(non_camel_case_types)] - struct GetFilteredReservationsSvc(pub Arc); - impl - tonic::server::UnaryService - for GetFilteredReservationsSvc - { - type Response = super::GetFilteredReservationsResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_filtered_reservations(&inner, request) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetFilteredReservationsSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/AddReservation" => { - #[allow(non_camel_case_types)] - struct AddReservationSvc(pub Arc); - impl tonic::server::UnaryService - for AddReservationSvc - { - type Response = super::AddReservationResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::add_reservation(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = AddReservationSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/RemoveReservation" => { - #[allow(non_camel_case_types)] - struct RemoveReservationSvc(pub Arc); - impl - tonic::server::UnaryService - for RemoveReservationSvc - { - type Response = super::RemoveReservationResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::remove_reservation(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = RemoveReservationSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/Bid" => { - #[allow(non_camel_case_types)] - struct BidSvc(pub Arc); - impl tonic::server::UnaryService for BidSvc { - type Response = super::BidResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = - async move { ::bid(&inner, request).await }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = BidSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/network.ProverNetwork/Settle" => { - #[allow(non_camel_case_types)] - struct SettleSvc(pub Arc); - impl tonic::server::UnaryService for SettleSvc { - type Response = super::SettleResponse; - type Future = BoxFuture, tonic::Status>; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = - async move { ::settle(&inner, request).await }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = SettleSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - _ => Box::pin(async move { - Ok(http::Response::builder() - .status(200) - .header("grpc-status", tonic::Code::Unimplemented as i32) - .header(http::header::CONTENT_TYPE, tonic::metadata::GRPC_CONTENT_TYPE) - .body(empty_body()) - .unwrap()) - }), - } - } - } - impl Clone for ProverNetworkServer { - fn clone(&self) -> Self { - let inner = self.inner.clone(); - Self { - inner, - accept_compression_encodings: self.accept_compression_encodings, - send_compression_encodings: self.send_compression_encodings, - max_decoding_message_size: self.max_decoding_message_size, - max_encoding_message_size: self.max_encoding_message_size, - } - } - } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "network.ProverNetwork"; - impl tonic::server::NamedService for ProverNetworkServer { - const NAME: &'static str = SERVICE_NAME; - } -} diff --git a/crates/sdk/src/network-v2/prover.rs b/crates/sdk/src/network-v2/prover.rs deleted file mode 100644 index 67f9a7cc45..0000000000 --- a/crates/sdk/src/network-v2/prover.rs +++ /dev/null @@ -1,377 +0,0 @@ -use std::time::{Duration, Instant}; - -use crate::network_v2::client::DEFAULT_PROVER_NETWORK_RPC; -use crate::provers::{CpuProver, ProverType}; -use crate::util::dump_proof_input; -use crate::{ - network_v2::client::NetworkClient, - network_v2::proto::network::{ - ExecutionStatus, FulfillmentStatus, FulfillmentStrategy, ProofMode, - }, - Prover, SP1ProofKind, SP1ProofWithPublicValues, SP1ProvingKey, SP1VerifyingKey, -}; -use anyhow::Result; -use backoff::{future::retry, Error as BackoffError, ExponentialBackoff}; -use serde::de::DeserializeOwned; -use sp1_core_machine::io::SP1Stdin; -use sp1_prover::{components::DefaultProverComponents, SP1Prover, SP1_CIRCUIT_VERSION}; -use tonic::Code; -use {crate::block_on, tokio::time::sleep}; - -/// The timeout for a proof request to be fulfilled. -const TIMEOUT_SECS: u64 = 14400; - -/// The default cycle limit for a proof request if simulation is skipped. -const DEFAULT_CYCLE_LIMIT: u64 = 100_000_000; - -/// An implementation of [crate::ProverClient] that can generate proofs on a remote RPC server. -pub struct NetworkProver { - client: NetworkClient, - local_prover: CpuProver, - strategy: FulfillmentStrategy, -} - -impl NetworkProver { - /// Creates a new [NetworkProver] with the given private key. - pub fn new(private_key: &str, rpc_url: Option) -> Self { - let version = SP1_CIRCUIT_VERSION; - log::info!("Client circuit version: {}", version); - let local_prover = CpuProver::new(false); - let client = NetworkClient::new(private_key, rpc_url); - Self { client, local_prover, strategy: FulfillmentStrategy::Hosted } - } - - /// Prepare to prove the execution of the given program with the given input in the default - /// mode. The returned [NetworkProve] may be configured via its methods before running. - /// For example, calling [NetworkProve::compressed] sets the mode to compressed mode. - pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> NetworkProve<'a> { - NetworkProve::new(self, pk, stdin) - } - - /// Registers a program if it is not already registered. - pub async fn register_program(&self, vk: &SP1VerifyingKey, elf: &[u8]) -> Result> { - self.client.register_program(vk, elf).await - } - - /// Get the cycle limit, either by simulating or using the default cycle limit. - fn get_cycle_limit(&self, elf: &[u8], stdin: &SP1Stdin, skip_simulation: bool) -> Result { - if !skip_simulation { - let (_, report) = - self.local_prover.sp1_prover().execute(elf, stdin, Default::default())?; - let cycles = report.total_instruction_count(); - Ok(cycles) - } else { - Ok(DEFAULT_CYCLE_LIMIT) - } - } - - /// Requests a proof from the prover network, returning the request ID. - pub(crate) async fn request_proof( - &self, - vk_hash: &[u8], - stdin: &SP1Stdin, - mode: ProofMode, - cycle_limit: u64, - timeout: Option, - ) -> Result> { - // Get the timeout. - let timeout_secs = timeout.map(|dur| dur.as_secs()).unwrap_or(TIMEOUT_SECS); - - log::info!("Requesting proof with cycle limit: {}", cycle_limit); - - // Request the proof with retries. - let response = with_retry( - || async { - self.client - .request_proof( - vk_hash, - stdin, - mode, - SP1_CIRCUIT_VERSION, - self.strategy, - timeout_secs, - cycle_limit, - ) - .await - }, - timeout, - "requesting proof", - ) - .await?; - - // Log the request ID and transaction hash. - let tx_hash_hex = "0x".to_string() + &hex::encode(response.tx_hash); - let request_id = response.body.unwrap().request_id; - let request_id_hex = "0x".to_string() + &hex::encode(request_id.clone()); - log::info!("Created request {} in transaction {}", request_id_hex, tx_hash_hex); - - if self.client.rpc_url() == DEFAULT_PROVER_NETWORK_RPC { - log::info!("View in explorer: https://network.succinct.xyz/request/{}", request_id_hex); - } - - Ok(request_id) - } - - /// Waits for a proof to be generated and returns the proof. If a timeout is supplied, the - /// function will return an error if the proof is not generated within the timeout. - pub(crate) async fn wait_proof( - &self, - request_id: &[u8], - timeout: Option, - ) -> Result

{ - let mut is_assigned = false; - let start_time = Instant::now(); - - loop { - // Calculate the remaining timeout. - if let Some(timeout) = timeout { - if start_time.elapsed() > timeout { - return Err(anyhow::anyhow!("Proof request timed out.")); - } - } - let remaining_timeout = timeout.map(|t| { - let elapsed = start_time.elapsed(); - if elapsed < t { - t - elapsed - } else { - Duration::from_secs(0) - } - }); - - // Get status with retries. - let (status, maybe_proof) = with_retry( - || async { self.client.get_proof_request_status::

(request_id).await }, - remaining_timeout, - "getting proof request status", - ) - .await?; - - // Check the execution status. - if status.execution_status == ExecutionStatus::Unexecutable as i32 { - return Err(anyhow::anyhow!("Proof request is unexecutable")); - } - - // Check the fulfillment status. - match FulfillmentStatus::try_from(status.fulfillment_status) { - Ok(FulfillmentStatus::Fulfilled) => { - return Ok(maybe_proof.unwrap()); - } - Ok(FulfillmentStatus::Assigned) => { - if !is_assigned { - log::info!("Proof request assigned, proving..."); - is_assigned = true; - } - } - Ok(FulfillmentStatus::Unfulfillable) => { - return Err(anyhow::anyhow!("Proof request is unfulfillable")); - } - _ => {} - } - - sleep(Duration::from_secs(2)).await; - } - } - - /// Requests a proof from the prover network and waits for it to be generated. - pub(crate) async fn prove_impl( - &self, - pk: &SP1ProvingKey, - stdin: SP1Stdin, - mode: ProofMode, - timeout: Option, - skip_simulation: bool, - ) -> Result { - let vk_hash = self.register_program(&pk.vk, &pk.elf).await?; - let cycle_limit = self.get_cycle_limit(&pk.elf, &stdin, skip_simulation)?; - let request_id = self.request_proof(&vk_hash, &stdin, mode, cycle_limit, timeout).await?; - self.wait_proof(&request_id, timeout).await - } -} - -impl Prover for NetworkProver { - fn id(&self) -> ProverType { - ProverType::Network - } - - fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey) { - self.local_prover.setup(elf) - } - - fn sp1_prover(&self) -> &SP1Prover { - self.local_prover.sp1_prover() - } - - fn prove( - &self, - pk: &SP1ProvingKey, - stdin: SP1Stdin, - kind: SP1ProofKind, - ) -> Result { - block_on(self.prove_impl(pk, stdin, kind.into(), None, false)) - } -} - -impl From for ProofMode { - fn from(value: SP1ProofKind) -> Self { - match value { - SP1ProofKind::Core => Self::Core, - SP1ProofKind::Compressed => Self::Compressed, - SP1ProofKind::Plonk => Self::Plonk, - SP1ProofKind::Groth16 => Self::Groth16, - } - } -} - -/// Execute an async operation with exponential backoff retries. -pub async fn with_retry( - operation: F, - timeout: Option, - operation_name: &str, -) -> Result -where - F: Fn() -> Fut, - Fut: std::future::Future>, -{ - let backoff = ExponentialBackoff { - initial_interval: Duration::from_secs(1), - max_interval: Duration::from_secs(120), - max_elapsed_time: timeout, - ..Default::default() - }; - - retry(backoff, || async { - match operation().await { - Ok(result) => Ok(result), - Err(e) => { - // Check for tonic status errors. - if let Some(status) = e.downcast_ref::() { - match status.code() { - Code::Unavailable => { - log::warn!( - "Network temporarily unavailable when {} due to {}, retrying...", - operation_name, - status.message(), - ); - Err(BackoffError::transient(e)) - } - Code::NotFound => { - log::error!( - "{} not found due to {}", - operation_name, - status.message(), - ); - Err(BackoffError::permanent(e)) - } - _ => { - log::error!( - "Permanent error encountered when {}: {} ({})", - operation_name, - status.message(), - status.code() - ); - Err(BackoffError::permanent(e)) - } - } - } else { - // Check for common transport errors. - let error_msg = e.to_string().to_lowercase(); - let is_transient = error_msg.contains("tls handshake") || - error_msg.contains("dns error") || - error_msg.contains("connection reset") || - error_msg.contains("broken pipe") || - error_msg.contains("transport error") || - error_msg.contains("failed to lookup"); - - if is_transient { - log::warn!( - "Transient transport error when {}: {}, retrying...", - operation_name, - error_msg - ); - Err(BackoffError::transient(e)) - } else { - log::error!("Permanent error when {}: {}", operation_name, error_msg); - Err(BackoffError::permanent(e)) - } - } - } - } - }) - .await -} - -/// Builder to prepare and configure proving execution of a program on an input. -/// May be run with [Self::run]. -pub struct NetworkProve<'a> { - prover: &'a NetworkProver, - kind: SP1ProofKind, - pk: &'a SP1ProvingKey, - stdin: SP1Stdin, - timeout: Option, - skip_simulation: bool, -} - -impl<'a> NetworkProve<'a> { - fn new(prover: &'a NetworkProver, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> Self { - Self { prover, kind: Default::default(), pk, stdin, timeout: None, skip_simulation: false } - } - - /// Prove the execution of the program on the input, consuming the built action `self`. - pub fn run(self) -> Result { - let Self { prover, kind, pk, stdin, timeout, skip_simulation } = self; - - dump_proof_input(&pk.elf, &stdin); - - block_on(prover.prove_impl(pk, stdin, kind.into(), timeout, skip_simulation)) - } - - pub async fn run_async(self) -> Result { - let Self { prover, kind, pk, stdin, timeout, skip_simulation } = self; - - dump_proof_input(&pk.elf, &stdin); - - prover.prove_impl(pk, stdin, kind.into(), timeout, skip_simulation).await - } - - /// Set the proof kind to the core mode. This is the default. - pub fn core(mut self) -> Self { - self.kind = SP1ProofKind::Core; - self - } - - /// Set the proof kind to the compressed mode. - pub fn compressed(mut self) -> Self { - self.kind = SP1ProofKind::Compressed; - self - } - - /// Set the proof mode to the plonk bn254 mode. - pub fn plonk(mut self) -> Self { - self.kind = SP1ProofKind::Plonk; - self - } - - /// Set the proof mode to the groth16 bn254 mode. - pub fn groth16(mut self) -> Self { - self.kind = SP1ProofKind::Groth16; - self - } - - /// Set the proof mode to the given mode. - pub fn mode(mut self, mode: SP1ProofKind) -> Self { - self.kind = mode; - self - } - - /// Set the timeout for the proof's generation. - pub fn timeout(mut self, timeout: Duration) -> Self { - self.timeout = Some(timeout); - self - } - - /// Enable skipping the simulation step. - pub fn skip_simulation(mut self, skip_simulation: bool) -> Self { - self.skip_simulation = skip_simulation; - self - } -} diff --git a/crates/sdk/src/network/auth.rs b/crates/sdk/src/network/auth.rs deleted file mode 100644 index 7786cc4d36..0000000000 --- a/crates/sdk/src/network/auth.rs +++ /dev/null @@ -1,142 +0,0 @@ -use std::{borrow::Cow, str::FromStr}; - -use alloy_signer::SignerSync; -use alloy_signer_local::PrivateKeySigner; - -use alloy_sol_types::{sol, Eip712Domain, SolStruct}; -use anyhow::Result; - -use crate::network::proto::network::UnclaimReason; - -sol! { - struct CreateProof { - uint64 nonce; - uint64 deadline; - uint32 mode; - string version; - } - - struct SubmitProof { - uint64 nonce; - string proof_id; - } - - struct ClaimProof { - uint64 nonce; - string proof_id; - } - - struct UnclaimProof { - uint64 nonce; - string proof_id; - uint8 reason; - string description; - } - - struct ModifyCpuCycles { - uint64 nonce; - string proof_id; - uint64 cycles; - } - - struct FulfillProof { - uint64 nonce; - string proof_id; - } -} - -/// Handles authentication for the Succinct prover network. All interactions that could potentially -/// use computational resources must be authenticated by signing a message with a secp256k1 key. -/// -/// The messages themselves follow EIP-712, where the domain is "succinct" and the TypeStruct -/// changes depending on which endpoint is being used. Documentation for EIP-712 can be found at: -/// https://eips.ethereum.org/EIPS/eip-712 -pub struct NetworkAuth { - // Holds a secp256k1 private key. - wallet: PrivateKeySigner, -} - -impl NetworkAuth { - pub fn new(private_key: &str) -> Self { - let wallet = PrivateKeySigner::from_str(private_key).unwrap(); - Self { wallet } - } - - /// Gets the EIP-712 domain separator for the Succinct prover network. - fn get_domain_separator() -> Eip712Domain { - Eip712Domain { - name: Some(Cow::Borrowed("succinct")), - version: Some(Cow::Borrowed("1")), - ..Default::default() - } - } - - /// Gets the address of the auth's account, derived from the secp256k1 private key. - pub fn get_address(&self) -> [u8; 20] { - self.wallet.address().into() - } - - // Generic function to sign a message based on the SolStruct. - async fn sign_message(&self, type_struct: T) -> Result> { - let domain_separator = Self::get_domain_separator(); - let message_hash = type_struct.eip712_signing_hash(&domain_separator); - let signature = self.wallet.sign_hash_sync(&message_hash)?; - Ok(signature.as_bytes().to_vec()) - } - - /// Signs a message to to request to create a proof. - pub async fn sign_create_proof_message( - &self, - nonce: u64, - deadline: u64, - mode: i32, - version: &str, - ) -> Result> { - let type_struct = - CreateProof { nonce, deadline, mode: mode as u32, version: version.to_string() }; - self.sign_message(type_struct).await - } - - /// Signs a message to mark a proof as ready for proof generation. - pub async fn sign_submit_proof_message(&self, nonce: u64, proof_id: &str) -> Result> { - let type_struct = SubmitProof { nonce, proof_id: proof_id.to_string() }; - self.sign_message(type_struct).await - } - - /// Signs a message to claim a proof that was requested. - pub async fn sign_claim_proof_message(&self, nonce: u64, proof_id: &str) -> Result> { - let type_struct = ClaimProof { nonce, proof_id: proof_id.to_string() }; - self.sign_message(type_struct).await - } - - /// Signs a message to unclaim a proof that was previously claimed. - pub async fn sign_unclaim_proof_message( - &self, - nonce: u64, - proof_id: String, - reason: UnclaimReason, - description: String, - ) -> Result> { - let type_struct = UnclaimProof { nonce, proof_id, reason: reason as u8, description }; - self.sign_message(type_struct).await - } - - /// Signs a message to modify the CPU cycles for a proof. The proof must have been previously - /// claimed by the signer first. - pub async fn sign_modify_cpu_cycles_message( - &self, - nonce: u64, - proof_id: &str, - cycles: u64, - ) -> Result> { - let type_struct = ModifyCpuCycles { nonce, proof_id: proof_id.to_string(), cycles }; - self.sign_message(type_struct).await - } - - /// Signs a message to fulfill a proof. The proof must have been previously claimed by the - /// signer first. - pub async fn sign_fulfill_proof_message(&self, nonce: u64, proof_id: &str) -> Result> { - let type_struct = FulfillProof { nonce, proof_id: proof_id.to_string() }; - self.sign_message(type_struct).await - } -} diff --git a/crates/sdk/src/network/builder.rs b/crates/sdk/src/network/builder.rs new file mode 100644 index 0000000000..826e993938 --- /dev/null +++ b/crates/sdk/src/network/builder.rs @@ -0,0 +1,88 @@ +//! # Network Prover Builder +//! +//! This module provides a builder for the [NetworkProver]. + +use crate::NetworkProver; + +/// A builder for the [NetworkProver]. +/// +/// The builder is used to configure the [NetworkProver] before it is built. +pub struct NetworkProverBuilder { + pub(crate) private_key: Option, + pub(crate) rpc_url: Option, +} + +impl NetworkProverBuilder { + /// Sets the Secp256k1 private key (same format as the one used by Ethereum). + /// + /// # Details + /// Sets the private key that will be used sign requests sent to the network. By default, the + /// private key is read from the `SUCCINCT_PRIVATE_KEY` environment variable. + /// + /// # Example + /// ```rust,no_run + /// let prover = ProverClient::network() + /// .private_key("...") + /// .build(); + /// ``` + pub fn private_key(mut self, private_key: String) -> Self { + self.private_key = Some(private_key); + self + } + + /// Sets the remote procedure call URL. + /// + /// # Details + /// The URL determintes the network that the client will connect to. By default, the URL is + /// read from the `SUCCINCT_RPC_URL` environment variable. + /// + /// # Example + /// ```rust,no_run + /// let prover = ProverClient::network() + /// .rpc_url("...") + /// .build(); + /// ``` + pub fn rpc_url(mut self, rpc_url: String) -> Self { + self.rpc_url = Some(rpc_url); + self + } + + /// Builds a [NetworkProver]. + /// + /// # Details + /// This method will build a [NetworkProver] with the given parameters. If the private key is + /// not provided, the method will look for the `SP1_PRIVATE_KEY` environment variable. + /// + /// # Example + /// ```rust,no_run + /// let prover = ProverClient::network() + /// .private_key("...") + /// .rpc_url("...") + /// .build(); + /// ``` + pub fn build(self) -> NetworkProver { + let private_key = match self.private_key { + Some(private_key) => private_key, + None => std::env::var("NETWORK_PRIVATE_KEY").expect( + "NETWORK_PRIVATE_KEY environment variable is not set. \ + Please set it to your private key or use the .private_key() method.", + ), + }; + + let rpc_url = match self.rpc_url { + Some(rpc_url) => rpc_url, + None => std::env::var("NETWORK_RPC_URL").expect( + "NETWORK_RPC_URL environment variable is not set. \ + Please set it to your rpc url or use the .rpc_url() method.", + ), + }; + + NetworkProver::new(&private_key, &rpc_url) + } +} + +impl Default for NetworkProverBuilder { + fn default() -> Self { + Self { private_key: None, rpc_url: None } + } +} diff --git a/crates/sdk/src/network/client.rs b/crates/sdk/src/network/client.rs index 2e39f9b08b..4f64a28974 100644 --- a/crates/sdk/src/network/client.rs +++ b/crates/sdk/src/network/client.rs @@ -1,122 +1,203 @@ -use std::time::Duration; - -use crate::{ - network::{ - auth::NetworkAuth, - proto::network::{ - ModifyCpuCyclesRequest, ModifyCpuCyclesResponse, UnclaimProofRequest, UnclaimReason, - }, - }, - SP1ProofWithPublicValues, -}; +//! # Network Client +//! +//! This module provides a client for directly interacting with the network prover service. + +use std::result::Result::Ok as StdOk; +use std::str::FromStr; +use std::time::{Duration, SystemTime, UNIX_EPOCH}; + +use alloy_signer::SignerSync; +use alloy_signer_local::PrivateKeySigner; use anyhow::{Context, Ok, Result}; -use futures::{future::join_all, Future}; -use reqwest::{Client as HttpClient, Url}; use reqwest_middleware::ClientWithMiddleware as HttpClientWithMiddleware; +use serde::{de::DeserializeOwned, Serialize}; use sp1_core_machine::io::SP1Stdin; -use std::{ - result::Result::Ok as StdOk, - time::{SystemTime, UNIX_EPOCH}, +use sp1_prover::{HashableKey, SP1VerifyingKey}; +use tonic::{ + transport::{channel::ClientTlsConfig, Channel}, + Code, }; -use twirp::{Client as TwirpClient, ClientError}; +use super::utils::Signable; +use crate::network::proto::artifact::{ + artifact_store_client::ArtifactStoreClient, CreateArtifactRequest, +}; use crate::network::proto::network::{ - ClaimProofRequest, ClaimProofResponse, CreateProofRequest, FulfillProofRequest, - FulfillProofResponse, GetNonceRequest, GetProofRequestsRequest, GetProofRequestsResponse, - GetProofStatusRequest, GetProofStatusResponse, NetworkServiceClient, ProofMode, ProofStatus, - SubmitProofRequest, + prover_network_client::ProverNetworkClient, CreateProgramRequest, CreateProgramRequestBody, + CreateProgramResponse, FulfillmentStatus, FulfillmentStrategy, GetNonceRequest, + GetProgramRequest, GetProgramResponse, GetProofRequestStatusRequest, + GetProofRequestStatusResponse, MessageFormat, ProofMode, RequestProofRequest, + RequestProofRequestBody, RequestProofResponse, }; -/// The default RPC endpoint for the Succinct prover network. -pub const DEFAULT_PROVER_NETWORK_RPC: &str = "https://rpc.succinct.xyz/"; - -/// The timeout for a proof request to be fulfilled. -const PROOF_TIMEOUT: Duration = Duration::from_secs(60 * 60); - -/// The timeout for a single RPC request. -const REQUEST_TIMEOUT: Duration = Duration::from_secs(30); - +/// A client for interacting with the network. pub struct NetworkClient { - pub rpc: TwirpClient, - pub http: HttpClientWithMiddleware, - pub auth: NetworkAuth, - pub is_using_prover_network: bool, + pub(crate) signer: PrivateKeySigner, + pub(crate) http: HttpClientWithMiddleware, + pub(crate) rpc_url: String, } impl NetworkClient { - /// Create a new NetworkClient with the given private key for authentication. - pub fn new(private_key: &str, rpc_url: Option) -> Self { - let auth = NetworkAuth::new(private_key); - - let twirp_http_client = HttpClient::builder() - .timeout(REQUEST_TIMEOUT) + /// Creates a new [NetworkClient] with the given private key and rpc url. + /// + /// # Example + /// ```rust,no_run + /// let client = NetworkClient::new("...", "..."); + /// ``` + pub fn new(private_key: impl Into, rpc_url: impl Into) -> Self { + let signer = PrivateKeySigner::from_str(&private_key.into()).unwrap(); + let client = reqwest::Client::builder() .pool_max_idle_per_host(0) .pool_idle_timeout(Duration::from_secs(240)) .build() .unwrap(); + Self { signer, http: client.into(), rpc_url: rpc_url.into() } + } - let rpc_url = rpc_url.unwrap_or_else(|| DEFAULT_PROVER_NETWORK_RPC.to_string()); - let rpc = - TwirpClient::new(Url::parse(&rpc_url).unwrap(), twirp_http_client, vec![]).unwrap(); + /// Get the latest nonce for this account's address. + /// + /// # Example + /// ```rust,no_run + /// let client = NetworkClient::new("...", "..."); + /// let nonce = client.get_nonce().await?; + /// ``` + pub async fn get_nonce(&self) -> Result { + let mut rpc = self.prover_network_client().await?; + let res = + rpc.get_nonce(GetNonceRequest { address: self.signer.address().to_vec() }).await?; + Ok(res.into_inner().nonce) + } - let http_client = HttpClient::builder() - .timeout(REQUEST_TIMEOUT) - .pool_max_idle_per_host(0) - .pool_idle_timeout(Duration::from_secs(240)) - .build() - .unwrap(); + /// Get the verifying key hash from a verifying key. + /// + /// # Details + /// The verifying key hash is used to identify a program. + /// + /// # Example + /// ```rust,no_run + /// let client = NetworkClient::new("...", "..."); + /// let vk_hash = client.get_vk_hash(&vk).await?; + /// ``` + pub fn get_vk_hash(vk: &SP1VerifyingKey) -> Result> { + let vk_hash_str = vk.bytes32(); + let vk_hash = hex::decode(vk_hash_str.strip_prefix("0x").unwrap_or(&vk_hash_str))?; + Ok(vk_hash) + } - Self { - auth, - rpc, - http: http_client.into(), - is_using_prover_network: rpc_url == DEFAULT_PROVER_NETWORK_RPC, + /// Registers a program with the network if it is not already registered. + /// + /// # Example + /// ```rust,no_run + /// let client = NetworkClient::new("...", "..."); + /// let vk_hash = client.register_program(&vk, &elf).await?; + /// ``` + pub async fn register_program(&self, vk: &SP1VerifyingKey, elf: &[u8]) -> Result> { + let vk_hash = Self::get_vk_hash(vk)?; + + // Try to get the existing program. + match self.get_program(&vk_hash).await? { + Some(_) => { + // The program already exists. + Ok(vk_hash) + } + None => { + // The program doesn't exist, create it. + self.create_program(&vk_hash, vk, elf).await?; + log::info!("Registered program 0x{}", hex::encode(vk_hash.clone())); + Ok(vk_hash) + } } } - /// Gets the latest nonce for this auth's account. - pub async fn get_nonce(&self) -> Result { - let res = self - .with_error_handling( - self.rpc.get_nonce(GetNonceRequest { address: self.auth.get_address().to_vec() }), - ) - .await?; - Ok(res.nonce) + /// Attempts to get the program on the network. + /// + /// # Details + /// Returns `None` if the program does not exist. + /// + /// # Example + /// ```rust,no_run + /// let client = NetworkClient::new("...", "..."); + /// let program = client.get_program(&vk_hash).await?; + /// ``` + pub async fn get_program(&self, vk_hash: &[u8]) -> Result> { + let mut rpc = self.prover_network_client().await?; + match rpc.get_program(GetProgramRequest { vk_hash: vk_hash.to_vec() }).await { + StdOk(response) => Ok(Some(response.into_inner())), + Err(status) if status.code() == Code::NotFound => Ok(None), + Err(e) => Err(e.into()), + } } - /// Upload a file to the specified url. - async fn upload_file(&self, url: &str, data: Vec) -> Result<()> { - self.http.put(url).body(data).send().await?; - Ok(()) + /// Creates a new program on the network. + /// + /// # Example + /// ```rust,no_run + /// let client = NetworkClient::new("...", "..."); + /// let program = client.create_program(&vk_hash, &vk, &elf).await?; + /// ``` + pub async fn create_program( + &self, + vk_hash: &[u8], + vk: &SP1VerifyingKey, + elf: &[u8], + ) -> Result { + // Create the program artifact. + let mut store = self.artifact_store_client().await?; + let program_uri = self.create_artifact_with_content(&mut store, &elf).await?; + + // Serialize the verifying key. + let vk_encoded = bincode::serialize(&vk)?; + + // Send the request. + let mut rpc = self.prover_network_client().await?; + let nonce = self.get_nonce().await?; + let request_body = CreateProgramRequestBody { + nonce, + vk_hash: vk_hash.to_vec(), + vk: vk_encoded, + program_uri, + }; + + Ok(rpc + .create_program(CreateProgramRequest { + format: MessageFormat::Binary.into(), + signature: request_body.sign(&self.signer).into(), + body: Some(request_body), + }) + .await? + .into_inner()) } - /// Get the status and the proof if available of a given proof request. The proof is returned - /// only if the status is Fulfilled. - pub async fn get_proof_status( + /// Get the status of a given proof. + /// + /// # Details + /// If the status is Fulfilled, the proof is also returned. + /// + /// # Example + /// ```rust,no_run + /// let client = NetworkClient::new("...", "..."); + /// let (status, proof) = client.get_proof_request_status(&request_id).await?; + /// ``` + pub async fn get_proof_request_status( &self, - proof_id: &str, - ) -> Result<(GetProofStatusResponse, Option)> { - let res = self - .with_error_handling( - self.rpc.get_proof_status(GetProofStatusRequest { proof_id: proof_id.to_string() }), - ) - .await - .context("Failed to get proof status")?; - - let proof = match res.status() { - ProofStatus::ProofFulfilled => { - log::info!("Proof request fulfilled"); - let proof_bytes = self - .http - .get(res.proof_url.as_ref().expect("no proof url")) - .timeout(Duration::from_secs(120)) - .send() - .await - .context("Failed to send HTTP request for proof")? - .bytes() - .await - .context("Failed to load proof bytes")?; - + request_id: &[u8], + ) -> Result<(GetProofRequestStatusResponse, Option

)> { + let mut rpc = self.prover_network_client().await?; + let res = rpc + .get_proof_request_status(GetProofRequestStatusRequest { + request_id: request_id.to_vec(), + }) + .await? + .into_inner(); + + let status = FulfillmentStatus::try_from(res.fulfillment_status)?; + let proof = match status { + FulfillmentStatus::Fulfilled => { + let proof_uri = res + .proof_uri + .as_ref() + .ok_or_else(|| anyhow::anyhow!("No proof URI provided"))?; + let proof_bytes = self.download_artifact(proof_uri).await?; Some(bincode::deserialize(&proof_bytes).context("Failed to deserialize proof")?) } _ => None, @@ -125,167 +206,125 @@ impl NetworkClient { Ok((res, proof)) } - /// Get all the proof requests for a given status. Also filter by circuit version if provided. - pub async fn get_proof_requests( + /// Creates a proof request with the given verifying key hash and stdin. + /// + /// # Details + /// * `vk_hash`: The verifying key hash of the program to prove. Used to identify the program. + /// * `stdin`: The standard input to provide to the program. + /// * `mode`: The [ProofMode] to use. + /// * `version`: The version of the SP1 circuits to use. + /// * `strategy`: The [FulfillmentStrategy] to use. + /// * `timeout_secs`: The timeout for the proof request in seconds. + /// * `cycle_limit`: The cycle limit for the proof request. + /// + /// # Example + /// ```rust,no_run + /// let client = NetworkClient::new("...", "..."); + /// let response = client.request_proof(&vk_hash, &stdin, mode, version, strategy, timeout_secs, cycle_limit).await?; + /// ``` + #[allow(clippy::too_many_arguments)] + pub async fn request_proof( &self, - status: ProofStatus, - circuit_version: Option<&str>, - ) -> Result { - self.with_error_handling(self.rpc.get_proof_requests(GetProofRequestsRequest { - status: status.into(), - circuit_version: circuit_version.map(|v| v.to_owned()), - })) - .await - } - - /// Creates a proof request for the given ELF and stdin. - pub async fn create_proof( - &self, - elf: &[u8], + vk_hash: &[u8], stdin: &SP1Stdin, mode: ProofMode, - circuit_version: &str, - ) -> Result { + version: &str, + strategy: FulfillmentStrategy, + timeout_secs: u64, + cycle_limit: u64, + ) -> Result { + // Calculate the deadline. let start = SystemTime::now(); let since_the_epoch = start.duration_since(UNIX_EPOCH).expect("Invalid start time"); - let deadline = since_the_epoch.as_secs() + PROOF_TIMEOUT.as_secs(); + let deadline = since_the_epoch.as_secs() + timeout_secs; - let nonce = self.get_nonce().await?; - let create_proof_signature = self - .auth - .sign_create_proof_message(nonce, deadline, mode.into(), circuit_version) - .await?; - - let res = self - .with_error_handling(self.rpc.create_proof(CreateProofRequest { - signature: create_proof_signature.to_vec(), - nonce, - deadline, - mode: mode.into(), - circuit_version: circuit_version.to_string(), - })) - .await?; - - let program_bytes = bincode::serialize(elf)?; - let stdin_bytes = bincode::serialize(&stdin)?; - let program_promise = self.upload_file(&res.program_url, program_bytes); - let stdin_promise = self.upload_file(&res.stdin_url, stdin_bytes); - let v = vec![program_promise, stdin_promise]; - let mut results = join_all(v).await; - results.pop().expect("Failed to upload stdin")?; - results.pop().expect("Failed to upload program")?; + // Create the stdin artifact. + let mut store = self.artifact_store_client().await?; + let stdin_uri = self.create_artifact_with_content(&mut store, &stdin).await?; + // Send the request. + let mut rpc = self.prover_network_client().await?; let nonce = self.get_nonce().await?; - let submit_proof_signature = - self.auth.sign_submit_proof_message(nonce, &res.proof_id).await?; - - self.with_error_handling(self.rpc.submit_proof(SubmitProofRequest { - signature: submit_proof_signature.to_vec(), + let request_body = RequestProofRequestBody { nonce, - proof_id: res.proof_id.clone(), - })) - .await?; - - Ok(res.proof_id) + version: format!("sp1-{}", version), + vk_hash: vk_hash.to_vec(), + mode: mode.into(), + strategy: strategy.into(), + stdin_uri, + deadline, + cycle_limit, + }; + let request_response = rpc + .request_proof(RequestProofRequest { + format: MessageFormat::Binary.into(), + signature: request_body.sign(&self.signer).into(), + body: Some(request_body), + }) + .await? + .into_inner(); + + Ok(request_response) } - /// Claim a proof that was requested. This commits to generating a proof and fulfilling it. - /// Returns an error if the proof is not in a PROOF_REQUESTED state. - pub async fn claim_proof(&self, proof_id: &str) -> Result { - let nonce = self.get_nonce().await?; - let signature = self.auth.sign_claim_proof_message(nonce, proof_id).await?; + pub(crate) async fn prover_network_client(&self) -> Result> { + let rpc_url = self.rpc_url.clone(); + let mut endpoint = Channel::from_shared(rpc_url.clone())?; - self.with_error_handling(self.rpc.claim_proof(ClaimProofRequest { - signature, - nonce, - proof_id: proof_id.to_string(), - })) - .await + // Check if the URL scheme is HTTPS and configure TLS. + if rpc_url.starts_with("https://") { + let tls_config = ClientTlsConfig::new().with_enabled_roots(); + endpoint = endpoint.tls_config(tls_config)?; + } + + let channel = endpoint.connect().await?; + Ok(ProverNetworkClient::new(channel)) } - /// Unclaim a proof that was claimed. This should only be called if the proof has not been - /// fulfilled yet. Returns an error if the proof is not in a PROOF_CLAIMED state or if the - /// caller is not the claimer. - pub async fn unclaim_proof( - &self, - proof_id: String, - reason: UnclaimReason, - description: String, - ) -> Result<()> { - let nonce = self.get_nonce().await?; - let signature = self - .auth - .sign_unclaim_proof_message(nonce, proof_id.clone(), reason, description.clone()) - .await?; + pub(crate) async fn artifact_store_client(&self) -> Result> { + let rpc_url = self.rpc_url.clone(); + let mut endpoint = Channel::from_shared(rpc_url.clone())?; - self.with_error_handling(self.rpc.unclaim_proof(UnclaimProofRequest { - signature, - nonce, - proof_id, - reason: reason.into(), - description, - })) - .await?; + // Check if the URL scheme is HTTPS and configure TLS. + if rpc_url.starts_with("https://") { + let tls_config = ClientTlsConfig::new().with_enabled_roots(); + endpoint = endpoint.tls_config(tls_config)?; + } - Ok(()) + let channel = endpoint.connect().await?; + Ok(ArtifactStoreClient::new(channel.clone())) } - /// Modifies the CPU cycles for a proof. May be called by the claimer after the proof has been - /// claimed. Returns an error if the proof is not in a PROOF_CLAIMED state or if the caller is - /// not the claimer. - pub async fn modify_cpu_cycles( + pub(crate) async fn create_artifact_with_content( &self, - proof_id: &str, - cycles: u64, - ) -> Result { - let nonce = self.get_nonce().await?; - let signature = self.auth.sign_modify_cpu_cycles_message(nonce, proof_id, cycles).await?; - let res = self - .with_error_handling(self.rpc.modify_cpu_cycles(ModifyCpuCyclesRequest { - signature, - nonce, - proof_id: proof_id.to_string(), - cycles, - })) - .await?; - - Ok(res) - } + store: &mut ArtifactStoreClient, + item: &T, + ) -> Result { + let signature = self.signer.sign_message_sync("create_artifact".as_bytes())?; + let request = CreateArtifactRequest { signature: signature.as_bytes().to_vec() }; + let response = store.create_artifact(request).await?.into_inner(); - /// Fulfill a proof. Should only be called after the proof has been uploaded. Returns an error - /// if the proof is not in a PROOF_CLAIMED state or if the caller is not the claimer. - pub async fn fulfill_proof(&self, proof_id: &str) -> Result { - let nonce = self.get_nonce().await?; - let signature = self.auth.sign_fulfill_proof_message(nonce, proof_id).await?; - let res = self - .with_error_handling(self.rpc.fulfill_proof(FulfillProofRequest { - signature, - nonce, - proof_id: proof_id.to_string(), - })) - .await?; - - Ok(res) - } + let presigned_url = response.artifact_presigned_url; + let uri = response.artifact_uri; + + let response = + self.http.put(&presigned_url).body(bincode::serialize::(item)?).send().await?; + + if !response.status().is_success() { + log::debug!("Artifact upload failed with status: {}", response.status()); + } + assert!(response.status().is_success()); - /// Awaits the future, then handles Succinct prover network errors. - async fn with_error_handling(&self, future: F) -> Result - where - F: Future>, - { - let result = future.await; - self.handle_twirp_error(result) + Ok(uri) } - /// Handles Twirp errors by formatting them into more readable error messages. - fn handle_twirp_error(&self, result: std::result::Result) -> Result { - match result { - StdOk(response) => StdOk(response), - Err(ClientError::TwirpError(err)) => { - let display_err = format!("error: \"{:?}\" message: {:?}", err.code, err.msg); - Err(anyhow::anyhow!(display_err)) - } - Err(err) => Err(err.into()), + pub(crate) async fn download_artifact(&self, uri: &str) -> Result> { + let response = self.http.get(uri).send().await.context("Failed to download from URI")?; + + if !response.status().is_success() { + return Err(anyhow::anyhow!("Failed to download artifact: HTTP {}", response.status())); } + + Ok(response.bytes().await.context("Failed to read response body")?.to_vec()) } } diff --git a/crates/sdk/src/network/mod.rs b/crates/sdk/src/network/mod.rs index 12d9b7b352..8a6b1a1ae7 100644 --- a/crates/sdk/src/network/mod.rs +++ b/crates/sdk/src/network/mod.rs @@ -1,6 +1,17 @@ -pub mod auth; +//! # SP1 Network +//! +//! A library for interacting with the SP1 prover over the network. + pub mod client; pub mod prover; - +mod sign_message; #[rustfmt::skip] +#[allow(missing_docs)] pub mod proto; +pub mod builder; +pub mod prove; +pub mod utils; + +pub(crate) const DEFAULT_PROVER_NETWORK_RPC: &str = "https://rpc.production.succinct.tools/"; +pub(crate) const DEFAULT_TIMEOUT_SECS: u64 = 14400; +pub(crate) const DEFAULT_CYCLE_LIMIT: u64 = 100_000_000; diff --git a/crates/sdk/src/network-v2/proto/artifact.rs b/crates/sdk/src/network/proto/artifact.rs similarity index 98% rename from crates/sdk/src/network-v2/proto/artifact.rs rename to crates/sdk/src/network/proto/artifact.rs index f635654c39..0a87fe6519 100644 --- a/crates/sdk/src/network-v2/proto/artifact.rs +++ b/crates/sdk/src/network/proto/artifact.rs @@ -57,11 +57,11 @@ pub mod artifact_store_client { F: tonic::service::Interceptor, T::ResponseBody: Default, T: tonic::codegen::Service< - http::Request, - Response = http::Response< - >::ResponseBody, + http::Request, + Response = http::Response< + >::ResponseBody, + >, >, - >, >>::Error: Into + std::marker::Send + std::marker::Sync, { diff --git a/crates/sdk/src/network/proto/mod.rs b/crates/sdk/src/network/proto/mod.rs index a61610bd4d..48eb63675a 100644 --- a/crates/sdk/src/network/proto/mod.rs +++ b/crates/sdk/src/network/proto/mod.rs @@ -1 +1,2 @@ +pub mod artifact; pub mod network; diff --git a/crates/sdk/src/network/proto/network.rs b/crates/sdk/src/network/proto/network.rs index 545c9db255..dd0077db9a 100644 --- a/crates/sdk/src/network/proto/network.rs +++ b/crates/sdk/src/network/proto/network.rs @@ -1,271 +1,1146 @@ // This file is @generated by prost-build. -/// The request to create a proof, the first step in requesting a proof. #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct CreateProofRequest { - /// The signature of the message. - #[prost(bytes = "vec", tag = "1")] +pub struct RequestProofRequest { + /// The message format of the body. + #[prost(enumeration = "MessageFormat", tag = "1")] + pub format: i32, + /// The signature of the sender. + #[prost(bytes = "vec", tag = "2")] pub signature: ::prost::alloc::vec::Vec, - /// The nonce for the account. - #[prost(uint64, tag = "2")] + /// The body of the request. + #[prost(message, optional, tag = "3")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct RequestProofRequestBody { + /// The account nonce of the sender. + #[prost(uint64, tag = "1")] pub nonce: u64, - /// The mode for proof generation. - #[prost(enumeration = "ProofMode", tag = "3")] + /// The verification key hash of the program. + #[prost(bytes = "vec", tag = "2")] + pub vk_hash: ::prost::alloc::vec::Vec, + /// The version of the prover to use. + #[prost(string, tag = "3")] + pub version: ::prost::alloc::string::String, + /// The mode for the request. + #[prost(enumeration = "ProofMode", tag = "4")] pub mode: i32, - /// The deadline for the proof request, signifying the latest time a fulfillment would be valid. - #[prost(uint64, tag = "4")] + /// The strategy for fulfiller assignment. + #[prost(enumeration = "FulfillmentStrategy", tag = "5")] + pub strategy: i32, + /// The stdin resource identifier. + #[prost(string, tag = "6")] + pub stdin_uri: ::prost::alloc::string::String, + /// The deadline for the request. + #[prost(uint64, tag = "7")] pub deadline: u64, - /// The SP1 circuit version to use for the proof. - #[prost(string, tag = "5")] - pub circuit_version: ::prost::alloc::string::String, + /// The cycle limit for the request. + #[prost(uint64, tag = "8")] + pub cycle_limit: u64, } -/// The response for creating a proof. #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct CreateProofResponse { - /// The proof identifier. - #[prost(string, tag = "1")] - pub proof_id: ::prost::alloc::string::String, - /// The URL to upload the ELF file. - #[prost(string, tag = "2")] - pub program_url: ::prost::alloc::string::String, - /// The URL to upload the standard input (stdin). - #[prost(string, tag = "3")] - pub stdin_url: ::prost::alloc::string::String, +pub struct RequestProofResponse { + /// The transaction hash. + #[prost(bytes = "vec", tag = "1")] + pub tx_hash: ::prost::alloc::vec::Vec, + /// The body of the response. + #[prost(message, optional, tag = "2")] + pub body: ::core::option::Option, } -/// The request to submit a proof, the second step in requesting a proof. MUST be called when the -/// proof is in a PROOF_REQUESTED state and MUST be called after uploading the program and stdin to -/// the URLs provided during create proof. #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct SubmitProofRequest { - /// The signature of the message. +pub struct RequestProofResponseBody { + /// The identifier for the request. #[prost(bytes = "vec", tag = "1")] + pub request_id: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct FulfillProofRequest { + /// The message format of the body. + #[prost(enumeration = "MessageFormat", tag = "1")] + pub format: i32, + /// The signature of the sender. + #[prost(bytes = "vec", tag = "2")] pub signature: ::prost::alloc::vec::Vec, - /// The nonce for the account. - #[prost(uint64, tag = "2")] + /// The body of the request. + #[prost(message, optional, tag = "3")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct FulfillProofRequestBody { + /// The account nonce of the sender. + #[prost(uint64, tag = "1")] pub nonce: u64, - /// The proof identifier. - #[prost(string, tag = "3")] - pub proof_id: ::prost::alloc::string::String, + /// The identifier for the request. + #[prost(bytes = "vec", tag = "2")] + pub request_id: ::prost::alloc::vec::Vec, + /// The proof bytes. + #[prost(bytes = "vec", tag = "3")] + pub proof: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct FulfillProofResponse { + /// The transaction hash. + #[prost(bytes = "vec", tag = "1")] + pub tx_hash: ::prost::alloc::vec::Vec, + /// The body of the response. + #[prost(message, optional, tag = "2")] + pub body: ::core::option::Option, } -/// The response for submitting a proof, empty on success. #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct SubmitProofResponse {} -/// The request to claim a proof, which agrees to fulfill the proof by the deadline. MUST be called -/// when the proof is in a PROOF_REQUESTED state. +pub struct FulfillProofResponseBody {} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct ExecuteProofRequest { + /// The message format of the body. + #[prost(enumeration = "MessageFormat", tag = "1")] + pub format: i32, + /// The signature of the sender. + #[prost(bytes = "vec", tag = "2")] + pub signature: ::prost::alloc::vec::Vec, + /// The body of the request. + #[prost(message, optional, tag = "3")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct ExecuteProofRequestBody { + /// The account nonce of the sender. + #[prost(uint64, tag = "1")] + pub nonce: u64, + /// The identifier for the request. + #[prost(bytes = "vec", tag = "2")] + pub request_id: ::prost::alloc::vec::Vec, + /// The execution status of the request. + #[prost(enumeration = "ExecutionStatus", tag = "3")] + pub execution_status: i32, + /// The optional public values hash of the request execution, only included if + /// the request is valid. + #[prost(bytes = "vec", optional, tag = "4")] + pub public_values_hash: ::core::option::Option<::prost::alloc::vec::Vec>, + /// The optional cycles used when executing the request, only included if the + /// request is valid. + #[prost(uint64, optional, tag = "5")] + pub cycles: ::core::option::Option, +} #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct ClaimProofRequest { - /// The signature of the message. +pub struct ExecuteProofResponse { + /// The transaction hash. #[prost(bytes = "vec", tag = "1")] + pub tx_hash: ::prost::alloc::vec::Vec, + /// The body of the response. + #[prost(message, optional, tag = "2")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] +pub struct ExecuteProofResponseBody {} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct FailFulfillmentRequest { + /// The message format of the body. + #[prost(enumeration = "MessageFormat", tag = "1")] + pub format: i32, + /// The signature of the sender. + #[prost(bytes = "vec", tag = "2")] pub signature: ::prost::alloc::vec::Vec, - /// The nonce for the account. - #[prost(uint64, tag = "2")] + /// The body of the request. + #[prost(message, optional, tag = "3")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct FailFulfillmentRequestBody { + /// The account nonce of the sender. + #[prost(uint64, tag = "1")] pub nonce: u64, - /// The proof identifier. + /// The identifier for the request. + #[prost(bytes = "vec", tag = "2")] + pub request_id: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct FailFulfillmentResponse { + /// The transaction hash. + #[prost(bytes = "vec", tag = "1")] + pub tx_hash: ::prost::alloc::vec::Vec, + /// The body of the response. + #[prost(message, optional, tag = "2")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] +pub struct FailFulfillmentResponseBody {} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct FailExecutionRequest { + /// The message format of the body. + #[prost(enumeration = "MessageFormat", tag = "1")] + pub format: i32, + /// The signature of the sender. + #[prost(bytes = "vec", tag = "2")] + pub signature: ::prost::alloc::vec::Vec, + /// The body of the request. + #[prost(message, optional, tag = "3")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct FailExecutionRequestBody { + /// The account nonce of the sender. + #[prost(uint64, tag = "1")] + pub nonce: u64, + /// The identifier for the request. + #[prost(bytes = "vec", tag = "2")] + pub request_id: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct FailExecutionResponse { + /// The transaction hash. + #[prost(bytes = "vec", tag = "1")] + pub tx_hash: ::prost::alloc::vec::Vec, + /// The body of the response. + #[prost(message, optional, tag = "2")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] +pub struct FailExecutionResponseBody {} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct ProofRequest { + /// The request identifier. + #[prost(bytes = "vec", tag = "1")] + pub request_id: ::prost::alloc::vec::Vec, + /// The verification key hash of the program. + #[prost(bytes = "vec", tag = "2")] + pub vk_hash: ::prost::alloc::vec::Vec, + /// The version of the prover to use. #[prost(string, tag = "3")] - pub proof_id: ::prost::alloc::string::String, + pub version: ::prost::alloc::string::String, + /// The mode for the proof. + #[prost(enumeration = "ProofMode", tag = "4")] + pub mode: i32, + /// The strategy for fulfiller assignment. + #[prost(enumeration = "FulfillmentStrategy", tag = "5")] + pub strategy: i32, + /// The program resource identifier. + #[prost(string, tag = "6")] + pub program_uri: ::prost::alloc::string::String, + /// The stdin resource identifier. + #[prost(string, tag = "7")] + pub stdin_uri: ::prost::alloc::string::String, + /// The deadline for the request. + #[prost(uint64, tag = "8")] + pub deadline: u64, + /// The cycle limit for the request. + #[prost(uint64, tag = "9")] + pub cycle_limit: u64, + /// The gas price for the request. + #[prost(uint64, optional, tag = "10")] + pub gas_price: ::core::option::Option, + /// The fulfillment status of the request. + #[prost(enumeration = "FulfillmentStatus", tag = "11")] + pub fulfillment_status: i32, + /// The execution status of the request. + #[prost(enumeration = "ExecutionStatus", tag = "12")] + pub execution_status: i32, + /// The requester address that signed the request. + #[prost(bytes = "vec", tag = "13")] + pub requester: ::prost::alloc::vec::Vec, + /// The fulfiller address that fulfilled the request. + #[prost(bytes = "vec", optional, tag = "14")] + pub fulfiller: ::core::option::Option<::prost::alloc::vec::Vec>, + /// The optional name to refer to an alias of the program id. + #[prost(string, optional, tag = "15")] + pub program_name: ::core::option::Option<::prost::alloc::string::String>, + /// The optional name to refer to an alias of the requester address. + #[prost(string, optional, tag = "16")] + pub requester_name: ::core::option::Option<::prost::alloc::string::String>, + /// The optional name to refer to an alias of the fulfiller address. + #[prost(string, optional, tag = "17")] + pub fulfiller_name: ::core::option::Option<::prost::alloc::string::String>, + /// The unix timestamp of when the request was created. + #[prost(uint64, tag = "18")] + pub created_at: u64, + /// The unix timestamp of when the request was updated. + #[prost(uint64, tag = "19")] + pub updated_at: u64, + /// The unix timestamp of when the request was fulfilled. + #[prost(uint64, optional, tag = "20")] + pub fulfilled_at: ::core::option::Option, + /// The transaction hash of the request. + #[prost(bytes = "vec", tag = "21")] + pub tx_hash: ::prost::alloc::vec::Vec, + /// The cycle count for the request. + #[prost(uint64, optional, tag = "22")] + pub cycles: ::core::option::Option, + /// The amount deducted from the fulfiller's balance. + #[prost(string, optional, tag = "23")] + pub deduction_amount: ::core::option::Option<::prost::alloc::string::String>, + /// The amount refunded to the fulfiller's balance. + #[prost(string, optional, tag = "24")] + pub refund_amount: ::core::option::Option<::prost::alloc::string::String>, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetProofRequestStatusRequest { + /// The identifier for the request. + #[prost(bytes = "vec", tag = "1")] + pub request_id: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetProofRequestStatusResponse { + /// The fulfillment status of the request. + #[prost(enumeration = "FulfillmentStatus", tag = "1")] + pub fulfillment_status: i32, + /// The execution status of the request. + #[prost(enumeration = "ExecutionStatus", tag = "2")] + pub execution_status: i32, + /// The transaction hash of the request. + #[prost(bytes = "vec", tag = "3")] + pub request_tx_hash: ::prost::alloc::vec::Vec, + /// The optional transaction hash of the proof fulfill. Only included if the + /// request has a fulfillment status of FULFILLED. + #[prost(bytes = "vec", optional, tag = "4")] + pub fulfill_tx_hash: ::core::option::Option<::prost::alloc::vec::Vec>, + /// The optional proof URI, where you can download the result of the request. + /// Only included if the request has a fulfillment status of FULFILLED. + #[prost(string, optional, tag = "5")] + pub proof_uri: ::core::option::Option<::prost::alloc::string::String>, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetProofRequestDetailsRequest { + /// The identifier for the request. + #[prost(bytes = "vec", tag = "1")] + pub request_id: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetProofRequestDetailsResponse { + /// The detailed request. + #[prost(message, optional, tag = "1")] + pub request: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetFilteredProofRequestsRequest { + /// The optional version of the requests to filter for. + #[prost(string, optional, tag = "1")] + pub version: ::core::option::Option<::prost::alloc::string::String>, + /// The optional fulfillment status of the requests to filter for. + #[prost(enumeration = "FulfillmentStatus", optional, tag = "2")] + pub fulfillment_status: ::core::option::Option, + /// The optional execution status of the requests to filter for. + #[prost(enumeration = "ExecutionStatus", optional, tag = "3")] + pub execution_status: ::core::option::Option, + /// The optional minimum unix timestamp deadline of the requests to filter for. + /// Only returns requests with deadlines after this timestamp. + #[prost(uint64, optional, tag = "4")] + pub minimum_deadline: ::core::option::Option, + /// The optional verification key hash of the program to filter for. + #[prost(bytes = "vec", optional, tag = "5")] + pub vk_hash: ::core::option::Option<::prost::alloc::vec::Vec>, + /// The optional requester address to filter for. + #[prost(bytes = "vec", optional, tag = "6")] + pub requester: ::core::option::Option<::prost::alloc::vec::Vec>, + /// The optional fulfiller address to filter for. + #[prost(bytes = "vec", optional, tag = "7")] + pub fulfiller: ::core::option::Option<::prost::alloc::vec::Vec>, + /// The optional minimum creation unix timestamp of the requests to filter for. + #[prost(uint64, optional, tag = "8")] + pub from: ::core::option::Option, + /// The optional maximum creation unix timestamp of the requests to filter for. + #[prost(uint64, optional, tag = "9")] + pub to: ::core::option::Option, + /// The optional maximum number of requests to return (default is 10, + /// maximum is 100). + #[prost(uint32, optional, tag = "10")] + pub limit: ::core::option::Option, + /// The optional page number to return (default is 1). + #[prost(uint32, optional, tag = "11")] + pub page: ::core::option::Option, + /// The optional mode of the requests to filter for. + #[prost(enumeration = "ProofMode", optional, tag = "12")] + pub mode: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetFilteredProofRequestsResponse { + /// The requests that matched the filter criteria. + #[prost(message, repeated, tag = "1")] + pub requests: ::prost::alloc::vec::Vec, } -/// The response for claiming a proof, giving identifiers for the locations to retrieve the program -/// and stdin, as well as the location to upload the proof. #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct ClaimProofResponse { - /// The artifact identifier for the program location. +pub struct GetSearchResultsRequest { + /// The search query string. #[prost(string, tag = "1")] - pub program_artifact_id: ::prost::alloc::string::String, - /// The artifact identifier for the stdin location. - #[prost(string, tag = "2")] - pub stdin_artifact_id: ::prost::alloc::string::String, - /// The artifact identifier for the proof location. - #[prost(string, tag = "3")] - pub proof_artifact_id: ::prost::alloc::string::String, + pub query: ::prost::alloc::string::String, } -/// The request to unclaim a proof, which cancels the claim to fulfill the proof. MUST be called -/// when the proof is in a PROOF_CLAIMED state and MUST be called by the prover who claimed it. #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct UnclaimProofRequest { - /// The signature of the message. +pub struct SearchResult { #[prost(bytes = "vec", tag = "1")] - pub signature: ::prost::alloc::vec::Vec, - /// The nonce for the account. + pub id: ::prost::alloc::vec::Vec, + #[prost(string, optional, tag = "2")] + pub name: ::core::option::Option<::prost::alloc::string::String>, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetSearchResultsResponse { + /// List of matching request IDs with optional names. + #[prost(message, repeated, tag = "1")] + pub requests: ::prost::alloc::vec::Vec, + /// List of matching program IDs with optional names. + #[prost(message, repeated, tag = "2")] + pub programs: ::prost::alloc::vec::Vec, + /// List of matching requester IDs with optional names. + #[prost(message, repeated, tag = "3")] + pub requesters: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetProofRequestMetricsRequest { + /// The optional address to filter for. + #[prost(bytes = "vec", optional, tag = "1")] + pub address: ::core::option::Option<::prost::alloc::vec::Vec>, + /// The optional interval in days for volume calculation. + #[prost(uint64, optional, tag = "2")] + pub volume_interval_days: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] +pub struct GetProofRequestMetricsResponse { + /// The total number of proofs. + #[prost(uint64, tag = "1")] + pub total_proofs: u64, + /// The total number of cycles. #[prost(uint64, tag = "2")] + pub total_cycles: u64, + /// The volume in the specified interval. + #[prost(uint64, tag = "3")] + pub volume: u64, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetProofRequestGraphRequest { + /// The optional address to filter for. + #[prost(bytes = "vec", optional, tag = "1")] + pub address: ::core::option::Option<::prost::alloc::vec::Vec>, + /// The optional interval in days for the graph range. + #[prost(uint64, optional, tag = "2")] + pub range_interval_days: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GraphData { + /// The timestamp of the data point. + #[prost(string, tag = "1")] + pub timestamp: ::prost::alloc::string::String, + /// The value at this timestamp. + #[prost(uint64, tag = "2")] + pub value: u64, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetProofRequestGraphResponse { + /// The time series data points. + #[prost(message, repeated, tag = "1")] + pub data: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetAnalyticsGraphsRequest { + /// The optional address to filter for. + #[prost(bytes = "vec", optional, tag = "1")] + pub address: ::core::option::Option<::prost::alloc::vec::Vec>, + /// The optional interval in days for the graph range. + #[prost(uint64, optional, tag = "2")] + pub range_interval_days: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetAnalyticsGraphsResponse { + /// The time series data points for proof count. + #[prost(message, repeated, tag = "1")] + pub proofs: ::prost::alloc::vec::Vec, + /// The time series data points for program count. + #[prost(message, repeated, tag = "2")] + pub programs: ::prost::alloc::vec::Vec, + /// The time series data points for cycle count. + #[prost(message, repeated, tag = "3")] + pub cycles: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetNonceRequest { + /// The address of the account. + #[prost(bytes = "vec", tag = "1")] + pub address: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] +pub struct GetNonceResponse { + /// The nonce of the account. + #[prost(uint64, tag = "1")] pub nonce: u64, - /// The proof identifier. - #[prost(string, tag = "3")] - pub proof_id: ::prost::alloc::string::String, - /// The reason for unclaiming the proof. - #[prost(enumeration = "UnclaimReason", tag = "4")] - pub reason: i32, - /// The description for the reason. - #[prost(string, tag = "5")] - pub description: ::prost::alloc::string::String, -} -/// The response for unclaiming a proof, empty on success. +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct Delegation { + /// The address of the owner. + #[prost(bytes = "vec", tag = "1")] + pub owner: ::prost::alloc::vec::Vec, + /// The address of the delegate (the account with granted permissions). + #[prost(bytes = "vec", tag = "2")] + pub delegate: ::prost::alloc::vec::Vec, + /// Whether the delegation has been accepted. + #[prost(bool, tag = "3")] + pub accepted: bool, + /// The unix timestamp of when the delegation was created. + #[prost(uint64, tag = "4")] + pub created_at: u64, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetFilteredDelegationsRequest { + /// The optional owner address to filter for. + #[prost(bytes = "vec", optional, tag = "1")] + pub owner: ::core::option::Option<::prost::alloc::vec::Vec>, + /// The optional maximum number of requests to return (default is 10, + /// maximum is 100). + #[prost(uint32, optional, tag = "2")] + pub limit: ::core::option::Option, + /// The optional page number to return (default is 1). + #[prost(uint32, optional, tag = "3")] + pub page: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetFilteredDelegationsResponse { + /// The delegations that matched the filter criteria. + #[prost(message, repeated, tag = "1")] + pub delegations: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct AddDelegationRequest { + /// The message format of the body. + #[prost(enumeration = "MessageFormat", tag = "1")] + pub format: i32, + /// The signature of the sender. + #[prost(bytes = "vec", tag = "2")] + pub signature: ::prost::alloc::vec::Vec, + /// The body of the request. + #[prost(message, optional, tag = "3")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct AddDelegationRequestBody { + /// The account nonce of the sender. + #[prost(uint64, tag = "1")] + pub nonce: u64, + /// The delegate address to add. + #[prost(bytes = "vec", tag = "2")] + pub delegate: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct AddDelegationResponse { + /// The transaction hash. + #[prost(bytes = "vec", tag = "1")] + pub tx_hash: ::prost::alloc::vec::Vec, + /// The body of the response. + #[prost(message, optional, tag = "2")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] +pub struct AddDelegationResponseBody {} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct RemoveDelegationRequest { + /// The message format of the body. + #[prost(enumeration = "MessageFormat", tag = "1")] + pub format: i32, + /// The signature of the sender. + #[prost(bytes = "vec", tag = "2")] + pub signature: ::prost::alloc::vec::Vec, + /// The body of the request. + #[prost(message, optional, tag = "3")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct RemoveDelegationRequestBody { + /// The account nonce of the sender. + #[prost(uint64, tag = "1")] + pub nonce: u64, + /// The delegate address to remove. + #[prost(bytes = "vec", tag = "2")] + pub delegate: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct RemoveDelegationResponse { + /// The transaction hash. + #[prost(bytes = "vec", tag = "1")] + pub tx_hash: ::prost::alloc::vec::Vec, + /// The body of the response. + #[prost(message, optional, tag = "2")] + pub body: ::core::option::Option, +} #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct UnclaimProofResponse {} -/// The request to update a proof's CPU cycle count. +pub struct RemoveDelegationResponseBody {} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct AcceptDelegationRequest { + /// The message format of the body. + #[prost(enumeration = "MessageFormat", tag = "1")] + pub format: i32, + /// The signature of the sender. + #[prost(bytes = "vec", tag = "2")] + pub signature: ::prost::alloc::vec::Vec, + /// The body of the request. + #[prost(message, optional, tag = "3")] + pub body: ::core::option::Option, +} #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct ModifyCpuCyclesRequest { - /// The signature of the message. +pub struct AcceptDelegationRequestBody { + /// The account nonce of the sender. + #[prost(uint64, tag = "1")] + pub nonce: u64, + /// The address of the owner who requested the delegation + #[prost(bytes = "vec", tag = "2")] + pub owner: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct AcceptDelegationResponse { + /// The transaction hash. #[prost(bytes = "vec", tag = "1")] + pub tx_hash: ::prost::alloc::vec::Vec, + /// The body of the response. + #[prost(message, optional, tag = "2")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] +pub struct AcceptDelegationResponseBody {} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct SetAccountNameRequest { + /// The message format of the body. + #[prost(enumeration = "MessageFormat", tag = "1")] + pub format: i32, + /// The signature of the sender. + #[prost(bytes = "vec", tag = "2")] pub signature: ::prost::alloc::vec::Vec, - /// The nonce for the account. - #[prost(uint64, tag = "2")] + /// The body of the request. + #[prost(message, optional, tag = "3")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct SetAccountNameRequestBody { + /// The account nonce of the sender. + #[prost(uint64, tag = "1")] pub nonce: u64, - /// The proof identifier. + /// The address of the account to update the name of. Only the sender can + /// update the name unless authorized. + #[prost(bytes = "vec", tag = "2")] + pub address: ::prost::alloc::vec::Vec, + /// The name of the account. Must be unique. #[prost(string, tag = "3")] - pub proof_id: ::prost::alloc::string::String, - /// The number of CPU cycles for this proof. - #[prost(uint64, tag = "4")] - pub cycles: u64, + pub name: ::prost::alloc::string::String, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct SetAccountNameResponse { + /// The transaction hash. + #[prost(bytes = "vec", tag = "1")] + pub tx_hash: ::prost::alloc::vec::Vec, + /// The body of the response. + #[prost(message, optional, tag = "2")] + pub body: ::core::option::Option, } -/// The response for updating a proof's CPU cycle count, empty on success. #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct ModifyCpuCyclesResponse {} -/// The request to fulfill a proof. MUST be called after the proof has been uploaded and MUST be called -/// when the proof is in a PROOF_CLAIMED state. +pub struct SetAccountNameResponseBody {} #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct FulfillProofRequest { - /// The signature of the message. +pub struct GetAccountNameRequest { + /// The address of the account. #[prost(bytes = "vec", tag = "1")] + pub address: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetAccountNameResponse { + /// The name of the account. + #[prost(string, optional, tag = "1")] + pub name: ::core::option::Option<::prost::alloc::string::String>, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetTermsSignatureRequest { + /// The address of the account. + #[prost(bytes = "vec", tag = "1")] + pub address: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] +pub struct GetTermsSignatureResponse { + /// Whether the account has signed the terms. + #[prost(bool, tag = "1")] + pub is_signed: bool, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct SetTermsSignatureRequest { + /// The message format of the body. + #[prost(enumeration = "MessageFormat", tag = "1")] + pub format: i32, + /// The signature of the sender. + #[prost(bytes = "vec", tag = "2")] pub signature: ::prost::alloc::vec::Vec, - /// The nonce for the account. - #[prost(uint64, tag = "2")] + /// The body of the request. + #[prost(message, optional, tag = "3")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct SetTermsSignatureRequestBody { + /// The account nonce of the sender. + #[prost(uint64, tag = "1")] pub nonce: u64, - /// The proof identifier. - #[prost(string, tag = "3")] - pub proof_id: ::prost::alloc::string::String, + /// The address of the account. + #[prost(bytes = "vec", tag = "2")] + pub address: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct SetTermsSignatureResponse { + /// The transaction hash. + #[prost(bytes = "vec", tag = "1")] + pub tx_hash: ::prost::alloc::vec::Vec, + /// The body of the response. + #[prost(message, optional, tag = "2")] + pub body: ::core::option::Option, } -/// The response for fulfilling a proof, empty on success. #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct FulfillProofResponse { - /// The amount of time, in seconds, between proof claim and fulfillment. +pub struct SetTermsSignatureResponseBody {} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct Program { + /// The verification key hash. + #[prost(bytes = "vec", tag = "1")] + pub vk_hash: ::prost::alloc::vec::Vec, + /// The verification key. + #[prost(bytes = "vec", tag = "2")] + pub vk: ::prost::alloc::vec::Vec, + /// The program resource identifier. + #[prost(string, tag = "3")] + pub program_uri: ::prost::alloc::string::String, + /// The optional name of the program. + #[prost(string, optional, tag = "4")] + pub name: ::core::option::Option<::prost::alloc::string::String>, + /// The owner of the program. + #[prost(bytes = "vec", tag = "5")] + pub owner: ::prost::alloc::vec::Vec, + /// The unix timestamp of when the program was created. + #[prost(uint64, tag = "6")] + pub created_at: u64, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetProgramRequest { + /// The verification key hash of the program. + #[prost(bytes = "vec", tag = "1")] + pub vk_hash: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetProgramResponse { + /// The program details. + #[prost(message, optional, tag = "1")] + pub program: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct CreateProgramRequest { + /// The message format of the body. + #[prost(enumeration = "MessageFormat", tag = "1")] + pub format: i32, + /// The signature of the sender. + #[prost(bytes = "vec", tag = "2")] + pub signature: ::prost::alloc::vec::Vec, + /// The body of the request. + #[prost(message, optional, tag = "3")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct CreateProgramRequestBody { + /// The account nonce of the sender. #[prost(uint64, tag = "1")] - pub proving_seconds: u64, + pub nonce: u64, + /// The verification key hash. + #[prost(bytes = "vec", tag = "2")] + pub vk_hash: ::prost::alloc::vec::Vec, + /// The verification key. + #[prost(bytes = "vec", tag = "3")] + pub vk: ::prost::alloc::vec::Vec, + /// The program resource identifier. + #[prost(string, tag = "4")] + pub program_uri: ::prost::alloc::string::String, } -/// The request to relay a proof through the NetworkGateway on a given chain. MUST be called when the -/// proof is in a PROOF_FULFILLED state. #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct RelayProofRequest { - /// The signature of the message. +pub struct CreateProgramResponse { + /// The transaction hash. #[prost(bytes = "vec", tag = "1")] + pub tx_hash: ::prost::alloc::vec::Vec, + /// The body of the response. + #[prost(message, optional, tag = "2")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] +pub struct CreateProgramResponseBody {} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct SetProgramNameRequest { + /// The message format of the body. + #[prost(enumeration = "MessageFormat", tag = "1")] + pub format: i32, + /// The signature of the sender. + #[prost(bytes = "vec", tag = "2")] pub signature: ::prost::alloc::vec::Vec, - /// The nonce for the account. - #[prost(uint64, tag = "2")] + /// The body of the request. + #[prost(message, optional, tag = "3")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct SetProgramNameRequestBody { + /// The account nonce of the sender. + #[prost(uint64, tag = "1")] pub nonce: u64, - /// The proof identifier. + /// The identifier of the program to update the name of. Only the original + /// program creator can update the name unless authorized. + #[prost(bytes = "vec", tag = "2")] + pub vk_hash: ::prost::alloc::vec::Vec, + /// The name of the program. Must be unique. #[prost(string, tag = "3")] - pub proof_id: ::prost::alloc::string::String, - /// The chain ID for the requested chain. - #[prost(uint32, tag = "4")] - pub chain_id: u32, - /// The address of the verifier for this proof. - #[prost(bytes = "vec", tag = "5")] - pub verifier: ::prost::alloc::vec::Vec, - /// The address of the callback to call after the proof has been verified by the verifier. - #[prost(bytes = "vec", tag = "6")] - pub callback: ::prost::alloc::vec::Vec, - /// The data to send to the callback, including the function selector. - #[prost(bytes = "vec", tag = "7")] - pub callback_data: ::prost::alloc::vec::Vec, -} -/// The response for relaying a proof. -#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct RelayProofResponse { - /// The transaction identifier. + pub name: ::prost::alloc::string::String, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct SetProgramNameResponse { + /// The transaction hash. + #[prost(bytes = "vec", tag = "1")] + pub tx_hash: ::prost::alloc::vec::Vec, + /// The body of the response. + #[prost(message, optional, tag = "2")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] +pub struct SetProgramNameResponseBody {} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetBalanceRequest { + /// The address of the account. + #[prost(bytes = "vec", tag = "1")] + pub address: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetBalanceResponse { + /// The amount of credits owned by the account. #[prost(string, tag = "1")] - pub tx_id: ::prost::alloc::string::String, + pub amount: ::prost::alloc::string::String, } -/// The request for an account nonce. Used to check current nonce for the account, which must match when signing and sending a message. #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetNonceRequest { - /// The account's address for which to get the nonce. +pub struct BalanceLog { + /// The address of the account. #[prost(bytes = "vec", tag = "1")] pub address: ::prost::alloc::vec::Vec, + /// The type of balance change operation. + #[prost(enumeration = "BalanceOperation", tag = "2")] + pub operation: i32, + /// The amount of the change (can be positive or negative). + #[prost(string, tag = "3")] + pub amount: ::prost::alloc::string::String, + /// The transaction hash that caused this change. + #[prost(bytes = "vec", tag = "4")] + pub tx_hash: ::prost::alloc::vec::Vec, + /// The unix timestamp of when this change occurred. + #[prost(uint64, tag = "5")] + pub created_at: u64, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetFilteredBalanceLogsRequest { + /// The optional address to filter for. + #[prost(bytes = "vec", optional, tag = "1")] + pub address: ::core::option::Option<::prost::alloc::vec::Vec>, + /// The optional type of operations to filter for. + #[prost(enumeration = "BalanceOperation", optional, tag = "2")] + pub operation: ::core::option::Option, + /// The optional minimum unix timestamp to filter logs from. Only returns + /// logs after this timestamp. + #[prost(uint64, optional, tag = "3")] + pub minimum_timestamp: ::core::option::Option, + /// The optional maximum unix timestamp to filter logs to. Only returns + /// logs before this timestamp. + #[prost(uint64, optional, tag = "4")] + pub maximum_timestamp: ::core::option::Option, + /// The optional maximum number of logs to return (default is 10, maximum is 100). + #[prost(uint32, optional, tag = "5")] + pub limit: ::core::option::Option, + /// The optional page number to return (default is 1). + #[prost(uint32, optional, tag = "6")] + pub page: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetFilteredBalanceLogsResponse { + /// The balance logs that matched the filter criteria. + #[prost(message, repeated, tag = "1")] + pub logs: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct AddCreditRequest { + /// The message format of the body. + #[prost(enumeration = "MessageFormat", tag = "1")] + pub format: i32, + /// The signature of the sender. + #[prost(bytes = "vec", tag = "2")] + pub signature: ::prost::alloc::vec::Vec, + /// The body of the request. + #[prost(message, optional, tag = "3")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct AddCreditRequestBody { + /// The account nonce of the sender. + #[prost(uint64, tag = "1")] + pub nonce: u64, + /// The address of the account to add credits to. + #[prost(bytes = "vec", tag = "2")] + pub address: ::prost::alloc::vec::Vec, + /// The amount of credits to add. + #[prost(string, tag = "3")] + pub amount: ::prost::alloc::string::String, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct AddCreditResponse { + /// The transaction hash. + #[prost(bytes = "vec", tag = "1")] + pub tx_hash: ::prost::alloc::vec::Vec, + /// The body of the response. + #[prost(message, optional, tag = "2")] + pub body: ::core::option::Option, } -/// The response for a nonce request. #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] -pub struct GetNonceResponse { - /// The nonce for the given address. It should be signed along with the rest of the message. +pub struct AddCreditResponseBody {} +#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] +pub struct GetLatestBridgeBlockRequest { + /// The chain ID of the bridge. + #[prost(uint32, tag = "1")] + pub chain_id: u32, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] +pub struct GetLatestBridgeBlockResponse { + /// The latest processed block in the bridge. + #[prost(uint64, tag = "1")] + pub block_number: u64, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] +pub struct GetGasPriceEstimateRequest { + #[prost(enumeration = "FulfillmentStrategy", tag = "1")] + pub strategy: i32, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] +pub struct GetGasPriceEstimateResponse { #[prost(uint64, tag = "1")] + pub gas_price: u64, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct GetTransactionDetailsRequest { + /// The transaction hash. + #[prost(bytes = "vec", tag = "1")] + pub tx_hash: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct TransactionDetails { + #[prost(bytes = "vec", tag = "1")] + pub tx_hash: ::prost::alloc::vec::Vec, + #[prost(bytes = "vec", tag = "2")] + pub sender: ::prost::alloc::vec::Vec, + #[prost(bytes = "vec", tag = "3")] + pub signature: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "4")] pub nonce: u64, + #[prost(uint64, tag = "5")] + pub created_at: u64, + #[prost(string, optional, tag = "6")] + pub name: ::core::option::Option<::prost::alloc::string::String>, + #[prost(bytes = "vec", optional, tag = "7")] + pub request_id: ::core::option::Option<::prost::alloc::vec::Vec>, } -/// The request to get a proof status by a given proof ID. #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetProofStatusRequest { - /// The proof identifier. - #[prost(string, tag = "1")] - pub proof_id: ::prost::alloc::string::String, +pub struct GetTransactionDetailsResponse { + #[prost(message, optional, tag = "1")] + pub transaction: ::core::option::Option, } -/// The response for a proof status request. #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetProofStatusResponse { - /// The status of the proof request. - #[prost(enumeration = "ProofStatus", tag = "1")] - pub status: i32, - /// Optional proof URL, where you can download the result of the proof request. Only included if - /// the proof has been fulfilled. - #[prost(string, optional, tag = "2")] - pub proof_url: ::core::option::Option<::prost::alloc::string::String>, - /// If the proof was unclaimed, the reason why. - #[prost(enumeration = "UnclaimReason", optional, tag = "3")] - pub unclaim_reason: ::core::option::Option, - /// If the proof was unclaimed, the description detailing why. +pub struct Reservation { + /// The address of the requester. + #[prost(bytes = "vec", tag = "1")] + pub requester: ::prost::alloc::vec::Vec, + /// The address of the fulfiller. + #[prost(bytes = "vec", tag = "2")] + pub fulfiller: ::prost::alloc::vec::Vec, + /// The optional name to refer to an alias of the requester address. + #[prost(string, optional, tag = "3")] + pub requester_name: ::core::option::Option<::prost::alloc::string::String>, + /// The optional name to refer to an alias of the fulfiller address. #[prost(string, optional, tag = "4")] - pub unclaim_description: ::core::option::Option<::prost::alloc::string::String>, + pub fulfiller_name: ::core::option::Option<::prost::alloc::string::String>, + /// The unix timestamp of when the reservation was created. + #[prost(uint64, tag = "5")] + pub created_at: u64, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] +pub struct GetFilteredReservationsRequest { + /// The optional maximum number of reservations to return (default is 10, + /// maximum is 100). + #[prost(uint32, optional, tag = "1")] + pub limit: ::core::option::Option, + /// The optional page number to return (default is 1). + #[prost(uint32, optional, tag = "2")] + pub page: ::core::option::Option, } -/// The request to get proof requests by a given status. #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetProofRequestsRequest { - /// The status of the proof requests to filter for. - #[prost(enumeration = "ProofStatus", tag = "1")] - pub status: i32, - /// The SP1 circuit version of the proof requests to filter for. - #[prost(string, optional, tag = "2")] - pub circuit_version: ::core::option::Option<::prost::alloc::string::String>, +pub struct GetFilteredReservationsResponse { + /// The reservations that matched the filter criteria. + #[prost(message, repeated, tag = "1")] + pub reservations: ::prost::alloc::vec::Vec, } -/// A proof request. #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct RequestedProof { - /// The proof identifier. - #[prost(string, tag = "1")] - pub proof_id: ::prost::alloc::string::String, - /// The mode for proof generation. - #[prost(enumeration = "ProofMode", tag = "2")] - pub mode: i32, - /// Proof requester's address. +pub struct AddReservationRequest { + /// The message format of the body. + #[prost(enumeration = "MessageFormat", tag = "1")] + pub format: i32, + /// The signature of the sender. + #[prost(bytes = "vec", tag = "2")] + pub signature: ::prost::alloc::vec::Vec, + /// The body of the request. + #[prost(message, optional, tag = "3")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct AddReservationRequestBody { + /// The account nonce of the sender. + #[prost(uint64, tag = "1")] + pub nonce: u64, + /// The address of the requester to add reservation for. + #[prost(bytes = "vec", tag = "2")] + pub requester: ::prost::alloc::vec::Vec, + /// The address of the fulfiller to reserve. #[prost(bytes = "vec", tag = "3")] + pub fulfiller: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct AddReservationResponse { + /// The transaction hash. + #[prost(bytes = "vec", tag = "1")] + pub tx_hash: ::prost::alloc::vec::Vec, + /// The body of the response. + #[prost(message, optional, tag = "2")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] +pub struct AddReservationResponseBody {} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct RemoveReservationRequest { + /// The message format of the body. + #[prost(enumeration = "MessageFormat", tag = "1")] + pub format: i32, + /// The signature of the sender. + #[prost(bytes = "vec", tag = "2")] + pub signature: ::prost::alloc::vec::Vec, + /// The body of the request. + #[prost(message, optional, tag = "3")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct RemoveReservationRequestBody { + /// The account nonce of the sender. + #[prost(uint64, tag = "1")] + pub nonce: u64, + /// The address of the requester to remove reservation for. + #[prost(bytes = "vec", tag = "2")] pub requester: ::prost::alloc::vec::Vec, - /// The SP1 circuit version to use for the proof. - #[prost(string, tag = "4")] - pub circuit_version: ::prost::alloc::string::String, } -/// The response for getting proof requests by a given status. #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetProofRequestsResponse { - /// The proof identifiers of the proof requests. Limited to the 10 most recent proof requests with - /// that status. - #[prost(message, repeated, tag = "1")] - pub proofs: ::prost::alloc::vec::Vec, +pub struct RemoveReservationResponse { + /// The transaction hash. + #[prost(bytes = "vec", tag = "1")] + pub tx_hash: ::prost::alloc::vec::Vec, + /// The body of the response. + #[prost(message, optional, tag = "2")] + pub body: ::core::option::Option, } -/// The request to get the status of a relay request. +#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] +pub struct RemoveReservationResponseBody {} #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetRelayStatusRequest { - /// The transaction identifier. - #[prost(string, tag = "1")] - pub tx_id: ::prost::alloc::string::String, +pub struct BidRequest { + /// The message format of the body. + #[prost(enumeration = "MessageFormat", tag = "1")] + pub format: i32, + /// The signature of the sender. + #[prost(bytes = "vec", tag = "2")] + pub signature: ::prost::alloc::vec::Vec, + /// The body of the request. + #[prost(message, optional, tag = "3")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct BidRequestBody { + /// The account nonce of the sender. + #[prost(uint64, tag = "1")] + pub nonce: u64, + /// The request ID to bid on. + #[prost(bytes = "vec", tag = "2")] + pub request_id: ::prost::alloc::vec::Vec, } -/// The response for getting the status of a relay request. #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] -pub struct GetRelayStatusResponse { - /// The status of the transaction. - #[prost(enumeration = "TransactionStatus", tag = "1")] - pub status: i32, +pub struct BidResponse { /// The transaction hash. + #[prost(bytes = "vec", tag = "1")] + pub tx_hash: ::prost::alloc::vec::Vec, + /// The body of the response. + #[prost(message, optional, tag = "2")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] +pub struct BidResponseBody {} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct SettleRequest { + /// The message format of the body. + #[prost(enumeration = "MessageFormat", tag = "1")] + pub format: i32, + /// The signature of the sender. #[prost(bytes = "vec", tag = "2")] + pub signature: ::prost::alloc::vec::Vec, + /// The body of the request. + #[prost(message, optional, tag = "3")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct SettleRequestBody { + /// The account nonce of the sender. + #[prost(uint64, tag = "1")] + pub nonce: u64, + /// The request ID to settle bids for. + #[prost(bytes = "vec", tag = "2")] + pub request_id: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct SettleResponse { + /// The transaction hash. + #[prost(bytes = "vec", tag = "1")] pub tx_hash: ::prost::alloc::vec::Vec, - /// The transactionsimulation URL, only present if the transaction failed. - #[prost(string, tag = "3")] - pub simulation_url: ::prost::alloc::string::String, + /// The body of the response. + #[prost(message, optional, tag = "2")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] +pub struct SettleResponseBody {} +/// Format to help decode signature in backend. +#[derive( + serde::Serialize, + serde::Deserialize, + Clone, + Copy, + Debug, + PartialEq, + Eq, + Hash, + PartialOrd, + Ord, + ::prost::Enumeration, +)] +#[repr(i32)] +pub enum MessageFormat { + /// Unspecified message format. + UnspecifiedMessageFormat = 0, + /// The message is in binary format. + Binary = 1, + /// The message is in JSON format. + Json = 2, +} +impl MessageFormat { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Self::UnspecifiedMessageFormat => "UNSPECIFIED_MESSAGE_FORMAT", + Self::Binary => "BINARY", + Self::Json => "JSON", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "UNSPECIFIED_MESSAGE_FORMAT" => Some(Self::UnspecifiedMessageFormat), + "BINARY" => Some(Self::Binary), + "JSON" => Some(Self::Json), + _ => None, + } + } } -/// The mode used when generating the proof. #[derive( serde::Serialize, serde::Deserialize, @@ -281,15 +1156,14 @@ pub struct GetRelayStatusResponse { )] #[repr(i32)] pub enum ProofMode { - /// Unspecified or invalid proof mode. - Unspecified = 0, - /// The proof mode for an SP1 core proof. + UnspecifiedProofMode = 0, + /// The core proof mode. Core = 1, - /// The proof mode for a compressed proof. + /// The compressed proof mode. Compressed = 2, - /// The proof mode for a PlonK proof. + /// The plonk proof mode. Plonk = 3, - /// The proof mode for a Groth16 proof. + /// The groth16 proof mode. Groth16 = 4, } impl ProofMode { @@ -299,26 +1173,26 @@ impl ProofMode { /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - Self::Unspecified => "PROOF_MODE_UNSPECIFIED", - Self::Core => "PROOF_MODE_CORE", - Self::Compressed => "PROOF_MODE_COMPRESSED", - Self::Plonk => "PROOF_MODE_PLONK", - Self::Groth16 => "PROOF_MODE_GROTH16", + Self::UnspecifiedProofMode => "UNSPECIFIED_PROOF_MODE", + Self::Core => "CORE", + Self::Compressed => "COMPRESSED", + Self::Plonk => "PLONK", + Self::Groth16 => "GROTH16", } } /// Creates an enum from field names used in the ProtoBuf definition. pub fn from_str_name(value: &str) -> ::core::option::Option { match value { - "PROOF_MODE_UNSPECIFIED" => Some(Self::Unspecified), - "PROOF_MODE_CORE" => Some(Self::Core), - "PROOF_MODE_COMPRESSED" => Some(Self::Compressed), - "PROOF_MODE_PLONK" => Some(Self::Plonk), - "PROOF_MODE_GROTH16" => Some(Self::Groth16), + "UNSPECIFIED_PROOF_MODE" => Some(Self::UnspecifiedProofMode), + "CORE" => Some(Self::Core), + "COMPRESSED" => Some(Self::Compressed), + "PLONK" => Some(Self::Plonk), + "GROTH16" => Some(Self::Groth16), _ => None, } } } -/// The status of a proof request. +/// The different strategies that can be used for fulfilling requests. #[derive( serde::Serialize, serde::Deserialize, @@ -333,49 +1207,42 @@ impl ProofMode { ::prost::Enumeration, )] #[repr(i32)] -pub enum ProofStatus { - /// Unspecified or invalid status. - ProofUnspecifiedStatus = 0, - /// The proof request has been created but is awaiting the requester to submit it. - ProofPreparing = 1, - /// The proof request has been submitted and is awaiting a prover to claim it. - ProofRequested = 2, - /// The proof request has been claimed and is awaiting a prover to fulfill it. - ProofClaimed = 3, - /// The proof request was previously claimed but has now been unclaimed. - ProofUnclaimed = 4, - /// The proof request has been fulfilled and is available for download. - ProofFulfilled = 5, -} -impl ProofStatus { +pub enum FulfillmentStrategy { + UnspecifiedFulfillmentStrategy = 0, + /// The hosted fulfillment strategy. Uses Succinct's on-demand prover to fulfill requests. + Hosted = 1, + /// The reserved fulfillment strategy. Uses an already existing agreement with a + /// fulfiller to fulfill requests. + Reserved = 2, + /// The auction fulfillment strategy. Uses a decentralized proof contest to + /// fulfill requests. + Auction = 3, +} +impl FulfillmentStrategy { /// String value of the enum field names used in the ProtoBuf definition. /// /// The values are not transformed in any way and thus are considered stable /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - Self::ProofUnspecifiedStatus => "PROOF_UNSPECIFIED_STATUS", - Self::ProofPreparing => "PROOF_PREPARING", - Self::ProofRequested => "PROOF_REQUESTED", - Self::ProofClaimed => "PROOF_CLAIMED", - Self::ProofUnclaimed => "PROOF_UNCLAIMED", - Self::ProofFulfilled => "PROOF_FULFILLED", + Self::UnspecifiedFulfillmentStrategy => "UNSPECIFIED_FULFILLMENT_STRATEGY", + Self::Hosted => "HOSTED", + Self::Reserved => "RESERVED", + Self::Auction => "AUCTION", } } /// Creates an enum from field names used in the ProtoBuf definition. pub fn from_str_name(value: &str) -> ::core::option::Option { match value { - "PROOF_UNSPECIFIED_STATUS" => Some(Self::ProofUnspecifiedStatus), - "PROOF_PREPARING" => Some(Self::ProofPreparing), - "PROOF_REQUESTED" => Some(Self::ProofRequested), - "PROOF_CLAIMED" => Some(Self::ProofClaimed), - "PROOF_UNCLAIMED" => Some(Self::ProofUnclaimed), - "PROOF_FULFILLED" => Some(Self::ProofFulfilled), + "UNSPECIFIED_FULFILLMENT_STRATEGY" => Some(Self::UnspecifiedFulfillmentStrategy), + "HOSTED" => Some(Self::Hosted), + "RESERVED" => Some(Self::Reserved), + "AUCTION" => Some(Self::Auction), _ => None, } } } -/// The status of a relay request transaction. +/// The different fulfillment statuses that a request can be in. #[derive( serde::Serialize, serde::Deserialize, @@ -390,48 +1257,44 @@ impl ProofStatus { ::prost::Enumeration, )] #[repr(i32)] -pub enum TransactionStatus { - /// Unspecified or invalid status. - TransactionUnspecifiedStatus = 0, - /// The transaction has been scheduled for relay. - TransactionScheduled = 1, - /// The transaction has been broadcast to the requested chain. - TransactionBroadcasted = 2, - /// The transaction was never confirmed as mined. - TransactionTimedout = 3, - /// The transaction failed to be broadcast, likely due to a revert in simulation. - TransactionFailed = 4, - /// The transaction was mined successfully. - TransactionFinalized = 5, -} -impl TransactionStatus { +pub enum FulfillmentStatus { + UnspecifiedFulfillmentStatus = 0, + /// The request has been requested. + Requested = 1, + /// The request has been assigned to a fulfiller. + Assigned = 2, + /// The request has been fulfilled. + Fulfilled = 3, + /// The request cannot be fulfilled. + Unfulfillable = 4, +} +impl FulfillmentStatus { /// String value of the enum field names used in the ProtoBuf definition. /// /// The values are not transformed in any way and thus are considered stable /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - Self::TransactionUnspecifiedStatus => "TRANSACTION_UNSPECIFIED_STATUS", - Self::TransactionScheduled => "TRANSACTION_SCHEDULED", - Self::TransactionBroadcasted => "TRANSACTION_BROADCASTED", - Self::TransactionTimedout => "TRANSACTION_TIMEDOUT", - Self::TransactionFailed => "TRANSACTION_FAILED", - Self::TransactionFinalized => "TRANSACTION_FINALIZED", + Self::UnspecifiedFulfillmentStatus => "UNSPECIFIED_FULFILLMENT_STATUS", + Self::Requested => "REQUESTED", + Self::Assigned => "ASSIGNED", + Self::Fulfilled => "FULFILLED", + Self::Unfulfillable => "UNFULFILLABLE", } } /// Creates an enum from field names used in the ProtoBuf definition. pub fn from_str_name(value: &str) -> ::core::option::Option { match value { - "TRANSACTION_UNSPECIFIED_STATUS" => Some(Self::TransactionUnspecifiedStatus), - "TRANSACTION_SCHEDULED" => Some(Self::TransactionScheduled), - "TRANSACTION_BROADCASTED" => Some(Self::TransactionBroadcasted), - "TRANSACTION_TIMEDOUT" => Some(Self::TransactionTimedout), - "TRANSACTION_FAILED" => Some(Self::TransactionFailed), - "TRANSACTION_FINALIZED" => Some(Self::TransactionFinalized), + "UNSPECIFIED_FULFILLMENT_STATUS" => Some(Self::UnspecifiedFulfillmentStatus), + "REQUESTED" => Some(Self::Requested), + "ASSIGNED" => Some(Self::Assigned), + "FULFILLED" => Some(Self::Fulfilled), + "UNFULFILLABLE" => Some(Self::Unfulfillable), _ => None, } } } +/// The different execution statuses that a request can be in. #[derive( serde::Serialize, serde::Deserialize, @@ -446,348 +1309,2624 @@ impl TransactionStatus { ::prost::Enumeration, )] #[repr(i32)] -pub enum UnclaimReason { - /// Unspecified reason. - Unspecified = 0, - /// The prover claims the request is invalid and cannot be fulfilled. - Invalid = 1, - /// The prover is unable to fulfill the proof due to any other reason. - Abandoned = 2, -} -impl UnclaimReason { +pub enum ExecutionStatus { + UnspecifiedExecutionStatus = 0, + /// The request has not been executed. + Unexecuted = 1, + /// The request has been executed. + Executed = 2, + /// The request cannot be executed. + Unexecutable = 3, +} +impl ExecutionStatus { /// String value of the enum field names used in the ProtoBuf definition. /// /// The values are not transformed in any way and thus are considered stable /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - Self::Unspecified => "UNCLAIM_REASON_UNSPECIFIED", - Self::Invalid => "UNCLAIM_REASON_INVALID", - Self::Abandoned => "UNCLAIM_REASON_ABANDONED", + Self::UnspecifiedExecutionStatus => "UNSPECIFIED_EXECUTION_STATUS", + Self::Unexecuted => "UNEXECUTED", + Self::Executed => "EXECUTED", + Self::Unexecutable => "UNEXECUTABLE", } } /// Creates an enum from field names used in the ProtoBuf definition. pub fn from_str_name(value: &str) -> ::core::option::Option { match value { - "UNCLAIM_REASON_UNSPECIFIED" => Some(Self::Unspecified), - "UNCLAIM_REASON_INVALID" => Some(Self::Invalid), - "UNCLAIM_REASON_ABANDONED" => Some(Self::Abandoned), + "UNSPECIFIED_EXECUTION_STATUS" => Some(Self::UnspecifiedExecutionStatus), + "UNEXECUTED" => Some(Self::Unexecuted), + "EXECUTED" => Some(Self::Executed), + "UNEXECUTABLE" => Some(Self::Unexecutable), _ => None, } } } -pub use twirp; -pub const SERVICE_FQN: &str = "/network.NetworkService"; -#[twirp::async_trait::async_trait] -pub trait NetworkService { - async fn create_proof( - &self, - ctx: twirp::Context, - req: CreateProofRequest, - ) -> Result; - async fn submit_proof( - &self, - ctx: twirp::Context, - req: SubmitProofRequest, - ) -> Result; - async fn claim_proof( - &self, - ctx: twirp::Context, - req: ClaimProofRequest, - ) -> Result; - async fn unclaim_proof( - &self, - ctx: twirp::Context, - req: UnclaimProofRequest, - ) -> Result; - async fn modify_cpu_cycles( - &self, - ctx: twirp::Context, - req: ModifyCpuCyclesRequest, - ) -> Result; - async fn fulfill_proof( - &self, - ctx: twirp::Context, - req: FulfillProofRequest, - ) -> Result; - async fn relay_proof( - &self, - ctx: twirp::Context, - req: RelayProofRequest, - ) -> Result; - async fn get_nonce( - &self, - ctx: twirp::Context, - req: GetNonceRequest, - ) -> Result; - async fn get_proof_status( - &self, - ctx: twirp::Context, - req: GetProofStatusRequest, - ) -> Result; - async fn get_proof_requests( - &self, - ctx: twirp::Context, - req: GetProofRequestsRequest, - ) -> Result; - async fn get_relay_status( - &self, - ctx: twirp::Context, - req: GetRelayStatusRequest, - ) -> Result; -} -#[twirp::async_trait::async_trait] -impl NetworkService for std::sync::Arc -where - T: NetworkService + Sync + Send, -{ - async fn create_proof( - &self, - ctx: twirp::Context, - req: CreateProofRequest, - ) -> Result { - T::create_proof(&*self, ctx, req).await - } - async fn submit_proof( - &self, - ctx: twirp::Context, - req: SubmitProofRequest, - ) -> Result { - T::submit_proof(&*self, ctx, req).await - } - async fn claim_proof( - &self, - ctx: twirp::Context, - req: ClaimProofRequest, - ) -> Result { - T::claim_proof(&*self, ctx, req).await - } - async fn unclaim_proof( - &self, - ctx: twirp::Context, - req: UnclaimProofRequest, - ) -> Result { - T::unclaim_proof(&*self, ctx, req).await - } - async fn modify_cpu_cycles( - &self, - ctx: twirp::Context, - req: ModifyCpuCyclesRequest, - ) -> Result { - T::modify_cpu_cycles(&*self, ctx, req).await - } - async fn fulfill_proof( - &self, - ctx: twirp::Context, - req: FulfillProofRequest, - ) -> Result { - T::fulfill_proof(&*self, ctx, req).await - } - async fn relay_proof( - &self, - ctx: twirp::Context, - req: RelayProofRequest, - ) -> Result { - T::relay_proof(&*self, ctx, req).await - } - async fn get_nonce( - &self, - ctx: twirp::Context, - req: GetNonceRequest, - ) -> Result { - T::get_nonce(&*self, ctx, req).await - } - async fn get_proof_status( - &self, - ctx: twirp::Context, - req: GetProofStatusRequest, - ) -> Result { - T::get_proof_status(&*self, ctx, req).await - } - async fn get_proof_requests( - &self, - ctx: twirp::Context, - req: GetProofRequestsRequest, - ) -> Result { - T::get_proof_requests(&*self, ctx, req).await - } - async fn get_relay_status( - &self, - ctx: twirp::Context, - req: GetRelayStatusRequest, - ) -> Result { - T::get_relay_status(&*self, ctx, req).await - } +/// The different types of balance changes that can occur. +#[derive( + serde::Serialize, + serde::Deserialize, + Clone, + Copy, + Debug, + PartialEq, + Eq, + Hash, + PartialOrd, + Ord, + ::prost::Enumeration, +)] +#[repr(i32)] +pub enum BalanceOperation { + UnspecifiedBalanceChangeOperation = 0, + /// A deposit operation (positive). + Deposit = 1, + /// A withdrawal operation (negative). + Withdrawal = 2, + /// A credit operation (positive). + Credit = 3, + /// A deduction operation (negative). + Deduction = 4, + /// A refund operation (positive). + Refund = 5, + /// A bid operation (negative). + Bid = 6, } -pub fn router(api: T) -> twirp::Router -where - T: NetworkService + Clone + Send + Sync + 'static, -{ - twirp::details::TwirpRouterBuilder::new(api) - .route("/CreateProof", |api: T, ctx: twirp::Context, req: CreateProofRequest| async move { - api.create_proof(ctx, req).await - }) - .route("/SubmitProof", |api: T, ctx: twirp::Context, req: SubmitProofRequest| async move { - api.submit_proof(ctx, req).await - }) - .route("/ClaimProof", |api: T, ctx: twirp::Context, req: ClaimProofRequest| async move { - api.claim_proof(ctx, req).await - }) - .route( - "/UnclaimProof", - |api: T, ctx: twirp::Context, req: UnclaimProofRequest| async move { - api.unclaim_proof(ctx, req).await - }, - ) - .route( - "/ModifyCpuCycles", - |api: T, ctx: twirp::Context, req: ModifyCpuCyclesRequest| async move { - api.modify_cpu_cycles(ctx, req).await - }, - ) - .route( - "/FulfillProof", - |api: T, ctx: twirp::Context, req: FulfillProofRequest| async move { - api.fulfill_proof(ctx, req).await - }, - ) - .route("/RelayProof", |api: T, ctx: twirp::Context, req: RelayProofRequest| async move { - api.relay_proof(ctx, req).await - }) - .route("/GetNonce", |api: T, ctx: twirp::Context, req: GetNonceRequest| async move { - api.get_nonce(ctx, req).await - }) - .route( - "/GetProofStatus", - |api: T, ctx: twirp::Context, req: GetProofStatusRequest| async move { - api.get_proof_status(ctx, req).await - }, - ) - .route( - "/GetProofRequests", - |api: T, ctx: twirp::Context, req: GetProofRequestsRequest| async move { - api.get_proof_requests(ctx, req).await - }, - ) - .route( - "/GetRelayStatus", - |api: T, ctx: twirp::Context, req: GetRelayStatusRequest| async move { - api.get_relay_status(ctx, req).await - }, - ) - .build() -} -#[twirp::async_trait::async_trait] -pub trait NetworkServiceClient: Send + Sync + std::fmt::Debug { - async fn create_proof( - &self, - req: CreateProofRequest, - ) -> Result; - async fn submit_proof( - &self, - req: SubmitProofRequest, - ) -> Result; - async fn claim_proof( - &self, - req: ClaimProofRequest, - ) -> Result; - async fn unclaim_proof( - &self, - req: UnclaimProofRequest, - ) -> Result; - async fn modify_cpu_cycles( - &self, - req: ModifyCpuCyclesRequest, - ) -> Result; - async fn fulfill_proof( - &self, - req: FulfillProofRequest, - ) -> Result; - async fn relay_proof( - &self, - req: RelayProofRequest, - ) -> Result; - async fn get_nonce(&self, req: GetNonceRequest) - -> Result; - async fn get_proof_status( - &self, - req: GetProofStatusRequest, - ) -> Result; - async fn get_proof_requests( - &self, - req: GetProofRequestsRequest, - ) -> Result; - async fn get_relay_status( - &self, - req: GetRelayStatusRequest, - ) -> Result; -} -#[twirp::async_trait::async_trait] -impl NetworkServiceClient for twirp::client::Client { - async fn create_proof( - &self, - req: CreateProofRequest, - ) -> Result { - self.request("network.NetworkService/CreateProof", req).await +impl BalanceOperation { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Self::UnspecifiedBalanceChangeOperation => "UNSPECIFIED_BALANCE_CHANGE_OPERATION", + Self::Deposit => "DEPOSIT", + Self::Withdrawal => "WITHDRAWAL", + Self::Credit => "CREDIT", + Self::Deduction => "DEDUCTION", + Self::Refund => "REFUND", + Self::Bid => "BID", + } } - async fn submit_proof( - &self, - req: SubmitProofRequest, - ) -> Result { - self.request("network.NetworkService/SubmitProof", req).await + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "UNSPECIFIED_BALANCE_CHANGE_OPERATION" => Some(Self::UnspecifiedBalanceChangeOperation), + "DEPOSIT" => Some(Self::Deposit), + "WITHDRAWAL" => Some(Self::Withdrawal), + "CREDIT" => Some(Self::Credit), + "DEDUCTION" => Some(Self::Deduction), + "REFUND" => Some(Self::Refund), + "BID" => Some(Self::Bid), + _ => None, + } } - async fn claim_proof( - &self, - req: ClaimProofRequest, - ) -> Result { - self.request("network.NetworkService/ClaimProof", req).await +} +/// Generated client implementations. +pub mod prover_network_client { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::http::Uri; + use tonic::codegen::*; + #[derive(Debug, Clone)] + pub struct ProverNetworkClient { + inner: tonic::client::Grpc, } - async fn unclaim_proof( - &self, - req: UnclaimProofRequest, - ) -> Result { - self.request("network.NetworkService/UnclaimProof", req).await + impl ProverNetworkClient { + /// Attempt to create a new client by connecting to a given endpoint. + pub async fn connect(dst: D) -> Result + where + D: TryInto, + D::Error: Into, + { + let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; + Ok(Self::new(conn)) + } } - async fn modify_cpu_cycles( - &self, - req: ModifyCpuCyclesRequest, - ) -> Result { - self.request("network.NetworkService/ModifyCpuCycles", req).await + impl ProverNetworkClient + where + T: tonic::client::GrpcService, + T::Error: Into, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, + { + pub fn new(inner: T) -> Self { + let inner = tonic::client::Grpc::new(inner); + Self { inner } + } + pub fn with_origin(inner: T, origin: Uri) -> Self { + let inner = tonic::client::Grpc::with_origin(inner, origin); + Self { inner } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> ProverNetworkClient> + where + F: tonic::service::Interceptor, + T::ResponseBody: Default, + T: tonic::codegen::Service< + http::Request, + Response = http::Response< + >::ResponseBody, + >, + >, + >>::Error: + Into + std::marker::Send + std::marker::Sync, + { + ProverNetworkClient::new(InterceptedService::new(inner, interceptor)) + } + /// Compress requests with the given encoding. + /// + /// This requires the server to support it otherwise it might respond with an + /// error. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.send_compressed(encoding); + self + } + /// Enable decompressing responses. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.accept_compressed(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_decoding_message_size(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + /// Creates a proof request. + pub async fn request_proof( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/RequestProof"); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "RequestProof")); + self.inner.unary(req, path, codec).await + } + /// Fulfills a proof request. Only callable by the assigned fulfiller. + pub async fn fulfill_proof( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/FulfillProof"); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "FulfillProof")); + self.inner.unary(req, path, codec).await + } + /// Executes a proof request. Only callable by the execution oracle. + pub async fn execute_proof( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/ExecuteProof"); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "ExecuteProof")); + self.inner.unary(req, path, codec).await + } + /// Fails fulfillment. Only callable by the assigned fulfiller. + pub async fn fail_fulfillment( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = + http::uri::PathAndQuery::from_static("/network.ProverNetwork/FailFulfillment"); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("network.ProverNetwork", "FailFulfillment")); + self.inner.unary(req, path, codec).await + } + /// Fails execution. Only callable by the execution oracle. + pub async fn fail_execution( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/FailExecution"); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "FailExecution")); + self.inner.unary(req, path, codec).await + } + /// Get the status of a proof request. + pub async fn get_proof_request_status( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/network.ProverNetwork/GetProofRequestStatus", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("network.ProverNetwork", "GetProofRequestStatus")); + self.inner.unary(req, path, codec).await + } + /// Get the details of a proof request. + pub async fn get_proof_request_details( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/network.ProverNetwork/GetProofRequestDetails", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("network.ProverNetwork", "GetProofRequestDetails")); + self.inner.unary(req, path, codec).await + } + /// Get the proof requests that meet the filter criteria. + pub async fn get_filtered_proof_requests( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/network.ProverNetwork/GetFilteredProofRequests", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("network.ProverNetwork", "GetFilteredProofRequests")); + self.inner.unary(req, path, codec).await + } + /// Search for proof requests, programs, and requesters. + pub async fn get_search_results( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = + http::uri::PathAndQuery::from_static("/network.ProverNetwork/GetSearchResults"); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("network.ProverNetwork", "GetSearchResults")); + self.inner.unary(req, path, codec).await + } + /// Get metrics for proof requests. + pub async fn get_proof_request_metrics( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/network.ProverNetwork/GetProofRequestMetrics", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("network.ProverNetwork", "GetProofRequestMetrics")); + self.inner.unary(req, path, codec).await + } + /// Get time series data for proof requests. + pub async fn get_proof_request_graph( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = + http::uri::PathAndQuery::from_static("/network.ProverNetwork/GetProofRequestGraph"); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("network.ProverNetwork", "GetProofRequestGraph")); + self.inner.unary(req, path, codec).await + } + /// Get analytics graphs for proof requests. + pub async fn get_analytics_graphs( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = + http::uri::PathAndQuery::from_static("/network.ProverNetwork/GetAnalyticsGraphs"); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("network.ProverNetwork", "GetAnalyticsGraphs")); + self.inner.unary(req, path, codec).await + } + /// Get the nonce of the account. + pub async fn get_nonce( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/GetNonce"); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "GetNonce")); + self.inner.unary(req, path, codec).await + } + /// Get the delegations of the account. + pub async fn get_filtered_delegations( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/network.ProverNetwork/GetFilteredDelegations", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("network.ProverNetwork", "GetFilteredDelegations")); + self.inner.unary(req, path, codec).await + } + /// Add a delegation. Only callable by the owner of an account. + pub async fn add_delegation( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/AddDelegation"); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "AddDelegation")); + self.inner.unary(req, path, codec).await + } + /// Remove a delegation. Only callable by the owner of an account. + pub async fn remove_delegation( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = + http::uri::PathAndQuery::from_static("/network.ProverNetwork/RemoveDelegation"); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("network.ProverNetwork", "RemoveDelegation")); + self.inner.unary(req, path, codec).await + } + /// Accept a delegation. Only callable by the delegate of a delegation. + pub async fn accept_delegation( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = + http::uri::PathAndQuery::from_static("/network.ProverNetwork/AcceptDelegation"); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("network.ProverNetwork", "AcceptDelegation")); + self.inner.unary(req, path, codec).await + } + /// Set the name of the account. Only callable by the owner of an account. + pub async fn set_account_name( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = + http::uri::PathAndQuery::from_static("/network.ProverNetwork/SetAccountName"); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "SetAccountName")); + self.inner.unary(req, path, codec).await + } + /// Get the name of the account. + pub async fn get_account_name( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = + http::uri::PathAndQuery::from_static("/network.ProverNetwork/GetAccountName"); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "GetAccountName")); + self.inner.unary(req, path, codec).await + } + /// Get whether the account has signed the terms. + pub async fn get_terms_signature( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = + http::uri::PathAndQuery::from_static("/network.ProverNetwork/GetTermsSignature"); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("network.ProverNetwork", "GetTermsSignature")); + self.inner.unary(req, path, codec).await + } + /// Set whether the account has signed the terms. + pub async fn set_terms_signature( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = + http::uri::PathAndQuery::from_static("/network.ProverNetwork/SetTermsSignature"); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("network.ProverNetwork", "SetTermsSignature")); + self.inner.unary(req, path, codec).await + } + /// Get metadata about a program. + pub async fn get_program( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/GetProgram"); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "GetProgram")); + self.inner.unary(req, path, codec).await + } + /// Create a new program. Must be called before requesting proofs. + pub async fn create_program( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/CreateProgram"); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "CreateProgram")); + self.inner.unary(req, path, codec).await + } + /// Set the name of the program. Only callable by the owner. + pub async fn set_program_name( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = + http::uri::PathAndQuery::from_static("/network.ProverNetwork/SetProgramName"); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "SetProgramName")); + self.inner.unary(req, path, codec).await + } + /// Get the available balance of an account. + pub async fn get_balance( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/GetBalance"); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "GetBalance")); + self.inner.unary(req, path, codec).await + } + /// Get the balance logs that meet the filter criteria. + pub async fn get_filtered_balance_logs( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/network.ProverNetwork/GetFilteredBalanceLogs", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("network.ProverNetwork", "GetFilteredBalanceLogs")); + self.inner.unary(req, path, codec).await + } + /// Add credit to an account. + pub async fn add_credit( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/AddCredit"); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "AddCredit")); + self.inner.unary(req, path, codec).await + } + /// Get the latest processed block in the bridge. + pub async fn get_latest_bridge_block( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = + http::uri::PathAndQuery::from_static("/network.ProverNetwork/GetLatestBridgeBlock"); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("network.ProverNetwork", "GetLatestBridgeBlock")); + self.inner.unary(req, path, codec).await + } + /// Get the gas price estimate for a given fulfillment strategy. + pub async fn get_gas_price_estimate( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = + http::uri::PathAndQuery::from_static("/network.ProverNetwork/GetGasPriceEstimate"); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("network.ProverNetwork", "GetGasPriceEstimate")); + self.inner.unary(req, path, codec).await + } + /// Get the details of a transaction. + pub async fn get_transaction_details( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/network.ProverNetwork/GetTransactionDetails", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("network.ProverNetwork", "GetTransactionDetails")); + self.inner.unary(req, path, codec).await + } + /// Get the reservations that meet the filter criteria. + pub async fn get_filtered_reservations( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/network.ProverNetwork/GetFilteredReservations", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("network.ProverNetwork", "GetFilteredReservations")); + self.inner.unary(req, path, codec).await + } + /// Add a reservation for a requester. + pub async fn add_reservation( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = + http::uri::PathAndQuery::from_static("/network.ProverNetwork/AddReservation"); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "AddReservation")); + self.inner.unary(req, path, codec).await + } + /// Remove a reservation for a requester. + pub async fn remove_reservation( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = + http::uri::PathAndQuery::from_static("/network.ProverNetwork/RemoveReservation"); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("network.ProverNetwork", "RemoveReservation")); + self.inner.unary(req, path, codec).await + } + /// Bid for a proof request. Provers that want to be assigned this request must first + /// bid on it. + pub async fn bid( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/Bid"); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "Bid")); + self.inner.unary(req, path, codec).await + } + /// Settle the bids on a proof request to choose the assigned prover. Only callable by + /// the approved settler. + pub async fn settle( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static("/network.ProverNetwork/Settle"); + let mut req = request.into_request(); + req.extensions_mut().insert(GrpcMethod::new("network.ProverNetwork", "Settle")); + self.inner.unary(req, path, codec).await + } } - async fn fulfill_proof( - &self, - req: FulfillProofRequest, - ) -> Result { - self.request("network.NetworkService/FulfillProof", req).await +} +/// Generated server implementations. +pub mod prover_network_server { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + /// Generated trait containing gRPC methods that should be implemented for use with ProverNetworkServer. + #[async_trait] + pub trait ProverNetwork: std::marker::Send + std::marker::Sync + 'static { + /// Creates a proof request. + async fn request_proof( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Fulfills a proof request. Only callable by the assigned fulfiller. + async fn fulfill_proof( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Executes a proof request. Only callable by the execution oracle. + async fn execute_proof( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Fails fulfillment. Only callable by the assigned fulfiller. + async fn fail_fulfillment( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Fails execution. Only callable by the execution oracle. + async fn fail_execution( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Get the status of a proof request. + async fn get_proof_request_status( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Get the details of a proof request. + async fn get_proof_request_details( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// Get the proof requests that meet the filter criteria. + async fn get_filtered_proof_requests( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// Search for proof requests, programs, and requesters. + async fn get_search_results( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Get metrics for proof requests. + async fn get_proof_request_metrics( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// Get time series data for proof requests. + async fn get_proof_request_graph( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Get analytics graphs for proof requests. + async fn get_analytics_graphs( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Get the nonce of the account. + async fn get_nonce( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Get the delegations of the account. + async fn get_filtered_delegations( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// Add a delegation. Only callable by the owner of an account. + async fn add_delegation( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Remove a delegation. Only callable by the owner of an account. + async fn remove_delegation( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Accept a delegation. Only callable by the delegate of a delegation. + async fn accept_delegation( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Set the name of the account. Only callable by the owner of an account. + async fn set_account_name( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Get the name of the account. + async fn get_account_name( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Get whether the account has signed the terms. + async fn get_terms_signature( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Set whether the account has signed the terms. + async fn set_terms_signature( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Get metadata about a program. + async fn get_program( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Create a new program. Must be called before requesting proofs. + async fn create_program( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Set the name of the program. Only callable by the owner. + async fn set_program_name( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Get the available balance of an account. + async fn get_balance( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Get the balance logs that meet the filter criteria. + async fn get_filtered_balance_logs( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// Add credit to an account. + async fn add_credit( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Get the latest processed block in the bridge. + async fn get_latest_bridge_block( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Get the gas price estimate for a given fulfillment strategy. + async fn get_gas_price_estimate( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Get the details of a transaction. + async fn get_transaction_details( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Get the reservations that meet the filter criteria. + async fn get_filtered_reservations( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + /// Add a reservation for a requester. + async fn add_reservation( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Remove a reservation for a requester. + async fn remove_reservation( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Bid for a proof request. Provers that want to be assigned this request must first + /// bid on it. + async fn bid( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + /// Settle the bids on a proof request to choose the assigned prover. Only callable by + /// the approved settler. + async fn settle( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; } - async fn relay_proof( - &self, - req: RelayProofRequest, - ) -> Result { - self.request("network.NetworkService/RelayProof", req).await + #[derive(Debug)] + pub struct ProverNetworkServer { + inner: Arc, + accept_compression_encodings: EnabledCompressionEncodings, + send_compression_encodings: EnabledCompressionEncodings, + max_decoding_message_size: Option, + max_encoding_message_size: Option, } - async fn get_nonce( - &self, - req: GetNonceRequest, - ) -> Result { - self.request("network.NetworkService/GetNonce", req).await + impl ProverNetworkServer { + pub fn new(inner: T) -> Self { + Self::from_arc(Arc::new(inner)) + } + pub fn from_arc(inner: Arc) -> Self { + Self { + inner, + accept_compression_encodings: Default::default(), + send_compression_encodings: Default::default(), + max_decoding_message_size: None, + max_encoding_message_size: None, + } + } + pub fn with_interceptor(inner: T, interceptor: F) -> InterceptedService + where + F: tonic::service::Interceptor, + { + InterceptedService::new(Self::new(inner), interceptor) + } + /// Enable decompressing requests with the given encoding. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.accept_compression_encodings.enable(encoding); + self + } + /// Compress responses with the given encoding, if the client supports it. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.send_compression_encodings.enable(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.max_decoding_message_size = Some(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.max_encoding_message_size = Some(limit); + self + } } - async fn get_proof_status( - &self, - req: GetProofStatusRequest, - ) -> Result { - self.request("network.NetworkService/GetProofStatus", req).await + impl tonic::codegen::Service> for ProverNetworkServer + where + T: ProverNetwork, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, + { + type Response = http::Response; + type Error = std::convert::Infallible; + type Future = BoxFuture; + fn poll_ready( + &mut self, + _cx: &mut Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + fn call(&mut self, req: http::Request) -> Self::Future { + match req.uri().path() { + "/network.ProverNetwork/RequestProof" => { + #[allow(non_camel_case_types)] + struct RequestProofSvc(pub Arc); + impl tonic::server::UnaryService + for RequestProofSvc + { + type Response = super::RequestProofResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::request_proof(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = RequestProofSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/FulfillProof" => { + #[allow(non_camel_case_types)] + struct FulfillProofSvc(pub Arc); + impl tonic::server::UnaryService + for FulfillProofSvc + { + type Response = super::FulfillProofResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::fulfill_proof(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = FulfillProofSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/ExecuteProof" => { + #[allow(non_camel_case_types)] + struct ExecuteProofSvc(pub Arc); + impl tonic::server::UnaryService + for ExecuteProofSvc + { + type Response = super::ExecuteProofResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::execute_proof(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = ExecuteProofSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/FailFulfillment" => { + #[allow(non_camel_case_types)] + struct FailFulfillmentSvc(pub Arc); + impl + tonic::server::UnaryService + for FailFulfillmentSvc + { + type Response = super::FailFulfillmentResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::fail_fulfillment(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = FailFulfillmentSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/FailExecution" => { + #[allow(non_camel_case_types)] + struct FailExecutionSvc(pub Arc); + impl tonic::server::UnaryService + for FailExecutionSvc + { + type Response = super::FailExecutionResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::fail_execution(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = FailExecutionSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/GetProofRequestStatus" => { + #[allow(non_camel_case_types)] + struct GetProofRequestStatusSvc(pub Arc); + impl + tonic::server::UnaryService + for GetProofRequestStatusSvc + { + type Response = super::GetProofRequestStatusResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_proof_request_status(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetProofRequestStatusSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/GetProofRequestDetails" => { + #[allow(non_camel_case_types)] + struct GetProofRequestDetailsSvc(pub Arc); + impl + tonic::server::UnaryService + for GetProofRequestDetailsSvc + { + type Response = super::GetProofRequestDetailsResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_proof_request_details(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetProofRequestDetailsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/GetFilteredProofRequests" => { + #[allow(non_camel_case_types)] + struct GetFilteredProofRequestsSvc(pub Arc); + impl + tonic::server::UnaryService + for GetFilteredProofRequestsSvc + { + type Response = super::GetFilteredProofRequestsResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_filtered_proof_requests(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetFilteredProofRequestsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/GetSearchResults" => { + #[allow(non_camel_case_types)] + struct GetSearchResultsSvc(pub Arc); + impl + tonic::server::UnaryService + for GetSearchResultsSvc + { + type Response = super::GetSearchResultsResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_search_results(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetSearchResultsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/GetProofRequestMetrics" => { + #[allow(non_camel_case_types)] + struct GetProofRequestMetricsSvc(pub Arc); + impl + tonic::server::UnaryService + for GetProofRequestMetricsSvc + { + type Response = super::GetProofRequestMetricsResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_proof_request_metrics(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetProofRequestMetricsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/GetProofRequestGraph" => { + #[allow(non_camel_case_types)] + struct GetProofRequestGraphSvc(pub Arc); + impl + tonic::server::UnaryService + for GetProofRequestGraphSvc + { + type Response = super::GetProofRequestGraphResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_proof_request_graph(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetProofRequestGraphSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/GetAnalyticsGraphs" => { + #[allow(non_camel_case_types)] + struct GetAnalyticsGraphsSvc(pub Arc); + impl + tonic::server::UnaryService + for GetAnalyticsGraphsSvc + { + type Response = super::GetAnalyticsGraphsResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_analytics_graphs(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetAnalyticsGraphsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/GetNonce" => { + #[allow(non_camel_case_types)] + struct GetNonceSvc(pub Arc); + impl tonic::server::UnaryService for GetNonceSvc { + type Response = super::GetNonceResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_nonce(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetNonceSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/GetFilteredDelegations" => { + #[allow(non_camel_case_types)] + struct GetFilteredDelegationsSvc(pub Arc); + impl + tonic::server::UnaryService + for GetFilteredDelegationsSvc + { + type Response = super::GetFilteredDelegationsResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_filtered_delegations(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetFilteredDelegationsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/AddDelegation" => { + #[allow(non_camel_case_types)] + struct AddDelegationSvc(pub Arc); + impl tonic::server::UnaryService + for AddDelegationSvc + { + type Response = super::AddDelegationResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::add_delegation(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = AddDelegationSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/RemoveDelegation" => { + #[allow(non_camel_case_types)] + struct RemoveDelegationSvc(pub Arc); + impl + tonic::server::UnaryService + for RemoveDelegationSvc + { + type Response = super::RemoveDelegationResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::remove_delegation(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = RemoveDelegationSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/AcceptDelegation" => { + #[allow(non_camel_case_types)] + struct AcceptDelegationSvc(pub Arc); + impl + tonic::server::UnaryService + for AcceptDelegationSvc + { + type Response = super::AcceptDelegationResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::accept_delegation(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = AcceptDelegationSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/SetAccountName" => { + #[allow(non_camel_case_types)] + struct SetAccountNameSvc(pub Arc); + impl tonic::server::UnaryService + for SetAccountNameSvc + { + type Response = super::SetAccountNameResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::set_account_name(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = SetAccountNameSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/GetAccountName" => { + #[allow(non_camel_case_types)] + struct GetAccountNameSvc(pub Arc); + impl tonic::server::UnaryService + for GetAccountNameSvc + { + type Response = super::GetAccountNameResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_account_name(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetAccountNameSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/GetTermsSignature" => { + #[allow(non_camel_case_types)] + struct GetTermsSignatureSvc(pub Arc); + impl + tonic::server::UnaryService + for GetTermsSignatureSvc + { + type Response = super::GetTermsSignatureResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_terms_signature(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetTermsSignatureSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/SetTermsSignature" => { + #[allow(non_camel_case_types)] + struct SetTermsSignatureSvc(pub Arc); + impl + tonic::server::UnaryService + for SetTermsSignatureSvc + { + type Response = super::SetTermsSignatureResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::set_terms_signature(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = SetTermsSignatureSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/GetProgram" => { + #[allow(non_camel_case_types)] + struct GetProgramSvc(pub Arc); + impl tonic::server::UnaryService for GetProgramSvc { + type Response = super::GetProgramResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_program(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetProgramSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/CreateProgram" => { + #[allow(non_camel_case_types)] + struct CreateProgramSvc(pub Arc); + impl tonic::server::UnaryService + for CreateProgramSvc + { + type Response = super::CreateProgramResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::create_program(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = CreateProgramSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/SetProgramName" => { + #[allow(non_camel_case_types)] + struct SetProgramNameSvc(pub Arc); + impl tonic::server::UnaryService + for SetProgramNameSvc + { + type Response = super::SetProgramNameResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::set_program_name(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = SetProgramNameSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/GetBalance" => { + #[allow(non_camel_case_types)] + struct GetBalanceSvc(pub Arc); + impl tonic::server::UnaryService for GetBalanceSvc { + type Response = super::GetBalanceResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_balance(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetBalanceSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/GetFilteredBalanceLogs" => { + #[allow(non_camel_case_types)] + struct GetFilteredBalanceLogsSvc(pub Arc); + impl + tonic::server::UnaryService + for GetFilteredBalanceLogsSvc + { + type Response = super::GetFilteredBalanceLogsResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_filtered_balance_logs(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetFilteredBalanceLogsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/AddCredit" => { + #[allow(non_camel_case_types)] + struct AddCreditSvc(pub Arc); + impl tonic::server::UnaryService for AddCreditSvc { + type Response = super::AddCreditResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::add_credit(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = AddCreditSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/GetLatestBridgeBlock" => { + #[allow(non_camel_case_types)] + struct GetLatestBridgeBlockSvc(pub Arc); + impl + tonic::server::UnaryService + for GetLatestBridgeBlockSvc + { + type Response = super::GetLatestBridgeBlockResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_latest_bridge_block(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetLatestBridgeBlockSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/GetGasPriceEstimate" => { + #[allow(non_camel_case_types)] + struct GetGasPriceEstimateSvc(pub Arc); + impl + tonic::server::UnaryService + for GetGasPriceEstimateSvc + { + type Response = super::GetGasPriceEstimateResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_gas_price_estimate(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetGasPriceEstimateSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/GetTransactionDetails" => { + #[allow(non_camel_case_types)] + struct GetTransactionDetailsSvc(pub Arc); + impl + tonic::server::UnaryService + for GetTransactionDetailsSvc + { + type Response = super::GetTransactionDetailsResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_transaction_details(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetTransactionDetailsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/GetFilteredReservations" => { + #[allow(non_camel_case_types)] + struct GetFilteredReservationsSvc(pub Arc); + impl + tonic::server::UnaryService + for GetFilteredReservationsSvc + { + type Response = super::GetFilteredReservationsResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_filtered_reservations(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetFilteredReservationsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/AddReservation" => { + #[allow(non_camel_case_types)] + struct AddReservationSvc(pub Arc); + impl tonic::server::UnaryService + for AddReservationSvc + { + type Response = super::AddReservationResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::add_reservation(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = AddReservationSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/RemoveReservation" => { + #[allow(non_camel_case_types)] + struct RemoveReservationSvc(pub Arc); + impl + tonic::server::UnaryService + for RemoveReservationSvc + { + type Response = super::RemoveReservationResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::remove_reservation(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = RemoveReservationSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/Bid" => { + #[allow(non_camel_case_types)] + struct BidSvc(pub Arc); + impl tonic::server::UnaryService for BidSvc { + type Response = super::BidResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = + async move { ::bid(&inner, request).await }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = BidSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/network.ProverNetwork/Settle" => { + #[allow(non_camel_case_types)] + struct SettleSvc(pub Arc); + impl tonic::server::UnaryService for SettleSvc { + type Response = super::SettleResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = + async move { ::settle(&inner, request).await }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = SettleSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + _ => Box::pin(async move { + Ok(http::Response::builder() + .status(200) + .header("grpc-status", tonic::Code::Unimplemented as i32) + .header(http::header::CONTENT_TYPE, tonic::metadata::GRPC_CONTENT_TYPE) + .body(empty_body()) + .unwrap()) + }), + } + } } - async fn get_proof_requests( - &self, - req: GetProofRequestsRequest, - ) -> Result { - self.request("network.NetworkService/GetProofRequests", req).await + impl Clone for ProverNetworkServer { + fn clone(&self) -> Self { + let inner = self.inner.clone(); + Self { + inner, + accept_compression_encodings: self.accept_compression_encodings, + send_compression_encodings: self.send_compression_encodings, + max_decoding_message_size: self.max_decoding_message_size, + max_encoding_message_size: self.max_encoding_message_size, + } + } } - async fn get_relay_status( - &self, - req: GetRelayStatusRequest, - ) -> Result { - self.request("network.NetworkService/GetRelayStatus", req).await + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "network.ProverNetwork"; + impl tonic::server::NamedService for ProverNetworkServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/crates/sdk/src/network/prove.rs b/crates/sdk/src/network/prove.rs new file mode 100644 index 0000000000..29ce11186a --- /dev/null +++ b/crates/sdk/src/network/prove.rs @@ -0,0 +1,214 @@ +//! # Network Prove +//! +//! This module provides a builder for creating a proof request to the network. + +use std::time::Duration; + +use anyhow::Result; +use sp1_core_machine::io::SP1Stdin; +use sp1_prover::SP1ProvingKey; + +use crate::{block_on, utils::sp1_dump, NetworkProver, SP1ProofMode, SP1ProofWithPublicValues}; + +use super::proto::network::FulfillmentStrategy; + +/// A builder for creating a proof request to the network. +pub struct NetworkProveBuilder<'a> { + pub(crate) prover: &'a NetworkProver, + pub(crate) mode: SP1ProofMode, + pub(crate) pk: &'a SP1ProvingKey, + pub(crate) stdin: SP1Stdin, + pub(crate) timeout: Option, + pub(crate) strategy: FulfillmentStrategy, + pub(crate) skip_simulation: bool, +} + +impl<'a> NetworkProveBuilder<'a> { + /// Set the proof kind to [SP1ProofMode::Core] mode. + /// + /// # Details + /// This is the default mode for the prover. The proofs grow linearly in size with the number + /// of cycles. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::network().build(); + /// let builder = client.prove(pk, stdin) + /// .core() + /// .run(); + /// ``` + pub fn core(mut self) -> Self { + self.mode = SP1ProofMode::Core; + self + } + + /// Set the proof kind to [SP1ProofMode::Compressed] mode. + /// + /// # Details + /// This mode produces a proof that is of constant size, regardless of the number of cycles. It + /// takes longer to prove than [SP1ProofMode::Core] due to the need to recursively aggregate + /// proofs inot a single proof. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::network().build(); + /// let builder = client.prove(pk, stdin) + /// .compressed() + /// .run(); + /// ``` + pub fn compressed(mut self) -> Self { + self.mode = SP1ProofMode::Compressed; + self + } + + /// Set the proof mode to [SP1ProofMode::Plonk] mode. + /// + /// # Details + /// This mode produces a const size PLONK proof that can be verified on chain for roughly ~300k + /// gas. This mode is useful for producing a maximally small proof that can be verified on + /// chain. For more efficient SNARK wrapping, you can use the [SP1ProofMode::Groth16] mode but + /// this mode is more . + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::network().build(); + /// let builder = client.prove(pk, stdin) + /// .plonk() + /// .run(); + /// ``` + pub fn plonk(mut self) -> Self { + self.mode = SP1ProofMode::Plonk; + self + } + + /// Set the proof mode to [SP1ProofMode::Groth16] mode. + /// + /// # Details + /// This mode produces a Groth16 proof that can be verified on chain for roughly ~100k gas. This + /// mode is useful for producing a proof that can be verified on chain with minimal gas. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::network().build(); + /// let builder = client.prove(pk, stdin) + /// .groth16() + /// .run(); + /// ``` + pub fn groth16(mut self) -> Self { + self.mode = SP1ProofMode::Groth16; + self + } + + /// Set the proof mode to the given [SP1ProofMode]. + /// + /// # Details + /// This method is useful for setting the proof mode to a custom mode. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::network().build(); + /// let builder = client.prove(pk, stdin) + /// .mode(SP1ProofMode::Groth16) + /// .run(); + /// ``` + pub fn mode(mut self, mode: SP1ProofMode) -> Self { + self.mode = mode; + self + } + + /// Set the timeout for the proof's generation. + /// + /// # Details + /// This method sets the timeout for the proof's generation. If the proof is not generated + /// within the timeout, the [NetworkProveBuilder::run] will return an error. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::network().build(); + /// let builder = client.prove(pk, stdin) + /// .timeout(Duration::from_secs(60)) + /// .run(); + /// ``` + pub fn timeout(mut self, timeout: Duration) -> Self { + self.timeout = Some(timeout); + self + } + + /// Set whether to skip the local execution simulation step. + /// + /// # Details + /// This method sets whether to skip the local execution simulation step. If the simulation + /// step is skipped, the request will sent to the network without verifying that the execution + /// succeeds locally (without generating a proof). This feature is recommended for users who + /// want to optimize the latency of the proof generation on the network. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::network().build(); + /// let builder = client.prove(pk, stdin) + /// .skip_simulation(true) + /// .run(); + /// ``` + pub fn skip_simulation(mut self, skip_simulation: bool) -> Self { + self.skip_simulation = skip_simulation; + self + } + + /// Sets the fulfillment strategy for the client. + /// + /// # Details + /// The strategy determines how the client will fulfill requests. + /// + /// # Example + /// ```rust,no_run + /// let prover = ProverClient::network() + /// .strategy(FulfillmentStrategy::Hosted) + /// .build(); + /// ``` + pub fn strategy(mut self, strategy: FulfillmentStrategy) -> Self { + self.strategy = strategy; + self + } + + /// Run the prover with the built arguments. + /// + /// # Details + /// This method will run the prover with the built arguments. If the prover fails to run, the + /// method will return an error. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::network().build(); + /// let proof = client.prove(pk, stdin) + /// .run() + /// .unwrap(); + /// ``` + pub fn run(self) -> Result { + let Self { prover, mode, pk, stdin, timeout, strategy, skip_simulation } = self; + + sp1_dump(&pk.elf, &stdin); + + block_on(prover.prove_impl(pk, &stdin, mode.into(), strategy, timeout, skip_simulation)) + } + + /// Run the prover with the built arguments asynchronously. + /// + /// # Details + /// This method will run the prover with the built arguments asynchronously. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::network().build(); + /// let proof = client.prove(pk, stdin) + /// .run_async() + /// .await + /// .unwrap(); + /// ``` + pub async fn run_async(self) -> Result { + let Self { prover, mode, pk, stdin, timeout, strategy, skip_simulation } = self; + + sp1_dump(&pk.elf, &stdin); + + prover.prove_impl(pk, &stdin, mode.into(), strategy, timeout, skip_simulation).await + } +} diff --git a/crates/sdk/src/network/prover.rs b/crates/sdk/src/network/prover.rs index 84a6a2297f..882b961b82 100644 --- a/crates/sdk/src/network/prover.rs +++ b/crates/sdk/src/network/prover.rs @@ -1,264 +1,362 @@ +//! # Network Prover +//! +//! This module provides an implementation of the [crate::Prover] trait that can generate proofs +//! on a remote RPC server. + use std::time::{Duration, Instant}; -use super::proto::network::GetProofStatusResponse; -use crate::provers::{CpuProver, ProverType}; -use crate::util::dump_proof_input; +use super::prove::NetworkProveBuilder; +use super::DEFAULT_CYCLE_LIMIT; +use crate::cpu::execute::CpuExecuteBuilder; +use crate::cpu::CpuProver; +use crate::network::{DEFAULT_PROVER_NETWORK_RPC, DEFAULT_TIMEOUT_SECS}; use crate::{ - network::{ - client::NetworkClient, - proto::network::{ProofMode, ProofStatus}, - }, - Prover, SP1ProofKind, SP1ProofWithPublicValues, SP1ProvingKey, SP1VerifyingKey, + network::client::NetworkClient, + network::proto::network::{ExecutionStatus, FulfillmentStatus, FulfillmentStrategy, ProofMode}, + Prover, SP1ProofMode, SP1ProofWithPublicValues, SP1ProvingKey, SP1VerifyingKey, }; use anyhow::Result; +use backoff::{future::retry, Error as BackoffError, ExponentialBackoff}; +use serde::de::DeserializeOwned; +use sp1_core_executor::SP1ContextBuilder; use sp1_core_machine::io::SP1Stdin; -use sp1_prover::{components::DefaultProverComponents, SP1Prover, SP1_CIRCUIT_VERSION}; -use {crate::block_on, tokio::time::sleep}; +use sp1_prover::{components::CpuProverComponents, SP1Prover, SP1_CIRCUIT_VERSION}; +use tonic::Code; -/// Number of consecutive errors to tolerate before returning an error while polling proof status. -const MAX_CONSECUTIVE_ERRORS: usize = 10; +use {crate::block_on, tokio::time::sleep}; /// An implementation of [crate::ProverClient] that can generate proofs on a remote RPC server. pub struct NetworkProver { - client: NetworkClient, - local_prover: CpuProver, + pub(crate) client: NetworkClient, + pub(crate) prover: CpuProver, } impl NetworkProver { /// Creates a new [NetworkProver] with the given private key. - pub fn new(private_key: &str, rpc_url: Option) -> Self { - let version = SP1_CIRCUIT_VERSION; - log::info!("Client circuit version: {}", version); + /// + /// # Details + /// * `private_key`: The Secp256k1 private key to use for signing requests. + /// * `rpc_url`: The rpc url to use for the prover network. + /// + /// # Example + /// ```rust,no_run + /// let prover = NetworkProver::new("...", "..."); + /// ``` + pub fn new(private_key: &str, rpc_url: &str) -> Self { + let prover = CpuProver::new(); + let client = NetworkClient::new(private_key, rpc_url); + Self { client, prover } + } - let local_prover = CpuProver::new(false); - Self { client: NetworkClient::new(private_key, rpc_url), local_prover } + /// Creates a new [`CpuExecuteBuilder`] for simulating the execution of a program on the CPU. + /// + /// # Details + /// Note that this does not use the network in any capacity. The method is provided for + /// convenience. + /// + /// # Example + /// ```rust,no_run + /// let client = ProverClient::cpu(); + /// let (public_values, execution_report) = client.execute(elf, stdin) + /// .run() + /// .unwrap(); + /// ``` + pub fn execute<'a>(&'a self, elf: &'a [u8], stdin: &SP1Stdin) -> CpuExecuteBuilder<'a> { + CpuExecuteBuilder { + prover: &self.prover.inner(), + elf, + stdin: stdin.clone(), + context_builder: SP1ContextBuilder::default(), + } + } + + /// A request to generate a proof for a given proving key and input. + /// + /// # Details + /// * `pk`: The proving key to use for the proof. + /// * `stdin`: The input to use for the proof. + /// + /// # Example + /// ```rust,no_run + /// let prover = NetworkProver::new("...", "..."); + /// let proof = prover.prove(pk, stdin).run().await?; + /// ``` + pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> NetworkProveBuilder<'a> { + NetworkProveBuilder { + prover: self, + mode: SP1ProofMode::Core, + pk, + stdin, + timeout: None, + strategy: FulfillmentStrategy::Hosted, + skip_simulation: false, + } } - /// Prepare to prove the execution of the given program with the given input in the default - /// mode. The returned [NetworkProve] may be configured via its methods before running. - /// For example, calling [NetworkProve::compressed] sets the mode to compressed mode. - pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> NetworkProve<'a> { - NetworkProve::new(self, pk, stdin) + /// Registers a program if it is not already registered. + /// + /// # Details + /// * `vk`: The verifying key to use for the program. + /// * `elf`: The elf to use for the program. + /// + /// Note that this method requires that the user honestly registers the program (i.e., the elf + /// matches the vk). + /// + /// # Example + /// ```rust,no_run + /// let prover = NetworkProver::new("...", "..."); + /// let vk_hash = prover.register_program(vk, elf).await?; + /// ``` + pub async fn register_program(&self, vk: &SP1VerifyingKey, elf: &[u8]) -> Result> { + self.client.register_program(vk, elf).await } - /// Requests a proof from the prover network, returning the proof ID. + /// Requests a proof from the prover network, returning the request ID. pub(crate) async fn request_proof( &self, - elf: &[u8], - stdin: SP1Stdin, + vk_hash: &[u8], + stdin: &SP1Stdin, mode: ProofMode, - skip_simulation: bool, - ) -> Result { - let client = &self.client; - - if !skip_simulation { - let (_, report) = - self.local_prover.sp1_prover().execute(elf, &stdin, Default::default())?; - log::info!("Simulation complete, cycles: {}", report.total_instruction_count()); - } else { - log::info!("Skipping simulation"); + strategy: FulfillmentStrategy, + cycle_limit: u64, + timeout: Option, + ) -> Result> { + // Get the timeout. + let timeout_secs = timeout.map(|dur| dur.as_secs()).unwrap_or(DEFAULT_TIMEOUT_SECS); + + // Log the request. + log::info!("Requesting proof:"); + log::info!("├─ Cycle limit: {}", cycle_limit); + log::info!("├─ Proof mode: {:?}", mode); + log::info!("├─ Strategy: {:?}", strategy); + log::info!("├─ Timeout: {} seconds", timeout_secs); + log::info!("└─ Circuit version: {}", SP1_CIRCUIT_VERSION); + + // Request the proof with retries. + let response = with_retry( + || async { + self.client + .request_proof( + vk_hash, + stdin, + mode, + SP1_CIRCUIT_VERSION, + strategy, + timeout_secs, + cycle_limit, + ) + .await + }, + timeout, + "requesting proof", + ) + .await?; + + // Log the request ID and transaction hash. + let tx_hash_hex = "0x".to_string() + &hex::encode(response.tx_hash); + let request_id = response.body.unwrap().request_id; + let request_id_hex = "0x".to_string() + &hex::encode(request_id.clone()); + log::info!("Created request {} in transaction {}", request_id_hex, tx_hash_hex); + + if self.client.rpc_url == DEFAULT_PROVER_NETWORK_RPC { + log::info!( + "View request status at: https://network.succinct.xyz/request/{}", + request_id_hex + ); } - let proof_id = client.create_proof(elf, &stdin, mode, SP1_CIRCUIT_VERSION).await?; - log::info!("Created {}", proof_id); - - if self.client.is_using_prover_network { - log::info!("View in explorer: https://explorer.succinct.xyz/{}", proof_id); - } - Ok(proof_id) + Ok(request_id) } /// Waits for a proof to be generated and returns the proof. If a timeout is supplied, the /// function will return an error if the proof is not generated within the timeout. - pub(crate) async fn wait_proof( + pub(crate) async fn wait_proof( &self, - proof_id: &str, + request_id: &[u8], timeout: Option, - ) -> Result { - let client = &self.client; - let mut is_claimed = false; + ) -> Result

{ + let mut is_assigned = false; let start_time = Instant::now(); - let mut consecutive_errors = 0; + loop { + // Calculate the remaining timeout. if let Some(timeout) = timeout { if start_time.elapsed() > timeout { - return Err(anyhow::anyhow!("Proof generation timed out.")); + return Err(anyhow::anyhow!("proof request timed out.")); } } - - let result = client.get_proof_status(proof_id).await; - - if let Err(e) = result { - consecutive_errors += 1; - log::warn!( - "Failed to get proof status ({}/{}): {:?}", - consecutive_errors, - MAX_CONSECUTIVE_ERRORS, - e - ); - if consecutive_errors == MAX_CONSECUTIVE_ERRORS { - return Err(anyhow::anyhow!( - "Proof generation failed: {} consecutive errors.", - MAX_CONSECUTIVE_ERRORS - )); - } - continue; + let remaining_timeout = timeout.map(|t| { + let elapsed = start_time.elapsed(); + if elapsed < t { t - elapsed } else { Duration::from_secs(0) } + }); + + // Get status with retries. + let (status, maybe_proof) = with_retry( + || async { self.client.get_proof_request_status::

(request_id).await }, + remaining_timeout, + "getting proof request status", + ) + .await?; + + // Check the execution status. + if status.execution_status == ExecutionStatus::Unexecutable as i32 { + return Err(anyhow::anyhow!("proof request is unexecutable")); } - consecutive_errors = 0; - let (status, maybe_proof) = result.unwrap(); - - match status.status() { - ProofStatus::ProofFulfilled => { + // Check the fulfillment status. + match FulfillmentStatus::try_from(status.fulfillment_status) { + Ok(FulfillmentStatus::Fulfilled) => { return Ok(maybe_proof.unwrap()); } - ProofStatus::ProofClaimed => { - if !is_claimed { - log::info!("Proof request claimed, proving..."); - is_claimed = true; + Ok(FulfillmentStatus::Assigned) => { + if !is_assigned { + log::info!("proof request assigned, proving..."); + is_assigned = true; } } - ProofStatus::ProofUnclaimed => { - return Err(anyhow::anyhow!( - "Proof generation failed: {}", - status.unclaim_description() - )); + Ok(FulfillmentStatus::Unfulfillable) => { + return Err(anyhow::anyhow!("proof request is unfulfillable")); } _ => {} } + sleep(Duration::from_secs(2)).await; } } - /// Get the status and the proof if available of a given proof request. The proof is returned - /// only if the status is Fulfilled. - pub async fn get_proof_status( - &self, - proof_id: &str, - ) -> Result<(GetProofStatusResponse, Option)> { - self.client.get_proof_status(proof_id).await - } - /// Requests a proof from the prover network and waits for it to be generated. pub(crate) async fn prove_impl( &self, - elf: &[u8], - stdin: SP1Stdin, - mode: ProofMode, + pk: &SP1ProvingKey, + stdin: &SP1Stdin, + mode: SP1ProofMode, + strategy: FulfillmentStrategy, timeout: Option, skip_simulation: bool, ) -> Result { - let proof_id = self.request_proof(elf, stdin, mode, skip_simulation).await?; - self.wait_proof(&proof_id, timeout).await + let vk_hash = self.register_program(&pk.vk, &pk.elf).await?; + let cycle_limit = self.get_cycle_limit(&pk.elf, &stdin, skip_simulation)?; + let request_id = self + .request_proof(&vk_hash, &stdin, mode.into(), strategy, cycle_limit, timeout) + .await?; + self.wait_proof(&request_id, timeout).await } -} -impl Prover for NetworkProver { - fn id(&self) -> ProverType { - ProverType::Network + fn get_cycle_limit(&self, elf: &[u8], stdin: &SP1Stdin, skip_simulation: bool) -> Result { + if !skip_simulation { + let (_, report) = self.prover.inner().execute(elf, stdin, Default::default())?; + let cycles = report.total_instruction_count(); + Ok(cycles) + } else { + Ok(DEFAULT_CYCLE_LIMIT) + } } +} +impl Prover for NetworkProver { fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey) { - self.local_prover.setup(elf) + self.prover.setup(elf) } - fn sp1_prover(&self) -> &SP1Prover { - self.local_prover.sp1_prover() + fn inner(&self) -> &SP1Prover { + self.prover.inner() } fn prove( &self, pk: &SP1ProvingKey, - stdin: SP1Stdin, - kind: SP1ProofKind, + stdin: &SP1Stdin, + mode: SP1ProofMode, ) -> Result { - block_on(self.prove_impl(&pk.elf, stdin, kind.into(), None, false)) + block_on(self.prove_impl(pk, stdin, mode, FulfillmentStrategy::Hosted, None, false)) } } -impl From for ProofMode { - fn from(value: SP1ProofKind) -> Self { +impl From for ProofMode { + fn from(value: SP1ProofMode) -> Self { match value { - SP1ProofKind::Core => Self::Core, - SP1ProofKind::Compressed => Self::Compressed, - SP1ProofKind::Plonk => Self::Plonk, - SP1ProofKind::Groth16 => Self::Groth16, + SP1ProofMode::Core => Self::Core, + SP1ProofMode::Compressed => Self::Compressed, + SP1ProofMode::Plonk => Self::Plonk, + SP1ProofMode::Groth16 => Self::Groth16, } } } -/// Builder to prepare and configure proving execution of a program on an input. -/// May be run with [Self::run]. -pub struct NetworkProve<'a> { - prover: &'a NetworkProver, - kind: SP1ProofKind, - pk: &'a SP1ProvingKey, - stdin: SP1Stdin, +/// Execute an async operation with exponential backoff retries. +pub async fn with_retry( + operation: F, timeout: Option, - skip_simulation: bool, -} - -impl<'a> NetworkProve<'a> { - fn new(prover: &'a NetworkProver, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> Self { - Self { prover, kind: Default::default(), pk, stdin, timeout: None, skip_simulation: false } - } - - /// Prove the execution of the program on the input, consuming the built action `self`. - pub async fn run_async(self) -> Result { - let Self { prover, kind, pk, stdin, timeout, skip_simulation } = self; - - dump_proof_input(&pk.elf, &stdin); - - prover.prove_impl(&pk.elf, stdin, kind.into(), timeout, skip_simulation).await - } - - pub fn run(self) -> Result { - let Self { prover, kind, pk, stdin, timeout, skip_simulation } = self; - - dump_proof_input(&pk.elf, &stdin); - - block_on(prover.prove_impl(&pk.elf, stdin, kind.into(), timeout, skip_simulation)) - } - - /// Set the proof kind to the core mode. This is the default. - pub fn core(mut self) -> Self { - self.kind = SP1ProofKind::Core; - self - } - - /// Set the proof kind to the compressed mode. - pub fn compressed(mut self) -> Self { - self.kind = SP1ProofKind::Compressed; - self - } - - /// Set the proof mode to the plonk bn254 mode. - pub fn plonk(mut self) -> Self { - self.kind = SP1ProofKind::Plonk; - self - } - - /// Set the proof mode to the groth16 bn254 mode. - pub fn groth16(mut self) -> Self { - self.kind = SP1ProofKind::Groth16; - self - } - - /// Set the proof mode to the given mode. - pub fn mode(mut self, mode: SP1ProofKind) -> Self { - self.kind = mode; - self - } - - /// Set the timeout for the proof's generation. - pub fn timeout(mut self, timeout: Duration) -> Self { - self.timeout = Some(timeout); - self - } - - /// Enable skipping the simulation step. - pub fn skip_simulation(mut self, skip_simulation: bool) -> Self { - self.skip_simulation = skip_simulation; - self - } + operation_name: &str, +) -> Result +where + F: Fn() -> Fut, + Fut: std::future::Future>, +{ + let backoff = ExponentialBackoff { + initial_interval: Duration::from_secs(1), + max_interval: Duration::from_secs(120), + max_elapsed_time: timeout, + ..Default::default() + }; + + retry(backoff, || async { + match operation().await { + Ok(result) => Ok(result), + Err(e) => { + // Check for tonic status errors. + if let Some(status) = e.downcast_ref::() { + match status.code() { + Code::Unavailable => { + log::warn!( + "Network temporarily unavailable when {} due to {}, retrying...", + operation_name, + status.message(), + ); + Err(BackoffError::transient(e)) + } + Code::NotFound => { + log::error!( + "{} not found due to {}", + operation_name, + status.message(), + ); + Err(BackoffError::permanent(e)) + } + _ => { + log::error!( + "Permanent error encountered when {}: {} ({})", + operation_name, + status.message(), + status.code() + ); + Err(BackoffError::permanent(e)) + } + } + } else { + // Check for common transport errors. + let error_msg = e.to_string().to_lowercase(); + let is_transient = error_msg.contains("tls handshake") || + error_msg.contains("dns error") || + error_msg.contains("connection reset") || + error_msg.contains("broken pipe") || + error_msg.contains("transport error") || + error_msg.contains("failed to lookup"); + + if is_transient { + log::warn!( + "Transient transport error when {}: {}, retrying...", + operation_name, + error_msg + ); + Err(BackoffError::transient(e)) + } else { + log::error!("Permanent error when {}: {}", operation_name, error_msg); + Err(BackoffError::permanent(e)) + } + } + } + } + }) + .await } diff --git a/crates/sdk/src/network-v2/sign_message.rs b/crates/sdk/src/network/sign_message.rs similarity index 95% rename from crates/sdk/src/network-v2/sign_message.rs rename to crates/sdk/src/network/sign_message.rs index a71290e315..13ee10b716 100644 --- a/crates/sdk/src/network-v2/sign_message.rs +++ b/crates/sdk/src/network/sign_message.rs @@ -2,8 +2,8 @@ use alloy_primitives::{Address, Signature}; use prost::Message; use thiserror::Error; -use crate::network_v2::json::{format_json_message, JsonFormatError}; -use crate::network_v2::proto::network::{FulfillProofRequest, MessageFormat, RequestProofRequest}; +use crate::network::proto::network::{FulfillProofRequest, MessageFormat, RequestProofRequest}; +use crate::network::utils::{format_json_message, JsonFormatError}; #[allow(dead_code)] pub trait SignedMessage { diff --git a/crates/sdk/src/network-v2/json.rs b/crates/sdk/src/network/utils.rs similarity index 70% rename from crates/sdk/src/network-v2/json.rs rename to crates/sdk/src/network/utils.rs index a0808d9be6..e1b7d749b5 100644 --- a/crates/sdk/src/network-v2/json.rs +++ b/crates/sdk/src/network/utils.rs @@ -1,17 +1,29 @@ +//! # Network Utils +//! +//! This module provides utility functions for the network module. + +use alloy_signer::{Signature, SignerSync}; use prost::Message; -#[allow(unused_imports)] -use serde::{Deserialize, Serialize}; +use serde::Serialize; use thiserror::Error; -/// Errors that can occur during JSON formatting. +pub(crate) trait Signable: Message { + fn sign(&self, signer: &S) -> Signature; +} + +impl Signable for T { + fn sign(&self, signer: &S) -> Signature { + signer.sign_message_sync(&self.encode_to_vec()).unwrap() + } +} + #[derive(Error, Debug)] -pub enum JsonFormatError { +pub(crate) enum JsonFormatError { #[error("Serialization error: {0}")] SerializationError(String), } -/// Formats a Protobuf body into a JSON byte representation. -pub fn format_json_message(body: &T) -> Result, JsonFormatError> +pub(crate) fn format_json_message(body: &T) -> Result, JsonFormatError> where T: Message + Serialize, { @@ -33,6 +45,7 @@ where mod tests { use super::*; use prost::Message as ProstMessage; + use serde::{Deserialize, Serialize}; // Test message for JSON formatting. #[derive(Clone, ProstMessage, Serialize, Deserialize)] diff --git a/crates/sdk/src/proof.rs b/crates/sdk/src/proof.rs index 42d5c92865..913ba55363 100644 --- a/crates/sdk/src/proof.rs +++ b/crates/sdk/src/proof.rs @@ -1,33 +1,45 @@ +#![allow(missing_docs)] + use std::{fmt::Debug, fs::File, path::Path}; use anyhow::Result; use serde::{Deserialize, Serialize}; use sp1_core_executor::SP1ReduceProof; -use sp1_core_machine::io::SP1Stdin; use sp1_primitives::io::SP1PublicValues; -use strum_macros::{EnumDiscriminants, EnumTryAs}; - use sp1_prover::{CoreSC, Groth16Bn254Proof, InnerSC, PlonkBn254Proof}; -use sp1_stark::{MachineVerificationError, ShardProof}; +use sp1_stark::ShardProof; +use strum_macros::{EnumDiscriminants, EnumTryAs}; -/// A proof generated with SP1 of a particular proof mode. +/// A proof generated by the SP1 RISC-V zkVM. #[derive(Debug, Clone, Serialize, Deserialize, EnumDiscriminants, EnumTryAs)] #[strum_discriminants(derive(Default, Hash, PartialOrd, Ord))] -#[strum_discriminants(name(SP1ProofKind))] +#[strum_discriminants(name(SP1ProofMode))] pub enum SP1Proof { + /// A proof generated by the core proof mode. + /// + /// The proof size scales linearly with the number of cycles. #[strum_discriminants(default)] Core(Vec>), + /// A proof generated by the compress proof mode. + /// + /// The proof size is constant, regardless of the number of cycles. Compressed(Box>), + /// A proof generated by the Plonk proof mode. Plonk(PlonkBn254Proof), + /// A proof generated by the Groth16 proof mode. Groth16(Groth16Bn254Proof), } -/// A proof generated with SP1, bundled together with stdin, public values, and the SP1 version. +/// A proof generated by the SP1 RISC-V zkVM bundled together with the public values and the +/// version. #[derive(Debug, Clone, Serialize, Deserialize)] pub struct SP1ProofWithPublicValues { + /// The raw proof generated by the SP1 RISC-V zkVM. pub proof: SP1Proof, - pub stdin: SP1Stdin, + /// The public values generated by the SP1 RISC-V zkVM. pub public_values: SP1PublicValues, + /// The version of the SP1 RISC-V zkVM (not necessary but useful for detecting version + /// mismatches). pub sp1_version: String, } @@ -44,24 +56,18 @@ impl SP1ProofWithPublicValues { .map_err(Into::into) } - /// Returns the raw proof as a string. - pub fn raw(&self) -> String { - match &self.proof { - SP1Proof::Plonk(plonk) => plonk.raw_proof.clone(), - SP1Proof::Groth16(groth16) => groth16.raw_proof.clone(), - _ => unimplemented!(), - } - } - - /// For Plonk or Groth16 proofs, returns the proof in a byte encoding the onchain verifier - /// accepts. The bytes consist of the first four bytes of Plonk vkey hash followed by the - /// encoded proof, in a form optimized for onchain verification. + /// The proof in the byte encoding the onchain verifiers accepts for [SP1ProofMode::Groth16] and + /// [SP1ProofMode::Plonk] proofs. + /// + /// # Details + /// The bytes consist of the first four bytes of Groth16/Plonk vkey hash followed by the encoded + /// proof, in a form optimized for onchain verification. pub fn bytes(&self) -> Vec { match &self.proof { SP1Proof::Plonk(plonk_proof) => { + // If the proof is empty, then this is a mock proof. The mock SP1 verifier + // expects an empty byte array for verification, so return an empty byte array. if plonk_proof.encoded_proof.is_empty() { - // If the proof is empty, then this is a mock proof. The mock SP1 verifier - // expects an empty byte array for verification, so return an empty byte array. return Vec::new(); } @@ -70,9 +76,9 @@ impl SP1ProofWithPublicValues { [plonk_proof.plonk_vkey_hash[..4].to_vec(), proof_bytes].concat() } SP1Proof::Groth16(groth16_proof) => { + // If the proof is empty, then this is a mock proof. The mock SP1 verifier + // expects an empty byte array for verification, so return an empty byte array. if groth16_proof.encoded_proof.is_empty() { - // If the proof is empty, then this is a mock proof. The mock SP1 verifier - // expects an empty byte array for verification, so return an empty byte array. return Vec::new(); } @@ -80,15 +86,15 @@ impl SP1ProofWithPublicValues { hex::decode(&groth16_proof.encoded_proof).expect("Invalid Groth16 proof"); [groth16_proof.groth16_vkey_hash[..4].to_vec(), proof_bytes].concat() } - _ => unimplemented!("only Plonk and Groth16 proofs are verifiable onchain"), + proof => panic!( + "Proof type {:?} is not supported for onchain verification. \ + Only Plonk and Groth16 proofs are verifiable onchain", + std::mem::discriminant(proof) + ), } } } -pub type SP1CoreProofVerificationError = MachineVerificationError; - -pub type SP1CompressedProofVerificationError = MachineVerificationError; - #[cfg(test)] mod tests { use super::*; @@ -102,7 +108,6 @@ mod tests { public_inputs: ["".to_string(), "".to_string()], raw_proof: "".to_string(), }), - stdin: SP1Stdin::new(), public_values: SP1PublicValues::new(), sp1_version: "".to_string(), }; @@ -119,7 +124,6 @@ mod tests { public_inputs: ["".to_string(), "".to_string()], raw_proof: "".to_string(), }), - stdin: SP1Stdin::new(), public_values: SP1PublicValues::new(), sp1_version: "".to_string(), }; @@ -136,7 +140,6 @@ mod tests { public_inputs: ["".to_string(), "".to_string()], raw_proof: "".to_string(), }), - stdin: SP1Stdin::new(), public_values: SP1PublicValues::new(), sp1_version: "".to_string(), }; @@ -152,7 +155,6 @@ mod tests { public_inputs: ["".to_string(), "".to_string()], raw_proof: "".to_string(), }), - stdin: SP1Stdin::new(), public_values: SP1PublicValues::new(), sp1_version: "".to_string(), }; @@ -164,7 +166,6 @@ mod tests { fn test_core_proof_bytes_unimplemented() { let core_proof = SP1ProofWithPublicValues { proof: SP1Proof::Core(vec![]), - stdin: SP1Stdin::new(), public_values: SP1PublicValues::new(), sp1_version: "".to_string(), }; diff --git a/crates/sdk/src/provers/mod.rs b/crates/sdk/src/prover.rs similarity index 75% rename from crates/sdk/src/provers/mod.rs rename to crates/sdk/src/prover.rs index 20b2387a9d..9176e0ec88 100644 --- a/crates/sdk/src/provers/mod.rs +++ b/crates/sdk/src/prover.rs @@ -1,96 +1,49 @@ -#[cfg(feature = "cuda")] -mod cuda; -mod env; -mod local; +//! # SP1 Prover Trait +//! +//! A trait that each prover variant must implement. -#[cfg(feature = "cuda")] -pub use cuda::CudaProver; -pub use env::EnvProver; -pub use local::CpuProver; +use std::borrow::Borrow; +use anyhow::Result; use itertools::Itertools; use p3_field::PrimeField32; use sp1_core_executor::ExecutionReport; -use sp1_primitives::io::SP1PublicValues; -use std::borrow::Borrow; -use std::time::Duration; - -use anyhow::Result; use sp1_core_machine::{io::SP1Stdin, SP1_CIRCUIT_VERSION}; +use sp1_primitives::io::SP1PublicValues; use sp1_prover::{ components::SP1ProverComponents, CoreSC, InnerSC, SP1CoreProofData, SP1Prover, SP1ProvingKey, SP1VerifyingKey, }; -use sp1_stark::{air::PublicValues, MachineVerificationError, SP1ProverOpts, Word}; -use strum_macros::EnumString; +use sp1_stark::{air::PublicValues, MachineVerificationError, Word}; use thiserror::Error; use crate::install::try_install_circuit_artifacts; -use crate::{SP1Proof, SP1ProofKind, SP1ProofWithPublicValues}; - -/// The type of prover. -#[derive(Debug, PartialEq, EnumString)] -pub enum ProverType { - Cpu, - Cuda, - Mock, - Network, -} - -/// Options to configure proof generation. -#[derive(Clone, Default)] -pub struct ProofOpts { - /// Options to configure the SP1 prover. - pub sp1_prover_opts: SP1ProverOpts, - /// Optional timeout duration for proof generation. - pub timeout: Option, -} - -#[derive(Error, Debug)] -pub enum SP1VerificationError { - #[error("Invalid public values")] - InvalidPublicValues, - #[error("Version mismatch")] - VersionMismatch(String), - #[error("Core machine verification error: {0}")] - Core(MachineVerificationError), - #[error("Recursion verification error: {0}")] - Recursion(MachineVerificationError), - #[error("Plonk verification error: {0}")] - Plonk(anyhow::Error), - #[error("Groth16 verification error: {0}")] - Groth16(anyhow::Error), -} +use crate::{SP1Proof, SP1ProofMode, SP1ProofWithPublicValues}; -/// An implementation of [crate::ProverClient]. +/// A basic set of primitives that each prover variant must implement. pub trait Prover: Send + Sync { - /// The type of prover. - fn id(&self) -> ProverType; - - /// The inner SP1Prover struct. - fn sp1_prover(&self) -> &SP1Prover; + /// The inner [SP1Prover] struct used by the prover. + fn inner(&self) -> &SP1Prover; - /// The version of the current SP1 circuit. This is distinct from the sp1-sdk version. + /// The version of the current SP1 circuit. fn version(&self) -> &str { SP1_CIRCUIT_VERSION } - /// Setup a program to be proven and verified by the SP1 RISC-V zkVM by computing the proving - /// and verifying keys. + /// Generate the proving and verifying keys for the given program. fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey); - /// Execute the given program on the given input (without generating a proof). Returns the - /// public values and execution report of the program after it has been executed. + /// Executes the program on the given input. fn execute(&self, elf: &[u8], stdin: &SP1Stdin) -> Result<(SP1PublicValues, ExecutionReport)> { - Ok(self.sp1_prover().execute(elf, stdin, Default::default())?) + Ok(self.inner().execute(elf, stdin, Default::default())?) } - /// Prove the execution of a RISCV ELF with the given inputs, according to the given proof mode. + /// Proves the given program on the given input in the given proof mode. fn prove( &self, pk: &SP1ProvingKey, - stdin: SP1Stdin, - kind: SP1ProofKind, + stdin: &SP1Stdin, + mode: SP1ProofMode, ) -> Result; /// Verify that an SP1 proof is valid given its vkey and metadata. @@ -101,19 +54,44 @@ pub trait Prover: Send + Sync { bundle: &SP1ProofWithPublicValues, vkey: &SP1VerifyingKey, ) -> Result<(), SP1VerificationError> { - verify_proof(self.sp1_prover(), self.version(), bundle, vkey) + verify_proof(self.inner(), self.version(), bundle, vkey) } } +/// An error that occurs when calling [Prover::verify]. +#[derive(Error, Debug)] +pub enum SP1VerificationError { + /// An error that occurs when the public values are invalid. + #[error("Invalid public values")] + InvalidPublicValues, + /// An error that occurs when the SP1 version does not match the version of the circuit. + #[error("Version mismatch")] + VersionMismatch(String), + /// An error that occurs when the core machine verification fails. + #[error("Core machine verification error: {0}")] + Core(MachineVerificationError), + /// An error that occurs when the recursion verification fails. + #[error("Recursion verification error: {0}")] + Recursion(MachineVerificationError), + /// An error that occurs when the Plonk verification fails. + #[error("Plonk verification error: {0}")] + Plonk(anyhow::Error), + /// An error that occurs when the Groth16 verification fails. + #[error("Groth16 verification error: {0}")] + Groth16(anyhow::Error), +} + pub(crate) fn verify_proof( prover: &SP1Prover, version: &str, bundle: &SP1ProofWithPublicValues, vkey: &SP1VerifyingKey, ) -> Result<(), SP1VerificationError> { + // Check that the SP1 version matches the version of the currentcircuit. if bundle.sp1_version != version { return Err(SP1VerificationError::VersionMismatch(bundle.sp1_version.clone())); } + match &bundle.proof { SP1Proof::Core(proof) => { let public_values: &PublicValues, _> = diff --git a/crates/sdk/src/provers/cuda.rs b/crates/sdk/src/provers/cuda.rs deleted file mode 100644 index e2eaba569d..0000000000 --- a/crates/sdk/src/provers/cuda.rs +++ /dev/null @@ -1,182 +0,0 @@ -use super::ProverType; -use crate::install::try_install_circuit_artifacts; -use crate::util::dump_proof_input; -use crate::{ - Prover, SP1Proof, SP1ProofKind, SP1ProofWithPublicValues, SP1ProvingKey, SP1VerifyingKey, -}; -use anyhow::Result; -use sp1_core_machine::io::SP1Stdin; -use sp1_cuda::SP1CudaProver; -use sp1_prover::{components::DefaultProverComponents, SP1Prover}; - -/// An implementation of [crate::ProverClient] that can generate proofs locally using CUDA. -pub struct CudaProver { - prover: SP1Prover, - cuda_prover: SP1CudaProver, -} - -impl CudaProver { - /// Creates a new [CudaProver]. - pub fn new(prover: SP1Prover) -> Self { - let cuda_prover = SP1CudaProver::new(); - Self { prover, cuda_prover: cuda_prover.expect("Failed to initialize CUDA prover") } - } - - /// Prepare to prove the execution of the given program with the given input in the default - /// mode. The returned [CudaProve] may be configured via its methods before running. - /// For example, calling [CudaProve::compressed] sets the mode to compressed mode. - pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> CudaProve<'a> { - CudaProve::new(self, pk, stdin) - } -} - -impl Prover for CudaProver { - fn id(&self) -> ProverType { - ProverType::Cuda - } - - fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey) { - self.prover.setup(elf) - } - - fn sp1_prover(&self) -> &SP1Prover { - &self.prover - } - - fn prove( - &self, - pk: &SP1ProvingKey, - stdin: SP1Stdin, - kind: SP1ProofKind, - ) -> Result { - // Generate the core proof. - let proof = self.cuda_prover.prove_core(pk, &stdin)?; - if kind == SP1ProofKind::Core { - return Ok(SP1ProofWithPublicValues { - proof: SP1Proof::Core(proof.proof.0), - stdin: proof.stdin, - public_values: proof.public_values, - sp1_version: self.version().to_string(), - }); - } - - let deferred_proofs = - stdin.proofs.iter().map(|(reduce_proof, _)| reduce_proof.clone()).collect(); - let public_values = proof.public_values.clone(); - - // Generate the compressed proof. - let reduce_proof = self.cuda_prover.compress(&pk.vk, proof, deferred_proofs)?; - if kind == SP1ProofKind::Compressed { - return Ok(SP1ProofWithPublicValues { - proof: SP1Proof::Compressed(Box::new(reduce_proof)), - stdin, - public_values, - sp1_version: self.version().to_string(), - }); - } - - // Generate the shrink proof. - let compress_proof = self.cuda_prover.shrink(reduce_proof)?; - - // Genenerate the wrap proof. - let outer_proof = self.cuda_prover.wrap_bn254(compress_proof)?; - - if kind == SP1ProofKind::Plonk { - let plonk_bn254_artifacts = if sp1_prover::build::sp1_dev_mode() { - sp1_prover::build::try_build_plonk_bn254_artifacts_dev( - &outer_proof.vk, - &outer_proof.proof, - ) - } else { - try_install_circuit_artifacts("plonk") - }; - let proof = self.prover.wrap_plonk_bn254(outer_proof, &plonk_bn254_artifacts); - return Ok(SP1ProofWithPublicValues { - proof: SP1Proof::Plonk(proof), - stdin, - public_values, - sp1_version: self.version().to_string(), - }); - } else if kind == SP1ProofKind::Groth16 { - let groth16_bn254_artifacts = if sp1_prover::build::sp1_dev_mode() { - sp1_prover::build::try_build_groth16_bn254_artifacts_dev( - &outer_proof.vk, - &outer_proof.proof, - ) - } else { - try_install_circuit_artifacts("groth16") - }; - - let proof = self.prover.wrap_groth16_bn254(outer_proof, &groth16_bn254_artifacts); - return Ok(SP1ProofWithPublicValues { - proof: SP1Proof::Groth16(proof), - stdin, - public_values, - sp1_version: self.version().to_string(), - }); - } - - unreachable!() - } -} - -impl Default for CudaProver { - fn default() -> Self { - Self::new(SP1Prover::new()) - } -} - -/// Builder to prepare and configure proving execution of a program on an input. -/// May be run with [Self::run]. -pub struct CudaProve<'a> { - prover: &'a CudaProver, - kind: SP1ProofKind, - pk: &'a SP1ProvingKey, - stdin: SP1Stdin, -} - -impl<'a> CudaProve<'a> { - fn new(prover: &'a CudaProver, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> Self { - Self { prover, kind: Default::default(), pk, stdin } - } - - /// Prove the execution of the program on the input, consuming the built action `self`. - pub fn run(self) -> Result { - let Self { prover, kind, pk, stdin } = self; - - // Dump the program and stdin to files for debugging if `SP1_DUMP` is set. - dump_proof_input(&pk.elf, &stdin); - - Prover::::prove(prover, pk, stdin, kind) - } - - /// Set the proof kind to the core mode. This is the default. - pub fn core(mut self) -> Self { - self.kind = SP1ProofKind::Core; - self - } - - /// Set the proof kind to the compressed mode. - pub fn compressed(mut self) -> Self { - self.kind = SP1ProofKind::Compressed; - self - } - - /// Set the proof mode to the plonk bn254 mode. - pub fn plonk(mut self) -> Self { - self.kind = SP1ProofKind::Plonk; - self - } - - /// Set the proof mode to the groth16 bn254 mode. - pub fn groth16(mut self) -> Self { - self.kind = SP1ProofKind::Groth16; - self - } - - /// Set the proof mode to the given mode. - pub fn mode(mut self, mode: SP1ProofKind) -> Self { - self.kind = mode; - self - } -} diff --git a/crates/sdk/src/provers/env.rs b/crates/sdk/src/provers/env.rs deleted file mode 100644 index 7caef17184..0000000000 --- a/crates/sdk/src/provers/env.rs +++ /dev/null @@ -1,217 +0,0 @@ -use std::env; - -use crate::util::dump_proof_input; -use crate::{SP1ProofKind, SP1ProofWithPublicValues}; -use anyhow::Result; -use cfg_if::cfg_if; -use sp1_core_executor::ExecutionReport; -use sp1_core_machine::io::SP1Stdin; -use sp1_primitives::io::SP1PublicValues; -use sp1_prover::{components::DefaultProverComponents, SP1Prover, SP1ProvingKey, SP1VerifyingKey}; - -#[cfg(feature = "cuda")] -use super::CudaProver; -use super::{CpuProver, Prover, ProverType, SP1VerificationError}; - -/// A prover that allows executing programs and generating proofs. The actual implementation depends -/// on the value of the `SP1_PROVER` environment variable, and other settings may be loaded from env. -pub struct EnvProver { - /// The underlying prover implementation. - pub prover: Box>, -} - -impl EnvProver { - pub fn new() -> Self { - let mode = env::var("SP1_PROVER").unwrap_or_else(|_| "local".to_string()); - - let prover: Box> = match mode.as_str() { - "local" => Box::new(CpuProver::new(false)), - "cuda" => { - cfg_if! { - if #[cfg(feature = "cuda")] { - Box::new(CudaProver::new(SP1Prover::new())) - } else { - panic!("cuda sp1-sdk feature is not enabled") - } - } - } - "network" => { - let rpc_url = env::var("PROVER_NETWORK_RPC").ok(); - let private_key = env::var("SP1_PRIVATE_KEY").expect("SP1_PRIVATE_KEY must be set"); - - cfg_if! { - if #[cfg(feature = "network-v2")] { - Box::new(crate::NetworkProverV2::new(&private_key, rpc_url)) - } else if #[cfg(feature = "network")] { - Box::new(crate::NetworkProverV1::new(&private_key, rpc_url)) - } else { - panic!("network sp1-sdk feature is not enabled") - } - } - } - "mock" => Box::new(CpuProver::new(true)), - _ => panic!("invalid SP1_PROVER value"), - }; - EnvProver { prover } - } - - /// Execute the given program on the given input (without generating a proof). Returns the - /// public values and execution report of the program after it has been executed. - pub fn execute<'a>( - &'a self, - elf: &'a [u8], - stdin: SP1Stdin, - ) -> Result<(SP1PublicValues, ExecutionReport)> { - Ok(self.prover.sp1_prover().execute(elf, &stdin, Default::default())?) - } - - /// Prepare to prove the execution of the given program with the given input in the default - /// mode. The returned [EnvProve] may be configured via its methods before running. - /// For example, calling [EnvProve::compressed] sets the mode to compressed mode. - /// - /// To prove, call [EnvProve::run], which returns a proof of the program's execution. - /// By default the proof generated will not be compressed to constant size. - /// To create a more succinct proof, use the [EnvProve::compressed], - /// [EnvProve::plonk], or [EnvProve::groth16] methods. - /// - /// ### Examples - /// ```no_run - /// use sp1_sdk::{ProverClient, SP1Context, SP1Stdin}; - /// - /// // Load the program. - /// let elf = test_artifacts::FIBONACCI_ELF; - /// - /// // Initialize the prover client. - /// let client = ProverClient::env(); - /// - /// // Setup the program. - /// let (pk, vk) = client.setup(elf); - /// - /// // Setup the inputs. - /// let mut stdin = SP1Stdin::new(); - /// stdin.write(&10usize); - /// - /// // Generate the proof. - /// let proof = client.prove(&pk, stdin).run().unwrap(); - /// ``` - pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> EnvProve<'a> { - EnvProve::new(self.prover.as_ref(), pk, stdin) - } - - /// Verifies that the given proof is valid and matches the given verification key produced by - /// [Self::setup]. - /// - /// ### Examples - /// ```no_run - /// use sp1_sdk::{ProverClient, SP1Stdin}; - /// - /// let elf = test_artifacts::FIBONACCI_ELF; - /// let client = ProverClient::env(); - /// let (pk, vk) = client.setup(elf); - /// let mut stdin = SP1Stdin::new(); - /// stdin.write(&10usize); - /// let proof = client.prove(&pk, stdin).run().unwrap(); - /// client.verify(&proof, &vk).unwrap(); - /// ``` - pub fn verify( - &self, - proof: &SP1ProofWithPublicValues, - vk: &SP1VerifyingKey, - ) -> Result<(), SP1VerificationError> { - self.prover.verify(proof, vk) - } - - /// Setup a program to be proven and verified by the SP1 RISC-V zkVM by computing the proving - /// and verifying keys. - pub fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey) { - self.prover.setup(elf) - } -} - -impl Default for EnvProver { - fn default() -> Self { - Self::new() - } -} - -impl Prover for EnvProver { - fn id(&self) -> ProverType { - self.prover.id() - } - - fn sp1_prover(&self) -> &SP1Prover { - self.prover.sp1_prover() - } - - fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey) { - self.prover.setup(elf) - } - - fn prove( - &self, - pk: &SP1ProvingKey, - stdin: SP1Stdin, - kind: SP1ProofKind, - ) -> Result { - self.prover.prove(pk, stdin, kind) - } -} - -/// Builder to prepare and configure proving execution of a program on an input. -/// May be run with [Self::run]. -pub struct EnvProve<'a> { - prover: &'a dyn Prover, - kind: SP1ProofKind, - pk: &'a SP1ProvingKey, - stdin: SP1Stdin, -} - -impl<'a> EnvProve<'a> { - fn new( - prover: &'a dyn Prover, - pk: &'a SP1ProvingKey, - stdin: SP1Stdin, - ) -> Self { - Self { prover, kind: Default::default(), pk, stdin } - } - - /// Prove the execution of the program on the input, consuming the built action `self`. - pub fn run(self) -> Result { - let Self { prover, kind, pk, stdin } = self; - - // Dump the program and stdin to files for debugging if `SP1_DUMP` is set. - dump_proof_input(&pk.elf, &stdin); - - prover.prove(pk, stdin, kind) - } - - /// Set the proof kind to the core mode. This is the default. - pub fn core(mut self) -> Self { - self.kind = SP1ProofKind::Core; - self - } - - /// Set the proof kind to the compressed mode. - pub fn compressed(mut self) -> Self { - self.kind = SP1ProofKind::Compressed; - self - } - - /// Set the proof mode to the plonk bn254 mode. - pub fn plonk(mut self) -> Self { - self.kind = SP1ProofKind::Plonk; - self - } - - /// Set the proof mode to the groth16 bn254 mode. - pub fn groth16(mut self) -> Self { - self.kind = SP1ProofKind::Groth16; - self - } - - /// Set the proof mode to the given mode. - pub fn mode(mut self, mode: SP1ProofKind) -> Self { - self.kind = mode; - self - } -} diff --git a/crates/sdk/src/provers/local.rs b/crates/sdk/src/provers/local.rs deleted file mode 100644 index 5901e7d76c..0000000000 --- a/crates/sdk/src/provers/local.rs +++ /dev/null @@ -1,474 +0,0 @@ -use anyhow::Result; -use hashbrown::HashMap; -use p3_baby_bear::BabyBear; -use p3_field::AbstractField; -use p3_field::PrimeField; -use p3_fri::{FriProof, TwoAdicFriPcsProof}; -use sp1_core_executor::ExecutionReport; -use sp1_core_executor::{HookEnv, SP1Context, SP1ContextBuilder, SP1ReduceProof}; -use sp1_core_machine::io::SP1Stdin; -use sp1_primitives::io::SP1PublicValues; -use sp1_prover::verify::{verify_groth16_bn254_public_inputs, verify_plonk_bn254_public_inputs}; -use sp1_prover::{components::DefaultProverComponents, SP1Prover}; -use sp1_prover::{Groth16Bn254Proof, HashableKey, PlonkBn254Proof}; -use sp1_stark::{ - SP1CoreOpts, SP1ProverOpts, ShardCommitment, ShardOpenedValues, ShardProof, StarkVerifyingKey, -}; - -use crate::install::try_install_circuit_artifacts; -use crate::util::dump_proof_input; -use crate::{ - Prover, SP1Proof, SP1ProofKind, SP1ProofWithPublicValues, SP1ProvingKey, SP1VerifyingKey, -}; - -use super::verify_proof; -use super::{ProverType, SP1VerificationError}; - -/// An implementation of [crate::Prover] that can generate end-to-end proofs locally. -pub struct CpuProver { - prover: SP1Prover, - mock: bool, -} - -impl CpuProver { - /// Creates a new [CpuProver]. - pub fn new(mock: bool) -> Self { - let prover = SP1Prover::new(); - Self { prover, mock } - } - - /// Creates a new [CpuProver] from an existing [SP1Prover]. - pub fn from_prover(prover: SP1Prover) -> Self { - Self { prover, mock: false } - } - - pub fn execute<'a>(&'a self, elf: &'a [u8], stdin: SP1Stdin) -> CpuExecute<'a> { - CpuExecute::new(self, elf, stdin) - } - - /// Prepare to prove the execution of the given program with the given input in the default - /// mode. The returned [CpuProve] may be configured via its methods before running. - /// For example, calling [CpuProve::compressed] sets the mode to compressed mode. - pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> CpuProve<'a> { - CpuProve { - prover: self, - kind: SP1ProofKind::Core, - pk, - stdin, - context_builder: Default::default(), - core_opts: SP1CoreOpts::default(), - recursion_opts: SP1CoreOpts::recursion(), - } - } - - pub(crate) fn prove_impl<'a>( - &'a self, - pk: &SP1ProvingKey, - stdin: SP1Stdin, - opts: SP1ProverOpts, - context: SP1Context<'a>, - kind: SP1ProofKind, - ) -> Result { - if self.mock { - tracing::info!("Using mock prover"); - return self.mock_proof(pk, stdin, kind); - } - - // Generate the core proof. - let proof: sp1_prover::SP1ProofWithMetadata = - self.prover.prove_core(pk, &stdin, opts, context)?; - if kind == SP1ProofKind::Core { - return Ok(SP1ProofWithPublicValues { - proof: SP1Proof::Core(proof.proof.0), - stdin: proof.stdin, - public_values: proof.public_values, - sp1_version: self.version().to_string(), - }); - } - - let deferred_proofs = - stdin.proofs.iter().map(|(reduce_proof, _)| reduce_proof.clone()).collect(); - let public_values = proof.public_values.clone(); - - // Generate the compressed proof. - let reduce_proof = self.prover.compress(&pk.vk, proof, deferred_proofs, opts)?; - if kind == SP1ProofKind::Compressed { - return Ok(SP1ProofWithPublicValues { - proof: SP1Proof::Compressed(Box::new(reduce_proof)), - stdin, - public_values, - sp1_version: self.version().to_string(), - }); - } - - // Generate the shrink proof. - let compress_proof = self.prover.shrink(reduce_proof, opts)?; - - // Generate the wrap proof. - let outer_proof = self.prover.wrap_bn254(compress_proof, opts)?; - if kind == SP1ProofKind::Plonk { - let plonk_bn254_artifacts = if sp1_prover::build::sp1_dev_mode() { - sp1_prover::build::try_build_plonk_bn254_artifacts_dev( - &outer_proof.vk, - &outer_proof.proof, - ) - } else { - try_install_circuit_artifacts("plonk") - }; - let proof = self.prover.wrap_plonk_bn254(outer_proof, &plonk_bn254_artifacts); - - return Ok(SP1ProofWithPublicValues { - proof: SP1Proof::Plonk(proof), - stdin, - public_values, - sp1_version: self.version().to_string(), - }); - } else if kind == SP1ProofKind::Groth16 { - let groth16_bn254_artifacts = if sp1_prover::build::sp1_dev_mode() { - sp1_prover::build::try_build_groth16_bn254_artifacts_dev( - &outer_proof.vk, - &outer_proof.proof, - ) - } else { - try_install_circuit_artifacts("groth16") - }; - - let proof = self.prover.wrap_groth16_bn254(outer_proof, &groth16_bn254_artifacts); - return Ok(SP1ProofWithPublicValues { - proof: SP1Proof::Groth16(proof), - stdin, - public_values, - sp1_version: self.version().to_string(), - }); - } - - unreachable!() - } - - fn mock_proof( - &self, - pk: &SP1ProvingKey, - stdin: SP1Stdin, - kind: SP1ProofKind, - ) -> Result { - let context = SP1Context::default(); - match kind { - SP1ProofKind::Core => { - let (public_values, _) = self.prover.execute(&pk.elf, &stdin, context)?; - Ok(SP1ProofWithPublicValues { - proof: SP1Proof::Core(vec![]), - stdin, - public_values, - sp1_version: self.version().to_string(), - }) - } - SP1ProofKind::Compressed => { - let (public_values, _) = self.prover.execute(&pk.elf, &stdin, context)?; - - let shard_proof = ShardProof { - commitment: ShardCommitment { - global_main_commit: [BabyBear::zero(); 8].into(), - local_main_commit: [BabyBear::zero(); 8].into(), - permutation_commit: [BabyBear::zero(); 8].into(), - quotient_commit: [BabyBear::zero(); 8].into(), - }, - opened_values: ShardOpenedValues { chips: vec![] }, - opening_proof: TwoAdicFriPcsProof { - fri_proof: FriProof { - commit_phase_commits: vec![], - query_proofs: vec![], - final_poly: Default::default(), - pow_witness: BabyBear::zero(), - }, - query_openings: vec![], - }, - chip_ordering: HashMap::new(), - public_values: vec![], - }; - - let reduce_vk = StarkVerifyingKey { - commit: [BabyBear::zero(); 8].into(), - pc_start: BabyBear::zero(), - chip_information: vec![], - chip_ordering: HashMap::new(), - }; - - let proof = SP1Proof::Compressed(Box::new(SP1ReduceProof { - vk: reduce_vk, - proof: shard_proof, - })); - - Ok(SP1ProofWithPublicValues { - proof, - stdin, - public_values, - sp1_version: self.version().to_string(), - }) - } - SP1ProofKind::Plonk => { - let (public_values, _) = self.prover.execute(&pk.elf, &stdin, context)?; - Ok(SP1ProofWithPublicValues { - proof: SP1Proof::Plonk(PlonkBn254Proof { - public_inputs: [ - pk.vk.hash_bn254().as_canonical_biguint().to_string(), - public_values.hash_bn254().to_string(), - ], - encoded_proof: "".to_string(), - raw_proof: "".to_string(), - plonk_vkey_hash: [0; 32], - }), - stdin, - public_values, - sp1_version: self.version().to_string(), - }) - } - SP1ProofKind::Groth16 => { - let (public_values, _) = self.prover.execute(&pk.elf, &stdin, context)?; - Ok(SP1ProofWithPublicValues { - proof: SP1Proof::Groth16(Groth16Bn254Proof { - public_inputs: [ - pk.vk.hash_bn254().as_canonical_biguint().to_string(), - public_values.hash_bn254().to_string(), - ], - encoded_proof: "".to_string(), - raw_proof: "".to_string(), - groth16_vkey_hash: [0; 32], - }), - stdin, - public_values, - sp1_version: self.version().to_string(), - }) - } - } - } - - fn mock_verify( - bundle: &SP1ProofWithPublicValues, - vkey: &SP1VerifyingKey, - ) -> Result<(), SP1VerificationError> { - match &bundle.proof { - SP1Proof::Plonk(PlonkBn254Proof { public_inputs, .. }) => { - verify_plonk_bn254_public_inputs(vkey, &bundle.public_values, public_inputs) - .map_err(SP1VerificationError::Plonk) - } - SP1Proof::Groth16(Groth16Bn254Proof { public_inputs, .. }) => { - verify_groth16_bn254_public_inputs(vkey, &bundle.public_values, public_inputs) - .map_err(SP1VerificationError::Groth16) - } - _ => Ok(()), - } - } -} - -impl Prover for CpuProver { - fn id(&self) -> ProverType { - ProverType::Cpu - } - - fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey) { - self.prover.setup(elf) - } - - fn sp1_prover(&self) -> &SP1Prover { - &self.prover - } - - fn prove( - &self, - pk: &SP1ProvingKey, - stdin: SP1Stdin, - kind: SP1ProofKind, - ) -> Result { - self.prove_impl(pk, stdin, Default::default(), SP1Context::default(), kind) - } - - fn verify( - &self, - bundle: &SP1ProofWithPublicValues, - vkey: &SP1VerifyingKey, - ) -> Result<(), SP1VerificationError> { - if self.mock { - tracing::warn!("Using mock verifier"); - return Self::mock_verify(bundle, vkey); - } - verify_proof(self.sp1_prover(), self.version(), bundle, vkey) - } -} - -impl Default for CpuProver { - fn default() -> Self { - Self::new(false) - } -} - -/// Builder to prepare and configure execution of a program on an input. -/// May be run with [Self::run]. -pub struct CpuExecute<'a> { - prover: &'a CpuProver, - context_builder: SP1ContextBuilder<'a>, - elf: &'a [u8], - stdin: SP1Stdin, -} - -impl<'a> CpuExecute<'a> { - fn new(prover: &'a CpuProver, elf: &'a [u8], stdin: SP1Stdin) -> Self { - Self { prover, elf, stdin, context_builder: Default::default() } - } - - /// Execute the program on the input, consuming the built action `self`. - pub fn run(self) -> Result<(SP1PublicValues, ExecutionReport)> { - let Self { prover, elf, stdin, mut context_builder } = self; - let context = context_builder.build(); - Ok(prover.sp1_prover().execute(elf, &stdin, context)?) - } - - /// Add a runtime [Hook](super::Hook) into the context. - /// - /// Hooks may be invoked from within SP1 by writing to the specified file descriptor `fd` - /// with [`sp1_zkvm::io::write`], returning a list of arbitrary data that may be read - /// with successive calls to [`sp1_zkvm::io::read`]. - pub fn with_hook( - mut self, - fd: u32, - f: impl FnMut(HookEnv, &[u8]) -> Vec> + Send + Sync + 'a, - ) -> Self { - self.context_builder.hook(fd, f); - self - } - - /// Avoid registering the default hooks in the runtime. - /// - /// It is not necessary to call this to override hooks --- instead, simply - /// register a hook with the same value of `fd` by calling [`Self::with_hook`]. - pub fn without_default_hooks(mut self) -> Self { - self.context_builder.without_default_hooks(); - self - } - - /// Set the maximum number of cpu cycles to use for execution. - /// - /// If the cycle limit is exceeded, execution will return - /// [`sp1_core_executor::ExecutionError::ExceededCycleLimit`]. - pub fn max_cycles(mut self, max_cycles: u64) -> Self { - self.context_builder.max_cycles(max_cycles); - self - } - - /// Skip deferred proof verification. - pub fn set_skip_deferred_proof_verification(mut self, value: bool) -> Self { - self.context_builder.set_skip_deferred_proof_verification(value); - self - } -} - -/// Builder to prepare and configure proving execution of a program on an input. -/// May be run with [Self::run]. -pub struct CpuProve<'a> { - prover: &'a CpuProver, - kind: SP1ProofKind, - context_builder: SP1ContextBuilder<'a>, - pk: &'a SP1ProvingKey, - stdin: SP1Stdin, - core_opts: SP1CoreOpts, - recursion_opts: SP1CoreOpts, -} - -impl<'a> CpuProve<'a> { - /// Prove the execution of the program on the input, consuming the built action `self`. - pub fn run(self) -> Result { - let Self { prover, kind, pk, stdin, mut context_builder, core_opts, recursion_opts } = self; - let opts = SP1ProverOpts { core_opts, recursion_opts }; - let context = context_builder.build(); - - // Dump the program and stdin to files for debugging if `SP1_DUMP` is set. - dump_proof_input(&pk.elf, &stdin); - - prover.prove_impl(pk, stdin, opts, context, kind) - } - - /// Set the proof kind to the core mode. This is the default. - pub fn core(mut self) -> Self { - self.kind = SP1ProofKind::Core; - self - } - - /// Set the proof kind to the compressed mode. - pub fn compressed(mut self) -> Self { - self.kind = SP1ProofKind::Compressed; - self - } - - /// Set the proof mode to the plonk bn254 mode. - pub fn plonk(mut self) -> Self { - self.kind = SP1ProofKind::Plonk; - self - } - - /// Set the proof mode to the groth16 bn254 mode. - pub fn groth16(mut self) -> Self { - self.kind = SP1ProofKind::Groth16; - self - } - - /// Set the proof mode to the given mode. - pub fn mode(mut self, mode: SP1ProofKind) -> Self { - self.kind = mode; - self - } - - /// Add a runtime [Hook](super::Hook) into the context. - /// - /// Hooks may be invoked from within SP1 by writing to the specified file descriptor `fd` - /// with [`sp1_zkvm::io::write`], returning a list of arbitrary data that may be read - /// with successive calls to [`sp1_zkvm::io::read`]. - pub fn with_hook( - mut self, - fd: u32, - f: impl FnMut(HookEnv, &[u8]) -> Vec> + Send + Sync + 'a, - ) -> Self { - self.context_builder.hook(fd, f); - self - } - - /// Avoid registering the default hooks in the runtime. - /// - /// It is not necessary to call this to override hooks --- instead, simply - /// register a hook with the same value of `fd` by calling [`Self::with_hook`]. - pub fn without_default_hooks(mut self) -> Self { - self.context_builder.without_default_hooks(); - self - } - - /// Set the shard size for proving. - pub fn shard_size(mut self, value: usize) -> Self { - self.core_opts.shard_size = value; - self - } - - /// Set the shard batch size for proving. - pub fn shard_batch_size(mut self, value: usize) -> Self { - self.core_opts.shard_batch_size = value; - self - } - - /// Set whether we should reconstruct commitments while proving. - pub fn reconstruct_commitments(mut self, value: bool) -> Self { - self.core_opts.reconstruct_commitments = value; - self - } - - /// Set the maximum number of cpu cycles to use for execution. - /// - /// If the cycle limit is exceeded, execution will return - /// [`sp1_core_executor::ExecutionError::ExceededCycleLimit`]. - pub fn cycle_limit(mut self, cycle_limit: u64) -> Self { - self.context_builder.max_cycles(cycle_limit); - self - } - - /// Set the skip deferred proof verification flag. - pub fn set_skip_deferred_proof_verification(mut self, value: bool) -> Self { - self.context_builder.set_skip_deferred_proof_verification(value); - self - } -} diff --git a/crates/sdk/src/util.rs b/crates/sdk/src/utils.rs similarity index 75% rename from crates/sdk/src/util.rs rename to crates/sdk/src/utils.rs index efa580058b..59ed4a9b50 100644 --- a/crates/sdk/src/util.rs +++ b/crates/sdk/src/utils.rs @@ -1,9 +1,12 @@ +//! # SP1 SDK Utilities +//! +//! A collection of utilities for the SP1 SDK. + use sp1_core_machine::io::SP1Stdin; -#[cfg(any(feature = "network", feature = "network-v2"))] -use std::future::Future; +pub use sp1_core_machine::utils::setup_logger; /// Dump the program and stdin to files for debugging if `SP1_DUMP` is set. -pub(crate) fn dump_proof_input(elf: &[u8], stdin: &SP1Stdin) { +pub(crate) fn sp1_dump(elf: &[u8], stdin: &SP1Stdin) { if std::env::var("SP1_DUMP").map(|v| v == "1" || v.to_lowercase() == "true").unwrap_or(false) { std::fs::write("program.bin", elf).unwrap(); let stdin = bincode::serialize(&stdin).unwrap(); @@ -15,8 +18,8 @@ pub(crate) fn dump_proof_input(elf: &[u8], stdin: &SP1Stdin) { /// /// If we're already in a tokio runtime, we'll block in place. Otherwise, we'll create a new /// runtime. -#[cfg(any(feature = "network", feature = "network-v2"))] -pub fn block_on(fut: impl Future) -> T { +#[cfg(any(feature = "network", feature = "network"))] +pub fn block_on(fut: impl std::future::Future) -> T { use tokio::task::block_in_place; // Handle case if we're already in an tokio runtime. From e7b5dd1cf69b7730486e337f2da71aa5a93f628a Mon Sep 17 00:00:00 2001 From: jtguibas Date: Thu, 19 Dec 2024 09:00:58 +0000 Subject: [PATCH 21/36] more cleanup --- crates/sdk/src/client.rs | 60 +++++++++++++++++++++++++++++++++------- 1 file changed, 50 insertions(+), 10 deletions(-) diff --git a/crates/sdk/src/client.rs b/crates/sdk/src/client.rs index 5db86a88d6..d269331bd4 100644 --- a/crates/sdk/src/client.rs +++ b/crates/sdk/src/client.rs @@ -12,12 +12,20 @@ use crate::network::builder::NetworkProverBuilder; use sp1_prover::SP1Prover; /// A client for interacting with the prover for the SP1 RISC-V zkVM. -/// -/// The client can be used to execute programs, generate proofs, and verify proofs. pub struct ProverClient; impl ProverClient { /// Creates a new [EnvProver] from the environment. + /// + /// # Example + /// ```no_run + /// use sp1_sdk::ProverClient; + /// + /// std::env::set_var("SP1_PROVER", "network"); + /// std::env::set_var("NETWORK_PRIVATE_KEY", "..."); + /// std::env::set_var("NETWORK_RPC_URL", "..."); + /// let prover = ProverClient::from_env(); + /// ``` #[deprecated(since = "4.0.0", note = "use `ProverClient::from_env()` instead")] #[allow(clippy::new_ret_no_self)] pub fn new() -> EnvProver { @@ -26,7 +34,12 @@ impl ProverClient { /// Gets the current version of the SP1 RISC-V zkVM. /// - /// WARNING: This is not the same as the version of the SP1 SDK. + /// # Example + /// ```no_run + /// use sp1_sdk::ProverClient; + /// + /// let version = ProverClient::version(); + /// ``` pub fn version() -> String { SP1_CIRCUIT_VERSION.to_string() } @@ -47,6 +60,20 @@ impl ProverClient { EnvProver::new() } + /// Builds a [CpuProver] specifically for mock proving. + /// + /// # Example + /// ```no_run + /// use sp1_sdk::ProverClient; + /// + /// let prover = ProverClient::mock(); + /// let (pk, vk) = prover.setup(elf); + /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); + /// ``` + pub fn mock() -> CpuProver { + CpuProver::mock() + } + /// Builds a [CpuProver] specifically for local CPU proving. /// /// # Usage @@ -61,19 +88,32 @@ impl ProverClient { CpuProver::new() } - /// Builds a [CudaProver] specifically for local NVIDIA GPU proving. + /// Builds a [CudaProver] specifically for local proving on NVIDIA GPUs. + /// + /// # Example + /// ```no_run + /// use sp1_sdk::ProverClient; + /// + /// let prover = ProverClient::cuda(); + /// let (pk, vk) = prover.setup(elf); + /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); + /// ``` pub fn cuda() -> CudaProver { CudaProver::new(SP1Prover::new()) } - /// Builds a [NetworkProver] specifically for network proving. + /// Builds a [NetworkProver] specifically for proving on the network. + /// + /// # Example + /// ```no_run + /// use sp1_sdk::ProverClient; + /// + /// let prover = ProverClient::network().build(); + /// let (pk, vk) = prover.setup(elf); + /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); + /// ``` #[cfg(feature = "network")] pub fn network() -> NetworkProverBuilder { NetworkProverBuilder { private_key: None, rpc_url: None } } - - /// Builds a [CpuProver] specifically for mock proving. - pub fn mock() -> CpuProver { - CpuProver::mock() - } } From a681a830347608ccb79fb0cfde5446ffc736c369 Mon Sep 17 00:00:00 2001 From: jtguibas Date: Thu, 19 Dec 2024 09:16:39 +0000 Subject: [PATCH 22/36] more cleanup --- crates/sdk/src/cpu/execute.rs | 2 +- crates/sdk/src/cpu/mod.rs | 1 + crates/sdk/src/cpu/prove.rs | 10 ++++++++-- crates/sdk/src/install.rs | 2 +- crates/sdk/src/lib.rs | 4 ++-- crates/sdk/src/network/builder.rs | 6 +++--- crates/sdk/src/network/prove.rs | 24 +++++++++++++++++++++--- crates/sdk/src/network/prover.rs | 2 +- crates/sdk/src/utils.rs | 4 ++-- 9 files changed, 40 insertions(+), 15 deletions(-) diff --git a/crates/sdk/src/cpu/execute.rs b/crates/sdk/src/cpu/execute.rs index f0f251a32e..3f21b616e3 100644 --- a/crates/sdk/src/cpu/execute.rs +++ b/crates/sdk/src/cpu/execute.rs @@ -11,7 +11,7 @@ use sp1_prover::{components::CpuProverComponents, SP1Prover}; /// A builder for simulating the execution of a program on the CPU. /// /// This builder providers a typed interface for configuring the SP1 RISC-V executor. The builder -/// is used for both the [crate::cpu::CpuProver] and [crate::CudaProver] client types. +/// is used for all the different variants of the [crate::ProverClient]. pub struct CpuExecuteBuilder<'a> { pub(crate) elf: &'a [u8], pub(crate) stdin: SP1Stdin, diff --git a/crates/sdk/src/cpu/mod.rs b/crates/sdk/src/cpu/mod.rs index 2d0d9fbe66..ae93a4b3a8 100644 --- a/crates/sdk/src/cpu/mod.rs +++ b/crates/sdk/src/cpu/mod.rs @@ -91,6 +91,7 @@ impl CpuProver { context_builder: SP1ContextBuilder::default(), core_opts: SP1CoreOpts::default(), recursion_opts: SP1CoreOpts::recursion(), + mock: self.mock, } } diff --git a/crates/sdk/src/cpu/prove.rs b/crates/sdk/src/cpu/prove.rs index 51f097830e..0db7f13b2e 100644 --- a/crates/sdk/src/cpu/prove.rs +++ b/crates/sdk/src/cpu/prove.rs @@ -23,6 +23,7 @@ pub struct CpuProveBuilder<'a> { pub(crate) stdin: SP1Stdin, pub(crate) core_opts: SP1CoreOpts, pub(crate) recursion_opts: SP1CoreOpts, + pub(crate) mock: bool, } impl<'a> CpuProveBuilder<'a> { @@ -208,7 +209,8 @@ impl<'a> CpuProveBuilder<'a> { /// ``` pub fn run(self) -> Result { // Get the arguments. - let Self { prover, mode, pk, stdin, mut context_builder, core_opts, recursion_opts } = self; + let Self { prover, mode, pk, stdin, mut context_builder, core_opts, recursion_opts, mock } = + self; let opts = SP1ProverOpts { core_opts, recursion_opts }; let context = context_builder.build(); @@ -216,6 +218,10 @@ impl<'a> CpuProveBuilder<'a> { crate::utils::sp1_dump(&pk.elf, &stdin); // Run the prover. - prover.prove_impl(pk, &stdin, opts, context, mode) + if !mock { + prover.prove_impl(pk, &stdin, opts, context, mode) + } else { + prover.mock_prove_impl(pk, stdin, mode) + } } } diff --git a/crates/sdk/src/install.rs b/crates/sdk/src/install.rs index ad3eba0498..344b99ff8f 100644 --- a/crates/sdk/src/install.rs +++ b/crates/sdk/src/install.rs @@ -7,7 +7,7 @@ use std::path::PathBuf; #[cfg(any(feature = "network", feature = "network"))] use { - crate::block_on, + crate::utils::block_on, futures::StreamExt, indicatif::{ProgressBar, ProgressStyle}, reqwest::Client, diff --git a/crates/sdk/src/lib.rs b/crates/sdk/src/lib.rs index 3bce2f600f..fa1f46fa1a 100644 --- a/crates/sdk/src/lib.rs +++ b/crates/sdk/src/lib.rs @@ -34,7 +34,7 @@ pub mod install; pub mod network; pub mod proof; pub mod prover; -pub(crate) mod utils; +pub mod utils; // Re-export the client. pub use crate::client::ProverClient; @@ -65,7 +65,7 @@ pub use sp1_prover::{ }; // Re-export the utilities. -pub use utils::{block_on, setup_logger}; +pub use utils::setup_logger; #[cfg(test)] mod tests { diff --git a/crates/sdk/src/network/builder.rs b/crates/sdk/src/network/builder.rs index 826e993938..b72673a513 100644 --- a/crates/sdk/src/network/builder.rs +++ b/crates/sdk/src/network/builder.rs @@ -17,7 +17,7 @@ impl NetworkProverBuilder { /// /// # Details /// Sets the private key that will be used sign requests sent to the network. By default, the - /// private key is read from the `SUCCINCT_PRIVATE_KEY` environment variable. + /// private key is read from the `NETWORK_PRIVATE_KEY` environment variable. /// /// # Example /// ```rust,no_run @@ -34,7 +34,7 @@ impl NetworkProverBuilder { /// /// # Details /// The URL determintes the network that the client will connect to. By default, the URL is - /// read from the `SUCCINCT_RPC_URL` environment variable. + /// read from the `NETWORK_RPC_URL` environment variable. /// /// # Example /// ```rust,no_run @@ -51,7 +51,7 @@ impl NetworkProverBuilder { /// /// # Details /// This method will build a [NetworkProver] with the given parameters. If the private key is - /// not provided, the method will look for the `SP1_PRIVATE_KEY` environment variable. + /// not provided, the method will look for the `NETWORK_PRIVATE_KEY` environment variable. /// /// # Example /// ```rust,no_run diff --git a/crates/sdk/src/network/prove.rs b/crates/sdk/src/network/prove.rs index 29ce11186a..f84b971dd5 100644 --- a/crates/sdk/src/network/prove.rs +++ b/crates/sdk/src/network/prove.rs @@ -8,7 +8,9 @@ use anyhow::Result; use sp1_core_machine::io::SP1Stdin; use sp1_prover::SP1ProvingKey; -use crate::{block_on, utils::sp1_dump, NetworkProver, SP1ProofMode, SP1ProofWithPublicValues}; +use crate::{ + utils::block_on, utils::sp1_dump, NetworkProver, SP1ProofMode, SP1ProofWithPublicValues, +}; use super::proto::network::FulfillmentStrategy; @@ -184,7 +186,15 @@ impl<'a> NetworkProveBuilder<'a> { /// .unwrap(); /// ``` pub fn run(self) -> Result { - let Self { prover, mode, pk, stdin, timeout, strategy, skip_simulation } = self; + let Self { prover, mode, pk, stdin, timeout, strategy, mut skip_simulation } = self; + + // Check for deprecated environment variable + if let Ok(val) = std::env::var("SKIP_SIMULATION") { + eprintln!( + "Warning: SKIP_SIMULATION environment variable is deprecated. Please use .skip_simulation() instead." + ); + skip_simulation = matches!(val.to_lowercase().as_str(), "true" | "1"); + } sp1_dump(&pk.elf, &stdin); @@ -205,7 +215,15 @@ impl<'a> NetworkProveBuilder<'a> { /// .unwrap(); /// ``` pub async fn run_async(self) -> Result { - let Self { prover, mode, pk, stdin, timeout, strategy, skip_simulation } = self; + let Self { prover, mode, pk, stdin, timeout, strategy, mut skip_simulation } = self; + + // Check for deprecated environment variable + if let Ok(val) = std::env::var("SKIP_SIMULATION") { + eprintln!( + "Warning: SKIP_SIMULATION environment variable is deprecated. Please use .skip_simulation() instead." + ); + skip_simulation = matches!(val.to_lowercase().as_str(), "true" | "1"); + } sp1_dump(&pk.elf, &stdin); diff --git a/crates/sdk/src/network/prover.rs b/crates/sdk/src/network/prover.rs index 882b961b82..ef1033e4a6 100644 --- a/crates/sdk/src/network/prover.rs +++ b/crates/sdk/src/network/prover.rs @@ -23,7 +23,7 @@ use sp1_core_machine::io::SP1Stdin; use sp1_prover::{components::CpuProverComponents, SP1Prover, SP1_CIRCUIT_VERSION}; use tonic::Code; -use {crate::block_on, tokio::time::sleep}; +use {crate::utils::block_on, tokio::time::sleep}; /// An implementation of [crate::ProverClient] that can generate proofs on a remote RPC server. pub struct NetworkProver { diff --git a/crates/sdk/src/utils.rs b/crates/sdk/src/utils.rs index 59ed4a9b50..347c3bb02f 100644 --- a/crates/sdk/src/utils.rs +++ b/crates/sdk/src/utils.rs @@ -18,8 +18,8 @@ pub(crate) fn sp1_dump(elf: &[u8], stdin: &SP1Stdin) { /// /// If we're already in a tokio runtime, we'll block in place. Otherwise, we'll create a new /// runtime. -#[cfg(any(feature = "network", feature = "network"))] -pub fn block_on(fut: impl std::future::Future) -> T { +#[cfg(feature = "network")] +pub(crate) fn block_on(fut: impl std::future::Future) -> T { use tokio::task::block_in_place; // Handle case if we're already in an tokio runtime. From fa1122260d25a6c3fd389e2b7bf6439330bbda97 Mon Sep 17 00:00:00 2001 From: jtguibas Date: Thu, 19 Dec 2024 09:29:43 +0000 Subject: [PATCH 23/36] fix failing test --- crates/sdk/src/proof.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/crates/sdk/src/proof.rs b/crates/sdk/src/proof.rs index 913ba55363..e8fd26983b 100644 --- a/crates/sdk/src/proof.rs +++ b/crates/sdk/src/proof.rs @@ -162,7 +162,9 @@ mod tests { } #[test] - #[should_panic(expected = "only Plonk and Groth16 proofs are verifiable onchain")] + #[should_panic( + expected = "Proof type Discriminant(0) is not supported for onchain verification. Only Plonk and Groth16 proofs are verifiable onchain" + )] fn test_core_proof_bytes_unimplemented() { let core_proof = SP1ProofWithPublicValues { proof: SP1Proof::Core(vec![]), From 8ed31540ec9bae0d1da7ffbdcd93b0f3289b8f2c Mon Sep 17 00:00:00 2001 From: jtguibas Date: Thu, 19 Dec 2024 10:46:03 +0000 Subject: [PATCH 24/36] prove --- crates/core/executor/src/profiler.rs | 21 +++++++++++---------- crates/sdk/src/cpu/execute.rs | 2 +- crates/sdk/src/cpu/prove.rs | 2 +- crates/sdk/src/env/mod.rs | 2 +- crates/sdk/src/env/prove.rs | 2 +- crates/sdk/src/network/builder.rs | 2 +- crates/sdk/src/network/prove.rs | 2 +- 7 files changed, 17 insertions(+), 16 deletions(-) diff --git a/crates/core/executor/src/profiler.rs b/crates/core/executor/src/profiler.rs index a3066455cb..4288224b30 100644 --- a/crates/core/executor/src/profiler.rs +++ b/crates/core/executor/src/profiler.rs @@ -197,10 +197,12 @@ impl Profiler { } /// Simple check to makes sure we have valid main function that lasts - /// for most of the exeuction time. + /// for most of the execution time. fn check_samples(&self) { let Some(main_idx) = self.main_idx else { - eprintln!("Warning: The `main` function is not present in the Elf file, this is likely caused by using the wrong Elf file"); + eprintln!( + "Warning: The `main` function is not present in the Elf file, this is likely caused by using the wrong Elf file" + ); return; }; @@ -208,20 +210,19 @@ impl Profiler { self.samples .iter() .filter(|s| { - s.stack.iter().any(|f| { - if let Frame::Label(idx) = f { - *idx == main_idx - } else { - false - } - }) + s.stack + .iter() + .any(|f| if let Frame::Label(idx) = f { *idx == main_idx } else { false }) }) .count(); #[allow(clippy::cast_precision_loss)] let main_ratio = main_count as f64 / self.samples.len() as f64; if main_ratio < 0.9 { - eprintln!("Warning: This trace appears to be invalid. The `main` function is present in only {:.2}% of the samples, this is likely caused by the using the wrong Elf file", main_ratio * 100.0); + eprintln!( + "Warning: This trace appears to be invalid. The `main` function is present in only {:.2}% of the samples, this is likely caused by the using the wrong Elf file", + main_ratio * 100.0 + ); } } } diff --git a/crates/sdk/src/cpu/execute.rs b/crates/sdk/src/cpu/execute.rs index 3f21b616e3..307421bdff 100644 --- a/crates/sdk/src/cpu/execute.rs +++ b/crates/sdk/src/cpu/execute.rs @@ -80,7 +80,7 @@ impl<'a> CpuExecuteBuilder<'a> { /// # Details /// If set to `true`, the executor will skip the deferred proof verification step. This is useful /// for reducing the execution time of the program and optimistically assuming that the - /// deferred proofs are corect. + /// deferred proofs are correct. /// /// # Example /// ```rust,no_run diff --git a/crates/sdk/src/cpu/prove.rs b/crates/sdk/src/cpu/prove.rs index 0db7f13b2e..3fb8a8f14d 100644 --- a/crates/sdk/src/cpu/prove.rs +++ b/crates/sdk/src/cpu/prove.rs @@ -50,7 +50,7 @@ impl<'a> CpuProveBuilder<'a> { /// # Details /// This mode produces a proof that is of constant size, regardless of the number of cycles. It /// takes longer to prove than [SP1ProofKind::Core] due to the need to recursively aggregate - /// proofs inot a single proof. + /// proofs into a single proof. /// /// # Example /// ```rust,no_run diff --git a/crates/sdk/src/env/mod.rs b/crates/sdk/src/env/mod.rs index d51e79f7bb..717e97d833 100644 --- a/crates/sdk/src/env/mod.rs +++ b/crates/sdk/src/env/mod.rs @@ -23,7 +23,7 @@ use crate::{SP1ProofMode, SP1ProofWithPublicValues}; /// A prover that can execute programs and generate proofs with a different implementation based on /// the value of certain environment variables. /// -/// The enviroment variables are described in [EnvProver::new]. +/// The environment variables are described in [EnvProver::new]. pub struct EnvProver { pub(crate) prover: Box>, } diff --git a/crates/sdk/src/env/prove.rs b/crates/sdk/src/env/prove.rs index db6bd4d709..4dbbfadb54 100644 --- a/crates/sdk/src/env/prove.rs +++ b/crates/sdk/src/env/prove.rs @@ -37,7 +37,7 @@ impl<'a> EnvProveBuilder<'a> { /// # Details /// This mode produces a proof that is of constant size, regardless of the number of cycles. It /// takes longer to prove than [SP1ProofMode::Core] due to the need to recursively aggregate - /// proofs inot a single proof. + /// proofs into a single proof. /// /// # Example /// ```rust,no_run diff --git a/crates/sdk/src/network/builder.rs b/crates/sdk/src/network/builder.rs index b72673a513..5ad05af6d8 100644 --- a/crates/sdk/src/network/builder.rs +++ b/crates/sdk/src/network/builder.rs @@ -33,7 +33,7 @@ impl NetworkProverBuilder { /// Sets the remote procedure call URL. /// /// # Details - /// The URL determintes the network that the client will connect to. By default, the URL is + /// The URL determines the network that the client will connect to. By default, the URL is /// read from the `NETWORK_RPC_URL` environment variable. /// /// # Example diff --git a/crates/sdk/src/network/prove.rs b/crates/sdk/src/network/prove.rs index f84b971dd5..f7305e5937 100644 --- a/crates/sdk/src/network/prove.rs +++ b/crates/sdk/src/network/prove.rs @@ -49,7 +49,7 @@ impl<'a> NetworkProveBuilder<'a> { /// # Details /// This mode produces a proof that is of constant size, regardless of the number of cycles. It /// takes longer to prove than [SP1ProofMode::Core] due to the need to recursively aggregate - /// proofs inot a single proof. + /// proofs into a single proof. /// /// # Example /// ```rust,no_run From 4d4025fee9dac0af088461fc114adf7426cd8b4b Mon Sep 17 00:00:00 2001 From: jtguibas Date: Thu, 19 Dec 2024 10:46:52 +0000 Subject: [PATCH 25/36] cargo fmt --- crates/core/executor/src/profiler.rs | 18 +++++++++--------- crates/prover/scripts/fibonacci_sweep.rs | 7 +++---- crates/sdk/src/network/prover.rs | 6 +++++- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/crates/core/executor/src/profiler.rs b/crates/core/executor/src/profiler.rs index 4288224b30..416993bb3c 100644 --- a/crates/core/executor/src/profiler.rs +++ b/crates/core/executor/src/profiler.rs @@ -206,15 +206,15 @@ impl Profiler { return; }; - let main_count = - self.samples - .iter() - .filter(|s| { - s.stack - .iter() - .any(|f| if let Frame::Label(idx) = f { *idx == main_idx } else { false }) - }) - .count(); + let main_count = self + .samples + .iter() + .filter(|s| { + s.stack + .iter() + .any(|f| if let Frame::Label(idx) = f { *idx == main_idx } else { false }) + }) + .count(); #[allow(clippy::cast_precision_loss)] let main_ratio = main_count as f64 / self.samples.len() as f64; diff --git a/crates/prover/scripts/fibonacci_sweep.rs b/crates/prover/scripts/fibonacci_sweep.rs index 67a3cc0922..6d09967a54 100644 --- a/crates/prover/scripts/fibonacci_sweep.rs +++ b/crates/prover/scripts/fibonacci_sweep.rs @@ -46,10 +46,9 @@ fn main() { let elf = test_artifacts::FIBONACCI_ELF; let (pk, vk) = prover.setup(elf); - let mut lines = vec![ - "iterations,shard_size,batch_size,leaf_proving_duration,recursion_proving_duration" - .to_string(), - ]; + let mut lines = + vec!["iterations,shard_size,batch_size,leaf_proving_duration,recursion_proving_duration" + .to_string()]; for (shard_size, iterations, batch_size) in iproduct!(shard_sizes, iterations, batch_sizes) { tracing::info!( "running: shard_size={}, iterations={}, batch_size={}", diff --git a/crates/sdk/src/network/prover.rs b/crates/sdk/src/network/prover.rs index ef1033e4a6..09c8908759 100644 --- a/crates/sdk/src/network/prover.rs +++ b/crates/sdk/src/network/prover.rs @@ -187,7 +187,11 @@ impl NetworkProver { } let remaining_timeout = timeout.map(|t| { let elapsed = start_time.elapsed(); - if elapsed < t { t - elapsed } else { Duration::from_secs(0) } + if elapsed < t { + t - elapsed + } else { + Duration::from_secs(0) + } }); // Get status with retries. From c3ecc727b63595851c521cea97b0bea07e84b1d3 Mon Sep 17 00:00:00 2001 From: jtguibas Date: Thu, 19 Dec 2024 10:50:51 +0000 Subject: [PATCH 26/36] cargo --- examples/Cargo.toml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/examples/Cargo.toml b/examples/Cargo.toml index 3837e2a222..73bcf63be5 100644 --- a/examples/Cargo.toml +++ b/examples/Cargo.toml @@ -66,11 +66,7 @@ serde_json = "1.0.132" tracing = "0.1.40" [patch.crates-io] -<<<<<<< HEAD -curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "curve25519_dalek-v4.1.3-patch-v1" } -======= curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "patch-v4.1.3-v3.4.0" } ->>>>>>> origin/main curve25519-dalek-ng = { git = "https://github.com/sp1-patches/curve25519-dalek-ng", tag = "curve25519_dalek_ng-v4.1.1-patch-v1" } ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", branch = "umadayal/secp256r1" } ed25519-consensus = { git = "https://github.com/sp1-patches/ed25519-consensus", tag = "ed25519_consensus-v2.1.0-patch-v1" } From 7aab122d399160b14406eb1461e3376255bb362c Mon Sep 17 00:00:00 2001 From: jtguibas Date: Thu, 19 Dec 2024 10:56:35 +0000 Subject: [PATCH 27/36] from env --- examples/fibonacci/script/bin/groth16_bn254.rs | 10 +--------- examples/fibonacci/script/bin/plonk_bn254.rs | 13 +------------ 2 files changed, 2 insertions(+), 21 deletions(-) diff --git a/examples/fibonacci/script/bin/groth16_bn254.rs b/examples/fibonacci/script/bin/groth16_bn254.rs index 4d8228f55a..98e9fa96af 100644 --- a/examples/fibonacci/script/bin/groth16_bn254.rs +++ b/examples/fibonacci/script/bin/groth16_bn254.rs @@ -1,8 +1,4 @@ -<<<<<<< HEAD use sp1_sdk::{include_elf, utils, HashableKey, ProverClient, SP1Stdin}; -======= -use sp1_sdk::{utils, HashableKey, ProverClient, SP1Stdin}; ->>>>>>> origin/main /// The ELF we want to execute inside the zkVM. const ELF: &[u8] = include_elf!("fibonacci-program"); @@ -18,11 +14,7 @@ fn main() { stdin.write(&n); // Set up the pk and vk. -<<<<<<< HEAD - let client = ProverClient::env(); -======= - let client = ProverClient::new(); ->>>>>>> origin/main + let client = ProverClient::from_env(); let (pk, vk) = client.setup(ELF); println!("vk: {:?}", vk.bytes32()); diff --git a/examples/fibonacci/script/bin/plonk_bn254.rs b/examples/fibonacci/script/bin/plonk_bn254.rs index 5f1c404dc4..48f9c51a37 100644 --- a/examples/fibonacci/script/bin/plonk_bn254.rs +++ b/examples/fibonacci/script/bin/plonk_bn254.rs @@ -1,14 +1,7 @@ -<<<<<<< HEAD use sp1_sdk::{include_elf, utils, HashableKey, ProverClient, SP1Stdin}; /// The ELF we want to execute inside the zkVM. const ELF: &[u8] = include_elf!("fibonacci-program"); -======= -use sp1_sdk::{utils, HashableKey, ProverClient, SP1Stdin}; - -/// The ELF we want to execute inside the zkVM. -const ELF: &[u8] = include_bytes!("../../program/elf/riscv32im-succinct-zkvm-elf"); ->>>>>>> origin/main fn main() { // Setup logging. @@ -21,11 +14,7 @@ fn main() { stdin.write(&n); // Set up the pk and vk. -<<<<<<< HEAD - let client = ProverClient::env(); -======= - let client = ProverClient::new(); ->>>>>>> origin/main + let client = ProverClient::from_env(); let (pk, vk) = client.setup(ELF); println!("vk: {:?}", vk.bytes32()); From 6b68a6b9eebf68cd41248d2aa1ee2a28ff2eb57a Mon Sep 17 00:00:00 2001 From: jtguibas Date: Thu, 19 Dec 2024 11:04:05 +0000 Subject: [PATCH 28/36] fix examples --- .../generating-proofs/prover-network/usage.md | 2 +- .../docs/verification/onchain/solidity-sdk.md | 2 +- crates/sdk/src/env/mod.rs | 2 +- examples/Cargo.lock | 3166 ++--------------- examples/aggregation/script/src/main.rs | 2 +- examples/bls12381/script/src/main.rs | 2 +- examples/bn254/script/src/main.rs | 2 +- examples/chess/script/src/main.rs | 2 +- examples/cycle-tracking/script/src/main.rs | 7 +- examples/fibonacci/script/bin/compressed.rs | 2 +- examples/fibonacci/script/bin/execute.rs | 2 +- examples/fibonacci/script/src/main.rs | 2 +- examples/groth16/script/src/main.rs | 12 +- examples/io/script/src/main.rs | 2 +- examples/is-prime/script/src/main.rs | 2 +- examples/json/script/src/main.rs | 2 +- examples/patch-testing/script/src/main.rs | 2 +- examples/regex/script/src/main.rs | 2 +- examples/rsa/script/src/main.rs | 2 +- examples/rsp/script/src/main.rs | 2 +- examples/ssz-withdrawals/script/src/main.rs | 2 +- examples/tendermint/script/src/main.rs | 2 +- 22 files changed, 253 insertions(+), 2970 deletions(-) diff --git a/book/docs/generating-proofs/prover-network/usage.md b/book/docs/generating-proofs/prover-network/usage.md index 6d20421b43..388c61efdb 100644 --- a/book/docs/generating-proofs/prover-network/usage.md +++ b/book/docs/generating-proofs/prover-network/usage.md @@ -8,7 +8,7 @@ To use the prover network to generate a proof, you can run your script that uses ```rust // Generate the proof for the given program. -let client = ProverClient::env(); +let client = ProverClient::from_env(); let (pk, vk) = client.setup(ELF); let mut proof = client.prove(&pk, stdin).run().unwrap(); ``` diff --git a/book/docs/verification/onchain/solidity-sdk.md b/book/docs/verification/onchain/solidity-sdk.md index 768006db8d..93a241ed96 100644 --- a/book/docs/verification/onchain/solidity-sdk.md +++ b/book/docs/verification/onchain/solidity-sdk.md @@ -81,7 +81,7 @@ fn main() { sp1_sdk::utils::setup_logger(); // Setup the prover client. - let client = ProverClient::env(); + let client = ProverClient::from_env(); // Setup the program. let (_, vk) = client.setup(FIBONACCI_ELF); diff --git a/crates/sdk/src/env/mod.rs b/crates/sdk/src/env/mod.rs index 717e97d833..0b30628ec0 100644 --- a/crates/sdk/src/env/mod.rs +++ b/crates/sdk/src/env/mod.rs @@ -126,7 +126,7 @@ impl EnvProver { /// use sp1_sdk::{ProverClient, SP1Stdin}; /// /// let elf = test_artifacts::FIBONACCI_ELF; - /// let client = ProverClient::env(); + /// let client = ProverClient::from_env(); /// let (pk, vk) = client.setup(elf); /// let mut stdin = SP1Stdin::new(); /// stdin.write(&10usize); diff --git a/examples/Cargo.lock b/examples/Cargo.lock index 690fcdbc2b..7e8cbf164b 100644 --- a/examples/Cargo.lock +++ b/examples/Cargo.lock @@ -3,19 +3,6 @@ version = 3 [[package]] -<<<<<<< HEAD -======= -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" -dependencies = [ - "lazy_static", - "regex", -] - -[[package]] ->>>>>>> origin/main name = "addchain" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -42,20 +29,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] -<<<<<<< HEAD -======= -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - -[[package]] ->>>>>>> origin/main name = "aggregation-program" version = "1.1.0" dependencies = [ @@ -95,15 +68,9 @@ dependencies = [ [[package]] name = "allocator-api2" -<<<<<<< HEAD -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" -======= version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" ->>>>>>> origin/main [[package]] name = "alloy-chains" @@ -111,11 +78,7 @@ version = "0.1.47" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18c5c520273946ecf715c0010b4e3503d7eba9893cd9ce6b7fff5654c4a3c470" dependencies = [ -<<<<<<< HEAD - "alloy-primitives 0.8.11", -======= "alloy-primitives 0.8.14", ->>>>>>> origin/main "alloy-rlp", "num_enum 0.7.3", "serde", @@ -128,30 +91,22 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "629b62e38d471cc15fea534eb7283d2f8a4e8bdb1811bcc5d66dda6cfce6fae1" dependencies = [ -<<<<<<< HEAD "alloy-eips 0.3.6", - "alloy-primitives 0.8.11", - "alloy-rlp", - "alloy-serde 0.3.6", -======= - "alloy-eips", "alloy-primitives 0.8.14", "alloy-rlp", - "alloy-serde", ->>>>>>> origin/main + "alloy-serde 0.3.6", "c-kzg", "serde", ] [[package]] -<<<<<<< HEAD name = "alloy-consensus" version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41ed961a48297c732a5d97ee321aa8bb5009ecadbcb077d8bec90cb54e651629" dependencies = [ "alloy-eips 0.5.4", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "alloy-serde 0.5.4", "auto_impl", @@ -161,18 +116,12 @@ dependencies = [ ] [[package]] -======= ->>>>>>> origin/main name = "alloy-eip2930" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" dependencies = [ -<<<<<<< HEAD - "alloy-primitives 0.8.11", -======= "alloy-primitives 0.8.14", ->>>>>>> origin/main "alloy-rlp", "serde", ] @@ -183,41 +132,33 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea59dc42102bc9a1905dc57901edc6dd48b9f38115df86c7d252acba70d71d04" dependencies = [ -<<<<<<< HEAD - "alloy-primitives 0.8.11", -======= "alloy-primitives 0.8.14", ->>>>>>> origin/main "alloy-rlp", "k256", "serde", ] [[package]] -<<<<<<< HEAD name = "alloy-eip7702" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64ffc577390ce50234e02d841214b3dc0bea6aaaae8e04bbf3cb82e9a45da9eb" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "derive_more 1.0.0", "serde", ] [[package]] -======= ->>>>>>> origin/main name = "alloy-eips" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f923dd5fca5f67a43d81ed3ebad0880bd41f6dd0ada930030353ac356c54cd0f" dependencies = [ "alloy-eip2930", -<<<<<<< HEAD "alloy-eip7702 0.1.1", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "alloy-serde 0.3.6", "c-kzg", @@ -235,15 +176,9 @@ checksum = "b69e06cf9c37be824b9d26d6d101114fdde6af0c87de2828b414c05c4b3daa71" dependencies = [ "alloy-eip2930", "alloy-eip7702 0.3.2", - "alloy-primitives 0.8.11", - "alloy-rlp", - "alloy-serde 0.5.4", -======= - "alloy-eip7702", "alloy-primitives 0.8.14", "alloy-rlp", - "alloy-serde", ->>>>>>> origin/main + "alloy-serde 0.5.4", "c-kzg", "derive_more 1.0.0", "once_cell", @@ -257,48 +192,34 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a7a18afb0b318616b6b2b0e2e7ac5529d32a966c673b48091c9919e284e6aca" dependencies = [ -<<<<<<< HEAD - "alloy-primitives 0.8.11", - "alloy-serde 0.3.6", -======= "alloy-primitives 0.8.14", - "alloy-serde", ->>>>>>> origin/main + "alloy-serde 0.3.6", "serde", ] [[package]] name = "alloy-json-abi" -<<<<<<< HEAD -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded610181f3dad5810f6ff12d1a99994cf9b42d2fcb7709029352398a5da5ae6" -dependencies = [ - "alloy-primitives 0.8.11", -======= version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac4b22b3e51cac09fd2adfcc73b55f447b4df669f983c13f7894ec82b607c63f" dependencies = [ "alloy-primitives 0.8.14", ->>>>>>> origin/main "alloy-sol-type-parser", "serde", "serde_json", ] [[package]] -<<<<<<< HEAD name = "alloy-json-rpc" version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af5979e0d5a7bf9c7eb79749121e8256e59021af611322aee56e77e20776b4b3" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-sol-types", "serde", "serde_json", - "thiserror 1.0.68", + "thiserror 1.0.69", "tracing", ] @@ -312,7 +233,7 @@ dependencies = [ "alloy-eips 0.5.4", "alloy-json-rpc", "alloy-network-primitives 0.5.4", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rpc-types-eth 0.5.4", "alloy-serde 0.5.4", "alloy-signer", @@ -320,20 +241,17 @@ dependencies = [ "async-trait", "auto_impl", "futures-utils-wasm", - "thiserror 1.0.68", + "thiserror 1.0.69", ] [[package]] -======= ->>>>>>> origin/main name = "alloy-network-primitives" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94ad40869867ed2d9cd3842b1e800889e5b49e6b92da346e93862b4a741bedf3" dependencies = [ -<<<<<<< HEAD "alloy-eips 0.3.6", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-serde 0.3.6", "serde", ] @@ -346,13 +264,8 @@ checksum = "514f70ee2a953db21631cd817b13a1571474ec77ddc03d47616d5e8203489fde" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", - "alloy-primitives 0.8.11", - "alloy-serde 0.5.4", -======= - "alloy-eips", "alloy-primitives 0.8.14", - "alloy-serde", ->>>>>>> origin/main + "alloy-serde 0.5.4", "serde", ] @@ -378,39 +291,11 @@ dependencies = [ "tiny-keccak", ] -[[package]] -name = "alloy-primitives" -<<<<<<< HEAD -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd58d377699e6cfeab52c4a9d28bdc4ef37e2bd235ff2db525071fe37a2e9af5" -======= -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" -dependencies = [ - "alloy-rlp", - "bytes", - "cfg-if", - "const-hex", - "derive_more 0.99.18", - "hex-literal", - "itoa", - "k256", - "keccak-asm", - "proptest", - "rand 0.8.5", - "ruint", - "serde", - "tiny-keccak", -] - [[package]] name = "alloy-primitives" version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9db948902dfbae96a73c2fbf1f7abec62af034ab883e4c777c3fd29702bd6e2c" ->>>>>>> origin/main dependencies = [ "alloy-rlp", "bytes", @@ -419,11 +304,7 @@ dependencies = [ "derive_more 1.0.0", "foldhash", "getrandom", -<<<<<<< HEAD - "hashbrown 0.15.1", -======= "hashbrown 0.15.2", ->>>>>>> origin/main "hex-literal", "indexmap 2.6.0", "itoa", @@ -458,11 +339,7 @@ checksum = "2b09cae092c27b6f1bde952653a22708691802e57bfef4a2973b80bea21efd3f" dependencies = [ "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -471,13 +348,8 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64333d639f2a0cf73491813c629a405744e16343a4bc5640931be707c345ecc5" dependencies = [ -<<<<<<< HEAD "alloy-rpc-types-eth 0.3.6", "alloy-serde 0.3.6", -======= - "alloy-rpc-types-eth", - "alloy-serde", ->>>>>>> origin/main "serde", ] @@ -487,23 +359,13 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83aa984386deda02482660aa31cb8ca1e63d533f1c31a52d7d181ac5ec68e9b8" dependencies = [ -<<<<<<< HEAD "alloy-consensus 0.3.6", "alloy-eips 0.3.6", "alloy-network-primitives 0.3.6", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "alloy-serde 0.3.6", "alloy-sol-types", -======= - "alloy-consensus", - "alloy-eips", - "alloy-network-primitives", - "alloy-primitives 0.8.14", - "alloy-rlp", - "alloy-serde", - "alloy-sol-types 0.8.14", ->>>>>>> origin/main "cfg-if", "derive_more 1.0.0", "hashbrown 0.14.5", @@ -513,7 +375,6 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD name = "alloy-rpc-types-eth" version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -522,7 +383,7 @@ dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", "alloy-network-primitives 0.5.4", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "alloy-serde 0.5.4", "alloy-sol-types", @@ -533,30 +394,23 @@ dependencies = [ ] [[package]] -======= ->>>>>>> origin/main name = "alloy-serde" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "731f75ec5d383107fd745d781619bd9cedf145836c51ecb991623d41278e71fa" dependencies = [ -<<<<<<< HEAD - "alloy-primitives 0.8.11", -======= "alloy-primitives 0.8.14", ->>>>>>> origin/main "serde", "serde_json", ] [[package]] -<<<<<<< HEAD name = "alloy-serde" version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "028e72eaa9703e4882344983cfe7636ce06d8cce104a78ea62fd19b46659efc4" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "serde", "serde_json", ] @@ -567,12 +421,12 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "592c185d7100258c041afac51877660c7bf6213447999787197db4842f0e938e" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "async-trait", "auto_impl", "elliptic-curve", "k256", - "thiserror 1.0.68", + "thiserror 1.0.69", ] [[package]] @@ -583,38 +437,12 @@ checksum = "6614f02fc1d5b079b2a4a5320018317b506fd0a6d67c1fd5542a71201724986c" dependencies = [ "alloy-consensus 0.5.4", "alloy-network", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-signer", "async-trait", "k256", "rand 0.8.5", - "thiserror 1.0.68", -] - -[[package]] -name = "alloy-sol-macro" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a1b42ac8f45e2f49f4bcdd72cbfde0bb148f5481d403774ffa546e48b83efc1" -dependencies = [ - "alloy-sol-macro-expander", - "alloy-sol-macro-input", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.87", -======= -name = "alloy-sol-macro" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b40397ddcdcc266f59f959770f601ce1280e699a91fc1862f29cef91707cd09" -dependencies = [ - "alloy-sol-macro-expander 0.7.7", - "alloy-sol-macro-input 0.7.7", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.90", + "thiserror 1.0.69", ] [[package]] @@ -623,38 +451,12 @@ version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3bfd7853b65a2b4f49629ec975fee274faf6dff15ab8894c620943398ef283c0" dependencies = [ - "alloy-sol-macro-expander 0.8.14", - "alloy-sol-macro-input 0.8.14", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.90", ->>>>>>> origin/main -] - -[[package]] -name = "alloy-sol-macro-expander" -<<<<<<< HEAD -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06318f1778e57f36333e850aa71bd1bb5e560c10279e236622faae0470c50412" -dependencies = [ + "alloy-sol-macro-expander", "alloy-sol-macro-input", -======= -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "867a5469d61480fea08c7333ffeca52d5b621f5ca2e44f271b117ec1fc9a0525" -dependencies = [ - "alloy-sol-macro-input 0.7.7", - "const-hex", - "heck", - "indexmap 2.6.0", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.90", - "syn-solidity 0.7.7", - "tiny-keccak", ] [[package]] @@ -663,47 +465,16 @@ version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82ec42f342d9a9261699f8078e57a7a4fda8aaa73c1a212ed3987080e6a9cd13" dependencies = [ - "alloy-sol-macro-input 0.8.14", ->>>>>>> origin/main + "alloy-sol-macro-input", "const-hex", "heck", "indexmap 2.6.0", "proc-macro-error2", "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", - "syn-solidity", -======= "syn 2.0.90", - "syn-solidity 0.8.14", ->>>>>>> origin/main - "tiny-keccak", -] - -[[package]] -name = "alloy-sol-macro-input" -<<<<<<< HEAD -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaebb9b0ad61a41345a22c9279975c0cdd231b97947b10d7aad1cf0a7181e4a5" -======= -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e482dc33a32b6fadbc0f599adea520bd3aaa585c141a80b404d0a3e3fa72528" ->>>>>>> origin/main -dependencies = [ - "const-hex", - "dunce", - "heck", - "proc-macro2", - "quote", -<<<<<<< HEAD - "syn 2.0.87", "syn-solidity", -======= - "syn 2.0.90", - "syn-solidity 0.7.7", + "tiny-keccak", ] [[package]] @@ -718,47 +489,19 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.90", - "syn-solidity 0.8.14", ->>>>>>> origin/main + "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -<<<<<<< HEAD -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12c71028bfbfec210e24106a542aad3def7caf1a70e2c05710e92a98481980d3" -======= version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac17c6e89a50fb4a758012e4b409d9a0ba575228e69b539fe37d7a1bd507ca4a" ->>>>>>> origin/main dependencies = [ "serde", "winnow 0.6.20", ] -[[package]] -name = "alloy-sol-types" -<<<<<<< HEAD -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374d7fb042d68ddfe79ccb23359de3007f6d4d53c13f703b64fb0db422132111" -dependencies = [ - "alloy-json-abi", - "alloy-primitives 0.8.11", - "alloy-sol-macro", -======= -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" -dependencies = [ - "alloy-primitives 0.7.7", - "alloy-sol-macro 0.7.7", - "const-hex", - "serde", -] - [[package]] name = "alloy-sol-types" version = "0.8.14" @@ -767,8 +510,7 @@ checksum = "c9dc0fffe397aa17628160e16b89f704098bf3c9d74d5d369ebc239575936de5" dependencies = [ "alloy-json-abi", "alloy-primitives 0.8.14", - "alloy-sol-macro 0.8.14", ->>>>>>> origin/main + "alloy-sol-macro", "const-hex", "serde", ] @@ -779,11 +521,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a46c9c4fdccda7982e7928904bd85fe235a0404ee3d7e197fff13d61eac8b4f" dependencies = [ -<<<<<<< HEAD - "alloy-primitives 0.8.11", -======= "alloy-primitives 0.8.14", ->>>>>>> origin/main "alloy-rlp", "derive_more 1.0.0", "hashbrown 0.14.5", @@ -1015,31 +753,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] -name = "async-trait" -version = "0.1.83" +name = "async-stream" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" dependencies = [ - "proc-macro2", - "quote", -<<<<<<< HEAD - "syn 2.0.87", + "async-stream-impl", + "futures-core", + "pin-project-lite", ] [[package]] -======= +name = "async-stream-impl" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" +dependencies = [ + "proc-macro2", + "quote", "syn 2.0.90", ] [[package]] -name = "async_io_stream" -version = "0.3.3" +name = "async-trait" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ - "futures", - "pharos", - "rustc_version 0.4.1", + "proc-macro2", + "quote", + "syn 2.0.90", ] [[package]] @@ -1049,7 +792,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] ->>>>>>> origin/main name = "aurora-engine-modexp" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1067,11 +809,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -1082,31 +820,18 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axum" -<<<<<<< HEAD -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504e3947307ac8326a5437504c517c4b56716c9d98fac0028c2acc7ca47d70ae" -======= version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" ->>>>>>> origin/main dependencies = [ "async-trait", "axum-core", "bytes", "futures-util", -<<<<<<< HEAD "http", "http-body", "http-body-util", "hyper", -======= - "http 1.1.0", - "http-body 1.0.1", - "http-body-util", - "hyper 1.5.1", ->>>>>>> origin/main "hyper-util", "itoa", "matchit", @@ -1119,13 +844,9 @@ dependencies = [ "serde_json", "serde_path_to_error", "serde_urlencoded", -<<<<<<< HEAD - "sync_wrapper 1.0.1", -======= "sync_wrapper 1.0.2", ->>>>>>> origin/main "tokio", - "tower", + "tower 0.5.1", "tower-layer", "tower-service", "tracing", @@ -1140,27 +861,32 @@ dependencies = [ "async-trait", "bytes", "futures-util", -<<<<<<< HEAD "http", "http-body", -======= - "http 1.1.0", - "http-body 1.0.1", ->>>>>>> origin/main "http-body-util", "mime", "pin-project-lite", "rustversion", -<<<<<<< HEAD - "sync_wrapper 1.0.1", -======= "sync_wrapper 1.0.2", ->>>>>>> origin/main "tower-layer", "tower-service", "tracing", ] +[[package]] +name = "backoff" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" +dependencies = [ + "futures-core", + "getrandom", + "instant", + "pin-project-lite", + "rand 0.8.5", + "tokio", +] + [[package]] name = "backtrace" version = "0.3.74" @@ -1185,15 +911,6 @@ checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" [[package]] name = "base64" -<<<<<<< HEAD -======= -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" ->>>>>>> origin/main version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" @@ -1211,15 +928,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] -<<<<<<< HEAD -======= -name = "bech32" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" - -[[package]] ->>>>>>> origin/main name = "bincode" version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1234,11 +942,7 @@ version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ -<<<<<<< HEAD "bitflags", -======= - "bitflags 2.6.0", ->>>>>>> origin/main "cexpr", "clang-sys", "itertools 0.13.0", @@ -1249,11 +953,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -1273,15 +973,6 @@ checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" [[package]] name = "bitflags" -<<<<<<< HEAD -======= -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" ->>>>>>> origin/main version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" @@ -1323,22 +1014,6 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD -======= -name = "blake3" -version = "1.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8ee0c1824c4dea5b5f81736aff91bae041d2c07ee1192bec91054e10e3e601e" -dependencies = [ - "arrayref", - "arrayvec 0.7.6", - "cc", - "cfg-if", - "constant_time_eq", -] - -[[package]] ->>>>>>> origin/main name = "block-buffer" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1391,22 +1066,14 @@ dependencies = [ [[package]] name = "bls12_381" version = "0.8.0" -<<<<<<< HEAD source = "git+https://github.com/sp1-patches/bls12_381?tag=bls12_381-v0.8.0-patch-v1#444e109287eb3adc581425e160ed6041622dda35" -======= -source = "git+https://github.com/sp1-patches/bls12_381?branch=patch-v0.8.0#7e1b79041253d6f7b591534613245b3f60e05d8b" ->>>>>>> origin/main dependencies = [ "cfg-if", "ff 0.13.0", "group 0.13.0", "pairing 0.23.0", "rand_core 0.6.4", -<<<<<<< HEAD - "sp1-lib 3.1.0", -======= "sp1-lib 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ->>>>>>> origin/main "subtle", ] @@ -1428,11 +1095,7 @@ version = "1.1.0" dependencies = [ "rand 0.8.5", "sp1-zkvm", -<<<<<<< HEAD "substrate-bn", -======= - "substrate-bn 0.6.0 (git+https://github.com/sp1-patches/bn?rev=43d854d45b5727b1ff2b9f346d728e785bb8395c)", ->>>>>>> origin/main ] [[package]] @@ -1444,19 +1107,6 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD -======= -name = "bs58" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "sha2 0.10.8", - "tinyvec", -] - -[[package]] ->>>>>>> origin/main name = "bumpalo" version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1470,15 +1120,9 @@ checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" [[package]] name = "bytemuck" -<<<<<<< HEAD -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" -======= version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a" ->>>>>>> origin/main dependencies = [ "bytemuck_derive", ] @@ -1491,11 +1135,7 @@ checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" dependencies = [ "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -1506,15 +1146,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -<<<<<<< HEAD -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" -======= version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" ->>>>>>> origin/main dependencies = [ "serde", ] @@ -1545,15 +1179,9 @@ dependencies = [ [[package]] name = "cargo-platform" -<<<<<<< HEAD -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" -======= version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" ->>>>>>> origin/main dependencies = [ "serde", ] @@ -1569,24 +1197,14 @@ dependencies = [ "semver 1.0.23", "serde", "serde_json", -<<<<<<< HEAD - "thiserror 1.0.68", -======= "thiserror 1.0.69", ->>>>>>> origin/main ] [[package]] name = "cc" -<<<<<<< HEAD -version = "1.1.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baee610e9452a8f6f0a1b6194ec09ff9e2d85dea54432acdae41aa0761c95d70" -======= version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc" ->>>>>>> origin/main dependencies = [ "jobserver", "libc", @@ -1656,19 +1274,6 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD -======= -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - -[[package]] ->>>>>>> origin/main name = "clang-sys" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1681,15 +1286,9 @@ dependencies = [ [[package]] name = "clap" -<<<<<<< HEAD -version = "4.5.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" -======= version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f" ->>>>>>> origin/main dependencies = [ "clap_builder", "clap_derive", @@ -1697,15 +1296,9 @@ dependencies = [ [[package]] name = "clap_builder" -<<<<<<< HEAD -version = "4.5.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" -======= version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec" ->>>>>>> origin/main dependencies = [ "anstream", "anstyle", @@ -1722,111 +1315,39 @@ dependencies = [ "heck", "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] name = "clap_lex" -<<<<<<< HEAD -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" -======= version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" [[package]] -name = "coins-bip32" -version = "0.8.7" +name = "colorchoice" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" -dependencies = [ - "bs58", - "coins-core", - "digest 0.10.7", - "hmac", - "k256", - "serde", - "sha2 0.10.8", - "thiserror 1.0.69", -] +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] -name = "coins-bip39" -version = "0.8.7" +name = "console" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" dependencies = [ - "bitvec", - "coins-bip32", - "hmac", - "once_cell", - "pbkdf2 0.12.2", - "rand 0.8.5", - "sha2 0.10.8", - "thiserror 1.0.69", + "encode_unicode", + "lazy_static", + "libc", + "unicode-width 0.1.14", + "windows-sys 0.52.0", ] [[package]] -name = "coins-core" -version = "0.8.7" +name = "const-hex" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" -dependencies = [ - "base64 0.21.7", - "bech32", - "bs58", - "digest 0.10.7", - "generic-array 0.14.7", - "hex", - "ripemd", - "serde", - "serde_derive", - "sha2 0.10.8", - "sha3", - "thiserror 1.0.69", -] ->>>>>>> origin/main - -[[package]] -name = "colorchoice" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" - -[[package]] -name = "console" -version = "0.15.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" -dependencies = [ - "encode_unicode", - "lazy_static", - "libc", -<<<<<<< HEAD - "unicode-width", -======= - "unicode-width 0.1.14", ->>>>>>> origin/main - "windows-sys 0.52.0", -] - -[[package]] -name = "const-hex" -<<<<<<< HEAD -version = "1.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0121754e84117e65f9d90648ee6aa4882a6e63110307ab73967a4c5e7e69e586" -======= -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" ->>>>>>> origin/main +checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" dependencies = [ "cfg-if", "cpufeatures", @@ -1869,19 +1390,16 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD -======= name = "core-foundation" -version = "0.9.4" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" dependencies = [ "core-foundation-sys", "libc", ] [[package]] ->>>>>>> origin/main name = "core-foundation-sys" version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1889,15 +1407,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -<<<<<<< HEAD -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" -======= version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" ->>>>>>> origin/main dependencies = [ "libc", ] @@ -1917,6 +1429,15 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" +[[package]] +name = "crossbeam-channel" +version = "0.5.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-deque" version = "0.8.5" @@ -1981,18 +1502,6 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD -======= -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher", -] - -[[package]] ->>>>>>> origin/main name = "ctrlc" version = "3.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2005,11 +1514,7 @@ dependencies = [ [[package]] name = "curve25519-dalek" version = "4.1.3" -<<<<<<< HEAD -source = "git+https://github.com/sp1-patches/curve25519-dalek?tag=curve25519_dalek-v4.1.3-patch-v1#dbdd0ffeea0ff767affc3f6765d1edbdaa9e2cb9" -======= source = "git+https://github.com/sp1-patches/curve25519-dalek?tag=patch-v4.1.3-v3.4.0#bfe63b8205f0b6baa0c1f4c71da33209f766e3e4" ->>>>>>> origin/main dependencies = [ "anyhow", "cfg-if", @@ -2018,11 +1523,7 @@ dependencies = [ "digest 0.10.7", "fiat-crypto", "rustc_version 0.4.1", -<<<<<<< HEAD - "sp1-lib 3.1.0", -======= "sp1-lib 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ->>>>>>> origin/main "subtle", "zeroize", ] @@ -2030,19 +1531,11 @@ dependencies = [ [[package]] name = "curve25519-dalek-derive" version = "0.1.1" -<<<<<<< HEAD -source = "git+https://github.com/sp1-patches/curve25519-dalek?tag=curve25519_dalek-v4.1.3-patch-v1#dbdd0ffeea0ff767affc3f6765d1edbdaa9e2cb9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -======= source = "git+https://github.com/sp1-patches/curve25519-dalek?tag=patch-v4.1.3-v3.4.0#bfe63b8205f0b6baa0c1f4c71da33209f766e3e4" dependencies = [ "proc-macro2", "quote", "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -2055,11 +1548,7 @@ dependencies = [ "cfg-if", "digest 0.9.0", "rand_core 0.6.4", -<<<<<<< HEAD - "sp1-lib 3.1.0", -======= "sp1-lib 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ->>>>>>> origin/main "subtle-ng", "zeroize", ] @@ -2074,11 +1563,7 @@ dependencies = [ "cfg-if", "digest 0.9.0", "rand_core 0.6.4", -<<<<<<< HEAD - "sp1-lib 3.1.0", -======= "sp1-lib 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ->>>>>>> origin/main "subtle-ng", "zeroize", ] @@ -2120,11 +1605,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -2135,11 +1616,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -2221,18 +1698,6 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD -name = "debugid" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" -dependencies = [ - "uuid", -] - -[[package]] -======= ->>>>>>> origin/main name = "der" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2285,11 +1750,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -2310,11 +1771,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main "unicode-xid", ] @@ -2368,11 +1825,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -2418,11 +1871,7 @@ dependencies = [ "elliptic-curve", "hex-literal", "signature", -<<<<<<< HEAD - "sp1-lib 3.1.0", -======= "sp1-lib 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ->>>>>>> origin/main "spki 0.7.3", ] @@ -2446,11 +1895,7 @@ dependencies = [ "rand_core 0.6.4", "serde", "sha2 0.9.9", -<<<<<<< HEAD - "thiserror 1.0.68", -======= "thiserror 1.0.69", ->>>>>>> origin/main "zeroize", ] @@ -2492,10 +1937,7 @@ dependencies = [ "ff 0.13.0", "generic-array 0.14.7", "group 0.13.0", -<<<<<<< HEAD "pem-rfc7468 0.7.0", -======= ->>>>>>> origin/main "pkcs8 0.10.2", "rand_core 0.6.4", "sec1", @@ -2509,38 +1951,8 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" -[[package]] -<<<<<<< HEAD -======= -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - [[package]] name = "enr" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" -dependencies = [ - "base64 0.21.7", - "bytes", - "hex", - "k256", - "log", - "rand 0.8.5", - "rlp", - "serde", - "sha3", - "zeroize", -] - -[[package]] ->>>>>>> origin/main -name = "enr" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "972070166c68827e64bd1ebc8159dd8e32d9bc2da7ebe8f20b61308f7974ad30" @@ -2573,11 +1985,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -2588,11 +1996,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -2603,14 +2007,6 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -<<<<<<< HEAD -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" -dependencies = [ - "libc", - "windows-sys 0.52.0", -======= version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" @@ -2619,271 +2015,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "eth-keystore" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" -dependencies = [ - "aes", - "ctr", - "digest 0.10.7", - "hex", - "hmac", - "pbkdf2 0.11.0", - "rand 0.8.5", - "scrypt", - "serde", - "serde_json", - "sha2 0.10.8", - "sha3", - "thiserror 1.0.69", - "uuid", -] - -[[package]] -name = "ethabi" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" -dependencies = [ - "ethereum-types", - "hex", - "once_cell", - "regex", - "serde", - "serde_json", - "sha3", - "thiserror 1.0.69", - "uint", -] - -[[package]] -name = "ethbloom" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" -dependencies = [ - "crunchy", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "tiny-keccak", -] - -[[package]] -name = "ethereum-types" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" -dependencies = [ - "ethbloom", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "primitive-types", - "scale-info", - "uint", -] - -[[package]] -name = "ethers" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" -dependencies = [ - "ethers-addressbook", - "ethers-contract", - "ethers-core", - "ethers-middleware", - "ethers-providers", - "ethers-signers", -] - -[[package]] -name = "ethers-addressbook" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" -dependencies = [ - "ethers-core", - "once_cell", - "serde", - "serde_json", -] - -[[package]] -name = "ethers-contract" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" -dependencies = [ - "const-hex", - "ethers-contract-abigen", - "ethers-contract-derive", - "ethers-core", - "ethers-providers", - "futures-util", - "once_cell", - "pin-project", - "serde", - "serde_json", - "thiserror 1.0.69", -] - -[[package]] -name = "ethers-contract-abigen" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" -dependencies = [ - "Inflector", - "const-hex", - "dunce", - "ethers-core", - "eyre", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "serde", - "serde_json", - "syn 2.0.90", - "toml", - "walkdir", -] - -[[package]] -name = "ethers-contract-derive" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" -dependencies = [ - "Inflector", - "const-hex", - "ethers-contract-abigen", - "ethers-core", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.90", -] - -[[package]] -name = "ethers-core" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" -dependencies = [ - "arrayvec 0.7.6", - "bytes", - "cargo_metadata", - "chrono", - "const-hex", - "elliptic-curve", - "ethabi", - "generic-array 0.14.7", - "k256", - "num_enum 0.7.3", - "once_cell", - "open-fastrlp", - "rand 0.8.5", - "rlp", - "serde", - "serde_json", - "strum", - "syn 2.0.90", - "tempfile", - "thiserror 1.0.69", - "tiny-keccak", - "unicode-xid", -] - -[[package]] -name = "ethers-middleware" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" -dependencies = [ - "async-trait", - "auto_impl", - "ethers-contract", - "ethers-core", - "ethers-providers", - "ethers-signers", - "futures-channel", - "futures-locks", - "futures-util", - "instant", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror 1.0.69", - "tokio", - "tracing", - "tracing-futures", - "url", -] - -[[package]] -name = "ethers-providers" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" -dependencies = [ - "async-trait", - "auto_impl", - "base64 0.21.7", - "bytes", - "const-hex", - "enr 0.10.0", - "ethers-core", - "futures-core", - "futures-timer", - "futures-util", - "hashers", - "http 0.2.12", - "instant", - "jsonwebtoken", - "once_cell", - "pin-project", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror 1.0.69", - "tokio", - "tracing", - "tracing-futures", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "ws_stream_wasm", -] - -[[package]] -name = "ethers-signers" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" -dependencies = [ - "async-trait", - "coins-bip32", - "coins-bip39", - "const-hex", - "elliptic-curve", - "eth-keystore", - "ethers-core", - "rand 0.8.5", - "sha2 0.10.8", - "thiserror 1.0.69", - "tracing", ->>>>>>> origin/main -] - [[package]] name = "eyre" version = "0.6.12" @@ -2918,15 +2049,9 @@ dependencies = [ [[package]] name = "fastrand" -<<<<<<< HEAD -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" -======= version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" ->>>>>>> origin/main [[package]] name = "fastrlp" @@ -3035,24 +2160,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" [[package]] -<<<<<<< HEAD -======= -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] ->>>>>>> origin/main name = "form_urlencoded" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3116,19 +2223,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] -<<<<<<< HEAD -======= -name = "futures-locks" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" -dependencies = [ - "futures-channel", - "futures-task", -] - -[[package]] ->>>>>>> origin/main name = "futures-macro" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3136,11 +2230,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -3156,19 +2246,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] -<<<<<<< HEAD -======= -name = "futures-timer" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" -dependencies = [ - "gloo-timers", - "send_wrapper 0.4.0", -] - -[[package]] ->>>>>>> origin/main name = "futures-util" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3187,20 +2264,10 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD name = "futures-utils-wasm" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" -======= -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] ->>>>>>> origin/main [[package]] name = "gcd" @@ -3209,20 +2276,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" [[package]] -<<<<<<< HEAD -name = "gecko_profile" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "890852c7e1e02bc6758e325d6b1e0236e4fbf21b492f585ce4d4715be54b4c6a" -dependencies = [ - "debugid", - "serde", - "serde_json", -] - -[[package]] -======= ->>>>>>> origin/main name = "generic-array" version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3235,15 +2288,9 @@ dependencies = [ [[package]] name = "generic-array" -<<<<<<< HEAD -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96512db27971c2c3eece70a1e106fbe6c87760234e31e8f7e5634912fe52794a" -======= version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2cb8bc4c28d15ade99c7e90b219f30da4be5c88e586277e8cbe886beeb868ab2" ->>>>>>> origin/main dependencies = [ "serde", "typenum", @@ -3256,15 +2303,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", -<<<<<<< HEAD - "libc", - "wasi", -======= "js-sys", "libc", "wasi", "wasm-bindgen", ->>>>>>> origin/main ] [[package]] @@ -3279,11 +2321,7 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724" dependencies = [ -<<<<<<< HEAD "bitflags", -======= - "bitflags 2.6.0", ->>>>>>> origin/main "libc", "libgit2-sys", "log", @@ -3296,29 +2334,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" -[[package]] -<<<<<<< HEAD -name = "goblin" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b363a30c165f666402fe6a3024d3bec7ebc898f96a4a23bd1c99f8dbf3f4f47" -dependencies = [ - "log", - "plain", - "scroll", -======= -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", ->>>>>>> origin/main -] - [[package]] name = "groth16-verifier-program" version = "1.1.0" @@ -3347,36 +2362,15 @@ dependencies = [ "subtle", ] -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff 0.13.0", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -<<<<<<< HEAD -======= -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.6.0", - "slab", - "tokio", - "tokio-util", - "tracing", +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff 0.13.0", + "rand_core 0.6.4", + "subtle", ] [[package]] @@ -3390,7 +2384,7 @@ dependencies = [ "fnv", "futures-core", "futures-sink", - "http 1.1.0", + "http", "indexmap 2.6.0", "slab", "tokio", @@ -3399,7 +2393,6 @@ dependencies = [ ] [[package]] ->>>>>>> origin/main name = "half" version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3447,15 +2440,9 @@ dependencies = [ [[package]] name = "hashbrown" -<<<<<<< HEAD -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" -======= version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" ->>>>>>> origin/main dependencies = [ "allocator-api2", "equivalent", @@ -3464,18 +2451,6 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD -======= -name = "hashers" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" -dependencies = [ - "fxhash", -] - -[[package]] ->>>>>>> origin/main name = "heck" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3513,20 +2488,6 @@ dependencies = [ [[package]] name = "http" -<<<<<<< HEAD -======= -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http" ->>>>>>> origin/main version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" @@ -3538,30 +2499,12 @@ dependencies = [ [[package]] name = "http-body" -<<<<<<< HEAD -======= -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - -[[package]] -name = "http-body" ->>>>>>> origin/main version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", -<<<<<<< HEAD "http", -======= - "http 1.1.0", ->>>>>>> origin/main ] [[package]] @@ -3572,13 +2515,8 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", -<<<<<<< HEAD "http", "http-body", -======= - "http 1.1.0", - "http-body 1.0.1", ->>>>>>> origin/main "pin-project-lite", ] @@ -3594,53 +2532,18 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" -[[package]] -name = "hyper" -<<<<<<< HEAD -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" -======= -version = "0.14.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - [[package]] name = "hyper" version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" ->>>>>>> origin/main dependencies = [ "bytes", "futures-channel", "futures-util", -<<<<<<< HEAD + "h2", "http", "http-body", -======= - "h2 0.4.7", - "http 1.1.0", - "http-body 1.0.1", ->>>>>>> origin/main "httparse", "httpdate", "itoa", @@ -3657,13 +2560,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", -<<<<<<< HEAD "http", "hyper", -======= - "http 1.1.0", - "hyper 1.5.1", ->>>>>>> origin/main "hyper-util", "rustls", "rustls-pki-types", @@ -3674,38 +2572,19 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD -======= -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper 0.14.31", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "hyper-tls" -version = "0.6.0" +name = "hyper-timeout" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ - "bytes", - "http-body-util", - "hyper 1.5.1", + "hyper", "hyper-util", - "native-tls", + "pin-project-lite", "tokio", - "tokio-native-tls", "tower-service", ] [[package]] ->>>>>>> origin/main name = "hyper-util" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3714,15 +2593,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", -<<<<<<< HEAD "http", "http-body", "hyper", -======= - "http 1.1.0", - "http-body 1.0.1", - "hyper 1.5.1", ->>>>>>> origin/main "pin-project-lite", "socket2", "tokio", @@ -3868,11 +2741,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -3911,34 +2780,6 @@ dependencies = [ "parity-scale-codec", ] -[[package]] -<<<<<<< HEAD -name = "impl-trait-for-tuples" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -======= -name = "impl-rlp" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" -dependencies = [ - "rlp", -] - -[[package]] -name = "impl-serde" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" -dependencies = [ - "serde", -] - [[package]] name = "impl-trait-for-tuples" version = "0.2.3" @@ -3948,7 +2789,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -3975,27 +2815,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", -<<<<<<< HEAD - "hashbrown 0.15.1", -======= "hashbrown 0.15.2", ->>>>>>> origin/main "serde", ] [[package]] name = "indicatif" -<<<<<<< HEAD -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" -dependencies = [ - "console", - "instant", - "number_prefix", - "portable-atomic", - "unicode-width", -======= version = "0.17.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cbf675b85ed934d3c67b5c5469701eec7db22689d0a2139d856e0925fa28b281" @@ -4007,16 +2832,6 @@ dependencies = [ "web-time", ] -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "generic-array 0.14.7", ->>>>>>> origin/main -] - [[package]] name = "instant" version = "0.1.13" @@ -4099,15 +2914,9 @@ dependencies = [ [[package]] name = "itoa" -<<<<<<< HEAD -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" -======= version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" ->>>>>>> origin/main [[package]] name = "jobserver" @@ -4120,15 +2929,9 @@ dependencies = [ [[package]] name = "js-sys" -<<<<<<< HEAD -version = "0.3.72" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" -======= version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb15147158e79fd8b8afd0252522769c4f48725460b37338544d8379d94fc8f9" ->>>>>>> origin/main dependencies = [ "wasm-bindgen", ] @@ -4160,23 +2963,6 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD -======= -name = "jsonwebtoken" -version = "8.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" -dependencies = [ - "base64 0.21.7", - "pem", - "ring 0.16.20", - "serde", - "serde_json", - "simple_asn1", -] - -[[package]] ->>>>>>> origin/main name = "jubjub" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -4233,11 +3019,7 @@ dependencies = [ "hex", "sha2 0.10.8", "sp1_bls12_381", -<<<<<<< HEAD "spin", -======= - "spin 0.9.8", ->>>>>>> origin/main ] [[package]] @@ -4246,24 +3028,14 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" dependencies = [ -<<<<<<< HEAD "spin", -======= - "spin 0.9.8", ->>>>>>> origin/main ] [[package]] name = "libc" -<<<<<<< HEAD -version = "0.2.161" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" -======= version = "0.2.167" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc" ->>>>>>> origin/main [[package]] name = "libgit2-sys" @@ -4279,15 +3051,9 @@ dependencies = [ [[package]] name = "libloading" -<<<<<<< HEAD -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" -======= version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" ->>>>>>> origin/main dependencies = [ "cfg-if", "windows-targets 0.52.6", @@ -4305,11 +3071,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ -<<<<<<< HEAD "bitflags", -======= - "bitflags 2.6.0", ->>>>>>> origin/main "libc", ] @@ -4333,15 +3095,9 @@ checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "litemap" -<<<<<<< HEAD -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" -======= version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" ->>>>>>> origin/main [[package]] name = "lock_api" @@ -4365,11 +3121,7 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ -<<<<<<< HEAD - "hashbrown 0.15.1", -======= "hashbrown 0.15.2", ->>>>>>> origin/main ] [[package]] @@ -4422,18 +3174,10 @@ dependencies = [ [[package]] name = "mio" -<<<<<<< HEAD -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" -dependencies = [ - "hermit-abi", -======= version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ ->>>>>>> origin/main "libc", "wasi", "windows-sys 0.52.0", @@ -4461,36 +3205,12 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD -======= -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] ->>>>>>> origin/main name = "nix" version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ -<<<<<<< HEAD "bitflags", -======= - "bitflags 2.6.0", ->>>>>>> origin/main "cfg-if", "cfg_aliases", "libc", @@ -4612,11 +3332,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -4721,16 +3437,9 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ -<<<<<<< HEAD - "proc-macro2", - "quote", - "syn 2.0.87", -======= - "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -4782,25 +3491,14 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21aad1fbf80d2bcd7406880efc7ba109365f44bbb72896758ddcbfa46bf1592c" dependencies = [ -<<<<<<< HEAD "alloy-consensus 0.3.6", "alloy-eips 0.3.6", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rlp", "alloy-serde 0.3.6", "derive_more 1.0.0", "serde", "spin", -======= - "alloy-consensus", - "alloy-eips", - "alloy-primitives 0.8.14", - "alloy-rlp", - "alloy-serde", - "derive_more 1.0.0", - "serde", - "spin 0.9.8", ->>>>>>> origin/main ] [[package]] @@ -4809,19 +3507,11 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e281fbfc2198b7c0c16457d6524f83d192662bc9f3df70f24c3038d4521616df" dependencies = [ -<<<<<<< HEAD "alloy-eips 0.3.6", "alloy-network-primitives 0.3.6", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.14", "alloy-rpc-types-eth 0.3.6", "alloy-serde 0.3.6", -======= - "alloy-eips", - "alloy-network-primitives", - "alloy-primitives 0.8.14", - "alloy-rpc-types-eth", - "alloy-serde", ->>>>>>> origin/main "cfg-if", "hashbrown 0.14.5", "op-alloy-consensus", @@ -4835,59 +3525,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" -[[package]] -<<<<<<< HEAD -======= -name = "open-fastrlp" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" -dependencies = [ - "arrayvec 0.7.6", - "auto_impl", - "bytes", - "ethereum-types", - "open-fastrlp-derive", -] - -[[package]] -name = "open-fastrlp-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" -dependencies = [ - "bytes", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "openssl" -version = "0.10.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -dependencies = [ - "bitflags 2.6.0", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.90", -] - [[package]] name = "openssl-probe" version = "0.1.5" @@ -4895,19 +3532,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] ->>>>>>> origin/main name = "option-ext" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -4933,14 +3557,8 @@ dependencies = [ [[package]] name = "p3-air" -<<<<<<< HEAD version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" -======= -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "066f571b2e645505ed5972dd0e1e252ba03352150830c9566769ca711c0f1e9b" ->>>>>>> origin/main +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "p3-field", "p3-matrix", @@ -4948,14 +3566,8 @@ dependencies = [ [[package]] name = "p3-baby-bear" -<<<<<<< HEAD version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" -======= -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff00f571044d299310d9659c6e51c98422de3bf94b8577f7f30cf59cf2043e40" ->>>>>>> origin/main +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "num-bigint 0.4.6", "p3-field", @@ -4967,26 +3579,9 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD name = "p3-bn254-fr" version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" -======= -name = "p3-blake3" -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc4cb69ae54a279bbbd477566d1bdb71aa879b528fd658d0fcfc36f54b00217c" -dependencies = [ - "blake3", - "p3-symmetric", -] - -[[package]] -name = "p3-bn254-fr" -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf19917f986d45e9abb6d177e875824ced6eed096480d574fce16f2c45c721ea" ->>>>>>> origin/main +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "ff 0.13.0", "num-bigint 0.4.6", @@ -4999,14 +3594,8 @@ dependencies = [ [[package]] name = "p3-challenger" -<<<<<<< HEAD version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" -======= -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be7e4fbce4566a93091107eadfafa0b5374bd1ffd3e0f6b850da3ff72eb183f" ->>>>>>> origin/main +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -5018,21 +3607,11 @@ dependencies = [ [[package]] name = "p3-commit" -<<<<<<< HEAD version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" -dependencies = [ - "itertools 0.12.1", - "p3-challenger", -======= -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a03eb0f99d68a712c41e658e9a7782a0705d4ffcfb6232a43bd3f1ef9591002" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "itertools 0.12.1", "p3-challenger", - "p3-dft", ->>>>>>> origin/main "p3-field", "p3-matrix", "p3-util", @@ -5041,14 +3620,8 @@ dependencies = [ [[package]] name = "p3-dft" -<<<<<<< HEAD version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" -======= -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1556de968523fbe5d804ab50600ea306fcceea3500cfd7601e40882480524664" ->>>>>>> origin/main +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "p3-field", "p3-matrix", @@ -5059,14 +3632,8 @@ dependencies = [ [[package]] name = "p3-field" -<<<<<<< HEAD version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" -======= -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cec2af6e1ac47a2035af5165e668d64612c4b9ccabd06df37fc1fd381fdf8a71" ->>>>>>> origin/main +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "itertools 0.12.1", "num-bigint 0.4.6", @@ -5078,14 +3645,8 @@ dependencies = [ [[package]] name = "p3-fri" -<<<<<<< HEAD version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" -======= -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f351ee9f9d4256455164565cd91e3e6d2487cc2a5355515fa2b6d479269188dd" ->>>>>>> origin/main +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "itertools 0.12.1", "p3-challenger", @@ -5102,14 +3663,8 @@ dependencies = [ [[package]] name = "p3-interpolation" -<<<<<<< HEAD version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" -======= -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24d0f2907a374ebe4545fcff3120d6376d9630cf0bef30feedcfc5908ea2c37" ->>>>>>> origin/main +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "p3-field", "p3-matrix", @@ -5118,14 +3673,8 @@ dependencies = [ [[package]] name = "p3-keccak-air" -<<<<<<< HEAD version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" -======= -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e66badd47cedf6570e91a0cabc389b80dfd53ba1a6e9a45a3923fd54b86122ff" ->>>>>>> origin/main +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "p3-air", "p3-field", @@ -5137,14 +3686,8 @@ dependencies = [ [[package]] name = "p3-matrix" -<<<<<<< HEAD version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" -======= -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa272f3ae77ed8d73478aa7c89e712efb15bda3ff4aff10fadfe11a012cd5389" ->>>>>>> origin/main +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "itertools 0.12.1", "p3-field", @@ -5157,28 +3700,16 @@ dependencies = [ [[package]] name = "p3-maybe-rayon" -<<<<<<< HEAD version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" -======= -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eecad6292021858f282d643d9d1284ab112a200494d589863a9c4080e578ef0" ->>>>>>> origin/main +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "rayon", ] [[package]] name = "p3-mds" -<<<<<<< HEAD version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" -======= -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "716c4dbe68a02f1541eb09149d07b8663a3a5951b1864a31cd67ff3bb0826e57" ->>>>>>> origin/main +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "itertools 0.12.1", "p3-dft", @@ -5191,14 +3722,8 @@ dependencies = [ [[package]] name = "p3-merkle-tree" -<<<<<<< HEAD version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" -======= -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad7ebab52a03c26025988663a135aed62f5084a2e2ea262176dc8748efb593e5" ->>>>>>> origin/main +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "itertools 0.12.1", "p3-commit", @@ -5213,14 +3738,8 @@ dependencies = [ [[package]] name = "p3-poseidon2" -<<<<<<< HEAD version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" -======= -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39c042efa15beab7a8c4d0ca9b9e4cbda7582be0c08e121e830fec45f082935b" ->>>>>>> origin/main +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "gcd", "p3-field", @@ -5232,14 +3751,8 @@ dependencies = [ [[package]] name = "p3-symmetric" -<<<<<<< HEAD version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" -======= -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9896a831f5b688adc13f6fbe1dcf66ecfaa4622a500f81aa745610e777acb72" ->>>>>>> origin/main +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "itertools 0.12.1", "p3-field", @@ -5248,14 +3761,8 @@ dependencies = [ [[package]] name = "p3-uni-stark" -<<<<<<< HEAD version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" -======= -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8437ebcd060c8a5479898030b114a93da8a86eb4c2e5f313d9eeaaf40c6e6f61" ->>>>>>> origin/main +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "itertools 0.12.1", "p3-air", @@ -5272,14 +3779,8 @@ dependencies = [ [[package]] name = "p3-util" -<<<<<<< HEAD version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" -======= -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dedb9d27ba47ac314c6fac4ca54e55c3e486c864d51ec5ba55dbe47b75121157" ->>>>>>> origin/main +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "serde", ] @@ -5304,48 +3805,29 @@ dependencies = [ [[package]] name = "parity-scale-codec" -<<<<<<< HEAD -version = "3.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" -======= version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8be4817d39f3272f69c59fe05d0535ae6456c2dc2fa1ba02910296c7e0a5c590" ->>>>>>> origin/main dependencies = [ "arrayvec 0.7.6", "bitvec", "byte-slice-cast", "impl-trait-for-tuples", "parity-scale-codec-derive", -<<<<<<< HEAD -======= "rustversion", ->>>>>>> origin/main "serde", ] [[package]] name = "parity-scale-codec-derive" -<<<<<<< HEAD -version = "3.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" -======= version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8781a75c6205af67215f382092b6e0a4ff3734798523e69073d4bcd294ec767b" ->>>>>>> origin/main dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", -<<<<<<< HEAD - "syn 1.0.109", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -5411,20 +3893,13 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" name = "patch-testing-program" version = "1.1.0" dependencies = [ -<<<<<<< HEAD - "alloy-primitives 0.8.11", -======= "alloy-primitives 0.8.14", ->>>>>>> origin/main "curve25519-dalek", "curve25519-dalek-ng 4.1.1 (git+https://github.com/sp1-patches/curve25519-dalek-ng?tag=curve25519_dalek_ng-v4.1.1-patch-v1)", "ed25519-consensus", "ed25519-dalek", -<<<<<<< HEAD "k256", "p256", -======= ->>>>>>> origin/main "revm-precompile", "secp256k1", "sha2 0.10.8", @@ -5443,37 +3918,6 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD -======= -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest 0.10.7", - "hmac", -] - -[[package]] -name = "pem" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" -dependencies = [ - "base64 0.13.1", -] - -[[package]] ->>>>>>> origin/main name = "pem-rfc7468" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -5501,27 +3945,11 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" name = "pest" version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" -dependencies = [ - "memchr", -<<<<<<< HEAD - "thiserror 1.0.68", -======= - "thiserror 1.0.69", ->>>>>>> origin/main - "ucd-trie", -] - -[[package]] -<<<<<<< HEAD -======= -name = "pharos" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" dependencies = [ - "futures", - "rustc_version 0.4.1", + "memchr", + "thiserror 1.0.69", + "ucd-trie", ] [[package]] @@ -5545,7 +3973,6 @@ dependencies = [ ] [[package]] ->>>>>>> origin/main name = "pin-project-lite" version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -5607,23 +4034,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] -<<<<<<< HEAD -name = "plain" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" - -[[package]] -name = "portable-atomic" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" -======= name = "portable-atomic" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" ->>>>>>> origin/main [[package]] name = "powerfmt" @@ -5647,11 +4061,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -5671,12 +4081,6 @@ checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ "fixed-hash", "impl-codec", -<<<<<<< HEAD -======= - "impl-rlp", - "impl-serde", - "scale-info", ->>>>>>> origin/main "uint", ] @@ -5700,33 +4104,6 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD -======= -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] ->>>>>>> origin/main name = "proc-macro-error-attr2" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -5745,24 +4122,14 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] name = "proc-macro2" -<<<<<<< HEAD -version = "1.0.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" -======= version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" ->>>>>>> origin/main dependencies = [ "unicode-ident", ] @@ -5775,11 +4142,7 @@ checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" dependencies = [ "bit-set", "bit-vec", -<<<<<<< HEAD "bitflags", -======= - "bitflags 2.6.0", ->>>>>>> origin/main "lazy_static", "num-traits", "rand 0.8.5", @@ -5821,11 +4184,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -5838,11 +4197,7 @@ dependencies = [ "itertools 0.13.0", "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -5862,15 +4217,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quinn" -<<<<<<< HEAD -version = "0.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" -======= version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" ->>>>>>> origin/main dependencies = [ "bytes", "pin-project-lite", @@ -5879,32 +4228,13 @@ dependencies = [ "rustc-hash 2.0.0", "rustls", "socket2", -<<<<<<< HEAD - "thiserror 1.0.68", -======= "thiserror 2.0.3", ->>>>>>> origin/main "tokio", "tracing", ] [[package]] name = "quinn-proto" -<<<<<<< HEAD -version = "0.11.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" -dependencies = [ - "bytes", - "rand 0.8.5", - "ring", - "rustc-hash 2.0.0", - "rustls", - "slab", - "thiserror 1.0.68", - "tinyvec", - "tracing", -======= version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" @@ -5912,7 +4242,7 @@ dependencies = [ "bytes", "getrandom", "rand 0.8.5", - "ring 0.17.8", + "ring", "rustc-hash 2.0.0", "rustls", "rustls-pki-types", @@ -5921,7 +4251,6 @@ dependencies = [ "tinyvec", "tracing", "web-time", ->>>>>>> origin/main ] [[package]] @@ -6074,11 +4403,7 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ -<<<<<<< HEAD "bitflags", -======= - "bitflags 2.6.0", ->>>>>>> origin/main ] [[package]] @@ -6089,11 +4414,7 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom", "libredox", -<<<<<<< HEAD - "thiserror 1.0.68", -======= "thiserror 1.0.69", ->>>>>>> origin/main ] [[package]] @@ -6104,11 +4425,7 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", -<<<<<<< HEAD - "regex-automata 0.4.8", -======= "regex-automata 0.4.9", ->>>>>>> origin/main "regex-syntax 0.8.5", ] @@ -6123,15 +4440,9 @@ dependencies = [ [[package]] name = "regex-automata" -<<<<<<< HEAD -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" -======= version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" ->>>>>>> origin/main dependencies = [ "aho-corasick", "memchr", @@ -6168,56 +4479,12 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -<<<<<<< HEAD -======= -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.31", - "hyper-tls 0.5.0", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls-pemfile 1.0.4", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration 0.5.1", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", -] - -[[package]] -name = "reqwest" ->>>>>>> origin/main version = "0.12.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ "base64 0.22.1", "bytes", -<<<<<<< HEAD "futures-core", "futures-util", "http", @@ -6225,50 +4492,23 @@ dependencies = [ "http-body-util", "hyper", "hyper-rustls", -======= - "encoding_rs", - "futures-core", - "futures-util", - "h2 0.4.7", - "http 1.1.0", - "http-body 1.0.1", - "http-body-util", - "hyper 1.5.1", - "hyper-rustls", - "hyper-tls 0.6.0", ->>>>>>> origin/main "hyper-util", "ipnet", "js-sys", "log", "mime", -<<<<<<< HEAD -======= - "native-tls", ->>>>>>> origin/main "once_cell", "percent-encoding", "pin-project-lite", "quinn", "rustls", -<<<<<<< HEAD "rustls-pemfile", -======= - "rustls-pemfile 2.2.0", ->>>>>>> origin/main "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", -<<<<<<< HEAD - "sync_wrapper 1.0.1", - "tokio", -======= "sync_wrapper 1.0.2", - "system-configuration 0.6.1", "tokio", - "tokio-native-tls", ->>>>>>> origin/main "tokio-rustls", "tokio-util", "tower-service", @@ -6289,17 +4529,10 @@ checksum = "562ceb5a604d3f7c885a792d42c199fd8af239d0a51b2fa6a78aafa092452b04" dependencies = [ "anyhow", "async-trait", -<<<<<<< HEAD "http", "reqwest", "serde", - "thiserror 1.0.68", -======= - "http 1.1.0", - "reqwest 0.12.9", - "serde", "thiserror 1.0.69", ->>>>>>> origin/main "tower-service", ] @@ -6312,11 +4545,7 @@ dependencies = [ "reth-execution-errors", "reth-primitives", "reth-storage-errors", -<<<<<<< HEAD - "thiserror 1.0.68", -======= "thiserror 1.0.69", ->>>>>>> origin/main ] [[package]] @@ -6325,15 +4554,9 @@ version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ "alloy-chains", -<<<<<<< HEAD "alloy-eips 0.3.6", "alloy-genesis", - "alloy-primitives 0.8.11", -======= - "alloy-eips", - "alloy-genesis", "alloy-primitives 0.8.14", ->>>>>>> origin/main "alloy-trie", "auto_impl", "derive_more 1.0.0", @@ -6352,17 +4575,10 @@ name = "reth-codecs" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ -<<<<<<< HEAD "alloy-consensus 0.3.6", "alloy-eips 0.3.6", "alloy-genesis", - "alloy-primitives 0.8.11", -======= - "alloy-consensus", - "alloy-eips", - "alloy-genesis", "alloy-primitives 0.8.14", ->>>>>>> origin/main "alloy-trie", "bytes", "modular-bitfield", @@ -6378,11 +4594,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -6427,11 +4639,7 @@ dependencies = [ "reth-execution-errors", "reth-fs-util", "reth-storage-errors", -<<<<<<< HEAD - "thiserror 1.0.68", -======= "thiserror 1.0.69", ->>>>>>> origin/main ] [[package]] @@ -6452,11 +4660,7 @@ version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ "alloy-chains", -<<<<<<< HEAD - "alloy-primitives 0.8.11", -======= "alloy-primitives 0.8.14", ->>>>>>> origin/main "alloy-rlp", "auto_impl", "crc", @@ -6472,11 +4676,7 @@ name = "reth-evm" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ -<<<<<<< HEAD "alloy-eips 0.3.6", -======= - "alloy-eips", ->>>>>>> origin/main "auto_impl", "futures-util", "reth-chainspec", @@ -6494,13 +4694,8 @@ name = "reth-evm-ethereum" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ -<<<<<<< HEAD "alloy-eips 0.3.6", "alloy-sol-types", -======= - "alloy-eips", - "alloy-sol-types 0.8.14", ->>>>>>> origin/main "reth-chainspec", "reth-ethereum-consensus", "reth-ethereum-forks", @@ -6528,11 +4723,7 @@ dependencies = [ "reth-revm", "revm", "revm-primitives", -<<<<<<< HEAD - "thiserror 1.0.68", -======= "thiserror 1.0.69", ->>>>>>> origin/main "tracing", ] @@ -6541,13 +4732,8 @@ name = "reth-execution-errors" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ -<<<<<<< HEAD "alloy-eips 0.3.6", - "alloy-primitives 0.8.11", -======= - "alloy-eips", "alloy-primitives 0.8.14", ->>>>>>> origin/main "alloy-rlp", "derive_more 1.0.0", "nybbles", @@ -6576,11 +4762,7 @@ source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374 dependencies = [ "serde", "serde_json", -<<<<<<< HEAD - "thiserror 1.0.68", -======= "thiserror 1.0.69", ->>>>>>> origin/main ] [[package]] @@ -6588,19 +4770,11 @@ name = "reth-network-peers" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ -<<<<<<< HEAD - "alloy-primitives 0.8.11", - "alloy-rlp", - "enr", - "serde_with", - "thiserror 1.0.68", -======= "alloy-primitives 0.8.14", "alloy-rlp", - "enr 0.12.1", + "enr", "serde_with", "thiserror 1.0.69", ->>>>>>> origin/main "url", ] @@ -6610,11 +4784,7 @@ version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ "alloy-chains", -<<<<<<< HEAD - "alloy-primitives 0.8.11", -======= "alloy-primitives 0.8.14", ->>>>>>> origin/main "derive_more 1.0.0", "once_cell", "reth-chainspec", @@ -6640,23 +4810,13 @@ name = "reth-primitives" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ -<<<<<<< HEAD "alloy-consensus 0.3.6", "alloy-eips 0.3.6", "alloy-genesis", - "alloy-primitives 0.8.11", - "alloy-rlp", - "alloy-rpc-types", - "alloy-serde 0.3.6", -======= - "alloy-consensus", - "alloy-eips", - "alloy-genesis", "alloy-primitives 0.8.14", "alloy-rlp", "alloy-rpc-types", - "alloy-serde", ->>>>>>> origin/main + "alloy-serde 0.3.6", "bytes", "derive_more 1.0.0", "k256", @@ -6671,11 +4831,7 @@ dependencies = [ "reth-trie-common", "revm-primitives", "serde", -<<<<<<< HEAD - "thiserror 1.0.68", -======= "thiserror 1.0.69", ->>>>>>> origin/main ] [[package]] @@ -6683,21 +4839,12 @@ name = "reth-primitives-traits" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ -<<<<<<< HEAD "alloy-consensus 0.3.6", "alloy-eips 0.3.6", "alloy-genesis", - "alloy-primitives 0.8.11", - "alloy-rlp", - "alloy-rpc-types-eth 0.3.6", -======= - "alloy-consensus", - "alloy-eips", - "alloy-genesis", "alloy-primitives 0.8.14", "alloy-rlp", - "alloy-rpc-types-eth", ->>>>>>> origin/main + "alloy-rpc-types-eth 0.3.6", "byteorder", "bytes", "derive_more 1.0.0", @@ -6713,21 +4860,13 @@ name = "reth-prune-types" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ -<<<<<<< HEAD - "alloy-primitives 0.8.11", -======= "alloy-primitives 0.8.14", ->>>>>>> origin/main "bytes", "derive_more 1.0.0", "modular-bitfield", "reth-codecs", "serde", -<<<<<<< HEAD - "thiserror 1.0.68", -======= "thiserror 1.0.69", ->>>>>>> origin/main ] [[package]] @@ -6750,11 +4889,7 @@ name = "reth-stages-types" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ -<<<<<<< HEAD - "alloy-primitives 0.8.11", -======= "alloy-primitives 0.8.14", ->>>>>>> origin/main "bytes", "modular-bitfield", "reth-codecs", @@ -6767,11 +4902,7 @@ name = "reth-static-file-types" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ -<<<<<<< HEAD - "alloy-primitives 0.8.11", -======= "alloy-primitives 0.8.14", ->>>>>>> origin/main "derive_more 1.0.0", "serde", "strum", @@ -6828,15 +4959,9 @@ name = "reth-trie-common" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ -<<<<<<< HEAD "alloy-consensus 0.3.6", "alloy-genesis", - "alloy-primitives 0.8.11", -======= - "alloy-consensus", - "alloy-genesis", "alloy-primitives 0.8.14", ->>>>>>> origin/main "alloy-rlp", "alloy-trie", "bytes", @@ -6891,11 +5016,7 @@ dependencies = [ "ripemd", "secp256k1", "sha2 0.10.8", -<<<<<<< HEAD "substrate-bn", -======= - "substrate-bn 0.6.0 (git+https://github.com/sp1-patches/bn?tag=substrate_bn-v0.6.0-patch-v1)", ->>>>>>> origin/main ] [[package]] @@ -6904,17 +5025,10 @@ version = "9.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7a6bff9dbde3370a5ac9555104117f7e6039b3cc76e8d5d9d01899088beca2a" dependencies = [ -<<<<<<< HEAD "alloy-eips 0.3.6", - "alloy-primitives 0.8.11", - "auto_impl", - "bitflags", -======= - "alloy-eips", "alloy-primitives 0.8.14", "auto_impl", - "bitflags 2.6.0", ->>>>>>> origin/main + "bitflags", "bitvec", "c-kzg", "cfg-if", @@ -6938,24 +5052,6 @@ dependencies = [ [[package]] name = "ring" -<<<<<<< HEAD -======= -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", -] - -[[package]] -name = "ring" ->>>>>>> origin/main version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" @@ -6964,13 +5060,8 @@ dependencies = [ "cfg-if", "getrandom", "libc", -<<<<<<< HEAD "spin", "untrusted", -======= - "spin 0.9.8", - "untrusted 0.9.0", ->>>>>>> origin/main "windows-sys 0.52.0", ] @@ -6990,36 +5081,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ "bytes", -<<<<<<< HEAD -======= - "rlp-derive", ->>>>>>> origin/main "rustc-hex", ] -[[package]] -<<<<<<< HEAD -name = "roaring" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4b84ba6e838ceb47b41de5194a60244fac43d9fe03b71dbe8c5a201081d6d1" -======= -name = "rlp-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "roaring" version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f81dc953b2244ddd5e7860cb0bb2a790494b898ef321d4aff8e260efab60cc88" ->>>>>>> origin/main dependencies = [ "bytemuck", "byteorder", @@ -7058,15 +5127,9 @@ dependencies = [ [[package]] name = "rsa" -<<<<<<< HEAD -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" -======= version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47c75d7c5c6b673e58bf54d8544a9f432e3a925b0e80f7cd3602ab5c50c55519" ->>>>>>> origin/main dependencies = [ "const-oid 0.9.6", "digest 0.10.7", @@ -7086,11 +5149,7 @@ dependencies = [ name = "rsa-program" version = "1.1.0" dependencies = [ -<<<<<<< HEAD - "rsa 0.9.6", -======= "rsa 0.9.7", ->>>>>>> origin/main "sha2 0.10.8", "sp1-zkvm", ] @@ -7109,11 +5168,7 @@ name = "rsp-client-executor" version = "0.1.0" source = "git+https://github.com/succinctlabs/rsp/?rev=3647076#3647076da6580e30384dd911a3fc50d4bcdb5bc1" dependencies = [ -<<<<<<< HEAD - "alloy-primitives 0.8.11", -======= "alloy-primitives 0.8.14", ->>>>>>> origin/main "alloy-rlp", "eyre", "futures", @@ -7146,11 +5201,7 @@ name = "rsp-mpt" version = "0.1.0" source = "git+https://github.com/succinctlabs/rsp/?rev=3647076#3647076da6580e30384dd911a3fc50d4bcdb5bc1" dependencies = [ -<<<<<<< HEAD - "alloy-primitives 0.8.11", -======= "alloy-primitives 0.8.14", ->>>>>>> origin/main "alloy-rlp", "alloy-rpc-types", "anyhow", @@ -7164,11 +5215,7 @@ dependencies = [ "rlp", "rsp-primitives", "serde", -<<<<<<< HEAD - "thiserror 1.0.68", -======= "thiserror 1.0.69", ->>>>>>> origin/main ] [[package]] @@ -7204,11 +5251,7 @@ dependencies = [ name = "rsp-script" version = "0.1.0" dependencies = [ -<<<<<<< HEAD - "alloy-primitives 0.8.11", -======= "alloy-primitives 0.8.14", ->>>>>>> origin/main "bincode", "clap", "rsp-client-executor", @@ -7305,19 +5348,11 @@ dependencies = [ [[package]] name = "rustix" -<<<<<<< HEAD -version = "0.38.39" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375116bee2be9ed569afe2154ea6a99dfdffd257f533f187498c2a8f5feaf4ee" -dependencies = [ - "bitflags", -======= version = "0.38.41" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" dependencies = [ - "bitflags 2.6.0", ->>>>>>> origin/main + "bitflags", "errno", "libc", "linux-raw-sys", @@ -7326,21 +5361,13 @@ dependencies = [ [[package]] name = "rustls" -<<<<<<< HEAD -version = "0.23.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" -dependencies = [ - "once_cell", - "ring", -======= version = "0.23.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "934b404430bb06b3fae2cba809eb45a1ab1aecd64491213d7c3301b88393f8d1" dependencies = [ + "log", "once_cell", - "ring 0.17.8", ->>>>>>> origin/main + "ring", "rustls-pki-types", "rustls-webpki", "subtle", @@ -7348,19 +5375,19 @@ dependencies = [ ] [[package]] -name = "rustls-pemfile" -<<<<<<< HEAD -======= -version = "1.0.4" +name = "rustls-native-certs" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" dependencies = [ - "base64 0.21.7", + "openssl-probe", + "rustls-pki-types", + "schannel", + "security-framework", ] [[package]] name = "rustls-pemfile" ->>>>>>> origin/main version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" @@ -7373,12 +5400,9 @@ name = "rustls-pki-types" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" -<<<<<<< HEAD -======= dependencies = [ "web-time", ] ->>>>>>> origin/main [[package]] name = "rustls-webpki" @@ -7386,15 +5410,9 @@ version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ -<<<<<<< HEAD "ring", "rustls-pki-types", "untrusted", -======= - "ring 0.17.8", - "rustls-pki-types", - "untrusted 0.9.0", ->>>>>>> origin/main ] [[package]] @@ -7421,36 +5439,11 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" -[[package]] -<<<<<<< HEAD -name = "scale-info" -version = "2.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aa7ffc1c0ef49b0452c6e2986abf2b07743320641ffd5fc63d552458e3b779b" -======= -name = "salsa20" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" -dependencies = [ - "cipher", -] - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - [[package]] name = "scale-info" version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "346a3b32eba2640d17a9cb5927056b08f3de90f65b72fe09402c2ad07d684d0b" ->>>>>>> origin/main dependencies = [ "cfg-if", "derive_more 1.0.0", @@ -7460,44 +5453,26 @@ dependencies = [ [[package]] name = "scale-info-derive" -<<<<<<< HEAD -version = "2.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46385cc24172cf615450267463f937c10072516359b3ff1cb24228a4a08bf951" -======= version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" ->>>>>>> origin/main dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] name = "scc" -<<<<<<< HEAD -version = "2.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8d25269dd3a12467afe2e510f69fb0b46b698e5afb296b59f2145259deaf8e8" -======= version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66b202022bb57c049555430e11fc22fea12909276a80a4c3d368da36ac1d88ed" ->>>>>>> origin/main dependencies = [ "sdd", ] [[package]] -<<<<<<< HEAD -======= name = "schannel" version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -7507,44 +5482,11 @@ dependencies = [ ] [[package]] ->>>>>>> origin/main name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -<<<<<<< HEAD -name = "scroll" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6" -dependencies = [ - "scroll_derive", -] - -[[package]] -name = "scroll_derive" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -======= -name = "scrypt" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" -dependencies = [ - "hmac", - "pbkdf2 0.11.0", - "salsa20", - "sha2 0.10.8", ->>>>>>> origin/main -] - [[package]] name = "sdd" version = "3.0.4" @@ -7587,14 +5529,12 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD -======= name = "security-framework" -version = "2.11.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +checksum = "81d3f8c9bfcc3cbb6b0179eb57042d75b1582bdc65c3cb95f3fa999509c03cbc" dependencies = [ - "bitflags 2.6.0", + "bitflags", "core-foundation", "core-foundation-sys", "libc", @@ -7603,16 +5543,15 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.1" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" +checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" dependencies = [ "core-foundation-sys", "libc", ] [[package]] ->>>>>>> origin/main name = "semver" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -7632,43 +5571,18 @@ dependencies = [ [[package]] name = "semver-parser" -<<<<<<< HEAD -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -======= version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" ->>>>>>> origin/main dependencies = [ "pest", ] -[[package]] -<<<<<<< HEAD -name = "serde" -version = "1.0.214" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" -======= -name = "send_wrapper" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" - -[[package]] -name = "send_wrapper" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" - [[package]] name = "serde" version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" ->>>>>>> origin/main dependencies = [ "serde_derive", ] @@ -7694,15 +5608,6 @@ dependencies = [ [[package]] name = "serde_derive" -<<<<<<< HEAD -version = "1.0.214" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -======= version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" @@ -7710,20 +5615,13 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.90", ->>>>>>> origin/main ] [[package]] name = "serde_json" -<<<<<<< HEAD -version = "1.0.132" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" -======= version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" ->>>>>>> origin/main dependencies = [ "indexmap 2.6.0", "itoa", @@ -7750,22 +5648,9 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ] -[[package]] -name = "serde_spanned" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" -dependencies = [ - "serde", ->>>>>>> origin/main -] - [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -7805,24 +5690,14 @@ dependencies = [ "darling", "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] name = "serial_test" -<<<<<<< HEAD -version = "3.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b4b487fe2acf240a021cf57c6b2b4903b1e78ca0ecd862a71b71d2a51fed77d" -======= version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b258109f244e1d6891bf1053a55d63a5cd4f8f4c30cf9a1280989f80e7a1fa9" ->>>>>>> origin/main dependencies = [ "futures", "log", @@ -7834,15 +5709,6 @@ dependencies = [ [[package]] name = "serial_test_derive" -<<<<<<< HEAD -version = "3.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -======= version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" @@ -7850,7 +5716,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -7942,21 +5807,6 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD -======= -name = "simple_asn1" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" -dependencies = [ - "num-bigint 0.4.6", - "num-traits", - "thiserror 1.0.69", - "time", -] - -[[package]] ->>>>>>> origin/main name = "size" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -7992,15 +5842,9 @@ dependencies = [ [[package]] name = "socket2" -<<<<<<< HEAD -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" -======= version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" ->>>>>>> origin/main dependencies = [ "libc", "windows-sys 0.52.0", @@ -8008,11 +5852,7 @@ dependencies = [ [[package]] name = "sp1-build" -<<<<<<< HEAD -version = "3.0.0" -======= version = "3.4.0" ->>>>>>> origin/main dependencies = [ "anyhow", "cargo_metadata", @@ -8023,27 +5863,15 @@ dependencies = [ [[package]] name = "sp1-core-executor" -<<<<<<< HEAD -version = "3.0.0" -======= version = "3.4.0" ->>>>>>> origin/main dependencies = [ "bincode", "bytemuck", "elf", "enum-map", "eyre", -<<<<<<< HEAD - "gecko_profile", - "goblin", - "hashbrown 0.14.5", - "hex", - "indicatif", -======= "hashbrown 0.14.5", "hex", ->>>>>>> origin/main "itertools 0.13.0", "log", "nohash-hasher", @@ -8052,23 +5880,13 @@ dependencies = [ "p3-maybe-rayon", "rand 0.8.5", "rrs-succinct", -<<<<<<< HEAD - "rustc-demangle", - "serde", - "serde_json", -======= "serde", ->>>>>>> origin/main "sp1-curves", "sp1-primitives", "sp1-stark", "strum", "strum_macros", -<<<<<<< HEAD - "thiserror 1.0.68", -======= "thiserror 1.0.69", ->>>>>>> origin/main "tiny-keccak", "tracing", "typenum", @@ -8077,20 +5895,12 @@ dependencies = [ [[package]] name = "sp1-core-machine" -<<<<<<< HEAD -version = "3.0.0" -======= version = "3.4.0" ->>>>>>> origin/main dependencies = [ "bincode", "cfg-if", "elliptic-curve", -<<<<<<< HEAD - "generic-array 1.1.0", -======= "generic-array 1.1.1", ->>>>>>> origin/main "hashbrown 0.14.5", "hex", "itertools 0.13.0", @@ -8098,15 +5908,9 @@ dependencies = [ "log", "num", "num_cpus", -<<<<<<< HEAD "p256", "p3-air", "p3-baby-bear", -======= - "p3-air", - "p3-baby-bear", - "p3-blake3", ->>>>>>> origin/main "p3-challenger", "p3-field", "p3-keccak-air", @@ -8127,11 +5931,7 @@ dependencies = [ "strum", "strum_macros", "tempfile", -<<<<<<< HEAD - "thiserror 1.0.68", -======= "thiserror 1.0.69", ->>>>>>> origin/main "tracing", "tracing-forest", "tracing-subscriber", @@ -8141,11 +5941,7 @@ dependencies = [ [[package]] name = "sp1-cuda" -<<<<<<< HEAD -version = "3.0.0" -======= version = "3.4.0" ->>>>>>> origin/main dependencies = [ "bincode", "ctrlc", @@ -8160,19 +5956,6 @@ dependencies = [ [[package]] name = "sp1-curves" -<<<<<<< HEAD -version = "3.0.0" -dependencies = [ - "cfg-if", - "curve25519-dalek", - "dashu", - "elliptic-curve", - "generic-array 1.1.0", - "itertools 0.13.0", - "k256", - "num", - "p256", -======= version = "3.4.0" dependencies = [ "cfg-if", @@ -8182,7 +5965,7 @@ dependencies = [ "itertools 0.13.0", "k256", "num", ->>>>>>> origin/main + "p256", "p3-field", "serde", "snowbridge-amcl", @@ -8193,11 +5976,7 @@ dependencies = [ [[package]] name = "sp1-derive" -<<<<<<< HEAD -version = "3.0.0" -======= version = "3.4.0" ->>>>>>> origin/main dependencies = [ "quote", "syn 1.0.109", @@ -8219,23 +5998,6 @@ dependencies = [ [[package]] name = "sp1-lib" -version = "3.0.0" -<<<<<<< HEAD -======= -source = "git+https://github.com/succinctlabs/sp1.git?branch=dev#15be73d3acae3718a0acc529ed566f6a448b1c0e" ->>>>>>> origin/main -dependencies = [ - "bincode", - "serde", -] - -[[package]] -name = "sp1-lib" -<<<<<<< HEAD -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14deb700469a37ec075bcf88dac3815b026dd9c4b9cb175980826f1fbb2e4e80" -======= version = "3.4.0" dependencies = [ "bincode", @@ -8247,7 +6009,6 @@ name = "sp1-lib" version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a5729da1b05d56c01457e5ecabdc77f1cc941df23f2921163a2f325aec22428" ->>>>>>> origin/main dependencies = [ "bincode", "serde", @@ -8255,11 +6016,7 @@ dependencies = [ [[package]] name = "sp1-primitives" -<<<<<<< HEAD -version = "3.0.0" -======= version = "3.4.0" ->>>>>>> origin/main dependencies = [ "bincode", "hex", @@ -8275,11 +6032,7 @@ dependencies = [ [[package]] name = "sp1-prover" -<<<<<<< HEAD -version = "3.0.0" -======= version = "3.4.0" ->>>>>>> origin/main dependencies = [ "anyhow", "bincode", @@ -8287,10 +6040,6 @@ dependencies = [ "dirs", "eyre", "itertools 0.13.0", -<<<<<<< HEAD -======= - "lazy_static", ->>>>>>> origin/main "lru", "num-bigint 0.4.6", "p3-baby-bear", @@ -8300,11 +6049,6 @@ dependencies = [ "p3-field", "p3-matrix", "p3-symmetric", -<<<<<<< HEAD -======= - "rayon", - "reqwest 0.11.27", ->>>>>>> origin/main "serde", "serde_json", "serial_test", @@ -8316,24 +6060,15 @@ dependencies = [ "sp1-recursion-core", "sp1-recursion-gnark-ffi", "sp1-stark", -<<<<<<< HEAD - "thiserror 1.0.68", -======= - "subtle-encoding", - "tempfile", "thiserror 1.0.69", ->>>>>>> origin/main "tracing", + "tracing-appender", "tracing-subscriber", ] [[package]] name = "sp1-recursion-circuit" -<<<<<<< HEAD -version = "3.0.0" -======= version = "3.4.0" ->>>>>>> origin/main dependencies = [ "hashbrown 0.14.5", "itertools 0.13.0", @@ -8365,11 +6100,7 @@ dependencies = [ [[package]] name = "sp1-recursion-compiler" -<<<<<<< HEAD -version = "3.0.0" -======= version = "3.4.0" ->>>>>>> origin/main dependencies = [ "backtrace", "itertools 0.13.0", @@ -8389,11 +6120,7 @@ dependencies = [ [[package]] name = "sp1-recursion-core" -<<<<<<< HEAD -version = "3.0.0" -======= version = "3.4.0" ->>>>>>> origin/main dependencies = [ "backtrace", "ff 0.13.0", @@ -8419,11 +6146,7 @@ dependencies = [ "sp1-primitives", "sp1-stark", "static_assertions", -<<<<<<< HEAD - "thiserror 1.0.68", -======= "thiserror 1.0.69", ->>>>>>> origin/main "tracing", "vec_map", "zkhash", @@ -8431,11 +6154,7 @@ dependencies = [ [[package]] name = "sp1-recursion-derive" -<<<<<<< HEAD -version = "3.0.0" -======= version = "3.4.0" ->>>>>>> origin/main dependencies = [ "quote", "syn 1.0.109", @@ -8443,11 +6162,7 @@ dependencies = [ [[package]] name = "sp1-recursion-gnark-ffi" -<<<<<<< HEAD -version = "3.0.0" -======= version = "3.4.0" ->>>>>>> origin/main dependencies = [ "anyhow", "bincode", @@ -8471,26 +6186,18 @@ dependencies = [ [[package]] name = "sp1-sdk" -<<<<<<< HEAD -version = "3.0.0" +version = "3.4.0" dependencies = [ + "alloy-primitives 0.8.14", "alloy-signer", "alloy-signer-local", "alloy-sol-types", -======= -version = "3.4.0" -dependencies = [ - "alloy-sol-types 0.7.7", ->>>>>>> origin/main "anyhow", "async-trait", + "backoff", "bincode", "cfg-if", "dirs", -<<<<<<< HEAD -======= - "ethers", ->>>>>>> origin/main "futures", "hashbrown 0.14.5", "hex", @@ -8501,16 +6208,11 @@ dependencies = [ "p3-field", "p3-fri", "prost 0.13.3", -<<<<<<< HEAD "reqwest", "reqwest-middleware", "serde", - "sp1-build", -======= - "reqwest 0.12.9", - "reqwest-middleware", - "serde", ->>>>>>> origin/main + "serde_json", + "sp1-build", "sp1-core-executor", "sp1-core-machine", "sp1-cuda", @@ -8520,12 +6222,9 @@ dependencies = [ "strum", "strum_macros", "tempfile", -<<<<<<< HEAD - "thiserror 1.0.68", -======= "thiserror 1.0.69", ->>>>>>> origin/main "tokio", + "tonic", "tracing", "twirp-rs", "vergen", @@ -8533,16 +6232,9 @@ dependencies = [ [[package]] name = "sp1-stark" -<<<<<<< HEAD -version = "3.0.0" -dependencies = [ - "arrayref", -======= version = "3.4.0" dependencies = [ "arrayref", - "getrandom", ->>>>>>> origin/main "hashbrown 0.14.5", "itertools 0.13.0", "num-traits", @@ -8567,20 +6259,12 @@ dependencies = [ "strum", "strum_macros", "sysinfo", -<<<<<<< HEAD -======= - "thiserror 1.0.69", ->>>>>>> origin/main "tracing", ] [[package]] name = "sp1-verifier" -<<<<<<< HEAD -version = "3.0.0" -======= version = "3.4.0" ->>>>>>> origin/main dependencies = [ "hex", "lazy_static", @@ -8591,11 +6275,7 @@ dependencies = [ [[package]] name = "sp1-zkvm" -<<<<<<< HEAD -version = "3.0.1" -======= version = "3.4.0" ->>>>>>> origin/main dependencies = [ "cfg-if", "getrandom", @@ -8605,11 +6285,7 @@ dependencies = [ "p3-field", "rand 0.8.5", "sha2 0.10.8", -<<<<<<< HEAD - "sp1-lib 3.0.0", -======= "sp1-lib 3.4.0", ->>>>>>> origin/main "sp1-primitives", ] @@ -8630,15 +6306,6 @@ dependencies = [ [[package]] name = "spin" -<<<<<<< HEAD -======= -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "spin" ->>>>>>> origin/main version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" @@ -8750,11 +6417,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -8769,28 +6432,9 @@ dependencies = [ "lazy_static", "rand 0.8.5", "rustc-hex", -<<<<<<< HEAD - "sp1-lib 3.1.0", -======= "sp1-lib 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "substrate-bn" -version = "0.6.0" -source = "git+https://github.com/sp1-patches/bn?rev=43d854d45b5727b1ff2b9f346d728e785bb8395c#43d854d45b5727b1ff2b9f346d728e785bb8395c" -dependencies = [ - "bytemuck", - "byteorder", - "cfg-if", - "crunchy", - "lazy_static", - "rand 0.8.5", - "rustc-hex", - "sp1-lib 3.0.0", ->>>>>>> origin/main -] - [[package]] name = "substrate-bn-succinct" version = "0.6.0" @@ -8805,11 +6449,7 @@ dependencies = [ "num-bigint 0.4.6", "rand 0.8.5", "rustc-hex", -<<<<<<< HEAD - "sp1-lib 3.1.0", -======= "sp1-lib 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ->>>>>>> origin/main ] [[package]] @@ -8846,42 +6486,15 @@ dependencies = [ [[package]] name = "syn" -<<<<<<< HEAD -version = "2.0.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" -======= version = "2.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" ->>>>>>> origin/main dependencies = [ "proc-macro2", "quote", "unicode-ident", ] -[[package]] -name = "syn-solidity" -<<<<<<< HEAD -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edf42e81491fb8871b74df3d222c64ae8cbc1269ea509fa768a3ed3e1b0ac8cb" -======= -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c837dc8852cb7074e46b444afb81783140dab12c58867b49fb3898fbafedf7ea" ->>>>>>> origin/main -dependencies = [ - "paste", - "proc-macro2", - "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= - "syn 2.0.90", -] - [[package]] name = "syn-solidity" version = "0.8.14" @@ -8892,7 +6505,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -8903,15 +6515,9 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "sync_wrapper" -<<<<<<< HEAD -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" -======= version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" ->>>>>>> origin/main dependencies = [ "futures-core", ] @@ -8936,11 +6542,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -8959,51 +6561,6 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD -======= -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys 0.5.0", -] - -[[package]] -name = "system-configuration" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" -dependencies = [ - "bitflags 2.6.0", - "core-foundation", - "system-configuration-sys 0.6.0", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "system-configuration-sys" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] ->>>>>>> origin/main name = "tap" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -9011,15 +6568,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -<<<<<<< HEAD -version = "3.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" -======= version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" ->>>>>>> origin/main dependencies = [ "cfg-if", "fastrand", @@ -9101,10 +6652,6 @@ dependencies = [ name = "tendermint-script" version = "1.1.0" dependencies = [ -<<<<<<< HEAD -======= - "serde", ->>>>>>> origin/main "serde_cbor", "serde_json", "sp1-build", @@ -9114,19 +6661,11 @@ dependencies = [ [[package]] name = "thiserror" -<<<<<<< HEAD -version = "1.0.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02dd99dc800bbb97186339685293e1cc5d9df1f8fae2d0aecd9ff1c77efea892" -dependencies = [ - "thiserror-impl 1.0.68", -======= version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl 1.0.69", ->>>>>>> origin/main ] [[package]] @@ -9140,15 +6679,6 @@ dependencies = [ [[package]] name = "thiserror-impl" -<<<<<<< HEAD -version = "1.0.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -======= version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" @@ -9156,7 +6686,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -9167,11 +6696,7 @@ checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" dependencies = [ "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -9282,15 +6807,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -<<<<<<< HEAD -version = "1.41.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" -======= version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" ->>>>>>> origin/main dependencies = [ "backtrace", "bytes", @@ -9312,31 +6831,28 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ] [[package]] -name = "tokio-native-tls" -version = "0.3.1" +name = "tokio-rustls" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "native-tls", + "rustls", + "rustls-pki-types", "tokio", ->>>>>>> origin/main ] [[package]] -name = "tokio-rustls" -version = "0.26.0" +name = "tokio-stream" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ - "rustls", - "rustls-pki-types", + "futures-core", + "pin-project-lite", "tokio", ] @@ -9354,31 +6870,10 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD -======= -name = "toml" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.22.22", -] - -[[package]] ->>>>>>> origin/main name = "toml_datetime" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" -<<<<<<< HEAD -======= -dependencies = [ - "serde", -] ->>>>>>> origin/main [[package]] name = "toml_edit" @@ -9398,15 +6893,63 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ "indexmap 2.6.0", -<<<<<<< HEAD -======= - "serde", - "serde_spanned", ->>>>>>> origin/main "toml_datetime", "winnow 0.6.20", ] +[[package]] +name = "tonic" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64 0.22.1", + "bytes", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-timeout", + "hyper-util", + "percent-encoding", + "pin-project", + "prost 0.13.3", + "rustls-native-certs", + "rustls-pemfile", + "socket2", + "tokio", + "tokio-rustls", + "tokio-stream", + "tower 0.4.13", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand 0.8.5", + "slab", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "tower" version = "0.5.1" @@ -9437,15 +6980,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -<<<<<<< HEAD -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -======= version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" ->>>>>>> origin/main dependencies = [ "log", "pin-project-lite", @@ -9454,16 +6991,19 @@ dependencies = [ ] [[package]] -name = "tracing-attributes" -<<<<<<< HEAD -version = "0.1.27" +name = "tracing-appender" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -======= + "crossbeam-channel", + "thiserror 1.0.69", + "time", + "tracing-subscriber", +] + +[[package]] +name = "tracing-attributes" version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" @@ -9471,20 +7011,13 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.90", ->>>>>>> origin/main ] [[package]] name = "tracing-core" -<<<<<<< HEAD -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -======= version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" ->>>>>>> origin/main dependencies = [ "once_cell", "valuable", @@ -9498,29 +7031,12 @@ checksum = "ee40835db14ddd1e3ba414292272eddde9dad04d3d4b65509656414d1c42592f" dependencies = [ "ansi_term", "smallvec", -<<<<<<< HEAD - "thiserror 1.0.68", -======= "thiserror 1.0.69", ->>>>>>> origin/main "tracing", "tracing-subscriber", ] [[package]] -<<<<<<< HEAD -======= -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - -[[package]] ->>>>>>> origin/main name = "tracing-log" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -9533,15 +7049,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -<<<<<<< HEAD -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" -======= version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" ->>>>>>> origin/main dependencies = [ "matchers", "nu-ansi-term", @@ -9570,7 +7080,6 @@ dependencies = [ "async-trait", "axum", "futures", -<<<<<<< HEAD "http", "http-body-util", "hyper", @@ -9578,19 +7087,9 @@ dependencies = [ "reqwest", "serde", "serde_json", - "thiserror 1.0.68", -======= - "http 1.1.0", - "http-body-util", - "hyper 1.5.1", - "prost 0.13.3", - "reqwest 0.12.9", - "serde", - "serde_json", "thiserror 1.0.69", ->>>>>>> origin/main "tokio", - "tower", + "tower 0.5.1", "url", ] @@ -9626,15 +7125,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-ident" -<<<<<<< HEAD -version = "1.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" -======= version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" ->>>>>>> origin/main [[package]] name = "unicode-segmentation" @@ -9649,15 +7142,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] -<<<<<<< HEAD -======= name = "unicode-width" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" [[package]] ->>>>>>> origin/main name = "unicode-xid" version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -9665,30 +7155,15 @@ checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "untrusted" -<<<<<<< HEAD -======= -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - -[[package]] -name = "untrusted" ->>>>>>> origin/main version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -<<<<<<< HEAD -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" -======= version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" ->>>>>>> origin/main dependencies = [ "form_urlencoded", "idna", @@ -9713,22 +7188,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" -[[package]] -name = "uuid" -<<<<<<< HEAD -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" -======= -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" -dependencies = [ - "getrandom", - "serde", -] ->>>>>>> origin/main - [[package]] name = "valuable" version = "0.1.0" @@ -9779,19 +7238,6 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD -======= -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] ->>>>>>> origin/main name = "want" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -9808,15 +7254,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -<<<<<<< HEAD -version = "0.2.95" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" -======= version = "0.2.96" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21d3b25c3ea1126a2ad5f4f9068483c2af1e64168f847abe863a526b8dbfe00b" ->>>>>>> origin/main dependencies = [ "cfg-if", "once_cell", @@ -9825,39 +7265,21 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -<<<<<<< HEAD -version = "0.2.95" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" -======= version = "0.2.96" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52857d4c32e496dc6537646b5b117081e71fd2ff06de792e3577a150627db283" ->>>>>>> origin/main dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -<<<<<<< HEAD -version = "0.4.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" -dependencies = [ - "cfg-if", - "js-sys", -======= version = "0.4.46" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "951fe82312ed48443ac78b66fa43eded9999f738f6022e67aead7b708659e49a" @@ -9865,22 +7287,15 @@ dependencies = [ "cfg-if", "js-sys", "once_cell", ->>>>>>> origin/main "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -<<<<<<< HEAD -version = "0.2.95" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" -======= version = "0.2.96" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "920b0ffe069571ebbfc9ddc0b36ba305ef65577c94b06262ed793716a1afd981" ->>>>>>> origin/main dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -9888,15 +7303,6 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -<<<<<<< HEAD -version = "0.2.95" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -======= version = "0.2.96" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf59002391099644be3524e23b781fa43d2be0c5aa0719a18c0731b9d195cab6" @@ -9904,22 +7310,15 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.90", ->>>>>>> origin/main "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -<<<<<<< HEAD -version = "0.2.95" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" -======= version = "0.2.96" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5047c5392700766601942795a436d7d2599af60dcc3cc1248c9120bfb0827b0" ->>>>>>> origin/main [[package]] name = "wasm-streams" @@ -9936,15 +7335,9 @@ dependencies = [ [[package]] name = "web-sys" -<<<<<<< HEAD -version = "0.3.72" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" -======= version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "476364ff87d0ae6bfb661053a9104ab312542658c3d8f963b7ace80b6f9b26b9" ->>>>>>> origin/main dependencies = [ "js-sys", "wasm-bindgen", @@ -9962,15 +7355,9 @@ dependencies = [ [[package]] name = "webpki-roots" -<<<<<<< HEAD -version = "0.26.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" -======= version = "0.26.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" ->>>>>>> origin/main dependencies = [ "rustls-pki-types", ] @@ -9992,18 +7379,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] -<<<<<<< HEAD -======= -name = "winapi-util" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] ->>>>>>> origin/main name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -10225,19 +7600,6 @@ dependencies = [ ] [[package]] -<<<<<<< HEAD -======= -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] ->>>>>>> origin/main name = "write16" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -10250,28 +7612,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] -<<<<<<< HEAD -======= -name = "ws_stream_wasm" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" -dependencies = [ - "async_io_stream", - "futures", - "js-sys", - "log", - "pharos", - "rustc_version 0.4.1", - "send_wrapper 0.6.0", - "thiserror 1.0.69", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] ->>>>>>> origin/main name = "wyz" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -10282,15 +7622,9 @@ dependencies = [ [[package]] name = "yoke" -<<<<<<< HEAD -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" -======= version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" ->>>>>>> origin/main dependencies = [ "serde", "stable_deref_trait", @@ -10300,15 +7634,6 @@ dependencies = [ [[package]] name = "yoke-derive" -<<<<<<< HEAD -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -======= version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" @@ -10316,7 +7641,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.90", ->>>>>>> origin/main "synstructure 0.13.1", ] @@ -10338,39 +7662,20 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] name = "zerofrom" -<<<<<<< HEAD -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" -======= version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" ->>>>>>> origin/main dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -<<<<<<< HEAD -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -======= version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" @@ -10378,7 +7683,6 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.90", ->>>>>>> origin/main "synstructure 0.13.1", ] @@ -10399,11 +7703,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -10425,11 +7725,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", -<<<<<<< HEAD - "syn 2.0.87", -======= "syn 2.0.90", ->>>>>>> origin/main ] [[package]] @@ -10460,14 +7756,6 @@ dependencies = [ ] [[patch.unused]] -<<<<<<< HEAD -======= -name = "bls12_381" -version = "0.8.0" -source = "git+https://github.com/sp1-patches/bls12_381?tag=bls12_381-v0.8.0-patch-v1#444e109287eb3adc581425e160ed6041622dda35" - -[[patch.unused]] ->>>>>>> origin/main name = "ecdsa" version = "0.16.8" source = "git+https://github.com/sp1-patches/signatures?branch=umadayal/secp256r1#49b6288468aff7f88f0be8cfd3719c7c20b2ba47" diff --git a/examples/aggregation/script/src/main.rs b/examples/aggregation/script/src/main.rs index acc76027d8..2b1227d6c4 100644 --- a/examples/aggregation/script/src/main.rs +++ b/examples/aggregation/script/src/main.rs @@ -24,7 +24,7 @@ fn main() { sp1_sdk::utils::setup_logger(); // Initialize the proving client. - let client = ProverClient::env(); + let client = ProverClient::from_env(); // Setup the proving and verifying keys. let (aggregation_pk, _) = client.setup(AGGREGATION_ELF); diff --git a/examples/bls12381/script/src/main.rs b/examples/bls12381/script/src/main.rs index a7187630e8..7e6c02fd40 100644 --- a/examples/bls12381/script/src/main.rs +++ b/examples/bls12381/script/src/main.rs @@ -6,7 +6,7 @@ fn main() { let stdin = SP1Stdin::new(); - let client = ProverClient::env(); + let client = ProverClient::from_env(); let (_public_values, report) = client.execute(ELF, stdin).run().expect("failed to prove"); println!("executed: {}", report); diff --git a/examples/bn254/script/src/main.rs b/examples/bn254/script/src/main.rs index b1e5d29c2b..cd9c6e5057 100644 --- a/examples/bn254/script/src/main.rs +++ b/examples/bn254/script/src/main.rs @@ -6,7 +6,7 @@ fn main() { let stdin = SP1Stdin::new(); - let client = ProverClient::env(); + let client = ProverClient::from_env(); let (_public_values, report) = client.execute(ELF, stdin).run().expect("failed to prove"); println!("executed: {}", report); diff --git a/examples/chess/script/src/main.rs b/examples/chess/script/src/main.rs index 8ea2a81823..3a1df33e50 100644 --- a/examples/chess/script/src/main.rs +++ b/examples/chess/script/src/main.rs @@ -13,7 +13,7 @@ fn main() { let san = "d4".to_string(); stdin.write(&san); - let client = ProverClient::env(); + let client = ProverClient::from_env(); let (pk, vk) = client.setup(ELF); let mut proof = client.prove(&pk, stdin).run().unwrap(); diff --git a/examples/cycle-tracking/script/src/main.rs b/examples/cycle-tracking/script/src/main.rs index 0dcde054a7..03a76a80f2 100644 --- a/examples/cycle-tracking/script/src/main.rs +++ b/examples/cycle-tracking/script/src/main.rs @@ -9,7 +9,7 @@ fn main() { utils::setup_logger(); // Execute the normal program. - let client = ProverClient::env(); + let client = ProverClient::from_env(); let (_, _) = client.execute(NORMAL_ELF, SP1Stdin::new()).run().expect("proving failed"); // Execute the report program. @@ -17,5 +17,8 @@ fn main() { // Get the "setup" cycle count from the report program. let setup_cycles = report.cycle_tracker.get("setup").unwrap(); - println!("Using cycle-tracker-report saves the number of cycles to the cycle-tracker mapping in the report.\nHere's the number of cycles used by the setup: {}", setup_cycles); + println!( + "Using cycle-tracker-report saves the number of cycles to the cycle-tracker mapping in the report.\nHere's the number of cycles used by the setup: {}", + setup_cycles + ); } diff --git a/examples/fibonacci/script/bin/compressed.rs b/examples/fibonacci/script/bin/compressed.rs index 6611bdecd3..632f9cd15f 100644 --- a/examples/fibonacci/script/bin/compressed.rs +++ b/examples/fibonacci/script/bin/compressed.rs @@ -13,7 +13,7 @@ fn main() { stdin.write(&n); // Generate the constant-sized proof for the given program and input. - let client = ProverClient::env(); + let client = ProverClient::from_env(); let (pk, vk) = client.setup(ELF); let mut proof = client.prove(&pk, stdin).compressed().run().unwrap(); diff --git a/examples/fibonacci/script/bin/execute.rs b/examples/fibonacci/script/bin/execute.rs index 93aaddd7a5..7b92525a71 100644 --- a/examples/fibonacci/script/bin/execute.rs +++ b/examples/fibonacci/script/bin/execute.rs @@ -14,7 +14,7 @@ fn main() { stdin.write(&n); // Only execute the program and get a `SP1PublicValues` object. - let client = ProverClient::env(); + let client = ProverClient::from_env(); let (mut public_values, execution_report) = client.execute(ELF, stdin).run().unwrap(); // Print the total number of cycles executed and the full execution report with a breakdown of diff --git a/examples/fibonacci/script/src/main.rs b/examples/fibonacci/script/src/main.rs index d7b9cb06cd..442fce04c5 100644 --- a/examples/fibonacci/script/src/main.rs +++ b/examples/fibonacci/script/src/main.rs @@ -16,7 +16,7 @@ fn main() { stdin.write(&n); // Create a `ProverClient` method. - let client = ProverClient::env(); + let client = ProverClient::from_env(); // Execute the program using the `ProverClient.execute` method, without generating a proof. let (_, report) = client.execute(ELF, stdin.clone()).run().unwrap(); diff --git a/examples/groth16/script/src/main.rs b/examples/groth16/script/src/main.rs index 8c5200c6a7..2fecb5493a 100644 --- a/examples/groth16/script/src/main.rs +++ b/examples/groth16/script/src/main.rs @@ -23,11 +23,7 @@ fn generate_fibonacci_proof() -> (Vec, Vec, String) { stdin.write(&n); // Create a `ProverClient`. -<<<<<<< HEAD - let client = ProverClient::env(); -======= - let client = ProverClient::new(); ->>>>>>> origin/main + let client = ProverClient::from_env(); // Generate the groth16 proof for the Fibonacci program. let (pk, vk) = client.setup(FIBONACCI_ELF); @@ -50,11 +46,7 @@ fn main() { stdin.write(&vk); // Create a `ProverClient`. -<<<<<<< HEAD - let client = ProverClient::env(); -======= - let client = ProverClient::new(); ->>>>>>> origin/main + let client = ProverClient::from_env(); // Execute the program using the `ProverClient.execute` method, without generating a proof. let (_, report) = client.execute(GROTH16_ELF, stdin.clone()).run().unwrap(); diff --git a/examples/io/script/src/main.rs b/examples/io/script/src/main.rs index d17a6cd328..008c69e09d 100644 --- a/examples/io/script/src/main.rs +++ b/examples/io/script/src/main.rs @@ -23,7 +23,7 @@ fn main() { stdin.write(&q); // Generate the proof for the given program. - let client = ProverClient::env(); + let client = ProverClient::from_env(); let (pk, vk) = client.setup(ELF); let mut proof = client.prove(&pk, stdin).run().unwrap(); diff --git a/examples/is-prime/script/src/main.rs b/examples/is-prime/script/src/main.rs index 9622eee7fb..c965775743 100644 --- a/examples/is-prime/script/src/main.rs +++ b/examples/is-prime/script/src/main.rs @@ -14,7 +14,7 @@ fn main() { stdin.write(&n); // Generate and verify the proof - let client = ProverClient::env(); + let client = ProverClient::from_env(); let (pk, vk) = client.setup(ELF); let mut proof = client.prove(&pk, stdin).run().unwrap(); diff --git a/examples/json/script/src/main.rs b/examples/json/script/src/main.rs index 1c99be77cd..4c3eaa03a4 100644 --- a/examples/json/script/src/main.rs +++ b/examples/json/script/src/main.rs @@ -34,7 +34,7 @@ fn main() { stdin.write(&initial_account_state); stdin.write(&transactions); - let client = ProverClient::env(); + let client = ProverClient::from_env(); let (pk, vk) = client.setup(JSON_ELF); let mut proof = client.prove(&pk, stdin).run().expect("proving failed"); diff --git a/examples/patch-testing/script/src/main.rs b/examples/patch-testing/script/src/main.rs index f1ab022c17..5e85f2b825 100644 --- a/examples/patch-testing/script/src/main.rs +++ b/examples/patch-testing/script/src/main.rs @@ -8,7 +8,7 @@ pub fn main() { let stdin = SP1Stdin::new(); - let client = ProverClient::env(); + let client = ProverClient::from_env(); let (_, report) = client.execute(PATCH_TEST_ELF, stdin).run().expect("executing failed"); // Confirm there was at least 1 SHA_COMPUTE syscall. diff --git a/examples/regex/script/src/main.rs b/examples/regex/script/src/main.rs index 8ebe56f42c..63c8c6fe66 100644 --- a/examples/regex/script/src/main.rs +++ b/examples/regex/script/src/main.rs @@ -18,7 +18,7 @@ fn main() { stdin.write(&target_string); // Generate the proof for the given program and input. - let client = ProverClient::env(); + let client = ProverClient::from_env(); let (pk, vk) = client.setup(REGEX_IO_ELF); let mut proof = client.prove(&pk, stdin).run().expect("proving failed"); diff --git a/examples/rsa/script/src/main.rs b/examples/rsa/script/src/main.rs index ffa8c81116..991a458d7d 100644 --- a/examples/rsa/script/src/main.rs +++ b/examples/rsa/script/src/main.rs @@ -52,7 +52,7 @@ fn main() { // let verified = stdout.read::(); // Generate the proof for the given program and input. - let client = ProverClient::env(); + let client = ProverClient::from_env(); let (pk, vk) = client.setup(RSA_ELF); let proof = client.prove(&pk, stdin).run().expect("proving failed"); diff --git a/examples/rsp/script/src/main.rs b/examples/rsp/script/src/main.rs index e77c6353d3..08ded491e0 100644 --- a/examples/rsp/script/src/main.rs +++ b/examples/rsp/script/src/main.rs @@ -31,7 +31,7 @@ fn main() { let client_input = load_input_from_cache(CHAIN_ID_ETH_MAINNET, 20526624); // Generate the proof. - let client = ProverClient::env(); + let client = ProverClient::from_env(); // Setup the proving key and verification key. let (pk, vk) = client.setup(include_elf!("rsp-program")); diff --git a/examples/ssz-withdrawals/script/src/main.rs b/examples/ssz-withdrawals/script/src/main.rs index f65eaefa7c..9a6450bc7d 100644 --- a/examples/ssz-withdrawals/script/src/main.rs +++ b/examples/ssz-withdrawals/script/src/main.rs @@ -8,7 +8,7 @@ fn main() { utils::setup_logger(); let stdin = SP1Stdin::new(); - let client = ProverClient::env(); + let client = ProverClient::from_env(); let (pk, vk) = client.setup(ELF); let proof = client.prove(&pk, stdin).run().expect("proving failed"); diff --git a/examples/tendermint/script/src/main.rs b/examples/tendermint/script/src/main.rs index c61e8019ac..298b8ee75f 100644 --- a/examples/tendermint/script/src/main.rs +++ b/examples/tendermint/script/src/main.rs @@ -41,7 +41,7 @@ pub fn main() { // let encoded: Vec = bincode::serialize(&light_block_1).unwrap(); // let decoded: LightBlock = bincode::deserialize(&encoded[..]).unwrap(); - let client = ProverClient::env(); + let client = ProverClient::from_env(); let (pk, vk) = client.setup(TENDERMINT_ELF); client.execute(TENDERMINT_ELF, stdin.clone()).run().expect("proving failed"); From 922c59266df80387f28987cfbaa2baf618e40132 Mon Sep 17 00:00:00 2001 From: jtguibas Date: Thu, 19 Dec 2024 19:10:35 +0000 Subject: [PATCH 29/36] hook --- crates/core/executor/src/hook.rs | 1 - crates/verifier/src/tests.rs | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/crates/core/executor/src/hook.rs b/crates/core/executor/src/hook.rs index ead9bb1e49..a2ce720bf0 100644 --- a/crates/core/executor/src/hook.rs +++ b/crates/core/executor/src/hook.rs @@ -132,7 +132,6 @@ pub struct HookEnv<'a, 'b: 'a> { /// WARNING: This function is used to recover the public key outside of the zkVM context. These /// values must be constrained by the zkVM for correctness. #[must_use] -#[deprecated = "Use `hook_ecrecover_v2` instead."] pub fn hook_ecrecover(_: HookEnv, buf: &[u8]) -> Vec> { assert_eq!(buf.len(), 65 + 32, "ecrecover input should have length 65 + 32"); let (sig, msg_hash) = buf.split_at(65); diff --git a/crates/verifier/src/tests.rs b/crates/verifier/src/tests.rs index e99d71ebd9..3cda26694a 100644 --- a/crates/verifier/src/tests.rs +++ b/crates/verifier/src/tests.rs @@ -3,6 +3,7 @@ use sp1_sdk::{install::try_install_circuit_artifacts, SP1ProofWithPublicValues}; extern crate std; #[test] +#[ignore] fn test_verify_groth16() { // Location of the serialized SP1ProofWithPublicValues. See README.md for more information. let proof_file = "test_binaries/fibonacci-groth16.bin"; @@ -21,6 +22,7 @@ fn test_verify_groth16() { } #[test] +#[ignore] fn test_verify_plonk() { // Location of the serialized SP1ProofWithPublicValues. See README.md for more information. let proof_file = "test_binaries/fibonacci-plonk.bin"; @@ -39,6 +41,7 @@ fn test_verify_plonk() { } #[test] +#[ignore] fn test_vkeys() { let groth16_path = try_install_circuit_artifacts("groth16"); let s3_vkey_path = groth16_path.join("groth16_vk.bin"); From e0a83b311a061beb4bd62da2f64241d2b3b0ab89 Mon Sep 17 00:00:00 2001 From: jtguibas Date: Thu, 19 Dec 2024 19:27:56 +0000 Subject: [PATCH 30/36] updated builder interface --- crates/perf/src/main.rs | 28 +++-------------- crates/sdk/src/client.rs | 50 ++++++++++++++----------------- crates/sdk/src/cpu/execute.rs | 8 ++--- crates/sdk/src/cpu/mod.rs | 5 ++-- crates/sdk/src/cpu/prove.rs | 16 +++++----- crates/sdk/src/cuda/mod.rs | 7 +++-- crates/sdk/src/cuda/prove.rs | 20 +++++++++---- crates/sdk/src/lib.rs | 14 ++++----- crates/sdk/src/network/builder.rs | 8 +++-- 9 files changed, 71 insertions(+), 85 deletions(-) diff --git a/crates/perf/src/main.rs b/crates/perf/src/main.rs index 6f45c7ed2f..04ca613173 100644 --- a/crates/perf/src/main.rs +++ b/crates/perf/src/main.rs @@ -1,7 +1,4 @@ -use std::{ - env, - time::{Duration, Instant}, -}; +use std::time::{Duration, Instant}; use clap::{command, Parser}; use sp1_cuda::SP1CudaProver; @@ -176,34 +173,17 @@ fn main() { println!("{:?}", result); } ProverMode::Network => { - let private_key = env::var("SP1_PRIVATE_KEY") - .expect("SP1_PRIVATE_KEY must be set for remote proving"); - let rpc_url = env::var("PROVER_NETWORK_RPC").ok(); - let skip_simulation = - env::var("SKIP_SIMULATION").map(|val| val == "true").unwrap_or_default(); - - let mut prover_builder = ProverClient::network(); - - if let Some(rpc_url) = rpc_url { - prover_builder = prover_builder.rpc_url(rpc_url); - } - - let prover = prover_builder.private_key(private_key).build(); + let prover = ProverClient::builder().network().build(); let (_, _) = time_operation(|| prover.execute(&elf, &stdin)); let (proof, _) = time_operation(|| { - prover - .prove(&pk, stdin.clone()) - .groth16() - .skip_simulation(skip_simulation) - .run() - .unwrap() + prover.prove(&pk, stdin.clone()).groth16().skip_simulation(true).run().unwrap() }); let (_, _) = time_operation(|| prover.verify(&proof, &vk)); let (proof, _) = time_operation(|| { - prover.prove(&pk, stdin).plonk().skip_simulation(skip_simulation).run().unwrap() + prover.prove(&pk, stdin).plonk().skip_simulation(true).run().unwrap() }); let (_, _) = time_operation(|| prover.verify(&proof, &vk)); diff --git a/crates/sdk/src/client.rs b/crates/sdk/src/client.rs index d269331bd4..c88ae61b2a 100644 --- a/crates/sdk/src/client.rs +++ b/crates/sdk/src/client.rs @@ -2,18 +2,17 @@ //! //! A client for interacting with the prover for the SP1 RISC-V zkVM. -use sp1_prover::SP1_CIRCUIT_VERSION; - -use crate::cpu::CpuProver; -use crate::cuda::CudaProver; +use crate::cpu::builder::CpuProverBuilder; +use crate::cuda::builder::CudaProverBuilder; use crate::env::EnvProver; use crate::network::builder::NetworkProverBuilder; -use sp1_prover::SP1Prover; - -/// A client for interacting with the prover for the SP1 RISC-V zkVM. +/// An entrypoint for interacting with the prover for the SP1 RISC-V zkVM. pub struct ProverClient; +/// A builder to define which proving client to use. +pub struct ProverClientBuilder; + impl ProverClient { /// Creates a new [EnvProver] from the environment. /// @@ -32,18 +31,6 @@ impl ProverClient { Self::from_env() } - /// Gets the current version of the SP1 RISC-V zkVM. - /// - /// # Example - /// ```no_run - /// use sp1_sdk::ProverClient; - /// - /// let version = ProverClient::version(); - /// ``` - pub fn version() -> String { - SP1_CIRCUIT_VERSION.to_string() - } - /// Builds an [EnvProver], which loads the mode and any settings from the environment. /// /// # Usage @@ -60,18 +47,25 @@ impl ProverClient { EnvProver::new() } + /// Creates a new [ProverClientBuilder] so that you can configure the prover client. + pub fn builder() -> ProverClientBuilder { + ProverClientBuilder + } +} + +impl ProverClientBuilder { /// Builds a [CpuProver] specifically for mock proving. /// /// # Example /// ```no_run /// use sp1_sdk::ProverClient; /// - /// let prover = ProverClient::mock(); + /// let prover = ProverClient::builder().mock().build(); /// let (pk, vk) = prover.setup(elf); /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); /// ``` - pub fn mock() -> CpuProver { - CpuProver::mock() + pub fn mock(&self) -> CpuProverBuilder { + CpuProverBuilder { mock: true } } /// Builds a [CpuProver] specifically for local CPU proving. @@ -80,12 +74,12 @@ impl ProverClient { /// ```no_run /// use sp1_sdk::ProverClient; /// - /// let prover = ProverClient::cpu(); + /// let prover = ProverClient::builder().cpu().build(); /// let (pk, vk) = prover.setup(elf); /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); /// ``` - pub fn cpu() -> CpuProver { - CpuProver::new() + pub fn cpu(&self) -> CpuProverBuilder { + CpuProverBuilder { mock: false } } /// Builds a [CudaProver] specifically for local proving on NVIDIA GPUs. @@ -98,8 +92,8 @@ impl ProverClient { /// let (pk, vk) = prover.setup(elf); /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); /// ``` - pub fn cuda() -> CudaProver { - CudaProver::new(SP1Prover::new()) + pub fn cuda(&self) -> CudaProverBuilder { + CudaProverBuilder } /// Builds a [NetworkProver] specifically for proving on the network. @@ -113,7 +107,7 @@ impl ProverClient { /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); /// ``` #[cfg(feature = "network")] - pub fn network() -> NetworkProverBuilder { + pub fn network(&self) -> NetworkProverBuilder { NetworkProverBuilder { private_key: None, rpc_url: None } } } diff --git a/crates/sdk/src/cpu/execute.rs b/crates/sdk/src/cpu/execute.rs index 307421bdff..70ceafb487 100644 --- a/crates/sdk/src/cpu/execute.rs +++ b/crates/sdk/src/cpu/execute.rs @@ -33,7 +33,7 @@ impl<'a> CpuExecuteBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cpu(); + /// let client = ProverClient::builder().cpu().build(); /// let builder = client.execute(elf, stdin) /// .with_hook(1, |env, data| { /// println!("Hook triggered with data: {:?}", data); @@ -62,7 +62,7 @@ impl<'a> CpuExecuteBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cpu(); + /// let client = ProverClient::builder().cpu().build(); /// let builder = client.execute(elf, stdin) /// .cycle_limit(1000000) /// .run(); @@ -84,7 +84,7 @@ impl<'a> CpuExecuteBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cpu(); + /// let client = ProverClient::builder().cpu().build(); /// let builder = client.execute(elf, stdin) /// .deferred_proof_verification(false) /// .run(); @@ -102,7 +102,7 @@ impl<'a> CpuExecuteBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cpu(); + /// let client = ProverClient::builder().cpu().build(); /// let (public_values, execution_report) = client.execute(elf, stdin) /// .run() /// .unwrap(); diff --git a/crates/sdk/src/cpu/mod.rs b/crates/sdk/src/cpu/mod.rs index ae93a4b3a8..4346839d65 100644 --- a/crates/sdk/src/cpu/mod.rs +++ b/crates/sdk/src/cpu/mod.rs @@ -2,6 +2,7 @@ //! //! A prover that uses the CPU to execute and prove programs. +pub mod builder; pub mod execute; pub mod prove; @@ -56,7 +57,7 @@ impl CpuProver { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cpu(); + /// let client = ProverClient::builder().cpu().build(); /// let (public_values, execution_report) = client.execute(elf, stdin) /// .run() /// .unwrap(); @@ -77,7 +78,7 @@ impl CpuProver { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cpu(); + /// let client = ProverClient::builder().cpu().build(); /// let builder = client.prove(pk, stdin) /// .core() /// .run(); diff --git a/crates/sdk/src/cpu/prove.rs b/crates/sdk/src/cpu/prove.rs index 3fb8a8f14d..1df081a95c 100644 --- a/crates/sdk/src/cpu/prove.rs +++ b/crates/sdk/src/cpu/prove.rs @@ -35,7 +35,7 @@ impl<'a> CpuProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cpu(); + /// let client = ProverClient::builder().cpu().build(); /// let builder = client.prove(pk, stdin) /// .core() /// .run(); @@ -74,7 +74,7 @@ impl<'a> CpuProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cpu(); + /// let client = ProverClient::builder().cpu().build(); /// let builder = client.prove(pk, stdin) /// .plonk() /// .run(); @@ -92,7 +92,7 @@ impl<'a> CpuProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cpu(); + /// let client = ProverClient::builder().cpu().build(); /// let builder = client.prove(pk, stdin) /// .groth16() /// .run(); @@ -109,7 +109,7 @@ impl<'a> CpuProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cpu(); + /// let client = ProverClient::builder().cpu().build(); /// let builder = client.prove(pk, stdin) /// .mode(SP1ProofMode::Groth16) /// .run(); @@ -129,7 +129,7 @@ impl<'a> CpuProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cpu(); + /// let client = ProverClient::builder().cpu().build(); /// let builder = client.prove(pk, stdin) /// .shard_size(1 << 16) /// .run(); @@ -148,7 +148,7 @@ impl<'a> CpuProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cpu(); + /// let client = ProverClient::builder().cpu().build(); /// let builder = client.prove(pk, stdin) /// .shard_batch_size(4) /// .run(); @@ -184,7 +184,7 @@ impl<'a> CpuProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cpu(); + /// let client = ProverClient::builder().cpu().build(); /// let builder = client.prove(pk, stdin) /// .deferred_proof_verification(false) /// .run(); @@ -202,7 +202,7 @@ impl<'a> CpuProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cpu(); + /// let client = ProverClient::builder().cpu().build(); /// let (proof, public_values) = client.prove(pk, stdin) /// .run() /// .unwrap(); diff --git a/crates/sdk/src/cuda/mod.rs b/crates/sdk/src/cuda/mod.rs index f539f15b9c..bf7c30d3dd 100644 --- a/crates/sdk/src/cuda/mod.rs +++ b/crates/sdk/src/cuda/mod.rs @@ -2,7 +2,8 @@ //! //! A prover that uses the CUDA to execute and prove programs. -mod prove; +pub mod builder; +pub mod prove; use anyhow::Result; use prove::CudaProveBuilder; @@ -41,7 +42,7 @@ impl CudaProver { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cpu(); + /// let client = ProverClient::builder().cuda().build(); /// let (public_values, execution_report) = client.execute(elf, stdin) /// .run() /// .unwrap(); @@ -62,7 +63,7 @@ impl CudaProver { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cuda(); + /// let client = ProverClient::builder().cuda().build(); /// let (proof, public_values) = client.prove(pk, stdin) /// .run() /// .unwrap(); diff --git a/crates/sdk/src/cuda/prove.rs b/crates/sdk/src/cuda/prove.rs index ff69d13048..194f70a0b0 100644 --- a/crates/sdk/src/cuda/prove.rs +++ b/crates/sdk/src/cuda/prove.rs @@ -1,3 +1,7 @@ +//! # CUDA Proving +//! +//! This module provides a builder for proving a program on the CUDA. + use anyhow::Result; use sp1_core_machine::io::SP1Stdin; use sp1_prover::{components::CpuProverComponents, SP1ProvingKey}; @@ -5,6 +9,10 @@ use sp1_prover::{components::CpuProverComponents, SP1ProvingKey}; use super::CudaProver; use crate::{Prover, SP1ProofMode, SP1ProofWithPublicValues}; +/// A builder for proving a program on the CUDA. +/// +/// This builder provides a typed interface for configuring the SP1 RISC-V prover. The builder is +/// used for only the [crate::cuda::CudaProver] client type. pub struct CudaProveBuilder<'a> { pub(crate) prover: &'a CudaProver, pub(crate) mode: SP1ProofMode, @@ -21,7 +29,7 @@ impl<'a> CudaProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cuda(); + /// let client = ProverClient::builder().cuda().build(); /// let builder = client.prove(pk, stdin) /// .core() /// .run(); @@ -40,7 +48,7 @@ impl<'a> CudaProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cuda(); + /// let client = ProverClient::builder().cuda().build(); /// let builder = client.prove(pk, stdin) /// .compressed() /// .run(); @@ -60,7 +68,7 @@ impl<'a> CudaProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cuda(); + /// let client = ProverClient::builder().cuda().build(); /// let builder = client.prove(pk, stdin) /// .plonk() /// .run(); @@ -78,7 +86,7 @@ impl<'a> CudaProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cuda(); + /// let client = ProverClient::builder().cuda().build(); /// let builder = client.prove(pk, stdin) /// .groth16() /// .run(); @@ -95,7 +103,7 @@ impl<'a> CudaProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::gpu(); + /// let client = ProverClient::builder().cuda().build(); /// let builder = client.prove(pk, stdin) /// .mode(SP1ProofMode::Groth16) /// .run(); @@ -113,7 +121,7 @@ impl<'a> CudaProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::gpu(); + /// let client = ProverClient::builder().cuda().build(); /// let (proof, public_values) = client.prove(pk, stdin) /// .run() /// .unwrap(); diff --git a/crates/sdk/src/lib.rs b/crates/sdk/src/lib.rs index fa1f46fa1a..c4abe153db 100644 --- a/crates/sdk/src/lib.rs +++ b/crates/sdk/src/lib.rs @@ -77,7 +77,7 @@ mod tests { #[test] fn test_execute() { utils::setup_logger(); - let client = ProverClient::cpu(); + let client = ProverClient::builder().cpu().build(); let elf = test_artifacts::FIBONACCI_ELF; let mut stdin = SP1Stdin::new(); stdin.write(&10usize); @@ -89,7 +89,7 @@ mod tests { #[should_panic] fn test_execute_panic() { utils::setup_logger(); - let client = ProverClient::cpu(); + let client = ProverClient::builder().cpu().build(); let elf = test_artifacts::PANIC_ELF; let mut stdin = SP1Stdin::new(); stdin.write(&10usize); @@ -100,7 +100,7 @@ mod tests { #[test] fn test_cycle_limit_fail() { utils::setup_logger(); - let client = ProverClient::cpu(); + let client = ProverClient::builder().cpu().build(); let elf = test_artifacts::PANIC_ELF; let mut stdin = SP1Stdin::new(); stdin.write(&10usize); @@ -110,7 +110,7 @@ mod tests { #[test] fn test_e2e_core() { utils::setup_logger(); - let client = ProverClient::cpu(); + let client = ProverClient::builder().cpu().build(); let elf = test_artifacts::FIBONACCI_ELF; let (pk, vk) = client.setup(elf); let mut stdin = SP1Stdin::new(); @@ -130,7 +130,7 @@ mod tests { #[test] fn test_e2e_compressed() { utils::setup_logger(); - let client = ProverClient::cpu(); + let client = ProverClient::builder().cpu().build(); let elf = test_artifacts::FIBONACCI_ELF; let (pk, vk) = client.setup(elf); let mut stdin = SP1Stdin::new(); @@ -150,7 +150,7 @@ mod tests { #[test] fn test_e2e_prove_plonk() { utils::setup_logger(); - let client = ProverClient::cpu(); + let client = ProverClient::builder().cpu().build(); let elf = test_artifacts::FIBONACCI_ELF; let (pk, vk) = client.setup(elf); let mut stdin = SP1Stdin::new(); @@ -170,7 +170,7 @@ mod tests { #[test] fn test_e2e_prove_plonk_mock() { utils::setup_logger(); - let client = ProverClient::mock(); + let client = ProverClient::builder().mock().build(); let elf = test_artifacts::FIBONACCI_ELF; let (pk, vk) = client.setup(elf); let mut stdin = SP1Stdin::new(); diff --git a/crates/sdk/src/network/builder.rs b/crates/sdk/src/network/builder.rs index 5ad05af6d8..cc07ba6737 100644 --- a/crates/sdk/src/network/builder.rs +++ b/crates/sdk/src/network/builder.rs @@ -21,7 +21,7 @@ impl NetworkProverBuilder { /// /// # Example /// ```rust,no_run - /// let prover = ProverClient::network() + /// let prover = ProverClient::builder().network().build(); /// .private_key("...") /// .build(); /// ``` @@ -38,7 +38,8 @@ impl NetworkProverBuilder { /// /// # Example /// ```rust,no_run - /// let prover = ProverClient::network() + /// let prover = ProverClient::builder() + /// .network() /// .rpc_url("...") /// .build(); /// ``` @@ -55,7 +56,8 @@ impl NetworkProverBuilder { /// /// # Example /// ```rust,no_run - /// let prover = ProverClient::network() + /// let prover = ProverClient::builder() + /// .network() /// .private_key("...") /// .rpc_url("...") /// .build(); From 6be41854872371b8da2e067c91095882e06f92d8 Mon Sep 17 00:00:00 2001 From: jtguibas Date: Thu, 19 Dec 2024 19:28:51 +0000 Subject: [PATCH 31/36] more cleanup --- crates/sdk/src/client.rs | 6 +++--- crates/sdk/src/cpu/builder.rs | 28 ++++++++++++++++++++++++++++ crates/sdk/src/cuda/builder.rs | 28 ++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 crates/sdk/src/cpu/builder.rs create mode 100644 crates/sdk/src/cuda/builder.rs diff --git a/crates/sdk/src/client.rs b/crates/sdk/src/client.rs index c88ae61b2a..50380ca93d 100644 --- a/crates/sdk/src/client.rs +++ b/crates/sdk/src/client.rs @@ -10,9 +10,6 @@ use crate::network::builder::NetworkProverBuilder; /// An entrypoint for interacting with the prover for the SP1 RISC-V zkVM. pub struct ProverClient; -/// A builder to define which proving client to use. -pub struct ProverClientBuilder; - impl ProverClient { /// Creates a new [EnvProver] from the environment. /// @@ -53,6 +50,9 @@ impl ProverClient { } } +/// A builder to define which proving client to use. +pub struct ProverClientBuilder; + impl ProverClientBuilder { /// Builds a [CpuProver] specifically for mock proving. /// diff --git a/crates/sdk/src/cpu/builder.rs b/crates/sdk/src/cpu/builder.rs new file mode 100644 index 0000000000..29cf562a53 --- /dev/null +++ b/crates/sdk/src/cpu/builder.rs @@ -0,0 +1,28 @@ +//! # CPU Prover Builder +//! +//! This module provides a builder for the [CpuProver]. + +use super::CpuProver; + +/// A builder for the [CpuProver]. +/// +/// The builder is used to configure the [CpuProver] before it is built. +pub struct CpuProverBuilder { + pub(crate) mock: bool, +} + +impl CpuProverBuilder { + /// Builds a [CpuProver]. + /// + /// # Details + /// This method will build a [CpuProver] with the given parameters. In particular, it will + /// build a mock prover if the `mock` flag is set. + /// + /// # Example + /// ```rust,no_run + /// let prover = ProverClient::builder().mock().build(); + /// ``` + pub fn build(self) -> CpuProver { + if self.mock { CpuProver::mock() } else { CpuProver::new() } + } +} diff --git a/crates/sdk/src/cuda/builder.rs b/crates/sdk/src/cuda/builder.rs new file mode 100644 index 0000000000..cdfee685dc --- /dev/null +++ b/crates/sdk/src/cuda/builder.rs @@ -0,0 +1,28 @@ +//! # CPU Prover Builder +//! +//! This module provides a builder for the [CpuProver]. + +use sp1_prover::SP1Prover; + +use super::CudaProver; + +/// A builder for the [CudaProver]. +/// +/// The builder is used to configure the [CudaProver] before it is built. +pub struct CudaProverBuilder; + +impl CudaProverBuilder { + /// Builds a [CudaProver]. + /// + /// # Details + /// This method will build a [CudaProver] with the given parameters. In particular, it will + /// build a mock prover if the `mock` flag is set. + /// + /// # Example + /// ```rust,no_run + /// let prover = ProverClient::builder().cuda().build(); + /// ``` + pub fn build(self) -> CudaProver { + CudaProver::new(SP1Prover::new()) + } +} From 2da145902060549957577f8a5bddf7410328d53f Mon Sep 17 00:00:00 2001 From: jtguibas Date: Thu, 19 Dec 2024 19:32:42 +0000 Subject: [PATCH 32/36] fix fmt --- crates/sdk/src/cpu/builder.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/sdk/src/cpu/builder.rs b/crates/sdk/src/cpu/builder.rs index 29cf562a53..d93bc23936 100644 --- a/crates/sdk/src/cpu/builder.rs +++ b/crates/sdk/src/cpu/builder.rs @@ -23,6 +23,10 @@ impl CpuProverBuilder { /// let prover = ProverClient::builder().mock().build(); /// ``` pub fn build(self) -> CpuProver { - if self.mock { CpuProver::mock() } else { CpuProver::new() } + if self.mock { + CpuProver::mock() + } else { + CpuProver::new() + } } } From 5e9d6209d080d6d2174422d22ac726f94d6fc2aa Mon Sep 17 00:00:00 2001 From: jtguibas Date: Thu, 19 Dec 2024 19:42:52 +0000 Subject: [PATCH 33/36] c++ ignore --- .gitignore | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 4cbbd76efc..020a50c25a 100644 --- a/.gitignore +++ b/.gitignore @@ -45,4 +45,7 @@ examples/elf # Example fibonacci groth16 / plonk proofs examples/fibonacci/fibonacci-groth16.bin -examples/fibonacci/fibonacci-plonk.bin \ No newline at end of file +examples/fibonacci/fibonacci-plonk.bin + +# C++ +.vscode/c_cpp_properties.json \ No newline at end of file From edc28ec746d85cbc3a98c251fb4e7bc0c36b6573 Mon Sep 17 00:00:00 2001 From: jtguibas Date: Thu, 19 Dec 2024 19:48:35 +0000 Subject: [PATCH 34/36] cargo clippy shenanigans --- .vscode/settings.json | 22 ++++---- crates/sdk/src/client.rs | 28 +++++------ crates/sdk/src/cpu/builder.rs | 12 ++--- crates/sdk/src/cpu/execute.rs | 7 ++- crates/sdk/src/cpu/mod.rs | 21 ++++---- crates/sdk/src/cpu/prove.rs | 31 ++++++++---- crates/sdk/src/cuda/builder.rs | 12 ++--- crates/sdk/src/cuda/mod.rs | 4 +- crates/sdk/src/cuda/prove.rs | 26 +++++----- crates/sdk/src/env/mod.rs | 34 +++++++------ crates/sdk/src/env/prove.rs | 16 +++--- crates/sdk/src/install.rs | 8 ++- crates/sdk/src/network/builder.rs | 22 ++++---- crates/sdk/src/network/client.rs | 27 +++++----- crates/sdk/src/network/mod.rs | 2 + crates/sdk/src/network/proto/artifact.rs | 4 +- crates/sdk/src/network/proto/network.rs | 64 ++++++++++++------------ crates/sdk/src/network/prove.rs | 36 ++++++------- crates/sdk/src/network/prover.rs | 31 ++++++------ crates/sdk/src/network/sign_message.rs | 1 + crates/sdk/src/proof.rs | 37 +++++++------- crates/sdk/src/prover.rs | 12 ++--- 22 files changed, 236 insertions(+), 221 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 41f465399b..d1500a8b1a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -8,17 +8,17 @@ "editor.rulers": [ 100 ], - // "rust-analyzer.check.overrideCommand": [ - // "cargo", - // "clippy", - // "--workspace", - // "--message-format=json", - // "--all-features", - // "--all-targets", - // "--", - // "-A", - // "incomplete-features" - // ], + "rust-analyzer.check.overrideCommand": [ + "cargo", + "clippy", + "--workspace", + "--message-format=json", + "--all-features", + "--all-targets", + "--", + "-A", + "incomplete-features" + ], "rust-analyzer.linkedProjects": [ "Cargo.toml", // // Examples. diff --git a/crates/sdk/src/client.rs b/crates/sdk/src/client.rs index 50380ca93d..9faca5da02 100644 --- a/crates/sdk/src/client.rs +++ b/crates/sdk/src/client.rs @@ -11,7 +11,7 @@ use crate::network::builder::NetworkProverBuilder; pub struct ProverClient; impl ProverClient { - /// Creates a new [EnvProver] from the environment. + /// Creates a new [`EnvProver`] from the environment. /// /// # Example /// ```no_run @@ -24,11 +24,11 @@ impl ProverClient { /// ``` #[deprecated(since = "4.0.0", note = "use `ProverClient::from_env()` instead")] #[allow(clippy::new_ret_no_self)] - pub fn new() -> EnvProver { + #[must_use] pub fn new() -> EnvProver { Self::from_env() } - /// Builds an [EnvProver], which loads the mode and any settings from the environment. + /// Builds an [`EnvProver`], which loads the mode and any settings from the environment. /// /// # Usage /// ```no_run @@ -40,12 +40,12 @@ impl ProverClient { /// let (pk, vk) = prover.setup(elf); /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); /// ``` - pub fn from_env() -> EnvProver { + #[must_use] pub fn from_env() -> EnvProver { EnvProver::new() } - /// Creates a new [ProverClientBuilder] so that you can configure the prover client. - pub fn builder() -> ProverClientBuilder { + /// Creates a new [`ProverClientBuilder`] so that you can configure the prover client. + #[must_use] pub fn builder() -> ProverClientBuilder { ProverClientBuilder } } @@ -54,7 +54,7 @@ impl ProverClient { pub struct ProverClientBuilder; impl ProverClientBuilder { - /// Builds a [CpuProver] specifically for mock proving. + /// Builds a [`CpuProver`] specifically for mock proving. /// /// # Example /// ```no_run @@ -64,11 +64,11 @@ impl ProverClientBuilder { /// let (pk, vk) = prover.setup(elf); /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); /// ``` - pub fn mock(&self) -> CpuProverBuilder { + #[must_use] pub fn mock(&self) -> CpuProverBuilder { CpuProverBuilder { mock: true } } - /// Builds a [CpuProver] specifically for local CPU proving. + /// Builds a [`CpuProver`] specifically for local CPU proving. /// /// # Usage /// ```no_run @@ -78,11 +78,11 @@ impl ProverClientBuilder { /// let (pk, vk) = prover.setup(elf); /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); /// ``` - pub fn cpu(&self) -> CpuProverBuilder { + #[must_use] pub fn cpu(&self) -> CpuProverBuilder { CpuProverBuilder { mock: false } } - /// Builds a [CudaProver] specifically for local proving on NVIDIA GPUs. + /// Builds a [`CudaProver`] specifically for local proving on NVIDIA GPUs. /// /// # Example /// ```no_run @@ -92,11 +92,11 @@ impl ProverClientBuilder { /// let (pk, vk) = prover.setup(elf); /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); /// ``` - pub fn cuda(&self) -> CudaProverBuilder { + #[must_use] pub fn cuda(&self) -> CudaProverBuilder { CudaProverBuilder } - /// Builds a [NetworkProver] specifically for proving on the network. + /// Builds a [`NetworkProver`] specifically for proving on the network. /// /// # Example /// ```no_run @@ -107,7 +107,7 @@ impl ProverClientBuilder { /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); /// ``` #[cfg(feature = "network")] - pub fn network(&self) -> NetworkProverBuilder { + #[must_use] pub fn network(&self) -> NetworkProverBuilder { NetworkProverBuilder { private_key: None, rpc_url: None } } } diff --git a/crates/sdk/src/cpu/builder.rs b/crates/sdk/src/cpu/builder.rs index d93bc23936..8f46c01477 100644 --- a/crates/sdk/src/cpu/builder.rs +++ b/crates/sdk/src/cpu/builder.rs @@ -1,28 +1,28 @@ //! # CPU Prover Builder //! -//! This module provides a builder for the [CpuProver]. +//! This module provides a builder for the [`CpuProver`]. use super::CpuProver; -/// A builder for the [CpuProver]. +/// A builder for the [`CpuProver`]. /// -/// The builder is used to configure the [CpuProver] before it is built. +/// The builder is used to configure the [`CpuProver`] before it is built. pub struct CpuProverBuilder { pub(crate) mock: bool, } impl CpuProverBuilder { - /// Builds a [CpuProver]. + /// Builds a [`CpuProver`]. /// /// # Details - /// This method will build a [CpuProver] with the given parameters. In particular, it will + /// This method will build a [`CpuProver`] with the given parameters. In particular, it will /// build a mock prover if the `mock` flag is set. /// /// # Example /// ```rust,no_run /// let prover = ProverClient::builder().mock().build(); /// ``` - pub fn build(self) -> CpuProver { + #[must_use] pub fn build(self) -> CpuProver { if self.mock { CpuProver::mock() } else { diff --git a/crates/sdk/src/cpu/execute.rs b/crates/sdk/src/cpu/execute.rs index 70ceafb487..17c0a45393 100644 --- a/crates/sdk/src/cpu/execute.rs +++ b/crates/sdk/src/cpu/execute.rs @@ -11,7 +11,7 @@ use sp1_prover::{components::CpuProverComponents, SP1Prover}; /// A builder for simulating the execution of a program on the CPU. /// /// This builder providers a typed interface for configuring the SP1 RISC-V executor. The builder -/// is used for all the different variants of the [crate::ProverClient]. +/// is used for all the different variants of the [`crate::ProverClient`]. pub struct CpuExecuteBuilder<'a> { pub(crate) elf: &'a [u8], pub(crate) stdin: SP1Stdin, @@ -20,7 +20,7 @@ pub struct CpuExecuteBuilder<'a> { } impl<'a> CpuExecuteBuilder<'a> { - /// Add a executor [sp1_core_executor::Hook] into the context. + /// Add a executor [`sp1_core_executor::Hook`] into the context. /// /// # Arguments /// * `fd` - The file descriptor that triggers this execution hook. @@ -41,6 +41,7 @@ impl<'a> CpuExecuteBuilder<'a> { /// }) /// .run(); /// ``` + #[must_use] pub fn with_hook( mut self, fd: u32, @@ -67,6 +68,7 @@ impl<'a> CpuExecuteBuilder<'a> { /// .cycle_limit(1000000) /// .run(); /// ``` + #[must_use] pub fn cycle_limit(mut self, max_cycles: u64) -> Self { self.context_builder.max_cycles(max_cycles); self @@ -89,6 +91,7 @@ impl<'a> CpuExecuteBuilder<'a> { /// .deferred_proof_verification(false) /// .run(); /// ``` + #[must_use] pub fn deferred_proof_verification(mut self, value: bool) -> Self { self.context_builder.set_skip_deferred_proof_verification(!value); self diff --git a/crates/sdk/src/cpu/mod.rs b/crates/sdk/src/cpu/mod.rs index 4346839d65..7013fde172 100644 --- a/crates/sdk/src/cpu/mod.rs +++ b/crates/sdk/src/cpu/mod.rs @@ -10,7 +10,7 @@ use anyhow::Result; use execute::CpuExecuteBuilder; use hashbrown::HashMap; use p3_baby_bear::BabyBear; -use p3_field::{AbstractField, PrimeField}; +use p3_field::{extension::BinomialExtensionField, AbstractField, PrimeField}; use p3_fri::{FriProof, TwoAdicFriPcsProof}; use prove::CpuProveBuilder; use sp1_core_executor::{SP1Context, SP1ContextBuilder, SP1ReduceProof}; @@ -40,11 +40,13 @@ pub struct CpuProver { impl CpuProver { /// Creates a new [`CpuProver`]. + #[must_use] pub fn new() -> Self { Self::default() } /// Creates a new [`CpuProver`] in mock mode. + #[must_use] pub fn mock() -> Self { Self { prover: SP1Prover::new(), mock: true } } @@ -52,7 +54,7 @@ impl CpuProver { /// Creates a new [`CpuExecuteBuilder`] for simulating the execution of a program on the CPU. /// /// # Details - /// The builder is used for both the [crate::cpu::CpuProver] and [crate::CudaProver] client + /// The builder is used for both the [`crate::cpu::CpuProver`] and [`crate::CudaProver`] client /// types. /// /// # Example @@ -74,7 +76,7 @@ impl CpuProver { /// Creates a new [`CpuProveBuilder`] for proving a program on the CPU. /// /// # Details - /// The builder is used for only the [crate::cpu::CpuProver] client type. + /// The builder is used for only the [`crate::cpu::CpuProver`] client type. /// /// # Example /// ```rust,no_run @@ -178,6 +180,7 @@ impl CpuProver { } } + #[allow(clippy::needless_pass_by_value)] pub(crate) fn mock_prove_impl( &self, pk: &SP1ProvingKey, @@ -209,7 +212,7 @@ impl CpuProver { fri_proof: FriProof { commit_phase_commits: vec![], query_proofs: vec![], - final_poly: Default::default(), + final_poly: BinomialExtensionField::default(), pow_witness: BabyBear::zero(), }, query_openings: vec![], @@ -244,8 +247,8 @@ impl CpuProver { pk.vk.hash_bn254().as_canonical_biguint().to_string(), public_values.hash_bn254().to_string(), ], - encoded_proof: "".to_string(), - raw_proof: "".to_string(), + encoded_proof: String::new(), + raw_proof: String::new(), plonk_vkey_hash: [0; 32], }), public_values, @@ -260,8 +263,8 @@ impl CpuProver { pk.vk.hash_bn254().as_canonical_biguint().to_string(), public_values.hash_bn254().to_string(), ], - encoded_proof: "".to_string(), - raw_proof: "".to_string(), + encoded_proof: String::new(), + raw_proof: String::new(), groth16_vkey_hash: [0; 32], }), public_values, @@ -304,7 +307,7 @@ impl Prover for CpuProver { stdin: &SP1Stdin, mode: SP1ProofMode, ) -> Result { - self.prove_impl(pk, stdin, Default::default(), SP1Context::default(), mode) + self.prove_impl(pk, stdin, SP1ProverOpts::default(), SP1Context::default(), mode) } fn verify( diff --git a/crates/sdk/src/cpu/prove.rs b/crates/sdk/src/cpu/prove.rs index 1df081a95c..29a27fbd4d 100644 --- a/crates/sdk/src/cpu/prove.rs +++ b/crates/sdk/src/cpu/prove.rs @@ -14,7 +14,7 @@ use crate::{SP1ProofMode, SP1ProofWithPublicValues}; /// A builder for proving a program on the CPU. /// /// This builder provides a typed interface for configuring the SP1 RISC-V prover. The builder is -/// used for only the [crate::cpu::CpuProver] client type. +/// used for only the [`crate::cpu::CpuProver`] client type. pub struct CpuProveBuilder<'a> { pub(crate) prover: &'a CpuProver, pub(crate) mode: SP1ProofMode, @@ -27,7 +27,7 @@ pub struct CpuProveBuilder<'a> { } impl<'a> CpuProveBuilder<'a> { - /// Set the proof kind to [SP1ProofKind::Core] mode. + /// Set the proof kind to [`SP1ProofKind::Core`] mode. /// /// # Details /// This is the default mode for the prover. The proofs grow linearly in size with the number @@ -40,16 +40,17 @@ impl<'a> CpuProveBuilder<'a> { /// .core() /// .run(); /// ``` + #[must_use] pub fn core(mut self) -> Self { self.mode = SP1ProofMode::Core; self } - /// Set the proof kind to [SP1ProofKind::Compressed] mode. + /// Set the proof kind to [`SP1ProofKind::Compressed`] mode. /// /// # Details /// This mode produces a proof that is of constant size, regardless of the number of cycles. It - /// takes longer to prove than [SP1ProofKind::Core] due to the need to recursively aggregate + /// takes longer to prove than [`SP1ProofKind::Core`] due to the need to recursively aggregate /// proofs into a single proof. /// /// # Example @@ -59,17 +60,18 @@ impl<'a> CpuProveBuilder<'a> { /// .compressed() /// .run(); /// ``` + #[must_use] pub fn compressed(mut self) -> Self { self.mode = SP1ProofMode::Compressed; self } - /// Set the proof mode to [SP1ProofKind::Plonk] mode. + /// Set the proof mode to [`SP1ProofKind::Plonk`] mode. /// /// # Details /// This mode produces a const size PLONK proof that can be verified on chain for roughly ~300k /// gas. This mode is useful for producing a maximally small proof that can be verified on - /// chain. For more efficient SNARK wrapping, you can use the [SP1ProofKind::Groth16] mode but + /// chain. For more efficient SNARK wrapping, you can use the [`SP1ProofKind::Groth16`] mode but /// this mode is more . /// /// # Example @@ -79,12 +81,13 @@ impl<'a> CpuProveBuilder<'a> { /// .plonk() /// .run(); /// ``` + #[must_use] pub fn plonk(mut self) -> Self { self.mode = SP1ProofMode::Plonk; self } - /// Set the proof mode to [SP1ProofKind::Groth16] mode. + /// Set the proof mode to [`SP1ProofKind::Groth16`] mode. /// /// # Details /// This mode produces a Groth16 proof that can be verified on chain for roughly ~100k gas. This @@ -97,12 +100,13 @@ impl<'a> CpuProveBuilder<'a> { /// .groth16() /// .run(); /// ``` + #[must_use] pub fn groth16(mut self) -> Self { self.mode = SP1ProofMode::Groth16; self } - /// Set the proof mode to the given [SP1ProofKind]. + /// Set the proof mode to the given [`SP1ProofKind`]. /// /// # Details /// This method is useful for setting the proof mode to a custom mode. @@ -114,6 +118,7 @@ impl<'a> CpuProveBuilder<'a> { /// .mode(SP1ProofMode::Groth16) /// .run(); /// ``` + #[must_use] pub fn mode(mut self, mode: SP1ProofMode) -> Self { self.mode = mode; self @@ -134,6 +139,7 @@ impl<'a> CpuProveBuilder<'a> { /// .shard_size(1 << 16) /// .run(); /// ``` + #[must_use] pub fn shard_size(mut self, value: usize) -> Self { assert!(value.is_power_of_two(), "shard size must be a power of 2"); self.core_opts.shard_size = value; @@ -153,6 +159,7 @@ impl<'a> CpuProveBuilder<'a> { /// .shard_batch_size(4) /// .run(); /// ``` + #[must_use] pub fn shard_batch_size(mut self, value: usize) -> Self { self.core_opts.shard_batch_size = value; self @@ -171,6 +178,7 @@ impl<'a> CpuProveBuilder<'a> { /// .cycle_limit(1000000) /// .run(); /// ``` + #[must_use] pub fn cycle_limit(mut self, cycle_limit: u64) -> Self { self.context_builder.max_cycles(cycle_limit); self @@ -189,6 +197,7 @@ impl<'a> CpuProveBuilder<'a> { /// .deferred_proof_verification(false) /// .run(); /// ``` + #[must_use] pub fn deferred_proof_verification(mut self, value: bool) -> Self { self.context_builder.set_skip_deferred_proof_verification(value); self @@ -218,10 +227,10 @@ impl<'a> CpuProveBuilder<'a> { crate::utils::sp1_dump(&pk.elf, &stdin); // Run the prover. - if !mock { - prover.prove_impl(pk, &stdin, opts, context, mode) - } else { + if mock { prover.mock_prove_impl(pk, stdin, mode) + } else { + prover.prove_impl(pk, &stdin, opts, context, mode) } } } diff --git a/crates/sdk/src/cuda/builder.rs b/crates/sdk/src/cuda/builder.rs index cdfee685dc..051b1b3d5a 100644 --- a/crates/sdk/src/cuda/builder.rs +++ b/crates/sdk/src/cuda/builder.rs @@ -1,28 +1,28 @@ //! # CPU Prover Builder //! -//! This module provides a builder for the [CpuProver]. +//! This module provides a builder for the [`CpuProver`]. use sp1_prover::SP1Prover; use super::CudaProver; -/// A builder for the [CudaProver]. +/// A builder for the [`CudaProver`]. /// -/// The builder is used to configure the [CudaProver] before it is built. +/// The builder is used to configure the [`CudaProver`] before it is built. pub struct CudaProverBuilder; impl CudaProverBuilder { - /// Builds a [CudaProver]. + /// Builds a [`CudaProver`]. /// /// # Details - /// This method will build a [CudaProver] with the given parameters. In particular, it will + /// This method will build a [`CudaProver`] with the given parameters. In particular, it will /// build a mock prover if the `mock` flag is set. /// /// # Example /// ```rust,no_run /// let prover = ProverClient::builder().cuda().build(); /// ``` - pub fn build(self) -> CudaProver { + #[must_use] pub fn build(self) -> CudaProver { CudaProver::new(SP1Prover::new()) } } diff --git a/crates/sdk/src/cuda/mod.rs b/crates/sdk/src/cuda/mod.rs index bf7c30d3dd..0aa4e55a73 100644 --- a/crates/sdk/src/cuda/mod.rs +++ b/crates/sdk/src/cuda/mod.rs @@ -37,7 +37,7 @@ impl CudaProver { /// Creates a new [`CpuExecuteBuilder`] for simulating the execution of a program on the CPU. /// /// # Details - /// The builder is used for both the [crate::cpu::CpuProver] and [crate::CudaProver] client + /// The builder is used for both the [`crate::cpu::CpuProver`] and [`crate::CudaProver`] client /// types. /// /// # Example @@ -59,7 +59,7 @@ impl CudaProver { /// Creates a new [`CudaProveBuilder`] for proving a program on the CUDA. /// /// # Details - /// The builder is used for only the [crate::CudaProver] client type. + /// The builder is used for only the [`crate::CudaProver`] client type. /// /// # Example /// ```rust,no_run diff --git a/crates/sdk/src/cuda/prove.rs b/crates/sdk/src/cuda/prove.rs index 194f70a0b0..9a829ef0d5 100644 --- a/crates/sdk/src/cuda/prove.rs +++ b/crates/sdk/src/cuda/prove.rs @@ -12,7 +12,7 @@ use crate::{Prover, SP1ProofMode, SP1ProofWithPublicValues}; /// A builder for proving a program on the CUDA. /// /// This builder provides a typed interface for configuring the SP1 RISC-V prover. The builder is -/// used for only the [crate::cuda::CudaProver] client type. +/// used for only the [`crate::cuda::CudaProver`] client type. pub struct CudaProveBuilder<'a> { pub(crate) prover: &'a CudaProver, pub(crate) mode: SP1ProofMode, @@ -21,7 +21,7 @@ pub struct CudaProveBuilder<'a> { } impl<'a> CudaProveBuilder<'a> { - /// Set the proof kind to [SP1ProofMode::Core] mode. + /// Set the proof kind to [`SP1ProofMode::Core`] mode. /// /// # Details /// This is the default mode for the prover. The proofs grow linearly in size with the number @@ -34,16 +34,16 @@ impl<'a> CudaProveBuilder<'a> { /// .core() /// .run(); /// ``` - pub fn core(mut self) -> Self { + #[must_use] pub fn core(mut self) -> Self { self.mode = SP1ProofMode::Core; self } - /// Set the proof kind to [SP1ProofMode::Compressed] mode. + /// Set the proof kind to [`SP1ProofMode::Compressed`] mode. /// /// # Details /// This mode produces a proof that is of constant size, regardless of the number of cycles. It - /// takes longer to prove than [SP1ProofMode::Core] due to the need to recursively aggregate + /// takes longer to prove than [`SP1ProofMode::Core`] due to the need to recursively aggregate /// proofs into a single proof. /// /// # Example @@ -53,17 +53,17 @@ impl<'a> CudaProveBuilder<'a> { /// .compressed() /// .run(); /// ``` - pub fn compressed(mut self) -> Self { + #[must_use] pub fn compressed(mut self) -> Self { self.mode = SP1ProofMode::Compressed; self } - /// Set the proof mode to [SP1ProofMode::Plonk] mode. + /// Set the proof mode to [`SP1ProofMode::Plonk`] mode. /// /// # Details /// This mode produces a const size PLONK proof that can be verified on chain for roughly ~300k /// gas. This mode is useful for producing a maximally small proof that can be verified on - /// chain. For more efficient SNARK wrapping, you can use the [SP1ProofMode::Groth16] mode but + /// chain. For more efficient SNARK wrapping, you can use the [`SP1ProofMode::Groth16`] mode but /// this mode is more . /// /// # Example @@ -73,12 +73,12 @@ impl<'a> CudaProveBuilder<'a> { /// .plonk() /// .run(); /// ``` - pub fn plonk(mut self) -> Self { + #[must_use] pub fn plonk(mut self) -> Self { self.mode = SP1ProofMode::Plonk; self } - /// Set the proof mode to [SP1ProofMode::Groth16] mode. + /// Set the proof mode to [`SP1ProofMode::Groth16`] mode. /// /// # Details /// This mode produces a Groth16 proof that can be verified on chain for roughly ~100k gas. This @@ -91,12 +91,12 @@ impl<'a> CudaProveBuilder<'a> { /// .groth16() /// .run(); /// ``` - pub fn groth16(mut self) -> Self { + #[must_use] pub fn groth16(mut self) -> Self { self.mode = SP1ProofMode::Groth16; self } - /// Set the proof mode to the given [SP1ProofMode]. + /// Set the proof mode to the given [`SP1ProofMode`]. /// /// # Details /// This method is useful for setting the proof mode to a custom mode. @@ -108,7 +108,7 @@ impl<'a> CudaProveBuilder<'a> { /// .mode(SP1ProofMode::Groth16) /// .run(); /// ``` - pub fn mode(mut self, mode: SP1ProofMode) -> Self { + #[must_use] pub fn mode(mut self, mode: SP1ProofMode) -> Self { self.mode = mode; self } diff --git a/crates/sdk/src/env/mod.rs b/crates/sdk/src/env/mod.rs index 0b30628ec0..61e8227378 100644 --- a/crates/sdk/src/env/mod.rs +++ b/crates/sdk/src/env/mod.rs @@ -23,7 +23,7 @@ use crate::{SP1ProofMode, SP1ProofWithPublicValues}; /// A prover that can execute programs and generate proofs with a different implementation based on /// the value of certain environment variables. /// -/// The environment variables are described in [EnvProver::new]. +/// The environment variables are described in [`EnvProver::new`]. pub struct EnvProver { pub(crate) prover: Box>, } @@ -35,13 +35,13 @@ impl EnvProver { /// - `SP1_PROVER`: The type of prover to use. Must be one of `mock`, `local`, `cuda`, or `network`. /// - `NETWORK_PRIVATE_KEY`: The private key to use for the network prover. /// - `NETWORK_RPC_URL`: The RPC URL to use for the network prover. + #[must_use] pub fn new() -> Self { - let mode = match env::var("SP1_PROVER") { - Ok(mode) => mode, - Err(_) => { - log::warn!("SP1_PROVER environment variable not set, defaulting to 'cpu'"); - "cpu".to_string() - } + let mode = if let Ok(mode) = env::var("SP1_PROVER") { + mode + } else { + log::warn!("SP1_PROVER environment variable not set, defaulting to 'cpu'"); + "cpu".to_string() }; let prover: Box> = match mode.as_str() { @@ -72,9 +72,8 @@ impl EnvProver { } } _ => panic!( - "Invalid SP1_PROVER value. Expected one of: mock, cpu, cuda, or network. Got: '{}'.\n\ - Please set the SP1_PROVER environment variable to one of the supported values.", - mode + "Invalid SP1_PROVER value. Expected one of: mock, cpu, cuda, or network. Got: '{mode}'.\n\ + Please set the SP1_PROVER environment variable to one of the supported values." ), }; EnvProver { prover } @@ -83,7 +82,7 @@ impl EnvProver { /// Creates a new [`CpuExecuteBuilder`] for simulating the execution of a program on the CPU. /// /// # Details - /// The builder is used for both the [crate::cpu::CpuProver] and [crate::CudaProver] client + /// The builder is used for both the [`crate::cpu::CpuProver`] and [`crate::CudaProver`] client /// types. /// /// # Example @@ -93,19 +92,20 @@ impl EnvProver { /// .run() /// .unwrap(); /// ``` + #[must_use] pub fn execute<'a>(&'a self, elf: &'a [u8], stdin: SP1Stdin) -> CpuExecuteBuilder<'a> { CpuExecuteBuilder { - prover: &self.prover.inner(), + prover: self.prover.inner(), elf, - stdin: stdin.clone(), + stdin, context_builder: SP1ContextBuilder::default(), } } - /// Creates a new [EnvProve] for proving a program on the CPU. + /// Creates a new [`EnvProve`] for proving a program on the CPU. /// /// # Details - /// The builder is used for only the [crate::cpu::CpuProver] client type. + /// The builder is used for only the [`crate::cpu::CpuProver`] client type. /// /// # Example /// ```rust,no_run @@ -114,12 +114,13 @@ impl EnvProver { /// .core() /// .run(); /// ``` + #[must_use] pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> EnvProveBuilder<'a> { EnvProveBuilder { prover: self.prover.as_ref(), mode: SP1ProofMode::Core, pk, stdin } } /// Verifies that the given proof is valid and matches the given verification key produced by - /// [Self::setup]. + /// [`Self::setup`]. /// /// ### Examples /// ```no_run @@ -143,6 +144,7 @@ impl EnvProver { /// Setup a program to be proven and verified by the SP1 RISC-V zkVM by computing the proving /// and verifying keys. + #[must_use] pub fn setup(&self, elf: &[u8]) -> (SP1ProvingKey, SP1VerifyingKey) { self.prover.setup(elf) } diff --git a/crates/sdk/src/env/prove.rs b/crates/sdk/src/env/prove.rs index 4dbbfadb54..54f6c64c9d 100644 --- a/crates/sdk/src/env/prove.rs +++ b/crates/sdk/src/env/prove.rs @@ -5,7 +5,7 @@ use sp1_prover::{components::CpuProverComponents, SP1ProvingKey}; use crate::{Prover, SP1ProofMode, SP1ProofWithPublicValues}; /// Builder to prepare and configure proving execution of a program on an input. -/// May be run with [Self::run]. +/// May be run with [`Self::run`]. pub struct EnvProveBuilder<'a> { pub(crate) prover: &'a dyn Prover, pub(crate) mode: SP1ProofMode, @@ -14,7 +14,7 @@ pub struct EnvProveBuilder<'a> { } impl<'a> EnvProveBuilder<'a> { - /// Set the proof kind to [SP1ProofMode::Core] mode. + /// Set the proof kind to [`SP1ProofMode::Core`] mode. /// /// # Details /// This is the default mode for the prover. The proofs grow linearly in size with the number @@ -32,11 +32,11 @@ impl<'a> EnvProveBuilder<'a> { self } - /// Set the proof kind to [SP1ProofMode::Compressed] mode. + /// Set the proof kind to [`SP1ProofMode::Compressed`] mode. /// /// # Details /// This mode produces a proof that is of constant size, regardless of the number of cycles. It - /// takes longer to prove than [SP1ProofMode::Core] due to the need to recursively aggregate + /// takes longer to prove than [`SP1ProofMode::Core`] due to the need to recursively aggregate /// proofs into a single proof. /// /// # Example @@ -51,12 +51,12 @@ impl<'a> EnvProveBuilder<'a> { self } - /// Set the proof mode to [SP1ProofMode::Plonk] mode. + /// Set the proof mode to [`SP1ProofMode::Plonk`] mode. /// /// # Details /// This mode produces a const size PLONK proof that can be verified on chain for roughly ~300k /// gas. This mode is useful for producing a maximally small proof that can be verified on - /// chain. For more efficient SNARK wrapping, you can use the [SP1ProofMode::Groth16] mode but + /// chain. For more efficient SNARK wrapping, you can use the [`SP1ProofMode::Groth16`] mode but /// this mode is more . /// /// # Example @@ -71,7 +71,7 @@ impl<'a> EnvProveBuilder<'a> { self } - /// Set the proof mode to [SP1ProofMode::Groth16] mode. + /// Set the proof mode to [`SP1ProofMode::Groth16`] mode. /// /// # Details /// This mode produces a Groth16 proof that can be verified on chain for roughly ~100k gas. This @@ -89,7 +89,7 @@ impl<'a> EnvProveBuilder<'a> { self } - /// Set the proof mode to the given [SP1ProofMode]. + /// Set the proof mode to the given [`SP1ProofMode`]. /// /// # Details /// This method is useful for setting the proof mode to a custom mode. diff --git a/crates/sdk/src/install.rs b/crates/sdk/src/install.rs index 344b99ff8f..51857f32ca 100644 --- a/crates/sdk/src/install.rs +++ b/crates/sdk/src/install.rs @@ -20,16 +20,19 @@ use crate::SP1_CIRCUIT_VERSION; pub const CIRCUIT_ARTIFACTS_URL_BASE: &str = "https://sp1-circuits.s3-us-east-2.amazonaws.com"; /// The directory where the groth16 circuit artifacts will be stored. +#[must_use] pub fn groth16_circuit_artifacts_dir() -> PathBuf { dirs::home_dir().unwrap().join(".sp1").join("circuits/groth16").join(SP1_CIRCUIT_VERSION) } /// The directory where the plonk circuit artifacts will be stored. +#[must_use] pub fn plonk_circuit_artifacts_dir() -> PathBuf { dirs::home_dir().unwrap().join(".sp1").join("circuits/plonk").join(SP1_CIRCUIT_VERSION) } /// Tries to install the groth16 circuit artifacts if they are not already installed. +#[must_use] pub fn try_install_circuit_artifacts(artifacts_type: &str) -> PathBuf { let build_dir = if artifacts_type == "groth16" { groth16_circuit_artifacts_dir() @@ -64,15 +67,16 @@ pub fn try_install_circuit_artifacts(artifacts_type: &str) -> PathBuf { /// Install the latest circuit artifacts. /// /// This function will download the latest circuit artifacts from the S3 bucket and extract them -/// to the directory specified by [groth16_bn254_artifacts_dir()]. +/// to the directory specified by [`groth16_bn254_artifacts_dir()`]. #[cfg(any(feature = "network", feature = "network"))] +#[allow(clippy::needless_pass_by_value)] pub fn install_circuit_artifacts(build_dir: PathBuf, artifacts_type: &str) { // Create the build directory. std::fs::create_dir_all(&build_dir).expect("failed to create build directory"); // Download the artifacts. let download_url = - format!("{}/{}-{}.tar.gz", CIRCUIT_ARTIFACTS_URL_BASE, SP1_CIRCUIT_VERSION, artifacts_type); + format!("{CIRCUIT_ARTIFACTS_URL_BASE}/{SP1_CIRCUIT_VERSION}-{artifacts_type}.tar.gz"); let mut artifacts_tar_gz_file = tempfile::NamedTempFile::new().expect("failed to create tempfile"); let client = Client::builder().build().expect("failed to create reqwest client"); diff --git a/crates/sdk/src/network/builder.rs b/crates/sdk/src/network/builder.rs index cc07ba6737..bad19186e4 100644 --- a/crates/sdk/src/network/builder.rs +++ b/crates/sdk/src/network/builder.rs @@ -1,12 +1,13 @@ //! # Network Prover Builder //! -//! This module provides a builder for the [NetworkProver]. +//! This module provides a builder for the [`NetworkProver`]. use crate::NetworkProver; -/// A builder for the [NetworkProver]. +/// A builder for the [`NetworkProver`]. /// -/// The builder is used to configure the [NetworkProver] before it is built. +/// The builder is used to configure the [`NetworkProver`] before it is built. +#[derive(Default)] pub struct NetworkProverBuilder { pub(crate) private_key: Option, pub(crate) rpc_url: Option, @@ -25,7 +26,7 @@ impl NetworkProverBuilder { /// .private_key("...") /// .build(); /// ``` - pub fn private_key(mut self, private_key: String) -> Self { + #[must_use] pub fn private_key(mut self, private_key: String) -> Self { self.private_key = Some(private_key); self } @@ -43,15 +44,15 @@ impl NetworkProverBuilder { /// .rpc_url("...") /// .build(); /// ``` - pub fn rpc_url(mut self, rpc_url: String) -> Self { + #[must_use] pub fn rpc_url(mut self, rpc_url: String) -> Self { self.rpc_url = Some(rpc_url); self } - /// Builds a [NetworkProver]. + /// Builds a [`NetworkProver`]. /// /// # Details - /// This method will build a [NetworkProver] with the given parameters. If the private key is + /// This method will build a [`NetworkProver`] with the given parameters. If the private key is /// not provided, the method will look for the `NETWORK_PRIVATE_KEY` environment variable. /// /// # Example @@ -62,7 +63,7 @@ impl NetworkProverBuilder { /// .rpc_url("...") /// .build(); /// ``` - pub fn build(self) -> NetworkProver { + #[must_use] pub fn build(self) -> NetworkProver { let private_key = match self.private_key { Some(private_key) => private_key, None => std::env::var("NETWORK_PRIVATE_KEY").expect( @@ -83,8 +84,3 @@ impl NetworkProverBuilder { } } -impl Default for NetworkProverBuilder { - fn default() -> Self { - Self { private_key: None, rpc_url: None } - } -} diff --git a/crates/sdk/src/network/client.rs b/crates/sdk/src/network/client.rs index 4f64a28974..b70b2d610c 100644 --- a/crates/sdk/src/network/client.rs +++ b/crates/sdk/src/network/client.rs @@ -38,7 +38,7 @@ pub struct NetworkClient { } impl NetworkClient { - /// Creates a new [NetworkClient] with the given private key and rpc url. + /// Creates a new [`NetworkClient`] with the given private key and rpc url. /// /// # Example /// ```rust,no_run @@ -95,17 +95,14 @@ impl NetworkClient { let vk_hash = Self::get_vk_hash(vk)?; // Try to get the existing program. - match self.get_program(&vk_hash).await? { - Some(_) => { - // The program already exists. - Ok(vk_hash) - } - None => { - // The program doesn't exist, create it. - self.create_program(&vk_hash, vk, elf).await?; - log::info!("Registered program 0x{}", hex::encode(vk_hash.clone())); - Ok(vk_hash) - } + if (self.get_program(&vk_hash).await?).is_some() { + // The program already exists. + Ok(vk_hash) + } else { + // The program doesn't exist, create it. + self.create_program(&vk_hash, vk, elf).await?; + log::info!("Registered program 0x{}", hex::encode(vk_hash.clone())); + Ok(vk_hash) } } @@ -211,9 +208,9 @@ impl NetworkClient { /// # Details /// * `vk_hash`: The verifying key hash of the program to prove. Used to identify the program. /// * `stdin`: The standard input to provide to the program. - /// * `mode`: The [ProofMode] to use. + /// * `mode`: The [`ProofMode`] to use. /// * `version`: The version of the SP1 circuits to use. - /// * `strategy`: The [FulfillmentStrategy] to use. + /// * `strategy`: The [`FulfillmentStrategy`] to use. /// * `timeout_secs`: The timeout for the proof request in seconds. /// * `cycle_limit`: The cycle limit for the proof request. /// @@ -247,7 +244,7 @@ impl NetworkClient { let nonce = self.get_nonce().await?; let request_body = RequestProofRequestBody { nonce, - version: format!("sp1-{}", version), + version: format!("sp1-{version}"), vk_hash: vk_hash.to_vec(), mode: mode.into(), strategy: strategy.into(), diff --git a/crates/sdk/src/network/mod.rs b/crates/sdk/src/network/mod.rs index 8a6b1a1ae7..31e9f7cb95 100644 --- a/crates/sdk/src/network/mod.rs +++ b/crates/sdk/src/network/mod.rs @@ -7,6 +7,8 @@ pub mod prover; mod sign_message; #[rustfmt::skip] #[allow(missing_docs)] +#[allow(clippy::default_trait_access)] +#[allow(clippy::too_many_lines)] pub mod proto; pub mod builder; pub mod prove; diff --git a/crates/sdk/src/network/proto/artifact.rs b/crates/sdk/src/network/proto/artifact.rs index 0a87fe6519..e1ff3ad034 100644 --- a/crates/sdk/src/network/proto/artifact.rs +++ b/crates/sdk/src/network/proto/artifact.rs @@ -18,7 +18,7 @@ pub struct CreateArtifactResponse { pub mod artifact_store_client { #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] use tonic::codegen::http::Uri; - use tonic::codegen::*; + use tonic::codegen::{Body, Bytes, CompressionEncoding, GrpcMethod, InterceptedService, StdError, http}; #[derive(Debug, Clone)] pub struct ArtifactStoreClient { inner: tonic::client::Grpc, @@ -123,7 +123,7 @@ pub mod artifact_store_client { /// Generated server implementations. pub mod artifact_store_server { #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] - use tonic::codegen::*; + use tonic::codegen::{Arc, Body, BoxFuture, CompressionEncoding, Context, EnabledCompressionEncodings, InterceptedService, Poll, StdError, async_trait, empty_body, http}; /// Generated trait containing gRPC methods that should be implemented for use with ArtifactStoreServer. #[async_trait] pub trait ArtifactStore: std::marker::Send + std::marker::Sync + 'static { diff --git a/crates/sdk/src/network/proto/network.rs b/crates/sdk/src/network/proto/network.rs index dd0077db9a..52691b93ab 100644 --- a/crates/sdk/src/network/proto/network.rs +++ b/crates/sdk/src/network/proto/network.rs @@ -1120,19 +1120,19 @@ pub enum MessageFormat { Json = 2, } impl MessageFormat { - /// String value of the enum field names used in the ProtoBuf definition. + /// String value of the enum field names used in the `ProtoBuf` definition. /// /// The values are not transformed in any way and thus are considered stable - /// (if the ProtoBuf definition does not change) and safe for programmatic use. - pub fn as_str_name(&self) -> &'static str { + /// (if the `ProtoBuf` definition does not change) and safe for programmatic use. + #[must_use] pub fn as_str_name(&self) -> &'static str { match self { Self::UnspecifiedMessageFormat => "UNSPECIFIED_MESSAGE_FORMAT", Self::Binary => "BINARY", Self::Json => "JSON", } } - /// Creates an enum from field names used in the ProtoBuf definition. - pub fn from_str_name(value: &str) -> ::core::option::Option { + /// Creates an enum from field names used in the `ProtoBuf` definition. + #[must_use] pub fn from_str_name(value: &str) -> ::core::option::Option { match value { "UNSPECIFIED_MESSAGE_FORMAT" => Some(Self::UnspecifiedMessageFormat), "BINARY" => Some(Self::Binary), @@ -1167,11 +1167,11 @@ pub enum ProofMode { Groth16 = 4, } impl ProofMode { - /// String value of the enum field names used in the ProtoBuf definition. + /// String value of the enum field names used in the `ProtoBuf` definition. /// /// The values are not transformed in any way and thus are considered stable - /// (if the ProtoBuf definition does not change) and safe for programmatic use. - pub fn as_str_name(&self) -> &'static str { + /// (if the `ProtoBuf` definition does not change) and safe for programmatic use. + #[must_use] pub fn as_str_name(&self) -> &'static str { match self { Self::UnspecifiedProofMode => "UNSPECIFIED_PROOF_MODE", Self::Core => "CORE", @@ -1180,8 +1180,8 @@ impl ProofMode { Self::Groth16 => "GROTH16", } } - /// Creates an enum from field names used in the ProtoBuf definition. - pub fn from_str_name(value: &str) -> ::core::option::Option { + /// Creates an enum from field names used in the `ProtoBuf` definition. + #[must_use] pub fn from_str_name(value: &str) -> ::core::option::Option { match value { "UNSPECIFIED_PROOF_MODE" => Some(Self::UnspecifiedProofMode), "CORE" => Some(Self::Core), @@ -1219,11 +1219,11 @@ pub enum FulfillmentStrategy { Auction = 3, } impl FulfillmentStrategy { - /// String value of the enum field names used in the ProtoBuf definition. + /// String value of the enum field names used in the `ProtoBuf` definition. /// /// The values are not transformed in any way and thus are considered stable - /// (if the ProtoBuf definition does not change) and safe for programmatic use. - pub fn as_str_name(&self) -> &'static str { + /// (if the `ProtoBuf` definition does not change) and safe for programmatic use. + #[must_use] pub fn as_str_name(&self) -> &'static str { match self { Self::UnspecifiedFulfillmentStrategy => "UNSPECIFIED_FULFILLMENT_STRATEGY", Self::Hosted => "HOSTED", @@ -1231,8 +1231,8 @@ impl FulfillmentStrategy { Self::Auction => "AUCTION", } } - /// Creates an enum from field names used in the ProtoBuf definition. - pub fn from_str_name(value: &str) -> ::core::option::Option { + /// Creates an enum from field names used in the `ProtoBuf` definition. + #[must_use] pub fn from_str_name(value: &str) -> ::core::option::Option { match value { "UNSPECIFIED_FULFILLMENT_STRATEGY" => Some(Self::UnspecifiedFulfillmentStrategy), "HOSTED" => Some(Self::Hosted), @@ -1269,11 +1269,11 @@ pub enum FulfillmentStatus { Unfulfillable = 4, } impl FulfillmentStatus { - /// String value of the enum field names used in the ProtoBuf definition. + /// String value of the enum field names used in the `ProtoBuf` definition. /// /// The values are not transformed in any way and thus are considered stable - /// (if the ProtoBuf definition does not change) and safe for programmatic use. - pub fn as_str_name(&self) -> &'static str { + /// (if the `ProtoBuf` definition does not change) and safe for programmatic use. + #[must_use] pub fn as_str_name(&self) -> &'static str { match self { Self::UnspecifiedFulfillmentStatus => "UNSPECIFIED_FULFILLMENT_STATUS", Self::Requested => "REQUESTED", @@ -1282,8 +1282,8 @@ impl FulfillmentStatus { Self::Unfulfillable => "UNFULFILLABLE", } } - /// Creates an enum from field names used in the ProtoBuf definition. - pub fn from_str_name(value: &str) -> ::core::option::Option { + /// Creates an enum from field names used in the `ProtoBuf` definition. + #[must_use] pub fn from_str_name(value: &str) -> ::core::option::Option { match value { "UNSPECIFIED_FULFILLMENT_STATUS" => Some(Self::UnspecifiedFulfillmentStatus), "REQUESTED" => Some(Self::Requested), @@ -1319,11 +1319,11 @@ pub enum ExecutionStatus { Unexecutable = 3, } impl ExecutionStatus { - /// String value of the enum field names used in the ProtoBuf definition. + /// String value of the enum field names used in the `ProtoBuf` definition. /// /// The values are not transformed in any way and thus are considered stable - /// (if the ProtoBuf definition does not change) and safe for programmatic use. - pub fn as_str_name(&self) -> &'static str { + /// (if the `ProtoBuf` definition does not change) and safe for programmatic use. + #[must_use] pub fn as_str_name(&self) -> &'static str { match self { Self::UnspecifiedExecutionStatus => "UNSPECIFIED_EXECUTION_STATUS", Self::Unexecuted => "UNEXECUTED", @@ -1331,8 +1331,8 @@ impl ExecutionStatus { Self::Unexecutable => "UNEXECUTABLE", } } - /// Creates an enum from field names used in the ProtoBuf definition. - pub fn from_str_name(value: &str) -> ::core::option::Option { + /// Creates an enum from field names used in the `ProtoBuf` definition. + #[must_use] pub fn from_str_name(value: &str) -> ::core::option::Option { match value { "UNSPECIFIED_EXECUTION_STATUS" => Some(Self::UnspecifiedExecutionStatus), "UNEXECUTED" => Some(Self::Unexecuted), @@ -1373,11 +1373,11 @@ pub enum BalanceOperation { Bid = 6, } impl BalanceOperation { - /// String value of the enum field names used in the ProtoBuf definition. + /// String value of the enum field names used in the `ProtoBuf` definition. /// /// The values are not transformed in any way and thus are considered stable - /// (if the ProtoBuf definition does not change) and safe for programmatic use. - pub fn as_str_name(&self) -> &'static str { + /// (if the `ProtoBuf` definition does not change) and safe for programmatic use. + #[must_use] pub fn as_str_name(&self) -> &'static str { match self { Self::UnspecifiedBalanceChangeOperation => "UNSPECIFIED_BALANCE_CHANGE_OPERATION", Self::Deposit => "DEPOSIT", @@ -1388,8 +1388,8 @@ impl BalanceOperation { Self::Bid => "BID", } } - /// Creates an enum from field names used in the ProtoBuf definition. - pub fn from_str_name(value: &str) -> ::core::option::Option { + /// Creates an enum from field names used in the `ProtoBuf` definition. + #[must_use] pub fn from_str_name(value: &str) -> ::core::option::Option { match value { "UNSPECIFIED_BALANCE_CHANGE_OPERATION" => Some(Self::UnspecifiedBalanceChangeOperation), "DEPOSIT" => Some(Self::Deposit), @@ -1406,7 +1406,7 @@ impl BalanceOperation { pub mod prover_network_client { #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] use tonic::codegen::http::Uri; - use tonic::codegen::*; + use tonic::codegen::{Body, Bytes, CompressionEncoding, GrpcMethod, InterceptedService, StdError, http}; #[derive(Debug, Clone)] pub struct ProverNetworkClient { inner: tonic::client::Grpc, @@ -2181,7 +2181,7 @@ pub mod prover_network_client { /// Generated server implementations. pub mod prover_network_server { #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] - use tonic::codegen::*; + use tonic::codegen::{Arc, Body, BoxFuture, CompressionEncoding, Context, EnabledCompressionEncodings, InterceptedService, Poll, StdError, async_trait, empty_body, http}; /// Generated trait containing gRPC methods that should be implemented for use with ProverNetworkServer. #[async_trait] pub trait ProverNetwork: std::marker::Send + std::marker::Sync + 'static { diff --git a/crates/sdk/src/network/prove.rs b/crates/sdk/src/network/prove.rs index f7305e5937..d57a320b88 100644 --- a/crates/sdk/src/network/prove.rs +++ b/crates/sdk/src/network/prove.rs @@ -26,7 +26,7 @@ pub struct NetworkProveBuilder<'a> { } impl<'a> NetworkProveBuilder<'a> { - /// Set the proof kind to [SP1ProofMode::Core] mode. + /// Set the proof kind to [`SP1ProofMode::Core`] mode. /// /// # Details /// This is the default mode for the prover. The proofs grow linearly in size with the number @@ -39,16 +39,16 @@ impl<'a> NetworkProveBuilder<'a> { /// .core() /// .run(); /// ``` - pub fn core(mut self) -> Self { + #[must_use] pub fn core(mut self) -> Self { self.mode = SP1ProofMode::Core; self } - /// Set the proof kind to [SP1ProofMode::Compressed] mode. + /// Set the proof kind to [`SP1ProofMode::Compressed`] mode. /// /// # Details /// This mode produces a proof that is of constant size, regardless of the number of cycles. It - /// takes longer to prove than [SP1ProofMode::Core] due to the need to recursively aggregate + /// takes longer to prove than [`SP1ProofMode::Core`] due to the need to recursively aggregate /// proofs into a single proof. /// /// # Example @@ -58,17 +58,17 @@ impl<'a> NetworkProveBuilder<'a> { /// .compressed() /// .run(); /// ``` - pub fn compressed(mut self) -> Self { + #[must_use] pub fn compressed(mut self) -> Self { self.mode = SP1ProofMode::Compressed; self } - /// Set the proof mode to [SP1ProofMode::Plonk] mode. + /// Set the proof mode to [`SP1ProofMode::Plonk`] mode. /// /// # Details /// This mode produces a const size PLONK proof that can be verified on chain for roughly ~300k /// gas. This mode is useful for producing a maximally small proof that can be verified on - /// chain. For more efficient SNARK wrapping, you can use the [SP1ProofMode::Groth16] mode but + /// chain. For more efficient SNARK wrapping, you can use the [`SP1ProofMode::Groth16`] mode but /// this mode is more . /// /// # Example @@ -78,12 +78,12 @@ impl<'a> NetworkProveBuilder<'a> { /// .plonk() /// .run(); /// ``` - pub fn plonk(mut self) -> Self { + #[must_use] pub fn plonk(mut self) -> Self { self.mode = SP1ProofMode::Plonk; self } - /// Set the proof mode to [SP1ProofMode::Groth16] mode. + /// Set the proof mode to [`SP1ProofMode::Groth16`] mode. /// /// # Details /// This mode produces a Groth16 proof that can be verified on chain for roughly ~100k gas. This @@ -96,12 +96,12 @@ impl<'a> NetworkProveBuilder<'a> { /// .groth16() /// .run(); /// ``` - pub fn groth16(mut self) -> Self { + #[must_use] pub fn groth16(mut self) -> Self { self.mode = SP1ProofMode::Groth16; self } - /// Set the proof mode to the given [SP1ProofMode]. + /// Set the proof mode to the given [`SP1ProofMode`]. /// /// # Details /// This method is useful for setting the proof mode to a custom mode. @@ -113,7 +113,7 @@ impl<'a> NetworkProveBuilder<'a> { /// .mode(SP1ProofMode::Groth16) /// .run(); /// ``` - pub fn mode(mut self, mode: SP1ProofMode) -> Self { + #[must_use] pub fn mode(mut self, mode: SP1ProofMode) -> Self { self.mode = mode; self } @@ -122,7 +122,7 @@ impl<'a> NetworkProveBuilder<'a> { /// /// # Details /// This method sets the timeout for the proof's generation. If the proof is not generated - /// within the timeout, the [NetworkProveBuilder::run] will return an error. + /// within the timeout, the [`NetworkProveBuilder::run`] will return an error. /// /// # Example /// ```rust,no_run @@ -131,7 +131,7 @@ impl<'a> NetworkProveBuilder<'a> { /// .timeout(Duration::from_secs(60)) /// .run(); /// ``` - pub fn timeout(mut self, timeout: Duration) -> Self { + #[must_use] pub fn timeout(mut self, timeout: Duration) -> Self { self.timeout = Some(timeout); self } @@ -151,7 +151,7 @@ impl<'a> NetworkProveBuilder<'a> { /// .skip_simulation(true) /// .run(); /// ``` - pub fn skip_simulation(mut self, skip_simulation: bool) -> Self { + #[must_use] pub fn skip_simulation(mut self, skip_simulation: bool) -> Self { self.skip_simulation = skip_simulation; self } @@ -167,7 +167,7 @@ impl<'a> NetworkProveBuilder<'a> { /// .strategy(FulfillmentStrategy::Hosted) /// .build(); /// ``` - pub fn strategy(mut self, strategy: FulfillmentStrategy) -> Self { + #[must_use] pub fn strategy(mut self, strategy: FulfillmentStrategy) -> Self { self.strategy = strategy; self } @@ -198,7 +198,7 @@ impl<'a> NetworkProveBuilder<'a> { sp1_dump(&pk.elf, &stdin); - block_on(prover.prove_impl(pk, &stdin, mode.into(), strategy, timeout, skip_simulation)) + block_on(prover.prove_impl(pk, &stdin, mode, strategy, timeout, skip_simulation)) } /// Run the prover with the built arguments asynchronously. @@ -227,6 +227,6 @@ impl<'a> NetworkProveBuilder<'a> { sp1_dump(&pk.elf, &stdin); - prover.prove_impl(pk, &stdin, mode.into(), strategy, timeout, skip_simulation).await + prover.prove_impl(pk, &stdin, mode, strategy, timeout, skip_simulation).await } } diff --git a/crates/sdk/src/network/prover.rs b/crates/sdk/src/network/prover.rs index 09c8908759..c1466cdfd7 100644 --- a/crates/sdk/src/network/prover.rs +++ b/crates/sdk/src/network/prover.rs @@ -1,6 +1,6 @@ //! # Network Prover //! -//! This module provides an implementation of the [crate::Prover] trait that can generate proofs +//! This module provides an implementation of the [`crate::Prover`] trait that can generate proofs //! on a remote RPC server. use std::time::{Duration, Instant}; @@ -18,21 +18,21 @@ use crate::{ use anyhow::Result; use backoff::{future::retry, Error as BackoffError, ExponentialBackoff}; use serde::de::DeserializeOwned; -use sp1_core_executor::SP1ContextBuilder; +use sp1_core_executor::{SP1Context, SP1ContextBuilder}; use sp1_core_machine::io::SP1Stdin; use sp1_prover::{components::CpuProverComponents, SP1Prover, SP1_CIRCUIT_VERSION}; use tonic::Code; use {crate::utils::block_on, tokio::time::sleep}; -/// An implementation of [crate::ProverClient] that can generate proofs on a remote RPC server. +/// An implementation of [`crate::ProverClient`] that can generate proofs on a remote RPC server. pub struct NetworkProver { pub(crate) client: NetworkClient, pub(crate) prover: CpuProver, } impl NetworkProver { - /// Creates a new [NetworkProver] with the given private key. + /// Creates a new [`NetworkProver`] with the given private key. /// /// # Details /// * `private_key`: The Secp256k1 private key to use for signing requests. @@ -42,6 +42,7 @@ impl NetworkProver { /// ```rust,no_run /// let prover = NetworkProver::new("...", "..."); /// ``` + #[must_use] pub fn new(private_key: &str, rpc_url: &str) -> Self { let prover = CpuProver::new(); let client = NetworkClient::new(private_key, rpc_url); @@ -63,7 +64,7 @@ impl NetworkProver { /// ``` pub fn execute<'a>(&'a self, elf: &'a [u8], stdin: &SP1Stdin) -> CpuExecuteBuilder<'a> { CpuExecuteBuilder { - prover: &self.prover.inner(), + prover: self.prover.inner(), elf, stdin: stdin.clone(), context_builder: SP1ContextBuilder::default(), @@ -122,7 +123,7 @@ impl NetworkProver { timeout: Option, ) -> Result> { // Get the timeout. - let timeout_secs = timeout.map(|dur| dur.as_secs()).unwrap_or(DEFAULT_TIMEOUT_SECS); + let timeout_secs = timeout.map_or(DEFAULT_TIMEOUT_SECS, |dur| dur.as_secs()); // Log the request. log::info!("Requesting proof:"); @@ -187,11 +188,7 @@ impl NetworkProver { } let remaining_timeout = timeout.map(|t| { let elapsed = start_time.elapsed(); - if elapsed < t { - t - elapsed - } else { - Duration::from_secs(0) - } + if elapsed < t { t - elapsed } else { Duration::from_secs(0) } }); // Get status with retries. @@ -239,20 +236,20 @@ impl NetworkProver { skip_simulation: bool, ) -> Result { let vk_hash = self.register_program(&pk.vk, &pk.elf).await?; - let cycle_limit = self.get_cycle_limit(&pk.elf, &stdin, skip_simulation)?; + let cycle_limit = self.get_cycle_limit(&pk.elf, stdin, skip_simulation)?; let request_id = self - .request_proof(&vk_hash, &stdin, mode.into(), strategy, cycle_limit, timeout) + .request_proof(&vk_hash, stdin, mode.into(), strategy, cycle_limit, timeout) .await?; self.wait_proof(&request_id, timeout).await } fn get_cycle_limit(&self, elf: &[u8], stdin: &SP1Stdin, skip_simulation: bool) -> Result { - if !skip_simulation { - let (_, report) = self.prover.inner().execute(elf, stdin, Default::default())?; + if skip_simulation { + Ok(DEFAULT_CYCLE_LIMIT) + } else { + let (_, report) = self.prover.inner().execute(elf, stdin, SP1Context::default())?; let cycles = report.total_instruction_count(); Ok(cycles) - } else { - Ok(DEFAULT_CYCLE_LIMIT) } } } diff --git a/crates/sdk/src/network/sign_message.rs b/crates/sdk/src/network/sign_message.rs index 13ee10b716..9d12891525 100644 --- a/crates/sdk/src/network/sign_message.rs +++ b/crates/sdk/src/network/sign_message.rs @@ -83,6 +83,7 @@ macro_rules! impl_signed_message { impl_signed_message!(RequestProofRequest); impl_signed_message!(FulfillProofRequest); +#[allow(clippy::needless_pass_by_value)] pub fn recover_sender_raw( signature: Vec, message: Vec, diff --git a/crates/sdk/src/proof.rs b/crates/sdk/src/proof.rs index e8fd26983b..0eb556d0d5 100644 --- a/crates/sdk/src/proof.rs +++ b/crates/sdk/src/proof.rs @@ -56,12 +56,13 @@ impl SP1ProofWithPublicValues { .map_err(Into::into) } - /// The proof in the byte encoding the onchain verifiers accepts for [SP1ProofMode::Groth16] and - /// [SP1ProofMode::Plonk] proofs. + /// The proof in the byte encoding the onchain verifiers accepts for [`SP1ProofMode::Groth16`] and + /// [`SP1ProofMode::Plonk`] proofs. /// /// # Details /// The bytes consist of the first four bytes of Groth16/Plonk vkey hash followed by the encoded /// proof, in a form optimized for onchain verification. + #[must_use] pub fn bytes(&self) -> Vec { match &self.proof { SP1Proof::Plonk(plonk_proof) => { @@ -105,11 +106,11 @@ mod tests { proof: SP1Proof::Plonk(PlonkBn254Proof { encoded_proof: "ab".to_string(), plonk_vkey_hash: [0; 32], - public_inputs: ["".to_string(), "".to_string()], - raw_proof: "".to_string(), + public_inputs: [String::new(), String::new()], + raw_proof: String::new(), }), public_values: SP1PublicValues::new(), - sp1_version: "".to_string(), + sp1_version: String::new(), }; let expected_bytes = [vec![0, 0, 0, 0], hex::decode("ab").unwrap()].concat(); assert_eq!(plonk_proof.bytes(), expected_bytes); @@ -121,11 +122,11 @@ mod tests { proof: SP1Proof::Groth16(Groth16Bn254Proof { encoded_proof: "ab".to_string(), groth16_vkey_hash: [0; 32], - public_inputs: ["".to_string(), "".to_string()], - raw_proof: "".to_string(), + public_inputs: [String::new(), String::new()], + raw_proof: String::new(), }), public_values: SP1PublicValues::new(), - sp1_version: "".to_string(), + sp1_version: String::new(), }; let expected_bytes = [vec![0, 0, 0, 0], hex::decode("ab").unwrap()].concat(); assert_eq!(groth16_proof.bytes(), expected_bytes); @@ -135,13 +136,13 @@ mod tests { fn test_mock_plonk_proof_bytes() { let mock_plonk_proof = SP1ProofWithPublicValues { proof: SP1Proof::Plonk(PlonkBn254Proof { - encoded_proof: "".to_string(), + encoded_proof: String::new(), plonk_vkey_hash: [0; 32], - public_inputs: ["".to_string(), "".to_string()], - raw_proof: "".to_string(), + public_inputs: [String::new(), String::new()], + raw_proof: String::new(), }), public_values: SP1PublicValues::new(), - sp1_version: "".to_string(), + sp1_version: String::new(), }; assert_eq!(mock_plonk_proof.bytes(), Vec::::new()); } @@ -150,13 +151,13 @@ mod tests { fn test_mock_groth16_proof_bytes() { let mock_groth16_proof = SP1ProofWithPublicValues { proof: SP1Proof::Groth16(Groth16Bn254Proof { - encoded_proof: "".to_string(), + encoded_proof: String::new(), groth16_vkey_hash: [0; 32], - public_inputs: ["".to_string(), "".to_string()], - raw_proof: "".to_string(), + public_inputs: [String::new(), String::new()], + raw_proof: String::new(), }), public_values: SP1PublicValues::new(), - sp1_version: "".to_string(), + sp1_version: String::new(), }; assert_eq!(mock_groth16_proof.bytes(), Vec::::new()); } @@ -169,8 +170,8 @@ mod tests { let core_proof = SP1ProofWithPublicValues { proof: SP1Proof::Core(vec![]), public_values: SP1PublicValues::new(), - sp1_version: "".to_string(), + sp1_version: String::new(), }; - core_proof.bytes(); + println!("{:?}", core_proof.bytes()); } } diff --git a/crates/sdk/src/prover.rs b/crates/sdk/src/prover.rs index 9176e0ec88..83f04deb95 100644 --- a/crates/sdk/src/prover.rs +++ b/crates/sdk/src/prover.rs @@ -7,7 +7,7 @@ use std::borrow::Borrow; use anyhow::Result; use itertools::Itertools; use p3_field::PrimeField32; -use sp1_core_executor::ExecutionReport; +use sp1_core_executor::{ExecutionReport, SP1Context}; use sp1_core_machine::{io::SP1Stdin, SP1_CIRCUIT_VERSION}; use sp1_primitives::io::SP1PublicValues; use sp1_prover::{ @@ -22,7 +22,7 @@ use crate::{SP1Proof, SP1ProofMode, SP1ProofWithPublicValues}; /// A basic set of primitives that each prover variant must implement. pub trait Prover: Send + Sync { - /// The inner [SP1Prover] struct used by the prover. + /// The inner [`SP1Prover`] struct used by the prover. fn inner(&self) -> &SP1Prover; /// The version of the current SP1 circuit. @@ -35,7 +35,7 @@ pub trait Prover: Send + Sync { /// Executes the program on the given input. fn execute(&self, elf: &[u8], stdin: &SP1Stdin) -> Result<(SP1PublicValues, ExecutionReport)> { - Ok(self.inner().execute(elf, stdin, Default::default())?) + Ok(self.inner().execute(elf, stdin, SP1Context::default())?) } /// Proves the given program on the given input in the given proof mode. @@ -47,8 +47,8 @@ pub trait Prover: Send + Sync { ) -> Result; /// Verify that an SP1 proof is valid given its vkey and metadata. - /// For Plonk proofs, verifies that the public inputs of the PlonkBn254 proof match - /// the hash of the VK and the committed public values of the SP1ProofWithPublicValues. + /// For Plonk proofs, verifies that the public inputs of the `PlonkBn254` proof match + /// the hash of the VK and the committed public values of the `SP1ProofWithPublicValues`. fn verify( &self, bundle: &SP1ProofWithPublicValues, @@ -58,7 +58,7 @@ pub trait Prover: Send + Sync { } } -/// An error that occurs when calling [Prover::verify]. +/// An error that occurs when calling [`Prover::verify`]. #[derive(Error, Debug)] pub enum SP1VerificationError { /// An error that occurs when the public values are invalid. From d38a21f2ac8343f8f0f50803c2101b00fe6a5020 Mon Sep 17 00:00:00 2001 From: jtguibas Date: Thu, 19 Dec 2024 20:59:05 +0000 Subject: [PATCH 35/36] doc comments --- crates/sdk/src/client.rs | 63 +++++++++----- crates/sdk/src/cpu/builder.rs | 11 ++- crates/sdk/src/cpu/execute.rs | 28 ++++++- crates/sdk/src/cpu/mod.rs | 19 ++++- crates/sdk/src/cpu/prove.rs | 84 ++++++++++++++++--- crates/sdk/src/cuda/builder.rs | 5 +- crates/sdk/src/cuda/mod.rs | 19 ++++- crates/sdk/src/cuda/prove.rs | 63 +++++++++++--- crates/sdk/src/env/mod.rs | 36 +++++--- crates/sdk/src/env/prove.rs | 48 +++++++++-- crates/sdk/src/lib.rs | 2 +- crates/sdk/src/network/builder.rs | 22 +++-- crates/sdk/src/network/client.rs | 47 ----------- crates/sdk/src/network/mod.rs | 3 + crates/sdk/src/network/prove.rs | 131 +++++++++++++++++++++++------- crates/sdk/src/network/prover.rs | 38 +++++++-- 16 files changed, 447 insertions(+), 172 deletions(-) diff --git a/crates/sdk/src/client.rs b/crates/sdk/src/client.rs index 9faca5da02..b0d20c6dc9 100644 --- a/crates/sdk/src/client.rs +++ b/crates/sdk/src/client.rs @@ -24,7 +24,8 @@ impl ProverClient { /// ``` #[deprecated(since = "4.0.0", note = "use `ProverClient::from_env()` instead")] #[allow(clippy::new_ret_no_self)] - #[must_use] pub fn new() -> EnvProver { + #[must_use] + pub fn new() -> EnvProver { Self::from_env() } @@ -32,20 +33,26 @@ impl ProverClient { /// /// # Usage /// ```no_run - /// use sp1_sdk::ProverClient; + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; /// /// std::env::set_var("SP1_PROVER", "network"); - /// std::env::set_var("SP1_PRIVATE_KEY", "..."); + /// std::env::set_var("NETWORK_PRIVATE_KEY", "..."); /// let prover = ProverClient::from_env(); + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let (pk, vk) = prover.setup(elf); - /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); + /// let proof = prover.prove(&pk, &stdin).compressed().run().unwrap(); /// ``` - #[must_use] pub fn from_env() -> EnvProver { + #[must_use] + pub fn from_env() -> EnvProver { EnvProver::new() } /// Creates a new [`ProverClientBuilder`] so that you can configure the prover client. - #[must_use] pub fn builder() -> ProverClientBuilder { + #[must_use] + pub fn builder() -> ProverClientBuilder { ProverClientBuilder } } @@ -58,13 +65,17 @@ impl ProverClientBuilder { /// /// # Example /// ```no_run - /// use sp1_sdk::ProverClient; + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); /// /// let prover = ProverClient::builder().mock().build(); /// let (pk, vk) = prover.setup(elf); - /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); + /// let proof = prover.prove(&pk, &stdin).compressed().run().unwrap(); /// ``` - #[must_use] pub fn mock(&self) -> CpuProverBuilder { + #[must_use] + pub fn mock(&self) -> CpuProverBuilder { CpuProverBuilder { mock: true } } @@ -72,13 +83,17 @@ impl ProverClientBuilder { /// /// # Usage /// ```no_run - /// use sp1_sdk::ProverClient; + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); /// /// let prover = ProverClient::builder().cpu().build(); /// let (pk, vk) = prover.setup(elf); - /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); + /// let proof = prover.prove(&pk, &stdin).compressed().run().unwrap(); /// ``` - #[must_use] pub fn cpu(&self) -> CpuProverBuilder { + #[must_use] + pub fn cpu(&self) -> CpuProverBuilder { CpuProverBuilder { mock: false } } @@ -86,13 +101,17 @@ impl ProverClientBuilder { /// /// # Example /// ```no_run - /// use sp1_sdk::ProverClient; + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; /// - /// let prover = ProverClient::cuda(); + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// + /// let prover = ProverClient::builder().cuda().build(); /// let (pk, vk) = prover.setup(elf); - /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); + /// let proof = prover.prove(&pk, &stdin).compressed().run().unwrap(); /// ``` - #[must_use] pub fn cuda(&self) -> CudaProverBuilder { + #[must_use] + pub fn cuda(&self) -> CudaProverBuilder { CudaProverBuilder } @@ -100,14 +119,18 @@ impl ProverClientBuilder { /// /// # Example /// ```no_run - /// use sp1_sdk::ProverClient; + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); /// - /// let prover = ProverClient::network().build(); + /// let prover = ProverClient::builder().network().build(); /// let (pk, vk) = prover.setup(elf); - /// let proof = prover.prove(&pk, stdin).compressed().run().unwrap(); + /// let proof = prover.prove(&pk, &stdin).compressed().run().unwrap(); /// ``` #[cfg(feature = "network")] - #[must_use] pub fn network(&self) -> NetworkProverBuilder { + #[must_use] + pub fn network(&self) -> NetworkProverBuilder { NetworkProverBuilder { private_key: None, rpc_url: None } } } diff --git a/crates/sdk/src/cpu/builder.rs b/crates/sdk/src/cpu/builder.rs index 8f46c01477..3bd17ebc2f 100644 --- a/crates/sdk/src/cpu/builder.rs +++ b/crates/sdk/src/cpu/builder.rs @@ -20,13 +20,12 @@ impl CpuProverBuilder { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::ProverClient; + /// /// let prover = ProverClient::builder().mock().build(); /// ``` - #[must_use] pub fn build(self) -> CpuProver { - if self.mock { - CpuProver::mock() - } else { - CpuProver::new() - } + #[must_use] + pub fn build(self) -> CpuProver { + if self.mock { CpuProver::mock() } else { CpuProver::new() } } } diff --git a/crates/sdk/src/cpu/execute.rs b/crates/sdk/src/cpu/execute.rs index 17c0a45393..4a9ab56b8c 100644 --- a/crates/sdk/src/cpu/execute.rs +++ b/crates/sdk/src/cpu/execute.rs @@ -33,8 +33,13 @@ impl<'a> CpuExecuteBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cpu().build(); - /// let builder = client.execute(elf, stdin) + /// let builder = client.execute(elf, &stdin) /// .with_hook(1, |env, data| { /// println!("Hook triggered with data: {:?}", data); /// vec![vec![1, 2, 3]] @@ -63,8 +68,13 @@ impl<'a> CpuExecuteBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cpu().build(); - /// let builder = client.execute(elf, stdin) + /// let builder = client.execute(elf, &stdin) /// .cycle_limit(1000000) /// .run(); /// ``` @@ -86,8 +96,13 @@ impl<'a> CpuExecuteBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cpu().build(); - /// let builder = client.execute(elf, stdin) + /// let builder = client.execute(elf, &stdin) /// .deferred_proof_verification(false) /// .run(); /// ``` @@ -105,8 +120,13 @@ impl<'a> CpuExecuteBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cpu().build(); - /// let (public_values, execution_report) = client.execute(elf, stdin) + /// let (public_values, execution_report) = client.execute(elf, &stdin) /// .run() /// .unwrap(); /// ``` diff --git a/crates/sdk/src/cpu/mod.rs b/crates/sdk/src/cpu/mod.rs index 7013fde172..c4038cae4a 100644 --- a/crates/sdk/src/cpu/mod.rs +++ b/crates/sdk/src/cpu/mod.rs @@ -59,8 +59,13 @@ impl CpuProver { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cpu().build(); - /// let (public_values, execution_report) = client.execute(elf, stdin) + /// let (public_values, execution_report) = client.execute(elf, &stdin) /// .run() /// .unwrap(); /// ``` @@ -80,17 +85,23 @@ impl CpuProver { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cpu().build(); - /// let builder = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .core() /// .run(); /// ``` - pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> CpuProveBuilder<'a> { + pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: &SP1Stdin) -> CpuProveBuilder<'a> { CpuProveBuilder { prover: self, mode: SP1ProofMode::Core, pk, - stdin, + stdin: stdin.clone(), context_builder: SP1ContextBuilder::default(), core_opts: SP1CoreOpts::default(), recursion_opts: SP1CoreOpts::recursion(), diff --git a/crates/sdk/src/cpu/prove.rs b/crates/sdk/src/cpu/prove.rs index 29a27fbd4d..4101a8071b 100644 --- a/crates/sdk/src/cpu/prove.rs +++ b/crates/sdk/src/cpu/prove.rs @@ -35,8 +35,14 @@ impl<'a> CpuProveBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cpu().build(); - /// let builder = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .core() /// .run(); /// ``` @@ -55,8 +61,14 @@ impl<'a> CpuProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cpu(); - /// let builder = client.prove(pk, stdin) + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// + /// let client = ProverClient::builder().cpu().build(); + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .compressed() /// .run(); /// ``` @@ -76,8 +88,14 @@ impl<'a> CpuProveBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cpu().build(); - /// let builder = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .plonk() /// .run(); /// ``` @@ -95,8 +113,14 @@ impl<'a> CpuProveBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cpu().build(); - /// let builder = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .groth16() /// .run(); /// ``` @@ -113,8 +137,14 @@ impl<'a> CpuProveBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover, SP1ProofMode}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cpu().build(); - /// let builder = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .mode(SP1ProofMode::Groth16) /// .run(); /// ``` @@ -134,8 +164,14 @@ impl<'a> CpuProveBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cpu().build(); - /// let builder = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .shard_size(1 << 16) /// .run(); /// ``` @@ -154,8 +190,14 @@ impl<'a> CpuProveBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cpu().build(); - /// let builder = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .shard_batch_size(4) /// .run(); /// ``` @@ -173,8 +215,14 @@ impl<'a> CpuProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cpu(); - /// let builder = client.prove(pk, stdin) + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// + /// let client = ProverClient::builder().cpu().build(); + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .cycle_limit(1000000) /// .run(); /// ``` @@ -192,8 +240,14 @@ impl<'a> CpuProveBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cpu().build(); - /// let builder = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .deferred_proof_verification(false) /// .run(); /// ``` @@ -211,8 +265,14 @@ impl<'a> CpuProveBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cpu().build(); - /// let (proof, public_values) = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let proof = client.prove(&pk, &stdin) /// .run() /// .unwrap(); /// ``` diff --git a/crates/sdk/src/cuda/builder.rs b/crates/sdk/src/cuda/builder.rs index 051b1b3d5a..a447d3f78b 100644 --- a/crates/sdk/src/cuda/builder.rs +++ b/crates/sdk/src/cuda/builder.rs @@ -20,9 +20,12 @@ impl CudaProverBuilder { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::ProverClient; + /// /// let prover = ProverClient::builder().cuda().build(); /// ``` - #[must_use] pub fn build(self) -> CudaProver { + #[must_use] + pub fn build(self) -> CudaProver { CudaProver::new(SP1Prover::new()) } } diff --git a/crates/sdk/src/cuda/mod.rs b/crates/sdk/src/cuda/mod.rs index 0aa4e55a73..c20a8e6dfc 100644 --- a/crates/sdk/src/cuda/mod.rs +++ b/crates/sdk/src/cuda/mod.rs @@ -42,8 +42,13 @@ impl CudaProver { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cuda().build(); - /// let (public_values, execution_report) = client.execute(elf, stdin) + /// let (public_values, execution_report) = client.execute(elf, &stdin) /// .run() /// .unwrap(); /// ``` @@ -63,13 +68,19 @@ impl CudaProver { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cuda().build(); - /// let (proof, public_values) = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let proof = client.prove(&pk, &stdin) /// .run() /// .unwrap(); /// ``` - pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> CudaProveBuilder<'a> { - CudaProveBuilder { prover: self, mode: SP1ProofMode::Core, pk, stdin } + pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: &'a SP1Stdin) -> CudaProveBuilder<'a> { + CudaProveBuilder { prover: self, mode: SP1ProofMode::Core, pk, stdin: stdin.clone() } } } diff --git a/crates/sdk/src/cuda/prove.rs b/crates/sdk/src/cuda/prove.rs index 9a829ef0d5..642dd97535 100644 --- a/crates/sdk/src/cuda/prove.rs +++ b/crates/sdk/src/cuda/prove.rs @@ -29,12 +29,19 @@ impl<'a> CudaProveBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cuda().build(); - /// let builder = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .core() /// .run(); /// ``` - #[must_use] pub fn core(mut self) -> Self { + #[must_use] + pub fn core(mut self) -> Self { self.mode = SP1ProofMode::Core; self } @@ -48,12 +55,19 @@ impl<'a> CudaProveBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cuda().build(); - /// let builder = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .compressed() /// .run(); /// ``` - #[must_use] pub fn compressed(mut self) -> Self { + #[must_use] + pub fn compressed(mut self) -> Self { self.mode = SP1ProofMode::Compressed; self } @@ -68,12 +82,19 @@ impl<'a> CudaProveBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cuda().build(); - /// let builder = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .plonk() /// .run(); /// ``` - #[must_use] pub fn plonk(mut self) -> Self { + #[must_use] + pub fn plonk(mut self) -> Self { self.mode = SP1ProofMode::Plonk; self } @@ -86,12 +107,19 @@ impl<'a> CudaProveBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cuda().build(); - /// let builder = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .groth16() /// .run(); /// ``` - #[must_use] pub fn groth16(mut self) -> Self { + #[must_use] + pub fn groth16(mut self) -> Self { self.mode = SP1ProofMode::Groth16; self } @@ -103,12 +131,19 @@ impl<'a> CudaProveBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, SP1ProofMode, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cuda().build(); - /// let builder = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .mode(SP1ProofMode::Groth16) /// .run(); /// ``` - #[must_use] pub fn mode(mut self, mode: SP1ProofMode) -> Self { + #[must_use] + pub fn mode(mut self, mode: SP1ProofMode) -> Self { self.mode = mode; self } @@ -121,8 +156,14 @@ impl<'a> CudaProveBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, include_elf, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::builder().cuda().build(); - /// let (proof, public_values) = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let proof = client.prove(&pk, &stdin) /// .run() /// .unwrap(); /// ``` diff --git a/crates/sdk/src/env/mod.rs b/crates/sdk/src/env/mod.rs index 61e8227378..26bc967cb3 100644 --- a/crates/sdk/src/env/mod.rs +++ b/crates/sdk/src/env/mod.rs @@ -87,17 +87,22 @@ impl EnvProver { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::from_env(); - /// let (public_values, execution_report) = client.execute(elf, stdin) + /// let (public_values, execution_report) = client.execute(elf, &stdin) /// .run() /// .unwrap(); /// ``` #[must_use] - pub fn execute<'a>(&'a self, elf: &'a [u8], stdin: SP1Stdin) -> CpuExecuteBuilder<'a> { + pub fn execute<'a>(&'a self, elf: &'a [u8], stdin: &SP1Stdin) -> CpuExecuteBuilder<'a> { CpuExecuteBuilder { prover: self.prover.inner(), elf, - stdin, + stdin: stdin.clone(), context_builder: SP1ContextBuilder::default(), } } @@ -109,14 +114,25 @@ impl EnvProver { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cpu(); - /// let builder = client.prove(pk, stdin) + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// + /// let client = ProverClient::from_env(); + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .core() /// .run(); /// ``` #[must_use] - pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> EnvProveBuilder<'a> { - EnvProveBuilder { prover: self.prover.as_ref(), mode: SP1ProofMode::Core, pk, stdin } + pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: &'a SP1Stdin) -> EnvProveBuilder<'a> { + EnvProveBuilder { + prover: self.prover.as_ref(), + mode: SP1ProofMode::Core, + pk, + stdin: stdin.clone(), + } } /// Verifies that the given proof is valid and matches the given verification key produced by @@ -127,11 +143,11 @@ impl EnvProver { /// use sp1_sdk::{ProverClient, SP1Stdin}; /// /// let elf = test_artifacts::FIBONACCI_ELF; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::from_env(); /// let (pk, vk) = client.setup(elf); - /// let mut stdin = SP1Stdin::new(); - /// stdin.write(&10usize); - /// let proof = client.prove(&pk, stdin).run().unwrap(); + /// let proof = client.prove(&pk, &stdin).run().unwrap(); /// client.verify(&proof, &vk).unwrap(); /// ``` pub fn verify( diff --git a/crates/sdk/src/env/prove.rs b/crates/sdk/src/env/prove.rs index 54f6c64c9d..74cc78eba2 100644 --- a/crates/sdk/src/env/prove.rs +++ b/crates/sdk/src/env/prove.rs @@ -22,8 +22,14 @@ impl<'a> EnvProveBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::from_env(); - /// let builder = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .core() /// .run(); /// ``` @@ -41,8 +47,14 @@ impl<'a> EnvProveBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::from_env(); - /// let builder = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .compressed() /// .run(); /// ``` @@ -61,8 +73,14 @@ impl<'a> EnvProveBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::from_env(); - /// let builder = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .plonk() /// .run(); /// ``` @@ -79,8 +97,14 @@ impl<'a> EnvProveBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::from_env(); - /// let builder = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .groth16() /// .run(); /// ``` @@ -96,8 +120,14 @@ impl<'a> EnvProveBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover, SP1ProofMode}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::from_env(); - /// let builder = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .mode(SP1ProofMode::Groth16) /// .run(); /// ``` @@ -114,8 +144,14 @@ impl<'a> EnvProveBuilder<'a> { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// /// let client = ProverClient::from_env(); - /// let (proof, public_values) = client.prove(pk, stdin) + /// let (pk, vk) = client.setup(elf); + /// let proof = client.prove(&pk, &stdin) /// .run() /// .unwrap(); /// ``` diff --git a/crates/sdk/src/lib.rs b/crates/sdk/src/lib.rs index c4abe153db..3661d44ae4 100644 --- a/crates/sdk/src/lib.rs +++ b/crates/sdk/src/lib.rs @@ -117,7 +117,7 @@ mod tests { stdin.write(&10usize); // Generate proof & verify. - let mut proof = client.prove(&pk, stdin).run().unwrap(); + let mut proof = client.prove(&pk, &stdin).run().unwrap(); client.verify(&proof, &vk).unwrap(); // Test invalid public values. diff --git a/crates/sdk/src/network/builder.rs b/crates/sdk/src/network/builder.rs index bad19186e4..5a9585a67a 100644 --- a/crates/sdk/src/network/builder.rs +++ b/crates/sdk/src/network/builder.rs @@ -22,12 +22,15 @@ impl NetworkProverBuilder { /// /// # Example /// ```rust,no_run - /// let prover = ProverClient::builder().network().build(); + /// use sp1_sdk::{ProverClient}; + /// + /// let prover = ProverClient::builder().network() /// .private_key("...") /// .build(); /// ``` - #[must_use] pub fn private_key(mut self, private_key: String) -> Self { - self.private_key = Some(private_key); + #[must_use] + pub fn private_key(mut self, private_key: &str) -> Self { + self.private_key = Some(private_key.to_string()); self } @@ -39,13 +42,16 @@ impl NetworkProverBuilder { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient}; + /// /// let prover = ProverClient::builder() /// .network() /// .rpc_url("...") /// .build(); /// ``` - #[must_use] pub fn rpc_url(mut self, rpc_url: String) -> Self { - self.rpc_url = Some(rpc_url); + #[must_use] + pub fn rpc_url(mut self, rpc_url: &str) -> Self { + self.rpc_url = Some(rpc_url.to_string()); self } @@ -57,13 +63,16 @@ impl NetworkProverBuilder { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::{ProverClient}; + /// /// let prover = ProverClient::builder() /// .network() /// .private_key("...") /// .rpc_url("...") /// .build(); /// ``` - #[must_use] pub fn build(self) -> NetworkProver { + #[must_use] + pub fn build(self) -> NetworkProver { let private_key = match self.private_key { Some(private_key) => private_key, None => std::env::var("NETWORK_PRIVATE_KEY").expect( @@ -83,4 +92,3 @@ impl NetworkProverBuilder { NetworkProver::new(&private_key, &rpc_url) } } - diff --git a/crates/sdk/src/network/client.rs b/crates/sdk/src/network/client.rs index b70b2d610c..880352c5c6 100644 --- a/crates/sdk/src/network/client.rs +++ b/crates/sdk/src/network/client.rs @@ -39,11 +39,6 @@ pub struct NetworkClient { impl NetworkClient { /// Creates a new [`NetworkClient`] with the given private key and rpc url. - /// - /// # Example - /// ```rust,no_run - /// let client = NetworkClient::new("...", "..."); - /// ``` pub fn new(private_key: impl Into, rpc_url: impl Into) -> Self { let signer = PrivateKeySigner::from_str(&private_key.into()).unwrap(); let client = reqwest::Client::builder() @@ -55,12 +50,6 @@ impl NetworkClient { } /// Get the latest nonce for this account's address. - /// - /// # Example - /// ```rust,no_run - /// let client = NetworkClient::new("...", "..."); - /// let nonce = client.get_nonce().await?; - /// ``` pub async fn get_nonce(&self) -> Result { let mut rpc = self.prover_network_client().await?; let res = @@ -72,12 +61,6 @@ impl NetworkClient { /// /// # Details /// The verifying key hash is used to identify a program. - /// - /// # Example - /// ```rust,no_run - /// let client = NetworkClient::new("...", "..."); - /// let vk_hash = client.get_vk_hash(&vk).await?; - /// ``` pub fn get_vk_hash(vk: &SP1VerifyingKey) -> Result> { let vk_hash_str = vk.bytes32(); let vk_hash = hex::decode(vk_hash_str.strip_prefix("0x").unwrap_or(&vk_hash_str))?; @@ -85,12 +68,6 @@ impl NetworkClient { } /// Registers a program with the network if it is not already registered. - /// - /// # Example - /// ```rust,no_run - /// let client = NetworkClient::new("...", "..."); - /// let vk_hash = client.register_program(&vk, &elf).await?; - /// ``` pub async fn register_program(&self, vk: &SP1VerifyingKey, elf: &[u8]) -> Result> { let vk_hash = Self::get_vk_hash(vk)?; @@ -110,12 +87,6 @@ impl NetworkClient { /// /// # Details /// Returns `None` if the program does not exist. - /// - /// # Example - /// ```rust,no_run - /// let client = NetworkClient::new("...", "..."); - /// let program = client.get_program(&vk_hash).await?; - /// ``` pub async fn get_program(&self, vk_hash: &[u8]) -> Result> { let mut rpc = self.prover_network_client().await?; match rpc.get_program(GetProgramRequest { vk_hash: vk_hash.to_vec() }).await { @@ -126,12 +97,6 @@ impl NetworkClient { } /// Creates a new program on the network. - /// - /// # Example - /// ```rust,no_run - /// let client = NetworkClient::new("...", "..."); - /// let program = client.create_program(&vk_hash, &vk, &elf).await?; - /// ``` pub async fn create_program( &self, vk_hash: &[u8], @@ -169,12 +134,6 @@ impl NetworkClient { /// /// # Details /// If the status is Fulfilled, the proof is also returned. - /// - /// # Example - /// ```rust,no_run - /// let client = NetworkClient::new("...", "..."); - /// let (status, proof) = client.get_proof_request_status(&request_id).await?; - /// ``` pub async fn get_proof_request_status( &self, request_id: &[u8], @@ -213,12 +172,6 @@ impl NetworkClient { /// * `strategy`: The [`FulfillmentStrategy`] to use. /// * `timeout_secs`: The timeout for the proof request in seconds. /// * `cycle_limit`: The cycle limit for the proof request. - /// - /// # Example - /// ```rust,no_run - /// let client = NetworkClient::new("...", "..."); - /// let response = client.request_proof(&vk_hash, &stdin, mode, version, strategy, timeout_secs, cycle_limit).await?; - /// ``` #[allow(clippy::too_many_arguments)] pub async fn request_proof( &self, diff --git a/crates/sdk/src/network/mod.rs b/crates/sdk/src/network/mod.rs index 31e9f7cb95..6cc201f327 100644 --- a/crates/sdk/src/network/mod.rs +++ b/crates/sdk/src/network/mod.rs @@ -14,6 +14,9 @@ pub mod builder; pub mod prove; pub mod utils; +pub use crate::network::client::NetworkClient; +pub use crate::network::proto::network::FulfillmentStrategy; + pub(crate) const DEFAULT_PROVER_NETWORK_RPC: &str = "https://rpc.production.succinct.tools/"; pub(crate) const DEFAULT_TIMEOUT_SECS: u64 = 14400; pub(crate) const DEFAULT_CYCLE_LIMIT: u64 = 100_000_000; diff --git a/crates/sdk/src/network/prove.rs b/crates/sdk/src/network/prove.rs index d57a320b88..2d33ea628a 100644 --- a/crates/sdk/src/network/prove.rs +++ b/crates/sdk/src/network/prove.rs @@ -34,12 +34,19 @@ impl<'a> NetworkProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::network().build(); - /// let builder = client.prove(pk, stdin) + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// + /// let client = ProverClient::builder().network().build(); + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .core() /// .run(); /// ``` - #[must_use] pub fn core(mut self) -> Self { + #[must_use] + pub fn core(mut self) -> Self { self.mode = SP1ProofMode::Core; self } @@ -53,12 +60,19 @@ impl<'a> NetworkProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::network().build(); - /// let builder = client.prove(pk, stdin) + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// + /// let client = ProverClient::builder().network().build(); + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .compressed() /// .run(); /// ``` - #[must_use] pub fn compressed(mut self) -> Self { + #[must_use] + pub fn compressed(mut self) -> Self { self.mode = SP1ProofMode::Compressed; self } @@ -73,12 +87,19 @@ impl<'a> NetworkProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::network().build(); - /// let builder = client.prove(pk, stdin) + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// + /// let client = ProverClient::builder().network().build(); + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .plonk() /// .run(); /// ``` - #[must_use] pub fn plonk(mut self) -> Self { + #[must_use] + pub fn plonk(mut self) -> Self { self.mode = SP1ProofMode::Plonk; self } @@ -91,12 +112,19 @@ impl<'a> NetworkProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::network().build(); - /// let builder = client.prove(pk, stdin) + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// + /// let client = ProverClient::builder().network().build(); + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .groth16() /// .run(); /// ``` - #[must_use] pub fn groth16(mut self) -> Self { + #[must_use] + pub fn groth16(mut self) -> Self { self.mode = SP1ProofMode::Groth16; self } @@ -108,12 +136,19 @@ impl<'a> NetworkProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::network().build(); - /// let builder = client.prove(pk, stdin) + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover, SP1ProofMode}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// + /// let client = ProverClient::builder().network().build(); + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .mode(SP1ProofMode::Groth16) /// .run(); /// ``` - #[must_use] pub fn mode(mut self, mode: SP1ProofMode) -> Self { + #[must_use] + pub fn mode(mut self, mode: SP1ProofMode) -> Self { self.mode = mode; self } @@ -126,12 +161,20 @@ impl<'a> NetworkProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::network().build(); - /// let builder = client.prove(pk, stdin) + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// use std::time::Duration; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// + /// let client = ProverClient::builder().network().build(); + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .timeout(Duration::from_secs(60)) /// .run(); /// ``` - #[must_use] pub fn timeout(mut self, timeout: Duration) -> Self { + #[must_use] + pub fn timeout(mut self, timeout: Duration) -> Self { self.timeout = Some(timeout); self } @@ -146,12 +189,19 @@ impl<'a> NetworkProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::network().build(); - /// let builder = client.prove(pk, stdin) + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// + /// let client = ProverClient::builder().network().build(); + /// let (pk, vk) = client.setup(elf); + /// let builder = client.prove(&pk, &stdin) /// .skip_simulation(true) /// .run(); /// ``` - #[must_use] pub fn skip_simulation(mut self, skip_simulation: bool) -> Self { + #[must_use] + pub fn skip_simulation(mut self, skip_simulation: bool) -> Self { self.skip_simulation = skip_simulation; self } @@ -163,11 +213,20 @@ impl<'a> NetworkProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let prover = ProverClient::network() + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover, network::FulfillmentStrategy}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// + /// let client = ProverClient::builder().network().build(); + /// let (pk, vk) = client.setup(elf); + /// let proof = client.prove(&pk, &stdin) /// .strategy(FulfillmentStrategy::Hosted) - /// .build(); + /// .run() + /// .unwrap(); /// ``` - #[must_use] pub fn strategy(mut self, strategy: FulfillmentStrategy) -> Self { + #[must_use] + pub fn strategy(mut self, strategy: FulfillmentStrategy) -> Self { self.strategy = strategy; self } @@ -180,8 +239,14 @@ impl<'a> NetworkProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::network().build(); - /// let proof = client.prove(pk, stdin) + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// + /// let client = ProverClient::builder().network().build(); + /// let (pk, vk) = client.setup(elf); + /// let proof = client.prove(&pk, &stdin) /// .run() /// .unwrap(); /// ``` @@ -208,11 +273,15 @@ impl<'a> NetworkProveBuilder<'a> { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::network().build(); - /// let proof = client.prove(pk, stdin) - /// .run_async() - /// .await - /// .unwrap(); + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// + /// let client = ProverClient::builder().network().build(); + /// let (pk, vk) = client.setup(elf); + /// let proof = client.prove(&pk, &stdin) + /// .run_async(); /// ``` pub async fn run_async(self) -> Result { let Self { prover, mode, pk, stdin, timeout, strategy, mut skip_simulation } = self; diff --git a/crates/sdk/src/network/prover.rs b/crates/sdk/src/network/prover.rs index c1466cdfd7..4927acca35 100644 --- a/crates/sdk/src/network/prover.rs +++ b/crates/sdk/src/network/prover.rs @@ -40,6 +40,8 @@ impl NetworkProver { /// /// # Example /// ```rust,no_run + /// use sp1_sdk::NetworkProver; + /// /// let prover = NetworkProver::new("...", "..."); /// ``` #[must_use] @@ -57,8 +59,13 @@ impl NetworkProver { /// /// # Example /// ```rust,no_run - /// let client = ProverClient::cpu(); - /// let (public_values, execution_report) = client.execute(elf, stdin) + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// + /// let client = ProverClient::builder().cpu().build(); + /// let (public_values, execution_report) = client.execute(elf, &stdin) /// .run() /// .unwrap(); /// ``` @@ -79,15 +86,25 @@ impl NetworkProver { /// /// # Example /// ```rust,no_run - /// let prover = NetworkProver::new("...", "..."); - /// let proof = prover.prove(pk, stdin).run().await?; + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// + /// let client = ProverClient::builder().network().build(); + /// let (pk, vk) = client.setup(elf); + /// let proof = client.prove(&pk, &stdin).run(); /// ``` - pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: SP1Stdin) -> NetworkProveBuilder<'a> { + pub fn prove<'a>( + &'a self, + pk: &'a SP1ProvingKey, + stdin: &'a SP1Stdin, + ) -> NetworkProveBuilder<'a> { NetworkProveBuilder { prover: self, mode: SP1ProofMode::Core, pk, - stdin, + stdin: stdin.clone(), timeout: None, strategy: FulfillmentStrategy::Hosted, skip_simulation: false, @@ -105,8 +122,13 @@ impl NetworkProver { /// /// # Example /// ```rust,no_run - /// let prover = NetworkProver::new("...", "..."); - /// let vk_hash = prover.register_program(vk, elf).await?; + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let client = ProverClient::builder().network().build(); + /// let (pk, vk) = client.setup(elf); + /// + /// let vk_hash = client.register_program(&vk, elf); /// ``` pub async fn register_program(&self, vk: &SP1VerifyingKey, elf: &[u8]) -> Result> { self.client.register_program(vk, elf).await From 5096034948001f5fffe4a5db5fadd684b477507c Mon Sep 17 00:00:00 2001 From: jtguibas Date: Thu, 19 Dec 2024 20:59:37 +0000 Subject: [PATCH 36/36] stdin --- crates/sdk/src/lib.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/sdk/src/lib.rs b/crates/sdk/src/lib.rs index 3661d44ae4..08d3ccecbd 100644 --- a/crates/sdk/src/lib.rs +++ b/crates/sdk/src/lib.rs @@ -137,7 +137,7 @@ mod tests { stdin.write(&10usize); // Generate proof & verify. - let mut proof = client.prove(&pk, stdin).compressed().run().unwrap(); + let mut proof = client.prove(&pk, &stdin).compressed().run().unwrap(); client.verify(&proof, &vk).unwrap(); // Test invalid public values. @@ -157,7 +157,7 @@ mod tests { stdin.write(&10usize); // Generate proof & verify. - let mut proof = client.prove(&pk, stdin).plonk().run().unwrap(); + let mut proof = client.prove(&pk, &stdin).plonk().run().unwrap(); client.verify(&proof, &vk).unwrap(); // Test invalid public values. @@ -175,7 +175,7 @@ mod tests { let (pk, vk) = client.setup(elf); let mut stdin = SP1Stdin::new(); stdin.write(&10usize); - let proof = client.prove(&pk, stdin).plonk().run().unwrap(); + let proof = client.prove(&pk, &stdin).plonk().run().unwrap(); client.verify(&proof, &vk).unwrap(); } }