From d37a1062121e2550d0f21b79fd189959d4739032 Mon Sep 17 00:00:00 2001 From: ubadineke Date: Wed, 18 Jun 2025 05:59:15 +0100 Subject: [PATCH 01/13] initial commit --- .../token-2022/transfer-fee/steel/Cargo.toml | 22 ++++ .../token-2022/transfer-fee/steel/README.md | 28 +++++ .../transfer-fee/steel/api/Cargo.toml | 19 ++++ .../transfer-fee/steel/api/src/consts.rs | 0 .../transfer-fee/steel/api/src/error.rs | 10 ++ .../transfer-fee/steel/api/src/instruction.rs | 17 +++ .../transfer-fee/steel/api/src/lib.rs | 18 +++ .../transfer-fee/steel/api/src/sdk.rs | 28 +++++ .../steel/api/src/state/counter.rs | 11 ++ .../transfer-fee/steel/api/src/state/mod.rs | 18 +++ .../transfer-fee/steel/program/Cargo.toml | 27 +++++ .../steel/program/src/initialize.rs | 103 ++++++++++++++++++ .../transfer-fee/steel/program/src/lib.rs | 23 ++++ .../transfer-fee/steel/program/tests/test.rs | 89 +++++++++++++++ 14 files changed, 413 insertions(+) create mode 100644 tokens/token-2022/transfer-fee/steel/Cargo.toml create mode 100644 tokens/token-2022/transfer-fee/steel/README.md create mode 100644 tokens/token-2022/transfer-fee/steel/api/Cargo.toml create mode 100644 tokens/token-2022/transfer-fee/steel/api/src/consts.rs create mode 100644 tokens/token-2022/transfer-fee/steel/api/src/error.rs create mode 100644 tokens/token-2022/transfer-fee/steel/api/src/instruction.rs create mode 100644 tokens/token-2022/transfer-fee/steel/api/src/lib.rs create mode 100644 tokens/token-2022/transfer-fee/steel/api/src/sdk.rs create mode 100644 tokens/token-2022/transfer-fee/steel/api/src/state/counter.rs create mode 100644 tokens/token-2022/transfer-fee/steel/api/src/state/mod.rs create mode 100644 tokens/token-2022/transfer-fee/steel/program/Cargo.toml create mode 100644 tokens/token-2022/transfer-fee/steel/program/src/initialize.rs create mode 100644 tokens/token-2022/transfer-fee/steel/program/src/lib.rs create mode 100644 tokens/token-2022/transfer-fee/steel/program/tests/test.rs diff --git a/tokens/token-2022/transfer-fee/steel/Cargo.toml b/tokens/token-2022/transfer-fee/steel/Cargo.toml new file mode 100644 index 000000000..f31457767 --- /dev/null +++ b/tokens/token-2022/transfer-fee/steel/Cargo.toml @@ -0,0 +1,22 @@ +[workspace] +resolver = "2" +members = ["api", "program"] + +[workspace.package] +version = "0.1.0" +edition = "2021" +license = "Apache-2.0" +homepage = "" +documentation = "" +repository = "" +readme = "./README.md" +keywords = ["solana"] + +[workspace.dependencies] +steel-api = { path = "./api", version = "0.1.0" } +bytemuck = "1.14" +num_enum = "0.7" +solana-program = "2.1" +steel = {path = "/home/ubadineke/steel/lib"} +thiserror = "1.0" +spl-token-2022 = { path = "/home/ubadineke/token-2022-main/program", features = ["no-entrypoint"]} \ No newline at end of file diff --git a/tokens/token-2022/transfer-fee/steel/README.md b/tokens/token-2022/transfer-fee/steel/README.md new file mode 100644 index 000000000..cfc508fd5 --- /dev/null +++ b/tokens/token-2022/transfer-fee/steel/README.md @@ -0,0 +1,28 @@ +# Steel + +**Steel** is a ... + +## API +- [`Consts`](api/src/consts.rs) – Program constants. +- [`Error`](api/src/error.rs) – Custom program errors. +- [`Event`](api/src/event.rs) – Custom program events. +- [`Instruction`](api/src/instruction.rs) – Declared instructions. + +## Instructions +- [`Add`](program/src/add.rs) – Add ... +- [`Initialize`](program/src/initialize.rs) – Initialize ... + +## State +- [`Counter`](api/src/state/counter.rs) – Counter ... + +## Get started + +Compile your program: +```sh +steel build +``` + +Run unit and integration tests: +```sh +steel test +``` diff --git a/tokens/token-2022/transfer-fee/steel/api/Cargo.toml b/tokens/token-2022/transfer-fee/steel/api/Cargo.toml new file mode 100644 index 000000000..e514258ea --- /dev/null +++ b/tokens/token-2022/transfer-fee/steel/api/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "steel-api" +description = "API for interacting with the Steel program" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +documentation.workspace = true +repository.workspace = true +readme.workspace = true +keywords.workspace = true + +[dependencies] +bytemuck.workspace = true +num_enum.workspace = true +solana-program.workspace = true +steel.workspace = true +thiserror.workspace = true +spl-token-2022.workspace = true diff --git a/tokens/token-2022/transfer-fee/steel/api/src/consts.rs b/tokens/token-2022/transfer-fee/steel/api/src/consts.rs new file mode 100644 index 000000000..e69de29bb diff --git a/tokens/token-2022/transfer-fee/steel/api/src/error.rs b/tokens/token-2022/transfer-fee/steel/api/src/error.rs new file mode 100644 index 000000000..96e84da4d --- /dev/null +++ b/tokens/token-2022/transfer-fee/steel/api/src/error.rs @@ -0,0 +1,10 @@ +use steel::*; + +#[derive(Debug, Error, Clone, Copy, PartialEq, Eq, IntoPrimitive)] +#[repr(u32)] +pub enum SteelError { + #[error("This is a dummy error")] + Dummy = 0, +} + +error!(SteelError); diff --git a/tokens/token-2022/transfer-fee/steel/api/src/instruction.rs b/tokens/token-2022/transfer-fee/steel/api/src/instruction.rs new file mode 100644 index 000000000..1c83bca80 --- /dev/null +++ b/tokens/token-2022/transfer-fee/steel/api/src/instruction.rs @@ -0,0 +1,17 @@ +use steel::*; + +#[repr(u8)] +#[derive(Clone, Copy, Debug, Eq, PartialEq, TryFromPrimitive)] +pub enum SteelInstruction { + Initialize = 0, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug, Pod, Zeroable)] +pub struct Initialize { + pub maximum_fee: [u8; 8], //NOTE: take into consideration the token decimals or maybe I should just scale using the input + pub transfer_fee_basis_points: [u8; 2], + pub decimals: u8, +} + +instruction!(SteelInstruction, Initialize); diff --git a/tokens/token-2022/transfer-fee/steel/api/src/lib.rs b/tokens/token-2022/transfer-fee/steel/api/src/lib.rs new file mode 100644 index 000000000..710d1da15 --- /dev/null +++ b/tokens/token-2022/transfer-fee/steel/api/src/lib.rs @@ -0,0 +1,18 @@ +pub mod consts; +pub mod error; +pub mod instruction; +pub mod sdk; +pub mod state; + +pub mod prelude { + pub use crate::consts::*; + pub use crate::error::*; + pub use crate::instruction::*; + pub use crate::sdk::*; + pub use crate::state::*; +} + +use steel::*; + +// TODO Set program id +declare_id!("z7msBPQHDJjTvdQRoEcKyENgXDhSRYeHieN1ZMTqo35"); diff --git a/tokens/token-2022/transfer-fee/steel/api/src/sdk.rs b/tokens/token-2022/transfer-fee/steel/api/src/sdk.rs new file mode 100644 index 000000000..b84c266c0 --- /dev/null +++ b/tokens/token-2022/transfer-fee/steel/api/src/sdk.rs @@ -0,0 +1,28 @@ +use steel::*; + +use crate::prelude::*; + +pub fn initialize( + signer: Pubkey, + mint: Pubkey, + maximum_fee: u64, + transfer_fee_basis_points: u16, + decimals: u8, +) -> Instruction { + Instruction { + program_id: crate::ID, + accounts: vec![ + AccountMeta::new(signer, true), + AccountMeta::new(mint, true), + AccountMeta::new_readonly(system_program::ID, false), + AccountMeta::new_readonly(spl_token_2022::ID, false), + AccountMeta::new_readonly(sysvar::rent::ID, false), + ], + data: Initialize { + maximum_fee: maximum_fee.to_le_bytes(), + transfer_fee_basis_points: transfer_fee_basis_points.to_le_bytes(), + decimals, + } + .to_bytes(), + } +} diff --git a/tokens/token-2022/transfer-fee/steel/api/src/state/counter.rs b/tokens/token-2022/transfer-fee/steel/api/src/state/counter.rs new file mode 100644 index 000000000..8ea1f5b9c --- /dev/null +++ b/tokens/token-2022/transfer-fee/steel/api/src/state/counter.rs @@ -0,0 +1,11 @@ +use steel::*; + +use super::SteelAccount; + +#[repr(C)] +#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)] +pub struct Counter { + pub value: u64, +} + +account!(SteelAccount, Counter); diff --git a/tokens/token-2022/transfer-fee/steel/api/src/state/mod.rs b/tokens/token-2022/transfer-fee/steel/api/src/state/mod.rs new file mode 100644 index 000000000..c797e948c --- /dev/null +++ b/tokens/token-2022/transfer-fee/steel/api/src/state/mod.rs @@ -0,0 +1,18 @@ +mod counter; + +pub use counter::*; + +use steel::*; + +use crate::consts::*; + +#[repr(u8)] +#[derive(Clone, Copy, Debug, Eq, PartialEq, IntoPrimitive, TryFromPrimitive)] +pub enum SteelAccount { + Counter = 0, +} + +/// Fetch PDA of the counter account. +pub fn counter_pda() -> (Pubkey, u8) { + Pubkey::find_program_address(&[COUNTER], &crate::id()) +} diff --git a/tokens/token-2022/transfer-fee/steel/program/Cargo.toml b/tokens/token-2022/transfer-fee/steel/program/Cargo.toml new file mode 100644 index 000000000..11f2289d0 --- /dev/null +++ b/tokens/token-2022/transfer-fee/steel/program/Cargo.toml @@ -0,0 +1,27 @@ +[package] +name = "steel-program" +description = "" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +documentation.workspace = true +repository.workspace = true +readme.workspace = true +keywords.workspace = true + +[lib] +crate-type = ["cdylib", "lib"] + +[dependencies] +steel-api.workspace = true +solana-program.workspace = true +steel.workspace = true +spl-token-2022.workspace = true + +[dev-dependencies] +base64 = "0.21" +rand = "0.8.5" +solana-program-test = "2.1" +solana-sdk = "2.1" +tokio = { version = "1.35", features = ["full"] } diff --git a/tokens/token-2022/transfer-fee/steel/program/src/initialize.rs b/tokens/token-2022/transfer-fee/steel/program/src/initialize.rs new file mode 100644 index 000000000..db10ab7b7 --- /dev/null +++ b/tokens/token-2022/transfer-fee/steel/program/src/initialize.rs @@ -0,0 +1,103 @@ +use solana_program::{msg, program_pack::Pack}; +use spl_token_2022::{ + extension::{transfer_fee::instruction::initialize_transfer_fee_config, ExtensionType}, + pod::PodMint, + state::{Account, Mint}, +}; +use steel::*; +use steel_api::prelude::*; + +pub fn process_initialize(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResult { + let args = Initialize::try_from_bytes(&_data)?; + let maximum_fee = u64::from_le_bytes(args.maximum_fee); + let transfer_fee_basis_points = u16::from_le_bytes(args.transfer_fee_basis_points); + msg!("Parsed arguments"); + + // Load accounts. + let [signer_info, mint_info, system_program, token_program, rent_sysvar] = accounts else { + return Err(ProgramError::NotEnoughAccountKeys); + }; + msg!("Account loaded"); + + //Validation + signer_info.is_signer()?; + mint_info.is_signer()?.is_empty()?.is_writable()?; + token_program.is_program(&spl_token_2022::ID)?; + system_program.is_program(&system_program::ID)?; + rent_sysvar.is_sysvar(&sysvar::rent::ID)?; + + //Calculate space for mint and extension data + let space = + ExtensionType::try_calculate_account_len::(&[ExtensionType::TransferFeeConfig])?; + msg!(&space.to_string()); + + //Create account for the mint and allocate space + create_account( + signer_info, + mint_info, + system_program, + space, + token_program.key, + )?; + + //Initialize the transfer fee extension + //This instruction must come before the instruction to initialize mint data + solana_program::program::invoke( + &initialize_transfer_fee_config( + token_program.key, + mint_info.key, + Some(signer_info.key), + Some(signer_info.key), + transfer_fee_basis_points, + maximum_fee, + )?, + &[ + mint_info.clone(), + token_program.clone(), // If needed — depending on accounts defined in the program + ], + )?; + //Initialize the Token Mint + // initialize_mint(mint_info, mint_authority_info, freeze_authority_info, token_program, rent_sysvar, decimals); + // msg!(&token_program.key.to_string()); + // msg!(&mint_info.key.to_string()); + // msg!(&signer_info.key.to_string()); + // msg!(&args.decimals.to_string()); + + solana_program::program::invoke( + &spl_token_2022::instruction::initialize_mint2( + token_program.key, + mint_info.key, + signer_info.key, + Some(signer_info.key), + 9, + )?, + &[ + mint_info.clone(), + signer_info.clone(), + token_program.clone(), + // rent_sysvar.clone() + ], + )?; + + // initialize_mint2( + // mint_info, + // signer_info, + // Some(signer_info), + // token_program, + // args.decimals, + // )?; + + // initialize_mint( + // mint_info, + // signer_info, + // Some(signer_info), + // token_program, + // rent_sysvar, + // args.decimals, + // )?; + + msg!("wani"); + + msg!("Space created"); + Ok(()) +} diff --git a/tokens/token-2022/transfer-fee/steel/program/src/lib.rs b/tokens/token-2022/transfer-fee/steel/program/src/lib.rs new file mode 100644 index 000000000..62d6e83f1 --- /dev/null +++ b/tokens/token-2022/transfer-fee/steel/program/src/lib.rs @@ -0,0 +1,23 @@ +mod add; +mod initialize; + +use initialize::*; + +use steel::*; +use steel_api::prelude::*; + +pub fn process_instruction( + program_id: &Pubkey, + accounts: &[AccountInfo], + data: &[u8], +) -> ProgramResult { + let (ix, data) = parse_instruction(&steel_api::ID, program_id, data)?; + + match ix { + SteelInstruction::Initialize => process_initialize(accounts, data)?, + } + + Ok(()) +} + +entrypoint!(process_instruction); diff --git a/tokens/token-2022/transfer-fee/steel/program/tests/test.rs b/tokens/token-2022/transfer-fee/steel/program/tests/test.rs new file mode 100644 index 000000000..d7d4ad6fe --- /dev/null +++ b/tokens/token-2022/transfer-fee/steel/program/tests/test.rs @@ -0,0 +1,89 @@ +use solana_program::hash::Hash; +use solana_program_test::{processor, BanksClient, ProgramTest}; +use solana_sdk::{signature::Keypair, signer::Signer, transaction::Transaction}; +use spl_token_2022::{ + extension::{ + transfer_fee::TransferFeeConfig, BaseStateWithExtensions, ExtensionType, + StateWithExtensions, + }, + state::Mint, +}; +use steel_api::prelude::*; + +async fn setup() -> (BanksClient, Keypair, Hash) { + let mut program_test = ProgramTest::new( + "steel_program", + steel_api::ID, + processor!(steel_program::process_instruction), + ); + //Custom SPL Token 2022 + // program_test.add_program("spl_token_2022", spl_token_2022::ID, None); + program_test.prefer_bpf(true); + program_test.start().await +} + +#[tokio::test] +async fn run_test() { + // Setup test + let (mut banks, payer, blockhash) = setup().await; + let to = Keypair::new(); + let mint = Keypair::new(); + + // Create account for mint + // let create_account_ix = system_instruction::create_account( + // &payer.pubkey(), + // &to.pubkey(), + // (Rent::get().unwrap()).minimum_balance(Mint::LEN), + // Mint::LEN as u64, + // &spl_token_2022::ID, + // ); + + let maximum_fee = 1000; + let transfer_fee_basis_points = 1000; + + // Submit initialize transaction. + let ix = initialize( + payer.pubkey(), + mint.pubkey(), + maximum_fee, + transfer_fee_basis_points, + 6, + ); + let tx = Transaction::new_signed_with_payer( + &[ix], + Some(&payer.pubkey()), + &[&payer, &mint], + blockhash, + ); + let res = banks.process_transaction(tx).await; + assert!(res.is_ok()); + + let mint_account = banks + .get_account(mint.pubkey()) + .await + .unwrap() + .expect("Mint account not found"); + + let mint_data = mint_account.data.as_slice(); + // let mint_state = Mint::unpack(mint_data).expect("Failed to unpack mint"); + + let state_with_extensions = StateWithExtensions::::unpack(mint_data).unwrap(); + let extension_types: Vec<_> = state_with_extensions.get_extension_types().unwrap(); + // extension_types.iter().for_each(|ext| println!("NOthing? {:?}", ext)); + + let extension = state_with_extensions + .get_extension::() + .unwrap(); + dbg!(extension.transfer_fee_config_authority.0); + dbg!(payer.pubkey()); + assert_eq!( + extension.transfer_fee_config_authority.0, + payer.pubkey(), + "Transfer fee config authority mismatch" + ); + + assert!( + extension_types.contains(&ExtensionType::TransferFeeConfig), + "TransferFeeConfig extension not found in mint account" + ); +} From 8d757a904a8e31eb87d9eef4f5887e81d97a804c Mon Sep 17 00:00:00 2001 From: ubadineke Date: Sat, 21 Jun 2025 15:47:37 +0100 Subject: [PATCH 02/13] steel: transfer fee extension --- .../token-2022/transfer-fee/steel/Cargo.toml | 5 +- .../transfer-fee/steel/api/Cargo.toml | 1 + .../transfer-fee/steel/api/src/consts.rs | 0 .../transfer-fee/steel/api/src/instruction.rs | 31 +++ .../transfer-fee/steel/api/src/lib.rs | 4 - .../transfer-fee/steel/api/src/sdk.rs | 83 +++++++ .../steel/api/src/state/counter.rs | 11 - .../transfer-fee/steel/api/src/state/mod.rs | 18 -- .../transfer-fee/steel/program/Cargo.toml | 4 + .../transfer-fee/steel/program/src/harvest.rs | 36 +++ .../steel/program/src/initialize.rs | 60 +---- .../transfer-fee/steel/program/src/lib.rs | 13 +- .../steel/program/src/transfer.rs | 64 +++++ .../steel/program/src/update_fee.rs | 38 +++ .../steel/program/src/withdraw.rs | 31 +++ .../transfer-fee/steel/program/tests/test.rs | 225 +++++++++++++++--- 16 files changed, 505 insertions(+), 119 deletions(-) delete mode 100644 tokens/token-2022/transfer-fee/steel/api/src/consts.rs delete mode 100644 tokens/token-2022/transfer-fee/steel/api/src/state/counter.rs delete mode 100644 tokens/token-2022/transfer-fee/steel/api/src/state/mod.rs create mode 100644 tokens/token-2022/transfer-fee/steel/program/src/harvest.rs create mode 100644 tokens/token-2022/transfer-fee/steel/program/src/transfer.rs create mode 100644 tokens/token-2022/transfer-fee/steel/program/src/update_fee.rs create mode 100644 tokens/token-2022/transfer-fee/steel/program/src/withdraw.rs diff --git a/tokens/token-2022/transfer-fee/steel/Cargo.toml b/tokens/token-2022/transfer-fee/steel/Cargo.toml index f31457767..70771a85a 100644 --- a/tokens/token-2022/transfer-fee/steel/Cargo.toml +++ b/tokens/token-2022/transfer-fee/steel/Cargo.toml @@ -17,6 +17,7 @@ steel-api = { path = "./api", version = "0.1.0" } bytemuck = "1.14" num_enum = "0.7" solana-program = "2.1" -steel = {path = "/home/ubadineke/steel/lib"} +steel = "4.0" thiserror = "1.0" -spl-token-2022 = { path = "/home/ubadineke/token-2022-main/program", features = ["no-entrypoint"]} \ No newline at end of file +spl-token-2022 = {version = "7.0.0", features = ["no-entrypoint"]} +spl-associated-token-account = {version = "7.0.0", features = ["no-entrypoint"]} \ No newline at end of file diff --git a/tokens/token-2022/transfer-fee/steel/api/Cargo.toml b/tokens/token-2022/transfer-fee/steel/api/Cargo.toml index e514258ea..722c48950 100644 --- a/tokens/token-2022/transfer-fee/steel/api/Cargo.toml +++ b/tokens/token-2022/transfer-fee/steel/api/Cargo.toml @@ -17,3 +17,4 @@ solana-program.workspace = true steel.workspace = true thiserror.workspace = true spl-token-2022.workspace = true +spl-associated-token-account.workspace = true diff --git a/tokens/token-2022/transfer-fee/steel/api/src/consts.rs b/tokens/token-2022/transfer-fee/steel/api/src/consts.rs deleted file mode 100644 index e69de29bb..000000000 diff --git a/tokens/token-2022/transfer-fee/steel/api/src/instruction.rs b/tokens/token-2022/transfer-fee/steel/api/src/instruction.rs index 1c83bca80..e459858fd 100644 --- a/tokens/token-2022/transfer-fee/steel/api/src/instruction.rs +++ b/tokens/token-2022/transfer-fee/steel/api/src/instruction.rs @@ -4,6 +4,10 @@ use steel::*; #[derive(Clone, Copy, Debug, Eq, PartialEq, TryFromPrimitive)] pub enum SteelInstruction { Initialize = 0, + Transfer = 1, + Harvest = 2, + Withdraw = 3, + UpdateFee = 4, } #[repr(C)] @@ -14,4 +18,31 @@ pub struct Initialize { pub decimals: u8, } +#[repr(C)] +#[derive(Clone, Copy, Debug, Pod, Zeroable)] +pub struct Transfer { + pub amount: [u8; 8], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug, Pod, Zeroable)] +pub struct Harvest {} + +#[repr(C)] +#[derive(Clone, Copy, Debug, Pod, Zeroable)] +pub struct Withdraw { + pub destination: [u8; 32], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug, Pod, Zeroable)] +pub struct UpdateFee { + pub maximum_fee: [u8; 8], //NOTE: take into consideration the token decimals or maybe I should just scale using the input + pub transfer_fee_basis_points: [u8; 2], +} + instruction!(SteelInstruction, Initialize); +instruction!(SteelInstruction, Transfer); +instruction!(SteelInstruction, Harvest); +instruction!(SteelInstruction, Withdraw); +instruction!(SteelInstruction, UpdateFee); diff --git a/tokens/token-2022/transfer-fee/steel/api/src/lib.rs b/tokens/token-2022/transfer-fee/steel/api/src/lib.rs index 710d1da15..2c146dac0 100644 --- a/tokens/token-2022/transfer-fee/steel/api/src/lib.rs +++ b/tokens/token-2022/transfer-fee/steel/api/src/lib.rs @@ -1,15 +1,11 @@ -pub mod consts; pub mod error; pub mod instruction; pub mod sdk; -pub mod state; pub mod prelude { - pub use crate::consts::*; pub use crate::error::*; pub use crate::instruction::*; pub use crate::sdk::*; - pub use crate::state::*; } use steel::*; diff --git a/tokens/token-2022/transfer-fee/steel/api/src/sdk.rs b/tokens/token-2022/transfer-fee/steel/api/src/sdk.rs index b84c266c0..fc313638d 100644 --- a/tokens/token-2022/transfer-fee/steel/api/src/sdk.rs +++ b/tokens/token-2022/transfer-fee/steel/api/src/sdk.rs @@ -26,3 +26,86 @@ pub fn initialize( .to_bytes(), } } + +pub fn transfer( + amount: u64, + signer: Pubkey, + mint: Pubkey, + source_token_account: Pubkey, + destination_token_account: Pubkey, +) -> Instruction { + Instruction { + program_id: crate::ID, + accounts: vec![ + AccountMeta::new(signer, true), + AccountMeta::new_readonly(mint, false), + AccountMeta::new(source_token_account, false), + AccountMeta::new(destination_token_account, false), + AccountMeta::new_readonly(system_program::ID, false), + AccountMeta::new_readonly(spl_token_2022::ID, false), + ], + data: Transfer { + amount: amount.to_le_bytes(), + } + .to_bytes(), + } +} + +pub fn harvest( + signer: Pubkey, + mint: Pubkey, + harvest_acc_1: Pubkey, + harvest_acc_2: Pubkey, +) -> Instruction { + Instruction { + program_id: crate::ID, + accounts: vec![ + AccountMeta::new(signer, true), + AccountMeta::new(mint, false), + AccountMeta::new(harvest_acc_1, false), + AccountMeta::new(harvest_acc_2, false), + AccountMeta::new_readonly(system_program::ID, false), + AccountMeta::new_readonly(spl_token_2022::ID, false), + ], + data: Harvest {}.to_bytes(), + } +} + +pub fn withdraw(signer: Pubkey, mint: Pubkey, destination: Pubkey) -> Instruction { + Instruction { + program_id: crate::ID, + accounts: vec![ + AccountMeta::new(signer, true), + AccountMeta::new(mint, false), + AccountMeta::new(destination, false), + AccountMeta::new_readonly(system_program::ID, false), + AccountMeta::new_readonly(spl_token_2022::ID, false), + ], + data: Withdraw { + destination: destination.to_bytes(), + } + .to_bytes(), + } +} + +pub fn update_fee( + signer: Pubkey, + mint: Pubkey, + maximum_fee: u64, + transfer_fee_basis_points: u16, +) -> Instruction { + Instruction { + program_id: crate::ID, + accounts: vec![ + AccountMeta::new(signer, true), + AccountMeta::new(mint, false), + AccountMeta::new_readonly(system_program::ID, false), + AccountMeta::new_readonly(spl_token_2022::ID, false), + ], + data: UpdateFee { + maximum_fee: maximum_fee.to_le_bytes(), + transfer_fee_basis_points: transfer_fee_basis_points.to_le_bytes(), + } + .to_bytes(), + } +} diff --git a/tokens/token-2022/transfer-fee/steel/api/src/state/counter.rs b/tokens/token-2022/transfer-fee/steel/api/src/state/counter.rs deleted file mode 100644 index 8ea1f5b9c..000000000 --- a/tokens/token-2022/transfer-fee/steel/api/src/state/counter.rs +++ /dev/null @@ -1,11 +0,0 @@ -use steel::*; - -use super::SteelAccount; - -#[repr(C)] -#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)] -pub struct Counter { - pub value: u64, -} - -account!(SteelAccount, Counter); diff --git a/tokens/token-2022/transfer-fee/steel/api/src/state/mod.rs b/tokens/token-2022/transfer-fee/steel/api/src/state/mod.rs deleted file mode 100644 index c797e948c..000000000 --- a/tokens/token-2022/transfer-fee/steel/api/src/state/mod.rs +++ /dev/null @@ -1,18 +0,0 @@ -mod counter; - -pub use counter::*; - -use steel::*; - -use crate::consts::*; - -#[repr(u8)] -#[derive(Clone, Copy, Debug, Eq, PartialEq, IntoPrimitive, TryFromPrimitive)] -pub enum SteelAccount { - Counter = 0, -} - -/// Fetch PDA of the counter account. -pub fn counter_pda() -> (Pubkey, u8) { - Pubkey::find_program_address(&[COUNTER], &crate::id()) -} diff --git a/tokens/token-2022/transfer-fee/steel/program/Cargo.toml b/tokens/token-2022/transfer-fee/steel/program/Cargo.toml index 11f2289d0..c5b6f8779 100644 --- a/tokens/token-2022/transfer-fee/steel/program/Cargo.toml +++ b/tokens/token-2022/transfer-fee/steel/program/Cargo.toml @@ -18,6 +18,7 @@ steel-api.workspace = true solana-program.workspace = true steel.workspace = true spl-token-2022.workspace = true +spl-associated-token-account.workspace = true [dev-dependencies] base64 = "0.21" @@ -25,3 +26,6 @@ rand = "0.8.5" solana-program-test = "2.1" solana-sdk = "2.1" tokio = { version = "1.35", features = ["full"] } +solana-keypair = "2.2" +solana-transaction = "2.2" +solana-signer = "2.2" diff --git a/tokens/token-2022/transfer-fee/steel/program/src/harvest.rs b/tokens/token-2022/transfer-fee/steel/program/src/harvest.rs new file mode 100644 index 000000000..ace3938c5 --- /dev/null +++ b/tokens/token-2022/transfer-fee/steel/program/src/harvest.rs @@ -0,0 +1,36 @@ +use solana_program::{msg, program::invoke}; +use spl_token_2022::extension::transfer_fee::instruction::harvest_withheld_tokens_to_mint; +use steel::*; + +pub fn process_harvest(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResult { + //Load accounts + let [signer_info, mint_info, harvest_acc_1, harvest_acc_2, system_program, token_program] = + accounts + else { + return Err(ProgramError::NotEnoughAccountKeys); + }; + + signer_info.is_signer()?; + mint_info.is_writable()?; + token_program.is_program(&spl_token_2022::ID)?; + system_program.is_program(&system_program::ID)?; + harvest_acc_1.is_writable()?; + harvest_acc_2.is_writable()?; + + invoke( + &harvest_withheld_tokens_to_mint( + token_program.key, + mint_info.key, + &[&harvest_acc_1.key, &harvest_acc_2.key], + )?, + &[ + mint_info.clone(), + harvest_acc_1.clone(), + harvest_acc_2.clone(), + ], + )?; + + msg!("Transfer Fee Extension: Harvest successful"); + + Ok(()) +} diff --git a/tokens/token-2022/transfer-fee/steel/program/src/initialize.rs b/tokens/token-2022/transfer-fee/steel/program/src/initialize.rs index db10ab7b7..57fe11e99 100644 --- a/tokens/token-2022/transfer-fee/steel/program/src/initialize.rs +++ b/tokens/token-2022/transfer-fee/steel/program/src/initialize.rs @@ -1,8 +1,7 @@ -use solana_program::{msg, program_pack::Pack}; +use solana_program::{msg, program::invoke}; use spl_token_2022::{ extension::{transfer_fee::instruction::initialize_transfer_fee_config, ExtensionType}, - pod::PodMint, - state::{Account, Mint}, + state::Mint, }; use steel::*; use steel_api::prelude::*; @@ -29,7 +28,6 @@ pub fn process_initialize(accounts: &[AccountInfo<'_>], _data: &[u8]) -> Program //Calculate space for mint and extension data let space = ExtensionType::try_calculate_account_len::(&[ExtensionType::TransferFeeConfig])?; - msg!(&space.to_string()); //Create account for the mint and allocate space create_account( @@ -42,7 +40,7 @@ pub fn process_initialize(accounts: &[AccountInfo<'_>], _data: &[u8]) -> Program //Initialize the transfer fee extension //This instruction must come before the instruction to initialize mint data - solana_program::program::invoke( + invoke( &initialize_transfer_fee_config( token_program.key, mint_info.key, @@ -51,53 +49,19 @@ pub fn process_initialize(accounts: &[AccountInfo<'_>], _data: &[u8]) -> Program transfer_fee_basis_points, maximum_fee, )?, - &[ - mint_info.clone(), - token_program.clone(), // If needed — depending on accounts defined in the program - ], + &[mint_info.clone()], )?; - //Initialize the Token Mint - // initialize_mint(mint_info, mint_authority_info, freeze_authority_info, token_program, rent_sysvar, decimals); - // msg!(&token_program.key.to_string()); - // msg!(&mint_info.key.to_string()); - // msg!(&signer_info.key.to_string()); - // msg!(&args.decimals.to_string()); - solana_program::program::invoke( - &spl_token_2022::instruction::initialize_mint2( - token_program.key, - mint_info.key, - signer_info.key, - Some(signer_info.key), - 9, - )?, - &[ - mint_info.clone(), - signer_info.clone(), - token_program.clone(), - // rent_sysvar.clone() - ], + initialize_mint( + mint_info, + signer_info, + Some(signer_info), + token_program, + rent_sysvar, + args.decimals, )?; - // initialize_mint2( - // mint_info, - // signer_info, - // Some(signer_info), - // token_program, - // args.decimals, - // )?; - - // initialize_mint( - // mint_info, - // signer_info, - // Some(signer_info), - // token_program, - // rent_sysvar, - // args.decimals, - // )?; - - msg!("wani"); + msg!("Transfer Fee Extension: Initialized."); - msg!("Space created"); Ok(()) } diff --git a/tokens/token-2022/transfer-fee/steel/program/src/lib.rs b/tokens/token-2022/transfer-fee/steel/program/src/lib.rs index 62d6e83f1..e2f8f9ca5 100644 --- a/tokens/token-2022/transfer-fee/steel/program/src/lib.rs +++ b/tokens/token-2022/transfer-fee/steel/program/src/lib.rs @@ -1,7 +1,14 @@ -mod add; +mod harvest; mod initialize; +mod transfer; +mod update_fee; +mod withdraw; +use harvest::*; use initialize::*; +use transfer::*; +use update_fee::*; +use withdraw::*; use steel::*; use steel_api::prelude::*; @@ -15,6 +22,10 @@ pub fn process_instruction( match ix { SteelInstruction::Initialize => process_initialize(accounts, data)?, + SteelInstruction::Transfer => process_transfer(accounts, data)?, + SteelInstruction::Harvest => process_harvest(accounts, data)?, + SteelInstruction::Withdraw => process_withdraw(accounts, data)?, + SteelInstruction::UpdateFee => process_update_fee(accounts, data)?, } Ok(()) diff --git a/tokens/token-2022/transfer-fee/steel/program/src/transfer.rs b/tokens/token-2022/transfer-fee/steel/program/src/transfer.rs new file mode 100644 index 000000000..0f38c9ddd --- /dev/null +++ b/tokens/token-2022/transfer-fee/steel/program/src/transfer.rs @@ -0,0 +1,64 @@ +use solana_program::{msg, program::invoke}; +use spl_token_2022::{ + extension::{ + transfer_fee::{instruction::transfer_checked_with_fee, TransferFeeConfig}, + BaseStateWithExtensions, StateWithExtensions, + }, + state::Mint, +}; +use steel::*; +use steel_api::prelude::*; + +// transfer fees are automatically deducted from the transfer amount +// recipients receives (transfer amount - fees) +// transfer fees are stored directly on the recipient token account and must be "harvested" +pub fn process_transfer(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResult { + let args = Transfer::try_from_bytes(&_data)?; + let amount = u64::from_le_bytes(args.amount); + + // Load accounts. + let [signer_info, mint_info, source_token_account, destination_token_account, system_program, token_program] = + accounts + else { + return Err(ProgramError::NotEnoughAccountKeys); + }; + + signer_info.is_signer()?; + source_token_account.is_writable()?; + destination_token_account.is_writable()?; + token_program.is_program(&spl_token_2022::ID)?; + system_program.is_program(&system_program::ID)?; + + //Get mint extension info + let mint_data = mint_info.data.borrow(); + let mint_with_extension = StateWithExtensions::::unpack(&mint_data)?; + msg!(&mint_with_extension.base.decimals.to_string()); + + //calculate expected fee and epoch + let epoch = Clock::get()?.epoch; + let extension_data = mint_with_extension.get_extension::()?; + let fee = extension_data.calculate_epoch_fee(epoch, amount).unwrap(); + + invoke( + &transfer_checked_with_fee( + token_program.key, + source_token_account.key, + mint_info.key, + destination_token_account.key, + signer_info.key, + &[], + amount, + mint_with_extension.base.decimals, + fee, + )?, + &[ + source_token_account.clone(), + mint_info.clone(), + destination_token_account.clone(), + signer_info.clone(), + ], + )?; + + msg!("Transfer Fee Extension: Transfer Successful."); + Ok(()) +} diff --git a/tokens/token-2022/transfer-fee/steel/program/src/update_fee.rs b/tokens/token-2022/transfer-fee/steel/program/src/update_fee.rs new file mode 100644 index 000000000..9e42090e2 --- /dev/null +++ b/tokens/token-2022/transfer-fee/steel/program/src/update_fee.rs @@ -0,0 +1,38 @@ +use solana_program::{msg, program::invoke}; +use spl_token_2022::extension::transfer_fee::instruction::set_transfer_fee; +use steel::*; +use steel_api::prelude::*; + +// Note that there is a 2 epoch delay from when new fee updates take effect +// This is a safely feature built into the extension +// https://github.com/solana-program/token-2022/blob/main/program/src/extension/transfer_fee/processor.rs#L100 +pub fn process_update_fee(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResult { + let args = UpdateFee::try_from_bytes(&_data)?; + let maximum_fee = u64::from_le_bytes(args.maximum_fee); + let transfer_fee_basis_points = u16::from_le_bytes(args.transfer_fee_basis_points); + + //Load accounts + let [signer_info, mint_info, system_program, token_program] = accounts else { + return Err(ProgramError::NotEnoughAccountKeys); + }; + + signer_info.is_signer()?; + mint_info.is_writable()?; + token_program.is_program(&spl_token_2022::ID)?; + system_program.is_program(&system_program::ID)?; + + invoke( + &set_transfer_fee( + token_program.key, + mint_info.key, + signer_info.key, + &[], + transfer_fee_basis_points, + maximum_fee, + )?, + &[mint_info.clone(), signer_info.clone()], + )?; + + msg!("Transfer Fee Extension: Update Transfer Fees Successful"); + Ok(()) +} diff --git a/tokens/token-2022/transfer-fee/steel/program/src/withdraw.rs b/tokens/token-2022/transfer-fee/steel/program/src/withdraw.rs new file mode 100644 index 000000000..9ee127560 --- /dev/null +++ b/tokens/token-2022/transfer-fee/steel/program/src/withdraw.rs @@ -0,0 +1,31 @@ +use solana_program::{msg, program::invoke}; +use spl_token_2022::extension::transfer_fee::instruction::withdraw_withheld_tokens_from_mint; +use steel::*; + +//You can either withdraw tokens from the mint account after "harvesting" or withdraw from the user accounts directly(method: withdraw_withheld_tokens_from_account()). +pub fn process_withdraw(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResult { + //Load accounts + let [signer_info, mint_info, destination, system_program, token_program] = accounts else { + return Err(ProgramError::NotEnoughAccountKeys); + }; + + signer_info.is_signer()?; + mint_info.is_writable()?; + destination.is_writable()?; + token_program.is_program(&spl_token_2022::ID)?; + system_program.is_program(&system_program::ID)?; + + invoke( + &withdraw_withheld_tokens_from_mint( + token_program.key, + mint_info.key, + destination.key, + signer_info.key, + &[], + )?, + &[mint_info.clone(), destination.clone(), signer_info.clone()], + )?; + + msg!("Transfer Fee Extension: Withdraw successful"); + Ok(()) +} diff --git a/tokens/token-2022/transfer-fee/steel/program/tests/test.rs b/tokens/token-2022/transfer-fee/steel/program/tests/test.rs index d7d4ad6fe..818adb357 100644 --- a/tokens/token-2022/transfer-fee/steel/program/tests/test.rs +++ b/tokens/token-2022/transfer-fee/steel/program/tests/test.rs @@ -1,12 +1,18 @@ +use solana_keypair::Keypair; use solana_program::hash::Hash; use solana_program_test::{processor, BanksClient, ProgramTest}; -use solana_sdk::{signature::Keypair, signer::Signer, transaction::Transaction}; +use solana_signer::Signer; +use solana_transaction::Transaction; +use spl_associated_token_account::{ + get_associated_token_address_with_program_id, instruction::create_associated_token_account, +}; use spl_token_2022::{ extension::{ - transfer_fee::TransferFeeConfig, BaseStateWithExtensions, ExtensionType, - StateWithExtensions, + transfer_fee::{TransferFeeAmount, TransferFeeConfig}, + BaseStateWithExtensions, ExtensionType, StateWithExtensions, }, - state::Mint, + instruction::mint_to, + state::{Account, Mint}, }; use steel_api::prelude::*; @@ -25,60 +31,47 @@ async fn setup() -> (BanksClient, Keypair, Hash) { #[tokio::test] async fn run_test() { // Setup test - let (mut banks, payer, blockhash) = setup().await; - let to = Keypair::new(); - let mint = Keypair::new(); + let (mut banks, sender, blockhash) = setup().await; - // Create account for mint - // let create_account_ix = system_instruction::create_account( - // &payer.pubkey(), - // &to.pubkey(), - // (Rent::get().unwrap()).minimum_balance(Mint::LEN), - // Mint::LEN as u64, - // &spl_token_2022::ID, - // ); + let first_receiver = Keypair::new(); + let second_receiver = Keypair::new(); - let maximum_fee = 1000; - let transfer_fee_basis_points = 1000; + let mint = Keypair::new(); - // Submit initialize transaction. + let decimals = 6; + let maximum_fee = 500_000; //0.5 Token based on 6 decimals + let transfer_fee_basis_points = 1000; //10% + + // 1. Initialize Transfer Fee Extension let ix = initialize( - payer.pubkey(), + sender.pubkey(), mint.pubkey(), maximum_fee, transfer_fee_basis_points, - 6, + decimals, ); let tx = Transaction::new_signed_with_payer( &[ix], - Some(&payer.pubkey()), - &[&payer, &mint], + Some(&sender.pubkey()), + &[&sender, &mint], blockhash, ); let res = banks.process_transaction(tx).await; assert!(res.is_ok()); - let mint_account = banks - .get_account(mint.pubkey()) - .await - .unwrap() - .expect("Mint account not found"); + //Get mint data + let mint_account = banks.get_account(mint.pubkey()).await.unwrap().unwrap(); let mint_data = mint_account.data.as_slice(); - // let mint_state = Mint::unpack(mint_data).expect("Failed to unpack mint"); - let state_with_extensions = StateWithExtensions::::unpack(mint_data).unwrap(); - let extension_types: Vec<_> = state_with_extensions.get_extension_types().unwrap(); - // extension_types.iter().for_each(|ext| println!("NOthing? {:?}", ext)); - + let extension_types = state_with_extensions.get_extension_types().unwrap(); let extension = state_with_extensions .get_extension::() .unwrap(); - dbg!(extension.transfer_fee_config_authority.0); - dbg!(payer.pubkey()); + assert_eq!( extension.transfer_fee_config_authority.0, - payer.pubkey(), + sender.pubkey(), "Transfer fee config authority mismatch" ); @@ -86,4 +79,166 @@ async fn run_test() { extension_types.contains(&ExtensionType::TransferFeeConfig), "TransferFeeConfig extension not found in mint account" ); + + //Derive sender's ata. + let sender_ata = get_associated_token_address_with_program_id( + &sender.pubkey(), + &mint.pubkey(), + &spl_token_2022::ID, + ); + + //Mint Tokens + let mint_ix = mint_to( + &spl_token_2022::ID, + &mint.pubkey(), + &sender_ata, + &sender.pubkey(), + &[], + 1_000_000_000, + ) + .unwrap(); + + //create token accounts + let create_token_acc_ix1 = create_associated_token_account( + &sender.pubkey(), + &sender.pubkey(), + &mint.pubkey(), + &spl_token_2022::ID, + ); + let create_token_acc_ix2 = create_associated_token_account( + &sender.pubkey(), + &first_receiver.pubkey(), + &mint.pubkey(), + &spl_token_2022::ID, + ); + + let create_token_acc_ix3 = create_associated_token_account( + &sender.pubkey(), + &second_receiver.pubkey(), + &mint.pubkey(), + &spl_token_2022::ID, + ); + + // Derive ATAs + let first_receiver_ata = get_associated_token_address_with_program_id( + &first_receiver.pubkey(), + &mint.pubkey(), + &spl_token_2022::ID, + ); + + let second_receiver_ata = get_associated_token_address_with_program_id( + &second_receiver.pubkey(), + &mint.pubkey(), + &spl_token_2022::ID, + ); + + //2. Transfer with transfer_fee functionality + let ix1 = transfer( + 1_000_000, + sender.pubkey(), + mint.pubkey(), + sender_ata, + first_receiver_ata, + ); + let ix2 = transfer( + 500_000, + sender.pubkey(), + mint.pubkey(), + sender_ata, + second_receiver_ata, + ); + + let tx = Transaction::new_signed_with_payer( + &[ + create_token_acc_ix1, + create_token_acc_ix2, + create_token_acc_ix3, + mint_ix, + ix1, + ix2, + ], + Some(&sender.pubkey()), + &[&sender], + blockhash, + ); + let res = banks.process_transaction(tx).await; + assert!(res.is_ok()); + + // Check the withheld amount on receiver accounts for expected transfer fees. + //First receiver + let receiver_acc = banks + .get_account(first_receiver_ata) + .await + .unwrap() + .unwrap(); + + // let receiver_acc_data = receiver_acc.data.as_slice(); + let state_with_extensions = + StateWithExtensions::::unpack(&receiver_acc.data.as_slice()).unwrap(); + let receiver_acc_data = state_with_extensions + .get_extension::() + .unwrap(); + assert!(u64::from(receiver_acc_data.withheld_amount) == 100000); + + //Second receiver + let receiver_acc = banks + .get_account(second_receiver_ata) + .await + .unwrap() + .unwrap(); + + let receiver_token = + StateWithExtensions::::unpack(&receiver_acc.data.as_slice()).unwrap(); + let receiver_acc_data = receiver_token.get_extension::().unwrap(); + assert!(u64::from(receiver_acc_data.withheld_amount) == 50000); + + // 3. Harvest Rewards to Mint account + let ix = harvest( + sender.pubkey(), + mint.pubkey(), + first_receiver_ata, + second_receiver_ata, + ); + + let tx = + Transaction::new_signed_with_payer(&[ix], Some(&sender.pubkey()), &[&sender], blockhash); + let res = banks.process_transaction(tx).await; + assert!(res.is_ok()); + + //Check if mint has received the harvested fees. + let mint_account = banks.get_account(mint.pubkey()).await.unwrap().unwrap(); + + let mint_data = mint_account.data.as_slice(); + let state_with_extensions = StateWithExtensions::::unpack(mint_data).unwrap(); + let extension = state_with_extensions + .get_extension::() + .unwrap(); + assert!(u64::from(extension.withheld_amount) == 150000); + + // 4. Withdraw Rewards from Mint account + let ix = withdraw(sender.pubkey(), mint.pubkey(), first_receiver_ata); + let tx = + Transaction::new_signed_with_payer(&[ix], Some(&sender.pubkey()), &[&sender], blockhash); + let res = banks.process_transaction(tx).await; + assert!(res.is_ok()); + + //Check if the withdrawn amount is in the account + let acc = banks + .get_account(first_receiver_ata) + .await + .unwrap() + .unwrap(); + + let acc_data = StateWithExtensions::::unpack(&acc.data.as_slice()).unwrap(); + + // 1,050,000 = Initial transfer of 1,000,000 (after 10% fee → 900,000) + // + 150,000 harvested and withdrawn from the mint + assert!(acc_data.base.amount == 1050000); + + // 5. Update Transfer Fees + let ix = update_fee(sender.pubkey(), mint.pubkey(), 200000, 2000); + let tx = + Transaction::new_signed_with_payer(&[ix], Some(&sender.pubkey()), &[&sender], blockhash); + let res = banks.process_transaction(tx).await; + assert!(res.is_ok()); } From 75271848f4dc9ba7c59ec9405a0c998b980b920f Mon Sep 17 00:00:00 2001 From: ubadineke Date: Mon, 23 Jun 2025 22:56:18 +0100 Subject: [PATCH 03/13] mint close authority extension --- .../mint-close-authority/steel/.gitignore | 2 + .../mint-close-authority/steel/Cargo.toml | 22 +++++ .../mint-close-authority/steel/README.md | 28 +++++++ .../mint-close-authority/steel/api/Cargo.toml | 19 +++++ .../steel/api/src/error.rs | 10 +++ .../steel/api/src/instruction.rs | 19 +++++ .../mint-close-authority/steel/api/src/lib.rs | 14 ++++ .../mint-close-authority/steel/api/src/sdk.rs | 31 +++++++ .../steel/program/Cargo.toml | 30 +++++++ .../steel/program/src/initialize.rs | 54 ++++++++++++ .../steel/program/src/lib.rs | 25 ++++++ .../steel/program/src/mint_close.rs | 31 +++++++ .../steel/program/tests/test.rs | 83 +++++++++++++++++++ 13 files changed, 368 insertions(+) create mode 100644 tokens/token-2022/mint-close-authority/steel/.gitignore create mode 100644 tokens/token-2022/mint-close-authority/steel/Cargo.toml create mode 100644 tokens/token-2022/mint-close-authority/steel/README.md create mode 100644 tokens/token-2022/mint-close-authority/steel/api/Cargo.toml create mode 100644 tokens/token-2022/mint-close-authority/steel/api/src/error.rs create mode 100644 tokens/token-2022/mint-close-authority/steel/api/src/instruction.rs create mode 100644 tokens/token-2022/mint-close-authority/steel/api/src/lib.rs create mode 100644 tokens/token-2022/mint-close-authority/steel/api/src/sdk.rs create mode 100644 tokens/token-2022/mint-close-authority/steel/program/Cargo.toml create mode 100644 tokens/token-2022/mint-close-authority/steel/program/src/initialize.rs create mode 100644 tokens/token-2022/mint-close-authority/steel/program/src/lib.rs create mode 100644 tokens/token-2022/mint-close-authority/steel/program/src/mint_close.rs create mode 100644 tokens/token-2022/mint-close-authority/steel/program/tests/test.rs diff --git a/tokens/token-2022/mint-close-authority/steel/.gitignore b/tokens/token-2022/mint-close-authority/steel/.gitignore new file mode 100644 index 000000000..052739dbc --- /dev/null +++ b/tokens/token-2022/mint-close-authority/steel/.gitignore @@ -0,0 +1,2 @@ +target +test-ledger diff --git a/tokens/token-2022/mint-close-authority/steel/Cargo.toml b/tokens/token-2022/mint-close-authority/steel/Cargo.toml new file mode 100644 index 000000000..23402b9a0 --- /dev/null +++ b/tokens/token-2022/mint-close-authority/steel/Cargo.toml @@ -0,0 +1,22 @@ +[workspace] +resolver = "2" +members = ["api", "program"] + +[workspace.package] +version = "0.1.0" +edition = "2021" +license = "Apache-2.0" +homepage = "" +documentation = "" +repository = "" +readme = "./README.md" +keywords = ["solana"] + +[workspace.dependencies] +steel-api = { path = "./api", version = "0.1.0" } +bytemuck = "1.14" +num_enum = "0.7" +solana-program = "2.1" +steel = "4.0" +thiserror = "1.0" +spl-token-2022 = {version = "7.0.0", features = ["no-entrypoint"]} diff --git a/tokens/token-2022/mint-close-authority/steel/README.md b/tokens/token-2022/mint-close-authority/steel/README.md new file mode 100644 index 000000000..cfc508fd5 --- /dev/null +++ b/tokens/token-2022/mint-close-authority/steel/README.md @@ -0,0 +1,28 @@ +# Steel + +**Steel** is a ... + +## API +- [`Consts`](api/src/consts.rs) – Program constants. +- [`Error`](api/src/error.rs) – Custom program errors. +- [`Event`](api/src/event.rs) – Custom program events. +- [`Instruction`](api/src/instruction.rs) – Declared instructions. + +## Instructions +- [`Add`](program/src/add.rs) – Add ... +- [`Initialize`](program/src/initialize.rs) – Initialize ... + +## State +- [`Counter`](api/src/state/counter.rs) – Counter ... + +## Get started + +Compile your program: +```sh +steel build +``` + +Run unit and integration tests: +```sh +steel test +``` diff --git a/tokens/token-2022/mint-close-authority/steel/api/Cargo.toml b/tokens/token-2022/mint-close-authority/steel/api/Cargo.toml new file mode 100644 index 000000000..e514258ea --- /dev/null +++ b/tokens/token-2022/mint-close-authority/steel/api/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "steel-api" +description = "API for interacting with the Steel program" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +documentation.workspace = true +repository.workspace = true +readme.workspace = true +keywords.workspace = true + +[dependencies] +bytemuck.workspace = true +num_enum.workspace = true +solana-program.workspace = true +steel.workspace = true +thiserror.workspace = true +spl-token-2022.workspace = true diff --git a/tokens/token-2022/mint-close-authority/steel/api/src/error.rs b/tokens/token-2022/mint-close-authority/steel/api/src/error.rs new file mode 100644 index 000000000..96e84da4d --- /dev/null +++ b/tokens/token-2022/mint-close-authority/steel/api/src/error.rs @@ -0,0 +1,10 @@ +use steel::*; + +#[derive(Debug, Error, Clone, Copy, PartialEq, Eq, IntoPrimitive)] +#[repr(u32)] +pub enum SteelError { + #[error("This is a dummy error")] + Dummy = 0, +} + +error!(SteelError); diff --git a/tokens/token-2022/mint-close-authority/steel/api/src/instruction.rs b/tokens/token-2022/mint-close-authority/steel/api/src/instruction.rs new file mode 100644 index 000000000..041284b98 --- /dev/null +++ b/tokens/token-2022/mint-close-authority/steel/api/src/instruction.rs @@ -0,0 +1,19 @@ +use steel::*; + +#[repr(u8)] +#[derive(Clone, Copy, Debug, Eq, PartialEq, TryFromPrimitive)] +pub enum SteelInstruction { + Initialize = 0, + MintCloseAuthority = 1, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug, Pod, Zeroable)] +pub struct Initialize {} + +#[repr(C)] +#[derive(Clone, Copy, Debug, Pod, Zeroable)] +pub struct MintCloseAuthority {} + +instruction!(SteelInstruction, Initialize); +instruction!(SteelInstruction, MintCloseAuthority); diff --git a/tokens/token-2022/mint-close-authority/steel/api/src/lib.rs b/tokens/token-2022/mint-close-authority/steel/api/src/lib.rs new file mode 100644 index 000000000..2c146dac0 --- /dev/null +++ b/tokens/token-2022/mint-close-authority/steel/api/src/lib.rs @@ -0,0 +1,14 @@ +pub mod error; +pub mod instruction; +pub mod sdk; + +pub mod prelude { + pub use crate::error::*; + pub use crate::instruction::*; + pub use crate::sdk::*; +} + +use steel::*; + +// TODO Set program id +declare_id!("z7msBPQHDJjTvdQRoEcKyENgXDhSRYeHieN1ZMTqo35"); diff --git a/tokens/token-2022/mint-close-authority/steel/api/src/sdk.rs b/tokens/token-2022/mint-close-authority/steel/api/src/sdk.rs new file mode 100644 index 000000000..c1f20c8b4 --- /dev/null +++ b/tokens/token-2022/mint-close-authority/steel/api/src/sdk.rs @@ -0,0 +1,31 @@ +use steel::*; + +use crate::prelude::*; + +pub fn initialize(signer: Pubkey, mint: Pubkey) -> Instruction { + Instruction { + program_id: crate::ID, + accounts: vec![ + AccountMeta::new(signer, true), + AccountMeta::new(mint, true), + AccountMeta::new_readonly(system_program::ID, false), + AccountMeta::new_readonly(spl_token_2022::ID, false), + AccountMeta::new_readonly(sysvar::rent::ID, false), + ], + data: Initialize {}.to_bytes(), + } +} + +pub fn mint_close(signer: Pubkey, destination: Pubkey, mint: Pubkey) -> Instruction { + Instruction { + program_id: crate::ID, + accounts: vec![ + AccountMeta::new(signer, true), + AccountMeta::new(mint, true), + AccountMeta::new(destination, false), + AccountMeta::new_readonly(system_program::ID, false), + AccountMeta::new_readonly(spl_token_2022::ID, false), + ], + data: MintCloseAuthority {}.to_bytes(), + } +} diff --git a/tokens/token-2022/mint-close-authority/steel/program/Cargo.toml b/tokens/token-2022/mint-close-authority/steel/program/Cargo.toml new file mode 100644 index 000000000..2389cae0d --- /dev/null +++ b/tokens/token-2022/mint-close-authority/steel/program/Cargo.toml @@ -0,0 +1,30 @@ +[package] +name = "steel-program" +description = "" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +documentation.workspace = true +repository.workspace = true +readme.workspace = true +keywords.workspace = true + +[lib] +crate-type = ["cdylib", "lib"] + +[dependencies] +steel-api.workspace = true +solana-program.workspace = true +steel.workspace = true +spl-token-2022.workspace = true + +[dev-dependencies] +base64 = "0.21" +rand = "0.8.5" +solana-program-test = "2.1" +solana-sdk = "2.1" +tokio = { version = "1.35", features = ["full"] } +solana-keypair = "2.2" +solana-signer = "2.2" +solana-transaction = "2.2" diff --git a/tokens/token-2022/mint-close-authority/steel/program/src/initialize.rs b/tokens/token-2022/mint-close-authority/steel/program/src/initialize.rs new file mode 100644 index 000000000..fd1774126 --- /dev/null +++ b/tokens/token-2022/mint-close-authority/steel/program/src/initialize.rs @@ -0,0 +1,54 @@ +use solana_program::{msg, program::invoke}; +use spl_token_2022::{ + extension::{mint_close_authority, ExtensionType}, + instruction::initialize_mint_close_authority, + state::Mint, +}; +use steel::*; + +//Here the close authority is the signer info +pub fn process_initialize(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResult { + // Load accounts. + let [signer_info, mint_info, system_program, token_program, rent_sysvar] = accounts else { + return Err(ProgramError::NotEnoughAccountKeys); + }; + + signer_info.is_signer()?; + mint_info.is_signer()?.is_empty()?.is_writable()?; + system_program.is_program(&system_program::ID)?; + token_program.is_program(&spl_token_2022::ID)?; + rent_sysvar.is_sysvar(&sysvar::rent::ID)?; + + //Calculate space for mint and extension data + let space = + ExtensionType::try_calculate_account_len::(&[ExtensionType::MintCloseAuthority])?; + msg!(&space.to_string()); + //Create account for the mint and allocate space + create_account( + signer_info, + mint_info, + system_program, + space, + token_program.key, + )?; + + //Initialize the Mint-Close-Authority Extension + //This instruction must come before the instruction to initialize mint data + invoke( + &initialize_mint_close_authority(token_program.key, mint_info.key, Some(signer_info.key))?, + &[mint_info.clone(), signer_info.clone()], + )?; + + initialize_mint( + mint_info, + signer_info, + Some(signer_info), + token_program, + rent_sysvar, + 6, //you can configure it to be passed as instruction data + )?; + + msg!("Mint Close Authority Extension: Initialized!"); + + Ok(()) +} diff --git a/tokens/token-2022/mint-close-authority/steel/program/src/lib.rs b/tokens/token-2022/mint-close-authority/steel/program/src/lib.rs new file mode 100644 index 000000000..ebb081906 --- /dev/null +++ b/tokens/token-2022/mint-close-authority/steel/program/src/lib.rs @@ -0,0 +1,25 @@ +mod initialize; +mod mint_close; + +use initialize::*; +use mint_close::*; + +use steel::*; +use steel_api::prelude::*; + +pub fn process_instruction( + program_id: &Pubkey, + accounts: &[AccountInfo], + data: &[u8], +) -> ProgramResult { + let (ix, data) = parse_instruction(&steel_api::ID, program_id, data)?; + + match ix { + SteelInstruction::Initialize => process_initialize(accounts, data)?, + SteelInstruction::MintCloseAuthority => process_mint_close(accounts, data)?, + } + + Ok(()) +} + +entrypoint!(process_instruction); diff --git a/tokens/token-2022/mint-close-authority/steel/program/src/mint_close.rs b/tokens/token-2022/mint-close-authority/steel/program/src/mint_close.rs new file mode 100644 index 000000000..e1be4b7a0 --- /dev/null +++ b/tokens/token-2022/mint-close-authority/steel/program/src/mint_close.rs @@ -0,0 +1,31 @@ +use solana_program::{msg, program::invoke}; +use spl_token_2022::instruction::close_account; +use steel::*; + +pub fn process_mint_close(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResult { + // Load accounts. + let [signer_info, mint_info, destination, system_program, token_program] = accounts else { + return Err(ProgramError::NotEnoughAccountKeys); + }; + + signer_info.is_signer()?; + mint_info.is_signer()?; + destination.is_writable()?; + token_program.is_program(&spl_token_2022::ID)?; + system_program.is_program(&system_program::ID)?; + + invoke( + &close_account( + token_program.key, + mint_info.key, + destination.key, + signer_info.key, + &[], + )?, + &[mint_info.clone(), destination.clone(), signer_info.clone()], + )?; + + msg!("Mint Close Authority Extension: Account Closed!"); + + Ok(()) +} diff --git a/tokens/token-2022/mint-close-authority/steel/program/tests/test.rs b/tokens/token-2022/mint-close-authority/steel/program/tests/test.rs new file mode 100644 index 000000000..88b83c00b --- /dev/null +++ b/tokens/token-2022/mint-close-authority/steel/program/tests/test.rs @@ -0,0 +1,83 @@ +use solana_program::hash::Hash; +use solana_program_test::{processor, BanksClient, ProgramTest}; +use solana_sdk::{signature::Keypair, signer::Signer, transaction::Transaction}; +use spl_token_2022::{ + extension::{ + mint_close_authority::MintCloseAuthority, + transfer_fee::{TransferFeeAmount, TransferFeeConfig}, + BaseStateWithExtensions, ExtensionType, StateWithExtensions, + }, + instruction::mint_to, + state::{Account, Mint}, +}; +use steel::*; +use steel_api::prelude::*; + +async fn setup() -> (BanksClient, Keypair, Hash) { + let mut program_test = ProgramTest::new( + "steel_program", + steel_api::ID, + processor!(steel_program::process_instruction), + ); + program_test.prefer_bpf(true); + program_test.start().await +} + +#[tokio::test] +async fn run_test() { + // Setup test + let (mut banks, payer, blockhash) = setup().await; + let recv = Keypair::new(); + let mint = Keypair::new(); + + // Submit initialize transaction. + let ix = initialize(payer.pubkey(), mint.pubkey()); + let tx = Transaction::new_signed_with_payer( + &[ix], + Some(&payer.pubkey()), + &[&payer, &mint], + blockhash, + ); + let res = banks.process_transaction(tx).await; + assert!(res.is_ok()); + + //Get mint data + let mint_account = banks.get_account(mint.pubkey()).await.unwrap().unwrap(); + dbg!(mint_account.lamports); + let mint_data = mint_account.data.as_slice(); + let state_with_extensions = StateWithExtensions::::unpack(mint_data).unwrap(); + let extension_types = state_with_extensions.get_extension_types().unwrap(); + let extension = state_with_extensions + .get_extension::() + .unwrap(); + + assert_eq!( + extension.close_authority.0, + payer.pubkey(), + "Mint close authority mismatch" + ); + + assert!( + extension_types.contains(&ExtensionType::MintCloseAuthority), + "Mint Close Authority extension not found in mint account" + ); + + // Submit close mint transaction. + let ix = mint_close(payer.pubkey(), recv.pubkey(), mint.pubkey()); + let tx = Transaction::new_signed_with_payer( + &[ix], + Some(&payer.pubkey()), + &[&payer, &mint], + blockhash, + ); + let res = banks.process_transaction(tx).await; + assert!(res.is_ok()); + + //Get mint data + let mint_account = banks.get_account(mint.pubkey()).await.unwrap(); + assert!(mint_account.is_none(), "Mint account should be closed but still exists"); + + //Checking if the rent was transferred to the destination account + let recv_account = banks.get_account(recv.pubkey()).await.unwrap().unwrap(); + assert!(recv_account.lamports == 2296800); +} From 73359d935325e286d20e3bc92d33a736860b7ed2 Mon Sep 17 00:00:00 2001 From: ubadineke Date: Tue, 24 Jun 2025 22:49:48 +0100 Subject: [PATCH 04/13] steel: non transferable extension --- .../steel/program/src/initialize.rs | 2 +- .../steel/program/tests/test.rs | 6 +- .../non-transferable/steel/.gitignore | 2 + .../non-transferable/steel/Cargo.toml | 22 ++++ .../non-transferable/steel/README.md | 28 +++++ .../non-transferable/steel/api/Cargo.toml | 19 +++ .../non-transferable/steel/api/src/error.rs | 10 ++ .../steel/api/src/instruction.rs | 13 ++ .../non-transferable/steel/api/src/lib.rs | 14 +++ .../non-transferable/steel/api/src/sdk.rs | 17 +++ .../non-transferable/steel/program/Cargo.toml | 29 +++++ .../steel/program/src/initialize.rs | 53 +++++++++ .../non-transferable/steel/program/src/lib.rs | 22 ++++ .../steel/program/tests/test.rs | 111 ++++++++++++++++++ .../transfer-fee/steel/api/src/instruction.rs | 4 +- 15 files changed, 345 insertions(+), 7 deletions(-) create mode 100644 tokens/token-2022/non-transferable/steel/.gitignore create mode 100644 tokens/token-2022/non-transferable/steel/Cargo.toml create mode 100644 tokens/token-2022/non-transferable/steel/README.md create mode 100644 tokens/token-2022/non-transferable/steel/api/Cargo.toml create mode 100644 tokens/token-2022/non-transferable/steel/api/src/error.rs create mode 100644 tokens/token-2022/non-transferable/steel/api/src/instruction.rs create mode 100644 tokens/token-2022/non-transferable/steel/api/src/lib.rs create mode 100644 tokens/token-2022/non-transferable/steel/api/src/sdk.rs create mode 100644 tokens/token-2022/non-transferable/steel/program/Cargo.toml create mode 100644 tokens/token-2022/non-transferable/steel/program/src/initialize.rs create mode 100644 tokens/token-2022/non-transferable/steel/program/src/lib.rs create mode 100644 tokens/token-2022/non-transferable/steel/program/tests/test.rs diff --git a/tokens/token-2022/mint-close-authority/steel/program/src/initialize.rs b/tokens/token-2022/mint-close-authority/steel/program/src/initialize.rs index fd1774126..310563cdc 100644 --- a/tokens/token-2022/mint-close-authority/steel/program/src/initialize.rs +++ b/tokens/token-2022/mint-close-authority/steel/program/src/initialize.rs @@ -1,6 +1,6 @@ use solana_program::{msg, program::invoke}; use spl_token_2022::{ - extension::{mint_close_authority, ExtensionType}, + extension::ExtensionType, instruction::initialize_mint_close_authority, state::Mint, }; diff --git a/tokens/token-2022/mint-close-authority/steel/program/tests/test.rs b/tokens/token-2022/mint-close-authority/steel/program/tests/test.rs index 88b83c00b..7050c6501 100644 --- a/tokens/token-2022/mint-close-authority/steel/program/tests/test.rs +++ b/tokens/token-2022/mint-close-authority/steel/program/tests/test.rs @@ -4,13 +4,11 @@ use solana_sdk::{signature::Keypair, signer::Signer, transaction::Transaction}; use spl_token_2022::{ extension::{ mint_close_authority::MintCloseAuthority, - transfer_fee::{TransferFeeAmount, TransferFeeConfig}, BaseStateWithExtensions, ExtensionType, StateWithExtensions, }, - instruction::mint_to, - state::{Account, Mint}, + state::Mint, }; -use steel::*; + use steel_api::prelude::*; async fn setup() -> (BanksClient, Keypair, Hash) { diff --git a/tokens/token-2022/non-transferable/steel/.gitignore b/tokens/token-2022/non-transferable/steel/.gitignore new file mode 100644 index 000000000..052739dbc --- /dev/null +++ b/tokens/token-2022/non-transferable/steel/.gitignore @@ -0,0 +1,2 @@ +target +test-ledger diff --git a/tokens/token-2022/non-transferable/steel/Cargo.toml b/tokens/token-2022/non-transferable/steel/Cargo.toml new file mode 100644 index 000000000..ae0a6d27b --- /dev/null +++ b/tokens/token-2022/non-transferable/steel/Cargo.toml @@ -0,0 +1,22 @@ +[workspace] +resolver = "2" +members = ["api", "program"] + +[workspace.package] +version = "0.1.0" +edition = "2021" +license = "Apache-2.0" +homepage = "" +documentation = "" +repository = "" +readme = "./README.md" +keywords = ["solana"] + +[workspace.dependencies] +steel-api = { path = "./api", version = "0.1.0" } +bytemuck = "1.14" +num_enum = "0.7" +solana-program = "2.1" +steel = "4.0" +thiserror = "1.0" +spl-token-2022 = {version = "7.0.0", features = ["no-entrypoint"]} \ No newline at end of file diff --git a/tokens/token-2022/non-transferable/steel/README.md b/tokens/token-2022/non-transferable/steel/README.md new file mode 100644 index 000000000..cfc508fd5 --- /dev/null +++ b/tokens/token-2022/non-transferable/steel/README.md @@ -0,0 +1,28 @@ +# Steel + +**Steel** is a ... + +## API +- [`Consts`](api/src/consts.rs) – Program constants. +- [`Error`](api/src/error.rs) – Custom program errors. +- [`Event`](api/src/event.rs) – Custom program events. +- [`Instruction`](api/src/instruction.rs) – Declared instructions. + +## Instructions +- [`Add`](program/src/add.rs) – Add ... +- [`Initialize`](program/src/initialize.rs) – Initialize ... + +## State +- [`Counter`](api/src/state/counter.rs) – Counter ... + +## Get started + +Compile your program: +```sh +steel build +``` + +Run unit and integration tests: +```sh +steel test +``` diff --git a/tokens/token-2022/non-transferable/steel/api/Cargo.toml b/tokens/token-2022/non-transferable/steel/api/Cargo.toml new file mode 100644 index 000000000..e514258ea --- /dev/null +++ b/tokens/token-2022/non-transferable/steel/api/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "steel-api" +description = "API for interacting with the Steel program" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +documentation.workspace = true +repository.workspace = true +readme.workspace = true +keywords.workspace = true + +[dependencies] +bytemuck.workspace = true +num_enum.workspace = true +solana-program.workspace = true +steel.workspace = true +thiserror.workspace = true +spl-token-2022.workspace = true diff --git a/tokens/token-2022/non-transferable/steel/api/src/error.rs b/tokens/token-2022/non-transferable/steel/api/src/error.rs new file mode 100644 index 000000000..96e84da4d --- /dev/null +++ b/tokens/token-2022/non-transferable/steel/api/src/error.rs @@ -0,0 +1,10 @@ +use steel::*; + +#[derive(Debug, Error, Clone, Copy, PartialEq, Eq, IntoPrimitive)] +#[repr(u32)] +pub enum SteelError { + #[error("This is a dummy error")] + Dummy = 0, +} + +error!(SteelError); diff --git a/tokens/token-2022/non-transferable/steel/api/src/instruction.rs b/tokens/token-2022/non-transferable/steel/api/src/instruction.rs new file mode 100644 index 000000000..c29bdee0d --- /dev/null +++ b/tokens/token-2022/non-transferable/steel/api/src/instruction.rs @@ -0,0 +1,13 @@ +use steel::*; + +#[repr(u8)] +#[derive(Clone, Copy, Debug, Eq, PartialEq, TryFromPrimitive)] +pub enum SteelInstruction { + Initialize = 0, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug, Pod, Zeroable)] +pub struct Initialize {} + +instruction!(SteelInstruction, Initialize); diff --git a/tokens/token-2022/non-transferable/steel/api/src/lib.rs b/tokens/token-2022/non-transferable/steel/api/src/lib.rs new file mode 100644 index 000000000..2c146dac0 --- /dev/null +++ b/tokens/token-2022/non-transferable/steel/api/src/lib.rs @@ -0,0 +1,14 @@ +pub mod error; +pub mod instruction; +pub mod sdk; + +pub mod prelude { + pub use crate::error::*; + pub use crate::instruction::*; + pub use crate::sdk::*; +} + +use steel::*; + +// TODO Set program id +declare_id!("z7msBPQHDJjTvdQRoEcKyENgXDhSRYeHieN1ZMTqo35"); diff --git a/tokens/token-2022/non-transferable/steel/api/src/sdk.rs b/tokens/token-2022/non-transferable/steel/api/src/sdk.rs new file mode 100644 index 000000000..c813b5cc4 --- /dev/null +++ b/tokens/token-2022/non-transferable/steel/api/src/sdk.rs @@ -0,0 +1,17 @@ +use steel::*; + +use crate::prelude::*; + +pub fn initialize(signer: Pubkey, mint: Pubkey) -> Instruction { + Instruction { + program_id: crate::ID, + accounts: vec![ + AccountMeta::new(signer, true), + AccountMeta::new(mint, true), + AccountMeta::new_readonly(system_program::ID, false), + AccountMeta::new_readonly(spl_token_2022::ID, false), + AccountMeta::new_readonly(sysvar::rent::ID, false), + ], + data: Initialize {}.to_bytes(), + } +} diff --git a/tokens/token-2022/non-transferable/steel/program/Cargo.toml b/tokens/token-2022/non-transferable/steel/program/Cargo.toml new file mode 100644 index 000000000..90ef6655f --- /dev/null +++ b/tokens/token-2022/non-transferable/steel/program/Cargo.toml @@ -0,0 +1,29 @@ +[package] +name = "steel-program" +description = "" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +documentation.workspace = true +repository.workspace = true +readme.workspace = true +keywords.workspace = true + +[lib] +crate-type = ["cdylib", "lib"] + +[dependencies] +steel-api.workspace = true +solana-program.workspace = true +steel.workspace = true +spl-token-2022.workspace = true + +[dev-dependencies] +base64 = "0.21" +rand = "0.8.5" +solana-program-test = "2.1" +solana-sdk = "2.1" +tokio = { version = "1.35", features = ["full"] } +spl-associated-token-account = {version = "7.0.0", features = ["no-entrypoint"]} + diff --git a/tokens/token-2022/non-transferable/steel/program/src/initialize.rs b/tokens/token-2022/non-transferable/steel/program/src/initialize.rs new file mode 100644 index 000000000..eb5a33dc7 --- /dev/null +++ b/tokens/token-2022/non-transferable/steel/program/src/initialize.rs @@ -0,0 +1,53 @@ +use solana_program::{msg, program::invoke}; +use spl_token_2022::{ + extension::ExtensionType, instruction::initialize_non_transferable_mint, state::Mint, +}; +use steel::*; + +pub fn process_initialize(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResult { + // Load accounts. + let [signer_info, mint_info, system_program, token_program, rent_sysvar] = accounts else { + return Err(ProgramError::NotEnoughAccountKeys); + }; + msg!("Account loaded"); + + //Validation + signer_info.is_signer()?; + mint_info.is_signer()?.is_empty()?.is_writable()?; + token_program.is_program(&spl_token_2022::ID)?; + system_program.is_program(&system_program::ID)?; + rent_sysvar.is_sysvar(&sysvar::rent::ID)?; + + //Calculate space for mint and extension data + let space = + ExtensionType::try_calculate_account_len::(&[ExtensionType::NonTransferable])?; + + //Create account for the mint and allocate space + create_account( + signer_info, + mint_info, + system_program, + space, + token_program.key, + )?; + + //Initialize the non transferable extension + //This instruction must come before the instruction to initialize mint data + invoke( + &initialize_non_transferable_mint(token_program.key, mint_info.key)?, + &[mint_info.clone()], + )?; + + initialize_mint( + mint_info, + signer_info, + Some(signer_info), + token_program, + rent_sysvar, + 6, //you can always pass this as instruction data + )?; + + msg!("Non Transferable Extension: Initialized."); + + Ok(()) +} diff --git a/tokens/token-2022/non-transferable/steel/program/src/lib.rs b/tokens/token-2022/non-transferable/steel/program/src/lib.rs new file mode 100644 index 000000000..73785439a --- /dev/null +++ b/tokens/token-2022/non-transferable/steel/program/src/lib.rs @@ -0,0 +1,22 @@ +mod initialize; + +use initialize::*; + +use steel::*; +use steel_api::prelude::*; + +pub fn process_instruction( + program_id: &Pubkey, + accounts: &[AccountInfo], + data: &[u8], +) -> ProgramResult { + let (ix, data) = parse_instruction(&steel_api::ID, program_id, data)?; + + match ix { + SteelInstruction::Initialize => process_initialize(accounts, data)?, + } + + Ok(()) +} + +entrypoint!(process_instruction); diff --git a/tokens/token-2022/non-transferable/steel/program/tests/test.rs b/tokens/token-2022/non-transferable/steel/program/tests/test.rs new file mode 100644 index 000000000..d09ac4e68 --- /dev/null +++ b/tokens/token-2022/non-transferable/steel/program/tests/test.rs @@ -0,0 +1,111 @@ +use solana_program::hash::Hash; +use solana_program_test::{processor, BanksClient, ProgramTest}; +use solana_sdk::{signature::Keypair, signer::Signer, transaction::Transaction}; +use spl_associated_token_account::{ + get_associated_token_address_with_program_id, instruction::create_associated_token_account, +}; +use spl_token_2022::instruction::{mint_to, transfer_checked}; +use steel_api::prelude::*; + +async fn setup() -> (BanksClient, Keypair, Hash) { + let mut program_test = ProgramTest::new( + "steel_program", + steel_api::ID, + processor!(steel_program::process_instruction), + ); + program_test.prefer_bpf(true); + program_test.start().await +} + +#[tokio::test] +async fn run_test() { + // Setup test + let (mut banks, payer, blockhash) = setup().await; + + let mint = Keypair::new(); + let receiver = Keypair::new(); + + // Submit initialize transaction. + let ix = initialize(payer.pubkey(), mint.pubkey()); + let tx = Transaction::new_signed_with_payer( + &[ix], + Some(&payer.pubkey()), + &[&payer, &mint], + blockhash, + ); + let res = banks.process_transaction(tx).await; + assert!(res.is_ok()); + + //create token accounts + let create_token_acc_ix1 = create_associated_token_account( + &payer.pubkey(), + &payer.pubkey(), + &mint.pubkey(), + &spl_token_2022::ID, + ); + let create_token_acc_ix2 = create_associated_token_account( + &payer.pubkey(), + &receiver.pubkey(), + &mint.pubkey(), + &spl_token_2022::ID, + ); + + // Derive ATAs + let payer_ata = get_associated_token_address_with_program_id( + &payer.pubkey(), + &mint.pubkey(), + &spl_token_2022::ID, + ); + + let receiver_ata = get_associated_token_address_with_program_id( + &receiver.pubkey(), + &mint.pubkey(), + &spl_token_2022::ID, + ); + + //Mint Tokens + let mint_ix = mint_to( + &spl_token_2022::ID, + &mint.pubkey(), + &payer_ata, + &payer.pubkey(), + &[], + 1_000_000_000, + ) + .unwrap(); + + let transfer_ix = transfer_checked( + &spl_token_2022::ID, + &payer_ata, + &mint.pubkey(), + &receiver_ata, + &payer.pubkey(), + &[], + 1_000_000, + 6, + ) + .unwrap(); + let tx = Transaction::new_signed_with_payer( + &[ + create_token_acc_ix1, + create_token_acc_ix2, + mint_ix, + transfer_ix, + ], + Some(&payer.pubkey()), + &[&payer], + blockhash, + ); + + let res = banks.process_transaction(tx).await; + assert!(res.is_err(), "Transfer unexpectedly succeeded"); + + let err_string = format!("{:?}", res); + + // Custom(0x25) = Custom(37) = TokenError::NonTransferable + assert!( + err_string.contains("Custom(37)"), + "Expected TokenError::NonTransferable (37), got: {}", + err_string + ); +} diff --git a/tokens/token-2022/transfer-fee/steel/api/src/instruction.rs b/tokens/token-2022/transfer-fee/steel/api/src/instruction.rs index e459858fd..6d10a5ba6 100644 --- a/tokens/token-2022/transfer-fee/steel/api/src/instruction.rs +++ b/tokens/token-2022/transfer-fee/steel/api/src/instruction.rs @@ -13,7 +13,7 @@ pub enum SteelInstruction { #[repr(C)] #[derive(Clone, Copy, Debug, Pod, Zeroable)] pub struct Initialize { - pub maximum_fee: [u8; 8], //NOTE: take into consideration the token decimals or maybe I should just scale using the input + pub maximum_fee: [u8; 8], //NOTE: take into consideration the token decimals, you can also scale the input to match the decimals pub transfer_fee_basis_points: [u8; 2], pub decimals: u8, } @@ -37,7 +37,7 @@ pub struct Withdraw { #[repr(C)] #[derive(Clone, Copy, Debug, Pod, Zeroable)] pub struct UpdateFee { - pub maximum_fee: [u8; 8], //NOTE: take into consideration the token decimals or maybe I should just scale using the input + pub maximum_fee: [u8; 8], //NOTE: take into consideration the token decimals, you can also scale the input to match the decimals. pub transfer_fee_basis_points: [u8; 2], } From ff821f4f6a1dedf89a0d911e33626eee1ff8f00a Mon Sep 17 00:00:00 2001 From: ubadineke Date: Wed, 25 Jun 2025 21:38:23 +0100 Subject: [PATCH 05/13] steel: memo transfer extension --- .../token-2022/memo-transfer/steel/Cargo.toml | 22 ++++ .../token-2022/memo-transfer/steel/README.md | 28 ++++ .../memo-transfer/steel/api/Cargo.toml | 19 +++ .../memo-transfer/steel/api/src/error.rs | 10 ++ .../steel/api/src/instruction.rs | 13 ++ .../memo-transfer/steel/api/src/lib.rs | 14 ++ .../memo-transfer/steel/api/src/sdk.rs | 17 +++ .../memo-transfer/steel/program/Cargo.toml | 28 ++++ .../steel/program/src/initialize.rs | 63 +++++++++ .../memo-transfer/steel/program/src/lib.rs | 22 ++++ .../memo-transfer/steel/program/tests/test.rs | 120 ++++++++++++++++++ 11 files changed, 356 insertions(+) create mode 100644 tokens/token-2022/memo-transfer/steel/Cargo.toml create mode 100644 tokens/token-2022/memo-transfer/steel/README.md create mode 100644 tokens/token-2022/memo-transfer/steel/api/Cargo.toml create mode 100644 tokens/token-2022/memo-transfer/steel/api/src/error.rs create mode 100644 tokens/token-2022/memo-transfer/steel/api/src/instruction.rs create mode 100644 tokens/token-2022/memo-transfer/steel/api/src/lib.rs create mode 100644 tokens/token-2022/memo-transfer/steel/api/src/sdk.rs create mode 100644 tokens/token-2022/memo-transfer/steel/program/Cargo.toml create mode 100644 tokens/token-2022/memo-transfer/steel/program/src/initialize.rs create mode 100644 tokens/token-2022/memo-transfer/steel/program/src/lib.rs create mode 100644 tokens/token-2022/memo-transfer/steel/program/tests/test.rs diff --git a/tokens/token-2022/memo-transfer/steel/Cargo.toml b/tokens/token-2022/memo-transfer/steel/Cargo.toml new file mode 100644 index 000000000..23402b9a0 --- /dev/null +++ b/tokens/token-2022/memo-transfer/steel/Cargo.toml @@ -0,0 +1,22 @@ +[workspace] +resolver = "2" +members = ["api", "program"] + +[workspace.package] +version = "0.1.0" +edition = "2021" +license = "Apache-2.0" +homepage = "" +documentation = "" +repository = "" +readme = "./README.md" +keywords = ["solana"] + +[workspace.dependencies] +steel-api = { path = "./api", version = "0.1.0" } +bytemuck = "1.14" +num_enum = "0.7" +solana-program = "2.1" +steel = "4.0" +thiserror = "1.0" +spl-token-2022 = {version = "7.0.0", features = ["no-entrypoint"]} diff --git a/tokens/token-2022/memo-transfer/steel/README.md b/tokens/token-2022/memo-transfer/steel/README.md new file mode 100644 index 000000000..cfc508fd5 --- /dev/null +++ b/tokens/token-2022/memo-transfer/steel/README.md @@ -0,0 +1,28 @@ +# Steel + +**Steel** is a ... + +## API +- [`Consts`](api/src/consts.rs) – Program constants. +- [`Error`](api/src/error.rs) – Custom program errors. +- [`Event`](api/src/event.rs) – Custom program events. +- [`Instruction`](api/src/instruction.rs) – Declared instructions. + +## Instructions +- [`Add`](program/src/add.rs) – Add ... +- [`Initialize`](program/src/initialize.rs) – Initialize ... + +## State +- [`Counter`](api/src/state/counter.rs) – Counter ... + +## Get started + +Compile your program: +```sh +steel build +``` + +Run unit and integration tests: +```sh +steel test +``` diff --git a/tokens/token-2022/memo-transfer/steel/api/Cargo.toml b/tokens/token-2022/memo-transfer/steel/api/Cargo.toml new file mode 100644 index 000000000..e514258ea --- /dev/null +++ b/tokens/token-2022/memo-transfer/steel/api/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "steel-api" +description = "API for interacting with the Steel program" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +documentation.workspace = true +repository.workspace = true +readme.workspace = true +keywords.workspace = true + +[dependencies] +bytemuck.workspace = true +num_enum.workspace = true +solana-program.workspace = true +steel.workspace = true +thiserror.workspace = true +spl-token-2022.workspace = true diff --git a/tokens/token-2022/memo-transfer/steel/api/src/error.rs b/tokens/token-2022/memo-transfer/steel/api/src/error.rs new file mode 100644 index 000000000..96e84da4d --- /dev/null +++ b/tokens/token-2022/memo-transfer/steel/api/src/error.rs @@ -0,0 +1,10 @@ +use steel::*; + +#[derive(Debug, Error, Clone, Copy, PartialEq, Eq, IntoPrimitive)] +#[repr(u32)] +pub enum SteelError { + #[error("This is a dummy error")] + Dummy = 0, +} + +error!(SteelError); diff --git a/tokens/token-2022/memo-transfer/steel/api/src/instruction.rs b/tokens/token-2022/memo-transfer/steel/api/src/instruction.rs new file mode 100644 index 000000000..c29bdee0d --- /dev/null +++ b/tokens/token-2022/memo-transfer/steel/api/src/instruction.rs @@ -0,0 +1,13 @@ +use steel::*; + +#[repr(u8)] +#[derive(Clone, Copy, Debug, Eq, PartialEq, TryFromPrimitive)] +pub enum SteelInstruction { + Initialize = 0, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug, Pod, Zeroable)] +pub struct Initialize {} + +instruction!(SteelInstruction, Initialize); diff --git a/tokens/token-2022/memo-transfer/steel/api/src/lib.rs b/tokens/token-2022/memo-transfer/steel/api/src/lib.rs new file mode 100644 index 000000000..2c146dac0 --- /dev/null +++ b/tokens/token-2022/memo-transfer/steel/api/src/lib.rs @@ -0,0 +1,14 @@ +pub mod error; +pub mod instruction; +pub mod sdk; + +pub mod prelude { + pub use crate::error::*; + pub use crate::instruction::*; + pub use crate::sdk::*; +} + +use steel::*; + +// TODO Set program id +declare_id!("z7msBPQHDJjTvdQRoEcKyENgXDhSRYeHieN1ZMTqo35"); diff --git a/tokens/token-2022/memo-transfer/steel/api/src/sdk.rs b/tokens/token-2022/memo-transfer/steel/api/src/sdk.rs new file mode 100644 index 000000000..c142f57e6 --- /dev/null +++ b/tokens/token-2022/memo-transfer/steel/api/src/sdk.rs @@ -0,0 +1,17 @@ +use steel::*; + +use crate::prelude::*; + +pub fn initialize(signer: Pubkey, mint: Pubkey, token_account: Pubkey) -> Instruction { + Instruction { + program_id: crate::ID, + accounts: vec![ + AccountMeta::new(signer, true), + AccountMeta::new(mint, false), + AccountMeta::new(token_account, true), + AccountMeta::new_readonly(system_program::ID, false), + AccountMeta::new_readonly(spl_token_2022::ID, false), + ], + data: Initialize {}.to_bytes(), + } +} diff --git a/tokens/token-2022/memo-transfer/steel/program/Cargo.toml b/tokens/token-2022/memo-transfer/steel/program/Cargo.toml new file mode 100644 index 000000000..9692fde62 --- /dev/null +++ b/tokens/token-2022/memo-transfer/steel/program/Cargo.toml @@ -0,0 +1,28 @@ +[package] +name = "steel-program" +description = "" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +documentation.workspace = true +repository.workspace = true +readme.workspace = true +keywords.workspace = true + +[lib] +crate-type = ["cdylib", "lib"] + +[dependencies] +steel-api.workspace = true +solana-program.workspace = true +steel.workspace = true +spl-token-2022.workspace = true + +[dev-dependencies] +base64 = "0.21" +rand = "0.8.5" +solana-program-test = "2.1" +solana-sdk = "2.1" +tokio = { version = "1.35", features = ["full"] } +spl-memo = {version = "6.0.0", features = ["no-entrypoint"]} diff --git a/tokens/token-2022/memo-transfer/steel/program/src/initialize.rs b/tokens/token-2022/memo-transfer/steel/program/src/initialize.rs new file mode 100644 index 000000000..7161e36a4 --- /dev/null +++ b/tokens/token-2022/memo-transfer/steel/program/src/initialize.rs @@ -0,0 +1,63 @@ +use solana_program::{msg, program::invoke}; +use spl_token_2022::{ + extension::{memo_transfer::instruction::enable_required_transfer_memos, ExtensionType}, + instruction::initialize_account3, + state::Account, +}; +use steel::*; + +pub fn process_initialize(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResult { + // Load accounts. + let [signer_info, mint_info, token_account_info, system_program, token_program] = accounts + else { + return Err(ProgramError::NotEnoughAccountKeys); + }; + msg!("Account loaded"); + + //Validation + signer_info.is_signer()?; + token_account_info.is_writable()?; + token_program.is_program(&spl_token_2022::ID)?; + system_program.is_program(&system_program::ID)?; + + //Calculate space for token and extension data + let space = + ExtensionType::try_calculate_account_len::(&[ExtensionType::MemoTransfer])?; + + //Create new account for token and allocate space + create_account( + signer_info, + token_account_info, + system_program, + space, + token_program.key, + )?; + + msg!(&token_account_info.key.to_string()); + + invoke( + &initialize_account3( + token_program.key, + token_account_info.key, + mint_info.key, + signer_info.key, + )?, + &[token_account_info.clone(), mint_info.clone()], + )?; + + //Initialize the memo on transfer extension + //This instruction must come after the instruction to initialize account + invoke( + &enable_required_transfer_memos( + token_program.key, + token_account_info.key, + signer_info.key, + &[], + )?, + &[token_account_info.clone(), signer_info.clone()], + )?; + + msg!("Memo Transfer Extension: Initialized."); + + Ok(()) +} diff --git a/tokens/token-2022/memo-transfer/steel/program/src/lib.rs b/tokens/token-2022/memo-transfer/steel/program/src/lib.rs new file mode 100644 index 000000000..73785439a --- /dev/null +++ b/tokens/token-2022/memo-transfer/steel/program/src/lib.rs @@ -0,0 +1,22 @@ +mod initialize; + +use initialize::*; + +use steel::*; +use steel_api::prelude::*; + +pub fn process_instruction( + program_id: &Pubkey, + accounts: &[AccountInfo], + data: &[u8], +) -> ProgramResult { + let (ix, data) = parse_instruction(&steel_api::ID, program_id, data)?; + + match ix { + SteelInstruction::Initialize => process_initialize(accounts, data)?, + } + + Ok(()) +} + +entrypoint!(process_instruction); diff --git a/tokens/token-2022/memo-transfer/steel/program/tests/test.rs b/tokens/token-2022/memo-transfer/steel/program/tests/test.rs new file mode 100644 index 000000000..f2e6f96bb --- /dev/null +++ b/tokens/token-2022/memo-transfer/steel/program/tests/test.rs @@ -0,0 +1,120 @@ +use solana_program::hash::Hash; +use solana_program_test::{processor, BanksClient, ProgramTest}; +use solana_sdk::{ + program_pack::Pack, signature::Keypair, signer::Signer, system_instruction::create_account, transaction::Transaction +}; + +use spl_memo::build_memo; +use spl_token_2022::{ + instruction::{initialize_mint2, mint_to, transfer_checked}, + state::Mint, +}; +use steel_api::prelude::*; + +async fn setup() -> (BanksClient, Keypair, Hash) { + let mut program_test = ProgramTest::new( + "steel_program", + steel_api::ID, + processor!(steel_program::process_instruction), + ); + program_test.prefer_bpf(true); + program_test.start().await +} + +#[tokio::test] +async fn run_test() { + // Setup test + let (mut banks, payer, blockhash) = setup().await; + + let mint = Keypair::new(); + let token_acc = Keypair::new(); + let receiver_token_acc = Keypair::new(); + + let create_acc_ix = create_account( + &payer.pubkey(), + &mint.pubkey(), + banks.get_rent().await.unwrap().minimum_balance(Mint::LEN), + Mint::LEN as u64, + &spl_token_2022::ID, + ); + let init_mint_ix = initialize_mint2( + &spl_token_2022::ID, + &mint.pubkey(), + &payer.pubkey(), + None, + 6, + ) + .unwrap(); + let mint_to_ix = mint_to( + &spl_token_2022::ID, + &mint.pubkey(), + &token_acc.pubkey(), + &payer.pubkey(), + &[], + 1_000_000, + ) + .unwrap(); + + // Submit initialize transaction. + let ix = initialize(payer.pubkey(), mint.pubkey(), token_acc.pubkey()); + let ix2 = initialize(payer.pubkey(), mint.pubkey(), receiver_token_acc.pubkey()); + let tx = Transaction::new_signed_with_payer( + &[create_acc_ix, init_mint_ix, ix, ix2, mint_to_ix], + Some(&payer.pubkey()), + &[&payer, &mint, &token_acc, &receiver_token_acc], + blockhash, + ); + let res = banks.process_transaction(tx).await; + assert!(res.is_ok()); + + // Try transfer without memo + let transfer_ix = transfer_checked( + &spl_token_2022::ID, + &token_acc.pubkey(), + &mint.pubkey(), + &receiver_token_acc.pubkey(), + &payer.pubkey(), + &[], + 100, + 6, + ) + .unwrap(); + let tx = Transaction::new_signed_with_payer( + &[transfer_ix], + Some(&payer.pubkey()), + &[&payer], + blockhash, + ); + let res = banks.process_transaction(tx).await; + let err_string = format!("{:?}", res); + + // Custom(0x24) = Custom(36) = TokenError::MissingMemo + assert!( + err_string.contains("Custom(36)"), + "Expected TokenError::MissingMemo (36), got: {}", + err_string + ); + + //Try Transfer with memo + let memo = "Memo from Steel Token2022 Examples"; + let memo_ix = build_memo(memo.as_bytes(), &[&payer.pubkey()]); + let transfer_ix = transfer_checked( + &spl_token_2022::ID, + &token_acc.pubkey(), + &mint.pubkey(), + &receiver_token_acc.pubkey(), + &payer.pubkey(), + &[], + 100, + 6, + ) + .unwrap(); + let tx = Transaction::new_signed_with_payer( + &[memo_ix, transfer_ix], + Some(&payer.pubkey()), + &[&payer], + blockhash, + ); + let res = banks.process_transaction(tx).await; + assert!(res.is_ok()); +} From 82e276a2bb88e85d5c8aa75d1488584934a2b842 Mon Sep 17 00:00:00 2001 From: ubadineke Date: Thu, 26 Jun 2025 09:51:10 +0100 Subject: [PATCH 06/13] correct naming --- .../steel/program/src/mint_close.rs | 8 ++++---- .../transfer-fee/steel/program/src/harvest.rs | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/tokens/token-2022/mint-close-authority/steel/program/src/mint_close.rs b/tokens/token-2022/mint-close-authority/steel/program/src/mint_close.rs index e1be4b7a0..f5c8a6b52 100644 --- a/tokens/token-2022/mint-close-authority/steel/program/src/mint_close.rs +++ b/tokens/token-2022/mint-close-authority/steel/program/src/mint_close.rs @@ -4,13 +4,13 @@ use steel::*; pub fn process_mint_close(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResult { // Load accounts. - let [signer_info, mint_info, destination, system_program, token_program] = accounts else { + let [signer_info, mint_info, destination_info, system_program, token_program] = accounts else { return Err(ProgramError::NotEnoughAccountKeys); }; signer_info.is_signer()?; mint_info.is_signer()?; - destination.is_writable()?; + destination_info.is_writable()?; token_program.is_program(&spl_token_2022::ID)?; system_program.is_program(&system_program::ID)?; @@ -18,11 +18,11 @@ pub fn process_mint_close(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramR &close_account( token_program.key, mint_info.key, - destination.key, + destination_info.key, signer_info.key, &[], )?, - &[mint_info.clone(), destination.clone(), signer_info.clone()], + &[mint_info.clone(), destination_info.clone(), signer_info.clone()], )?; msg!("Mint Close Authority Extension: Account Closed!"); diff --git a/tokens/token-2022/transfer-fee/steel/program/src/harvest.rs b/tokens/token-2022/transfer-fee/steel/program/src/harvest.rs index ace3938c5..65218559d 100644 --- a/tokens/token-2022/transfer-fee/steel/program/src/harvest.rs +++ b/tokens/token-2022/transfer-fee/steel/program/src/harvest.rs @@ -4,7 +4,7 @@ use steel::*; pub fn process_harvest(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResult { //Load accounts - let [signer_info, mint_info, harvest_acc_1, harvest_acc_2, system_program, token_program] = + let [signer_info, mint_info, harvest_acc_1_info, harvest_acc_2_info, system_program, token_program] = accounts else { return Err(ProgramError::NotEnoughAccountKeys); @@ -14,19 +14,19 @@ pub fn process_harvest(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramRes mint_info.is_writable()?; token_program.is_program(&spl_token_2022::ID)?; system_program.is_program(&system_program::ID)?; - harvest_acc_1.is_writable()?; - harvest_acc_2.is_writable()?; + harvest_acc_1_info.is_writable()?; + harvest_acc_2_info.is_writable()?; invoke( &harvest_withheld_tokens_to_mint( token_program.key, mint_info.key, - &[&harvest_acc_1.key, &harvest_acc_2.key], + &[&harvest_acc_1_info.key, &harvest_acc_2_info.key], )?, &[ mint_info.clone(), - harvest_acc_1.clone(), - harvest_acc_2.clone(), + harvest_acc_1_info.clone(), + harvest_acc_2_info.clone(), ], )?; From 6c86bf45c8cc1bd941acfc345383f436e3768d78 Mon Sep 17 00:00:00 2001 From: ubadineke Date: Thu, 26 Jun 2025 09:51:30 +0100 Subject: [PATCH 07/13] steel: permanent delegate extension --- .../permanent-delegate/steel/.gitignore | 2 + .../permanent-delegate/steel/Cargo.toml | 22 +++++ .../permanent-delegate/steel/README.md | 28 +++++++ .../permanent-delegate/steel/api/Cargo.toml | 19 +++++ .../permanent-delegate/steel/api/src/error.rs | 10 +++ .../steel/api/src/instruction.rs | 13 +++ .../permanent-delegate/steel/api/src/lib.rs | 14 ++++ .../permanent-delegate/steel/api/src/sdk.rs | 18 ++++ .../steel/program/Cargo.toml | 30 +++++++ .../steel/program/src/initialize.rs | 55 ++++++++++++ .../steel/program/src/lib.rs | 22 +++++ .../steel/program/tests/test.rs | 84 +++++++++++++++++++ 12 files changed, 317 insertions(+) create mode 100644 tokens/token-2022/permanent-delegate/steel/.gitignore create mode 100644 tokens/token-2022/permanent-delegate/steel/Cargo.toml create mode 100644 tokens/token-2022/permanent-delegate/steel/README.md create mode 100644 tokens/token-2022/permanent-delegate/steel/api/Cargo.toml create mode 100644 tokens/token-2022/permanent-delegate/steel/api/src/error.rs create mode 100644 tokens/token-2022/permanent-delegate/steel/api/src/instruction.rs create mode 100644 tokens/token-2022/permanent-delegate/steel/api/src/lib.rs create mode 100644 tokens/token-2022/permanent-delegate/steel/api/src/sdk.rs create mode 100644 tokens/token-2022/permanent-delegate/steel/program/Cargo.toml create mode 100644 tokens/token-2022/permanent-delegate/steel/program/src/initialize.rs create mode 100644 tokens/token-2022/permanent-delegate/steel/program/src/lib.rs create mode 100644 tokens/token-2022/permanent-delegate/steel/program/tests/test.rs diff --git a/tokens/token-2022/permanent-delegate/steel/.gitignore b/tokens/token-2022/permanent-delegate/steel/.gitignore new file mode 100644 index 000000000..052739dbc --- /dev/null +++ b/tokens/token-2022/permanent-delegate/steel/.gitignore @@ -0,0 +1,2 @@ +target +test-ledger diff --git a/tokens/token-2022/permanent-delegate/steel/Cargo.toml b/tokens/token-2022/permanent-delegate/steel/Cargo.toml new file mode 100644 index 000000000..23402b9a0 --- /dev/null +++ b/tokens/token-2022/permanent-delegate/steel/Cargo.toml @@ -0,0 +1,22 @@ +[workspace] +resolver = "2" +members = ["api", "program"] + +[workspace.package] +version = "0.1.0" +edition = "2021" +license = "Apache-2.0" +homepage = "" +documentation = "" +repository = "" +readme = "./README.md" +keywords = ["solana"] + +[workspace.dependencies] +steel-api = { path = "./api", version = "0.1.0" } +bytemuck = "1.14" +num_enum = "0.7" +solana-program = "2.1" +steel = "4.0" +thiserror = "1.0" +spl-token-2022 = {version = "7.0.0", features = ["no-entrypoint"]} diff --git a/tokens/token-2022/permanent-delegate/steel/README.md b/tokens/token-2022/permanent-delegate/steel/README.md new file mode 100644 index 000000000..cfc508fd5 --- /dev/null +++ b/tokens/token-2022/permanent-delegate/steel/README.md @@ -0,0 +1,28 @@ +# Steel + +**Steel** is a ... + +## API +- [`Consts`](api/src/consts.rs) – Program constants. +- [`Error`](api/src/error.rs) – Custom program errors. +- [`Event`](api/src/event.rs) – Custom program events. +- [`Instruction`](api/src/instruction.rs) – Declared instructions. + +## Instructions +- [`Add`](program/src/add.rs) – Add ... +- [`Initialize`](program/src/initialize.rs) – Initialize ... + +## State +- [`Counter`](api/src/state/counter.rs) – Counter ... + +## Get started + +Compile your program: +```sh +steel build +``` + +Run unit and integration tests: +```sh +steel test +``` diff --git a/tokens/token-2022/permanent-delegate/steel/api/Cargo.toml b/tokens/token-2022/permanent-delegate/steel/api/Cargo.toml new file mode 100644 index 000000000..e514258ea --- /dev/null +++ b/tokens/token-2022/permanent-delegate/steel/api/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "steel-api" +description = "API for interacting with the Steel program" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +documentation.workspace = true +repository.workspace = true +readme.workspace = true +keywords.workspace = true + +[dependencies] +bytemuck.workspace = true +num_enum.workspace = true +solana-program.workspace = true +steel.workspace = true +thiserror.workspace = true +spl-token-2022.workspace = true diff --git a/tokens/token-2022/permanent-delegate/steel/api/src/error.rs b/tokens/token-2022/permanent-delegate/steel/api/src/error.rs new file mode 100644 index 000000000..96e84da4d --- /dev/null +++ b/tokens/token-2022/permanent-delegate/steel/api/src/error.rs @@ -0,0 +1,10 @@ +use steel::*; + +#[derive(Debug, Error, Clone, Copy, PartialEq, Eq, IntoPrimitive)] +#[repr(u32)] +pub enum SteelError { + #[error("This is a dummy error")] + Dummy = 0, +} + +error!(SteelError); diff --git a/tokens/token-2022/permanent-delegate/steel/api/src/instruction.rs b/tokens/token-2022/permanent-delegate/steel/api/src/instruction.rs new file mode 100644 index 000000000..c29bdee0d --- /dev/null +++ b/tokens/token-2022/permanent-delegate/steel/api/src/instruction.rs @@ -0,0 +1,13 @@ +use steel::*; + +#[repr(u8)] +#[derive(Clone, Copy, Debug, Eq, PartialEq, TryFromPrimitive)] +pub enum SteelInstruction { + Initialize = 0, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug, Pod, Zeroable)] +pub struct Initialize {} + +instruction!(SteelInstruction, Initialize); diff --git a/tokens/token-2022/permanent-delegate/steel/api/src/lib.rs b/tokens/token-2022/permanent-delegate/steel/api/src/lib.rs new file mode 100644 index 000000000..2c146dac0 --- /dev/null +++ b/tokens/token-2022/permanent-delegate/steel/api/src/lib.rs @@ -0,0 +1,14 @@ +pub mod error; +pub mod instruction; +pub mod sdk; + +pub mod prelude { + pub use crate::error::*; + pub use crate::instruction::*; + pub use crate::sdk::*; +} + +use steel::*; + +// TODO Set program id +declare_id!("z7msBPQHDJjTvdQRoEcKyENgXDhSRYeHieN1ZMTqo35"); diff --git a/tokens/token-2022/permanent-delegate/steel/api/src/sdk.rs b/tokens/token-2022/permanent-delegate/steel/api/src/sdk.rs new file mode 100644 index 000000000..5a0025a41 --- /dev/null +++ b/tokens/token-2022/permanent-delegate/steel/api/src/sdk.rs @@ -0,0 +1,18 @@ +use steel::*; + +use crate::prelude::*; + +pub fn initialize(signer: Pubkey, mint: Pubkey, delegate: Pubkey) -> Instruction { + Instruction { + program_id: crate::ID, + accounts: vec![ + AccountMeta::new(signer, true), + AccountMeta::new(mint, true), + AccountMeta::new(delegate, false), + AccountMeta::new_readonly(system_program::ID, false), + AccountMeta::new_readonly(spl_token_2022::ID, false), + AccountMeta::new_readonly(sysvar::rent::ID, false), + ], + data: Initialize {}.to_bytes(), + } +} diff --git a/tokens/token-2022/permanent-delegate/steel/program/Cargo.toml b/tokens/token-2022/permanent-delegate/steel/program/Cargo.toml new file mode 100644 index 000000000..dc46ef20a --- /dev/null +++ b/tokens/token-2022/permanent-delegate/steel/program/Cargo.toml @@ -0,0 +1,30 @@ +[package] +name = "steel-program" +description = "" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +documentation.workspace = true +repository.workspace = true +readme.workspace = true +keywords.workspace = true + +[lib] +crate-type = ["cdylib", "lib"] + +[dependencies] +steel-api.workspace = true +solana-program.workspace = true +steel.workspace = true +spl-token-2022.workspace = true + +[dev-dependencies] +base64 = "0.21" +rand = "0.8.5" +solana-program-test = "2.1" +solana-sdk = "2.1" +tokio = { version = "1.35", features = ["full"] } +spl-associated-token-account = {version = "7.0.0", features = ["no-entrypoint"]} + + diff --git a/tokens/token-2022/permanent-delegate/steel/program/src/initialize.rs b/tokens/token-2022/permanent-delegate/steel/program/src/initialize.rs new file mode 100644 index 000000000..9b7eee00d --- /dev/null +++ b/tokens/token-2022/permanent-delegate/steel/program/src/initialize.rs @@ -0,0 +1,55 @@ +use solana_program::{msg, program::invoke}; +use spl_token_2022::{ + extension::ExtensionType, instruction::initialize_permanent_delegate, state::Mint, +}; +use steel::*; + +pub fn process_initialize(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResult { + // Load accounts. + let [signer_info, mint_info, delegate_info, system_program, token_program, rent_sysvar] = + accounts + else { + return Err(ProgramError::NotEnoughAccountKeys); + }; + msg!("Account loaded"); + + //Validation + signer_info.is_signer()?; + mint_info.is_signer()?.is_empty()?.is_writable()?; + token_program.is_program(&spl_token_2022::ID)?; + system_program.is_program(&system_program::ID)?; + rent_sysvar.is_sysvar(&sysvar::rent::ID)?; + + //Calculate space for mint and extension data + let space = + ExtensionType::try_calculate_account_len::(&[ExtensionType::PermanentDelegate])?; + + //Create account for the mint and allocate space + create_account( + signer_info, + mint_info, + system_program, + space, + token_program.key, + )?; + + //Initialize the permanent delegate extension + //This instruction must come before the instruction to initialize mint data + invoke( + &initialize_permanent_delegate(token_program.key, mint_info.key, delegate_info.key)?, + &[mint_info.clone()], + )?; + + initialize_mint( + mint_info, + signer_info, + Some(signer_info), + token_program, + rent_sysvar, + 6, + )?; + + msg!("Permanent Delegate Extension: Initialized."); + + Ok(()) +} diff --git a/tokens/token-2022/permanent-delegate/steel/program/src/lib.rs b/tokens/token-2022/permanent-delegate/steel/program/src/lib.rs new file mode 100644 index 000000000..73785439a --- /dev/null +++ b/tokens/token-2022/permanent-delegate/steel/program/src/lib.rs @@ -0,0 +1,22 @@ +mod initialize; + +use initialize::*; + +use steel::*; +use steel_api::prelude::*; + +pub fn process_instruction( + program_id: &Pubkey, + accounts: &[AccountInfo], + data: &[u8], +) -> ProgramResult { + let (ix, data) = parse_instruction(&steel_api::ID, program_id, data)?; + + match ix { + SteelInstruction::Initialize => process_initialize(accounts, data)?, + } + + Ok(()) +} + +entrypoint!(process_instruction); diff --git a/tokens/token-2022/permanent-delegate/steel/program/tests/test.rs b/tokens/token-2022/permanent-delegate/steel/program/tests/test.rs new file mode 100644 index 000000000..1c596b6ab --- /dev/null +++ b/tokens/token-2022/permanent-delegate/steel/program/tests/test.rs @@ -0,0 +1,84 @@ +use solana_program::hash::Hash; +use solana_program_test::{processor, BanksClient, ProgramTest}; +use solana_sdk::{signature::Keypair, signer::Signer, transaction::Transaction}; +use spl_associated_token_account::{ + get_associated_token_address_with_program_id, instruction::create_associated_token_account, +}; +use spl_token_2022::instruction::{burn_checked, mint_to}; +use steel::*; +use steel_api::prelude::*; + +async fn setup() -> (BanksClient, Keypair, Hash) { + let mut program_test = ProgramTest::new( + "steel_program", + steel_api::ID, + processor!(steel_program::process_instruction), + ); + program_test.prefer_bpf(true); + program_test.start().await +} + +#[tokio::test] +async fn run_test() { + // Setup test + let (mut banks, payer, blockhash) = setup().await; + let mint = Keypair::new(); + let delegate = Keypair::new(); + + // Submit initialize transaction. + let ix = initialize(payer.pubkey(), mint.pubkey(), delegate.pubkey()); + let tx = Transaction::new_signed_with_payer( + &[ix], + Some(&payer.pubkey()), + &[&payer, &mint], + blockhash, + ); + let res = banks.process_transaction(tx).await; + assert!(res.is_ok()); + + //Create Token Account, Mint Tokens + //Burn as Permanent Delegate + //Using a new/random keypair to experiment + let receiver = Keypair::new(); + + let create_token_acc_ix = create_associated_token_account( + &payer.pubkey(), + &receiver.pubkey(), + &mint.pubkey(), + &spl_token_2022::ID, + ); + let receiver_ata = get_associated_token_address_with_program_id( + &receiver.pubkey(), + &mint.pubkey(), + &spl_token_2022::ID, + ); + let mint_ix = mint_to( + &spl_token_2022::ID, + &mint.pubkey(), + &receiver_ata, + &payer.pubkey(), + &[], + 1000, + ) + .unwrap(); + + let burn_ix = burn_checked( + &spl_token_2022::ID, + &receiver_ata, + &mint.pubkey(), + &delegate.pubkey(), + &[], + 1000, + 6, + ) + .unwrap(); + + let tx = Transaction::new_signed_with_payer( + &[create_token_acc_ix, mint_ix, burn_ix], + Some(&payer.pubkey()), + &[&payer, &delegate], + blockhash, + ); + let res = banks.process_transaction(tx).await; + assert!(res.is_ok()); +} From a5ab63b6c580328210478f31bb10ae3a18319a26 Mon Sep 17 00:00:00 2001 From: ubadineke Date: Thu, 26 Jun 2025 22:35:09 +0100 Subject: [PATCH 08/13] steel: immutable owner extension --- .../immutable-owner/steel/.gitignore | 2 + .../immutable-owner/steel/Cargo.toml | 22 +++++ .../immutable-owner/steel/README.md | 28 ++++++ .../immutable-owner/steel/api/Cargo.toml | 19 ++++ .../immutable-owner/steel/api/src/error.rs | 10 +++ .../steel/api/src/instruction.rs | 13 +++ .../immutable-owner/steel/api/src/lib.rs | 14 +++ .../immutable-owner/steel/api/src/sdk.rs | 17 ++++ .../immutable-owner/steel/program/Cargo.toml | 27 ++++++ .../steel/program/src/initialize.rs | 58 +++++++++++++ .../immutable-owner/steel/program/src/lib.rs | 22 +++++ .../steel/program/tests/test.rs | 86 +++++++++++++++++++ 12 files changed, 318 insertions(+) create mode 100644 tokens/token-2022/immutable-owner/steel/.gitignore create mode 100644 tokens/token-2022/immutable-owner/steel/Cargo.toml create mode 100644 tokens/token-2022/immutable-owner/steel/README.md create mode 100644 tokens/token-2022/immutable-owner/steel/api/Cargo.toml create mode 100644 tokens/token-2022/immutable-owner/steel/api/src/error.rs create mode 100644 tokens/token-2022/immutable-owner/steel/api/src/instruction.rs create mode 100644 tokens/token-2022/immutable-owner/steel/api/src/lib.rs create mode 100644 tokens/token-2022/immutable-owner/steel/api/src/sdk.rs create mode 100644 tokens/token-2022/immutable-owner/steel/program/Cargo.toml create mode 100644 tokens/token-2022/immutable-owner/steel/program/src/initialize.rs create mode 100644 tokens/token-2022/immutable-owner/steel/program/src/lib.rs create mode 100644 tokens/token-2022/immutable-owner/steel/program/tests/test.rs diff --git a/tokens/token-2022/immutable-owner/steel/.gitignore b/tokens/token-2022/immutable-owner/steel/.gitignore new file mode 100644 index 000000000..052739dbc --- /dev/null +++ b/tokens/token-2022/immutable-owner/steel/.gitignore @@ -0,0 +1,2 @@ +target +test-ledger diff --git a/tokens/token-2022/immutable-owner/steel/Cargo.toml b/tokens/token-2022/immutable-owner/steel/Cargo.toml new file mode 100644 index 000000000..fc9d5f889 --- /dev/null +++ b/tokens/token-2022/immutable-owner/steel/Cargo.toml @@ -0,0 +1,22 @@ +[workspace] +resolver = "2" +members = ["api", "program"] + +[workspace.package] +version = "0.1.0" +edition = "2021" +license = "Apache-2.0" +homepage = "" +documentation = "" +repository = "" +readme = "./README.md" +keywords = ["solana"] + +[workspace.dependencies] +steel-api = { path = "./api", version = "0.1.0" } +bytemuck = "1.14" +num_enum = "0.7" +solana-program = "2.1" +steel = "3.0" +thiserror = "1.0" +spl-token-2022 = {version = "7.0.0", features = ["no-entrypoint"]} diff --git a/tokens/token-2022/immutable-owner/steel/README.md b/tokens/token-2022/immutable-owner/steel/README.md new file mode 100644 index 000000000..cfc508fd5 --- /dev/null +++ b/tokens/token-2022/immutable-owner/steel/README.md @@ -0,0 +1,28 @@ +# Steel + +**Steel** is a ... + +## API +- [`Consts`](api/src/consts.rs) – Program constants. +- [`Error`](api/src/error.rs) – Custom program errors. +- [`Event`](api/src/event.rs) – Custom program events. +- [`Instruction`](api/src/instruction.rs) – Declared instructions. + +## Instructions +- [`Add`](program/src/add.rs) – Add ... +- [`Initialize`](program/src/initialize.rs) – Initialize ... + +## State +- [`Counter`](api/src/state/counter.rs) – Counter ... + +## Get started + +Compile your program: +```sh +steel build +``` + +Run unit and integration tests: +```sh +steel test +``` diff --git a/tokens/token-2022/immutable-owner/steel/api/Cargo.toml b/tokens/token-2022/immutable-owner/steel/api/Cargo.toml new file mode 100644 index 000000000..e514258ea --- /dev/null +++ b/tokens/token-2022/immutable-owner/steel/api/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "steel-api" +description = "API for interacting with the Steel program" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +documentation.workspace = true +repository.workspace = true +readme.workspace = true +keywords.workspace = true + +[dependencies] +bytemuck.workspace = true +num_enum.workspace = true +solana-program.workspace = true +steel.workspace = true +thiserror.workspace = true +spl-token-2022.workspace = true diff --git a/tokens/token-2022/immutable-owner/steel/api/src/error.rs b/tokens/token-2022/immutable-owner/steel/api/src/error.rs new file mode 100644 index 000000000..96e84da4d --- /dev/null +++ b/tokens/token-2022/immutable-owner/steel/api/src/error.rs @@ -0,0 +1,10 @@ +use steel::*; + +#[derive(Debug, Error, Clone, Copy, PartialEq, Eq, IntoPrimitive)] +#[repr(u32)] +pub enum SteelError { + #[error("This is a dummy error")] + Dummy = 0, +} + +error!(SteelError); diff --git a/tokens/token-2022/immutable-owner/steel/api/src/instruction.rs b/tokens/token-2022/immutable-owner/steel/api/src/instruction.rs new file mode 100644 index 000000000..c29bdee0d --- /dev/null +++ b/tokens/token-2022/immutable-owner/steel/api/src/instruction.rs @@ -0,0 +1,13 @@ +use steel::*; + +#[repr(u8)] +#[derive(Clone, Copy, Debug, Eq, PartialEq, TryFromPrimitive)] +pub enum SteelInstruction { + Initialize = 0, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug, Pod, Zeroable)] +pub struct Initialize {} + +instruction!(SteelInstruction, Initialize); diff --git a/tokens/token-2022/immutable-owner/steel/api/src/lib.rs b/tokens/token-2022/immutable-owner/steel/api/src/lib.rs new file mode 100644 index 000000000..2c146dac0 --- /dev/null +++ b/tokens/token-2022/immutable-owner/steel/api/src/lib.rs @@ -0,0 +1,14 @@ +pub mod error; +pub mod instruction; +pub mod sdk; + +pub mod prelude { + pub use crate::error::*; + pub use crate::instruction::*; + pub use crate::sdk::*; +} + +use steel::*; + +// TODO Set program id +declare_id!("z7msBPQHDJjTvdQRoEcKyENgXDhSRYeHieN1ZMTqo35"); diff --git a/tokens/token-2022/immutable-owner/steel/api/src/sdk.rs b/tokens/token-2022/immutable-owner/steel/api/src/sdk.rs new file mode 100644 index 000000000..c142f57e6 --- /dev/null +++ b/tokens/token-2022/immutable-owner/steel/api/src/sdk.rs @@ -0,0 +1,17 @@ +use steel::*; + +use crate::prelude::*; + +pub fn initialize(signer: Pubkey, mint: Pubkey, token_account: Pubkey) -> Instruction { + Instruction { + program_id: crate::ID, + accounts: vec![ + AccountMeta::new(signer, true), + AccountMeta::new(mint, false), + AccountMeta::new(token_account, true), + AccountMeta::new_readonly(system_program::ID, false), + AccountMeta::new_readonly(spl_token_2022::ID, false), + ], + data: Initialize {}.to_bytes(), + } +} diff --git a/tokens/token-2022/immutable-owner/steel/program/Cargo.toml b/tokens/token-2022/immutable-owner/steel/program/Cargo.toml new file mode 100644 index 000000000..11f2289d0 --- /dev/null +++ b/tokens/token-2022/immutable-owner/steel/program/Cargo.toml @@ -0,0 +1,27 @@ +[package] +name = "steel-program" +description = "" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +documentation.workspace = true +repository.workspace = true +readme.workspace = true +keywords.workspace = true + +[lib] +crate-type = ["cdylib", "lib"] + +[dependencies] +steel-api.workspace = true +solana-program.workspace = true +steel.workspace = true +spl-token-2022.workspace = true + +[dev-dependencies] +base64 = "0.21" +rand = "0.8.5" +solana-program-test = "2.1" +solana-sdk = "2.1" +tokio = { version = "1.35", features = ["full"] } diff --git a/tokens/token-2022/immutable-owner/steel/program/src/initialize.rs b/tokens/token-2022/immutable-owner/steel/program/src/initialize.rs new file mode 100644 index 000000000..e7e08d967 --- /dev/null +++ b/tokens/token-2022/immutable-owner/steel/program/src/initialize.rs @@ -0,0 +1,58 @@ +use solana_program::{msg, program::invoke}; +use spl_token_2022::{ + extension::ExtensionType, + instruction::{initialize_account3, initialize_immutable_owner}, + state::Account, +}; +use steel::*; + +pub fn process_initialize(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResult { + // Load accounts. + let [signer_info, mint_info, token_account_info, system_program, token_program] = accounts + else { + return Err(ProgramError::NotEnoughAccountKeys); + }; + msg!("Account loaded"); + + //Validation + signer_info.is_signer()?; + token_account_info.is_writable()?; + token_program.is_program(&spl_token_2022::ID)?; + system_program.is_program(&system_program::ID)?; + + //Calculate space for token and extension data + let space = + ExtensionType::try_calculate_account_len::(&[ExtensionType::ImmutableOwner])?; + + //Create new account for token and allocate space + create_account( + signer_info, + token_account_info, + system_program, + space, + token_program.key, + )?; + + msg!(&token_account_info.key.to_string()); + + //Initialize the immutable owner extension + //This instruction must come before the instruction to initialize account + invoke( + &initialize_immutable_owner(token_program.key, token_account_info.key)?, + &[token_account_info.clone()], + )?; + + invoke( + &initialize_account3( + token_program.key, + token_account_info.key, + mint_info.key, + signer_info.key, + )?, + &[token_account_info.clone(), mint_info.clone()], + )?; + + msg!("Immutable Owner Extension: Initialized."); + + Ok(()) +} diff --git a/tokens/token-2022/immutable-owner/steel/program/src/lib.rs b/tokens/token-2022/immutable-owner/steel/program/src/lib.rs new file mode 100644 index 000000000..73785439a --- /dev/null +++ b/tokens/token-2022/immutable-owner/steel/program/src/lib.rs @@ -0,0 +1,22 @@ +mod initialize; + +use initialize::*; + +use steel::*; +use steel_api::prelude::*; + +pub fn process_instruction( + program_id: &Pubkey, + accounts: &[AccountInfo], + data: &[u8], +) -> ProgramResult { + let (ix, data) = parse_instruction(&steel_api::ID, program_id, data)?; + + match ix { + SteelInstruction::Initialize => process_initialize(accounts, data)?, + } + + Ok(()) +} + +entrypoint!(process_instruction); diff --git a/tokens/token-2022/immutable-owner/steel/program/tests/test.rs b/tokens/token-2022/immutable-owner/steel/program/tests/test.rs new file mode 100644 index 000000000..228c9895c --- /dev/null +++ b/tokens/token-2022/immutable-owner/steel/program/tests/test.rs @@ -0,0 +1,86 @@ +use solana_program::hash::Hash; +use solana_program_test::{processor, BanksClient, ProgramTest}; +use solana_sdk::{ + program_pack::Pack, signature::Keypair, signer::Signer, system_instruction::create_account, + transaction::Transaction, +}; +use spl_token_2022::{ + instruction::{initialize_mint2, mint_to, set_authority, AuthorityType}, + state::Mint, +}; +use steel_api::prelude::*; + +async fn setup() -> (BanksClient, Keypair, Hash) { + let mut program_test = ProgramTest::new( + "steel_program", + steel_api::ID, + processor!(steel_program::process_instruction), + ); + program_test.prefer_bpf(true); + program_test.start().await +} + +#[tokio::test] +async fn run_test() { + // Setup test + let (mut banks, payer, blockhash) = setup().await; + + let mint = Keypair::new(); + let token_acc = Keypair::new(); + let receiver_token_acc = Keypair::new(); + + let create_acc_ix = create_account( + &payer.pubkey(), + &mint.pubkey(), + banks.get_rent().await.unwrap().minimum_balance(Mint::LEN), + Mint::LEN as u64, + &spl_token_2022::ID, + ); + let init_mint_ix = initialize_mint2( + &spl_token_2022::ID, + &mint.pubkey(), + &payer.pubkey(), + None, + 6, + ) + .unwrap(); + let mint_to_ix = mint_to( + &spl_token_2022::ID, + &mint.pubkey(), + &token_acc.pubkey(), + &payer.pubkey(), + &[], + 1_000_000, + ) + .unwrap(); + + //Try to set authority + let auth_ix = set_authority( + &spl_token_2022::ID, + &token_acc.pubkey(), + Some(&receiver_token_acc.pubkey()), + AuthorityType::AccountOwner, + &payer.pubkey(), + &[], + ) + .unwrap(); + + // Submit initialize transaction. + let ix = initialize(payer.pubkey(), mint.pubkey(), token_acc.pubkey()); + let ix2 = initialize(payer.pubkey(), mint.pubkey(), receiver_token_acc.pubkey()); + let tx = Transaction::new_signed_with_payer( + &[create_acc_ix, init_mint_ix, ix, ix2, mint_to_ix, auth_ix], + Some(&payer.pubkey()), + &[&payer, &mint, &token_acc, &receiver_token_acc], + blockhash, + ); + let res = banks.process_transaction(tx).await; + + let err_string = format!("{:?}", res); + + assert!( + err_string.contains("Custom(34)"), + "Expected TokenError::OwnerCannotBeChanged (34), got: {}", + err_string + ); +} From fe589d1003797e53bb7dcf7050064e437de54c86 Mon Sep 17 00:00:00 2001 From: ubadineke Date: Fri, 27 Jun 2025 23:30:05 +0100 Subject: [PATCH 09/13] steel: default account state extension --- .../default-account-state/steel/.gitignore | 2 + .../default-account-state/steel/Cargo.toml | 23 ++++ .../default-account-state/steel/README.md | 28 ++++ .../steel/api/Cargo.toml | 19 +++ .../steel/api/src/error.rs | 10 ++ .../steel/api/src/instruction.rs | 19 +++ .../steel/api/src/lib.rs | 14 ++ .../steel/api/src/sdk.rs | 30 ++++ .../steel/program/Cargo.toml | 28 ++++ .../steel/program/src/initialize.rs | 55 ++++++++ .../steel/program/src/lib.rs | 27 ++++ .../steel/program/src/update_default_state.rs | 34 +++++ .../steel/program/tests/spl_token_2022.so | Bin 0 -> 777552 bytes .../steel/program/tests/test.rs | 129 ++++++++++++++++++ 14 files changed, 418 insertions(+) create mode 100644 tokens/token-2022/default-account-state/steel/.gitignore create mode 100644 tokens/token-2022/default-account-state/steel/Cargo.toml create mode 100644 tokens/token-2022/default-account-state/steel/README.md create mode 100644 tokens/token-2022/default-account-state/steel/api/Cargo.toml create mode 100644 tokens/token-2022/default-account-state/steel/api/src/error.rs create mode 100644 tokens/token-2022/default-account-state/steel/api/src/instruction.rs create mode 100644 tokens/token-2022/default-account-state/steel/api/src/lib.rs create mode 100644 tokens/token-2022/default-account-state/steel/api/src/sdk.rs create mode 100644 tokens/token-2022/default-account-state/steel/program/Cargo.toml create mode 100644 tokens/token-2022/default-account-state/steel/program/src/initialize.rs create mode 100644 tokens/token-2022/default-account-state/steel/program/src/lib.rs create mode 100644 tokens/token-2022/default-account-state/steel/program/src/update_default_state.rs create mode 100755 tokens/token-2022/default-account-state/steel/program/tests/spl_token_2022.so create mode 100644 tokens/token-2022/default-account-state/steel/program/tests/test.rs diff --git a/tokens/token-2022/default-account-state/steel/.gitignore b/tokens/token-2022/default-account-state/steel/.gitignore new file mode 100644 index 000000000..052739dbc --- /dev/null +++ b/tokens/token-2022/default-account-state/steel/.gitignore @@ -0,0 +1,2 @@ +target +test-ledger diff --git a/tokens/token-2022/default-account-state/steel/Cargo.toml b/tokens/token-2022/default-account-state/steel/Cargo.toml new file mode 100644 index 000000000..8450ce0b7 --- /dev/null +++ b/tokens/token-2022/default-account-state/steel/Cargo.toml @@ -0,0 +1,23 @@ +[workspace] +resolver = "2" +members = ["api", "program"] + +[workspace.package] +version = "0.1.0" +edition = "2021" +license = "Apache-2.0" +homepage = "" +documentation = "" +repository = "" +readme = "./README.md" +keywords = ["solana"] + +[workspace.dependencies] +steel-api = { path = "./api", version = "0.1.0" } +bytemuck = "1.14" +num_enum = "0.7" +solana-program = "2.1" +steel = "4.0" +thiserror = "1.0" +spl-token-2022 = {version = "7.0.0", features = ["no-entrypoint"]} + diff --git a/tokens/token-2022/default-account-state/steel/README.md b/tokens/token-2022/default-account-state/steel/README.md new file mode 100644 index 000000000..cfc508fd5 --- /dev/null +++ b/tokens/token-2022/default-account-state/steel/README.md @@ -0,0 +1,28 @@ +# Steel + +**Steel** is a ... + +## API +- [`Consts`](api/src/consts.rs) – Program constants. +- [`Error`](api/src/error.rs) – Custom program errors. +- [`Event`](api/src/event.rs) – Custom program events. +- [`Instruction`](api/src/instruction.rs) – Declared instructions. + +## Instructions +- [`Add`](program/src/add.rs) – Add ... +- [`Initialize`](program/src/initialize.rs) – Initialize ... + +## State +- [`Counter`](api/src/state/counter.rs) – Counter ... + +## Get started + +Compile your program: +```sh +steel build +``` + +Run unit and integration tests: +```sh +steel test +``` diff --git a/tokens/token-2022/default-account-state/steel/api/Cargo.toml b/tokens/token-2022/default-account-state/steel/api/Cargo.toml new file mode 100644 index 000000000..e514258ea --- /dev/null +++ b/tokens/token-2022/default-account-state/steel/api/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "steel-api" +description = "API for interacting with the Steel program" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +documentation.workspace = true +repository.workspace = true +readme.workspace = true +keywords.workspace = true + +[dependencies] +bytemuck.workspace = true +num_enum.workspace = true +solana-program.workspace = true +steel.workspace = true +thiserror.workspace = true +spl-token-2022.workspace = true diff --git a/tokens/token-2022/default-account-state/steel/api/src/error.rs b/tokens/token-2022/default-account-state/steel/api/src/error.rs new file mode 100644 index 000000000..96e84da4d --- /dev/null +++ b/tokens/token-2022/default-account-state/steel/api/src/error.rs @@ -0,0 +1,10 @@ +use steel::*; + +#[derive(Debug, Error, Clone, Copy, PartialEq, Eq, IntoPrimitive)] +#[repr(u32)] +pub enum SteelError { + #[error("This is a dummy error")] + Dummy = 0, +} + +error!(SteelError); diff --git a/tokens/token-2022/default-account-state/steel/api/src/instruction.rs b/tokens/token-2022/default-account-state/steel/api/src/instruction.rs new file mode 100644 index 000000000..8ddb5a76c --- /dev/null +++ b/tokens/token-2022/default-account-state/steel/api/src/instruction.rs @@ -0,0 +1,19 @@ +use steel::*; + +#[repr(u8)] +#[derive(Clone, Copy, Debug, Eq, PartialEq, TryFromPrimitive)] +pub enum SteelInstruction { + Initialize = 0, + UpdateDefaultAccountState = 1, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug, Pod, Zeroable)] +pub struct Initialize {} + +#[repr(C)] +#[derive(Clone, Copy, Debug, Pod, Zeroable)] +pub struct UpdateDefaultAccountState {} + +instruction!(SteelInstruction, Initialize); +instruction!(SteelInstruction, UpdateDefaultAccountState); diff --git a/tokens/token-2022/default-account-state/steel/api/src/lib.rs b/tokens/token-2022/default-account-state/steel/api/src/lib.rs new file mode 100644 index 000000000..2c146dac0 --- /dev/null +++ b/tokens/token-2022/default-account-state/steel/api/src/lib.rs @@ -0,0 +1,14 @@ +pub mod error; +pub mod instruction; +pub mod sdk; + +pub mod prelude { + pub use crate::error::*; + pub use crate::instruction::*; + pub use crate::sdk::*; +} + +use steel::*; + +// TODO Set program id +declare_id!("z7msBPQHDJjTvdQRoEcKyENgXDhSRYeHieN1ZMTqo35"); diff --git a/tokens/token-2022/default-account-state/steel/api/src/sdk.rs b/tokens/token-2022/default-account-state/steel/api/src/sdk.rs new file mode 100644 index 000000000..38813aa26 --- /dev/null +++ b/tokens/token-2022/default-account-state/steel/api/src/sdk.rs @@ -0,0 +1,30 @@ +use steel::*; + +use crate::prelude::*; + +pub fn initialize(signer: Pubkey, mint: Pubkey) -> Instruction { + Instruction { + program_id: crate::ID, + accounts: vec![ + AccountMeta::new(signer, true), + AccountMeta::new(mint, true), + AccountMeta::new_readonly(system_program::ID, false), + AccountMeta::new_readonly(spl_token_2022::ID, false), + AccountMeta::new_readonly(sysvar::rent::ID, false), + ], + data: Initialize {}.to_bytes(), + } +} + +pub fn update_default_account_state(signer: Pubkey, mint: Pubkey) -> Instruction { + Instruction { + program_id: crate::ID, + accounts: vec![ + AccountMeta::new(signer, true), + AccountMeta::new(mint, true), + AccountMeta::new_readonly(system_program::ID, false), + AccountMeta::new_readonly(spl_token_2022::ID, false), + ], + data: UpdateDefaultAccountState {}.to_bytes(), + } +} diff --git a/tokens/token-2022/default-account-state/steel/program/Cargo.toml b/tokens/token-2022/default-account-state/steel/program/Cargo.toml new file mode 100644 index 000000000..1158b3835 --- /dev/null +++ b/tokens/token-2022/default-account-state/steel/program/Cargo.toml @@ -0,0 +1,28 @@ +[package] +name = "steel-program" +description = "" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +documentation.workspace = true +repository.workspace = true +readme.workspace = true +keywords.workspace = true + +[lib] +crate-type = ["cdylib", "lib"] + +[dependencies] +steel-api.workspace = true +solana-program.workspace = true +steel.workspace = true +spl-token-2022.workspace = true + +[dev-dependencies] +base64 = "0.21" +rand = "0.8.5" +solana-program-test = "2.1" +solana-sdk = "2.1" +tokio = { version = "1.35", features = ["full"] } +spl-associated-token-account = {version = "7.0.0", features = ["no-entrypoint"]} diff --git a/tokens/token-2022/default-account-state/steel/program/src/initialize.rs b/tokens/token-2022/default-account-state/steel/program/src/initialize.rs new file mode 100644 index 000000000..1e1da21fe --- /dev/null +++ b/tokens/token-2022/default-account-state/steel/program/src/initialize.rs @@ -0,0 +1,55 @@ +use solana_program::{msg, program::invoke}; +use spl_token_2022::{ + extension::{ + default_account_state::instruction::initialize_default_account_state, ExtensionType, + }, + state::{AccountState, Mint}, +}; +use steel::*; + +pub fn process_initialize(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResult { + // Load accounts. + let [signer_info, mint_info, system_program, token_program, rent_sysvar] = accounts else { + return Err(ProgramError::NotEnoughAccountKeys); + }; + msg!("Account loaded"); + + //Validation + signer_info.is_signer()?; + mint_info.is_empty()?.is_writable()?; + token_program.is_program(&spl_token_2022::ID)?; + system_program.is_program(&system_program::ID)?; + + //Calculate space for token and extension data + let space = + ExtensionType::try_calculate_account_len::(&[ExtensionType::DefaultAccountState])?; + + //Create new account for token and allocate space + create_account( + signer_info, + mint_info, + system_program, + space, + token_program.key, + )?; + + //Initialize the default account state extension + //This instruction must come after the instruction to initialize account + invoke( + &initialize_default_account_state(token_program.key, mint_info.key, &AccountState::Frozen)?, + &[mint_info.clone()], + )?; + + initialize_mint( + mint_info, + signer_info, + Some(signer_info), + token_program, + rent_sysvar, + 6, + )?; + + msg!("Default Account State Extension: Initialized."); + + Ok(()) +} diff --git a/tokens/token-2022/default-account-state/steel/program/src/lib.rs b/tokens/token-2022/default-account-state/steel/program/src/lib.rs new file mode 100644 index 000000000..8d9da29b1 --- /dev/null +++ b/tokens/token-2022/default-account-state/steel/program/src/lib.rs @@ -0,0 +1,27 @@ +mod initialize; +mod update_default_state; + +use initialize::*; +use update_default_state::*; + +use steel::*; +use steel_api::prelude::*; + +pub fn process_instruction( + program_id: &Pubkey, + accounts: &[AccountInfo], + data: &[u8], +) -> ProgramResult { + let (ix, data) = parse_instruction(&steel_api::ID, program_id, data)?; + + match ix { + SteelInstruction::Initialize => process_initialize(accounts, data)?, + SteelInstruction::UpdateDefaultAccountState => { + process_update_default_state(accounts, data)? + } + } + + Ok(()) +} + +entrypoint!(process_instruction); diff --git a/tokens/token-2022/default-account-state/steel/program/src/update_default_state.rs b/tokens/token-2022/default-account-state/steel/program/src/update_default_state.rs new file mode 100644 index 000000000..1f96f705b --- /dev/null +++ b/tokens/token-2022/default-account-state/steel/program/src/update_default_state.rs @@ -0,0 +1,34 @@ +use solana_program::{msg, program::invoke}; +use spl_token_2022::{ + extension::default_account_state::instruction::update_default_account_state, + state::AccountState, +}; +use steel::*; + +pub fn process_update_default_state(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResult { + // Load accounts. + let [signer_info, mint_info, system_program, token_program] = accounts else { + return Err(ProgramError::NotEnoughAccountKeys); + }; + + //Validation + signer_info.is_signer()?; + token_program.is_program(&spl_token_2022::ID)?; + system_program.is_program(&system_program::ID)?; + + // Update Default Account State to Initialized + invoke( + &update_default_account_state( + token_program.key, + mint_info.key, + signer_info.key, + &[], + &AccountState::Initialized, + )?, + &[mint_info.clone(), signer_info.clone()], + )?; + + msg!("Default Account State Extension: State Updated."); + + Ok(()) +} diff --git a/tokens/token-2022/default-account-state/steel/program/tests/spl_token_2022.so b/tokens/token-2022/default-account-state/steel/program/tests/spl_token_2022.so new file mode 100755 index 0000000000000000000000000000000000000000..65db912e9793a537857b66f11c13dcb64d214e9b GIT binary patch literal 777552 zcmeFa3!GF(l|O!aW-c?}gFwz?yZZlFADHT@I(6#QsZ*y;ovM59t(U#_@`h9@u+SJZbLz2OA!l`J!IE#i$UuV5 zU~bSve_tGo3Q!Y}Sw)eI=N@R`dKL$#2^xTpp#LjACgsUE`)Pr**ss?_MKj+rk^z$O z*7ry~i>+P*Wuv{#H%Pr?d_bxN77JBD;Fh!;L(%>z%?#mk0jJxq5g5FYG$BeijO2W`W&*=G<&&E#^b{rwo}L*}9$g{nXikM*R1AZO zTp#^XmIc!&2mQX_`!qg6F86~0fB+0r0?0oyl>2I!8fngwVN0D_eh&rltZn9kYwZ zxl3X<{l%J=*iAn}(-OPsXK7mEp2l`g_gwXI$zLcFB0p8+F4tu3zkfk?rWZ(h@)Ai;SYi^Yeb{?@Or2jgj*88h58g zaejAd4C{;T)Y&qQMD`aR6PZAbbgIY|)2XFQH|Eg~ymH_N$}or+t~>S8037R1Wq6*X zQ?CkMO6hd!b-`$gQGetU75u0V$q$1b`ipvJvSg-H7pc51W_d=vwT}<22Yg}h7Ogiv zfXYax<_2kwuL#CbjCvD3HMAZiFATcrFWMVNIv({dV>ttSbD|y0+%UKf-~^uzpeoX- zh1_qzFHH1D=(<+n&j_%hq*L>06%l&=-oqaTSH*B=GF)eX_JH?;3B2HA7`&e0)2U18 zx4_Nw@PVJFGu)L5_bN^U-*pLmkn}KkwZdIY>zv^GmjpiWF$^wMxQkfsfbYHpKIyl} zFUp@t;F0!3!K3_jiE`ar+%7wnk zas8VT?PJ`-;Ow~ksYLryF0&H&rzh%*oP(Rf=bIDlLvBNsE-Ak~Q6KXvgo~KCD82+-bE66pT+l1Lf z^p`jyt1k!+(E5XR{^sk%4@&!b)b$@=8)4#DDxeSsf5NfbtaSECjPb=fhC+%wd*U{R zxAio(CuVB>+l3ytCChMWvU&QbsW5mer?GxR4nbe8vGY=Ut}Aq+NfoNfX%(o*1b-EhX=Gp^=x8~-GK zlYEWszJ*+k+kNU`8i&$B=2eurmt$8tr0HFnKCJ0|nwD_@pS@6=*qWfXB=FHV>L*$6lo*XTuDrooU$W#!$OX^kR3ED~K z)2zSq`b)IHVnRJ)$8pRz%Cb-ld3B`udNW!B-9!k5SU%!$Rryi7(Un9#LbVQ~%cVZ> ziw0yg#b{iGPW0IHinWLFLB57!G<_(1G{NY4n#UnYe-gh_{Se!^as6X){euZR_mjUM zzN?-~>bG3uOeSsO`1u?^8$CC6SbFX)jDPrg?oWjt)w9FVbB|DskR@LBDUbum#kaqC zB0aZ`+Zm3YJEZvjoaD12m)CRsiQ{2i5ufX<6aKu#`Vi}}93(Q~lYhp*R?dgXUfZ%y*_)(c^uMgRP}VV})nIjh)bSfL;vmwR&g zTuxq+UW{{q=(FyXQOj;1#L zpy!Ag&y${e^r;}oPdSefmL&?7liPq;9pswCeqBz3o27KRkp`DS$lh}qk57z9Q5vJK zdLu+y;4oevrL@_x<_E<7yYup)=RU!&D*N>1R2}PQcPeDN|9<)ne_c8SZwKNQZUOo5 z@Yp#^I@Kt0m>R(pqWmH*mwq7K%4wk&=}R~*^dgO&meFf*yid=IpTK$hU-&m7Af=FN z5WK!$4mH4stEmY)4?C6m7zfmUE!UTQ-l^0_4b*=%*YBhh(Qy*`o5?K*Nb3jcUrhC% zPkzjPj{InQj{KN>3j8oWz`p~&fFBvIFMf)X@zbx58mJFfv&(O!)bPdwkcJ2K$&FYU zj~R?6xL@3TL1EK;&d4=5j-$*W_CvWFsUiipX{N-52^>cm@w2s$#fm`Xo3kA6-_p%- z(tlFu5jl)9;*T4BE`tSyGsQO^Eq<8Wi`tGzJnt~a(;6@4d0Ad4@S|^&*v>5{y;IWD znnv-t;lwSkf( z&{yAOy2|h3WZ(v*-lPj8ZGQLBc`euT3D9{lbuMmC+fT0JX{HkG{FK{qSUf32w@W-) z+_qHyO3tX;zq9*@U_{{EvJryHI)4*rLH zicRMtTWCNi3|~IJ$9R(R;Yuo}Ovui}W#-&XMY>t;%NeLO#N0nQzxl`<|W-V8)d2X30c zmzPNlKQZpjV0}fnpVk+&)V@sGLmDARwgf^s%TX|a@}Is{egkhh6vi#5-@k>tXg%DE zXcjPD|J$#@?T3oL8GJ#{!I!NGKm77X36AOmv*}M8pQu&!<5J;MG++4FD`b*%h#s6Y z2dxo)!easSM%|LS;c|(AAL9f3KoM;aJ<~htX_o8WQI8!*dAUe`D3rB+y7?z8U!yxD z|9&C^^t#=`|1g-u1?!a`(?+!N__zU?KdWZrl%DVna1=BXagP!IqKxP-yPt(~Fwg}$ zfj?>!y=44}M#(&Z9{L6Wx_&8lyHx)vJ+7pBaZvg<=^kl!^md6&zD)n$&?WiMuV^6UqTZA;x2Re7xkx=PRloCiO}FC3&%dZGA1zl6*Vw zD=S|x9-tHBfEexWp&zz>RqzYVqZPl^2mCskTcg(r{^)kfppc~7&gWrAlXx6=V+9|^ z18L)1+|Mb3&z&dp#LX7?bc5LExduoxwL|rpex0N?|I{DtxS*Q~#RB z+0AC~c%Hf`(%wUjLWrBJ zUt-f&@wiaG&|W+3br9~?e&(>yP$*x+5$gw`Smbg4HL{;c(iL4V@Z~ug3wvYx&-69; z)lTCYtrM(~-dBh=OT94ohRl!oibweeJ$N*s2R})CPu|0<$d%N8HgZctAM01p`vzi3 zQf|w)3I4T27dYk$(jT)cO^&S`cwSmVo@2Sxb<^&pt|g>d!h4IxgLL1lNa;1Bo?-qB zre^R0Q6K*01Wor;TPdP|W%5#rp>B#4_hiKGwQ{sGR?ClZxwPY#LseJf`7P6P3o#9n zv7BOVhvFjewEc$5Azw|D4uk3Rm-w}o7=k#@Q7~~l5kSH2ci6t6JX6Y{51&qq|4u40 zz2nr*7_IuMr&a3VJQkSk95M_Xq~6gyM!K-Uw4_{Nrx|E1nx2^&xN3#?4-umacp){7%bqlstNwh z{p4S?{(<>LNg&_$2WCH&*Gie$F}5zi&cJxLV**h?nq%OjkRx9lLiuKng7OTBZx=QO z*J=I)N^4bKhxgx%`9yqswZJFoj#f*4S=4rAJZ5UXbT=qpsA;uV!Pj>aU(0uC{uYf@ zj?1eh9rEoI@KNYDJ(<+Q?lOVr{G$A3{;8fXUoClMg^Sk*$*$PBmnr|0Z;&H|*xoff z((=vD6el5u>My!2?%J&S(pVqAR?Ny#1YCfF{ z?pOY$n`B(fZi*I*{Tj82y$U#BEUUmrZDJq$`(WHhEAN)}nh723^tfJ+vW&&28P=8wtk}Cr@l{cYM+~(5KR#2vhj}jCfx~KTG~yAt-`luN}u&-iKN$3 z#Qh`wAhc(z`3ID?em&GI6WsKot?wWQ`#a#E=+^ezu$odm<8vs4#eAmy6Uu!)1N7PO z8TG)YH=KyS>US|ejnCir41>Qm|0{f*TAQz`*NiXiQXu`DT#W~%4&W?f=pkZid>@}_}xkb zROETYPPsIo#t;DeV*jUc0I8foZdfG z_n#jwgWsC z?PqHKnOq#->n*R4^k{GX5!;U2{_%FH7F;LOWypQ7Lj-4fu>3y3gZ(4|_&?=EDfXiQ zh3)HebWa(fy8l90@}AoyU1!~Z_?z2L7lmu}o%%7;4YClPvxU)D_@wv2Bi;8$8PS{8 zzbG?2eQEcg(XVfiBB{t#v&fbCDfXzI%nKd19zeckCj4h(J^6C|2Swl9DfJ@VC!3rt zC$<5gJ2jHeoA7)KkwWQLu%D_sbsf*6?$lp0J?WGP0{HoH|G5=XM&NYFr$4CQ63k{i zXS3zqom#@ri*={&2_SNGE|!{1G4P}gK{6#kZ*HWY04k(AbqhZ^ zmrfmIk1*5m`Jwf3E*1tCY5lWUcXX#-tIz$sU!RXTi=Hf!_Ah*3X#EbZ|4Oaj%KMt` z)LZ%dEuGrW=Wb~C!Y>T1hyH}Y%e7uMXs2{{>V^Q8aXR(spp9bGd)sG+*1MMLP1Aal z_{MQ}YP~*Z^fjKhsP~mm53M(m>z%Fj&Sp!oJGEBNAHTxmfqKt;W@tU3bG+6&hdqO! z4_kP^uX|`HJf3I?gE2Aud`g4=oeKY%1Rri=c$%aXx>M%_=TMwZeSx2h0sg=L+)(_l zVt6rB0goM4I`tpCZvy-+e?Jr+d<zV21{{_Jmw5WPG1ixIdBS z+Xya`=#RjCLgC)Z{%GJk-;<*-IH2V&m`cA;{!l`130;4saGQgf3io(IzGhK=80=NJ zd)Ti4eBVvzQ}ing`W5c|@|+yOeK?`7Ud?cSp>TJz{{r}W6LKo;-m7r$<0m-)_r8RD zLeGZ5T?~iv_b0}wlgr;5mv<)QPx$cexcrxiae@91gWKcsw@p7%uk|Le&C)~9t`{K%+sY@J|`|OB+9Sm@>j;?4<+U==6}emn#kt^3HcHI`?9$H$^?C~e$9x>S0(Ca z7(Yf)@c(IoKj@jAqoMzO3B4iwhZIZw)`Y$gJqs>N`HK?cgPI|08!7)@qQ2;d(Q*B+ zB-%fn>%S;2U!SNC{cq1vf&Qx#?ZXvf_q0&{+Jt;9qH@^F*iYQetCPMWZ*;b9B%x zH$0>~8pkp9>!bW5+9~Ie(Y7NnzXRu}Lx^`sTzL<|{hV+9Om{a%k97OU)42cco-C)) zUL*hFKgD$Oy+Ie{4L0Ay?;}8c&|6rB)m!N2AM&S|Ymf~>`9{frKj*Kp48U10psr`=E(HlCuwqWkc9QGGT+jCp9wj=WHtCm*ubmU3-!K1T?BB&d;|65E>`JnacDnD)H3?p~ zPxrq!aWldG^m1uWqF@p_MFIX_jE{!mVECHgGD_?}J;zz?Ju5gapDz$rFBe|Uc9`2G z^p2Kk7_28gAWRDvFrPNiZ)zggKO0g`^y__>_D$DtIz9)S%E@5Tc@pQE+8ICmFQ{+# zb$ov{WfvhAsIp%BlM7!N%%}7Q5?;h^Q0dcg+7xzDF6o01s}AB0jc00{<=FLc6hw;G z^^qV@h|&_2pgvFamj zcwxnep1^vifu4tuU$H)Ym(r>Ey(3Oz{bG8O+}u2`qcf$QyA=`mN<|imWh_b*?EWpz zBm8#DXGpop*{Y=&C6T8gcvNoE4M&d8r*eA_PjrFOc{x|3c7DWq9rI;t!asB2v5KC7 z|7LE&KltagRgLu>l^;v!sck41cE8=Qh%m-wuzic4;XJTQv6}yIK%1l+D@N`c3VWA$~%M(yaxdx4E{fk-JgjZ_qOOd z{H`qLgFa%lg<^WdT3LrjyqVV%lvh@rpjfy{*5h>J8m?2mUaH3HuOhQ`INfvs10>rS zY+CtyyY9aIXk|WB*4^zge~4cez>4a1cPqo$dK#^~m(y5Zewf0#D|lT0P&kx7hVtD4 zpOl*tspRNjo>*KlVm0xAS7_Px}JRSD_!R`m?O-hOK)^J(&w%&+F9sywX2a zV!J15c0zpKKzbAb_7yGn$ITwF^QPo_>;|R3?Mvr#z0p~Yf=R6s+d03zM<&wz-jwM5 z-c$?QSGHco`d{a*>3_G!?1`tDk9H3a<2pp|-zDv?ntBfZNb&=AI4BL-i%a8@*Yzu- zc=Mts%-?VKQS3ax6S;s%c2yDL>pNCrerGH|$ zD5LkMOJCCTT$Z8iy#{vf6-{rId_5t@pYYZx$NsE?$_-D*yM`0PuO0#~{sGf-cF)z$UCVO`n1VZZGsmD~W}SWbD{IP^ z+GoU{QLp$fdPkjh4DI%gf?tE~5e*7n+mDpjXj-4waJwt`{+lZL_A~lv_H!6K z%T4pn!u+IlUIOpe>p=tc60`M2E6@dX>pN`zf zHr6Mge-D+#{)B4yj%8zUXwp?@H2Mr29%YU)q8EV?3fWBpvT#SvqK3OVVDXc0+8hSbLer zn4Y-3%u!8idzptNU8g;_*Xj#g<$f&PSM~bHA?mk8uA6q|<#ZZrApU z=I4N40+`KyEpJ9EBsat+)Qh$WJRD3^j;zBV<%^n?n8ER2IQZ9g7pW`IoS3x=q z^uxhqA9R2t4Vcwa)Y(E~p)HKIbAM$1W ziT$Hf7>w_$byF3rb6phs{#{=I3F0M{VWjjeI=E zNN#<*8GHxbU;YmG{j|)FepZL^Ie}lF$7zdn%>0|iZ{TS;0z5)L=7&FCmG}F#GJ+&t z)F1pb)!!%mOpd?ZQwoDD*U$Ig!Ts%O6F%nq|6J2kI4nuj@QMRBndg z*9v^U!mD15rU<<27x|B-Xua4Ex0>r=o)rnzIVum#f3o*X9__v_@)yyA#ATWGysm)) zTUX2v54eYDX4{dQm2*D5FY6(@2d<)O<=_j65z}=1_>&6(e*w{fbqD#~tSzX$d(kSz zd5Hmc6U`TQpXl{=#UBPA61YBrGdYL;NKqE{Pl((5@K@3t!?>bQ?v~i~%Q|cKzhgh; zRa!n%VqXq1&&+;{=I!J01)UF+iOxa6=dPCVaPy_U?W67733MWu{J4RGj0evNfnwkT zU)*x~LBXEeH9WDuig<`%;}b1DAo8YmI_3i)!r&?9eYpr|!gqab`s(2=tZ3tU(YCFO zzp!GKrnhTa7!_^1m(y-VR?BxuTJ0?BZ-p*-4%eyOV)w5jK_A~kH2)y{AP98+!+5cu zmi~Q{`xh~Sfl-JTc>I5ciTou zua$8lS9bXv#6e@hw{r9=j zzMGxp@!l@D|5O2U^Yb41g^ zm!8a*H7$JU$%vn%r}wbbUwla7Z3hKT=X134fY#G-%k0y%%&RD~OVc8EJ(-=F7P;%m zd_dD8cRlg@Wp^>3qs(?KKcwlcnwD{hGDS@*Uo&b?l!^+!k<0!0k9FB!A6Xv^FuVDA zTC9Iq???slJbrhX=9}8H$@O7X>)Bk<$8YQH`+h<5zv{et8pFru(|2V#?e3IuuZ5>b zuF8|Ix1bhqho#@GoFu(5Lh?^>{V}>tUsd+M?_vC|e}eG6YCSuR^ONgYt$uAJ{)EA8 zj1TtFT+cp&{(KQ#8AN_Ik^j_>$$le$4uU;51ijEfX*}-=6ACpSPSVX^dkn zzmHD)z+EH$1k&Hf(2jjyBO28y{azw|2J_Rvo?lIHWwL1za6Sw=%-?J8*#UjjG|?x3 zwto+U{}R59n#*x+gq~v%9-q#1(>KKKUfdz@Z8Ig#ERuL$mSZ=2GsqaSpE*Es4Zbcq zO#K-=z;NKNZ@;ZdAL4qhqC~1BEXs8|Fzc>3Y(cK~6tw4s^Iq(NC0AmY^ZthS$ zhxK7Tm64x;A)40%oWqOUw-O-~FfWLm$0PN7hJ0(2aqK&oE+0=3c=|b;pTj>wY1mchIq-di zdgQ}zr*e#Mz4u-3A^5daH%tF-(Kx5yeX#Q*v+K=1joO6YXz!oNZ*Sw5qwhXoT+NRF zyDCpv%kg;hdK7wDFHJIzDzDulpoB|A;a+zB2D^{PQJ|ldjBFA}=Mu z+hy+w*L_3CxBW?ubzVkw=3PENMd?#~`K+dwh&<&l<#bGMevYO^-dz41O)I_m8JZUU znVxZKA7Gs7-ODP}94FzQ=^@k?4a&_FT}kvu7`%z;wefRy-(eXIAO*Ke;LM&2gPDxj zEtUD)8|r!QvMj@6KTrQG6w?h;#gEr8h5ZC5C)I7CSU5xdb~OAXj>nfHrqXFm6Ip*? zT}H6|0p3qANa?~E_)GI6(O#};9M3=4rF`yqI)m{#4?lwWZ==P>h-);?s&}H5S>{7D zO8RT|t)1)G`8(u#VGVw#`Durd#2V& ziphUkJq{49$~YWhx@@0leq6jyZ9CuwI=H-YUP6pPzRsg4FZu@a%wNClJu@?C&^rj; z`eFA*%$`Ai{(|&9?3zxR2XoZEiFS%TV*7IN`w-zF|IjgtNKfhg%>m^XwUecMU(fUU zBGZNVI#c?2J!;FkFzzGh#{td<{l0xr@$XD#c-Oax;}hwl@BXINx*?7icYCMcDNu(g z01xIpepBRqm!pKNc%K!YSM+2#|3u#j$*!;T2m3h$dw;JzA7|%6w2$Yu!{D6^2YPDh z$*7f!J$c#2^~fI~@qo%#?B@}@NxQfrZ(Fq9VTtz$o~m(MBke}&uZNu6Kw}rTtMk zt*VsNbuHM#En2SjV*hEH7J0FKh~1;=P07IYre<;d z-qg7oU#RhXjjz;L6j5(V91Ojwyylb8Q0Pq+Gl?{Ks|E{G`d?%aiGeiFrm#^J)y5slr!Fp8ou8Cy=Ku(GR^T zvCDf?9gMd(C3bvoDywO=J9K@){TGB@A&2$JP3a?zLDF(I=wEj&z&_r4J9oFv_-cImW1&QG?N3)5nk()!GH=~M>e^SwRv z)9znKE4MP=qQ%>Ve|drP?Vg`KQ@y^X^*ub0D=)^xwD;^{e~4huo#CD{#=&)EIp4nD>Fcq> zR1UqBT}OIG-+x(I|6e5a^nHn!p*j`i4Ud$DJK0F3F>eu--AoC4!bI%5h&oSvw z|6?2{*T0EtY<$Ku-c6K5PPAU=bLMxgyN(DwPT%tqncSVJayLuxnBG3oe8zFK%@?d^ zOox4MtB*QFAlAFCq@Rm5@{$YQE@%!jQ#E)GE zVtRc$VAW~wmU=s+o*UoEKg=GezYlpC*jnx9oFV*0KNx_q(LVELnXhhBmUG}Y>7!p^ zu!Ymmr+^2&H-4q!A1mauT)ryhIL_x~fr$NK`Bu*FvhUdCXL35qY!$mC-=XPyH9c3; za_$2DcT$c&4^D$VSi@lKUztxoL05+6k@2O*r&C=mEiB61-97i<*{p zqfD98QSbd6`|W)#aSsLUga7l1F7V@P;Qu|8pkVKv1Kq1B?e3F#kMms`65`Kf`b&CM z-;W7B=*w9o-6y!S1nwl~JfVH3aj&e4Zr4HK@18>(o8JlToX~$pt${ub#ZaGrb$bPm z+aq|*ZU&h?e7$*P`}9cnCuXllL=S@5*U?VllgS(Sdd)u)pGL{}*!y&c^E~fg(s;ld zkfr~(Xq@Axa%enCiZ9le)DQ)?N#b&mlk|OYA<&*%ay>FIz0GQ`-IQfOycdi_!2-== z(eG}zj(d28*yG{lVviI25PST>w{YEN$|SKmz8o>-OdHwB^9uJm5$v94I#hf7Lbb;e z?dL{b$m4>0ootWKmHIf>+e1Ig*Gf9tDf%uNCG%khP1g=8g5KIrvH9VQU*zvUhMKsy zw~^?aqwvvU@#Ep%UzW=Kd2@i^?7njOdeoNrGVmdcgRW=PKYu-&xWo9qgyF03ZQ*S4 zTMGS<6WAywpN6-BN9K{q75ax3e0%Ev&2Qh{T2n)Q(tOKV^!CET#7qsiCvi6Y1|1l` zq+LVynCO+UQUQK)^f#VIL=3443&qO({}9jLs3=AL`~v;vHw=S&7%ujk4QPAnuZy~b zR=d9%20v%`@;bo_xhT<3pC3n{@A{-1eCed0=-;I^`6AXX>z4#y(9f7J#3%Y^f%J>` zS9)7SKzmy{xU9Ejrp8%~b>7jw7ooRB`qL{>wY;riFmAU*Cbr1~*25uk)(S3S9Ax&= z^J6kjtx`V>)ZUN%phNi@zi(@b5K`f<+&=+7lKzfSkBj^qNZ6JC{TS>@!DHuR7#DD) zat}b;>5~}!@z;$oSiywba~##>S97^cfey%9KgkX4gSoyv2kn;+)R3#>I2)aAQ23D3_e~eNWIfI`&XDzG4L8sC6|nAN zedqP~F3C4O`s*9)e0oo%&?no;_`W^pf1IYcD-~Ieb17kzJx>-t|GG=$fB)DHkze)0 zx8Eu6^Rsi}N#cH>_ioH$z3g^NyY~F&`uReq!CU^RJ{Q`)LoS!c_@@e9dk!?68XKS| zA@8_oU6XE+-#hUf=u%<;1zW%E{RLt0X_?o%x9j}AS7N9>IjyHJ7uAsKw64D=n}?yUGAHUkOdH>xVFKk3 z*~6k&{d)rQsm$gNy$4RmP4)6=GS03+W7P`=U(wIxTnC;Js-Nk83+yk~kmda3{fTtL z#d=@kqT2U0u2(yp^fB;M?rWUS^BH;q0rogXG`_EKz0CV$d%31ph#gMj!t;JTS7$xI zcK8%Y)Av?*zDJ{E-X`Uve5b&^zse6}?qCUrVF8 zSRWV02>&q;iNshRB;~G_Ji(Hr_i+LpJ;%yX;7ETU#QH+zDhzIBc^eMiX;eRCtpNV1 zeo=jD_W|v`Sn@nP)X{NUn2flekfSVRfiM61%UX8KOSyurQ~5D;SWO|F`T)zF<-0MR zobU8}Z+|NdBn5k}Z8-fyOQ$k#F$HWMI@Om+ex*C?h9F7RIZ)g z?*KnOyO!|p*{b?L);Z`WU(PG{HvX9L!rp)eD6HWm&CBcJ{4+V99?YeXZm7Vc-);>g z1NqnTd&6*+(<^gq2%!uURx(GVZ6VK}Gv?Uoa>aQh?OD01%GF|7od zoagBOmp+5@3h8$)wT#ERu&rBn`8T83(^HiL%uGhpTPHalCPe3p*3nR z&k@gu$w;fcBlZTKTGNXTZhBoT`X70a;tA}@K?+v zK8JzM#}p+hp;!z4Vk!@V-WdPWiT&=lAIf~nC;SCa-QdIF1pGdQKbpvY3FX^<(!TE( z-$&anMB4Ys%+D3yx4%cqaW9~QepdF`ltIDn1;qCl_5MBN#@~0Fyx4vvYTGR9c}AYw za93w(6lol<(tG$zb)C&@WH@(?uD2^>zijWHfxN8-9eNJp&$AVYd9#)LHJI%gouu2EB|WfO(({fBUAy(U6MeopnyUVX^UxcNue@g@+P042 z%ljlBev7B!Kl1d`wV=08%As#o(@)U**waJx$Gxbxr5f)01m{ZP@1yy^?M-Z5#DLL; z6`YRRmIxhU4)Sx!7*~5vEXu6ra;nO3QjxPAO4;M4zN$xhFahApciUY~NplJieFZ zTk!bu4>*)>r}A<)YFEo)a{R1+Znun|+b4X?u@)!&aFy&=a*fk@UH0FDiG2y?FYi~T zb91!*%lukSbb|qfWxB78?IYRHo4i!%sWpPffBvI?wTz2z*E!W&6I&;7h2h}&BH^}r z;De8^VkiC)1eh~h;`+t(3YW;Nux8Xh@ zbekPx{l`8GAq@Uo;F9m7-I3+|B5e`IB|W?GwE} zsgJXRIn-_k{fzh3+iYL0>x7=C+5D=tujX}LrYqTjo0%@Rdv#3Tybqj;{43w8_St7M z!NZvcV+b;SeuCtUSZX2Gt0vd+dBSV~G5Lz;$C)a3s;BH6YdCaFBb4?Wx!E!F9s}k} zWnZrLOx5{}e7Dx#cSiby>p|YKgcsxfyeZlb^`*B@tyF1Zzs$1ScQGp zGG2e5o!p=Dx>#eM{a)g8&%4knwX5R=Ip{~a#yGh5fHAxRrgd0AO80y?W=$ z#s}N~mH|uwHv4M&pKf{+ufx%(joc3Hk0s6=;@B-+bd11go!qDCPEAAVNv@X8)$~?P zcWC-vP0!TyE=|jRJIWl?w7yR-b3oG9%Kp1*-+eAx6Myk`is_y)!$>51X)JEPu3-2bZmCkbfH{U;_01lj)doRhso_+WkV92Gih{*0e#%Wi2jN|=d|D83w8xa1r-}xV$wsY#r zx%N!fJ0^#Ae*OHNYoEpR#rS0#9KYWg7)zs;XsQ&w>Cv!PHug`kxWcXF%2;ySM2E_i=r+_a!nt3-LUa0kHSpnw&3MgS*Qjl+qz8mQ(Y)&< zy<6ng-lJLVXZ|3|p}n6oqWcyI(L#=Be#!mE@?Da)d&0^7Mf2vy^nZi+<@O34rf*jD zUBn2I_0ZpUAMoYc`YZ6Rq8_1;YwTtb|te(V&wV!HQAKX5Lw z;#Wic=--6?)O7&+gIz=l=sW%tjekk&QQpHee!l)UxL*;R+k2S#K+kK5JdB?qbf~># z_+hVhfIhXG%pRim0&qQ)w^F(9=U?$lIfvNrInv*}Iza!W8UGOa(2stlmr6k|`U61p z=b|#n*S>EuAFJg|_}<;}q7>k<9z&wjEpiZ>Zh0whP>}yB%BTD9^s6F=HV@5D5cQ}$ zoen6#j{@3w-SPRc2>CrLQB2>3VK8}bE~O35_3vW-RPRr~E#Tc+r~Cpgr}w%XV>q<~ z&41+7KJ@NoGakF2aU%X=KF9Yn67w4TezfL%{=D!_*PZ8YK7U8?%DkuhYupdJ|K;~1 zpE&3G7Re3d1w- zlXWqEZuOw1A6B_Mpy?x;-lu8t=h62Nq`fiJ5QSW-lj*X2dp;3%Js_NpKkQc`_qa=E zQH}R0)NKpJboh4h|A!I#>kA9s!e!t(>On7p5bSR%UXP$St>Gq~SD4=j*x!Jl_<5HF zG7zZex0h@96P{=GybJDAV?ScwLn~wRgLFw^tXq&D@b~5O>yOu});Dnl`<_6VcJp(4FUf=40U z(x~|(I3Mc(EDyUchjc5aMH-R5gwync0@4>#OwZ*o9Vfq!^J}hG>mJa^ACvr|F$%`7 zT5yd7m()A9K1Eu;p1+d5)B79XH+wy4Cpq1B+C4|>m)#SpH&4RgDA4kJ-jpfLo}b0~(Bxdi)O+vlpwMe_KV=CcDokA=@w96t&WiooGpgZf zWb~{|NxV4VnBE&F^JZX)@L}FDiFZCGaptJR8y@D^wXS2lr#>%Nb3MDS3;&#qr`}^5 zQ2qL>_PE^g04Kl7hScPf6B=})|j(C2M-G^ZF2k&hazUBqbjT5-s z-IV3HuuHa>W`}#KV-<_(xmt3E1 zpX2Alp0)i>@2KoC=x@Iq@4xW(m3R+Gd4Rjg^NH=_-I^w4&--Mx@30pFo)_)w`Q@=#rGBhMq$TjAA9>hX!K7c&1( zrl0NH-Ss~$1MSKI@?LsrV}ms@A;Rdn(Wa*cWe=hYCd__L^{{`afTKbLjEgGj;OF+KA%ktsZ=lvGV4Fup%`fI|^ z(0aQk>96TxcpuNn_Vas)uAU9DuKM+o?I-v1Pd!kp{i~|lKiNL}{oMZZx6fX`)6)a- zzIqPR72CDHhx_WSBm*Xom3{SDL;E#$wWP;z#P(2@enS3kt|5Q0m+2q9Jqv%uenxD1 z)lJ!qWZ))mG8rs^+Ql4 z*bU1OQ~9(;*$SLZmnKCaSx%ITCap8Q*aU!QlR z_d{q}<r&+IARUO4oBtL=rH zeOI%j{GslEAMrg^@BJ)aTupq~C+(UX*XPGXMp)<*ylIp7`$W(9&&PC9n|AK$@4K^9 z75u-i2Hk1?imceP(gOb_J5Tu}V$1iwVP}QG--ujMTVALMKaJt{hwm zF0p=h$<~wTHrX#!?DG%T#9NDQXv{E>d6CpJCa0$Fz^AYNJ?Xi<@|xTsml7QCt)+45={>~qj{79VM17uTcTy$= zpYBiAr27fxliz*{^R!>;Lr#+IFX#4oIT#{OC92}%VLApB57B=J{qpvc0ky+&_X*-> ztgnra@?C_&ebvu%K3Ic3H)r! zia_^5f`?xJBTCobAB?9`qT^n0hw$}r#OE?#vCn7p%crM}>A9E3*|kc&Xu>1>!|AzM zG~sbg6G0TB2|v}e*a6W5xo?_p&2oO%gj5PYpcnmpkKa=B> z3#KxnYJ2LX%qRP!s8)s zLDl<&Nl&m{mBwG<58)*iTPWtj(|Emuys}*-?iTh7vt0!xOQAelV%%#aP|`cN)myFC zBjx8BI>?gskqA||A$Ewung1kGJI(l5&;E#3s{Nqf#r5@TmfFF*dYD8wIZkP!7@=xC z_vi&*!r)1kL$izAebSz_1N?VR^6y)a0;S;3bLcI=eU{+rt-q^UmvFtRc1oPh^BZ_< z{@8sRvj>5HfbV~qohs{iwVg`Jk%AkP_15i@{ zA=wY?duC9_Le{>bhoSKbcQQELqG{zH(9d8^;ZA$6!P#*>W`MgBl1lrihCkx@2>2Pu zzbpA(0}(V|f3GH3ldD?x)U7q;ST+hLl4G%>-p_Ju_Zy>o)V`SmYSHgIxtyNw6}TBB zP!!Crk7k&CA*0hZUefj2wdXsN^T6yytV>`N>p?s;!7(>L}#`C_p@XN zL~SC^{`!}+GZqv7Y<~4*9u#|rx={rFlHkYaVV>2Z^Ip)Y?}MneFGQc%c%onHAFtSH zT{y_6VEY5Vy#}<`ukBNJlXSn5=%#Z39v5Fez!D!1(>#VC^Yu&_D1V1>e0vkwpM?{ zJ~>f;U=JnvT&q9fkp6%wqH_mFtcTYiU86t0Jw|$i%2*HVP(6@3M6G)7zc^F!F>ic( z$@UAV4?8IgKE>k=J+(UV{)#z|QTxK?z`omC3+`NkLpui(_RlxIL-m(aBNU#C-|D}p zzsYs=f6{NY^_=DdH^8oY5pO62WeyhJBU1Q^x zv|lRs*yNP!ciC^XzNUVd0(MueTebXF8{b5Hcme!YFg#3u*Rr#g)u8(iek&ffA^xA6 zKSk^CDfq3fpbG+6cCfJ7KIXajt#HEeZ2VT&)uj8>{Z=?h>CyMw`tnq&A>aNzh$*7sZe>OaM9JCd;5KJsm<|2+7uK1uwnw%f!3R&7sVWQpFQp3iKR^TYpf zKNk6^5aRn*r|QQ_OMUps*pD?;(!Vo)tWkQ8Yo*@nS}gaxY=4CLmL-xg-`-JU{D$w( zlJ{>!+w{4qebS!ogXq0_&ww-5F50_*TuC|Jtz%zO-@o-{f~#k@tZF4=l!D=R)^3Tj zWB-=v(OUkkD_&Q@pG%!B`1a1J3b6{@cy~Jzw13*elmZT;idc841aRJmwbQKUoY7& z{Re9Ki@wV66@SqY z(R=$ioB8w38uXd``ur_3f2DrUnV^pN>iLT>lj!+P!SBhzrIZi)?x*^G|MI9`qCXTc zPgs7u{=J&}C+(sByK46DV_d(|ze831``j@5H^BXq`aNfYx}p7BL+L1^_-pj=m&;5OQWj>~L{))bb{y0RiNxnsGvaVvh5Wugm zl9SEOfh&H|?Og8HZ#>Dld6D|nv$KKyFHWD&03BKS@8iMv(RUV^|2`cL)THCqDmoUP zgpRi{9SfL_WV`;pqk-_ae$fNq!%ZY2mHuNipf@*gZ1cT*A1C>}>04^hVRG)zhgB>u zs&D$FK7BV+v{-&CAUsadxTK6An(S147t@AjhTjjb2-JLb) zw)^4eA2Hl>-hZ=15fk#^8C7%=KHYyHm|7SLsH*CVfgnvI+5PO)tJBMAE+hAV;G>K z|AanYo@<^5>=3+u{~M|Qt|ayKGi1CzV0>*oF#YYAe{{)A2A4}{bzwz(XpTs#|bUPUY6e{|4J=1d{x?f80 zVQ{_BeIZw;=fnh0`5sAEzu#HgsdHaH4E}^GMmq!!{!j6Aa(2=5Q?z)a$m2|DCtA6V z(@|!#$=cRm# z*uA~VbL@FuJ0FVQ-zjY1v+@qYfcs*rDUNok ze_*%pCt56i0<819h^{#l1K!@JaMJsnHxe)f)+hf5^RLK!tM3m#hv9v_R-|^zYdAZ8 zACiAx;!j^w!JA9Hf&r_~M{bk+0U6)+E$@_eARrV*kC*u5@5|XJ`$v^ayI1kNy)UQl zdZA~!&@;*OgVGt=_w#5z=~Mt<(UqiMk;30C)q|)>e$e|1L|$7(-ebEhevjTSr98gx zs`yTN-}S$x-d^3e+r5q5dXJds^zA;nFU|0)re48>)p~!=43e>s-xf^seUs1+d#pr1 z%bPV#^8sD8_q{-V^GE}T0{X{tBf}opcfuft>;9(JIwOj&vd*Yp+N1c0*)`W0G)lo= zFD@XxWAnaeybxsf5J6Wz!J9n$_0B=P0wAEjCvi;g=M?^qMK0yf7|;3nv7#`$W{9Ef z#%8trmmJ661)uR#P0P4PGai@p7*QzE_(wS1+br$c_W b6lfEzmIdZeUhpX}|Kl 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

nQE*)bfAH-KOs& zoW=FocjRW1GZO9Ce!ZH-l%O#6_01g9I-}%Y$w`*W$Uk-78|D4xIsD#VaH7Q3O%kuE zlel&%$F|?d>{{r-8q!mKb(Q41XEMj$$LR%y@SbAnH|Zt*Vf$ksC+B=lbQkgi{&f_i zUg$?}J5quVLWzZp*D3u;CQg-g^F)K}W4Tl0HSnjZ9%VA=cgegL>lCPW6=HfZYt#&e zx2>%A9nHpVyBfz6NNFFV2xOMk&(jxpX3#@0z; z@%n2VhFdW1PD!WhrQbLgL!cr3I*uDcJ&_Q=!`30Oe*qSx?KAcDdt!lIzg=Js`=p;; zUoW)=c9+hR43B}n3iiv$cgDQw&0LVq`S3V;$6dlb^c$YyaYy~MhiL<_*D3Jux&%HL z_qTpt$bWN~>zg`G=eN6rPLpHCOM6>6B0Egr1^m^~Bh)wP!-f0}Cv$;P;0JnhY4(Bw zrR1N*`G3Uu^TxYN#%uO@blivNUex?~x{kYEuoJJZP(4fN9y7X!is2QnFWeto`uL~u zc=i<>kF^gtKlC=@^IgnNgoh*CKH*pTK|qY!LE$<(6{O&eSG!fny5GJ%&*LMRewXIc{e!;t$DhHk3I96=9Dfv#Ep&bX zbP^q}!C~q+*#~Cx3(zS7^bP`@J7hj_or^i09{XC3y>5~7Caox^=G+y-sk__BKa2V2VU+|ya@e!*#|W(^I_teyYcujZ zEAwkQ7prNV*Vk^*w2afQy;#%I5BmO#rlp^>k6F_)4mzi+X&EP-)8%xk>eZ~Tz3g&% zKUU=2+Hr<|k?Ww7PsHp2c%nf^pvO}5P94+1@eD_Qfwbp0C_J)t(!R=9FFRTLBXmIc z6F4^P z%x1(%XEXhU+>vpCKGsn>_`bQ>O>>qao0Fb>p2RbjNnC$E$Kg0P{MxCS7CQB7XK6a4?;AM{{|XJ=3H_!bPon3tl0-jV3wMM3fYN>xzR&uF;CnR} zuzk0w#CmSW{6ne4I(|?5&G1Sk-m7VWXDGMdE%kJA#Pf~cL*8hAqW$=3fqtZT*Cz0+ z^g)9K2Eu)gDkp+{jw(m=J8-`GjqTiOaKBjgM8Q|5$cbt7(!cpse-r)mYvrB+zd`49 z*(!y*%_J#ADuaHYn{3ektQ|HSJOcubqe)sX*B=)<2W@R}Oz z)0Bz2!4q-<5@CI!jtk;@+6dT>DY3|&)dC#OY|N(UGpJczJMFy){F|Yxm^3&SIs5mo~1! z#^H4>=XRoe@zDXsv$kIEMK!%OS@34^3FE&wdjFQf6L?xxP_BsH^-M2L)cRT&-Mn5} ztiHDws4q#Bf`EPqrE)Su=U{o9em$ot*Cd6n(mByp9lg3z<7DFXoH6LvSfNY1Kh)E7 zC}01TN)p|uofOJNfp2gR=-4{07yc0XXCaeJ)T`g5PS%_0Wk}_?zgp@^PrsDQME9kT zn2Y#NCbNEkJV)>s2>l?94*Cm34ki=T;-69cr_T^U8ShtWl-Nz+SNK(oUcz%lQlDQd z?U)}b^pDh`8zs%xA?ob@^#EVO_B1aL_@f^@4qXp-oquOJMe`nsJCAS-di(Bf+Kk|Ky-Q#Tbra!M)^69)G)UPM-^HTJj%s1tHP$~J*W7qk-;-^XBEOxr-3B#B9 z(~R$e@B1lV1^dAS49+Tjo~jhPs3x%Yg^&Gu9dB0JOD1F?ycB%=>8axQSUV1uIrO2> zpQr8qf9l=^KC7$B8$M6chXlMpX%Em;W^uuq{_EForq>R2AI zmXo74)Y?+icWA2>+nFgz2+;2xY#kkomoYfn5%0{XBlT9ijrfii#w(7Fyz9UIYn^j) zp4{r-=lAU&WIubKwbx#I?X}ll`|fl{eaz3_d3L=pJpDFa^mNwGyB_uay!~wM6GFR3 z`z!{W*YfcVFzC&?wRbjBeSD?A5k&j z#fV)scK>q|`!(<1Bcm(PXJ$9cI9&DDDj@=Nl#LEK&!Gg0y{h@f4a<#xyDhxb!n-Wo zX5k$cUSQ!l8V(CDQhe3&W_mO;54_=@hu4qkJm&es;4}S|(I;!igb%%e)X&{gVd4@# z**v$;cMi|Tyj&?79ru8*F83~H2*bHtm*xIPz(HPA&PLJmah3gck@9;idI(*d%pZ;! z{%H!&acRE4O8U)40aCbWW5zo};U_D6lvytWA7Wc)^Y-C#?(GBPUceQD$CG>JVv(fbF_0d@e<<2 zIUC|LyWxQ0yPbL=dRs{WE8WJYyNpjej88j1t8{F=|1*2;gDmA`1^ zU&D2+t;@KtYwN;OEVrGfjP0IOzaQ1_2b6h7lN0O53Ja8A-v{h;4=*3C=UX*hwS2@Z zN1wqxuZ{TsX!)oR-+sgQhNZ-J^K$hon^)6+<8}0JS)=~et_DrF^~Uq)Phh)`*G$rI zysV!7!hn9mDfSD^C)M|UIc_MO1VXtVhVjGB%S=?wWD5}P(_(4+#rny>UJFaR)p;J9*HODdM8@~mPm@7k)=r<^4ylA*qQGbA;k+sJ z6!09;^$+qRO(!43Ri|V9Al)Z2>GJwG?H@V*aQ$2iF8@97M!g%gKC0&h)@i)&*GuP# zma^WGc^j+8s{ZFv#gG1HQf|KFN}0q({Hff2iX|3*JQv?4@!?rlf!rXvmh~MixB0m1 zY@bEFeoppLV4p;*MEU(_={SsvH#}>J>Wcwcvx4(`O$I35SVz34Aa9^ZdJzx%#RpLZN+C%o?;K|P)j+|fPqL!8?c>G=Mz z#ZOZ|ZaAcP-M)*PsfQ!$?{I&Ns6=<&evg{(!wE&tbx0lb*Usj6U*N|(wCs=Y^H!D1 zZM;wR>wELk98RwiU=T2CJna-e*BP(bqjdQ>mFOYT8P;+id*!`sIC=WY%n)EBI07E4AESZ;8EVcD3w_=Xaa$m31Ty$7^;o{vpa+IG!C?JYg5(?=k## z?j8MPNunSx|Glkx+#U{l&Vl_;c0UM8UJOn!pWOZ&lpFPo+{L>!9S?6oRFyqE(!1fu z1p(+?AnQTtzUSkLJ6*3Z{nUGs^w@srXs^*d?74RKLy^7vyGjZL1eM9pRytko(|rc7 zV0^}|M>%7&>%DzMdyN0acb`{7y{;1s@dWA}?`Qnn*?bY3R(#)Sdg=h>-|ruQe3#^V zR-c1EzD|&x2mR@Jq6hrFt6}?i}q1} zg*9kBnem9-%h)fkT%gH~)b3j3dog%`^_tYL)oap^P!6ldF=nS(eol|y>lFF8*6cAK z2h08{=I8yA-4`FtL@A_x?Eang^?Z*ovib3N&P(-sp!`V0%((SCceIw+?U<1p9Ak-A%9O@Ds;So@zGTh zAtzju%kjCvzRCp4kt9`@+9Q_0oMmriZ+LiTc@2 zW(%FDH;nhziSO^LRVu<%ap}Als1W^EVTT>c{Ty(9?~Lo8qMpVA+%o-MF8ogAt5V^5 zc)4KxmDeNHzRq8ug}A*DFFT^?ykAP}rwODR^*%@Xsi^O;!pZ%Z>JPk4vrXs0_7Hx9 zu%#rQd>y1*Fukyh_MYoq)ZZSdzxl=&8E2dX#;jhIY05;e%6c60Wpma3bFt`Gw5M!) z^>)8@GJAcmUyM`1>Gd@wWD|7Nn0(6o8pD)_F0w!9lKY$BT(9_f4Vf1uA6(xg^KPbJ zY`xm`vG>>BPTa022I)NW=3Kk~dS|BHLukaImE&hsyBE6%F0p$?ZTDYRco|2jeLwIL z4T?O}b3BpU$A9v7_!3=f{p5sG8uoe5>^`)+1c%E*w3_^^elM_5YFgk-f4E%^Iar5$ z?zH;w_XO`MNi6tJy2A0(s2|2pW&5s}KFG||s6LS9f(n{dJ6ZKX+;u|fhJ3>%_h`#~ zmi-cr_VasXD?&0~TKg2*v7!cG$6{QuPvU(aHrgrm1obE6FXOspoTYs9dQbQ5_9$35 z{;#bZ59s|@l?r-SwEy?2@AUflCCJO5d%=VrWEmFP6u!T3kKPNGr2|FveG&s1{$%g> zZsB%+9w^nX;l5((H2|C9G z^0FQHJ5@$@@C!Oll66TPU?=ze^~gtY5RYTf$JURayjS9#*L}yS4|}Me^Y&9Zf6*o_ zUFxHq?L2OvzKq(bFXX;*;%TQob2}tzM=B|Yox{xb51*EcTe9;$pbvB%xLo+x^J$&8 zD<|t8_iMSLp3m5P-g}Mif3dKg)9QKL!VlSZuBZ6E$V!jzGuy4-Q6JimiQfu3@3(P7 z59`^-7xB*Oc`M~-pB7K&sdj_EtoB6jMSH1tQLfhr>!MNljFGw2bFSWG-?GXV@Vxrx zr%zW5PbzoMG5-9gmP`5vo4@-J!_8b5kNUpDu$_O1_CC(=GOo+Yer?Sk?F{Y9Tva>u z{sD3&|AKg$5GKy;rp|F64nR;i?g2#;j@zv#id}x)PJ!G4t{A*p>5okh<;$Oy+b_v} z-m%N=kI0uZD7QEKerUN}aXIAn2JJsmxn08id)nErG`QSuvari-#lkMP+bsNu)=#Bp zorbsC`|-ocZM@U>$(cSMV!rjs%I(v}B)6Z?a^~wTE4Ot+%I!qskIU_DEoap0a=VM+ zL~eI5oXBmrhKqsae<`F8?Tr0K`#IY+jDD*mzmoMI3BL_+eT4J(qocVw{Wh0!o#;2S z&l3GMSJ5Z>4dVmVC*rrtCwVXFBp~87gYD-mpHy#T^oZ7v>yeE9_~ulUi+XGLdF~%5 zK~?xo@4FoYJ#z22F&{yE>3l@Da0dD8q1SuQ#OAeFQxmmXR99d@wV>^_4eg_ z2n!b|oYxEF9{impS{ei)jQ#BS@v-cGRQ~umn+`j7Bl`~6KbT(b9M`WioYi{#WpYCm z?GRz5)aPEMW4Q8zzLVd5GJ3p~dg2V~@u|b;@!dRk1x=$oR4JwiJg00Ek+*UxEj6T0`>yJ#b7n%i{@sPy_B^VCdxU+vD*vZ zV>!;Coc&Pt*$-vsUcCfz_CvMPQaO8(@$pAo=S$>_=O5w*m$Tp6cb79AZb?7na&|($ zk0xhgkE&gHChgq1G0E9SS${oJnc{qWl9jWm$Q=Ur&P|SF`UTRB!&|? ztJiQbVE(@EJ=K3A;NqfQ_J8U6tBr3GJ?U`A6<_td`2))TYCU;U$JLNyj`L1ydGhTo zE5CO=DLwi2GcLdLhZ(2+Vlm`*er}xh1FN4)bK|r{xpCT6xpCTZ3%mR-(C}#T`=_vX zAC|3{qmR=%MwQ=(P7b9fx8&q^vz9ZJ-;E3>^1F`VM1EImSl*4-{KIkk3r`Vwg*;(? zK*s-+r!nZoQ%_2++RnIKtr|uz9#FYjrR^uxi}xGft~0&op5rdWBzKp z(AC~vlE3m^?o|58e9%;mo09pUsiq%&K4>ZhGHTc4a$g<&VsM?(J(h98Oi3c|yr}$- zq%S`QJABOZTBfhs7brpLyjH7)eO_yhg{kkO_L7BZ?`P@RKa5@Zvc=Gs`_;}#<@z!$ zf7J7k#>Yv2|9%U*Tz}ZYF4u=G>~eiT!=uUdpF&^C){!yj%YW2zX8DBiS+>8g9a64O z$cRPk0~u6+<7vNtT+5rv_c4YO`98{UBHu?eTns)oBpuoQ_U%tdK&9~A)JyNb+X<<$nm1}u#RC~ufh4=Z1_Kr(5T-mTf{b=JN`kOeh72p2^ z%dwO948#pT)9}`=->BcQ@EhvOc}T6#4x4u$ZvG@c&ysDQW1W|}OY3j9<~#iQ!6Gd` z+A%mLa|Ie6%R0q3o|K*PtTWyoZym<|y;rKH(sQfIN7^3WrsaxywrhOa9`CZS>+`!U z?Co*4g}ps?Yk0Kw_@}T_UNNTjSUYNaylTky_(J24kKYbyIn(y|2*XKxJiu_$9`|Ti z-hXBOW3Y2y_N4Ur_ekFv)aMTlW9MG2^7EkDU8(%oI}ANN8lTF~Ll$=VdB25SehyjK z57aUa7@dY%Fj`T6Ztv9a3Vj4H7w(Q=067c z3Gq(BnC;02&ba(c97cX>RemOFc~bfL75j^xvo$`IpYts2^3!Nxm!CNncKMm4;XjA` z;I6jO?SZYM%Fl=8!K3PV%8wX-T>mW9a;Ear#&9A(3m8u1r&YtUKY{g}*aPP)-b#mh z(*Iwt9b5&Qyv3Dk*Qj6VP_-rD)fU#_mV~d>aC?VNf8yM>_TTLt+=Wru(4^m^jpxwc zgi$}%tN*`e58SEsH<~?g8Oveo+U<=c4R=hTA2r%KoZScD`?`~N!5i6d{eJAIQIiMB zy{@(&qZqtXKe(Of>m(I}FBhK2dTO+KD$qWwG+I3sXwOv|Sx=!_d9YueO}vfIpud;( z6`yP4;6`DBIKMYJYQ*de!lXNDw0b63u)cPqe($PXXFlblt9H4CmzvLgZS8aaQp3Jq zsa&XNIo8+q7##N_b=BT&;k(S=u6{9it@@tc@4L;9!+jrAm#ouaMDP0ziot1B#7`zY z)`yA#*WX5;ccq@s)05_>EwWcCQh{c-aKvqwDL4Q79+8W26@=}za;{U(?0XO`|aJWzoK69ebUW$GMuEl)%4Vla_OGP@#SkdzI@5}^4(mz*}3w~$dzxZmG2w5 zbdToJJ)BFo-_m_0m+ou1^6{RrC@CNBH!B8T$fbKpF5P80zRWki{BthddvbjFs~lhM zG`_aY+`i8T)=B%Y{e$@4ppg2fyBO?N`3%RsLf?%G$JJ?j8jE~mKU~`Gb}62* zjGLbQq{dCRE1}7J-Wk~6bqn@G^^ytLzYF^g>xVzS4CAI-RIXFI<=YyLdLs2xyJfqD z-EO(d!fvk=z5AjwE;r8|MsE5qgWNn<%ah8@dsyC{x$38KbE$=0ZWdYC z#NJ)5VLz|n za+Y5&jXP-9NPkLsuzo2I=lk*V>!qoF`{jQDK|0TSG)M1|9KDBg^d8c1Y<6Sp?~Od4 z^u<>yc|zqfrc3(a4Gbs!=?x4g?PwLldu^YLy$hSX^Lnx4{if0%o>i;%Soti=*Y=J1 zdu*5|8|qvm_A#{zs`Py1Vnyudc>J7fc-DN~#~v@+rF6y3w7261IVLx9NFC_nl>-Xj$zkQN2xhKAZM5gDFuq$Qo{&Wd;$LDEuuztLs zf0YSPasDp+aB?8?TZFq#z4UxiZl7&?6UPCeyf=l47~n86*(V-P=w^MNZFmH2Nq(Y! z`zu48U*)*6+Ad*z`FH?!Hz+IyKUVyC_-wf$=YB74B2RwqrqSdn8CM+@Xq@lydvi(} zj+?i!9QOW4UJs%?FTlQF+ZT=d)ZpTVbxh~yS?&B|K7HIwy%;attnk2hix@2V`E18O zz3~N#KaVGRh(a*APlK2KpUV!)b<73(HXXAW3UspN1qzJ=;AP|@5chp;5KT8Cz z7%WuyjTf`ynrHwwyPAW2AD} zG2hZ9_lH1O#i9R0jaTu%Uq4H^cPl5I;0KLxnq?v<<= zLNAuBS4#14K4v65zui2Pe&sw6(y=Gda&`OrmvJM@SqwgDd_FgTJe zE~Ne_cXB@x)1BR>2>l#c)Vo9DCpIx3zo+M*pC=Q#;8ux`mXo$aQacuT=Kjq8&HOz- zD_7JJD@_MXA#?YwwR8~M6yDg7Illb`3dDP8_fUOF$lmwdT`d`aH#yRxM4*j<&SBOJGe zd>D5f&o|1)EFUT>S~Oi)D62ovuAc6f&7Lcb7cNk`aGnta#0y(B92OR7f_%RHg{$@4 zX}qkYaM^YZ`jUGin=C(x)bpoWIypxm{KU_eCPp9(hkMiD{JlJe=PvQVh6Xa9}0l(GTIL+{@4MOV}OC z?{+TogNqx;Pd_gjubHFi&|c)yte{+%3p^)1umV(aAN4-*onGv>z<5U9ry?GsGj6c(KGN&uiM-vd zV7r4{g9Sz1bzg0tIG@sU(%_!tKTkciWaY;rMG>B zjcd{1aPmmhC8F1OKk zML+1hgx}sYRR2%u&eQMpoh=7A>GfWe*;A$8-a}63zevB|BZht(fN~$A!uz{5Ya8FD z1ZM53Ln0S0uh9X@gWr<_xxE_WA1Qo;rqn;8zYi(i^js2WG2DJh$0=hk=MvCs@-6G~ zia$%|dopxp>HAc#%rEzlILH&rvsBYZebn11$A`pDAH5u$r}6h^+`fjMC`lG*&+vio z<3rZ#I{7N)IIvCg$9eUVg#Fw((*0GN=*QrN5<574yT)It@$t@$q~GkK*;1}n`I3xd ztzSlYcWL})gXcVGGXK-_pvL?AzfsSA3m-N3hb>IGs`Nan;jInF`8`t(Si12})_bLg z`QUv`At8CMX8=k^9Q4g6q`n5$Go0nydxqp&rvg^C6CU~oczymOvibbV*;gq*SlFt* zzYCs@Gp1R2IIrb)CHSP{4e`lG&WmN`X7D{Ft6Ba&)(QO^nep0_8{^Hc9M z`nri{4C9SA48fOlyy198A8)*N2s~lH38?Dv#t!nUQOV7;zpGh3R6^<2 z`s1Y%9!h^q974X!!CU@pd}$t$FC6E){z~7E$;&HRQMFw)lsy1>Nagk4xUSuMiskP! zc}nI7PHKGBI!n^eeo@n-9iGUIbN@+}7}NJ%NN@VSi?s)P-(~IG^_tK6`Vxu}bk*Cq zN9O+-X204+PxSir3Xgn`=JNf3j?*hOHXfJs$lvYFSv4(+FBva2 zQ=cKM`82m0zBo|5?OHQNykT+fAq2M)c)+vNX%@CPoMH+Wtnnnymx&6^c(G>`J<>jsgH zcjD%C%(tC*AQ#IogWU%%z^=JheZLNdnc1RnVa=NfZ+sc(Bp%GCWakgOp2Fhu6`;TPM&3(B_GldFie@r>c3n*8 z1q2^T*m42O>GLwt9@2^X&*A*u*l9AXA96l`X0X`1tUt&(dvu!*IB)Fp0bi7kWH^2n zgWI&8fP1CKXFEOx*+LY$JLYte%s&xdv_c3J2m4ZraXJneE(VP(N4tJjxqYAX zXXW5V^5w=!{NBUwNDn@^TtLnf7{`2$FC2SCECHa4g`Jvu6J(OLwn&qL{rTa&pEoq7Y&rN09zeFeeTQB=Kurgi@ zZ2hax+Jp7GzCP;vdt(j{1m58Gv7Mg@c~tq!$m2TU(@668RT=2`{LJw3c%_t1^mC?u zyHURfT3PS6>E|GNi1nPkN9eYHllc{CUs*YiY@Q;$M~7P6?b>WUC=crUDR)9onVhtX zfQc&x&r?4O54r}7o-7>?gAPeHh>qUwoZL}S`uMAB!YTdUHQ}WBC(J)?{xS1ek6rfe zM%M(=nb&WS%Qm4H<%x!rOJS6_yqrb7)p7}wLf(ti{Ilf;zlJLRgI^h{{Kn73E~G;6 zcIWp@h6O6}vC!3|bn(8XsMqAX&*)FaA4in#qH3qHl~>fJl$ZL(*QLP6e}AFKr5OQH z&vM0!`0q*l#LbdOoUacY+)TOg`TtcCM2zz{?Qb|f%a=Dhzah;==wZ2{-p!hCR8`K6 z8lN9$6@wLoxA}yqaRJDb_tk}Paefb3QEp~}OWp@O$Lvm#BRGdgzk_nbbD2J}^AG+# z#rI52m&eyN8os`zq}T8#{e#h)mp|}-oc42+uWG&WuYXYbN0EOtDJ{eEatkrQqs}NQ-o@}Q*KkRriGag-M>Cq+oe#fz|*FHjd zX+A`M4cm#^FE01;{;_^Xx!)~vp4#=vs2hbt&rEtZ79b|O3$&cAT$$IR&N(xuC z&Sd+gqF&Mwo@MV)o;A!nl>Myl%4&`S{odf}^;y0{3I4;9jruIzFz-yFKFCk%A-AWX zPfyvank?+@y zga?$!c^B66gahhF?aUPAD9KOM?+1mI)%MG9{lqci%h)eqNip~j;`e*{r?g3|@ZIJU zL8o*Z3L{?TJ&Bho9NIfd?DLILM@i$O^^~V<`#&xSK=)6v|EceU<$GNHRKHq(Z~JQ_ zpQqYu^j|>vP3)zMH9IK>>!&jBIn3YW6YIsGFWJ{M@45OttQopK*H1Wc8aYILCzY;5 zZyLS6A0uv5Gzp&)y*GvQRp0wPp!h2DS~X$0hWIP<=34ltKkR{gJ*0LY^+|T#_C66n-xn42vVN+^eYATa-)Iu92YlZT;^m*jv;A(J z%yysG_nuEN_^Os4`g>hYAI~>Ey)+m95{dVFseK$9%01q2QHAn{{D#}F_0l2R5A`|d zU`tYT-M+3AzcKwjX#UT}(Z!%m6GYog4z|-z^{t(IxQp~9`<-tqX*%SKc4@9Vtg(5t z8qTBPd)m7N-IaUESJX4wDfAi`IjiVEnE>X-`z{{!4`ey^>Yh zZti})#TV5F9U0f{=O@>Xs}IhR4{pCz?!HOE{9S^|-J31^8_N6L6%EG?)OX&GK~KC- z#`{qZ;}1?^sb`R#^8Q4draL%^g!ubFBhf{@N<1UMK{NQcI3CY@0NYt>%qupnW zblY-r`>pGwU#jK!B$~qlRqu~i_6Lue5Jq`(+S4vzy-~QTY9LFZ|JXk zs`3x@9?GXp_wf6ynimA;%TLfHMGtOjVm$QEtFHa;x`7-X(3f!{cSwbHhTci|maD(2 z{^}wH3w&PQ=P!Lf8Tj&{FJWGZ`ojBfUw4o8nw@dhvlNl@<=~Y2G&}%?iko42yo#TD z_b4Cx$K4)aiss-s_bPnLR!iTi!NB!XIk=VcPy8HAG`ySE5pGrxEB|g3z6#5NgY(GP zmM!mA0GF$YG!KG-Sxh&>?|qa8_9@f3a z?5Ym!=OcUPta2Oes<39A!uh#5=Lgo^2CbJ0-JmqA;W(hb=DLyXrjnx7a>8zEDY2Yx z7nbGzRybdO#(esacGB~SCtkK$%O0=UM&I`RSJ_Kb*gnQ$FU`41^eHMMb%W+b&}53b zJ7+9*)k_qM?~_RFs*Oo|@NCf1<93F8ze3)wf?nHsBicFBd%J<&b9?IT@*Uz=lK;1u z@ALe=uQ}RFzLi~X-)44HO{3N)_KWP3w22*chXlmAUG3*K{G3I?f2$8)_ZVrs`oRr(GP-FU)X)=vAwI}`?dVs!UmBq za4_0;jC9|~em}mEcBIdj#Lc_(`wXkE7y0{jnflx%1i0M#dytXsFNFOIzGB}5e9(V= zr@(ix=+Qpr=jk^HkkWO4{k6BViH!zt>lMIrzP20c3AbON4*ySg*oc<0))qK)i!)J7$-J?CBoyyO^_h}*whjxy7@o|LjI|F^4@*nnNhxpz< z`MWE5dVvQ$H0XSh3=JT^S^L%XK-w>VfaUOZw3qUftm9q)Y@(MEJK><=}q! zXRCzH+E#^+?7o3$y$~V}^urZ{CF*0G3>V=sC~;lm?3{CFNyF2mBQ(|^+#MEeKEBBL zc%(;rs4TYmBIDmG_!5uw8Q0xka~|bNzJn6ydsv*I_3!jl7E=%A^Do=GvwkiL<9;1q zLg|VdSWLga7;=0mK}f(Ri=S09p5selC-T2(4&h-Btikv)hbK>eYA=xIalz`v>{jp( zt{6;FfAsPG*$Ou>RlPy;sn`b&`MF@obIX+b>63*4;u1aT_gvdNckK6E+dgr>=i2At z(H_7DpJ&hNxdS=-@a|Q@U*lIgFG~9>UiJv(cRS^1r2gi>rs{q%wAn|<^C107HVQwt zYB}RO$Zx<+&=~!b%$pSh&L>89vL2!eeb9q;4QTN)>kYqF1PLFUe^E)}!|~VCJ{$ik z+GjVjeCav3)e7h1YT!}3jAW`l0e?fg$F0Axl6Dy)&7pnyy0`0j*o!)!C3M62d_?lj zqV=m~Ki@{PG?*s&4zkm1JkfG1 z?F@N8khh=WH3zgVAm8mG4?a%ueFRxMYCXR96MloBEy@2|%rEPxTl7zI{_H}PXFnGO zdjR@AdFODq1jKp%S-pK!1Y_VLe)n@devS}yp8qN7Z>*m#7iKD8zW+Hm`2mghcj{Yi z`)h`qhKj8U=tbbbfMlL*NGfh`j+jpn6HfwCthIr zH_{Ia=ji-RQMpOGhF|n=(w?BtfCBUH5JhiKkaOf4TYGW6;qzh1{FvEa`F`2?v)1;p zVqM^3!SCyB151^TLHZE&gL-(o@FuMXAw<)0-pAK{e0|B+1LNmY55yO;Vfwm4F|c`$ z9_EK~sT@GK#SJ9~-~L=y4%n-EK5mCZy`~RMZV#TbPVu$8wL|>@6jt1fbLp4QGI@9x z!xJrj(;|i)-s54Hq2vcI#$VA7>;`n-3F;-;-)iZ-{j_YSAWXDE6 z5?iKHv5mz(`Rm>kP6_?q$5^U!_;J@Vl>PxE%mG>pqEo>5!H;wNI%3e17`i@8a_X- znA#^CkY(#nQY8Ai%097u5s7`0yPquTw|>U#INwK-@7J6^YZot30#o~B5$U%2%hwO; z;TGv)(s~f%Rh-)eK2PWCu$A+w`!}8&r@r!grhxamuMs;pso&j(_b~OEtxsp^Ie>o1 z<;CPGvUvsId+1)s3;Wry@V|)9`*U081>Eg|!}q)T`i|qp_mwi_D%&|A{|XRuwPAs28ye(-cYP5}I?1@B|Bo(bpQ5&wF@lcy(}?t{`E2gYl%LFqnN5q#sB zaXf+jfa4vke}AU*&XRmwemjG1Md;&{V(=CXXZfxDzVSQTE_Z)6+b*e}-7fKV>GgbY zGWpYT&ko|hK)sBeXy?<0YnKM^?KQCzFJQSxvlCnHrWG>L^l{oACk(RZqWxoQM_#VA zi#hL~+J)?w^ZY~oP8`&JNOv)KvGJesp4d@7pF6C5|7L9;E^m+3wkV#Y->apekkv2f zAACHn^Vi*)MCX%0KOEi!P=7IfKaUE$aL5mk&i|IhOy~Sh>~rHY++PeL0%1NHC ze7_a-Qcrk)0RG*yLE2T9>4p1QPx1Zi7ZSa5PPN|Adk1<+1jfyfXW&}^yEWN2d4m0^ zFez)VPM`M-O&Il^((gsx%^-Z5M|`jck6&SpQlfzO$5+sfBWDyY(d)(FO2y-PGwNmk zTA4|@eZOMdTzx)D+hITRbv+gJnLf4s0?7aPgJ_p7PvlR2oH~6TsVmz2RNO$gyxcj9xI6t{y#(HU;b&>=ZQk2Bio(?M8=22pFL+m zx`$ZDkp*7h-`yzmJY?^@^w|3@y?ocDT=P6ZE9JbA@88TW1i`;bSn1j*^xv(Y13zDk z`0J%#O8P7Np6$=RE`>?;O{D$h^t`d44mFksde!5d@ zQ_@MFr|GxTM?O2AFY%V|48xCgV*CW1@LTTY2dCTnKVK*G{kyI=Bb$H7wxi8LM>?)2 z|B(Mzq)j-U$j;UKePEC)_5q&y6S^!-w});hgW4)@BXI6V_>YDy?a_eFDhT+ojg|)Pgu?T zTSXYfMV1cxFh(lhz-r=+E?K8PWS=9;b;%kF@3OFLz7iL&*==Dalz9N=d&zS9e!#*@ zE&Pav<8>O$@Zm$GzqyU@7jGu~vTlYiCw#(}qRD5jo_$?0zJDq6nXrxN_YsfZ3!cgW z?@Nj<-liEumvpONY288p(!1!--Kl5=4FE)7FJEDX)Fx)7FJN ze=GKz(zSJA$-a|M@xo~qHa;z!M80$_V0pUg8QvKXZvP>RKgDwPtuwqox9~;_^Ih?% zZ?lC@+V|z^#|uwbc(sL(Te!`_$LKd7Wqj{a3m>81Ks;L;R+7H^iD&EmJRj%nW$T3H z{Jw^C`TY~J&xLrFwdwb){yGf()vN5+`z%zS^;uZ@rz6sTpnb|u)kkl?5Ox*q59sGX z_EaO=v+tYC<^w#?XZOBZ^6N4D02&&Ip}!auh;Lqwz9xpzZsgSDfc-4?cX)U(IJCk_69`f1xRj5GQEA?st5c9*=P zW%;{(6wgKp#v;dGXFh*)JF;`Oe{?(gEc5^WdpqjNwWFRxS}u_*^&wYdZAYue(60>D zjy?ss>shUOY54x7QRN~l&)$yu*J6BpO4G*;w3GcF9G?$}8@_4fqQ3HV-?-r`7Ek@< z5tw}VmW%% z)BYFbkp5NipdDT+8-*NSvYuk=*Yb`4^XuJ6JzmwXts@_D_nQyJx3>u2Wc;r9P|u}| zz62d}WJ)`f^?$hG&uR7PcOTD;{hXHFzf{+){Xf#nzY)%9+5Bq8o*#5hOY8`^@GRQJ zz=s)mY#Xsp_}txp)|Qd?8(#o0S)&j=Khph7$-LMS!ejnz(0Y;WU-R|wtX{8U5~Zu< zT&})(zm0LJ(k(>i&t*Lzd5tzN;qP4eI5=HjI?DDX_3RFOi5D?6V16<#mXDw#UUo#& zK^_X7Xs5*E^P1W9r5gDzQvg9p{`-7Jp8vk@p&T&7^gPyOl1lhKKDUo}t40rh9_wCy zpH(}b`{kq_3KDhG#f)DiVLgwP!(-ct2qbdh`%;Sf%C_{^oNgV|Zy$$#^Zv>5$!|(mFpGZiMb65*CqUB!hrypn? zoF4nNVXydkw24xWaGSs+akC0Dcn(W`3+v?^7AHJf?vcwA#7&&9-Vo=nN{Scy4(a^- z732Y|&+~Uvg?P$#U&@Wv2#R`IR^+U`UIEV3c`N7B+5)7U^jMJ*><(+dJ;~SSMXJuJ zoJ`tFcD$3$o7nq3qF=Ijeg4Pa1A$&$kkhMgUMcmlShFAU{K`?;B9xtv&Yw&9BEC~C zC+!0BrFpm`8902;pI>>Fc0(4+Y{pRxaN zP(Q%p2)$P)^gxg0+fje*?veX}Sw!@wJFnZV^5yHSkds0E!jm|!drV|$^nRgR3sl`N zY)j;vC1!u=?a=orRP_sMHfuWc3ojO(#kw{Ao3!t{vVvzU7;Czz4`gAtbO%}^b>J2%aN@ATK|LbBk~8| z)?gom-5(?K6D+^2n@4*e(Qx^!8#F)HX9uTp-|#@B(ZP(V^kH2}(cE=M{p4qVUAvvv zmBWqVTJE*uq#?22h-@ZfY#|wErGJ1&h=lABs7a5)Go`rv` z?LW5PjCwx9{2C50|K3k9+`Nb3z7I3Ja5uwy-_NkWn>fllk`fs>m!1ua9 z_wrnSeWx^eU!O()m_Kj&^)>Q+9`Ov-4atAN~@)H!`1*`s>dK+!?#S zYXS57pWX)@`FYZJvjS01(ri?w#JlyNtRuk{gH`%twp6Dyr@-x5^o_gZe=O(d#M65; z02p6Ke9?P=QRL#?CH2GN*|aN)lk~h!Wi#~?@F3q+@a6w3(MG@%7HbWzUqTX=SlG=) z+wIVP^ItMPS?~IchB04}af8l%Vq{kgN?M+<7#lrZYUflobALw|Y}4ehGhoMr#TRI} zzj!n46O&IwqQytD)(sci{bz}N!f4?S^~j?VR{q#I{AkY+>EcjflE-$#f1 zo+WMC=hyP{d}|xo4zm3$@FLx<(2+ zqV-xyy)>}>dHqE5HCgh`%~198=0Bo-^8EApR+rPE>gAM((s1=Mz3~gmzhZE?5?q>ZQ_+h~({|B7I`FI5B z-;VUAT>QJni^_it0*Z9G^eBgjmzM4HY3`%^z2L#VIK(IWOx~l(g+J7D!21FzkJEK< zo6FxE1*7-S^`49i46UW%s%Jx@ytxlbX@3*#ybGv6E?s#8lVv9-s(}xMY2+kzwB- z26_5VQC;31CT=G_^h2Qhpy@Y+;Z|9^%T=_Oa_Q&5lW`S`%|s%HZg)feo-VP)0IgN{ zx?};v}1l-J|3E_6GTe@7|x6 zgMZZgy!}-gcgR=Vck~>MhrF0-L3Fp{i5n42<+2!jkMITAcb6MKOkOVI5{d85#sB^l zjNh1x|EZJLD-};x|D2HZFTbC`&oP3o+ePF+wi?c=h@_6q~ zSMu&&G1yg=ey-5#>4!>p)8ERtVBB4rPVO~Vzq4*)P!f7N>#o-J)>-$_V5)?}y1QyH zb%OHD{`TN{5;H2P?@;a&LYG(+%_W}PtDv6fU6Zd|{ek}Q6zJckfSq+~15Ckm)*aCs zVZyrRnnnqSb@$cG6d(B)pBS9~9Eo>%L;ir5d&?D{@1q+oe;?-~{d4{sbZpRcoplWX z^mb=mr_L*db$7@PAm%^*TZ8j|MlOGj&(gS&_)p4i@L@%>80;5_5QErF;H;lr`QZ1pd%fjp<>q#jPo zY5VnKQJHYp+YJOo|7w1dszN6!1@Ow>8zR(przf<{AbsY>ZUw29>lp|IP zAgnu~_JHEg$rXD1EPl3^Uut^C@9o9kqtD7S3L@{@DSTM>9-T=E>u!`6FeyJ@%asRq zgXiaZU^ssHzGT2R{}O!rf#q|*_G@9?2Dt%|`Ft-|u55cr>#tkoCau418t$5~V^lfa zW^&r1a+;UB3ry}PzfmvcHu84^_F6w<_E%hWf6iyET<_4i&9LrZ;XEtX&RqM;>i4u< z|8u$gKp*(~VWZ<@@J#s?)*Y3VWAgVKIXappK3|V{djQ`*_&eZzpW)qBxIpoKzc9=2 zw&ePcrXlbSCm+CngZ2|tC}G_#1<)1NeXsB=!~eHA{3w^xeJ1%=z6a&JTdeS8P1t@9<&0746krcY2r`nkH!VaY?p0JDln%(phIoPA&R1OYkcqqNFBU67v=>^c0ug{_Q{|PBya?Z%+ zb>*H2_HVxbdZCR^6a8l6SGW7mr5=oZ{~?TEam9e|$)8F6@$|buZ=3SvOyWJQ`s0!_ zj`vq`F^J5^D_*pd6L=r6SXap6e~cQjl7*nCRE1ACbs z``V9b|4e&eD7k*A>XqNA9E0yQx$bon~&Y+UKzRx6|8s3e3 z->3OT{?6`R>Zg(FZHmtK>}NWg&y)Rn7Pfi3hGQ0{zLoQH8g{*odHbU>Z{zul)GwZ| zpJ}$47|krIp*6w%80}8WFJ~~o$Pb3uHNTT4lYpy@r}nce_6jfi3r~p z8QsTmQ}kY2huT8B-q)+M_y+`kd3>wxf7&28O7i~}^L-zYuQx_p*&jw$ezb2BnsyGP=aZ8FNbtk8=tglGMlZzJDrSwuk&(NP7YMk>KRqsm8CL zz<0X*om;=x+wTtz&zhm|z8+hdO$4***66#(VI5{&WGzPYZmamdPjKR5jZWSN@${JY z#>%I!_iv~J&0McTin!VIeb*tSPv)l)t>ZZT!9U6UG`J5{vKAZ^j7o)qk?xy$o~8hw zv-YpQOBC6?MbUod7umgAYnw28gmL{5rNiy*sE_nvof;p2SBl`S`(V>t{au~kb2Q%h zGq8_IFmEGfsf^Q)Yd(?5HTM03pMDR2^w44B2TCh>N^>c}_xTDT;<(_EbsL5Aeeiz& zWmaA{4bdJ_IsK)kue2i*5TtNY+t@lAW3KVqTGJC*z8)LFYtYMSU=WvHmQe4 za_iUFqlo;E*%JyD)*1keLd%gO8C-h&R z`X|x%eYB7A_aW>3Sdz2loDnBeA;GZK+&Fj(E$szx6+4Bki zAsYys&RMnG=?1#`1A%d=z>bqQuV`HzH966u2q_@()e=iBK0dx zoaZdpUZ!E+?^S8K+R~FDvMx#ZIj>W{U*@qvdh*_4lWZCj7uGha{FiGl(Qu{d_3D>v zsqZRHH(8ka$mee=O`A3TQT+=%CH>|7Q%W~RA1I&GJ;%bNw_M8#i!KnM7Z)|XM*Vo9 z>9MBkEo}X3(=`@8s_h=-M~N#*Ilq4z+z2lSwiK`mj&l;+*Rx(%*}xa} zgK7CO>khiT{M1KY?s6^h_&j)2swjNa6saFC+@bVUnzm~=tbMxinQ~rfx=rKDwQL2I zrng#{dfDYH_IbOe+YL{s{&3}6U)Z7ZnJ$lMK5QRpKJ2e6hPPb%E2TGTdYj^x{WKQ- z8w;PZFfqqAeu|pjY2VqOfo{}?(>>6np9AzmCB)mjq|a~4d?oR^-Dh@2{H~!NO_BuS;u`wVB&#pq=gDaKu3$klX@SAhk0!NRn0_>A zj)mz*lS&pge`TA7+e7lDZ2S4w*D&n&{~-){jY9Gm`cY_lXr;+VNV$nu z(%)+DrL>>BS@SKQ#e%G_p`P`A4`I#k+-(XMFQ(pz=TUF8pRY?=&z6F#=B1! zP{@Hahttt^UmvpZ&UTJ>l6l`A;zj?h_fn#B6zBb_-_M(UU;3=y3Eq8_W8|N;yQfc~ ze)fCqp${{zd!U`6ha2hl%eV&V(JzDUf&GlfK3^FopKiB(^PRFQ>Z$UnvoKlu1o+QV zeHs=hH(}w8%74&P`=NRwk-xC>FrQKkx-~A*FNytmyT*4Go*p2ovv8sA#|jHqaeqnS zreuG~C65lqi;+<=xY^P_P3@ns@EoxTIW(9qjKqq; zs}w#gJX`zeP~K5FOJV^3${c=ZkfPj33>V7o1Q9v$m#ak!_&7)ZMe@BEyaM0?w}AGy z!2KeJ_ZbRDyCf{kR|^36Hhy?0daqD?`2N})9+qcO@_lcPo>237k$&&2zdUG^U!C>W zYB@UVxlgXMevk5@v;Jo)UvAfi_0qwJ!@8(sE#=w{FS)-8?XPt;=7-oJg1(8F{END~ zm3%D?NjL2?q+6az2YDvnX`kWy?YZ>G_=v4Brps(nC(N`&NJQ4}YV`knPR${9S!&1ble zwEkHIa2|5eB);6IER;|#5Qbd*WEJG%XWFlK)}O5-g3kKZ;Q8{svwo-EKM~e{D}bdB zJQs^!3@%CVAPhX;S3Li2c&4dbbk?s>{n1(fpz5=*{&(6Qfd@4rz&FtCoJ2w(HLNH>+L>>mR3Hl=QGt zWSoasHW%oacBK}y?;Bb|6(v-)BF1>JkW-8uzZm2gPM-_ zR3hCXh5u~OX6X`5{~kek6aHAHqntThrZd>0Tu; z$nS&NA0QpV#o)X0m+25jy1O;qy_Rl`_BUbuBkboS9ozRel5_|o-A+yS4olY=%$E4D z{!_Y78~Gtz48D@2Lm27as_EXQ>B9QW0ZgT^z9U$uenHz;G5A7~?gf_aO`7g4mhN?O z!XN2w&=>oV-{lf62LGI-Lm2tptm$sCbhoH|5Z1qnc7vo75J@+Xq(d0#Ua#pmZV2nQ z1~Vi+tX~zB)c5`5ha^OPHj0mQ8#LV}%kMs&Hw^1L^~50PL=RI8-j8Hj?+7E^I!(9U z(p{%B;(&*qDF*)=;0lj0;MXYp^#*^fo&*K_W%9kKvnGT`81UC9JnyLt>(|pB5%{Ml z{DbnB@CXC`41PWBDS>Byygh+O81StM zKQF=mY>7vCTf{HgdkfGf2m`)Z;h&w*e}TcHe{nk#@CXC`0)@XY!H<3&_%BlUo8&L~ zk1*h$sqiI*2OhK!#GkM6)06lm7C%kn8gZOb8U!TNZV)3;aUrgd(Z1I7{*Cg?CE&ji+MgM#H z4-!=Q_wmwyX*}=81Ak^1{BJb=w+TEf1JLtJjsJBL4|@~w|Ecl6Na810{7*IhWD*ZM z3-JG;@jpr8(eEJsgvS4$B)-k!f1vSPKL(v=Tl{x5p7#eL9(FtMJfZQtj~nr@dlCOl zjpzC?;%hAaagF~*k}t+3fd4m*=ei`|F++yh$o5dUe7|4afu)8ap+@&BB}!y*R!Cp7+(Nj%yS;yp7k-o5uqFwku&l(fNEpb{%1(jGukK#g+*tb^f($ z!im!*Nh0T04DTWJv+0&fy6n8#Aqk`0Ke|rn3YKby={%Qw5GU)?q9A=9((fss zv4zA;uRKkE9IT*~0dBSC=kGjM(CEc&kj!C^e%ky_In6a7_`#1?=j0FV3F{q`GI9et zUUikcJ1O^WK#r^E?vqGym?s9mv+FDWl%e0>wRJjEIbeTZwQiKbD`=J8$G@J+0mf_4 zgIL#EusoG>+~=`669)bNBJ>ZSQxvyK=mew6wdl2lZ!0OEz781K`l8=A7OhmUAa11p zZhAqqoar2XK=8tawcw)UH(R~re!+_DZPoZT#%~Z$>&5)eprrG0evcujlkFR)D{}Y- zDK<#a72f=TI}j`7k?Nlz{$tXw9~OAOZ!n8Tj)|PEME^}Z!YajM{=j{TM)9Ek#=A_! zL;kE1xXUEI^2Xn5dgO;M8^o7?!7D61=Hq@Z`FOsogifSO;O>xsxK&bLgW|7byw9@& zkDy8L`2AxuN`wo?{p;yg`RVVZC+`Q1yIcVhzHcCW!uKT%Z;*P@@|)jTYkc3z?~vmW z`QA;qRpQN%|5bd?;2DwcyHY$O@_n=MUBH#^;w#@ReZqIkH{rX(b;}QN3E$*xPt%i~fWLnf+x=!YPB^ap%NFT(z@aX?_o!<^b$_YrV7Rt5c z9%*kV_us9Qd3$@`saylDaei=4ZvE&5ONH)zyHy{+9)f#p+=J>rDt{3bj+>%k^fT^& zF|vM1_ak)k3*xbV3C`c88CashAdwFS)gA|=uiv&TVLD&mPVOykWr8aCXx*tF@^r;U zXS|bkR@}w@bim?WJ_bzKz^`A3>P4PVJ7wP zB7UzEKB!*2!uliWXH}1y@9$@$f1M#o9+T;?!&1(qKg!@yz1U{`k-#b*^Ib0hkLpE{ zCgOqi6FnyXFO&b3C8iezPW7Vrs@KGa!#-f`k1XF+LMPHe|0~=p6)adK@;@lPiSaY; zrXSY+oAx)pp9pxRSf`WrUIl-Y{ZkLqgKwLMsqYs{eYf24Vg+>jxLm+!7VQV4LaE0L z9<0Aby_74L$3$OB`6MeHe;m6;;Pz7tK|Hty2TdOPcR@kClXwr_M|ylcVqhELCvK$g`_tA=S4Ldg^wvb^baXhI^_Hs^-a3(4WoZ)1I8!M&-pS*Q~+>orj+-<%R@KoUCY*`v|e` zP{2-yVkg4MJhYa_>2kXn^kM$pTzB%loiT1ld;aA@lhWz;zIr~`$Bdl%>wa_^q&VGv z4$!|l{3-zke7W$SN>@0Z_gD`=afr*-?>Z?5_JP2m9ihD5k3jA}bc2KqUu5qQxIDX_ z_IGnDrcYo$Dj#dVb6QxXw>^@cC&;J0>(uxAu_w+$?rA;;7ym%NJAS`+$NAD z&|>gy;_-4piHdW*pWLIlnDHoQoBTw%E|T^Pu`0>`Tg)%37M1kdB|@Cv2bxVcbBJ`I zPy(0jPbD~Le=a21>l<)cx$tpcG5DR9$H%RmB8QEVuCwqAuD2F0Rth@{uTy)jv+$VK zb69wtU=(@*EDr7U{NvV1OBnP+Ze$<2!gb2NF|fR|Fq7+Zg;#NXuJAC|=L!qu%V2!# zzCRe>CdGHV;j{I*g00UL?&A7f;cL1+m!<0ipBjt@nqKC44Nr;dbA?r0pA&jOcUa(! z@>x8!-yI4MF9O53)T0oTV0Z_@S{7QU(L zW7+hJ|9x=!c1^$D%F)F2y+Rk)_X@vJ`#hWeXs&)>DayWeOFxtAdxdQ(Ct=~2y1ti9 z|2N+ooIm8N7_7AP&sTdQEPPw%2eRolJ~lWV>}xrPmZV!GVU)K`{A{{+X82VMJ}+Ov z-}$;O78ZV{c6t{6qn{j{4|;fC=S4cq+=PXv$j*+z`P}fG!Rh8`y7@-md|kf_3*!rz zXUyi;l9SKpX}VTRw}$Ivh3^L!=F(01!QlMftLZMXbgvPbLFa^msK!D0ZOPRi%25nv zTDlId=N0M;VJ_WQb8?G*NY0^Yy0EaG>vDzNy6%uI-?)DsOy^Wh$93MYu#W3;h5K|} zE}QOwPY+H96)E?^S$?lpdm${mOV`P==^p;!;B;4NIzH?e7B+J|ukabQPqXPhpQ}Ic zThwDpaf81@*YUFOhcfNA7<}E} z-mUkzXW1j4j}MlojhgSelhZA%s0f+6z-m4or!lH)V`V{m6M-1~-<>y9e8Ejf99mO%JD zHQ9Rm_Z+@vg%cxFTo&#`X59vIASSHfyQT{6RXI5YgzqQJ;`?S!-?H5=tHSrg!-M4o zLn^-)HH+^vx&HTM3fESJ@3Bt|#)pxvpZCb(dmtyzY#-0B!nY<@4)PDsgZcN;96pQ` z{k%su-{0oy?P7(S4RnL*A%fb4EmKhB9^IX1X%lD%0Mj8zF>YN;~{i0VJ47V?% ze^Wh)(hP=c$>F1Y^7JaW%X0YGUtrWW7~flR_<+gBpIQFZ^!=U5o?{I69aleI==-+q9=;w>E%P4*uEY5`U_T$`_dkK2 z1^*@EUaP|Vc+BsUojw_(Va!{Qp5%Rz9@3S(FJkvb`+3rAxiDXa{JtlKo{MTY4pybm zS?BFI4Ywj*I#bLql*ggBmUP|fCF94aV)I299ErpHHQ?h$hJD`J=eNL*Q}P{jJic7! zZ7PJzzFR&xy}dVYa7g#Bk}i4AL-db3{7lw6U?g|*3*wXY4m2Wh$$U1&HF%WK!_H&- z_&=G?X0s0NBwK!U88+3~!V6OC6K z=5+>@)939u-5>b={TYiCJT0fxw^T*Y(vH7k=So<8;1gFyMTztIi#w62xErYUbbet_ zIj69l=IM;vneN~fhVKf7oi3lJM!o*-TFGx6zbAaK`pM%R^SZ?%;+tXhRaMW6NSDtu z`TS;5&&J23o-ZUm&@;IFWMH07FTa=9=gUyu9}H36*!EKZ&*1$LZ0Fhbd=l*}^G@$- zR)G@e`XLLyN8ve7+9m5#0K~o$Z~*%w;Ai0v2z+*3`7weE09B-?K}7w7cv) z*4jq&f&#zY?-AfUd$fak8uxMGyT8xeW$#U7%dh$O14{Tpb1v}nHCQj(G^_J5e7pL0 zf6;*Q>bns}Pq{DypMt3OfYC|14^G~sEve<6*Q)RHl@mh+4+buvKLeevIINeUUd+k6 zkrxHfDD5j4!LJo9Wu%xI+V zbQX0sN%Yr!QebiM8`%odc|)lraZ$h3lb`SIV}0f8X}ZywoG-`_BWSvPJ*8i6BSyKQ zmUJD-`kVPu?@bc#e48ym2v0wk?J-S1UgHs#Bw{b{yYGXEuVp!WUCH%jp8sKi1jbid zxlJFsoO`{zXfolDzB{*G+b0HT)W>!Z?Pog(3;zhRg4t3&(C_Ogm{0d|!;g9?$5;<& zm9Xza^ZP5(^P7`Y?p$usFBAUwA0(Nq$8cYutY0&{rcL3)vtoRf^QF@$x4py@nH)q@ zX$MCBPRYU&;gWkv<}hsiQ{1pX!`XIqOym&l<$Tel(SZ|$f9N=Uv#YA)#QIV1FXQ`} zPrQ@)7lXf7{)OW=DgBW5!}1II7Bz+Z{!122%Tn`j_>OpdKP*1#X?d=mJ}UYv?w%uG z#otw;zuC&)!+c{qj~VqCJ$4>5xj$O+g^O+f9`Zvy`ub10AMNmItzWyR((SXThxLH- zX+pBpTdVR3a)SDdtbWq^4fH$m!S@-~PU7ZMTF-mNbr~)ncS1v z%X(XT-qZAZw*Jr$__}1g@C5M+|3Dwwm-1EEjQqj(FUdE#r$gZ)!<*!j*t0BGWcPOZ zyA-kY+p*i3edI?x_ax<|&+1{W$x)xx!`$QgJ#IXvew`4d{OTbe96#2nl&|+6Rk*UW zZ}2BNaD@2ny(K^I@BE&4o3cgtMt(cK=}NUso#X0u^GSs(2A2v(sUP8k){llLhluz0!(AWwK7rxj9nR|!_DZ(@jrLG}rcdIy zMdsTz$2?!hjt8{_I%g4&-76#KV#$ZCCH?N}m(gD8xv+4V)^E8Wf+((i1zK4UbTo8m zy7m>s+tIL2!<7{?^?TeIA>~i*)zNg`o;S$X1p@zR^B*gao5)3)kGpQ!N5K3JFdyvG0Yl_|BIV1#N`gXu zkYQeaFitN?Jlf^-ak6it_q!}-&v)qWHF@e|yTSg=Y`w01<#n2m*L!%@Bpq>tXPsZb z2d6JjcQLp@(@hh$eEy%>dj(V-x#*#wdzBDD zC>COOQs2P-MwIUl^YMxIzw+LLBJ}>s`}5g?54?+;DW`t#b=)vX>6C50Mv)CRhGdWm@*HAtuicW!xmXy?oefy zhoRqZxPr03ldbPpSbV(3J@X50%NpU2%J-ne_O)lfOqB^#)oGEsY;i zK1J5QuARj6L(zRaV}Cf^@j~hw(0?`P?_)Tj-}^J~C(YjSd7{Y5=jHZys`BNmoXz@8 z+Z)&CllEr!NBaJgxY_7vENMOXyH$SgotJm|BrU$QU*aFC+^2>pH_F?B^5*IZ{fs-6 zx88c?^9^R_;QJtXOY9%QVVqwQ1kN9S|80Zhg`UCRgPqvKTw*)x;C4%F@fbaTl;nL- zDIVHm)XVlb{kD>X1m9xyg2Y~!$uR8AjO%`Q9z*@IKTAkdyA=34<(?1tVa+eJocVf- zLSdA+l>b&QCT}VKso#g<|B)g1?|MPrAJTlon!na_5@F3DJx`G@SEb41=hB-Lz8Jh5 zWQ!ejSi@285z^m-SdQah&$#~beTMR`rRopV|M@ac+1|r<6FV9{s_ENpe9+NwNW+yL z?srP`Mi0+vC;f8I4;3!ymwUMH$NS~59^97wH$pz@KQg=C@AE=`iIRbycgRLb@AsES~^!Z+8w zb}>Wv4u|jLum-!o;NLA#SVQ~c2Gd{Y|M96@u>D!vHC>V)>fu$HdXV*Mr3-dNR!^hM z8Q1OesIZGl@3D%}aQ_ObB!BByd_DvFTk*y5A6)W$(rNQOuBY1PlHrNG89!a#s^rz|+GwuLgP5Hf z&83_r?Pcy%kR@_WepTkqu+4wDqM{YyJ)Qr;yd>Je0ZHTg&ZGUuRG!27TNE&g2%nw5)%nc384o&2@)LN@ zyGH1jY>o}JjsL&wy$hVxS9LG`n}GwvXdOawfS@C1fB}Led#oy+xm>nxNSI?~!9ic9?9_u0i>5Gx^~4?fs|N znMy}%5wTFuxBe&m{Cr6vnH9bx+})^syC-EFBKH$%y!<>$m>2Ewa`?O~alA(#vyqoOh7@0{T778#khr$hv~GJK$janC@jlcOF0AKT30U-(9w?SLe@x7kE&v zPm6vh48Pd;MXNX0|LZ(ndD0j3JM|#bLvBh=N6eQz-^kx!_X*xDkv;*QU8|*>ZAwnU zd1{Qe^6_>^ysjamXR~Aq9#r~mynz01x%^+V*6?hW;z459taMoTDOn|JJfAfZ4woK& zM#~q@RXSs{dl6go<$a^&KK1$TV1Kwg!|v1edc7u-`&`Y(c?PtL%*Ts}*C9c9`-66T zvGGICA|=~xT<_nIdjSi{5e?^hda+@u_0Kbm&Z$yP&9BX1?&m=N4*Ftz&j>!QgIx^1 zQV!qWMEKZ0@H}x?H(qIU6&q}wBE8=DTy8W&vfPB-MrNPDXFtjFN2%9m*q8He#4PEFc5nP%3HC`b9qRG8!0Es#O;>IxXnA=rWqRne z;ah3=;&Xbh6dRfI!`Uti&oJ;4$9BSdc3D3>zn9)?@rzSlX8i9m81%}&WO$3gn707D z)H^kt}_tGOiIL7^LaXHRcZ}QB@*!6bQ>usMP z7ndG9p>(6%&k7---tM>XY!;}vkb1k~dsc7rgs!;WKC}Kp>diVF*4tB)&Rk@-~QC6xm6O2V}Hzk?0z5>$NBHL zeW0DQee=9|EGIvEL2`1r<`di3@}YOGkLxHuOD{EfVms&i9mPg7^k3n6C-BMF9b|uk zw!g4%)$vYLp2#oA6ZUyj_4QQcyQ~K*{`7Hg_gz|?Fh39baB;M51Uy+JUt(7qefupP z$Hmm+?2l=e#P21big1q;Qg-!O`eK79S8>ILS15gPy|Mp6IPI%2k0$yV_(0zww41}m zw{*b!HEX^}%MPTL{#MHMfvroF>bI1?{^4LZN`I_+mFK+=y4`xErJL*N(+8~MY!~|; zT}2_;su4J!%6v9z4kDl4&+{Dl+-}2{?iPZ@Et2*!U;OJHdV#|EatA(o{@ia@ul(

a~5GdMzY&AM3E}Er#Rzn&?%V-&j3e>nmO5;VW!jEVb@U-Y@1k2AeM5Ajl2nce0#| zDEsag_Rk1MJf!=5IhdDr&Gvk4o+s_%e&5AL?>^ICnZKhT?}{k_Vc*_9)SmE(`}X!J zD6sk4l9K+x`HF1%JcpUi=NJ2k_eu|EzAF^orl(?sUe`<6^cyXn+rQa#Ig}zUtq{-c z4inFt6yBD+*}nU{Z@P@(|J%MVV|p7vgnb*+f6~L%lk&Yq|Jat?XWtK%j9)7q-<(|z zJH9#F9rkkjeSI81XTEeuGWI&uS*s7< z=Q(^8a+iMn?dGRPJ1yMj)$Y37WG9x74#^+u5S@{|m#sE_fQ}nsKe9bAAJ+?uq@JJw zxF4jt-f%$kt*)n-++<-rWsip&J!x2fF}k-kmh=zI<4G1t_L!IBrqfoQTPz;r1mV<^ zoZkTqm-)O6*U3;GDeefz8=+n0G^_t3zbHljjsc-vgr0QrF|H`%vqs_a9L|?NU$e7D+ZjyC!}7xR=NH&UM#(zH-l# z>Y4P2wL7l!#pfa)6dH?9FjBSuN@83E8=XgD9Gk%pDzoc|={EqymOS(d0>m__2zUcGUpj-8g zzaI~}Q4>h_?Q@W)RbI~PGy~b^t-jd(%HM1wxFzzy{fhGy)OkV3XR*n~>zvnSzs&W6 zs{VRL^WnIca>4cBG3DWi%Y(PWVw2aWnJ0R_6cmQ~l;945u^$0)#d-EI>(lui*XL)2 zFQGoWOuvj>AHq;^?2n)aCAr$A|A_TGm-DgHdwqI5)XSesx{ImLlcVa>=;A$PalQY# z#N+q@b_nDc`v0W($bX9*oc?~SmmC$kKo8u-te4z3Dm_XCxqy^b?E;REP|n^_@vQ^= zo~@U-U4!{`xOA)e#c9%Ui5vELhRvdmz>-bVoId{!y@l`XB5<&yaQ+tl@PPb?gB+d& zo@ktp@0bUHg&xo2UHV3WB|h*y@ALH2jQ=t&MD{v=gZ#6{yx)Ev=IMV?%2}PSo8skg z`{c-J)0cgkz0POtiTZoU!4#4AFkkO_h2w6vlky~RS9mAYU@c3*Ug~A;i>@rt?@4j8 z%}*8O{W&cgPa@*T>`JcP?a&29`F?OHY2%b zPu9;sFWUj|M=sERkKq4f-5+B0RPpt=$~;TZ-Ddq|_pax^6GK$YY>@86`IRkhdME)Dkj=>D$9`CdpqCRhZI%VnNkj8|j%s=Q01Cz~cM zQo3N*MXt9vNgA&>wsYK50Qw8b|JLvM`F8O2lhJvE^q`fmIB8chS5lxKc&YgOKG&ur zlF9?XD(8atzfJwj?<3~BdRp|qjvR6qyLvGi&9Z}hBwYOPcQ_*K2F( zMXoU&FVq`Wj1IZ?eS&l#Kci65h5UkD<92yj?oUL$$8v)H=WZ`2zQ^*y^2hNdd2c~) zxsv@aPM^{%ctU)kCzk8s14>u&#A5SVzjz-RJqG$kaC}qKWc7>E{@}PziE_gC;fhU- zR=@I2AM)Wn=)hyJ)gNH+rFH&&CN~4tPVbuO_kIr`7wbPUpPCN3{^~I~<9Z5oG4mKr%0v?F&fGP?5Zca49iJaZj7yTKG- zHsAG~+wVQX3~+*WI_JZ9KXH1*^a1!Q{}RZNaZdB^oh|LbdUS(>-7S%+KS6JKiZvV= z2WWYUjW$lecm(mN_hP$yi|7URTQ&Q}_Iv#~F|=ntZP#S#Iu|G^HrjnJciVOkeIEiz z%9H-d>bnoIM82F4sJA;bU)#6EeyeH^d3{R!?K!()%Y} zN{zsAoA% zwVp4}-x442YrRZ0d7xfiC(Mz5a$dr;Q>CjUkgRq2e9bzq|ME0b2Gv9 zd5ToHIIO28Z!}#781?_FkfSa@;?H+~hx;yHh&NaG0{YN?kT2RNzW<}-8?STVJHinU z;U5+Sf4h88Up>WFls|cn4fL(b(f1cuRP8ygPuHX4&(A~02ZRn;U(t-i`iYMV z!upBxf$Jy8=X~@%717r<|0>1LdEIp)*2u9u+1kfCDPKuo*hz4__X~XbU5 z`Y_6vzJAfe;T~`K{+Bzh5UG~(o<2Q`;|r!^yGHt1|7f2g5d1$XTDQkl}?h6ltGhjA?Q7Td*6p#x3+X7SI8-@U@{ z#^ER&>iN|kuUF%lo{ZzYux>ni$KXlPm(Yj>-EAN|+$;qbmv*U_+%-#CSZ%k9?K}9^ zpOc4QkRaNz90zkAy}QlQaXioU-$G&tV?M|<-zYwS0`TFa_~ZlV77~PRluq)E_$bQ~ zqtYV=(w`BZ>0|!X=VO&Wk~F-xaI<9E3p`$)bjxUd&Fzywao1I>9R_{3+rD%ECgkgb z@~N8MWRT~n<9T42CL4*}xeJv=6>BM17y~{E6G|fzB>rq_{8+fmi}2 zy&DY%y$|5~euJy{a&$-W-vTXRmljXe!pnrwv6V7{)4(#KGAEc)W_9K-xmg9hy zkMfx<*{g8(oWtsGlH2}4KgPq6>n%3ecn|C92$yqd8jN^=-SrmyRWQt>oXCwUQD<`B zkwz^xEV6kG!6zijch~O&h6(o3NufLL7xxMbe!fG((te+3@cU=;^ER!sYyvcE-lOG8 zkJxy(;Iq((-;Y6{JGs9_*JAx_67nZyh0n|>}P zyKk}KA2d147M2vw?lpzY^Pi+Ydqjh!J^Z!Fqqpa5h3N~fJH+*^`y&S}9oqG2Zzs57 zCOu;E$n$rY_ljI^>!S-44Ijz3?&tuurOap9h}LCZIcOMU-HTu=Y{EvZi|h=>dIxkJHG^Jia|cxF9FJQ%~` z^7#ijeq^*9bDvmos_ok$TuAJ_C(aWV8*D-+TVnbN_{Wm--<5$9(8ZJ zTn`oK!P(SQ1oaybt>nEF8 z@^F`%nbtmN$AxynbE5ZZbgB2xjA|!ClP*huDQ&a*tt_zdL^tiGIVMk-CqX=(FHZZd zUbfCReel+6Oh0tZmq_9^x_yz(_j^FDkp?d=oo{+7yT<6P%$uvM?&MdHJCFEP7= z=U~c>EtX%w-go0XWa{%;pda}WUva8c(0Kg1TlW#+RSs*vdA@&0`EKvB^_Y#(7& zUQB+2-Du5J?B6l$#s{tbhMHcY`GSA5BfFLQKkiTRcGbo54{~`i{QLG5qxmOKe2Sho zJpuaj^07tb!{*K7a*SnXwFzCp&Kko$y=#^TvN+@yxp1!q^*rmbY8RRQnTTDKL~=1! zKE~KUvVr&zN5J^@`N>Xu8na%FvWKs_D9xS?M8f z(0u5YG5?j_WAS*d1><9|3hSJ3+-Jdk^u>mc>-TKM2F*8HvQ~ZW1LV9c?vcaHx#{ES zVLvhT4Et%=bC*iF%W7p-^&aQLFg`n#8{ZrdxoX*{WN5v{a>Vf}*VTZ(Rpg5N>T&+n z)RXfsn`Q;4Jn-IR?nlTTGkYFmZ%NJPzOQ5UY@76Rw`;&%>tyjn9M_#UODBT#o8%lR z@ZuaPe5T|3!JoKezNVXdhk9a%TKVVRV(@kQUZ8)}v{xTrb6uY6?x>G{lJ>&+L-H%| zk>kxFvxfq|Jino7whs#X)Rk`U-#b$Im5=t_4lqj``bGRnK2k2YK7Z^TzoPMmo!+?>1(V^e<{z8+8>8B5A+h&gd7oh@ z$2Oyn<>7fM>LZkANXoripo@{j@4ajGA_b{`I6prm^B!2h)AlMp`H6jx$cOrl{XF#(=)6(rjPGkl ze2&ARmzGEN3*r~95d416de-B5!n&XEjt%eKO$S|X9(29o?{{;)ColJuyKa}K>`rSR z)Cp9L7RQdTotiA>`dCk60zK=rrLpC2+Dfze_;Jph4eQih!> zbinB3d9oNk=lfnL?V0VA?;BUgt;PqoXXO9wZ^$_&Frn&tv&#+0wwlh6c{HPIt0WMY zrS?60z~afcFz~NlKaPCb7f3qSTkOB7ck=gQkv^6K>Hk6Kq`slt7m|_hfC9FA-YfOUA=GF-J@5Jj1fAw0itF{^* z+8uMZ7@Xbj_2%su^!7)5qP;rQxJ~oVdd?{AScd74xZF=9=Wg^n=AH4K zp9Wp2(ZPFX=I%0>^E+9e)3?vQk3}EyJtgJmzPw`#%|3e4lF5AtX1L_*gZt1@-wy{p zG^&2)zfLi5UXSJEehqo&M9ZD6IIaH173b9FxuQ^SVppR6;`T1b465}Nts@P^eDV69 z>*IpJ7w(T4i!Z+3G}QD;%h&7s7}t508)Itf=Uw(4^87I9c);UrHh=E@<_9{sUwSM$ zd_C~k%z2uyhW{=%>5Rn|Uei8o-l59(lEw>s_kH9Wm-v2Cq^UZm z1UW={cVRz1zRN#4`EKo_kaX!c=rNV6>n#e(ix`!g4Bk|@E%}`MSu8A0{#gBnMZX zwcn3>Io*z7CnRab^|tzb%;`b1XR{T1EdD|2GvfpIEpz@Vb-j|U==b>6A7m?bIsA_{wqCn%J{k3`F+UiXY~Q&@1c_(?)7!Z_?@k``sBIVm=80AzC!Y6 znyxCRf1>tkl@Fg8K^IY#(?1%yLt*ma(<6|>s+|7*NIT%ru0N@K8;=inNV`5iA8g&6 z;|SWhRlC^A3I54Hx?aAk6qg%%tC0L^uH3&o^2_qQTJDdIK;Ek5K0fk83bWiF9>M;& zYPml&asqHD_b-mTM&R+v{jECnUu>MI`eq{KjGA(9=Ibb#&kJ%rjq9;lSO+rssIC*4 z{A6Jr$>b}W*&)m^Ha{hdjFi>WAU;! z^TU3PSq7sV9r9;71HVFV*cWX4kMn(vz0u1Dq^(RxZ}uQxiHit2M5vPjgP(&_W^f&bqBrk6WCyhp(8W1fG%YoGP|ye~bB z3m(#JbpGkqRki#4i^*b*Kt5r91onPW_9?+}-(mW=(NDQU|03wZJ&fs`42F^w*SeVWnf^e3wI?@j{G!}Ply-SNa39TX zOTS3sE5ChSrlrlk$Kwd_0rG)(kjqvnFwS=%=j=YKN7g^)!Qj%PCI{(0i3r%=-Rzkv z2mt$dxGK1j-#ianl=%Yiv5>fY4qEt4jIP$k&$_=?ixzqi#jK}`E21hc$cTY-+at#l;lt5n{r>U^9A|$N_faW%J+e~`SvP4&?8l> z4n0r$kPs>kdK2}kfcz|--=lx#=}Y&UzM=kRxi|7WNJKv@e9#X+)~7l@K)ywE@2EpJ z^Utp0|nAbY+6N;yXPgj@%f*m}HPnVZ1 zUoQ{WCrMvAucYDR*T%$n;!~bKw5yR%XPtbi zd@@6m{ZuW#I+gHRe!W7!)84D)*K!SiKKZq%PC15}UOGO%?o%?7AXkqV9Qd`-VA`+X z*Br@*{q$U~2kOC=%@#lFF*ydmV!gn9{l^ZNzGi=zUb0pb#`EaUhyWtLm&*8#>ulh& z^_&{LH}(FA_x$i&Hs{%R?htrBB8EEc7p`BkTtkz}Nl8$q`^`?N?DPFf%&+Tl8*ByoNt9)+9@$Pp3RnQcYJO?4j8=|??c>Ya>@HL(tX!zKHMKv+4pMC z_i4ow&!eF}V*R$)>*trnZsU9w-^-qDY*bwG)7!cQvmrv~l2ukt?oX`q{`Oe;97aCu zH@VOCo+})0hn3sk#jWmhoj&1m{Cr%F$6bDfzmen7+<)q635>c#gF$T#_M5_@82m&yOjP7j`lU@#Sngr z$UoXod8EPh2$R;4fjJ0HOy5#llGf^jeODnr3d$FIlHd1T)E!J zeMXtTpN4%v=y7>ZC-)WE{vfe?CT~*&S+n0~x6SU2%zB!P&#!U(s~0OgB%7kqW5Hg8 zpFNmZJl9W)rkednK4CnA{K2Q!3ct&4Pm-?j*7cj)jj#Fo*k2NT;`N+0Z_xY;$%iEu zp{LpGqHNnK{Z4zE=N0njKDghiptHbIzg~|mU5ZZT3#{MHmX-8FR)OY4{+)_H%qRGI zH|P7)!Sx=l(dB)LGYZ4*?2u2q-#r~LzUJvVRWRG;*S^_bC4Ku+>|7 z#Oft|-0$=4xB6{e_JAfUBrj8+{F{hAnum6L@T}$I>q4!SI}MND=bEip>)|G^*&O53 zMDWjy@aNl8diWW|+dAte&2RWU>VSrh zgZ@!DbX?PQ-~3L6(?drT&Tii6aKFPpr7+w5#+!Q;-ug<%f9<<1{=pL#|JwIDeA3}Z z6|VR?Lie>F^zbbne!s)p74E+FK8JUCxHa_jV6TV2MZ>do>phMp+lrbZm#!{R;M- z#s!V(~ajmosW}Uztv0k z;V7N-M^^qZ^h$Ax$z9n0bq`7_{ezT)bR1HAR*zvm!u#`1FR7{+YI$+%3Hcv&~XZrB3x>XN`)#!K~wSfyw#O zH=8`R+@{f!7AY?r`d>(XakAO5={!L4UGxibS|oI!-myO=#-Em~9+$4gYKG9UP`za7 z8_k|4e(t{oKHx!qkQdCyL7$Z;+xi*wS!~Z|ZH6yfhS-o-BN*|VbiJcE0*N`zE=6 zS41?~G^It?WiSr|Q?oc_zWl;(RzBi8ER{l1!e@y;N#zmu_X=u>XD^)c9L6R|2g_XU zNe}03UN11$TYztY!bT|S>rDc~js)k5Q>H1s#VL(y7Z(zH_ZxZ$Ers(%Jnw+?w<|u> zy463*0ep}!-ZvA@U)!)P;XB4HvyjTt!RJ1sr>0sveNw&wbJ6GJgM7_7W$nTBJMu$3 z-k-*KFUaK=zbfs+?FF90qy5bBIqjO*UOuzl`W8W}`u>nqjo9&;FXy@0ZZ}P7_xgN? z)@O0b|BqzC&#&l-0q_m3z2ODQ-@JT-ez;igiptS@Nl`A0E8wF%OC*5(XxeY|gm*Ny zOC)jk$bX>3dJ*vO-I&zv%DG&(yT;l_dqb1%yUEiYeA*pVgY?yh?Q*#O2xNsWG2ll5{OmeWG3G>EwJ0?}4ef{$V}eRe{ui zUTbJvC&|}ScT`VEL3t@ReRHHFF!2SsS?>LZuM4&}{D#(Fjr@2&I}thhBasZ+7nCQt z7gP&SgLj7zC64P=v~%jo=kEY-x5cmG{Tpq^#VH3|-wo=`;FP~KvCU5v zTu+ZzzW2v`&FLZ9O))*_ukz*P``lr@$mhwZKf3!Qk*AC0vN)xuu_WKwjyRv-(+5Fb z@2c2-;(Yy49w#C{|0^!1zYA7KY<_aW{B(O^JbwNZ^4W;ejxRR|&+{=aH|aHt5l!?? z^SF9FEZ?2uQ+~~(vfuFR?qJ9iLMXUz|U5)$}65Ho|p?aV^ z#n0>K?V78^P!gB={+4!`=Y`6w(F4{@!uhAz{(^k){-t{D;@?HHa^9Qw*M{~R^n}q7 z`sprECHv*9`;7FIjSp(*yMTV~A3;w|KWF_o?_pe)N zc6kk*c|P7?c!ytOem(wuCg$IpEgth_Kh66)0{=LlL;Mgraj=VjLB6%zZ!p_+I5*(; zdZde&YlLc1Y{9~Zj0Z;SMiUY_URIiMQ8=H+x@r_#f9%XYCIFP5&u zN|)J@q^G97UH+&iYUuNOeJ)-f-rrD?5^=ujV*6$AUsOt6{y$i!oQ1^pm#|#Vr~dn2 zkW;p+oc?2f6YDqBANUHpkaBqO{Jg87BzUN2FP5KiKR*^P~F-)KJD zbs;&ZAA(-=cKzMxS6&j=Q;-YmS8DW2pV3*PSMqw#^~`mBkVcG8U!i~G@x|wp{_gs! ze&_g_?Th*|v@>Bc5a#iXHO?){^PDA#AM{qA0OD%L)8mgP#?xEh6oN=+wH{q>L1~D4 zKIVtMDES0CB-gIu_JVO_zP;4i>m`u&yo@9M1awi4x*X-}XTsx%n)!zp)@_H}rxeC} zxpr8ufB%iBo&q1oqPI`kqkKfW4)U0j_v`v>y*Y0;jYS{jz8-zQI1YX2kDz+SviFD= z_R=nCPqbrbH?jX@IYN69{V&3sBz@a^L2_UXkKV5u#!qY3HKi{6l zDu1@p=%~?8W7@ltiMWEE`jhmG^Yf*N@^jg9SJ}8Pwd4YKSok3ucUQmb z=On#>>C8_9UdNv<)`;2VCG)Q^I>LJAfZ>7tiuFs*7svApD0e;m{x$g?`kkEI6_Rt$ z0&`wZ5I@?_Sa`o6>GJg;?^^z6J$&K5Db7E<3$g0cds@EN&fEX)cMv~MC+~xzUgJ98 zc=H5*06e>aP5d{TpPwfvB(EQ}E|=eri*?%VXRR)Q0sMNI_*lC-9-T+RzJXH_jDGTQ z5f#4IUb)orFHf=o5%nF``JeoHgx~8y=Ox7E;5iS-gZz_uGF$H-K4kc?zd+Bew;2q4 zPt?H&`Z{y#lBWbe<&Ja?JDt>1ncvHR_H;5zpRMRPiyUKqfsSm&V*QTzk41E3E9_l( zeD5EHXS&9h_v_W~X)c|`c&w*6ISV_J@88D!x-Y^DxkY@`$9tpi;NPA)<$EsgnJnu> zeMpAlfWQ6KfKe+3FA|viXYwfu-xniz>klNitqgQ{HgzOe>@!fk?@{|L`Mk2!B05Cl$-2c zqa#~r;eo$58_e?s!wU>DCkk2u{zn1)2=ike?1PSp)nIR|KBZByVMZ~M` z5aiBhQZH_HJWH1$m6X%%zii3z5x`3?_wT+BiTvX}+Ll`pOXO6_4>_eg-fzj0yJuK< z+%KP$c#umtz8}eb?5LM3g*PZCP;k6e)?F?39qFp&H^R{0My_|Rw@co)vGmf*G?@HL z2d#WOfBuTymO7kcy~OLy&!uwz4a>)UWO2E$UoY-o^?ZigGbq>lBs?9k`SP;tUeNN< z9(>&Q+jSWoyvGpz-ZMG-plz=3#qaq^2Ty1{Wv)l~t~ce3`a1RgIj=9r(vzDey-4-f zCb^FpbQUMUdXah-0GyeKJ@IU8|42DNg5Kj5_2b~n?_Lf4|D!-J_YT-Twc?~7QTe5u z!alh<>Zc(;*biCIU2LFlhVAQ_^m5hb6QQp+hYuDO=E@?>8Z6=FZxcM|GWd>1PxD^C->_Hx z)F-5<_tT2wpJVzctvG((3*mY!^Ye4ibMlX_m*<3Hd-_055A_1>vLt9nO&_y7@CD`n znB0fJdZFG0f50b%KPp?PxqcArf-4MP%-0*`Q_R<=l&`=deBGDh>pm~{bo0YGaq@Ma zCad9VmEVpx)W;IbC)C%K4l~~s3U5oUR|dxQ($tvG4@q_?whA4{7g5SQL+__8Hd&*`nnS$xly9MN<*hYH93HeGDo zSR|Q&PTGqtP)_1F&(8ZV5U&H@=lJ}O-!B5aujiKLSpQ#e>7$*{I(xa|<9TiDr$m0~ zQODzULwOoXjsC>O`RP5#P3Us{f&Q{2F!=NEtEE4X&IkGOe9LADL-%tOgH`b2w zc6@r!_)@j!%}{+x>^Zp1?+ccG@vOpgHYmMm#oMQ!Q)Iuz{;)V{k*4RpTorXR(aGKNaa9D<8{BweZS~F+vxq>Bukgw z=5la@MwfGIRxZdX>I-^6{YD$Vl^egJ^s%1P!+R7?cP&-~Pc_*%AWbdbC*>>nS!^;p zFz~leqmQx&ep~oj^mkk_|K1@{c)xJq>wZfYuN!{-#~=r%m5%JeQ|50oy-q&!Tz;^t z{9Udr*j0u%=-*&xJ!9nycGy{mosXP19kBG^+i__J>EL#YchK5VdT71DLnfb)1BoW* zqpkg;|HOF3U2i(LMdMfRW3YM(eAsOzxy-}fDMN7f zf56|VFr>xg<$8fx@6RQlHP?;K=Z0K9H%0ld9}n_*iOEJRpSMQxIg$9UkK)I2ixwZR zTO5h_JrTKG8_7{Dw|hq6sg+x3POMwNryUTFr++NMi*jQ}Eadie(Rb8WC6|7gibgyryS;?7(E1xPtaB=wHrhc<68aTn+E};XW_UWANS~+H2#{wLC}H zE~o3rD7qkhpvUZ&Dm|x+FM*z?9e&2?J?Zcnhfk=_ei;2dFvom4kfY~>)AOjvDENZ- zLB6fJ!u!dT!=C0<-vPZn&7JNqcfUjYh9q4{IWc$q|QvP4pM2$qM<%D$Q<%IOC_54ZCsvJF?4wIhc3J)Juwy7O` zI>)CoIXO`|-e>W_FWrwk;OT{|bx7~_FZ5Zb1R>r&=`X|l4)s=_1c(cIi}PUATYVZV z;j@kIKFY%`hdVs|c84hsTO2NV_y&Uqe#-0NfWw;|-s|w)4)1Yzox{Bjzt`at4&U$a zafjdO@DYc1I^3^tT<^-qK`S5T4QA)~-0SteK>e6HH6r=;B=bYz9dd@mbdY*BZ^qetzjyOL=E#&3! zWR9LQfL%TyUzl==%cJdmx8aNBuoH3^=C5}d9bw$G-C-d>TwVZ^*87tV*Vg-I zbM1YsdjAs{XjBG1t9Yt%_$JT)tm9|BKjSd#{fxt`_tOr0y+`^ZPfu^I-XRC5@87IT z&*~gKYaJ#%s~jdhoeqroy{RY}G=s7OBkNsvLSz&l=+C<*PWk1+q`Te)O zrtP7g-dped`~|JwA3S^QXGYN_l`ii4X|Hufa!30ltZ&)$VR%>I|3!Okht`Mb#~&nn z?e0-@<>lo2XRp0jNQwK&vFx>wLpR?KM1)SsAc?q}oq@|LnET)ureA zZ?AnySR2dXSoT^oSoYelYQ6v9*lUOC()0bZ*LsAbHTGJrzsy#w zS9`6edAs{t+~1&nEWe)@yCt4qfE|N*#-~3j1$PHK@&8jkjAhp>(U{eFpS_w7&v#Vc z9Wy(+I-W2)I-9f0;)nKf++oRBT$slS>qh+^uE7$1K;iMqbpYjz?B87iqg-o7m5cq| z-y8lguXf7ev+DCbzUsW%Ne^dvPAH6d*^-bro?U(dbah)fK+liKpRC_t7kv-vcf%+? z$e`5efX{c{{wvn+505I>_rHF@*_!&T8E;v8O~ZI=gUMH$6h>T_k8V>?;I$SW=Bu|m z%=q5E!hCnHhjV#;u@uO~>lr4nD)Tch-T)J6>#(MG(M)>goPzloxc}{7vH-LRenD^FI6zix0XklOw*vVk^TP zdsLVqF6=|%I=Z*(xesY@!gHiZ|Df=N^NlS+FC6JSwjb11_bse*`pXTns3I<|r_-pX z-TFD4Uj+V@SAy@So$p00Kj;0qKPU_Pt6i@>==#gwMaX(AeXKW;ANcgCT>at1GuFix z-|0*NEQ@NZA{caiTk4bh*iqlpbK&ohEp>7ER1WKu@26$ytTOPZm(LndT%QNPmoDQA z>k;{XR<2G3Y;_ z^mqF_Xgxl^B$h{!6YKy1pEpE&(|ywsjB-mQnGIVBR~=c2WE; zog?8sMxHmpxevJXUh|7nmLwvEBYf|9v+Ju(a^ET(zw@5Pc6nzAk_o*AKW+ynfoC^T znO;&~B6R?^?LVq-zujqiLqt*bqdaZxW6bj#UZ1|t4f1yTMoz&y|DdF9veG*w*>i4oE z-PfcmqrT(4<-Er{*iqKq$^OveN^d&P@WgzEe&f0FY>Bl`=mj|Jv&-}Q4?1IhoBpiX zXE$hiw5rEHs`zU7J>v=ej(ormwj=EG0$gk~0Rw%2xle)TcVj*lq+RelTroK$vB4iN zkK@lCw0?iAdu|!O*wC-(DQA@PLSp-$hh5&$4TCP&y^E1wzx6BF=LUIXyKK2d(FOVJ zZu9ZO;7P5Q?lw_g;<}dsi{SBnRasjJV8VAJvOcMJaok76d#tlA{hVZvnOsg4u|>T> z?Snp+>zJRfDkSgL1nFUui z8znyXN2Ws-o*uIJe8)DVb3B!bHOxSFMKTl@%H{Xrl76(Ol7z?Yr2p@*PtfpCZy_A< zK-Xp|GW$Q&<0|>i^C>;L+gSDyh*U|CoIA04!WbQJdhc5KO_Gh9MexJ{KR6rbzgP07 zU0QCcr33MmKSBrJ%Vm87kLKfiBHuWFhj2LVgXezH5N^Rjx3#-$iS-vehZo|x{)_pr zUeac>O&+o>CB@X!Wb)b5Wc=u9GWuHHY#E{b-7N)LCqDWa?u%?$Y2n<@$oi_4vmIl~ z*_lYrc)virueiC6eDQvPLbBQLdV7Vvb|AtB{?7ydeZP6j4NmVe_XkbSq=#IeE-*fX zd+8SlBg6%}dx53PE<^2#UXuI}BfF{uFyVgW>?-4L=)d-Bu-cQybM(DPP<=n_z1u{7 z*-u@Jz1J}+z42*0dvD38_$J`&S7;wmzw-Rq^L1_*{W4ryG{0DAGyCo~gEvb(qCIXZ zI9>i7^^5Pk52Ri6J5XW2Hhk2wh^NY+cypKfyC%FB1bF3N^3p7`cBjcB--Dx`pq-j6v3@z$*Eo-oKR?TKkpEwn@Ty%l#q^H9YsdRpxc?9BXYo&% ztpYlc{^PTthfbT`-;A$9r|*xXd}pgIocH-t4-}`_cqF}r`!}thPH(q!3F$37k6`@< z<&pQ(Lf?S@*=o~swC^Zq#~!tcg*^uTx$8~+efdJNPCvzV4k&^>1iaL%$LP3?SPtF|BbWjQ~t=~k*IZ-P0z#o(m}?7f*!>@#{fe*k`;%jttxcSw1C zJkNc$v=du)7(VKYx!n#An2&yr`&19h-<-##{z86pEGm9`Tdy=a3&|q=%6BPS+xWd% zztbM29Hob>K8lmAy`+AQrgbG|gG4V%a$sORrbA~`ez;FM;Pdarh9A~+*S*IW9LD#z z>SxuP({pn9V&T*9Efzkv&wS_)aJZnSrX{@1zVqIF+814RtUaV>KL$Mkx{uw0Uy%o^ zF1=4v>v{4=tiO>q0ar+#P&hrve&mF;6W9OYT#@%91wCyo_2Tl${+;n4$Ck6A@69eV z{eX6X@0ruhc2~t??JB#hqzO4+lwD^15bw9*`6=251?|0Jddv7LOrD;c{E;Va4(|uM9uDR5bGsa$#P8_9uz$dB?6b`U8K8R<5AmiVSx?IGx!$$j4oZC$^`Mf_jAWn#bIJ z1q>JK6X>6yPc&50OMe3Sf?k53-D&n5^$5>nrbAZFvdlNYabN7xYiu4fd(7m3dN}Bd zjh4}P`T|WpJ#yCM+3!WfI3U&+ceP!sh>A@I&@pxRv3VNl%^2_TL*55Io*Q(VoN0tBV?+eLcg;|fS z*IGXby99FL$4tX}^u>n%(D?cOknf75w0B*OvUYFZr~q+=WQO`|AE}S)Gv22}JHYK0 z)-%szWjokT%-+ezT~kC+87(ev5LmS>#t(6~@^p<~Pqo z^TW%vxHa>vv3yE&U2oh9`SfOK zscnCTpLQ|t$pK&DcFK2L*`H?%UC;TswQQj&ru_R~uy17wNaVm613ANZkLOKj4^`T& z)SC*+l1JswVxcv8oBFZ`U(P;boex(r%0_7p_oC zq|$C3Z@I82xkl1e+O6E>LVNN`g+*bCD;MUgUug%`fZMdamM7h5^H}Y!&wXBm=aka< zC5@l0aD6x5+rf%wO#k^g-fW5K5st?T$(5QeE*DtAc2h0a^yHW1d$n9IO5Uq5%k{$K zoWd+ubMjJ!S*|8+iIsU?uEr_JPfB=ME)~=MM%V|=rZ>rtIKC5HEG$V52#oQ?fcTIf z<1}K){R3^rj~$X2>EEZHK_?)jYe=?=&-3ur^8D+_dih>0&$mX9qFPVi82PHgEYI1I zzgC##`P#^7g;`Hu8ToyI%ahuZlK5$;CqQCnTtK~`d>IY}i0gK{mF+WYGy9eHZ`S7e zExfO1ttPa?wt0#N{DCVZf2Hye^QWZW|J1)*zU9InkNk~%ukz>A$Z>^P-+wsrd4qt%jN+s(XnxsBYsaWpCs9I^UcT#^UOgMI@WcG{YKx!U zVt#tHxBFYXU7#@`KIcQMISE|S@9BJx&-vW>j&E6qg=2C>T-LVS{FSTJ?`h~%pYoN? zH@G;dMfN&)VoXELB_cSymcWiC`ebO;j zydH@M$M^ZLP6xib>n%^3tnDtHXJ6Qk5HHrdytkP74ZqgnbG$aZ$YEQ)3GidX1P`o8@o7JKZlQkP_kdwgdkOfA|snivNK5uy@Y@-tDmPWdq;=ha2QxNqO&H z-gDRV*^*uABfk$y(~RSt(Rh0--ebL%-+se03?(5B=?+M`w6aTK8TV_vw6fjd;|_0e z_=v+B9PT%~g9@r0(=YjQ-8SaO0^tYG$=CAbHbua67=M=JOFC%fjPbmxgQf?4!t$iD&zfhsp)&!V%04sr$_+oJGtZTMwy;-j_)(>^vQIi*aTvb} zOGOS}1yJ_Gdb^slT+c70eI5E;&S5&d*x|(vmmDrR-05(q!>b%#js?r=rTARG`Ry`d*u`4=&z)sA0>Yh zKOHo=i{t&d#0&eg1{}X|Zv*U<9R?$Qr{l%Ft1;ew#EaxDk$ez;gUA1r#7_@<`||R0 zK7;cXh~F=Hg6`ju_&cNxz|pSVCUPLb0!u`3V&AHqcX#2d#1{{L1wAoSKaZkwSm*@) zX2D$<7*_pXc0ENt2D+m1oRoBN`Hu^I95-`ZyhGkSMNh=>cem$15qjo7M|ytYxzN*Q ze1aa|^D&b}d_j3j;)7ow6#RMpkhhPE+DgSfl1h-OqU+7u!{^oCyDcg9S(W5Z&I`o! z{9GM+zMFddi&CIi-Y2TZKQHON7kd1ysDE!C`FbiR6W8PS)aC2M_4u82)8C*K`uywh zoL=o)tNFuIL5KYHS?1y3zsC$1;{tZw@6mY!Jd?f(CLd+!6n*NNzf0}}5-^u+!g z-t*~+pOyF*q9^W?_|I8S$QS~S^Y`g3c3*#b!v=g#?(+S6+3F+z0a)%=R6klrb(r_N zoiO+gzZY*8QVHKg&6mUv>uElIi|vzC%9C#&MV&>HyEVO^=Dqt0i>>uOAQvb5O)TGm z)*c#rL|c+L;RdpH-bgm^uBEuPbjc<+^XJ;5YDJD;7tXf$2D7|#wOwv4>-*7?Q@vr zJD_m2e7zPvXzhsdmmW6xt!KB-tkW*aiF_2t_?%~m>lbnwx33?ni^tZxV?3R}8_5ae zImR=&E}r=yXB0gf0N;bJqsK+hURB%9%l@8kOh>Pzi|OcM>o7M=@h?G;e1WA&DT^oU(=M7G~DKEa4x1p;mMwUvcocwE)M6zMZ^W447kM= z8zyP`QFJwej)@91bYP%g!yj8t))M2*Uk2uVBdqUxAyY2UIYq#m3^&_!7 z4%DrGQIO(B@mXNGKiByj$%V>6yMB+$-!J8r`&U)(#`!%|H$PG6`TXQlA(>!CSD)c0p#5(y8gg6z15*Cs-$gh-haEtX1;ogtss@JRM&^jEZ z{$A{`CKvr(GT8Z>wyoCyIj`pN);he_;Z+W=a=6psPRC>Yc*=EwIlDX_S_|e2w>!Mp z;VllA9Nu8?VXybe${@dOQQ?l%$`8~_R1&ld9~DU zTrZd(lzGS?2aI=<#H(kQCYWDzdjWVm9q+4icsnItI=Cm`-Qe+7-SyG|38&1s{Dtv zfbS;Y&zbK7ica?n&dSyQdce7QK|So1B$a_#THbX+4k)VH%Xcfnbl`Fgm;3TuZrdDI z^(pdlg~Ltirvn`hx2Rtkn5};IoPX2wZ+&pN!eZ~cZ}$lFG+*zq-@g=<=kvMpEYFqa z-=w{wJV&%VJfDx!fWNO%KOOj6#h=Z&L;ZB%OAdEA{B?)7I?Q&kUE#{W8TGsU9!$Ke z0mMDcd)zlU>S^9Jf^kdr-izZJUVUf7+Aq(Kg?qt*UOu4lW4)O#KjbN{&jSLZ{Ck9+ zTKO_XQZ4_l89kx=zv(c`|4D~g{!N!+eC!$MhK-_m4jz z`BdkrO>V35_Kfi_%u}CrnEKNATC*;;yPD4i`4jT?sp02b26 zULTXb5svTXaUQ3q+34tLHu`#+jc)E|<$hJ(SB&#*XGG4p4##~)pi@4}`6e3=1wA{{ z&h2qucQ(^H5bjIMW-`93 zI_`&0!+E=t+OEzg$FZI|DRLUyZ7R=VN0o#U@b9Zv*3(zm1#R{-C=dM(<(uuC@=bf6 z^38sS@@>UW^6S`G-}NA5C+oYSfW)!Ah4(#jeD8An7tZ&WDE=znFLT)XqqJh>uJYaV z56?k9pM3v~^Y9%x|Df^xyyYKMcIrGTe!tjv^Ztih{>u6xLFwpD&{{~G!8e4huTe&zX$bgO2c6sIlLewXVKo4w!MG|lOI)Z$^> zkD6Z9}D`(XMc^?M)q-Vf!yIL#2J zUB>@KBJRkK=jr2n9zg$v-1C6=sJ9PEyW_rp%zxrL_uHmNPMe+CCm+ROonue#oW*g$ z!TtG}+auJ=LH<`+dY-!+zQW;I=3~5qzhZvt_~IUq_b&56FZNoo9j=qVL2tQXy+%O) z082{&`MF!-!|jy+_;cxAjUfH1#osLa#Fuoy@(<@v{2sK4(6d1h)Y4<)JA?er_ex`2>hG>)SBfGK zmmWOg;XV#KXy-w*D`#tX_dRXq&nT%c>&Y4)>)YU8dc^2XA2+&>p&^PZBo7hqS#N_4f9VeUIDQfPAX-R}@cWV7vO|h6Nfi)Gs25lWxuCL38+d zE-%LWOA^1@e!YJhw0cV06rJ=l#>X_wU-oPM)%6MEW7=j4KAU5FtQ_IIPp`%AH$J3C zjW5-6g{B8${`3leAdijEL;ZU+z06aqPrWm$T}V8mc62|07L;#i>ELpW%X4qtjn>X& zoj|`A8y``BQKQ%MfaMQ6Kv=8&=samBg=C+`OAkJ6{vpSE)nX+jJ!tb>*;U5Kl<(_Z zWr`p@Xn6TEc-DKy-T5eM?smLBpxXhWtdR^LSrQ-Y@_xZ2$dhc$t zbfk;&8Oz(L9G$P5EA$9qFR z^4@}#KF@g7C5k9pY53Ettl!I4`nkGSTDh}j#*n}lFjQQ(w*&Gcl;8Q!_K{k*k&qvl zHwMO~-p>w6`$RisyHz{sO-2jyfjs;L%5xK-B-!fqnmOM$%QuM<#@DIDh2y;-EpIe< z>1#{?uDjRDNBbt&<-*6=xqLq*xN6#k=ewi9`URGocFj|T7i)&R&xP+g@&15f!SY9Z zaG3Q;dCTrJy-xj$^8eUh2!GyXz9U*hTgTzhT4CeP{glH!f=t;*rM z5%~PPaO&qHaV~IFIc_K@o^+n!3+D$VoA~@7?Gea7C}epcUoTJ$`V-DK2D*fAadKPzibI*=a`a4@uKh^5sf6I9^=h9_pQm8bHSbxI?+%0KmdvN#r@mg=0WO;UhF|u6 zKImilb}0hP^|m)&q8H4i_qd&Pr(wCr?{I&y`z7}$h6ntCCg!`Wt~Qe)sU>`8IP>LrpYZcl{*?B--`kaXyUbRf zQn^e0zM^pN%mOWDxQ7e+4fTYt;!Rz8Ls27a7QFyX*Dm*+mBerH{w1An{Hxx-V0^5e z^EZBG;r<1r7JcLQFYq2L>i^h2JPCR6^}z5xxzN!m=^;;hf zpkMX9-ywscS1?eC`CB00xISNOn5_7D-vsq>^_+$E3JkBf{e^W9w5vj5dY|JV z>i42-Pwv!k6ZCvJp@$I;dR{K|#`OZ~`yH&jBy(`)u`Dm1pWft`k$w zq5i)pa!fv=9|eDxF2k?Xv%u<$zJ}vHjci|Br{=hq`gv&5h@K4K{3^!*$gc%>=6FBh z`^)ehE8AgR+vm0M9qng$gZzktH4l5`6K)?BlHE#Zaq4{yXQ0QoBbLQ0iO+jmmX_|< zcw8SFZbvMkWs~{oA)}||?GCT|mh$a$l3}NO;`{6<%{#1H=%U?zW6&NvN-SqI~LBL-@n$- zi7xm2>1=*+r__U}o@AZ)%EzJr;#!=JO4;D<+s*Ffx_8TF`=0Llw&stw#X9BFu-6yp z*ZQ>SilpTZi(h%4`Q5kwyU`uRA61`YrnCIwd`8vhnCa~PwK(0V`W!Qzk1HZNN7d(; z>3m;blx|dgj+yQ|HGCOWpJS#on{TJogVv|`qw3S?sMe>|L%PfS3$H(I_M_^1V)fUk z8OHT6vHF9y8ZBQFt3Ok)aefo4zd}uZ6RSV(=c9U`Sp7)@6gTnulL{7>x&i$;VQZ(r z)W4zqjj2z4o}nFBOy7*EzcJJK{9BZ6RQ-*a&SpWlUj*gUdZ3&}_(t)0zSAewuY43= z<$95S7q*SkUu++#g>$^ya;?KYxaa)pF!delOZcdACBEjv^5CPm%5L+!7ubHWijSAO z7uY;rh2tu}ceZ=Mi!9v^rb90+c=i(p_0q43*dVL0zCLL7^wNda&I(Dh=>^CCsL+QN zL3<Z0b8|yrX6wJOk)7=b;SNwO)vb1YoGEEjscGF{&vhaA$;jok7)RCuX<`H zphdMey+4s-P$NrAAJBmGu&qxGJKtNjT723kyyv%az`hSZVE#@KLn%r!?DL#0583z1 zE6wj-Wmcc1Zhv+y5uRJ!pi z^ek6T+ap@^n)?jKy0qe3Z*a>N^D7?S-DT<5QBL3J@viZB8_n-t2JT8dxtxUaDqbJl zhjZ+*KhS#TzMf*kvS6npr$X|2#dBS0yZWiyeY{_?h4OIJ#$j0BM$VPXG5$pmEms@7St=Rz%zYd?1;5IH_>hA&P-f!R$w$;z%WD z1bZ0ef%39pkH!BAl$SV;53%1t`Rn;|-x%L1 z2<^t$lT=;_DrDWp+e1t@q8wXk5erJ4j4vcQ$^*KUFXDFy%zI49U%r3Q(j|f7DwlXZ zGYoD)B5`iEh4CZTSusEV^j#uU?l6vhY=MnqF>c^E2l3A2;yohqun(jpX}O+LFWz2> z$8{da87L$l5&u9A@6Q0QlsAqS)0>a~Zs6~;0)%;BNqjtqw-@n@&GueIELmB`6_V??&X#&@Wf8{|93!|5IVj=*jHj=&1*&(ifa-&2-#FJMT0-viI- zK^{bGMv9Z(CM83-=?SinRa_o%j{G_ecYUF;MeZgemC)z?M{!bX0tK2LHvPeI?A%_& zlK9dOsxRq4584g!f8^Tc(_KQ1(4&cjHm>ypwFi2bakkP~SDX#Z*H&~nOUTGalAvvWHxvsuW z(xQE)hm0>vJGTS9%o7~f{zmTeFrV)VJ=SaRihlFA?J@tsUFsK;wB67eC|UlBqudNHNBFR)TDR0Do?7WN6bQULeqzNc|Z3`ead}VE#B`|Zj?mg%JNPF z=|FwTy9GHqAO#`^ZlAVzzr}G}S>8oqdc>4_$#dyVz=wN*MfyR}&u|s7e09J6NLg%!71h(uSv=3WI8>`MmA*F0h{`!S5yO7iKg zZC1aZlk}YeZ|ssEaoAsgmK)^J?^$O*#rNLWKIGn5<%i7QYCAxBXn<;ZK*H}n^^$!0 zV#Bw!{*VqMyfDw*?&H1Pp6*ujD`0}SV&gYMI*jmW&sMJX@!q>MT6I5*+hxVcUkT|j zlB%Y&aaCw{w^{nCKL3Z14kNB~=$w|jQnv9|kn^>k&csaKC;gj{4kNN^IvbzWq_gC5 z-r}<%9qh_#Ivd9g-)9lIPo?q}gNsv6X}Waiw8{NZTMub*Ln=M$@+JIMc@(Kud35^} za;NgxX80hVDu*i_7CA;0tnq#xa;I|W4STbMsT>MkILN!oVVA+&uNLIc>-lpMzf+=Y zEJ^}#kO!oz$`PQk<)|u$#{=Ik8I>N;*y)Q6M?<<9Nayb&RN4Vay4~s}T&J$e;b2I2 zsYI#D6Cg=9rX2o!NC(wiO$Vq>I@kZjNe_o~P{~!fFa=#BPeBfUE~G>KRMP>H{Cd?( zS}4B;iX7e-(n0lB)0rY3TMpl;>Hh1;p~+WO4ox3G4q-P`E<9^kUv0@-ZA+ucVkG`igZB_0+MvS>Q&_^$lrA#9d^)E)7gHSnskOn86aLNz_csFn-W>i92>#()4bM6u8gw!~<~QaF%=yTnhU;}allr_S&vRt{UV3`O z_%`=|;p4arVhg-HH&WSQ;XDV}vdCcCp~b1MNKgRG=U_gQ?U((*YsWm{;v^SUhAg)G*J+ zb9eZ6uh&mJAcTr5B)_gc=fyZ*)&d5ItL(7#r1a<+tsl07mIWT(X@0Qhg=uolkep-i zdFdU#uH@|}q`T46aU3G)upg28A1XU+U1|6ci`TNyeA+qXDWBE|V*cy6o$|(gU)^mc zcieA_{aYd`VLmC07cE*CkEa7iw49u;YHeGs8K*~{vG4w#E%gq^-IWK7zT&h7ogXOp z?n~BxpwIWCZflTQmWhNy@)ghTxcb=+YZu)!oPIw?(j&x!{zCGP7T@PvdET&Uk6U{! zHe74tQh(PZ%xBCuI@u3FULgsPd-!3$)gi;vx@?Ii;Cw^H<%W8wIPD7~QVePDCLg2+ z`~|*>nL+YiNxRY$=Zo?nU-ezy$WOjs%Xa#tQUN`(-OBIurH@;^w08Aq4B8`{hpY4f zJI;45)_TEy7JT72AF!5t&eP6U$2W7krb`D-==WoOPJ;TI$1Vdl(MM?H z;wbOX=hiN)!$-bw+#eC>5qXB=JO;~MZ2TYko$|@?c#x}GOl~0WKrOHRDBa{|aq5Rh zkUz%92ycD6>0Qoea{dGH!5_*~vEkpeehbOt#-H3gIqF&C&r|Y3|3Uun-SuLlkDsKz zQAE;}uV?l@HT68`?a%we)`dT+8OHT3q{up%F|geDpw+h!hc7{n1V;IpZ^)1BoA~cD zMH=2ybh$fry;WSc+U1b_thcjci!Ge%jVwpYVkI}!E9RrLpKyJ`c{K8+ICa+u!b5%S z`YlDkbu#X2L41^t^E$=JtS_UF@1M|qM1OiD*Pni@P2|lyJjK)2|&;yoC-orHgL;IQSBYph1$)We#sh^|6J~}wjds@Go zhvB|5zMq2rSNmZppZ3EyScd3#wIA+wSUl~AB_15@i$%gGj8Id5H*KBEQ@PO;81)0b z!+zsD(N8S^7VG~@;_nnX;Fl*~A-{s}u<4(ng5BISyg@(f{SY7_*e|>7JKu)`U*Xcn zdzCL?zR&YJ_GTeiTp_U!>7mmak9vvozB{E|g5K`iHF^R&7v-PoX(aP~??{LA#8XI~RlAt)!0(XKOBKm`@RpCf zf97_x_j7F$AP)KubWvaOUV@i z-9mj8)){?#Q=B$U`9ggPJSczQ+mxqaj>^3jUf=sPyHL-?h8Jjk7Lu1~!0;vuhaC<) zLxq_tU$8^a0?F^9+#?3Z`Y$)w{czkrQ?>7oE5Ew;nLM|6yZpcGy$hI~)pZ{Hof#e7 zY&??Sa8W#-Gf0DkVwvGCl&DDDjU5YP4kM_sG!o;HgkuDL(Vs@cs} z9_c0hQ`_+ePW-_5Z{_KGF!WR`(`E-;OtJy^#9yoU z_`-fp*L`)2H+>$~J;y!3OM9I1Ocax6#JNRR$Hn}o*r!eA@voQmVZVzdzI>VE=lzbv zjp_XU7oy%1*q`LMO8#&h9qL?U=YNOreLu2bsB@+9xz_n(hQ{ABv7Zq?X!NG>tamm0 zkO2*KzSX{eIn-IVa~8GEb$)NA^JXhA&Bv%7$VJyJNXnCQOxQ0KA?>;&A! zwmzQ1QD${dy@vW(dxK80JcXkK>YPQb^BuMxKt3!j!Ewq}%`V4ZmbcnwqA4EE%&Yd* zRHm=8K9i=i9jn;|%-&W$C9ayib4EPvsA}c|R*Hx6HyH2RV*Y3O^nOn@TQLI<<))g| zXT*~a)vS9)JnN13v}eS#N9p^S;W8Z1nC`8qa>AaVw2ymt#L7|9DT6dURFAV39g3k z#nNrP+PrKa@HaXgK=*D{F3;1v^6#KPw>iA@QmO~2XQcv89n2>wbksWEPkkSN$7=lhF-WW^uliA8}T^* zy+81titnIV_OWVwKa+Zja#QQPF7(80rYD%+cv{;QhQmJ<9_1Cbia5WhBpi$=62(;3fn!m<69e5lnjg#RWO#_~gj0gCh@0*>+2 z@8Jsmd?q5cqxK)Yd+$fLBi#7tT_0^?K1av<$t;iaI{JFgv$@9C@rd{J7aW%G%{52e z9zDzu@*w>r^qS5!6MoB;#N;D>P%%66; zv<@eGuYvo=%$EcsMR%YrUX&cRJpSE#9RLrBbX@omsd1&CdqD&w?1Zf{%|`u z>QcY>JCKWlzhIuV3)+V@VEuj_eA4%9n%lfyeAgmzV@<%(sa*C)LaLpK=M$8_=wyQ{ zE-`qG-vj8BMA4Y%dYbk^9bxKkI?Zp0=Zk#|0|1WU!xnZphMz)Mbf`S-3us=Yb5iVY z&wtbFM0}J->IdTaqqnmh*Ve7|Lzk1Orw9%C2k`5V{}kUBX2C~$=|qX|?|_LZI)4y; z{K9$d{CKp)kH-^!q;x*??e==p?qj`QM!iK>dheakx}Qn?dNip|bAA6w@*{m;pL}Vq zUv2S(e>y3zx!&(HGyYH;9zQpW?>k$*eT(ZS*|Ya8&Q7u=^zL_BkH-_dY(K)&Zv6Qq zp7r|IX}vZA2u^a}(xb1Mo+#h%-m@5$A$-#AFR|Sx42|uFB3Q^lp)WuW9m{8WEygSB zKU+zuJFSbg-fMp)^trDGQLmH#>Ai23Px)Pv;9)rx=m@PNHP3XtpnDdDeu;g2y?>?k zYpsutjQcn+8v3P>htNOU7rzjE@^vHKb8r8?3ft{bgUgHW0(pH}@9sIjTkrC{67cPO zA-{etX;0llrhXw`sBh>}`Qx}(4eLzn%3L>JO}L~T9|c^o-WTnawk!Eu&DI+J30y+w zuWI(UEnF^7>&?YEzIfN8T%PV@jchbD_B{pGL-!E0FMc`bS&w*~8()QCnc<#$Jl`nf zoKEX6Tn_}f(>4G67wGi+y|vD-8egSvYn6AHC7IUK_)v3v8t01g`#pXYJfr7&5BIp4 zkd1!a!_t!z^Zwm5;i{S6XYT9RW-FIE&#(6*_MrXfxUbG8taYx*>hN`byWmF{`N}r} z7&?B3ica(9sk#Nt7W*yop-BIR*Z;{#M|tEEn>W}-9entI#FbT7t ztwvv%=y1u9K4N}a=+tW)6TL?GTVP64KhbeLkFKD5+=6zVgL0eNZ)_Llw|ArBUVEeB z>stAf(O+W!LiQEm&q(xL*M*K>`$eLoESFtAEN3H|9KNs8mtBFMtbf}7v>!b3{xJg_ z4WnM|*nN@e=kmw$7*p%`n%k$nmd*B?7@zhd)>rq9L=WW~(bFTBdOr1=(cq`{kpw3? zv=7tTm-GAJT1S}Zcx9UXdA9ajU25;Qv;C6xeWcXBXGc2ap6$P-ls<^QrFKa1+*5-4 zAmDUfO7CMA`gytU%cT6``yZ#06?K6GtTyG7>!lO z@4ev<;r<1ieh7MwquEg9N6mg3s$6F6P5Yd#R{31``p(IxEzESbe>Ho;!b6p}*^G0j zvf3>1p^C3x)++be43h20A*h=DjKMR%hkrWqpXTeqcsH8%Lap+kuX7+D!`18)2FH9J ze#pW@mD6m6aHz7u>Q}4$Z9CV+^6G$)zGprU$9fRpY0}mzAN2L0%1`=w1@bYzYA<<1 zZt&Z~_u?1%^y3-KHsl+yozhxmXVz!oip5v6dkALv2v^PSw(wBpEMG6e`{8Ix@eEw)}qc!sqOM0gMHF!);K0-M*>D(lU{COn52t&0=h!@eF= zLwlcvxEk7nx>EzDR?hl)ae_GS;WX0rPT&vvRB*F2r}pVr5j?(3f9il?)tdUuHFYw%zCk9H>M zqyENEv+KY5Z!uo6)4?_7vo=UaBGU;+c#a3pmGtf}p(9am@2ubbVdkmt`sh8f&lx{- zXZ<6LANuI<$7H87zVXqa`xt-E&<@1&7r&EzcJ}d)dAV#)mdkde{{AxPYs7q+bTOXk zgk$>SphNR|o<|_P`|#iD33#?tdSCRlQaxS-jQFGdyJ8(E-q+Ol&+`5Q=n;JRojb*I zUbFbO{`4QA=q!Kls!td1J|h12_MC6r{?eDB;|FGSXy$x_L02&64S>lxz(=hL~yyQr7XYL%gHaM6lEFdAfMHKKgfE+u(Q1^@rr4r2eH_3Qlj|C1d=z4ya&wwW4=F6%B^O<81QfPc_HBI z27kXC3HGDoe?||`z@Ew01KdAoqkmliN6Wl6Z`AEj!2MVoz7HB)ZQdH6H_dyG zoo67vca`XMyZ>(m{3@Fv)aJe0>~X?B+lKd=fa`PnX5RHSq7&{&((d|>a}DizmeF~w z*`UmE51`n+-8RW@%V+&}rlR(r|bsb<>?I%$E` z=G|uV1;YP!ss5x-@8ysV_UGEX0h`wmzT-PB{MGD6!^`-22_DU>82?fmAKqWUKb+Ku zbds)W_7g>VCE*Lxeg5+9BK^fAf4aZ@?oz(f4DVG%z71`3y51t4|02m(&3>$ae<*<` z9hA8A{KFr$<-4TFcTOo^&GNZn$?~3P%SY?k<$FsTzkI$+_|?Cb@_lsy{~HM(NT1L9 zT|qJ5tw}jd_wlM;AUmG6Zx8(g9 zYO3bG*8U}1nERI;|Fqwtc?$WzBEir02=ln=7@vTF->3+m3Nq*)_ z`9S!q(UCMyX80Eo)_I|+BSwb3k7IP~_i#$bJ5qjt2=b43IN(oxEb=3sQ95r=KBoL4 zA4xygyUX+)LLekEpG0(D!4louOZ@)bwA`eeKGa?PiskZ?(s~DL zh903&38($A0q_yov!M>Z&sghNW9j*_I1jbdE1I8PxArVdncZ`ZM*`ky~9y5~8{M5W9EVd4T5tukYLu zzU|yuyqBGpchKNtKR)iYHJAIoem*{C`1MX!>wEHkzKrJ-P(+q*r!>JItkY}T$D^E+ z{$Ie*r}I1cGOvTq<>*~Q!o3v>j#@|6dh}itLd-js2fv6^2I!?QuldS<)?~y z*gs74px)ISs=Ouk=X$a_Fw`phih0;Cf49|s)$9X-{}P{vRW`@I+(X4Y?AvYln*o1u z?8p5??8iM&%)dInm*V$bhe7^>Q1&Jpp%~&$}wu7W1wXZTPe=7x!N(*A(-v+uQJ69r(_Tb*rn3dDoUUe9q5W zrS9{t%BEu8wJwnd${9oty!cSy?T&rBD~tKpKWLMK+lumS-c`B1n0KvhD<6YC9Lry2 z{%ys4tGlgT-bXMSzkao?p6@B*|3w?#6-E5|Hh7n7w&yi%@GA@WpJ{`qb>ihd+y)N> z5&wG$Jo)7Ffh&si|JjzWuZUmN7SCNyFXwG-^=_5(>!oshUii);-^&R;(t%+V?X|i{ ze@`jD&-YvP{)r@i)mq!>Iatc)>n+?h^z_Hu@^RMb@#9Ipbbj?z0#7=9-bQLY-xZ~F z&R29^ob9$N!OQ$Ue{Ri}c9imSN}>Hh=Kt@d{4^EP`O=@2^0P+zE+F;q1Q1Fu6W>`S zc%Ps7cLA7wcG8}tml9RY;yVekzn6|jw68eNg4tP|C!)QMVZrVt(kC6XHT1r&zGKno z@b8T3y%^f>8+_0r~OHulPA663(G+@ihV$Z%Ra~3H7S2k?{@(Y;l7Rh^tmrb|1aR{Tu<4~ zVES(-?IJkxfAwH%K1jHSL8$0_Gy9oWe7RK**@eWrC8aysmG}o!Iw+iQtml@54%scK zJ;8Quoew=R<2MW!AV|Hd+yf}|NZcBNy^9T4Q=s0%#^FC;=Hcj^VNGdw3k7CVGkY%BDV&A%k^YG zqtp8Zy3fn{{v68UdInLbUiw}Qif7b%Pw{?+^(>e3F7QSB)cfMziRe?l=Di>sPU+I8v*G*FZzSjWpCoV1+kO3`d1HLvYTV(tzLLt>6!aDy`OaQAx12ek z+JpLMXVPDo|KrGC&>Qz}o~Mxpmk&5SHBM0Brh@LSjTW?ZE4IXBzqbeVD_x_*&kZyy zUhn3h$EzHjPt4;Tg8W=hZ>~9F?LHj+Wo^9UqVuoM106BeAh;}%VfqsbF3l>as^(q! zZO*^7rFUNR9!gipNg@A_dHJW3|D)(9r;`6GR)e0PTjvfXr{c>%k?!-JM#q1&`cgk6 zZmj2V59!_awJUzd;3Q{yuS54mFNpf+9S7~x>mHQW@g&zeADQ-V>cMn%erJ({FvsmY&S|~HT#m)D?b$T>8Imd`?&L`nmupn z`rd-RFQoGe`6fyO?Oa+rpfA3EO8KMXJK}U&&(OKye3L~N?{7<=v7W=|=UUf!-ob$1 z=dSv$qs~D!;$3f@7uUL)^epjR1$@nTXGQu)=d0D83Ts_R`l75)8Wk55y$eA6??AiJ zr#sbo)Tcm)zH_T}YJG3E+3We$Kc$yuJNNOubR1sc`DTOrx3Iwqe4K>9745bs+O31D z-)Ohc`y4;%R1cmB6kHL-rd_~vq#YuO`de>;J8W4}-B zD7^>I_WU4FH*9vve&^$%&betE)cLm7y%m<);yds4(H&dp<7b)9+QR=~bQbsj_B*`z zLpuJ)mpJZ)+(o*+?<#$gzFRd`8eg8JUU|~-vfU80b-B-^b{^2vUgG-w!6d(}BPU_f zQ^$XOheY?P^c|o4J|x0Po_d1b4TCOkS`V5!-@uCZT4jI9e$%@mEN?OCmp;xNkKV`B zyTLsx0$+?HddEiji03crpgYnv9;;lYe+%jQeoFIz*F*h><3A;uaG%4}Uh#UTp|JDN zH|g@+^A~)GayJZy9*h1a`b5WU_5UAOM{VJY`UgI>yYiF1->st_yNryi`8lV9az|It zUD5|?mtoYi4!FJHPgKs%#t`1V*uS$jQ30bt!rbsgTxnb1rMyWW?}eN#1H|?4Pr@Hv z6W?!(@ssJabOzvG8E|6;7w=;xa9od=3Fq%{w#K(!K%qT$MtcleFuQ|-4ySc@>Va2E za{f{BJ>*v3M;eWG<2z7bQKoUFYNu_1Z`{z@eHgwYnAV&1V!e;TSG`FmqA(7#HtqRQ zd|Q4(F#ieo%3sERDt@5r7vB-Q9%48~JW-!~xScDThRwz5OHFHDSg41}FITr?j1<|Tk9mls1E7k*tFPIR=j+ww=~>!r^oNQ*8Qnl+#dkkG%7cN z`|I6cnD|2a-;OZl_(+Ma_n(FF0cl*B>~eNm`9G7CulZ?n@#|*a?Aiu|a0B?y@?<~s zM1H>GYVGaaAv@sBQtTH=o@&?~F}RJyhVnzsYFKSuN&3euI*DIw@U;b-Gxo6jkkg}l zBhU`aq4(apa?dZh()Uif7yYrpZNR(5bh@uf{YR&H3FU$<{y%|}}O%geueRlr>za36F3a<)5uPTk<)RbbYiK~Hqu=iv#`4?buf zI2Cq+${US$izVm!ZqlC0TkS;y)q{3B^-neXZ^oAi944@Gmw7qVyT*qPcz9}K_+HJd zpfl)S1z@9-nc!3o^>!P*t36$I+Gy0PpqGXkoamiE?;u@T_ZeK~dRFUico)a?g4RnF zKf!yhNKrr5IKckfk9wb~zxS8=%N5l7BrCzkes#12cM0L5Ka};L?CdZr3%f`2i#xVC z<7$g;V)e7BC(O(4U*W#wv4Qu6=oHrdquTr%jXsszwZrp`#C-|Ab5A}>PB>1mO678D zo!(D0P6$r-_Y)&dnV#H%*SLIF4z03J1mHGT%Y&JzV3R^<6Cm+0;%^{l&*X9 zdY`51A*Eso*o{G(HDC!av#hb?bMvMG#21GG955_I?AU2v_L6 zF$-p+{qD<-)jrVxxJSgAm#ZI@>ErwDbXBa1(r@nPUmxFo6ZW6_$82(cLrLy`8$-9& zQ`FzsKemx^Z?IOMy|huLUuJztC)#dsS0)OQYQ^SwRF_G1e$zES>pts8`U^QgH5e}1AHO*t>dXEM&9LG<*qWVwLHmW>LHRK` z47~iVDm%K`yASlX$>X(1gwy*9qoDu_IzSiYgJn`K)V^i;)O$_UY<9WSccGPEc5F}R zSH0K0Bi_xD9>DhxO#W+?Iw(Lr9xyM{JGL9PpkWx_>+wpb9(uII|8Ld6w|NfNy@jJ9 z>J{UN*15at7F~SDkL!2r2Mw&cQ*UrSY5YKcBtKg3YWO=3J)1oLV0_=G>nacHdwDzJ zyDVx~*{^-vmjlhx=T?7&vHtlT#_z#84$G}o5r7+s`O5W(tRq}Qe;k6}w`ifyCjoXk z!aZS6l=ZB>W5IT$oJo&T&pwKyAL+S3>SfKFsE?Q6Kj9t(oW={iOHF-iasr%mwT@o% z(|JCMEZ+Oz{q(g6H!6OkocfmQC+rVERjdyPe+}=)(`lYNa=itu9Vzz%Y)?e>EpR#4 z`|qoO*X*E=JG{oDVN|}3sN>=59k^q*KY{hI%N@Q5ySUAe1HB(3J=W;(@1AfUi}gF; zXtKfhex<$(y<@r0W2#x40}Q=TZZGotEYwf^Qteg4xiC869R_pj2p zsW|vP!=*^0T}5}S@^+JF+2LBpVLpJ_KH-nU7v8;rm+ul$zGTO79qvfHiHGP+@;0^fAy!`t_cq_KAl< zXC3i-!`J)Qv@2Q91Iz?BcYR%Nyit8+M~{rZZu+Ya`}R~lS~n#BKtiz(dn*3?85Shx z;!CSte;=KO_4Rj`hVi=&{OLIX_Dg+V^mwEXEjT^HQpoh#sDB51WHG1j%~MVo-}5<- z7v8;*pYveyjd1j5)MJn5V>|y%v~ySBk)2lNv&x;^ANIR1pA_vuzROKRN65}Qj&`df zp~a7XHvK)&l%D@Lx!do#33n-elCIwXf3^R}@B;{^d?V(`B}jlf6+Vz)`2Gg!sd@}! zu&pD$4IczS-(^k99YwhukBH}Zqt zCn?hWU~{h}7w6xZj(^!~@$4tF#Y04Ajc1i+gRdv?&jcSRKMgn}nXm5{?TvAL>q@3z z+}z|o;V*_`h`z?_t>=3>^&#t_ea@m?A8VzvK8k01bipx|{?>CGj`8@!EdIKGLB#I` ze>ru!d$w^L?W%Qswikyg%I{6^wNI8GYVSwru690n0>w6q=RtBD!8`*{i1ze*@Y}0 z(IL0f#rteqSty*o-z~m$uQ1jX-;*1_IL#_>J(($5$I`h(t`o7{6wiLgcA`FedlElI zAh-ee#M2dFvpjMtoz0B*Y zbH{q;B&FlT8_@BKphMrKlOELmHrt0KOkU{aFigjGVvOdsJU>gP^Fq!2!S6wfF8HnW zAm!7$(3%$!|4-vT`_-$ZdC@OmLtw6PAkV!V?Z30%(nRg6TxK_O^Ei(Z;^Dwq9rApU z{T_*hmjUF%KiK&fSo{#qB@&P5W4oP$`NXkBy_U{#6Qr6P9!>4a&^N_>p5U9_0Z;Rt zs3!6h`ZWLaO(u6~JDyD1F_ohaha8b^>C?H-W#SMo;o`hWYNuow_|c0B!m*y;fyu6O zQiOZ_w|~N{*sq)%yN2mMwu*KflmuK_pOg>MyITJiKIZ3IDaUcrJreIcH@G+fr+385 z{k6UQvav5XxuC<(jq6?N34Bk363FvuTn8ae`e%b&V=Th-*_H2PBHYHS@YX%l8|k52 z0{WyM@?MYAID9sOZR;~G{9$-AJDWZC%dhv)~)~DgDt`op0l5QIDXDdX0|d^C!zk@zae?Ki9AI z@#fXuu+2Ev)r5@GY5t^nvGjr72~PV9>9X|+G`z&q;Wy`t_M&( zg{$0Q>m;1dQv{?pq<{0LeI8!T{=OkDm#2NTDsBT1fPAM4D(6!>=>2=HPqIByKH53a z9afC#g(r-EJ|4+#>oLthKKZ#gtz#Yt)mF{?9BlLUBSuei{d4B)yT&?CTkH6FD~NO% z9Uu2{i}h`^&(}#`^aI&ft#$K7)*jq=m*c!wy?w2tu#MvESzsIK9V1p4&q$nA;UA$>vWT^{3U!vxuDAQ?t*HpUb*Ssh{68sOl zq?-Mt@$&$g2q!*Dex%Q9_#P0Q7rCM)e$vsvc{4h#=eOH~u&?TtoE7&x z-tS@6Z`TSBkDTia9EQi1-yHE}ddN?bUF-bDH0VOT{&f0%o8D)3lVjrF*YB@pt{3x5 zJXZTr!yvzosJ-&TzR6bwT~h)BW-MS4#_E;;_mF{{qwiGJ;ih^``C?GyOf z|4)|iQPL)Fae|~Tgje!Xq+jJ!r1T)BqVgAjFSJ)D$pIqpnGzf!!;A(B3TWJUVbP6zE0a%c$W zPLO?Cc1ln1L-KTYz&FD#Q2T1#YS+!)zCEE2$lre8Js$oLzCTC&9ItYw+Y=lJv;((d`b525ddr2BO*fsXW?1oghg zJK1%VgL;XcUjaRL=^ds`US7e6l^$lhk)Ny&+k> muw-{Sc4ni0>-a6}DdP`6W+# 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 OV<6N&t)}WznyRhFgkn#yOGI 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 literal 0 HcmV?d00001 diff --git a/tokens/token-2022/default-account-state/steel/program/tests/test.rs b/tokens/token-2022/default-account-state/steel/program/tests/test.rs new file mode 100644 index 000000000..ade72782b --- /dev/null +++ b/tokens/token-2022/default-account-state/steel/program/tests/test.rs @@ -0,0 +1,129 @@ +use solana_program::hash::Hash; +use solana_program_test::{processor, BanksClient, ProgramTest}; +use solana_sdk::{ + program_pack::Pack, signature::Keypair, signer::Signer, system_instruction::create_account, + transaction::Transaction, +}; +use spl_associated_token_account::{ + get_associated_token_address_with_program_id, instruction::create_associated_token_account, +}; +use spl_token_2022::{ + instruction::{initialize_account3, mint_to}, + state::Account, +}; +use steel_api::prelude::*; + +async fn setup() -> (BanksClient, Keypair, Hash) { + let mut program_test = ProgramTest::new( + "steel_program", + steel_api::ID, + processor!(steel_program::process_instruction), + ); + // program_test.add_program("spl_token_2022", spl_token_2022::ID, None); + program_test.prefer_bpf(true); + program_test.start().await +} + +#[tokio::test] +async fn run_test() { + // Setup test + let (mut banks, payer, blockhash) = setup().await; + let mint = Keypair::new(); + let receiver = Keypair::new(); + + // Submit initialize transaction. + let ix = initialize(payer.pubkey(), mint.pubkey()); + let tx = Transaction::new_signed_with_payer( + &[ix], + Some(&payer.pubkey()), + &[&payer, &mint], + blockhash, + ); + let res = banks.process_transaction(tx).await; + assert!(res.is_ok()); + + // //Create Ata and try out a transaction + let create_token_acc_ix1 = create_associated_token_account( + &payer.pubkey(), + &receiver.pubkey(), + &mint.pubkey(), + &spl_token_2022::ID, + ); + + let receiver_ata = get_associated_token_address_with_program_id( + &receiver.pubkey(), + &mint.pubkey(), + &spl_token_2022::ID, + ); + + //Mint Tokens + let mint_ix = mint_to( + &spl_token_2022::ID, + &mint.pubkey(), + &receiver_ata, + &payer.pubkey(), + &[], + 1_000_000_000, + ) + .unwrap(); + + let tx = Transaction::new_signed_with_payer( + &[create_token_acc_ix1, mint_ix], + Some(&payer.pubkey()), + &[&payer], + blockhash, + ); + let res = banks.process_transaction(tx).await; + assert!(res.is_err(), "MintTo unexpectedly succeeded"); + let err_string = format!("{:?}", res); + + // TokenError::AccountFrozen = 17 = 0x11 + assert!( + err_string.contains("Custom(17)"), + "Expected TokenError::AccountFrozen (17), got: {}", + err_string + ); + + //Update State and Try to Mint Again + let update_ix = update_default_account_state(payer.pubkey(), mint.pubkey()); + + let new_token_acc = Keypair::new(); + let create_ix = create_account( + &payer.pubkey(), + &new_token_acc.pubkey(), + banks + .get_rent() + .await + .unwrap() + .minimum_balance(Account::LEN), + Account::LEN as u64, + &spl_token_2022::ID, + ); + let init_ix = initialize_account3( + &spl_token_2022::ID, + &new_token_acc.pubkey(), + &mint.pubkey(), + &payer.pubkey(), + ) + .unwrap(); + + //Mint Tokens + let mint_ix2 = mint_to( + &spl_token_2022::ID, + &mint.pubkey(), + &new_token_acc.pubkey(), + &payer.pubkey(), + &[], + 1_000_000_000, + ) + .unwrap(); + + let tx = Transaction::new_signed_with_payer( + &[update_ix, create_ix, init_ix, mint_ix2], + Some(&payer.pubkey()), + &[&payer, &mint, &new_token_acc], + blockhash, + ); + let res = banks.process_transaction(tx).await; + assert!(res.is_ok()); +} From 73d9cee9775917c7331266e097d8ef99c1f66fc5 Mon Sep 17 00:00:00 2001 From: ubadineke Date: Fri, 4 Jul 2025 08:29:09 +0100 Subject: [PATCH 10/13] steel: interest bearing extension --- .../interest-bearing/steel/.gitignore | 2 + .../interest-bearing/steel/Cargo.toml | 22 ++++++ .../interest-bearing/steel/README.md | 28 +++++++ .../interest-bearing/steel/api/Cargo.toml | 19 +++++ .../interest-bearing/steel/api/src/error.rs | 10 +++ .../steel/api/src/instruction.rs | 22 ++++++ .../interest-bearing/steel/api/src/lib.rs | 14 ++++ .../interest-bearing/steel/api/src/sdk.rs | 37 +++++++++ .../interest-bearing/steel/program/Cargo.toml | 27 +++++++ .../steel/program/src/initialize.rs | 60 +++++++++++++++ .../interest-bearing/steel/program/src/lib.rs | 25 ++++++ .../steel/program/src/update_fee.rs | 33 ++++++++ .../steel/program/tests/test.rs | 77 +++++++++++++++++++ 13 files changed, 376 insertions(+) create mode 100644 tokens/token-2022/interest-bearing/steel/.gitignore create mode 100644 tokens/token-2022/interest-bearing/steel/Cargo.toml create mode 100644 tokens/token-2022/interest-bearing/steel/README.md create mode 100644 tokens/token-2022/interest-bearing/steel/api/Cargo.toml create mode 100644 tokens/token-2022/interest-bearing/steel/api/src/error.rs create mode 100644 tokens/token-2022/interest-bearing/steel/api/src/instruction.rs create mode 100644 tokens/token-2022/interest-bearing/steel/api/src/lib.rs create mode 100644 tokens/token-2022/interest-bearing/steel/api/src/sdk.rs create mode 100644 tokens/token-2022/interest-bearing/steel/program/Cargo.toml create mode 100644 tokens/token-2022/interest-bearing/steel/program/src/initialize.rs create mode 100644 tokens/token-2022/interest-bearing/steel/program/src/lib.rs create mode 100644 tokens/token-2022/interest-bearing/steel/program/src/update_fee.rs create mode 100644 tokens/token-2022/interest-bearing/steel/program/tests/test.rs diff --git a/tokens/token-2022/interest-bearing/steel/.gitignore b/tokens/token-2022/interest-bearing/steel/.gitignore new file mode 100644 index 000000000..052739dbc --- /dev/null +++ b/tokens/token-2022/interest-bearing/steel/.gitignore @@ -0,0 +1,2 @@ +target +test-ledger diff --git a/tokens/token-2022/interest-bearing/steel/Cargo.toml b/tokens/token-2022/interest-bearing/steel/Cargo.toml new file mode 100644 index 000000000..23402b9a0 --- /dev/null +++ b/tokens/token-2022/interest-bearing/steel/Cargo.toml @@ -0,0 +1,22 @@ +[workspace] +resolver = "2" +members = ["api", "program"] + +[workspace.package] +version = "0.1.0" +edition = "2021" +license = "Apache-2.0" +homepage = "" +documentation = "" +repository = "" +readme = "./README.md" +keywords = ["solana"] + +[workspace.dependencies] +steel-api = { path = "./api", version = "0.1.0" } +bytemuck = "1.14" +num_enum = "0.7" +solana-program = "2.1" +steel = "4.0" +thiserror = "1.0" +spl-token-2022 = {version = "7.0.0", features = ["no-entrypoint"]} diff --git a/tokens/token-2022/interest-bearing/steel/README.md b/tokens/token-2022/interest-bearing/steel/README.md new file mode 100644 index 000000000..cfc508fd5 --- /dev/null +++ b/tokens/token-2022/interest-bearing/steel/README.md @@ -0,0 +1,28 @@ +# Steel + +**Steel** is a ... + +## API +- [`Consts`](api/src/consts.rs) – Program constants. +- [`Error`](api/src/error.rs) – Custom program errors. +- [`Event`](api/src/event.rs) – Custom program events. +- [`Instruction`](api/src/instruction.rs) – Declared instructions. + +## Instructions +- [`Add`](program/src/add.rs) – Add ... +- [`Initialize`](program/src/initialize.rs) – Initialize ... + +## State +- [`Counter`](api/src/state/counter.rs) – Counter ... + +## Get started + +Compile your program: +```sh +steel build +``` + +Run unit and integration tests: +```sh +steel test +``` diff --git a/tokens/token-2022/interest-bearing/steel/api/Cargo.toml b/tokens/token-2022/interest-bearing/steel/api/Cargo.toml new file mode 100644 index 000000000..e514258ea --- /dev/null +++ b/tokens/token-2022/interest-bearing/steel/api/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "steel-api" +description = "API for interacting with the Steel program" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +documentation.workspace = true +repository.workspace = true +readme.workspace = true +keywords.workspace = true + +[dependencies] +bytemuck.workspace = true +num_enum.workspace = true +solana-program.workspace = true +steel.workspace = true +thiserror.workspace = true +spl-token-2022.workspace = true diff --git a/tokens/token-2022/interest-bearing/steel/api/src/error.rs b/tokens/token-2022/interest-bearing/steel/api/src/error.rs new file mode 100644 index 000000000..96e84da4d --- /dev/null +++ b/tokens/token-2022/interest-bearing/steel/api/src/error.rs @@ -0,0 +1,10 @@ +use steel::*; + +#[derive(Debug, Error, Clone, Copy, PartialEq, Eq, IntoPrimitive)] +#[repr(u32)] +pub enum SteelError { + #[error("This is a dummy error")] + Dummy = 0, +} + +error!(SteelError); diff --git a/tokens/token-2022/interest-bearing/steel/api/src/instruction.rs b/tokens/token-2022/interest-bearing/steel/api/src/instruction.rs new file mode 100644 index 000000000..658ce73cf --- /dev/null +++ b/tokens/token-2022/interest-bearing/steel/api/src/instruction.rs @@ -0,0 +1,22 @@ +use steel::*; + +#[repr(u8)] +#[derive(Clone, Copy, Debug, Eq, PartialEq, TryFromPrimitive)] +pub enum SteelInstruction { + Initialize = 0, + UpdateRate = 1, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug, Pod, Zeroable)] +pub struct Initialize { + pub rate: [u8; 2], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug, Pod, Zeroable)] +pub struct UpdateRate { + pub rate: [u8; 2], +} +instruction!(SteelInstruction, Initialize); +instruction!(SteelInstruction, UpdateRate); diff --git a/tokens/token-2022/interest-bearing/steel/api/src/lib.rs b/tokens/token-2022/interest-bearing/steel/api/src/lib.rs new file mode 100644 index 000000000..2c146dac0 --- /dev/null +++ b/tokens/token-2022/interest-bearing/steel/api/src/lib.rs @@ -0,0 +1,14 @@ +pub mod error; +pub mod instruction; +pub mod sdk; + +pub mod prelude { + pub use crate::error::*; + pub use crate::instruction::*; + pub use crate::sdk::*; +} + +use steel::*; + +// TODO Set program id +declare_id!("z7msBPQHDJjTvdQRoEcKyENgXDhSRYeHieN1ZMTqo35"); diff --git a/tokens/token-2022/interest-bearing/steel/api/src/sdk.rs b/tokens/token-2022/interest-bearing/steel/api/src/sdk.rs new file mode 100644 index 000000000..1a2ce727c --- /dev/null +++ b/tokens/token-2022/interest-bearing/steel/api/src/sdk.rs @@ -0,0 +1,37 @@ +use steel::*; + +use crate::prelude::*; + +pub fn initialize(signer: Pubkey, mint: Pubkey, rate: i16) -> Instruction { + Instruction { + program_id: crate::ID, + accounts: vec![ + AccountMeta::new(signer, true), + AccountMeta::new(mint, true), + AccountMeta::new_readonly(system_program::ID, false), + AccountMeta::new_readonly(spl_token_2022::ID, false), + AccountMeta::new_readonly(sysvar::rent::ID, false), + ], + data: Initialize { + rate: rate.to_le_bytes(), + } + .to_bytes(), + } +} + +pub fn update_rate(signer: Pubkey, mint: Pubkey, rate: i16) -> Instruction { + Instruction { + program_id: crate::ID, + accounts: vec![ + AccountMeta::new(signer, true), + AccountMeta::new(mint, false), + AccountMeta::new_readonly(system_program::ID, false), + AccountMeta::new_readonly(spl_token_2022::ID, false), + ], + data: UpdateRate { + rate: rate.to_le_bytes(), + } + .to_bytes(), + } +} + diff --git a/tokens/token-2022/interest-bearing/steel/program/Cargo.toml b/tokens/token-2022/interest-bearing/steel/program/Cargo.toml new file mode 100644 index 000000000..11f2289d0 --- /dev/null +++ b/tokens/token-2022/interest-bearing/steel/program/Cargo.toml @@ -0,0 +1,27 @@ +[package] +name = "steel-program" +description = "" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +documentation.workspace = true +repository.workspace = true +readme.workspace = true +keywords.workspace = true + +[lib] +crate-type = ["cdylib", "lib"] + +[dependencies] +steel-api.workspace = true +solana-program.workspace = true +steel.workspace = true +spl-token-2022.workspace = true + +[dev-dependencies] +base64 = "0.21" +rand = "0.8.5" +solana-program-test = "2.1" +solana-sdk = "2.1" +tokio = { version = "1.35", features = ["full"] } diff --git a/tokens/token-2022/interest-bearing/steel/program/src/initialize.rs b/tokens/token-2022/interest-bearing/steel/program/src/initialize.rs new file mode 100644 index 000000000..170c8495f --- /dev/null +++ b/tokens/token-2022/interest-bearing/steel/program/src/initialize.rs @@ -0,0 +1,60 @@ +use solana_program::{msg, program::invoke}; +use spl_token_2022::{ + extension::{interest_bearing_mint, ExtensionType}, + state::Mint, +}; +use steel::*; +use steel_api::prelude::*; + +pub fn process_initialize(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResult { + let args = Initialize::try_from_bytes(&data)?; + let rate = i16::from_le_bytes(args.rate); + + // Load accounts. + let [signer_info, mint_info, system_program, token_program, rent_sysvar] = accounts else { + return Err(ProgramError::NotEnoughAccountKeys); + }; + + signer_info.is_signer()?; + mint_info.is_signer()?.is_empty()?.is_writable()?; + system_program.is_program(&system_program::ID)?; + token_program.is_program(&spl_token_2022::ID)?; + rent_sysvar.is_sysvar(&sysvar::rent::ID)?; + + //Calculate space for mint and extension data + let space = + ExtensionType::try_calculate_account_len::(&[ExtensionType::InterestBearingConfig])?; + //Create account for the mint and allocate space + create_account( + signer_info, + mint_info, + system_program, + space, + token_program.key, + )?; + + //Initialize the Interest Bearing Mint Extension + //This instruction must come before the instruction to initialize mint data + invoke( + &interest_bearing_mint::instruction::initialize( + token_program.key, + mint_info.key, + Some(*signer_info.key), + rate, + )?, + &[mint_info.clone(), signer_info.clone()], + )?; + + initialize_mint( + mint_info, + signer_info, + Some(signer_info), + token_program, + rent_sysvar, + 6, //you can configure it to be passed as instruction data + )?; + + msg!("Interest Bearing Mint Extension: Initialized!"); + + Ok(()) +} diff --git a/tokens/token-2022/interest-bearing/steel/program/src/lib.rs b/tokens/token-2022/interest-bearing/steel/program/src/lib.rs new file mode 100644 index 000000000..6af4d4a28 --- /dev/null +++ b/tokens/token-2022/interest-bearing/steel/program/src/lib.rs @@ -0,0 +1,25 @@ +mod initialize; +mod update_fee; + +use initialize::*; +use update_fee::*; + +use steel::*; +use steel_api::prelude::*; + +pub fn process_instruction( + program_id: &Pubkey, + accounts: &[AccountInfo], + data: &[u8], +) -> ProgramResult { + let (ix, data) = parse_instruction(&steel_api::ID, program_id, data)?; + + match ix { + SteelInstruction::Initialize => process_initialize(accounts, data)?, + SteelInstruction::UpdateRate => process_update_rate(accounts, data)?, + } + + Ok(()) +} + +entrypoint!(process_instruction); diff --git a/tokens/token-2022/interest-bearing/steel/program/src/update_fee.rs b/tokens/token-2022/interest-bearing/steel/program/src/update_fee.rs new file mode 100644 index 000000000..da55eac03 --- /dev/null +++ b/tokens/token-2022/interest-bearing/steel/program/src/update_fee.rs @@ -0,0 +1,33 @@ +use solana_program::{msg, program::invoke}; +use spl_token_2022::extension::interest_bearing_mint; +use steel::*; +use steel_api::prelude::*; + +pub fn process_update_rate(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResult { + let args = UpdateRate::try_from_bytes(&data)?; + let rate = i16::from_le_bytes(args.rate); + + // Load accounts. + let [signer_info, mint_info, system_program, token_program] = accounts else { + return Err(ProgramError::NotEnoughAccountKeys); + }; + + signer_info.is_signer()?; + system_program.is_program(&system_program::ID)?; + token_program.is_program(&spl_token_2022::ID)?; + + invoke( + &interest_bearing_mint::instruction::update_rate( + token_program.key, + mint_info.key, + &signer_info.key, + &[], + rate, + )?, + &[mint_info.clone(), signer_info.clone()], + )?; + + msg!("Interest Bearing Mint Extension: Rate Updated!"); + + Ok(()) +} diff --git a/tokens/token-2022/interest-bearing/steel/program/tests/test.rs b/tokens/token-2022/interest-bearing/steel/program/tests/test.rs new file mode 100644 index 000000000..4fd9218e3 --- /dev/null +++ b/tokens/token-2022/interest-bearing/steel/program/tests/test.rs @@ -0,0 +1,77 @@ +use solana_program::hash::Hash; +use solana_program_test::{processor, BanksClient, ProgramTest}; +use solana_sdk::{signature::Keypair, signer::Signer, transaction::Transaction}; +use spl_token_2022::{extension::{interest_bearing_mint::InterestBearingConfig, BaseStateWithExtensions, StateWithExtensions}, state::Mint}; +use steel::*; +use steel_api::prelude::*; + +async fn setup() -> (BanksClient, Keypair, Hash) { + let mut program_test = ProgramTest::new( + "steel_program", + steel_api::ID, + processor!(steel_program::process_instruction), + ); + program_test.prefer_bpf(true); + program_test.start().await +} + +#[tokio::test] +async fn run_test() { + // Setup test + let (mut banks, payer, blockhash) = setup().await; + let mint = Keypair::new(); + + // Submit initialize transaction. + let ix = initialize(payer.pubkey(), mint.pubkey(), 100); + let tx = Transaction::new_signed_with_payer( + &[ix], + Some(&payer.pubkey()), + &[&payer, &mint], + blockhash, + ); + let res = banks.process_transaction(tx).await; + assert!(res.is_ok()); + + //Get mint data + let mint_account = banks.get_account(mint.pubkey()).await.unwrap().unwrap(); + + let mint_data = mint_account.data.as_slice(); + let state_with_extensions = StateWithExtensions::::unpack(mint_data).unwrap(); + let extension = state_with_extensions + .get_extension::() + .unwrap(); + + assert_eq!( + i16::from_le_bytes(extension.current_rate.0), + 100, + "Interest Rate Mismatch" + ); + + // Update Rate + let ix: Instruction = update_rate(payer.pubkey(), mint.pubkey(), 1500); + let tx = Transaction::new_signed_with_payer( + &[ix], + Some(&payer.pubkey()), + &[&payer], + blockhash, + ); + let res = banks.process_transaction(tx).await; + assert!(res.is_ok()); + + + //Get mint data + let mint_account = banks.get_account(mint.pubkey()).await.unwrap().unwrap(); + + let mint_data = mint_account.data.as_slice(); + let state_with_extensions = StateWithExtensions::::unpack(mint_data).unwrap(); + let extension = state_with_extensions + .get_extension::() + .unwrap(); + + assert_eq!( + i16::from_le_bytes(extension.current_rate.0), + 1500, + "Interest Rate Mismatch" + ); + +} From 4f29684bfbf756b11214ffab4c43e4b36ce11606 Mon Sep 17 00:00:00 2001 From: ubadineke Date: Sat, 5 Jul 2025 21:04:24 +0100 Subject: [PATCH 11/13] steel: cpi guard extension --- tokens/token-2022/cpi-guard/steel/.gitignore | 2 + tokens/token-2022/cpi-guard/steel/Cargo.toml | 22 ++++ tokens/token-2022/cpi-guard/steel/README.md | 28 +++++ .../token-2022/cpi-guard/steel/api/Cargo.toml | 19 +++ .../cpi-guard/steel/api/src/error.rs | 10 ++ .../cpi-guard/steel/api/src/instruction.rs | 13 ++ .../token-2022/cpi-guard/steel/api/src/lib.rs | 14 +++ .../token-2022/cpi-guard/steel/api/src/sdk.rs | 17 +++ .../cpi-guard/steel/program/Cargo.toml | 27 +++++ .../cpi-guard/steel/program/src/cpi_burn.rs | 54 +++++++++ .../cpi-guard/steel/program/src/lib.rs | 22 ++++ .../cpi-guard/steel/program/tests/test.rs | 111 ++++++++++++++++++ 12 files changed, 339 insertions(+) create mode 100644 tokens/token-2022/cpi-guard/steel/.gitignore create mode 100644 tokens/token-2022/cpi-guard/steel/Cargo.toml create mode 100644 tokens/token-2022/cpi-guard/steel/README.md create mode 100644 tokens/token-2022/cpi-guard/steel/api/Cargo.toml create mode 100644 tokens/token-2022/cpi-guard/steel/api/src/error.rs create mode 100644 tokens/token-2022/cpi-guard/steel/api/src/instruction.rs create mode 100644 tokens/token-2022/cpi-guard/steel/api/src/lib.rs create mode 100644 tokens/token-2022/cpi-guard/steel/api/src/sdk.rs create mode 100644 tokens/token-2022/cpi-guard/steel/program/Cargo.toml create mode 100644 tokens/token-2022/cpi-guard/steel/program/src/cpi_burn.rs create mode 100644 tokens/token-2022/cpi-guard/steel/program/src/lib.rs create mode 100644 tokens/token-2022/cpi-guard/steel/program/tests/test.rs diff --git a/tokens/token-2022/cpi-guard/steel/.gitignore b/tokens/token-2022/cpi-guard/steel/.gitignore new file mode 100644 index 000000000..052739dbc --- /dev/null +++ b/tokens/token-2022/cpi-guard/steel/.gitignore @@ -0,0 +1,2 @@ +target +test-ledger diff --git a/tokens/token-2022/cpi-guard/steel/Cargo.toml b/tokens/token-2022/cpi-guard/steel/Cargo.toml new file mode 100644 index 000000000..fc9d5f889 --- /dev/null +++ b/tokens/token-2022/cpi-guard/steel/Cargo.toml @@ -0,0 +1,22 @@ +[workspace] +resolver = "2" +members = ["api", "program"] + +[workspace.package] +version = "0.1.0" +edition = "2021" +license = "Apache-2.0" +homepage = "" +documentation = "" +repository = "" +readme = "./README.md" +keywords = ["solana"] + +[workspace.dependencies] +steel-api = { path = "./api", version = "0.1.0" } +bytemuck = "1.14" +num_enum = "0.7" +solana-program = "2.1" +steel = "3.0" +thiserror = "1.0" +spl-token-2022 = {version = "7.0.0", features = ["no-entrypoint"]} diff --git a/tokens/token-2022/cpi-guard/steel/README.md b/tokens/token-2022/cpi-guard/steel/README.md new file mode 100644 index 000000000..cfc508fd5 --- /dev/null +++ b/tokens/token-2022/cpi-guard/steel/README.md @@ -0,0 +1,28 @@ +# Steel + +**Steel** is a ... + +## API +- [`Consts`](api/src/consts.rs) – Program constants. +- [`Error`](api/src/error.rs) – Custom program errors. +- [`Event`](api/src/event.rs) – Custom program events. +- [`Instruction`](api/src/instruction.rs) – Declared instructions. + +## Instructions +- [`Add`](program/src/add.rs) – Add ... +- [`Initialize`](program/src/initialize.rs) – Initialize ... + +## State +- [`Counter`](api/src/state/counter.rs) – Counter ... + +## Get started + +Compile your program: +```sh +steel build +``` + +Run unit and integration tests: +```sh +steel test +``` diff --git a/tokens/token-2022/cpi-guard/steel/api/Cargo.toml b/tokens/token-2022/cpi-guard/steel/api/Cargo.toml new file mode 100644 index 000000000..e514258ea --- /dev/null +++ b/tokens/token-2022/cpi-guard/steel/api/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "steel-api" +description = "API for interacting with the Steel program" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +documentation.workspace = true +repository.workspace = true +readme.workspace = true +keywords.workspace = true + +[dependencies] +bytemuck.workspace = true +num_enum.workspace = true +solana-program.workspace = true +steel.workspace = true +thiserror.workspace = true +spl-token-2022.workspace = true diff --git a/tokens/token-2022/cpi-guard/steel/api/src/error.rs b/tokens/token-2022/cpi-guard/steel/api/src/error.rs new file mode 100644 index 000000000..96e84da4d --- /dev/null +++ b/tokens/token-2022/cpi-guard/steel/api/src/error.rs @@ -0,0 +1,10 @@ +use steel::*; + +#[derive(Debug, Error, Clone, Copy, PartialEq, Eq, IntoPrimitive)] +#[repr(u32)] +pub enum SteelError { + #[error("This is a dummy error")] + Dummy = 0, +} + +error!(SteelError); diff --git a/tokens/token-2022/cpi-guard/steel/api/src/instruction.rs b/tokens/token-2022/cpi-guard/steel/api/src/instruction.rs new file mode 100644 index 000000000..02ac6272b --- /dev/null +++ b/tokens/token-2022/cpi-guard/steel/api/src/instruction.rs @@ -0,0 +1,13 @@ +use steel::*; + +#[repr(u8)] +#[derive(Clone, Copy, Debug, Eq, PartialEq, TryFromPrimitive)] +pub enum SteelInstruction { + CpiBurn = 0, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug, Pod, Zeroable)] +pub struct CpiBurn {} + +instruction!(SteelInstruction, CpiBurn); diff --git a/tokens/token-2022/cpi-guard/steel/api/src/lib.rs b/tokens/token-2022/cpi-guard/steel/api/src/lib.rs new file mode 100644 index 000000000..2c146dac0 --- /dev/null +++ b/tokens/token-2022/cpi-guard/steel/api/src/lib.rs @@ -0,0 +1,14 @@ +pub mod error; +pub mod instruction; +pub mod sdk; + +pub mod prelude { + pub use crate::error::*; + pub use crate::instruction::*; + pub use crate::sdk::*; +} + +use steel::*; + +// TODO Set program id +declare_id!("z7msBPQHDJjTvdQRoEcKyENgXDhSRYeHieN1ZMTqo35"); diff --git a/tokens/token-2022/cpi-guard/steel/api/src/sdk.rs b/tokens/token-2022/cpi-guard/steel/api/src/sdk.rs new file mode 100644 index 000000000..0a51d4c63 --- /dev/null +++ b/tokens/token-2022/cpi-guard/steel/api/src/sdk.rs @@ -0,0 +1,17 @@ +use steel::*; + +use crate::prelude::*; + +pub fn cpi_burn(signer: Pubkey, mint: Pubkey, recipient_token_account: Pubkey) -> Instruction { + Instruction { + program_id: crate::ID, + accounts: vec![ + AccountMeta::new(signer, true), + AccountMeta::new(mint, false), + AccountMeta::new(recipient_token_account, false), + AccountMeta::new_readonly(system_program::ID, false), + AccountMeta::new_readonly(spl_token_2022::ID, false), + ], + data: CpiBurn {}.to_bytes(), + } +} diff --git a/tokens/token-2022/cpi-guard/steel/program/Cargo.toml b/tokens/token-2022/cpi-guard/steel/program/Cargo.toml new file mode 100644 index 000000000..11f2289d0 --- /dev/null +++ b/tokens/token-2022/cpi-guard/steel/program/Cargo.toml @@ -0,0 +1,27 @@ +[package] +name = "steel-program" +description = "" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +documentation.workspace = true +repository.workspace = true +readme.workspace = true +keywords.workspace = true + +[lib] +crate-type = ["cdylib", "lib"] + +[dependencies] +steel-api.workspace = true +solana-program.workspace = true +steel.workspace = true +spl-token-2022.workspace = true + +[dev-dependencies] +base64 = "0.21" +rand = "0.8.5" +solana-program-test = "2.1" +solana-sdk = "2.1" +tokio = { version = "1.35", features = ["full"] } diff --git a/tokens/token-2022/cpi-guard/steel/program/src/cpi_burn.rs b/tokens/token-2022/cpi-guard/steel/program/src/cpi_burn.rs new file mode 100644 index 000000000..a165c07db --- /dev/null +++ b/tokens/token-2022/cpi-guard/steel/program/src/cpi_burn.rs @@ -0,0 +1,54 @@ +use solana_program::{msg, program::invoke}; +use spl_token_2022::instruction::{burn, mint_to}; +use steel::*; + +pub fn process_cpi_burn(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResult { + // Load accounts. + let [signer_info, mint_info, recipient_token_account_info, system_program, token_program] = + accounts + else { + return Err(ProgramError::NotEnoughAccountKeys); + }; + + //Validation + signer_info.is_signer()?; + recipient_token_account_info.is_writable()?; + token_program.is_program(&spl_token_2022::ID)?; + system_program.is_program(&system_program::ID)?; + + invoke( + &mint_to( + token_program.key, + mint_info.key, + recipient_token_account_info.key, + signer_info.key, + &[], + 1000, + )?, + &[ + mint_info.clone(), + recipient_token_account_info.clone(), + signer_info.clone(), + ], + )?; + + invoke( + &burn( + token_program.key, + recipient_token_account_info.key, + mint_info.key, + signer_info.key, + &[], + 100, + )?, + &[ + recipient_token_account_info.clone(), + mint_info.clone(), + signer_info.clone(), + ], + )?; + + msg!("Cpi Guard Extension: Mint Checked."); + + Ok(()) +} diff --git a/tokens/token-2022/cpi-guard/steel/program/src/lib.rs b/tokens/token-2022/cpi-guard/steel/program/src/lib.rs new file mode 100644 index 000000000..7958c6be8 --- /dev/null +++ b/tokens/token-2022/cpi-guard/steel/program/src/lib.rs @@ -0,0 +1,22 @@ +mod cpi_burn; + +use cpi_burn::*; + +use steel::*; +use steel_api::prelude::*; + +pub fn process_instruction( + program_id: &Pubkey, + accounts: &[AccountInfo], + data: &[u8], +) -> ProgramResult { + let (ix, data) = parse_instruction(&steel_api::ID, program_id, data)?; + + match ix { + SteelInstruction::CpiBurn => process_cpi_burn(accounts, data)?, + } + + Ok(()) +} + +entrypoint!(process_instruction); diff --git a/tokens/token-2022/cpi-guard/steel/program/tests/test.rs b/tokens/token-2022/cpi-guard/steel/program/tests/test.rs new file mode 100644 index 000000000..a28f5109f --- /dev/null +++ b/tokens/token-2022/cpi-guard/steel/program/tests/test.rs @@ -0,0 +1,111 @@ +use solana_program::{hash::Hash, program_pack::Pack}; +use solana_program_test::{processor, BanksClient, ProgramTest}; +use solana_sdk::{ + signature::Keypair, signer::Signer, system_instruction::create_account, + transaction::Transaction, +}; +use spl_token_2022::{ + extension::{cpi_guard::instruction::enable_cpi_guard, ExtensionType}, + instruction::{initialize_account3, initialize_mint2}, + state::{Account, Mint}, +}; +use steel_api::prelude::*; + +async fn setup() -> (BanksClient, Keypair, Hash) { + let mut program_test = ProgramTest::new( + "steel_program", + steel_api::ID, + processor!(steel_program::process_instruction), + ); + program_test.prefer_bpf(true); + program_test.start().await +} + +#[tokio::test] +async fn run_test() { + // Setup test + let (mut banks, payer, blockhash) = setup().await; + + let mint = Keypair::new(); + let token_acc = Keypair::new(); + + //Setup Mint. + let create_mint_ix = create_account( + &payer.pubkey(), + &mint.pubkey(), + banks.get_rent().await.unwrap().minimum_balance(Mint::LEN), + Mint::LEN as u64, + &spl_token_2022::ID, + ); + let init_mint_ix = initialize_mint2( + &spl_token_2022::ID, + &mint.pubkey(), + &payer.pubkey(), + None, + 6, + ) + .unwrap(); + + //Setup Token Account + let space = + ExtensionType::try_calculate_account_len::(&[ExtensionType::CpiGuard]).unwrap(); + + let create_acc_ix = create_account( + &payer.pubkey(), + &token_acc.pubkey(), + banks.get_rent().await.unwrap().minimum_balance(space), + space as u64, + &spl_token_2022::ID, + ); + + let init_acc_ix = initialize_account3( + &spl_token_2022::ID, + &token_acc.pubkey(), + &mint.pubkey(), + &payer.pubkey(), + ) + .unwrap(); + + //Initialize Cpi Guard Extension + let enable_cpi_guard_ix = enable_cpi_guard( + &spl_token_2022::ID, + &token_acc.pubkey(), + &payer.pubkey(), + &[], + ) + .unwrap(); + + let tx = Transaction::new_signed_with_payer( + &[ + create_mint_ix, + init_mint_ix, + create_acc_ix, + init_acc_ix, + enable_cpi_guard_ix, + ], + Some(&payer.pubkey()), + &[&payer, &mint, &token_acc], + blockhash, + ); + let res = banks.process_transaction(tx).await; + assert!(res.is_ok()); + + //Try to burn tokens via cpi, should fail + let cpi_burn_ix = cpi_burn(payer.pubkey(), mint.pubkey(), token_acc.pubkey()); + + let tx = Transaction::new_signed_with_payer( + &[cpi_burn_ix], + Some(&payer.pubkey()), + &[&payer], + blockhash, + ); + let res = banks.process_transaction(tx).await; + + let err_string = format!("{:?}", res); + + assert!( + err_string.contains("Custom(43)"), + "Expected TokenError::CpiGuardBurnBlocked(43) , got: {}", + err_string + ); +} From 248640264904faea261d28cb5308b56cdc0ec0d0 Mon Sep 17 00:00:00 2001 From: ubadineke Date: Sat, 5 Jul 2025 21:15:31 +0100 Subject: [PATCH 12/13] extra test case(cpi_guard) --- .../cpi-guard/steel/program/tests/test.rs | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/tokens/token-2022/cpi-guard/steel/program/tests/test.rs b/tokens/token-2022/cpi-guard/steel/program/tests/test.rs index a28f5109f..b3e599385 100644 --- a/tokens/token-2022/cpi-guard/steel/program/tests/test.rs +++ b/tokens/token-2022/cpi-guard/steel/program/tests/test.rs @@ -5,7 +5,10 @@ use solana_sdk::{ transaction::Transaction, }; use spl_token_2022::{ - extension::{cpi_guard::instruction::enable_cpi_guard, ExtensionType}, + extension::{ + cpi_guard::instruction::{disable_cpi_guard, enable_cpi_guard}, + ExtensionType, + }, instruction::{initialize_account3, initialize_mint2}, state::{Account, Mint}, }; @@ -108,4 +111,23 @@ async fn run_test() { "Expected TokenError::CpiGuardBurnBlocked(43) , got: {}", err_string ); + + //Disable CPI Guard and try burn again, should pass + let disable_cpi_ix = disable_cpi_guard( + &spl_token_2022::ID, + &token_acc.pubkey(), + &payer.pubkey(), + &[], + ) + .unwrap(); + let cpi_burn_ix = cpi_burn(payer.pubkey(), mint.pubkey(), token_acc.pubkey()); + + let tx = Transaction::new_signed_with_payer( + &[disable_cpi_ix, cpi_burn_ix], + Some(&payer.pubkey()), + &[&payer], + blockhash, + ); + let res = banks.process_transaction(tx).await; + assert!(res.is_ok()); } From db74e0fea698e353443a15c960801d3955822331 Mon Sep 17 00:00:00 2001 From: ubadineke Date: Tue, 8 Jul 2025 10:36:36 +0100 Subject: [PATCH 13/13] cleanup --- .../cpi-guard/steel/program/src/cpi_burn.rs | 2 +- .../steel/program/tests/spl_token_2022.so | Bin 777552 -> 0 bytes .../steel/program/tests/test.rs | 3 +-- 3 files changed, 2 insertions(+), 3 deletions(-) delete mode 100755 tokens/token-2022/default-account-state/steel/program/tests/spl_token_2022.so diff --git a/tokens/token-2022/cpi-guard/steel/program/src/cpi_burn.rs b/tokens/token-2022/cpi-guard/steel/program/src/cpi_burn.rs index a165c07db..417e8a760 100644 --- a/tokens/token-2022/cpi-guard/steel/program/src/cpi_burn.rs +++ b/tokens/token-2022/cpi-guard/steel/program/src/cpi_burn.rs @@ -48,7 +48,7 @@ pub fn process_cpi_burn(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramRe ], )?; - msg!("Cpi Guard Extension: Mint Checked."); + msg!("Cpi Guard Extension Test: Burn."); Ok(()) } diff --git a/tokens/token-2022/default-account-state/steel/program/tests/spl_token_2022.so b/tokens/token-2022/default-account-state/steel/program/tests/spl_token_2022.so deleted file mode 100755 index 65db912e9793a537857b66f11c13dcb64d214e9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 777552 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 b6lfEzmIdZeUhpX}|Kl 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

nQE*)bfAH-KOs& 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 muw-{Sc4ni0>-a6}DdP`6W+# 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 OV<6N&t)}WznyRhFgkn#yOGI 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 diff --git a/tokens/token-2022/default-account-state/steel/program/tests/test.rs b/tokens/token-2022/default-account-state/steel/program/tests/test.rs index ade72782b..f7020e6c2 100644 --- a/tokens/token-2022/default-account-state/steel/program/tests/test.rs +++ b/tokens/token-2022/default-account-state/steel/program/tests/test.rs @@ -19,7 +19,6 @@ async fn setup() -> (BanksClient, Keypair, Hash) { steel_api::ID, processor!(steel_program::process_instruction), ); - // program_test.add_program("spl_token_2022", spl_token_2022::ID, None); program_test.prefer_bpf(true); program_test.start().await } @@ -74,10 +73,10 @@ async fn run_test() { blockhash, ); let res = banks.process_transaction(tx).await; + assert!(res.is_err(), "MintTo unexpectedly succeeded"); let err_string = format!("{:?}", res); - // TokenError::AccountFrozen = 17 = 0x11 assert!( err_string.contains("Custom(17)"), "Expected TokenError::AccountFrozen (17), got: {}",