From b8ab2a365d5f095e771af494e5306029302c25bd Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Thu, 29 Aug 2024 13:57:24 -0400 Subject: [PATCH 001/206] Add 'authority' and 'token mint' (#393) --- docs/terminology.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/docs/terminology.md b/docs/terminology.md index 24ea1a8db..27c17ea1f 100644 --- a/docs/terminology.md +++ b/docs/terminology.md @@ -35,10 +35,23 @@ The key may be one of: The address of the program that owns the account. Only the owning program is capable of modifying the account. +See also [authority](#authority). + ## app A front-end application that interacts with a Solana cluster. +## authority + +The address of a user that has some kind of permission over an account. + +For example: + +- The ability to mint new tokens is given to the account that is the 'mint + authority' for the token mint. +- The ability to upgrade a prigram is given to the account that is the 'upgrade + authority' of a program. + ## bank state The result of interpreting all programs on the ledger at a given @@ -434,7 +447,7 @@ non-overlapping, comprising roughly equal real-world time as per See [onchain program](#onchain-program). -## sol +## SOL The [native token](#native-token) of a Solana [cluster](#cluster). @@ -490,6 +503,11 @@ same features as the [Token Program](#token-program), but comes with extensions such as confidential transfers, custom transfer logic, extended metadata, and much more. +## token mint + +An account that can produce (or 'mint') tokens. Different tokens are +distinguished by their unique token mint addresses. + ## Token Program The [Token Program](https://spl.solana.com/token) has the program ID From 08b2dce6973fb65a9ed007a482e4f852abb305d7 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Thu, 29 Aug 2024 15:48:34 -0400 Subject: [PATCH 002/206] Update create-a-token now Solana Explorer supports Token Extensions fully (#392) --- .../getstarted/how-to-create-a-token.md | 12 +++--------- .../make-a-token/token-with-metadata.png | Bin 151901 -> 138081 bytes 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/content/guides/getstarted/how-to-create-a-token.md b/content/guides/getstarted/how-to-create-a-token.md index 7a217e1a8..f26f7dbe9 100644 --- a/content/guides/getstarted/how-to-create-a-token.md +++ b/content/guides/getstarted/how-to-create-a-token.md @@ -264,15 +264,9 @@ created and uploaded. spl-token initialize-metadata mntTymSqMU4e1NEDdxJ9XoPN4MitCgQ7xxGW6AuRAWQ 'Example token' 'EXMPL' https://raw.githubusercontent.com/solana-developers/opos-asset/main/assets/CompressedCoil/metadata.json ``` -Congratulations, you created a token with metadata! Look at your token in one of -the Solana block explorers: - -- [Solana Explorer](https://explorer.solana.com/address/mntTymSqMU4e1NEDdxJ9XoPN4MitCgQ7xxGW6AuRAWQ?cluster=devnet) -- [SolanaFM](https://solana.fm/?cluster=devnet-solana) -- [SolScan](https://solscan.io/token/mntTymSqMU4e1NEDdxJ9XoPN4MitCgQ7xxGW6AuRAWQ?cluster=devnet) - -Make sure your explorer is set to devnet (if you are working on devnet) and -replace the address to your mint address starting with `mnt`. +Congratulations, you created a token with metadata! Look at your token's mint +address (starting with `mnt`) in Solana Explorer - making sure to to use devnet +(if you are working on devnet). ![Token with metadata](/assets/guides/make-a-token/token-with-metadata.png) diff --git a/public/assets/guides/make-a-token/token-with-metadata.png b/public/assets/guides/make-a-token/token-with-metadata.png index 8f59987c0837be054929aefd77027cf517785547..e9368e889d92a3198e7a45bf5724e754bafcecc6 100644 GIT binary patch literal 138081 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%0D76gO^YA$P>D^b&Qde}Q@ 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∨U7^-d(KF)Il5j9c4R>G9^-rb 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
G45a+tB;P>_FKf=}s{2lvZ2k$= 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 literal 151901 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

M*?CebP14#BB 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 Date: Tue, 3 Sep 2024 16:44:34 +0100 Subject: [PATCH 003/206] =?UTF-8?q?interact-with-wallets.md=20refactor:=20?= =?UTF-8?q?optimize=20web3=20import=20and=20add=20error=20handling=20to=20?= =?UTF-8?q?transaction=20=E2=80=A6=20(#354)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor: optimize web3 import and add error handling to transaction logic - Refactored import from 'import * as web3' to 'importing the necessary packages' for better efficiency. - Added try-catch block for robust error handling during transaction execution. - Fixed variable typo when logging transaction signature. - Improved handling for cases where connection or publicKey is unavailable. * refcator(): - Refactored `useEffect` to use `async/await` consistently instead of mixing with `.then()`/`.catch()`. - Wrapped the code in `try/catch` blocks for better error handling and to ensure any failures are properly caught. - Updated error handling to use `throw new Error()` instead of throwing strings. - Improved code readability and maintainability by centralizing the balance update logic within a single `async` function. --------- Co-authored-by: Onyewuchi Emeka --- .../intro-to-solana/interact-with-wallets.md | 146 +++++++++++------- 1 file changed, 94 insertions(+), 52 deletions(-) diff --git a/content/courses/intro-to-solana/interact-with-wallets.md b/content/courses/intro-to-solana/interact-with-wallets.md index db3c99240..924a5ea11 100644 --- a/content/courses/intro-to-solana/interact-with-wallets.md +++ b/content/courses/intro-to-solana/interact-with-wallets.md @@ -118,10 +118,10 @@ import { ConnectionProvider, WalletProvider, } from "@solana/wallet-adapter-react"; -import * as web3 from "@solana/web3.js"; +import { clusterApiUrl } from "@solana/web3.js"; export const Home: NextPage = props => { - const endpoint = web3.clusterApiUrl("devnet"); + const endpoint = clusterApiUrl("devnet"); const wallets = useMemo(() => [], []); return ( @@ -167,10 +167,15 @@ import { WalletModalProvider, WalletMultiButton, } from "@solana/wallet-adapter-react-ui"; -import * as web3 from "@solana/web3.js"; +import { + clusterApiUrl, + Transaction, + PublicKey, + SystemProgram, +} from "@solana/web3.js"; const Home: NextPage = props => { - const endpoint = web3.clusterApiUrl("devnet"); + const endpoint = clusterApiUrl("devnet"); const wallets = useMemo(() => [], []); return ( @@ -229,21 +234,33 @@ export const BalanceDisplay: FC = () => { const { publicKey } = useWallet(); useEffect(() => { - if (!connection || !publicKey) { - return; - } - - connection.onAccountChange( - publicKey, - updatedAccountInfo => { - setBalance(updatedAccountInfo.lamports / LAMPORTS_PER_SOL); - }, - "confirmed", - ); - - connection.getAccountInfo(publicKey).then(info => { - setBalance(info.lamports); - }); + const updateBalance = async () => { + if (!connection || !publicKey) { + console.error("Wallet not connected or connection unavailable"); + } + + try { + connection.onAccountChange( + publicKey, + updatedAccountInfo => { + setBalance(updatedAccountInfo.lamports / LAMPORTS_PER_SOL); + }, + "confirmed", + ); + + const accountInfo = await connection.getAccountInfo(publicKey); + + if (accountInfo) { + setBalance(accountInfo.lamports / LAMPORTS_PER_SOL); + } else { + throw new Error("Account info not found"); + } + } catch (error) { + console.error("Failed to retrieve account info:", error); + } + }; + + updateBalance(); }, [connection, publicKey]); return ( @@ -269,18 +286,28 @@ const { connection } = useConnection(); const sendSol = async event => { event.preventDefault(); - const transaction = new web3.Transaction(); - const recipientPubKey = new web3.PublicKey(event.target.recipient.value); + if (!publicKey) { + console.error("Wallet not connected"); + return; + } + + try { + const recipientPubKey = new PublicKey(event.currentTarget.recipient.value); + + const transaction = new Transaction(); + const sendSolInstruction = SystemProgram.transfer({ + fromPubkey: publicKey, + toPubkey: recipientPubKey, + lamports: 0.1 * LAMPORTS_PER_SOL, + }); - const sendSolInstruction = web3.SystemProgram.transfer({ - fromPubkey: publicKey, - toPubkey: recipientPubKey, - lamports: 0.1 * LAMPORTS_PER_SOL, - }); + transaction.add(sendSolInstruction); - transaction.add(sendSolInstruction); - const signature = sendTransaction(transaction, connection); - console.log(signature); + const signature = await sendTransaction(transaction, connection); + console.log(`Transaction signature: ${signature}`); + } catch (error) { + console.error("Transaction failed", error); + } }; ``` @@ -401,12 +428,12 @@ import { WalletProvider, } from "@solana/wallet-adapter-react"; import { WalletModalProvider } from "@solana/wallet-adapter-react-ui"; -import * as web3 from "@solana/web3.js"; +import { clusterApiUrl } from "@solana/web3.js"; import * as walletAdapterWallets from "@solana/wallet-adapter-wallets"; require("@solana/wallet-adapter-react-ui/styles.css"); const WalletContextProvider: FC<{ children: ReactNode }> = ({ children }) => { - const endpoint = web3.clusterApiUrl("devnet"); + const endpoint = clusterApiUrl("devnet"); const wallets = useMemo(() => [], []); return ( @@ -506,7 +533,12 @@ import `@solana/web3.js` since we’ll need it to create our transaction. ```tsx import { useConnection, useWallet } from "@solana/wallet-adapter-react"; -import * as web3 from "@solana/web3.js"; +import { + PublicKey, + Transaction, + TransactionInstruction, + sendTransaction, +} from "@solana/web3.js"; import { FC, useState } from "react"; import styles from "../styles/PingButton.module.css"; @@ -528,7 +560,12 @@ Now use the `useConnection` hook to create a `connection` constant and the ```tsx import { useConnection, useWallet } from "@solana/wallet-adapter-react"; -import * as web3 from "@solana/web3.js"; +import { + PublicKey, + Transaction, + TransactionInstruction, + sendTransaction, +} from "@solana/web3.js"; import { FC, useState } from "react"; import styles from "../styles/PingButton.module.css"; @@ -567,27 +604,32 @@ Finally, call `sendTransaction`. ```tsx const onClick = async () => { if (!connection || !publicKey) { - return; + console.error("Wallet not connected or connection unavailable"); } - const programId = new web3.PublicKey(PROGRAM_ID); - const programDataAccount = new web3.PublicKey(DATA_ACCOUNT_PUBKEY); - const transaction = new web3.Transaction(); - - const instruction = new web3.TransactionInstruction({ - keys: [ - { - pubkey: programDataAccount, - isSigner: false, - isWritable: true, - }, - ], - programId, - }); - - transaction.add(instruction); - const signature = await sendTransaction(transaction, connection); - console.log(sig); + try { + const programId = new PublicKey(PROGRAM_ID); + const programDataAccount = new PublicKey(DATA_ACCOUNT_PUBKEY); + const transaction = new Transaction(); + + const instruction = new TransactionInstruction({ + keys: [ + { + pubkey: programDataAccount, + isSigner: false, + isWritable: true, + }, + ], + programId, + }); + + transaction.add(instruction); + + const signature = await sendTransaction(transaction, connection); + console.log("Transaction Signature:", signature); + } catch (error) { + console.error("Transaction failed:", error); + } }; ``` From 52edfb1dedcba5cc5abf7cc19e2f5174f0c01164 Mon Sep 17 00:00:00 2001 From: baraz <161754323+mubarizkyc@users.noreply.github.com> Date: Tue, 3 Sep 2024 20:45:40 +0500 Subject: [PATCH 004/206] fixed Typo (#405) --- content/courses/tokens-and-nfts/token-program.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/courses/tokens-and-nfts/token-program.md b/content/courses/tokens-and-nfts/token-program.md index f06d0e69c..87b4ddc2a 100644 --- a/content/courses/tokens-and-nfts/token-program.md +++ b/content/courses/tokens-and-nfts/token-program.md @@ -457,7 +457,7 @@ async function buildTransferTransaction( ### Lab -We’re going to use the Token Token Program to create a Token Mint, create an +We’re going to use the Token Program to create a Token Mint, create an Associated Token Account, mint tokens, transfer tokens, and burn tokens. Assuming you already have a `.env` file with a `SECRET_KEY` setup per From fdcd4a8e979bca9d7665ababb94e7136016156ef Mon Sep 17 00:00:00 2001 From: baraz <161754323+mubarizkyc@users.noreply.github.com> Date: Tue, 3 Sep 2024 20:50:14 +0500 Subject: [PATCH 005/206] fix: wrong path for cryptography fundamentals (#409) * fix: wrong path for cryptography fundamentals * fix: wrong path for into to wallets * fix: wrong path for creating NFTs with Metaplex * fix: wrong path for creating NFTs with Metaplex * fix: wrong path for creating NFTs with Metaplex * fix : wrong path for previous chapter in token-program-advanced.md * Fix formatting issues in token-program-advanced.md * fix : wrong path for Transfering tokens on token-program-advanced * fix:formatting issues on token-program-advanced * fix: wrong path for anchor-pda * fix link --------- Co-authored-by: Mike MacCana --- content/courses/onchain-development/anchor-cpi.md | 2 +- .../courses/tokens-and-nfts/token-program-advanced.md | 10 ++++++---- content/courses/tokens-and-nfts/token-program.md | 6 +++--- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/content/courses/onchain-development/anchor-cpi.md b/content/courses/onchain-development/anchor-cpi.md index bda672450..35a627adc 100644 --- a/content/courses/onchain-development/anchor-cpi.md +++ b/content/courses/onchain-development/anchor-cpi.md @@ -352,7 +352,7 @@ We'll be using the `solution-pdas` branch as our starting point. Before we get started we need enable the `init-if-needed` feature and add the `anchor-spl` crate to the dependencies in `Cargo.toml`. If you need to brush up on the `init-if-needed` feature take a look at the -[Anchor PDAs and Accounts lesson](anchor-pdas). +[Anchor PDAs and Accounts lesson](/content/courses/onchain-development/anchor-pdas.md)). ```rust [dependencies] diff --git a/content/courses/tokens-and-nfts/token-program-advanced.md b/content/courses/tokens-and-nfts/token-program-advanced.md index fd9472e45..56cf2eed3 100644 --- a/content/courses/tokens-and-nfts/token-program-advanced.md +++ b/content/courses/tokens-and-nfts/token-program-advanced.md @@ -12,7 +12,8 @@ description: Finally, we'll cover burning tokens, and delegation. You may not use these in your own application, so if you're really excited about NFTs, feel free to skip -to [creating NFTs with Metaplex](/content/courses/tokens/nfts-with-metaplex)! +to +[creating NFTs with Metaplex](/content/courses/tokens-and-nfts/nfts-with-metaplex.md)! ### Burn Tokens @@ -167,16 +168,17 @@ async function buildRevokeTransaction( ### Lab This lab extends the lab from the -[previous chapter](/content/courses/tokens/token-program). +[previous chapter](/content/courses/tokens-and-nfts/token-program.md). #### 1. Delegating tokens Let's use `approve` from `spl-token` to authorize a delegate to transfer or burn up to 50 tokens from our token account. -Just like [Transferring Tokens](/content/courses/tokens/token-program) in the +Just like +[Transferring Tokens](/content/courses/tokens-and-nfts/token-program.md) in the previous lab, you can -[add a second account on devnet](/developers/courses/intro-to-solana/intro-to-cryptography) +[add a second account on devnet](/content/courses/intro-to-solana/intro-to-cryptography.md) if you like, or find a friend who has a devnet account! Create a new file `delegate-tokens.ts` diff --git a/content/courses/tokens-and-nfts/token-program.md b/content/courses/tokens-and-nfts/token-program.md index 87b4ddc2a..08794cf32 100644 --- a/content/courses/tokens-and-nfts/token-program.md +++ b/content/courses/tokens-and-nfts/token-program.md @@ -461,7 +461,7 @@ We’re going to use the Token Program to create a Token Mint, create an Associated Token Account, mint tokens, transfer tokens, and burn tokens. Assuming you already have a `.env` file with a `SECRET_KEY` setup per -[Cryptography fundamentals](/developers/courses/intro-to-solana/intro-to-cryptography). +[Cryptography fundamentals](/content/courses/intro-to-solana/intro-to-cryptography.md). ```bash npm i @solana/web3.js @solana/spl-token @solana-developers/helpers esrun @@ -766,7 +766,7 @@ account! Next, let's transfer some of the tokens we just minted using the `spl-token` library's `transfer` function. You can -[add a second account on devnet](/developers/courses/intro-to-solana/intro-to-cryptography) +[add a second account on devnet](/content/courses/intro-to-solana/intro-to-cryptography.md) if you like, or find a friend who has a devnet account and send them your token! As you saw in Explorer, the tokens currently reside in an Associated Token @@ -852,7 +852,7 @@ approval. 2. Create a new Token Mint in the `CreateMint` component. If you need a refresher on how to send transactions to a wallet for approval, have a look at the - [Wallets lesson](/developers/courses/intro-to-solana/interact-with-wallets). + [Wallets lesson](/content/courses/intro-to-solana/interact-with-wallets.md). When creating a new mint, the newly generated `Keypair` will also have to sign the transaction. When additional signers are required in addition to the From e5c7a3574a451d40d566588fffe1b6ff1177b345 Mon Sep 17 00:00:00 2001 From: 0xCipherCoder Date: Tue, 3 Sep 2024 21:39:53 +0530 Subject: [PATCH 006/206] Program Security - Updated duplicate mutable accounts lesson (#399) * Updated lesson with new version and lab * Update duplicate-mutable-accounts.md fixed module name * add link to anchor docs * Fid test language * fix test language --------- Co-authored-by: Mike MacCana --- .../duplicate-mutable-accounts.md | 208 +++++++++--------- 1 file changed, 101 insertions(+), 107 deletions(-) diff --git a/content/courses/program-security/duplicate-mutable-accounts.md b/content/courses/program-security/duplicate-mutable-accounts.md index 39ee8c079..7cb68c817 100644 --- a/content/courses/program-security/duplicate-mutable-accounts.md +++ b/content/courses/program-security/duplicate-mutable-accounts.md @@ -3,7 +3,7 @@ title: Duplicate Mutable Accounts objectives: - Explain the security risks associated with instructions that require two mutable accounts of the same type and how to avoid them - - Implement a check for duplicate mutable accounts using long-form Rust + - Implement a check for duplicate mutable accounts using native Rust - Implement a check for duplicate mutable accounts using Anchor constraints description: "Under vulnerabilities that can occur with instruction handlers that handle @@ -13,49 +13,38 @@ description: ## Summary - When an instruction requires two mutable accounts of the same type, an - attacker can pass in the same account twice, causing the account to be mutated - in unintended ways. + attacker can pass in the same account twice, leading to unintended mutations. - To check for duplicate mutable accounts in Rust, simply compare the public keys of the two accounts and throw an error if they are the same. - ```rust - if ctx.accounts.account_one.key() == ctx.accounts.account_two.key() { - return Err(ProgramError::InvalidArgument) - } - ``` +### Checking for Duplicate Mutable Accounts in Rust -- In Anchor, you can use `constraint` to add an explicit constraint to an - account checking that it is not the same as another account. +In Rust, you can simply compare the public keys of the accounts and return an +error if they are identical: + +```rust +if ctx.accounts.account_one.key() == ctx.accounts.account_two.key() { + return Err(ProgramError::InvalidArgument) +} +``` + +### Using Constraints in Anchor + +In Anchor, you can add an explicit `constraint` to an account, ensuring it is +not the same as another account. ## Lesson -Duplicate Mutable Accounts refers to an instruction that requires two mutable -accounts of the same type. When this occurs, you should validate that two -accounts are different to prevent the same account from being passed into the -instruction twice. - -Since the program treats each account as separate, passing in the same account -twice could result in the second account being mutated in unintended ways. This -could result in very minor issues, or catastrophic ones - it really depends on -what data the code changes and how these accounts are used. Regardless, this is -a vulnerability all developers should be aware of. - -#### No check - -For example, imagine a program that updates a `data` field for `user_a` and -`user_b` in a single instruction. The value that the instruction sets for -`user_a` is different from `user_b`. Without verifying that `user_a` and -`user_b` are different, the program would update the `data` field on the -`user_a` account, then update the `data` field a second time with a different -value under the assumption that `user_b` is a separate account. - -You can see this example in the code below.Tthere is no check to verify that -`user_a` and `user_b` are not the same account. Passing in the same account for -`user_a` and `user_b` will result in the `data` field for the account being set -to `b` even though the intent is to set both values `a` and `b` on separate -accounts. Depending on what `data` represents, this could be a minor unintended -side-effect, or it could mean a severe security risk. allowing `user_a` and -`user_b` to be the same account could result in +**Duplicate Mutable Accounts** occur when an instruction requires two mutable +accounts of the same type. If the same account is passed twice, it can be +mutated in unintended ways, potentially causing security vulnerabilities. + +### No check + +Consider a program that updates a data field for `user_a` and `user_b` in a +single instruction. If the same account is passed for both `user_a` and +`user_b`, the program will overwrite the data field with the second value, +potentially leading to unintended side effects. ```rust use anchor_lang::prelude::*; @@ -67,32 +56,31 @@ pub mod duplicate_mutable_accounts_insecure { use super::*; pub fn update(ctx: Context, a: u64, b: u64) -> Result<()> { - let user_a = &mut ctx.accounts.user_a; - let user_b = &mut ctx.accounts.user_b; - - user_a.data = a; - user_b.data = b; + ctx.accounts.user_a.data = a; + ctx.accounts.user_b.data = b; Ok(()) } } #[derive(Accounts)] pub struct Update<'info> { - user_a: Account<'info, User>, - user_b: Account<'info, User>, + #[account(mut)] + pub user_a: Account<'info, User>, + #[account(mut)] + pub user_b: Account<'info, User>, } #[account] +#[derive(Default)] pub struct User { - data: u64, + pub data: u64, } ``` -#### Add check in instruction +#### Adding a check in Rust -To fix this problem with plan Rust, simply add a check in the instruction logic -to verify that the public key of `user_a` isn't the same as the public key of -`user_b`, returning an error if they are the same. +To avoid this, add a check in the instruction logic to ensure the accounts are +different: ```rust if ctx.accounts.user_a.key() == ctx.accounts.user_b.key() { @@ -113,71 +101,72 @@ pub mod duplicate_mutable_accounts_secure { pub fn update(ctx: Context, a: u64, b: u64) -> Result<()> { if ctx.accounts.user_a.key() == ctx.accounts.user_b.key() { - return Err(ProgramError::InvalidArgument.into()) + return Err(ProgramError::InvalidArgument) } - let user_a = &mut ctx.accounts.user_a; - let user_b = &mut ctx.accounts.user_b; - - user_a.data = a; - user_b.data = b; + ctx.accounts.user_a.data = a; + ctx.accounts.user_b.data = b; Ok(()) } } #[derive(Accounts)] pub struct Update<'info> { - user_a: Account<'info, User>, - user_b: Account<'info, User>, + #[account(mut)] + pub user_a: Account<'info, User>, + #[account(mut)] + pub user_b: Account<'info, User>, } #[account] +#[derive(Default)] pub struct User { - data: u64, + pub data: u64, } ``` -#### Use Anchor `constraint` +#### Using Anchor Constraint -An even better solution if you're using Anchor is to add the check to the -account validation struct instead of the instruction logic. +An even better solution in Anchor is to use +[the `constraint` keyword](https://www.anchor-lang.com/docs/account-constraints) in the +account validation struct. -You can use the `#[account(..)]` attribute macro and the `constraint` keyword to -add a manual constraint to an account. The `constraint` keyword will check -whether the expression that follows evaluates to true or false, returning an -error if the expression evaluates to false. +You can use the #[account(..)] attribute macro and the constraint keyword to add +a manual constraint to an account. The constraint keyword will check whether the +expression that follows evaluates to true or false, returning an error if the +expression evaluates to false. -The example below moves the check from the instruction logic to the account -validation struct by adding a `constraint` to the `#[account(..)]` attribute. +This ensures the check is performed automatically during account validation: ```rust use anchor_lang::prelude::*; -declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"); +declare_id!("AjBhRphs24vC1V8zZM25PTuLJhJJXFnYbimsZF8jpJAS"); #[program] pub mod duplicate_mutable_accounts_recommended { use super::*; pub fn update(ctx: Context, a: u64, b: u64) -> Result<()> { - let user_a = &mut ctx.accounts.user_a; - let user_b = &mut ctx.accounts.user_b; - - user_a.data = a; - user_b.data = b; + ctx.accounts.user_a.data = a; + ctx.accounts.user_b.data = b; Ok(()) } } #[derive(Accounts)] pub struct Update<'info> { - #[account(constraint = user_a.key() != user_b.key())] - user_a: Account<'info, User>, - user_b: Account<'info, User>, + #[account( + mut, + constraint = user_a.key() != user_b.key())] + pub user_a: Account<'info, User>, + #[account(mut)] + pub user_b: Account<'info, User>, } #[account] +#[derive(Default)] pub struct User { - data: u64, + pub data: u64, } ``` @@ -188,8 +177,8 @@ how failing to check for duplicate mutable accounts can cause undefined behavior within your program. This program will initialize “player” accounts and have a separate instruction -that requires two player accounts to represent starting a game of rock paper -scissors. +that requires two player accounts to represent starting a game of rock, paper +and scissors. - An `initialize` instruction to initialize a `PlayerState` account - A `rock_paper_scissors_shoot_insecure` instruction that requires two @@ -199,7 +188,7 @@ scissors. `rock_paper_scissors_shoot_insecure` instruction but adds a constraint that ensures the two player accounts are different -#### 1. Starter +### Starter To get started, download the starter code on the `starter` branch of [this repository](https://github.com/unboxed-software/solana-duplicate-mutable-accounts/tree/starter). @@ -215,11 +204,17 @@ player, but does not check that the accounts passed into the instruction are different. This means a single account can be used for both `PlayerState` accounts in the instruction. -```rust +```rust filename="constants.rs" +pub const DISCRIMINATOR_SIZE: usize = 8; +``` + +```rust filename="lib.rs" use anchor_lang::prelude::*; -use borsh::{BorshDeserialize, BorshSerialize}; -declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"); +mod constants; +use constants::DISCRIMINATOR_SIZE; + +declare_id!("Lo5sj2wWy4BHbe8kCSUvgdhzFbv9c6CEERfgAXusBj9"); #[program] pub mod duplicate_mutable_accounts { @@ -237,7 +232,6 @@ pub mod duplicate_mutable_accounts { player_two_choice: RockPaperScissors, ) -> Result<()> { ctx.accounts.player_one.choice = Some(player_one_choice); - ctx.accounts.player_two.choice = Some(player_two_choice); Ok(()) } @@ -248,7 +242,7 @@ pub struct Initialize<'info> { #[account( init, payer = payer, - space = 8 + 32 + 8 + space = DISCRIMINATOR_SIZE + PlayerState::INIT_SPACE )] pub new_player: Account<'info, PlayerState>, #[account(mut)] @@ -265,12 +259,13 @@ pub struct RockPaperScissorsInsecure<'info> { } #[account] +#[derive(Default, InitSpace)] pub struct PlayerState { - player: Pubkey, - choice: Option, + pub player: Pubkey, + pub choice: Option, } -#[derive(Clone, Copy, BorshDeserialize, BorshSerialize)] +#[derive(AnchorSerialize, AnchorDeserialize, Clone, Copy, PartialEq, Eq, InitSpace)] pub enum RockPaperScissors { Rock, Paper, @@ -278,7 +273,7 @@ pub enum RockPaperScissors { } ``` -#### 2. Test `rock_paper_scissors_shoot_insecure` instruction +### Test rock_paper_scissors_shoot_insecure instruction The test file includes the code to invoke the `initialize` instruction twice to create two player accounts. @@ -288,8 +283,8 @@ passing in the `playerOne.publicKey` for as both `playerOne` and `playerTwo`. ```typescript describe("duplicate-mutable-accounts", () => { - ... - it("Invoke insecure instruction", async () => { + ... + it("Invokes insecure instruction", async () => { await program.methods .rockPaperScissorsShootInsecure({ rock: {} }, { scissors: {} }) .accounts({ @@ -305,7 +300,7 @@ describe("duplicate-mutable-accounts", () => { }) ``` -Run `anchor test` to see that the transactions completes successfully, even +Run `anchor test` to see that the transactions are completed successfully, even though the same account is used as two accounts in the instruction. Since the `playerOne` account is used as both players in the instruction, note the `choice` stored on the `playerOne` account is also overridden and set @@ -318,14 +313,14 @@ duplicate-mutable-accounts ✔ Invoke insecure instruction (406ms) ``` -Not only does allowing duplicate accounts not make a whole lot of sense for the -game, it also causes undefined behavior. If we were to build out this program -further, the program only has one chosen option and therefore can't compare -against a second option. The game would end in a draw every time. It's also -unclear to a human whether `playerOne`'s choice should be rock or scissors, so -the program behavior is strange. +Not only does allowing duplicate accounts do not make a whole lot of sense for +the game, but it also causes undefined behavior. If we were to build out this +program further, the program only has one chosen option and therefore can't be +compared against a second option. The game would end in a draw every time. It's +also unclear to a human whether `playerOne`'s choice should be rock or scissors, +so the program behavior is strange. -#### 3. Add `rock_paper_scissors_shoot_secure` instruction +### Add rock_paper_scissors_shoot_secure instruction Next, return to `lib.rs` and add a `rock_paper_scissors_shoot_secure` instruction that uses the `#[account(...)]` macro to add an additional @@ -335,14 +330,13 @@ instruction that uses the `#[account(...)]` macro to add an additional #[program] pub mod duplicate_mutable_accounts { use super::*; - ... + ... pub fn rock_paper_scissors_shoot_secure( ctx: Context, player_one_choice: RockPaperScissors, player_two_choice: RockPaperScissors, ) -> Result<()> { ctx.accounts.player_one.choice = Some(player_one_choice); - ctx.accounts.player_two.choice = Some(player_two_choice); Ok(()) } @@ -360,7 +354,7 @@ pub struct RockPaperScissorsSecure<'info> { } ``` -#### 7. Test `rock_paper_scissors_shoot_secure` instruction +### Test rock_paper_scissors_shoot_secure instruction To test the `rock_paper_scissors_shoot_secure` instruction, we’ll invoke the instruction twice. First, we’ll invoke the instruction using two different @@ -370,8 +364,8 @@ which we expect to fail. ```typescript describe("duplicate-mutable-accounts", () => { - ... - it("Invoke secure instruction", async () => { + ... + it("Invokes secure instruction", async () => { await program.methods .rockPaperScissorsShootSecure({ rock: {} }, { scissors: {} }) .accounts({ @@ -407,11 +401,11 @@ Run `anchor test` to see that the instruction works as intended and using the `playerOne` account twice returns the expected error. ```bash -'Program Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS invoke [1]', +'Program Lo5sj2wWy4BHbe8kCSUvgdhzFbv9c6CEERfgAXusBj9 invoke [1]', 'Program log: Instruction: RockPaperScissorsShootSecure', 'Program log: AnchorError caused by account: player_one. Error Code: ConstraintRaw. Error Number: 2003. Error Message: A raw constraint was violated.', -'Program Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS consumed 5104 of 200000 compute units', -'Program Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS failed: custom program error: 0x7d3' +'Program Lo5sj2wWy4BHbe8kCSUvgdhzFbv9c6CEERfgAXusBj9 consumed 3414 of 200000 compute units', +'Program Lo5sj2wWy4BHbe8kCSUvgdhzFbv9c6CEERfgAXusBj9 failed: custom program error: 0x7d3' ``` The simple constraint is all it takes to close this loophole. While somewhat From fb051bcd029d9b2d559b7a6fd47b8f737fa031c3 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Tue, 3 Sep 2024 12:11:34 -0400 Subject: [PATCH 007/206] Use solana-developers repos instead of old unboxed ones --- .../courses/program-security/duplicate-mutable-accounts.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/courses/program-security/duplicate-mutable-accounts.md b/content/courses/program-security/duplicate-mutable-accounts.md index 7cb68c817..44c4f4460 100644 --- a/content/courses/program-security/duplicate-mutable-accounts.md +++ b/content/courses/program-security/duplicate-mutable-accounts.md @@ -191,7 +191,7 @@ and scissors. ### Starter To get started, download the starter code on the `starter` branch -of [this repository](https://github.com/unboxed-software/solana-duplicate-mutable-accounts/tree/starter). +of [this repository](https://github.com/solana-developers/duplicate-mutable-accounts/tree/starter). The starter code includes a program with two instructions and the boilerplate setup for the test file. @@ -417,7 +417,7 @@ whether that is explicit. If you want to take a look at the final solution code you can find it on the `solution` branch of -[the repository](https://github.com/Unboxed-Software/solana-duplicate-mutable-accounts/tree/solution). +[the repository](https://github.com/solana-developers/duplicate-mutable-accounts/tree/solution). ## Challenge From 1c5676cf3085069d42717733cc8fc8568363e250 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Tue, 3 Sep 2024 12:11:40 -0400 Subject: [PATCH 008/206] prettier --- .../courses/program-security/duplicate-mutable-accounts.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/courses/program-security/duplicate-mutable-accounts.md b/content/courses/program-security/duplicate-mutable-accounts.md index 44c4f4460..c82a49f09 100644 --- a/content/courses/program-security/duplicate-mutable-accounts.md +++ b/content/courses/program-security/duplicate-mutable-accounts.md @@ -126,9 +126,9 @@ pub struct User { #### Using Anchor Constraint -An even better solution in Anchor is to use -[the `constraint` keyword](https://www.anchor-lang.com/docs/account-constraints) in the -account validation struct. +An even better solution in Anchor is to use +[the `constraint` keyword](https://www.anchor-lang.com/docs/account-constraints) +in the account validation struct. You can use the #[account(..)] attribute macro and the constraint keyword to add a manual constraint to an account. The constraint keyword will check whether the From b8bcd1222ff2a13028be11b117c11c27514ab384 Mon Sep 17 00:00:00 2001 From: baraz <161754323+mubarizkyc@users.noreply.github.com> Date: Tue, 3 Sep 2024 21:52:55 +0500 Subject: [PATCH 009/206] fix: wrong paramter for revoke instruction (#419) --- content/courses/tokens-and-nfts/token-program-advanced.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/courses/tokens-and-nfts/token-program-advanced.md b/content/courses/tokens-and-nfts/token-program-advanced.md index 56cf2eed3..16c827c38 100644 --- a/content/courses/tokens-and-nfts/token-program-advanced.md +++ b/content/courses/tokens-and-nfts/token-program-advanced.md @@ -252,7 +252,7 @@ All we will need for this function is the token account and user. After the const revokeTransactionSignature = await revoke( connection, user, - delegate, + sourceTokenAccount.address, user.publicKey, ); From 15324b60c383f86e4f67310794e63e114022e68e Mon Sep 17 00:00:00 2001 From: RonanLagan <50186158+RonanLagan@users.noreply.github.com> Date: Tue, 3 Sep 2024 22:22:23 +0200 Subject: [PATCH 010/206] Found and Fixed some typos while reading the documentation (#410) "initalization" -> "initialization" "bot" -> "not" --- content/courses/onchain-development/anchor-pdas.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/courses/onchain-development/anchor-pdas.md b/content/courses/onchain-development/anchor-pdas.md index a1e704dbd..3a2c34105 100644 --- a/content/courses/onchain-development/anchor-pdas.md +++ b/content/courses/onchain-development/anchor-pdas.md @@ -471,7 +471,7 @@ impl Space for MovieAccountState { The `Space` trait will force us to define the space of our account for initialization, by defining the `INIT_SPACE` constant. This constant can then be -used during the account initalization. +used during the account initialization. Note that, in this case, since the account state is dynamic (`title` and `description` are strings without a fixed size), we will add @@ -486,7 +486,7 @@ length storage + 4 bytes for the description length storage. ### Custom error codes During our implementation, we will be doing some checks and throwing some custom -errors in case those checks are bot successful. +errors in case those checks are not successful. For, that let's go ahead and create an enum that will contain the different type of errors as well as the error messages associated: From f974d122903174624615f86d6f4fcb119ff74063 Mon Sep 17 00:00:00 2001 From: Ayush Date: Wed, 4 Sep 2024 20:00:47 +0530 Subject: [PATCH 011/206] added nft recipes from cookbook (#383) * added nft docs from cookbook * prettier:fix * resolved mike's suggestions * ignore candymachine * added response stuff, err in redeclaring metadata variable * address * capitalize JSON * explain commented wallet code (arweave) --------- Co-authored-by: Mike MacCana --- content/cookbook/tokens/create-nft.md | 184 ++++++++++++++++++ content/cookbook/tokens/fetch-all-nfts.md | 50 +++++ content/cookbook/tokens/fetch-nft-metadata.md | 59 ++++++ content/cookbook/tokens/get-nft-owner.md | 35 ++++ 4 files changed, 328 insertions(+) create mode 100644 content/cookbook/tokens/create-nft.md create mode 100644 content/cookbook/tokens/fetch-all-nfts.md create mode 100644 content/cookbook/tokens/fetch-nft-metadata.md create mode 100644 content/cookbook/tokens/get-nft-owner.md diff --git a/content/cookbook/tokens/create-nft.md b/content/cookbook/tokens/create-nft.md new file mode 100644 index 000000000..06f2d5666 --- /dev/null +++ b/content/cookbook/tokens/create-nft.md @@ -0,0 +1,184 @@ +--- +title: How to create an NFT +sidebarSortOrder: 15 +description: "Learn how to create an NFT on Solana, using Arweave and Metaplex." +--- + +To create an NFT you have to: + +1. Upload the image to IPFS like Arweave +2. Upload the JSON metadata to Arweave or similar storage service. +3. Call metaplex to create an account for the NFT + +### Upload to Arweave + +```typescript filename="upload-to-arweave.ts" +import fs from "node:fs"; +import Arweave from "arweave"; + +(async () => { + const arweave = Arweave.init({ + host: "localhost", + port: 1984, + protocol: "http", + timeout: 20000, + logging: false, + }); + + const host = arweave.getConfig().api.host; + const port = arweave.getConfig().api.port; + const protocol = arweave.getConfig().api.protocol; + + // Upload image to Arweave + const data = fs.readFileSync("./code/nfts/upload-arweave/lowres-dog.png"); + + const transaction = await arweave.createTransaction({ + data: data, + }); + + transaction.addTag("Content-Type", "image/png"); + + // Instead of generating a new wallet, you can use an existing one from your file system + // useful in production environments + // const wallet = JSON.parse(fs.readFileSync("./code/nfts/upload-arweave/wallet.json", "utf-8")) + const wallet = await arweave.wallets.generate(); + const address = await arweave.wallets.getAddress(wallet); + console.log("address:, ", address); + + await arweave.api.get(`/mint/${encodeURI(addr)}/10000000000000000`); + await arweave.transactions.sign(transaction, wallet); + + const response = await arweave.transactions.post(transaction); + console.log(response); + + const id = transaction.id; + const imageUrl = id ? `${protocol}://${host}:${port}/${id}` : null; + console.log("imageUrl", imageUrl); + + // Upload metadata to Arweave + + const metadata = { + name: "Custom NFT #1", + symbol: "CNFT", + description: "A description about my custom NFT #1", + seller_fee_basis_points: 500, + external_url: "https://www.customnft.com/", + attributes: [ + { + trait_type: "NFT type", + value: "Custom", + }, + ], + collection: { + name: "Test Collection", + family: "Custom NFTs", + }, + properties: { + files: [ + { + uri: imageUrl, + type: "image/png", + }, + ], + category: "image", + maxSupply: 0, + creators: [ + { + address: "CBBUMHRmbVUck99mTCip5sHP16kzGj3QTYB8K3XxwmQx", + share: 100, + }, + ], + }, + image: imageUrl, + }; + + const metadataString = JSON.stringify(metadata); + + const metadataTransaction = await arweave.createTransaction({ + data: metadataString, + }); + + metadataTransaction.addTag("Content-Type", "application/json"); + + await arweave.transactions.sign(metadataTransaction, wallet); + + console.log("metadata txid", metadataTransaction.id); + + const txnResult = await arweave.transactions.post(metadataTransaction); + + console.log(txnResult); +})(); +``` + +### Mint the NFT + +```typescript filename="mint-nft.ts" +import { createUmi } from "@metaplex-foundation/umi-bundle-defaults"; +import { + generateSigner, + percentAmount, + keypairIdentity, +} from "@metaplex-foundation/umi"; +import { clusterApiUrl } from "@solana/web3.js"; +import { + createNft, + fetchDigitalAsset, + mplTokenMetadata, +} from "@metaplex-foundation/mpl-token-metadata"; +import "dotenv/config"; + +(async () => { + try { + console.log("Loading keypair from environment..."); + const privateKey = JSON.parse(process.env.SOLANA_PRIVATE_KEY || "[]"); + if (privateKey.length === 0) { + throw new Error("SOLANA_PRIVATE_KEY is not set in .env file"); + } + + console.log("Creating Umi instance..."); + const umi = createUmi(clusterApiUrl("devnet")); + + const keypair = umi.eddsa.createKeypairFromSecretKey( + new Uint8Array(privateKey), + ); + + // Use keypairIdentity to set the keypair as the signer + const signer = keypairIdentity(keypair); + umi.use(signer); + umi.use(mplTokenMetadata()); + + console.log("Keypair loaded. Public key:", keypair.publicKey); + + console.log("Generating new mint address..."); + const mint = generateSigner(umi); + + console.log("Creating NFT..."); + const { signature } = await createNft(umi, { + mint, + name: "My NFT", + // Replace this with your Arweave metadata URI + uri: "https://ffaaqinzhkt4ukhbohixfliubnvpjgyedi3f2iccrq4efh3s.arweave.net/KUAIIbk6p8oo4XHRcq0U__C2r0mwQaNl0gQow4Qp9yk", + maxSupply: 1, + sellerFeeBasisPoints: percentAmount(0), + creators: [ + { + address: keypair.publicKey, + share: 100, + verified: true, + }, + ], + }).sendAndConfirm(umi); + + console.log("NFT created successfully!"); + console.log("Mint address:", mint.publicKey); + console.log("Transaction signature:", signature); + + console.log("Fetching digital asset..."); + const asset = await fetchDigitalAsset(umi, mint.publicKey); + console.log("Digital Asset:", asset); + } catch (error) { + console.error("Error:", error); + console.error("Stack trace:", error.stack); + } +})(); +``` diff --git a/content/cookbook/tokens/fetch-all-nfts.md b/content/cookbook/tokens/fetch-all-nfts.md new file mode 100644 index 000000000..9c07bf8a7 --- /dev/null +++ b/content/cookbook/tokens/fetch-all-nfts.md @@ -0,0 +1,50 @@ +--- +title: How to get all NFTs from a wallet? +sidebarSortOrder: 18 +description: + "Learn how to fetch all non-fungible tokens (NFTs) from a wallet on Solana." +--- + +```typescript filename="get-nfts-by-wallet.ts" +import { createUmi } from "@metaplex-foundation/umi-bundle-defaults"; +import { publicKey } from "@metaplex-foundation/umi"; +import { fetchAllDigitalAssetWithTokenByOwner } from "@metaplex-foundation/mpl-token-metadata"; +import { clusterApiUrl } from "@solana/web3.js"; + +BigInt.prototype.toJSON = function () { + return this.toString(); +}; + +(async () => { + try { + // Create a UMI instance + const umi = createUmi(clusterApiUrl("devnet")); + + // The owner's public key + const ownerPublicKey = publicKey( + "2R4bHmSBHkHAskerTHE6GE1Fxbn31kaD5gHqpsPySVd7", + ); + + console.log("Fetching NFTs..."); + const allNFTs = await fetchAllDigitalAssetWithTokenByOwner( + umi, + ownerPublicKey, + ); + + console.log(`Found ${allNFTs.length} NFTs for the owner:`); + allNFTs.forEach((nft, index) => { + console.log(`\nNFT #${index + 1}:`); + console.log("Mint Address:", nft.publicKey); + console.log("Name:", nft.metadata.name); + console.log("Symbol:", nft.metadata.symbol); + console.log("URI:", nft.metadata.uri); + }); + + // If you need the full NFT data + console.log("\nFull NFT data:"); + console.log(JSON.stringify(allNFTs, null, 2)); + } catch (error) { + console.error("Error:", error); + } +})(); +``` diff --git a/content/cookbook/tokens/fetch-nft-metadata.md b/content/cookbook/tokens/fetch-nft-metadata.md new file mode 100644 index 000000000..2987d7792 --- /dev/null +++ b/content/cookbook/tokens/fetch-nft-metadata.md @@ -0,0 +1,59 @@ +--- +title: How to Fetch the NFT Metadata +sidebarSortOrder: 16 +description: + "Learn how to fetch the metadata of a non-fungible token (NFT) on Solana." +--- + +```typescript filename="get-nft-metadata.ts" +import { createUmi } from "@metaplex-foundation/umi-bundle-defaults"; +import { + createSignerFromKeypair, + generateSigner, + signerIdentity, +} from "@metaplex-foundation/umi"; +import { + fetchDigitalAsset, + mplTokenMetadata, +} from "@metaplex-foundation/mpl-token-metadata"; +import { PublicKey } from "@metaplex-foundation/js"; + +(async () => { + try { + // Create a UMI instance + const umi = createUmi("https://api.mainnet-beta.solana.com"); + + // Use the mplTokenMetadata plugin + umi.use(mplTokenMetadata()); + + // Generate a new keypair (you can replace this with your own keypair if needed) + const keypair = generateSigner(umi); + umi.use(signerIdentity(createSignerFromKeypair(umi, keypair))); + + // The mint address of the NFT you want to fetch + const mintAddress = new PublicKey( + "Ay1U9DWphDgc7hq58Yj1yHabt91zTzvV2YJbAWkPNbaK", + ); + + console.log("Fetching NFT metadata..."); + const asset = await fetchDigitalAsset(umi, mintAddress); + + console.log("NFT Metadata:"); + + // If you want to access specific metadata fields: + console.log("\nName:", asset.metadata.name); + console.log("Symbol:", asset.metadata.symbol); + console.log("URI:", asset.metadata.uri); + + // Fetch and log the JSON metadata + if (asset.metadata.uri) { + const response = await fetch(asset.metadata.uri); + const jsonMetadata = await response.json(); + console.log("\nJSON Metadata:"); + console.log(JSON.stringify(jsonMetadata, null, 2)); + } + } catch (error) { + console.error("Error:", error); + } +})(); +``` diff --git a/content/cookbook/tokens/get-nft-owner.md b/content/cookbook/tokens/get-nft-owner.md new file mode 100644 index 000000000..a8d15d134 --- /dev/null +++ b/content/cookbook/tokens/get-nft-owner.md @@ -0,0 +1,35 @@ +--- +title: How to get the owner of an NFT +sidebarSortOrder: 17 +description: + "Learn how to get the owner of a non-fungible token (NFT) on Solana." +--- + +If you have the mint key of an NFT, you can find its current owner by +sneak-peeking at the largest token account for that mint key. + +Remember that NFTs have a supply of 1, and they are indivisible, meaning that +only one token account will hold that token at any point in time, whilst all +other token accounts for that mint key will have a balance of 0. + +Once the largest token account is identified, we can retrieve its owner. + +```typescript filename="get-nft-owner.ts" +import { Connection, PublicKey } from "@solana/web3.js"; + +(async () => { + const connection = new Connection("https://api.mainnet-beta.solana.com"); + const tokenMint = "9ARngHhVaCtH5JFieRdSS5Y8cdZk2TMF4tfGSWFB9iSK"; + + const largestAccounts = await connection.getTokenLargestAccounts( + new PublicKey(tokenMint), + ); + const largestAccountInfo = await connection.getParsedAccountInfo( + largestAccounts.value[0].address, + ); + console.log(largestAccountInfo?.value?.data); + + const owner = largestAccountInfo?.value?.data?.parsed.info.owner; + console.log("NFT owner :", owner); +})(); +``` From 8b4865ec6fe1fe357540b97a48f897d0cfd5d1f9 Mon Sep 17 00:00:00 2001 From: Josef Bruseke <72322400+josefbruseke@users.noreply.github.com> Date: Wed, 4 Sep 2024 14:09:15 -0300 Subject: [PATCH 012/206] Fix typo in code reference: missing an other '='. (#398) This commit corrects a typo in a code reference where a single '=' was used instead of '==': `require!(cash_account.owner = ctx.accounts.signer, ErrorCode::InvalidSigner);` Contrary to the actual code implementation: `require!(cash_account.owner == ctx.accounts.signer.key(), ErrorCode::InvalidSigner);` This fix ensures the example or documentation accurately reflects the intended comparison logic, avoiding confusion for developers referencing this code. --- content/guides/dapps/cash-app.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/guides/dapps/cash-app.md b/content/guides/dapps/cash-app.md index a15b1a8f5..a15a8a8b5 100644 --- a/content/guides/dapps/cash-app.md +++ b/content/guides/dapps/cash-app.md @@ -400,7 +400,7 @@ Since we are directly manipulating the lamports in an account, we want to ensure that the signer of the instruction is the same as the owner of the account so that only the owner can call this instruction. This is why the following validation check was implemented: -`require!(cash_account.owner = ctx.accounts.signer, ErrorCode::InvalidSigner)`. +`require!(cash_account.owner == ctx.accounts.signer, ErrorCode::InvalidSigner)`. For error handling. the `#[error_code]` Anchor macro is used, which generates `Error` and `type Result = Result ` types to be used as return From 38fa1126ef23e8412ebfb468cfdb65e72c859432 Mon Sep 17 00:00:00 2001 From: disco-infinex <168691292+disco-infinex@users.noreply.github.com> Date: Thu, 5 Sep 2024 03:10:42 +1000 Subject: [PATCH 013/206] Fixing misnamed field in the getRecentPerformanceSamples method return type (#422) --- docs/rpc/http/getRecentPerformanceSamples.mdx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/rpc/http/getRecentPerformanceSamples.mdx b/docs/rpc/http/getRecentPerformanceSamples.mdx index 7fcabb9a4..670491666 100644 --- a/docs/rpc/http/getRecentPerformanceSamples.mdx +++ b/docs/rpc/http/getRecentPerformanceSamples.mdx @@ -31,14 +31,14 @@ An array of `RpcPerfSample` with the following fields: period - `numSlots: ` - Number of slots completed during the sample period - `samplePeriodSecs: ` - Number of seconds in a sample window -- `numNonVoteTransaction: ` - Number of non-vote transactions processed +- `numNonVoteTransactions: ` - Number of non-vote transactions processed during the sample period. - `numNonVoteTransaction` is present starting with v1.15. To get a number of + `numNonVoteTransactions` is present starting with v1.15. To get a number of voting transactions compute:
- `numTransactions - numNonVoteTransaction` + `numTransactions - numNonVoteTransactions`
@@ -65,28 +65,28 @@ curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" - { "numSlots": 126, "numTransactions": 126, - "numNonVoteTransaction": 1, + "numNonVoteTransactions": 1, "samplePeriodSecs": 60, "slot": 348125 }, { "numSlots": 126, "numTransactions": 126, - "numNonVoteTransaction": 1, + "numNonVoteTransactions": 1, "samplePeriodSecs": 60, "slot": 347999 }, { "numSlots": 125, "numTransactions": 125, - "numNonVoteTransaction": 0, + "numNonVoteTransactions": 0, "samplePeriodSecs": 60, "slot": 347873 }, { "numSlots": 125, "numTransactions": 125, - "numNonVoteTransaction": 0, + "numNonVoteTransactions": 0, "samplePeriodSecs": 60, "slot": 347748 } From 71d7730f19bbd97fc19fe6bd1877d07a551a4fc7 Mon Sep 17 00:00:00 2001 From: 0xCipherCoder Date: Wed, 4 Sep 2024 22:43:03 +0530 Subject: [PATCH 014/206] Onchain development - Updated local setup lesson (#421) * Updated lesson with additional issues and local setup instructions * Fixed grammar * Removed content not required in latest anchor version * Added output of solana test validator --- .../onchain-development/local-setup.md | 125 ++++++++++++------ 1 file changed, 83 insertions(+), 42 deletions(-) diff --git a/content/courses/onchain-development/local-setup.md b/content/courses/onchain-development/local-setup.md index 1f3bfcadf..187ee5ac5 100644 --- a/content/courses/onchain-development/local-setup.md +++ b/content/courses/onchain-development/local-setup.md @@ -2,77 +2,121 @@ title: Local Program Development objectives: - Set up a local environment for Solana program development, with Solana CLI - tools, Rust and Anchor. - - Ensure Anchor works out of the box with no errors or warnings + tools, Rust, and Anchor. + - Ensure Anchor works out of the box with no errors or warnings. description: "Setup a local development environment for building onchain programs." --- ## Summary -- To develop onchain programs on your machine, you need **Solana CLI**, **Rust** +- To develop onchain programs locally, you need the **Solana CLI**, **Rust**, and (optional, but recommended) **Anchor**. -- You can use `anchor init` to create a new blank Anchor project -- `anchor test` runs your tests, and also builds your code. +- You can use `anchor init` to create a new blank Anchor project. +- `anchor test` runs your tests and also builds your code. ## Lesson -There's no lesson here! Let's install Solana CLI tools, the Rust SDK, and -Anchor, and create a test program to ensure that our setup works. +There's no formal lesson here! Let's get hands-on by installing the Solana CLI +tools, the Rust SDK, and Anchor, and create a test program to verify that +everything is set up correctly. ## Lab -#### Extra steps for Windows users +### Extra steps for Windows users -Firstly install +First, install [Windows Terminal](https://apps.microsoft.com/detail/9N0DX20HK701) from the Microsoft store. -Then +Next, [install Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/install). -WSL provides a Linux environment that launches instantly whenever you need it -and doesn't slow your computer down. +WSL provides a Linux environment that launches instantly when needed without +slowing down your computer. -Start Windows Terminal, launch an 'Ubuntu' session inside the terminal, and -proceed with the rest of these steps. +Open Windows Terminal, start an 'Ubuntu' session and proceed with the rest of +these steps. -#### Download Rust +### Download Rust -First, download Rust by +First, install Rust by [following the instructions](https://www.rust-lang.org/tools/install): -``` +```bash curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ``` -#### Download the Solana CLI tools +### Download the Solana CLI tools -Next -[download the Solana CLI tools](https://docs.solana.com/cli/install-solana-cli-tools). +Next, +[download the Solana CLI tools](https://docs.solana.com/cli/install-solana-cli-tools): -``` +```bash sh -c "$(curl -sSfL https://release.anza.xyz/stable/install)" ``` -Afterwards, `solana -V` should show `solana-cli 1.18.x` (any number for `x` is -fine). +After installation, `solana -V` should display `solana-cli 1.18.x` (where `x` +can be any number). + +### Running the Solana Test Validator -#### Download Anchor +The Solana Test Validator is a local emulator for the Solana blockchain. It +provides developers with a private and controlled environment to build and test +Solana programs without needing to connect to a public testnet or mainnet. -Finally [download Anchor](https://www.anchor-lang.com/docs/installation): +To start the Solana Test Validator, run the following command: +```bash +solana-test-validator +``` + +When running `solana-test-validator`, you should see output indicating that the +validator is working correctly. Below is an example of what the output should +look like: + +```bash +$ solana-test-validator +--faucet-sol argument ignored, ledger already exists +Ledger location: test-ledger +Log: test-ledger/validator.log +⠴ Initializing... +Waiting for fees to stabilize 1... +Identity: J8yKZJa5NtcmCQqmBRC6Fe8X6AECo8Vc3d7L3dF9JPiM +Genesis Hash: FTPnCMDzTEthZxE6DvHbsWWv83F2hFe1GFvpVFBMUoys +Version: 1.18.22 +Shred Version: 49491 +Gossip Address: 127.0.0.1:1024 +TPU Address: 127.0.0.1:1027 +JSON RPC URL: http://127.0.0.1:8899 +WebSocket PubSub URL: ws://127.0.0.1:8900 +⠄ 00:00:25 | Processed Slot: 114 | Confirmed Slot: 114 | Finalized Slot: 82 | Full Snapshot Slot: - | Incremental Snapshot Slot: - | Transactions: 111 | ◎499.999445000 ``` + +If you see this output, it means the Solana test validator is running correctly. +You should cancel the process by pressing CTRL + C, as you'll need to run the +anchor test command next. + +For more detailed information, you can refer to the +[Solana Test Validator guide](https://solana.com/developers/guides/getstarted/solana-test-validator). + +### Download Anchor + +Finally, [download Anchor](https://www.anchor-lang.com/docs/installation): + +```bash cargo install --git https://github.com/coral-xyz/anchor avm --locked --force avm install latest avm use latest ``` -Afterwards, `anchor -V` should show `anchor-cli 0.30.0`. +After installation, `anchor -V` should display `anchor-cli 0.30.1`. For more +detailed information on Anchor, refer to +[The Anchor Book](https://book.anchor-lang.com). -#### Check your Anchor installation +### Verify your Anchor Installation -Create a temporary project, with the default contents, using Anchor and make -sure it compiles and runs our tests: +Create a temporary project with the default contents using Anchor and ensure it +compiles and runs: ```bash anchor init temp-project @@ -80,31 +124,27 @@ cd temp-project anchor test ``` -**The `anchor test` command should complete with no errors or warnings**. -However you may encounter issues, and we'll fix them below: +**The `anchor test` command should complete without errors or warnings**. If you +encounter issues, we’ll address them below: -##### `package `solana-program v1.18.12` cannot be built because it requires rustc 1.75.0 or newer` error +#### Error: `package 'solana-program v1.18.12' cannot be built because it requires rustc 1.75.0 or newer` Run `cargo add solana-program@"=1.18.x"`, where `x` matches your version of `solana-cli`. Then re-run `anchor test`. -##### `Error: Unable to read keypair file` +#### Error: `Unable to read keypair file` Add a keypair to `.config/solana/id.json`. You can either copy a keypair from an `.env` file (just the array of numbers) into a file or use the command `solana-keygen new --no-bip39-passphrase` to create a new keypair file. Then re-run `anchor test`. -##### `unused variable: 'ctx'` warning - -This simply means the `initialize` instruction handler isn't doing anything yet. -You can open `programs/favorites/src/lib.rs` and change `ctx` to `_ctx` or just -go onto the next step. +#### Error: `Your configured rpc port: 8899 is already in use` -##### `No license field in package.json` warning - -Open package.json, add `"license": "MIT"` or `"license": "UNLICENSED"` depending -on preferences +If you are running `solana-test-validator`, you may encounter the error +`Error: Your configured rpc port: 8899 is already in use` when running +`anchor test`. To resolve this, stop the `solana-test-validator` before running +`anchor test`. #### All done? @@ -112,6 +152,7 @@ Ensure `anchor test` completes successfully - with no warnings and no errors - before continuing. + Push your code to GitHub and [tell us what you thought of this lesson](https://form.typeform.com/to/IPH0UGz7#answers-lesson=aa0b56d6-02a9-4b36-95c0-a817e2c5b19d)! From 14155b1ffd7341edd4190a77cfe142b05e7c7b00 Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 4 Sep 2024 23:05:04 +0530 Subject: [PATCH 015/206] onchain-development anchor-pdas updated (#391) * onchain anchor-pdas updated * onchain anchor-pdas updated * minor refactor * discriminator type u8 -> usize * BORSH_LEN variable renamed to STRING_SIZE_SPACE --- .../onchain-development/anchor-pdas.md | 162 +++++++++--------- 1 file changed, 79 insertions(+), 83 deletions(-) diff --git a/content/courses/onchain-development/anchor-pdas.md b/content/courses/onchain-development/anchor-pdas.md index 3a2c34105..32929e2a3 100644 --- a/content/courses/onchain-development/anchor-pdas.md +++ b/content/courses/onchain-development/anchor-pdas.md @@ -24,16 +24,14 @@ In this lesson you'll learn how to work with PDAs, reallocate accounts, and close accounts in Anchor. Recall that Anchor programs separate instruction logic from account validation. -Account validation primarily happens within structs that represent the list of -accounts needed for a given instruction. Each field of the struct represents a -different account, and you can customize the validation performed on the account -using the `#[account(...)]` attribute macro. +Account validation happens in structs that list the accounts needed for an +instruction. Each field in the struct represents an account, and you can +customize the validation using the `#[account(...)]` attribute macro. -In addition to using constraints for account validation, some constraints can -handle repeatable tasks that would otherwise require a lot of boilerplate inside -our instruction logic. This lesson will introduce the `seeds`, `bump`, -`realloc`, and `close` constraints to help you initialize and validate PDAs, -reallocate accounts, and close accounts. +In addition to validating accounts, some constraints can automate tasks that +would otherwise require repetitive code in our instructions. This lesson will +cover the `seeds`, `bump`, `realloc`, and `close` constraints to help you easily +handle PDAs, reallocate space, and close accounts. ### PDAs with Anchor @@ -54,31 +52,38 @@ struct ExampleAccounts { } ``` -During account validation, Anchor will derive a PDA using the seeds specified in -the `seeds` constraint and verify that the account passed into the instruction -matches the PDA found using the specified `seeds`. +During account validation, Anchor will use the specified seeds to derive a PDA +and check if the provided account matches the derived PDA. When the `bump` constraint is included without specifying a specific bump, -Anchor will default to using the canonical bump (the first bump that results in -a valid PDA). In most cases you should use the canonical bump. +Anchor will use the canonical bump (the first bump that results in a valid PDA, +with a value of 255). Typically, you should use the canonical bump. -You can access other fields from within the struct from constraints, so you can -specify seeds that are dependent on other accounts like the signer's public key. +You can also use other fields from within the struct as seeds, such as the +signer's public key. You can also reference the deserialized instruction data if you add the `#[instruction(...)]` attribute macro to the struct. -For example, the following example shows a list of accounts that include -`pda_account` and `user`. The `pda_account` is constrained such that the seeds -must be the string "example_seed," the public key of `user`, and the string -passed into the instruction as `instruction_data`. +For example, the following example shows a list of accounts that include: + +- `pda_account` +- `user` + +The `pda_account` is constrained such that the seeds must be the string +"example_seed," the public key of `user`, and the string passed into the +instruction as `instruction_data`. ```rust #[derive(Accounts)] #[instruction(instruction_data: String)] pub struct Example<'info> { #[account( - seeds = [b"example_seed", user.key().as_ref(), instruction_data.as_ref()], + seeds = [ + b"example_seed", + user.key().as_ref(), + instruction_data.as_ref() + ], bump )] pub pda_account: Account<'info, AccountType>, @@ -96,11 +101,12 @@ validation will fail. You can combine the `seeds` and `bump` constraints with the `init` constraint to initialize an account using a PDA. -Recall that the `init` constraint must be used in combination with the `payer` -and `space` constraints to specify the account that will pay for account -initialization and the space to allocate on the new account. Additionally, you -must include `system_program` as one of the fields of the account validation -struct. +Recall that the `init` constraint must be used with the `payer` and `space` +constraints to specify who pays for the account initialization and how much +space to allocate. + +Additionally, you need to include `system_program` to handle the creation and +funding of the new account. ```rust #[derive(Accounts)] @@ -110,7 +116,7 @@ pub struct InitializePda<'info> { seeds = [b"example_seed", user.key().as_ref()], bump, payer = user, - space = 8 + 8 + space = DISCRIMINATOR + Accountype::INIT_SPACE )] pub pda_account: Account<'info, AccountType>, #[account(mut)] @@ -119,9 +125,12 @@ pub struct InitializePda<'info> { } #[account] +#[derive(InitSpace)] pub struct AccountType { pub data: u64, } + +const DISCRIMINATOR: usize = 8; ``` When using `init` for non-PDA accounts, Anchor defaults to setting the owner of @@ -134,18 +143,11 @@ words, the signature verification for the initialization of the PDA account would fail if the program ID used to derive the PDA did not match the program ID of the executing program. -When determining the value of `space` for an account initialized and owned by -the executing Anchor program, remember that the first 8 bytes are reserved for -the account discriminator. This is an 8-byte value that Anchor calculates and -uses to identify the program account types. You can use this -[reference](https://www.anchor-lang.com/docs/space) to calculate how much space -you should allocate for an account. - #### Seed inference The account list for an instruction can get really long for some programs. To simplify the client-side experience when invoking an Anchor program instruction, -we can turn on seed inference. +we can turn on **seed inference**. Seed inference adds information about PDA seeds to the IDL so that Anchor can infer PDA seeds from existing call-site information. In the previous example, @@ -299,7 +301,7 @@ pub struct ReallocExample<'info> { mut, seeds = [b"example_seed", user.key().as_ref()], bump, - realloc = 8 + 4 + instruction_data.len(), + realloc = DISCRIMINATOR + STRING_SIZE_SPACE + instruction_data.len(), realloc::payer = user, realloc::zero = false, )] @@ -310,29 +312,35 @@ pub struct ReallocExample<'info> { } #[account] +#[derive(InitSpace)] pub struct AccountType { pub data: String, } + +const DISCRIMINATOR: usize = 8; +const STRING_SIZE_SPACE: usize = 4; ``` -Notice that `realloc` is set to `8 + 4 + instruction_data.len()`. This breaks -down as follows: +The `realloc` constraint from the above example can be broken down as follows: -- `8` is for the account discriminator -- `4` is for the 4 bytes of space that BORSH uses to store the length of the - string +- the `DISCRIMINATOR` is `8` +- the `STRING_SIZE_SPACE` is `4` for the space required to store the length of + the string. As required by BORSH serialization - `instruction_data.len()` is the length of the string itself +> [BORSH](https://solanacookbook.com/guides/serialization.html) stands for +> _Binary Object Representation Serializer for Hashing_ and is used to +> efficiently and compactly serialize and deserialize data structures. + If the change in account data length is additive, lamports will be transferred from the `realloc::payer` to the account to maintain rent exemption. Likewise, if the change is subtractive, lamports will be transferred from the account back to the `realloc::payer`. -The `realloc::zero` constraint is required to determine whether the new memory -should be zero initialized after reallocation. This constraint should be set to -true in cases where you expect the memory of an account to shrink and expand -multiple times. That way you zero out space that would otherwise show as stale -data. +The `realloc::zero` constraint ensures that any new memory allocated during +reallocation is set to zero. This should be set to true if you expect the memory +of an account to change size frequently. This way, you clear out any old data +that might otherwise remain. ### Close @@ -340,12 +348,10 @@ The `close` constraint provides a simple and secure way to close an existing account. The `close` constraint marks the account as closed at the end of the -instruction’s execution by setting its discriminator to -the `CLOSED_ACCOUNT_DISCRIMINATOR` and sends its lamports to a specified -account. Setting the discriminator to a special variant makes account revival -attacks (where a subsequent instruction adds the rent exemption lamports again) -impossible. If someone tries to reinitialize the account, the reinitialization -will fail the discriminator check and be considered invalid by the program. +instruction’s execution by setting its discriminator to a _special value_ called +`CLOSED_ACCOUNT_DISCRIMINATOR` and sends its lamports to a specified account. +This _special value_ prevents the account from being reopened because any +attempt to reinitialize the account will fail the discriminator check. The example below uses the `close` constraint to close the `data_account` and sends the lamports allocated for rent to the `receiver` account. @@ -381,7 +387,7 @@ This program will allow users to: To begin, let’s create a new project using `anchor init`. -```shell +```bash anchor init anchor-movie-review-program ``` @@ -448,40 +454,27 @@ pub mod anchor_movie_review_program { } #[account] +#[derive(InitSpace)] pub struct MovieAccountState { pub reviewer: Pubkey, // 32 pub rating: u8, // 1 + #[max_len(20)] pub title: String, // 4 + len() + #[max_len(50)] pub description: String, // 4 + len() } -``` - -For this account struct, we will be implementing the space trait: -```rust -/* - For the MovieAccountState account, since it is dynamic, we implement the Space trait to calculate the space required for the account. - We add the STRING_LENGTH_PREFIX twice to the space to account for the title and description string prefix. - We need to add the length of the title and description to the space upon initialization. - */ -impl Space for MovieAccountState { - const INIT_SPACE: usize = ANCHOR_DISCRIMINATOR + PUBKEY_SIZE + U8_SIZE + STRING_LENGTH_PREFIX + STRING_LENGTH_PREFIX; -} +const DISCRIMINATOR: usize = 8; ``` -The `Space` trait will force us to define the space of our account for -initialization, by defining the `INIT_SPACE` constant. This constant can then be -used during the account initialization. - -Note that, in this case, since the account state is dynamic (`title` and -`description` are strings without a fixed size), we will add -`STRING_LENGTH_PREFIX` that represents 4 bytes (required to store their length) -but we still need to add the length of the actual context of both strings during -our account initialization (You will see that in the following steps). +Using the `#[derive(InitSpace)]` macro on the `AccountStruct` automatically +calculates the `INIT_SPACE` constant which represents the space required for the +account fields, including fixed-size fields and the length-prefixed strings. -In sum, our `INIT_SPACE` constant will be 8 bytes for the anchor discriminator + -32 bytes for the reviewer Pubkey + 1 byte for the rating + 4 bytes for the title -length storage + 4 bytes for the description length storage. +In cases of dynamic fields like strings, we can use the `#[max_len]` macro to +specify the maximum length of these fields to determining the space needed for +the account during initialization. Here, we have chosen the `title` string to be +of length 20 (max), and the `description` string to be of length 50 (max). ### Custom error codes @@ -536,6 +529,11 @@ The `require!` macro will perform a check and throw a custom error in case that check is not successful. ```rust +const MIN_RATING: u8 = 1; +const MAX_RATING: u8 = 5; +const MAX_TITLE_LENGTH: usize = 20; +const MAX_DESCRIPTION_LENGTH: usize = 50; + #[program] pub mod anchor_movie_review_program{ use super::*; @@ -585,9 +583,7 @@ Remember, you'll need the following macros: The `movie_review` account is a PDA that needs to be initialized, so we'll add the `seeds` and `bump` constraints as well as the `init` constraint with its -required `payer` and `space` constraints. Regarding the required space, we will -be using the `INIT_SPACE` constant that we defined in the account struct, and we -will add the string length of the both the title and the description. +required `payer` and `space` constraints. For the PDA seeds, we'll use the movie title and the reviewer's public key. The payer for the initialization should be the reviewer, and the space allocated on @@ -603,7 +599,7 @@ pub struct AddMovieReview<'info> { seeds = [title.as_bytes(), initializer.key().as_ref()], bump, payer = initializer, - space = MovieAccountState::INIT_SPACE + title.len() + description.len() // We add the length of the title and description to the init space + space = DISCRIMINATOR + MovieAccountState::INIT_SOACE )] pub movie_review: Account<'info, MovieAccountState>, #[account(mut)] @@ -678,7 +674,7 @@ pub struct UpdateMovieReview<'info> { mut, seeds = [title.as_bytes(), initializer.key().as_ref()], bump, - realloc = MovieAccountState::INIT_SPACE + title.len() + description.len(), // We add the length of the title and description to the init space + realloc = DISCRIMINATOR + MovieAccountState::INIT_SOACE realloc::payer = initializer, realloc::zero = true, )] @@ -854,7 +850,7 @@ it("Deletes a movie review", async () => { Lastly, run `anchor test` and you should see the following output in the console. -```shell +```bash anchor-movie-review-program ✔ Movie review is added` (139ms) ✔ Movie review is updated` (404ms) From f723c6b94e400af19a77934ea7b3ae3a55bd5ac1 Mon Sep 17 00:00:00 2001 From: Jimii <30603522+jim4067@users.noreply.github.com> Date: Wed, 4 Sep 2024 21:35:13 +0300 Subject: [PATCH 016/206] feat: update tokens-and-nfts/nfts-with-metaplex to use mpl-token-metadata (#339) * feat: update tutorial to use umi * fix: draft changes * fix: missed comments * chore: remove vscode config directory * feat: add images, move verify nft into own section --- .gitignore | 5 +- .../tokens-and-nfts/nfts-with-metaplex.md | 875 +++++++++++------- public/assets/courses/unboxed/image.png | Bin 0 -> 145568 bytes .../solana-explorer-metaplex-collection.png | Bin 0 -> 148384 bytes .../unboxed/solana-explorer-metaplex-nft.png | Bin 0 -> 147909 bytes .../unboxed/solana-explorer-verified-nft.png | Bin 0 -> 77985 bytes .../solana-explorer-with-updated-NFT.png | Bin 0 -> 160058 bytes 7 files changed, 528 insertions(+), 352 deletions(-) create mode 100644 public/assets/courses/unboxed/image.png create mode 100644 public/assets/courses/unboxed/solana-explorer-metaplex-collection.png create mode 100644 public/assets/courses/unboxed/solana-explorer-metaplex-nft.png create mode 100644 public/assets/courses/unboxed/solana-explorer-verified-nft.png create mode 100644 public/assets/courses/unboxed/solana-explorer-with-updated-NFT.png diff --git a/.gitignore b/.gitignore index 21fa5828f..d8fdba97c 100644 --- a/.gitignore +++ b/.gitignore @@ -104,4 +104,7 @@ typings/ package-lock.json # translations are stored in the `i18n` via crowdin -i18n \ No newline at end of file +i18n + +# vscode configuration +.vscode \ No newline at end of file diff --git a/content/courses/tokens-and-nfts/nfts-with-metaplex.md b/content/courses/tokens-and-nfts/nfts-with-metaplex.md index 4d9b09167..acb80f9ef 100644 --- a/content/courses/tokens-and-nfts/nfts-with-metaplex.md +++ b/content/courses/tokens-and-nfts/nfts-with-metaplex.md @@ -19,8 +19,9 @@ description: files, any special traits the NFT has, and more. - The **Metaplex Token Metadata** program is an onchain program that attaches metadata to a token mint. We can interact with the Token Metadata program - using the `metaplex-foundation/js` npm module, also known as the - [Metaplex JavaScript SDK](https://github.com/metaplex-foundation/js). + using the + [Token Metadata package](https://developers.metaplex.com/token-metadata) via + Umi, a tool made by Metaplex for working with onchain programs. ### Lesson @@ -69,75 +70,108 @@ program. offchain component of NFT metadata. In the following sections, we'll cover the basics of using the -`metaplex-foundation/js` npm module (also known as the Metaplex JavaScript SDK) -to prepare assets, create NFTs, update NFTs, and associate an NFT with a broader -collection. For more information on `metaplex-foundation/js` see the -[Metaplex JavaScript SDK README](https://github.com/metaplex-foundation/js) and -the -[Metaplex JS SDK Examples](https://github.com/metaplex-foundation/js-examples). - -The Metaplex Foundation has newer mechanisms to create -NFTs, including [Umi](https://github.com/metaplex-foundation/umi) and -[MPL Core](https://github.com/metaplex-foundation/mpl-core/blob/main/clients/js/README.md) -but [Metaplex JavaScript SDK](https://github.com/metaplex-foundation/js) remains -the simplest and most popular JS/TS client to create NFTs with broad wallet -support. - -#### Metaplex instance - -A `Metaplex` instance serves as the entry point for accessing the Metaplex SDK. -This instance accepts a connection used to communicate with the cluster. -Additionally, developers can customize the SDK's interactions by specifying an -"Identity Driver" and a "Storage Driver". - -The Identity Driver is a keypair that can be used to sign transactions, which is -a requirement when creating an NFT. The Storage Driver is used to specify the -storage service you want to use for uploading assets. The `irysStorage` driver -is the default option, and it uploads assets to Irys, a permanent and -decentralized storage service. - -Below is an example of how you can set up the `Metaplex` instance for devnet. +`metaplex-foundation/token-metadata` plugin with Umi to prepare assets, create +NFTs, update NFTs, and associate an NFT with a broader collection. For more +information on `metaplex-foundation/token-metadata` see the +[developer docs for Token Metadata](https://developers.metaplex.com/token-metadata). + + +[Metaplex Core](https://developers.metaplex.com/core), is an NFT standard from Metaplex where asset details such as the owner, name, uri e.t.c are stored on a single account. However, the most common style of NFT is still by making a Solana +SPL token with some Metadata attached via the Metaplex Metadata program, so +that's what we'll be using in this tutorial. + +#### UMI instance + +Umi is a framework for making JS/TS clients for onchain programs, that was +created by Metaplex. Umi can create JS/TS clients for many programs, but in +practice, it's most commonly used to communicate to the Token Metadata program. + +Note that Umi has different implementations for many concepts than web3.js, +including Keypairs, PublicKeys, and Connections. However, it is easy to convert +from web3.js versions of these items to the Umi equivalents. + +#### Installation and setting up Umi + +First we create a new Umi instance. We can do this by either providing our own +RPC endpoint, or use the public facing Solana endpoints provided by the +`clusterApiUrl` method. + +```typescript +import { createUmi } from "@metaplex-foundation/umi-bundle-defaults"; +import { clusterApiUrl } from "@solana/web3.js"; + +const umi = createUmi(clusterApiUrl("devnet")); +``` + +Finally, we pass in the identity for our Umi instance (this is the keypair that +will be used to sign transactions) and the plugins that we will use, in our +case, this is the `metaplex-foundation/mpl-token-metadata`. ```typescript -const metaplex = Metaplex.make(connection) - .use(keypairIdentity(user)) - .use( - irysStorage({ - address: "https://devnet.irys.xyz", - providerUrl: "https://api.devnet.solana.com", - timeout: 60000, - }), - ); +import { mplTokenMetadata } from "@metaplex-foundation/mpl-token-metadata"; +import { keypairIdentity } from "@metaplex-foundation/umi"; +import { createUmi } from "@metaplex-foundation/umi-bundle-defaults"; +import { getKeypairFromFile } from "@solana-developers/helpers"; +import { promises as fs } from "fs"; +import { clusterApiUrl } from "@solana/web3.js"; + +const umi = createUmi(clusterApiUrl("devnet")); + +// load keypair from local file system +// See https://github.com/solana-developers/helpers?tab=readme-ov-file#get-a-keypair-from-a-keypair-file +const localKeypair = await getKeypairFromFile(); + +// convert to Umi compatible keypair +const umiKeypair = umi.eddsa.createKeypairFromSecretKey(localKeypair.secretKey); + +// load the MPL metadata program plugin and assign a signer to our umi instance +umi.use(keypairIdentity(umiKeypair)).use(mplTokenMetadata()); ``` -#### Upload assets +#### Uploading assets Before creating an NFT, you must prepare and upload any assets you plan to associate with the NFT. While this doesn't have to be an image, most NFTs have an image associated with them. Preparing and uploading an image involves converting the image to a buffer, -converting it to the Metaplex format using the `toMetaplexFile` function, and -finally uploading it to the designated Storage Driver. +converting the file to a +[generic file](https://developers.metaplex.com/umi/storage#generic-files) using +the `createGenericFile()` function and finally uploading it to the designated +Storage Driver. + +The `GenericFile` type allows Umi to support different file variations despite +the difference of browser files and local file system files i.e. those on your +computer. + +In action, uploading an image named `random-image.png` from your computer would +take the following steps: -The Metaplex SDK supports the creation of a new Metaplex file from either files -present on your local computer or those uploaded by a user through a browser. -You can do the former using `readFileSync()` to read the image file, then -convert it into a Metaplex file using `toMetaplexFile()`. Finally, use your -`Metaplex` instance to call `storage().upload(file)` to upload the file. The -function's return value will be the URI where the image was stored. +1. Reading the file using `readFile` into a buffer. + +2. Creating a generic file type with the files MIME Type from the buffer and + filePath. + +3. Uploading file to designated storage provider. ```typescript -const buffer = readFileSync("src/" + nftData.imageFile); -const file = toMetaplexFile(buffer, nftData.imageFile); -const imageUri = await metaplex.storage().upload(file); +let filePath = "random-image.png"; + +const buffer = await fs.readFile(filePath); +let file = createGenericFile(buffer, filePath, { + // chose the correct file MIME type https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types + contentType: "image/jpeg", +}); +const [image] = await umi.uploader.upload([file]); ``` +The function's return value will be the URI where the image was stored. + #### Upload metadata After uploading an image, it's time to upload the offchain JSON metadata using -the `nfts().uploadMetadata()` function. This will return a URI where the JSON -metadata is stored. +the `uploadJson()` method. This will return a URI where the JSON metadata is +stored. Remember, the offchain portion of the metadata includes things like the image URI as well as additional information like the name and description of the NFT. @@ -146,47 +180,57 @@ most cases, you should follow the [NFT standard](https://developers.metaplex.com/token-metadata/token-standard#the-non-fungible-standard) to ensure compatibility with wallets, programs, and applications. -To create the metadata, use the `uploadMetadata` method provided by the SDK. -This method accepts a metadata object and returns a URI that points to the -uploaded metadata. +To create the metadata, use the `uploadJson()` method provided by the SDK. This +method accepts a metadata object and returns a URI that points to the uploaded +metadata. ```typescript -const { uri } = await metaplex.nfts().uploadMetadata({ - name: "My NFT", - description: "My description", - image: imageUri, +const uri = await umi.uploader.uploadJson({ + name, + description, + image, }); ``` #### Create the NFT After uploading the NFT's metadata, you can finally create the NFT on the -network. The Metaplex SDK's `create()` method allows you to create a new NFT -with minimal configuration. This method will create the mint account, token -account, metadata account, and master edition account for you. The data provided -to this method will represent the onchain portion of the NFT metadata. You can -explore the SDK to see all the other input optionally supplied to this method. +network. The `mplTokenMetadata` plugin we added earlier provides the required +helpers to create an NFT or any other token with minimal configuration. The +helper `createNft` method will create the mint account, token account, metadata +account, and master edition account for you. The data provided to this method +will represent the onchain portion of the NFT metadata. You can explore the SDK +to see all the other input optionally supplied to this method. ```typescript -const { nft } = await metaplex.nfts().create( - { - uri: uri, - name: "My NFT", - sellerFeeBasisPoints: 0, - }, - { commitment: "finalized" }, -); +const { signature, result } = await createNft(umi, { + mint, + name: "My NFT", + uri, + updateAuthority: umi.identity.publicKey, + sellerFeeBasisPoints: percentAmount(0), +}).sendAndConfirm(umi, { send: { commitment: "finalized" } }); ``` -This method returns an object containing information about the newly created -NFT. By default, the SDK sets the `isMutable` property to true, allowing for -updates to be made to the NFT's metadata. However, you can choose to set -`isMutable` to false, making the NFT's metadata immutable. +The `sendAndConfirm` method is what takes care of signing our transaction and +sending it. It also provides other options to set pre-flight checks and our +desired commitment for the transaction, which defaults to `confirmed` if not +provided. + +This method returns an object containing the transaction signature and a result. +The result object contains the outcome of our transaction. If successful, the +`err` inside this will be set to null otherwise it'll contain the error for the +failed transaction. + +By default, the SDK sets the `isMutable` property to true, allowing for updates +to be made to the NFT's metadata. However, you can choose to set `isMutable` to +false, making the NFT's metadata immutable. #### Update the NFT -If you've left `isMutable` as true, you may update your NFT's metadata. The -SDK's `update` method allows you to update both the onchain and offchain +If you've left `isMutable` as true, you may update your NFT's metadata. + +The SDK's `updateV1` method allows you to update both the onchain and offchain portions of the NFT's metadata. To update the offchain metadata, you'll need to repeat the steps of uploading a new image and metadata URI (as outlined in the previous steps), then provide the new metadata URI to this method. This will @@ -194,20 +238,22 @@ change the URI that the onchain metadata points to, effectively updating the offchain metadata as well. ```typescript -const nft = await metaplex.nfts().findByMint({ mintAddress }); +const nft = await fetchMetadataFromSeeds(umi, { mintAddress }); -const { response } = await metaplex.nfts().update( - { - nftOrSft: nft, +await updateV1(umi, { + mint, + authority: umi.identity, + data: { + ...nft, + sellerFeeBasisPoints: 0, name: "Updated Name", - uri: uri, - sellerFeeBasisPoints: 100, }, - { commitment: "finalized" }, -); + primarySaleHappened: true, + isMutable: true, +}).sendAndConfirm(umi); ``` -Note that any fields you don't include in the call to `update` will stay the +Note that any fields you don't include in the call to `updateV1` will stay the same, by design. #### Add the NFT to a collection @@ -232,30 +278,31 @@ NFT Metadata: `isCollection`. This field tells the token program that this NFT is a Collection NFT. ```typescript -const { collectionNft } = await metaplex.nfts().create( - { - uri: uri, - name: "My NFT Collection", - sellerFeeBasisPoints: 0, - isCollection: true, - }, - { commitment: "finalized" }, -); +const collectionMint = generateSigner(umi); + +await createNft(umi, { + mint: collectionMint, + name: `My Collection`, + uri, + sellerFeeBasisPoints: percentAmount(0), + isCollection: true, +}).sendAndConfirm(umi); ``` -You then list the collection's Mint Address as the reference for the -`collection` field in our new Nft. +To mint an NFT into this collection, the +[Collection type](https://mpl-token-metadata-js-docs.vercel.app/types/Collection.html) +which has two fields, the address of the `collectionMint` generated above and +the verified field. ```typescript -const { nft } = await metaplex.nfts().create( - { - uri: uri, - name: "My NFT", - sellerFeeBasisPoints: 0, - collection: collectionNft.mintAddress, - }, - { commitment: "finalized" }, -); +const { signature, result } = await createNft(umi, { + mint, + name: "My NFT", + uri, + updateAuthority: umi.identity.publicKey, + sellerFeeBasisPoints: percentAmount(0), + collection: { key: collectionMint.publicKey, verified: false }, +}).sendAndConfirm(umi, { send: { commitment: "finalized" } }); ``` When you checkout the metadata on your newly created NFT, you should now see a @@ -270,62 +317,70 @@ When you checkout the metadata on your newly created NFT, you should now see a The last thing you need to do is verify the NFT. This effectively just flips the `verified` field above to true, but it's incredibly important. This is what lets -consuming programs and apps know that your NFT is in fact part of the -collection. You can do this using the `verifyCollection` function: +consuming programs and apps, including wallets and art marketplaces, know that +your NFT is in fact part of the collection - because the Collection's owner has +signed a transaction making the NFT a member of that collection. You can do this +using the `verifyCollectionV1` function: ```typescript -await metaplex.nfts().verifyCollection({ - mintAddress: nft.address, - collectionMintAddress: collectionNft.address, - isSizedCollection: true, -}); +const metadata = findMetadataPda(umi, { mint: mint.publicKey }); + +await verifyCollectionV1(umi, { + metadata, + collectionMint, + authority: umi.identity, +}).sendAndConfirm(umi); ``` ### Lab -In this lab, we'll go through the steps to create an NFT using the Metaplex SDK, -update the NFT's metadata after the fact, and then associate the NFT with a -collection. By the end, you will have a basic understanding of how to use the -Metaplex SDK to interact with NFTs on Solana. +In this lab, we'll go through the steps to create an NFT using the Metaplex Umi +framework, update the NFT's metadata after the fact, and then associate the NFT +with a collection. By the end, you will have a basic understanding of how to use +the Metaplex Umi and the mplTokenMetadata library to interact with NFTs on +Solana. #### Part 1: Creating an NFT collection To begin, make a new folder and install the relevant dependencies: +```bash +npm i @solana/web3.js npm i @solana/web3.js npm i @solana-developers/helpers npm i @metaplex-foundation/mpl-token-metadata npm i @metaplex-foundation/umi-bundle-defaults npm i @metaplex-foundation/umi-uploader-irys npm i --save-dev esrun ``` -npm i "@solana/web3.js" "@solana-developers/helpers "@metaplex-foundation/js" -``` - -As of July 15 2024 Metaplex shows a deprecation warning -when installing this package. However, as mentioned above, the -[Metaplex JavaScript SDK](https://github.com/metaplex-foundation/js) remains the -simplest and most popular JS/TS client to create NFTs with broad wallet -support. Then create a file called `create-metaplex-collection.ts`, and add our imports: ```typescript -import { Connection, clusterApiUrl, LAMPORTS_PER_SOL } from "@solana/web3.js"; import { - getKeypairFromFile, - airdropIfRequired, -} from "@solana-developers/helpers"; + createNft, + mplTokenMetadata, +} from "@metaplex-foundation/mpl-token-metadata"; import { - Metaplex, + createGenericFile, + generateSigner, keypairIdentity, - irysStorage, - toMetaplexFile, -} from "@metaplex-foundation/js"; -import { readFileSync } from "fs"; + percentAmount, +} from "@metaplex-foundation/umi"; +import { createUmi } from "@metaplex-foundation/umi-bundle-defaults"; +import { irysUploader } from "@metaplex-foundation/umi-uploader-irys"; +import { + airdropIfRequired, + getExplorerLink, + getKeypairFromFile, +} from "@solana-developers/helpers"; +import { clusterApiUrl, Connection, LAMPORTS_PER_SOL } from "@solana/web3.js"; +import { promises as fs } from "fs"; +import * as path from "path"; ``` Connect to devnet, load a user and Airdrop some SOL if needed: ```typescript -// create a new connection to the cluster's API +// create a new connection to Solana's devnet cluster const connection = new Connection(clusterApiUrl("devnet")); -// initialize a keypair for the user +// load keypair from local file system +// assumes that the keypair is already generated using `solana-keygen new` const user = await getKeypairFromFile(); await airdropIfRequired( @@ -338,85 +393,96 @@ await airdropIfRequired( console.log("Loaded user:", user.publicKey.toBase58()); ``` -Connect to Metaplex and Irys: +Create a new Umi instance, assign it the loaded keypair, load the +`mplTokenMetadata` to interact with the metadata program and `irysUploader` to +upload our files. ```typescript -// metaplex set up -const metaplex = Metaplex.make(connection) - .use(keypairIdentity(user)) - .use( - irysStorage({ - address: "https://devnet.irys.xyz", - providerUrl: "https://api.devnet.solana.com", - timeout: 60000, - }), - ); -``` +const umi = createUmi(connection); -Add the data we want in for our Collection: +// load keypair from local file system +// See https://github.com/solana-developers/helpers?tab=readme-ov-file#get-a-keypair-from-a-keypair-file +const user = await getKeypairFromFile(); -```typescript -const collectionNftData = { - name: "TestCollectionNFT", - symbol: "TEST", - description: "Test Description Collection", - sellerFeeBasisPoints: 100, - imageFile: "success.png", - isCollection: true, - collectionAuthority: user, -}; +// convert to umi compatible keypair +const umiKeypair = umi.eddsa.createKeypairFromSecretKey(user.secretKey); + +// assigns a signer to our umi instance, and loads the MPL metadata program and Irys uploader plugins. +umi + .use(keypairIdentity(umiKeypair)) + .use(mplTokenMetadata()) + .use(irysUploader()); ``` -Upload the offchain metadata to irys: +Download the image assets the collection image from the links below and save +them inside your working directory, + +1. collection image: + https://github.com/solana-developers/professional-education/blob/main/labs/metaplex-umi/collection.png + +2. NFT image: + https://github.com/solana-developers/professional-education/blob/main/labs/metaplex-umi/nft.png + +We will use these images as our collection and nft cover images respectively. + +We will use Irys as our storage provider, and Metaplex conveniently ships the +`umi-uploader-irys` plugin we can use to upload our files. The plugin, also +takes care of storage fees so that we don't have to worry about making this on +our own. + +Upload the offchain metadata to Irys: ```typescript -// Load file into Metaplex -const buffer = readFileSync(collectionNftData.imageFile); -const file = toMetaplexFile(buffer, collectionNftData.imageFile); +const collectionImagePath = path.resolve(__dirname, "collection.png"); -// upload image and get image uri -const imageUri = await metaplex.storage().upload(file); -console.log("image uri:", imageUri); - -// upload metadata and get metadata uri (off chain metadata) -const uploadMetadataOutput = await metaplex.nfts().uploadMetadata({ - name: collectionNftData.name, - symbol: collectionNftData.symbol, - description: collectionNftData.description, - image: imageUri, +const buffer = await fs.readFile(collectionImagePath); +let file = createGenericFile(buffer, collectionImagePath, { + contentType: "image/png", }); - -const collectionUri = uploadMetadataOutput.uri; -console.log("Collection offchain metadata URI:", collectionUri); +const [image] = await umi.uploader.upload([file]); +console.log("image uri:", image); + +// upload offchain json to Arweave using irys +const uri = await umi.uploader.uploadJson({ + name: "My Collection", + symbol: "MC", + description: "My Collection description", + image, +}); +console.log("Collection offchain metadata URI:", uri); ``` Then actually make the collection: -``` -// create a collection NFT using the URI from the metadata -const createNftOutput = await metaplex.nfts().create( - { - uri: collectionUri, - name: collectionNftData.name, - sellerFeeBasisPoints: collectionNftData.sellerFeeBasisPoints, - symbol: collectionNftData.symbol, - isCollection: true, - }, - { commitment: "finalized" } -); - -const collectionNft = createNftOutput.nft; +```typescript +// generate mint keypair +const collectionMint = generateSigner(umi); + +// create and mint NFT +await createNft(umi, { + mint: collectionMint, + name: "My Collection", + uri, + updateAuthority: umi.identity.publicKey, + sellerFeeBasisPoints: percentAmount(0), + isCollection: true, +}).sendAndConfirm(umi, { send: { commitment: "finalized" } }); -console.log( - `Collection NFT: https://explorer.solana.com/address/${collectionNft.address.toString()}?cluster=devnet` +let explorerLink = getExplorerLink( + "address", + collectionMint.publicKey, + "devnet", ); - -console.log(`Collection NFT address is`, collectionNft.address.toString()); - +console.log(`Collection NFT: ${explorerLink}`); +console.log(`Collection NFT address is:`, collectionMint.publicKey); console.log("✅ Finished successfully!"); ``` -Run the file with: +We advise using [esrun](https://www.npmjs.com/package/esrun) to run the scripts +because it allows you to use top level await without having to wrap your code +inside asynchronous function. + +Run the `create-metaplex-nft-collection.ts` script ``` npx esrun create-metaplex-nft-collection.ts @@ -426,18 +492,23 @@ The output should look like this: ``` % npx esrun create-metaplex-nft-collection.ts -Loaded user: 4DRi8LxWhAWf9LwUuyb3Rz4Y4USEKzjdvQBWTyrkJtwg -image uri: https://arweave.net/_3vbKzFO7zcfMkFaVdhorntkPHDqz4YNTyf_9lrGw1c -Collection offchain metadata URI: https://arweave.net/Jw29lMkHp-PIxddEuLFkavdOTP1bJ9MeXTu-QqY3qTM -Collection NFT: https://explorer.solana.com/address/8dP75EWHnYAc6pgeiToXtE66qEaHx1PcoetZpmnAQeAp?cluster=devnet -Collection NFT address is 8dP75EWHnYAc6pgeiToXtE66qEaHx1PcoetZpmnAQeAp + +Loaded user: 4kg8oh3jdNtn7j2wcS7TrUua31AgbLzDVkBZgTAe44aF +image uri: https://arweave.net/XWpt7HDOFC0wJQcQWgP9n_cxHS0qQik9-27CAAaGP6E +Collection offchain metadata URI: https://arweave.net/atIf58t3FHa3heoOtNqPkVvEGC_9WzAduY0GQE-LnFI +Collection NFT: https://explorer.solana.com/address/D2zi1QQmtZR5fk7wpA1Fmf6hTY2xy8xVMyNgfq6LsKy1?cluster=devnet +Collection NFT address is: D2zi1QQmtZR5fk7wpA1Fmf6hTY2xy8xVMyNgfq6LsKy1 ✅ Finished successfully! ``` -Congratulations! You've created a Metaplex Verified Collection. Check this out -on Solana Explorer using the URL above. If you have any trouble, try and fix it -yourself, but if you need to you can also check out the -[solution code](https://github.com/solana-developers/professional-education/blob/main/labs/create-metaplex-nft-collection.ts). +Congratulations! You've created a Metaplex Collection. Check this out on Solana +Explorer using the URL above which should resemble + +![Solana Explorer with details about created collection](/public/assets/courses/unboxed/solana-explorer-metaplex-collection.png) + +If you have any trouble, try and fix it yourself, but if you need to you can +also check out the +[solution code](https://github.com/solana-developers/professional-education/blob/main/labs/metaplex-umi/create-collection.ts). We'll use the collection NFT address in the next step. @@ -449,28 +520,35 @@ the same as the previous file, with slightly different imports: ```typescript import { - Connection, - clusterApiUrl, - PublicKey, - LAMPORTS_PER_SOL, -} from "@solana/web3.js"; + createNft, + findMetadataPda, + mplTokenMetadata, + verifyCollectionV1, +} from "@metaplex-foundation/mpl-token-metadata"; +import { + createGenericFile, + generateSigner, + keypairIdentity, + percentAmount, + publicKey as UMIPublicKey, +} from "@metaplex-foundation/umi"; +import { createUmi } from "@metaplex-foundation/umi-bundle-defaults"; +import { irysUploader } from "@metaplex-foundation/umi-uploader-irys"; import { - getKeypairFromFile, airdropIfRequired, + getExplorerLink, + getKeypairFromFile, } from "@solana-developers/helpers"; -import { - Metaplex, - keypairIdentity, - irysStorage, - toMetaplexFile, -} from "@metaplex-foundation/js"; -import { readFileSync } from "fs"; - -// create a new connection to the cluster's API +import { clusterApiUrl, Connection, LAMPORTS_PER_SOL } from "@solana/web3.js"; +import { promises as fs } from "fs"; +import * as path from "path"; +// create a new connection to Solana's devnet cluster const connection = new Connection(clusterApiUrl("devnet")); -// initialize a keypair for the user +// load keypair from local file system +// assumes that the keypair is already generated using `solana-keygen new` const user = await getKeypairFromFile(); +console.log("Loaded user:", user.publicKey.toBase58()); await airdropIfRequired( connection, @@ -479,145 +557,234 @@ await airdropIfRequired( 0.1 * LAMPORTS_PER_SOL, ); -console.log("Loaded user:", user.publicKey.toBase58()); +const umi = createUmi(connection); + +// convert to umi compatible keypair +const umiKeypair = umi.eddsa.createKeypairFromSecretKey(user.secretKey); -// metaplex set up -const metaplex = Metaplex.make(connection) - .use(keypairIdentity(user)) - .use( - irysStorage({ - address: "https://devnet.irys.xyz", - providerUrl: "https://api.devnet.solana.com", - timeout: 60000, - }), - ); +// load our plugins and signer +umi + .use(keypairIdentity(umiKeypair)) + .use(mplTokenMetadata()) + .use(irysUploader()); ``` Now let's tell Metaplex our collection, and the NFT we want to make: ```typescript // Substitute in your collection NFT address from create-metaplex-nft-collection.ts -const collectionNftAddress = new PublicKey("YOUR_COLLECTION_NFT_ADDRESS_HERE"); +const collectionNftAddress = UMIPublicKey("YOUR_COLLECTION_NFT_ADDRESS_HERE"); -// example data for a new NFT +// example data and metadata for our NFT const nftData = { - name: "Name", - symbol: "SYMBOL", - description: "Description", + name: "My NFT", + symbol: "MN", + description: "My NFT Description", sellerFeeBasisPoints: 0, - imageFile: "solana.png", + imageFile: "nft.png", }; ``` We can then put out files into Irys: ```typescript -// Load the file into Metaplex -const buffer = readFileSync(nftData.imageFile); -const file = toMetaplexFile(buffer, nftData.imageFile); +const NFTImagePath = path.resolve(__dirname, "nft.png"); -// upload image and get image uri -const imageUri = await metaplex.storage().upload(file); -console.log("image uri:", imageUri); - -// upload metadata and get metadata uri (off chain metadata) -const uploadMetadataOutput = await metaplex.nfts().uploadMetadata({ - name: nftData.name, - symbol: nftData.symbol, - description: nftData.description, - image: imageUri, +const buffer = await fs.readFile(NFTImagePath); +let file = createGenericFile(buffer, NFTImagePath, { + contentType: "image/png", }); -const metadataUri = uploadMetadataOutput.uri; +// upload image and get image uri +const [image] = await umi.uploader.upload([file]); +console.log("image uri:", image); + +// upload offchain json using irys and get metadata uri +const uri = await umi.uploader.uploadJson({ + name: "My NFT", + symbol: "MN", + description: "My NFT Description", + image, +}); +console.log("NFT offchain metadata URI:", uri); ``` And then create an NFT using the URI from the metadata: ```typescript -const createNftOutput = await metaplex.nfts().create( - { - uri: metadataUri, // metadata URI - name: nftData.name, - sellerFeeBasisPoints: nftData.sellerFeeBasisPoints, - symbol: nftData.symbol, - collection: collectionNftAddress, +// generate mint keypair +const mint = generateSigner(umi); + +// create and mint NFT +await createNft(umi, { + mint, + name: "My NFT", + symbol: "MN", + uri, + updateAuthority: umi.identity.publicKey, + sellerFeeBasisPoints: percentAmount(0), + collection: { + key: collectionAddress, + verified: false, }, - { commitment: "finalized" }, -); -const nft = createNftOutput.nft; +}).sendAndConfirm(umi, { send: { commitment: "finalized" } }); + +let explorerLink = getExplorerLink("address", mint.publicKey, "devnet"); +console.log(`Token Mint: ${explorerLink}`); +``` + +Run `npx esrun create-metaplex-nft.ts`. If all goes well, you will see the +following: -console.log( - `Token Mint: https://explorer.solana.com/address/${nft.address.toString()}?cluster=devnet`, -); +``` +% npx esrun create-metaplex-nft.ts + +Loaded user: 4kg8oh3jdNtn7j2wcS7TrUua31AgbLzDVkBZgTAe44aF +image uri: https://arweave.net/XgTss3uKlddlMFjRTIvDiDLBv6Pptm-Vx9mz6Oe5f-o +NFT offchain metadata URI: https://arweave.net/PK3Url31k4BYNvYOgTuYgWuCLrNjl5BrrF5lbY9miR8 +Token Mint: https://explorer.solana.com/address/CymscdAwuTRjCz1ezsNZa15MnwGNrxhGUEToLFcyijMT?cluster=devnet +Created NFT address is CymscdAwuTRjCz1ezsNZa15MnwGNrxhGUEToLFcyijMT +✅ Finished successfully! ``` -Finally let's verify our mint as being part of our collection. This makes it so +Inspect your NFT at the address given! If you have any trouble, try and fix it +yourself, but if you need to you can also check out the +[solution code](https://github.com/solana-developers/professional-education/blob/main/labs/metaplex-umi/create-nft.ts). + +You should have something similar to this image on your explorer page +![Solana Explorer with details about created NFT](/public/assets/courses/unboxed/solana-explorer-metaplex-nft.png) + +Finally, let's verify our mint as being part of our collection. This makes it so the `verified` field in the onchain metadata is set to `true`, so consuming programs and apps can know for sure that the NFT in fact belongs to the -collection: +collection. + +Create a new file `verify-metaplex-nft.ts`, import the required libraries and +instantiate a new umi Instance. ```typescript -await metaplex.nfts().verifyCollection({ - // Verify our collection as a Certified Collection - // See https://developers.metaplex.com/token-metadata/collections - mintAddress: nft.mint.address, - collectionMintAddress: collectionNftAddress, - isSizedCollection: true, -}); +import { + findMetadataPda, + mplTokenMetadata, + verifyCollectionV1, +} from "@metaplex-foundation/mpl-token-metadata"; +import { + keypairIdentity, + publicKey as UMIPublicKey, +} from "@metaplex-foundation/umi"; +import { createUmi } from "@metaplex-foundation/umi-bundle-defaults"; +import { irysUploader } from "@metaplex-foundation/umi-uploader-irys"; +import { + airdropIfRequired, + getExplorerLink, + getKeypairFromFile, +} from "@solana-developers/helpers"; +import { clusterApiUrl, Connection, LAMPORTS_PER_SOL } from "@solana/web3.js"; + +// create a new connection to Solana's devnet cluster +const connection = new Connection(clusterApiUrl("devnet")); + +// load keypair from local file system +// assumes that the keypair is already generated using `solana-keygen new` +const user = await getKeypairFromFile(); +console.log("Loaded user:", user.publicKey.toBase58()); -console.log(`Created NFT address is`, nft.address.toString()); +await airdropIfRequired( + connection, + user.publicKey, + 1 * LAMPORTS_PER_SOL, + 0.1 * LAMPORTS_PER_SOL, +); + +const umi = createUmi(connection); +// Substitute in your collection NFT address from create-metaplex-collection.ts +const collectionAddress = UMIPublicKey(""); + +// Substitute in your NFT address from create-metaplex-nft.ts +const nftAddress = UMIPublicKey(""); +``` + +Verifying an NFT will require you to have the `collectionAddress` you used +created in the creation of a collection stage, and we will use the +`verifyCollectionV1` method. + +```typescript +// Verify our collection as a Certified Collection +// See https://developers.metaplex.com/token-metadata/collections +const metadata = findMetadataPda(umi, { mint: nftAddress }); +await verifyCollectionV1(umi, { + metadata, + collectionMint: collectionAddress, + authority: umi.identity, +}).sendAndConfirm(umi); + +let explorerLink = getExplorerLink("address", nftAddress, "devnet"); +console.log(`verified collection: ${explorerLink}`); console.log("✅ Finished successfully!"); ``` -Run `npx esrun create-metaplex-nft.ts`. If all goes well, you will see the +Run `npx esrun verify-metaplex-nft.ts`. If all goes well, you will see the following: ``` % npx esrun create-metaplex-nft.ts -Loaded user: 4DRi8LxWhAWf9LwUuyb3Rz4Y4USEKzjdvQBWTyrkJtwg -image uri: https://arweave.net/Z2JoDr7W4A3mWE9aTq8ex13IoPx1v1QewjVqPKPItuE -Token Mint: https://explorer.solana.com/address/HCq8ERk1PSLCuBJeWx7du4dom3YbyfKpaCWDQ3Eft6aM?cluster=devnet -Created NFT address is HCq8ERk1PSLCuBJeWx7du4dom3YbyfKpaCWDQ3Eft6aM + +Loaded user: 4kg8oh3jdNtn7j2wcS7TrUua31AgbLzDVkBZgTAe44aF +verified collection: https://explorer.solana.com/address/CymscdAwuTRjCz1ezsNZa15MnwGNrxhGUEToLFcyijMT?cluster=devnet ✅ Finished successfully! ``` -Inspect your NFT at the address given! If you have any trouble, try and fix it -yourself, but if you need to you can also check out the -[solution code](https://github.com/solana-developers/professional-education/blob/main/labs/create-metaplex-nft.ts). +Inspect your verified NFT at the address given! If you have any trouble, try and +fix it yourself, but if you need to you can also check out the +[solution code](https://github.com/solana-developers/professional-education/blob/main/labs/metaplex-umi/verify-nft.ts). + +The verified flag on your NFT should now be set to `1` -> `true` showing that +it's verified. To confirm this, look under the metadata tab on the Solana +Explorer to confirm that your NFT is verified as part of the collection. + +![Solana Explorer with details about created NFT](/public/assets/courses/unboxed/solana-explorer-verified-nft.png) Remember the NFT address, we'll use it in the next step. #### 3. Update the NFT -Create a new file, called `update-metaplex-nft.ts`. The imports will be simila +Create a new file, called `update-metaplex-nft.ts`. The imports will be similar to our previous files: ```typescript import { - Connection, - clusterApiUrl, - PublicKey, - LAMPORTS_PER_SOL, -} from "@solana/web3.js"; + createNft, + fetchMetadataFromSeeds, + updateV1, + findMetadataPda, + mplTokenMetadata, +} from "@metaplex-foundation/mpl-token-metadata"; +import { + createGenericFile, + generateSigner, + keypairIdentity, + percentAmount, + publicKey as UMIPublicKey, +} from "@metaplex-foundation/umi"; +import { createUmi } from "@metaplex-foundation/umi-bundle-defaults"; +import { irysUploader } from "@metaplex-foundation/umi-uploader-irys"; import { - getKeypairFromFile, airdropIfRequired, getExplorerLink, + getKeypairFromFile, } from "@solana-developers/helpers"; -import { - Metaplex, - keypairIdentity, - irysStorage, - toMetaplexFile, -} from "@metaplex-foundation/js"; -import { readFileSync } from "fs"; +import { clusterApiUrl, Connection, LAMPORTS_PER_SOL } from "@solana/web3.js"; +import { promises as fs } from "fs"; +import * as path from "path"; -// create a new connection to the cluster's API +// create a new connection to Solana's devnet cluster const connection = new Connection(clusterApiUrl("devnet")); -// initialize a keypair for the user +// load keypair from local file system +// assumes that the keypair is already generated using `solana-keygen new` const user = await getKeypairFromFile(); +console.log("Loaded user:", user.publicKey.toBase58()); await airdropIfRequired( connection, @@ -626,18 +793,16 @@ await airdropIfRequired( 0.1 * LAMPORTS_PER_SOL, ); -console.log("Loaded user:", user.publicKey.toBase58()); +const umi = createUmi(connection); + +// convert to umi compatible keypair +const umiKeypair = umi.eddsa.createKeypairFromSecretKey(user.secretKey); -// metaplex set up -const metaplex = Metaplex.make(connection) - .use(keypairIdentity(user)) - .use( - irysStorage({ - address: "https://devnet.irys.xyz", - providerUrl: "https://api.devnet.solana.com", - timeout: 60000, - }), - ); +// load our plugins and signer +umi + .use(keypairIdentity(umiKeypair)) + .use(mplTokenMetadata()) + .use(irysUploader()); ``` Let's load our NFT, specifying the address from the previous example, and set up @@ -645,75 +810,83 @@ what we'd like to update: ```typescript // Load the NFT using the mint address -const nftAddress: PublicKey = new PublicKey("YOUR_NFT_ADDRESS_HERE"); -const nft = await metaplex.nfts().findByMint({ mintAddress: nftAddress }); +const mint = UMIPublicKey("YOUR_NFT_ADDRESS_HERE"); +const asset = await fetchDigitalAsset(umi, mint); // example data for updating an existing NFT const updatedNftData = { - name: "Updated", + name: "Updated Asset", symbol: "UPDATED", description: "Updated Description", - sellerFeeBasisPoints: 100, - imageFile: "success.png", + sellerFeeBasisPoints: 0, + imageFile: "nft.png", }; ``` We can then use Metaplex to update our NFT: ```typescript -// Load the image file into Metaplex -const buffer = readFileSync(updatedNftData.imageFile); -const file = toMetaplexFile(buffer, updatedNftData.imageFile); - -// Upload the new image and get image URI -const imageUri = await metaplex.storage().upload(file); -console.log("image uri:", imageUri); - -// Upload new offchain metadata -const uploadMetadataOutput = await metaplex.nfts().uploadMetadata({ - name: updatedNftData.name, - symbol: updatedNftData.symbol, - description: updatedNftData.description, - image: imageUri, +const NFTImagePath = path.resolve(__dirname, "nft.png"); + +const buffer = await fs.readFile(NFTImagePath); +let file = createGenericFile(buffer, NFTImagePath, { + contentType: "image/png", }); -const updatedUri = uploadMetadataOutput.uri; +// upload new image and get image uri +const [image] = await umi.uploader.upload([file]); +console.log("image uri:", image); -// update the NFT metadata -const { response } = await metaplex.nfts().update( - { - nftOrSft: nft, - uri: updatedUri, +// upload updated offchain json using irys and get metadata uri +const uri = await umi.uploader.uploadJson({ + name: "Updated ", + symbol: "UPDATED", + description: "Updated Description", + image, +}); +console.log("NFT offchain metadata URI:", uri); + +// Load the NFT using the mint address +const mint = UMIPublicKey("Zxd9TmtBHQNti6tJxtx1AKYJFykNUwJL4rth441CjRd"); +const nft = await fetchMetadataFromSeeds(umi, { mint }); + +await updateV1(umi, { + mint, + authority: umi.identity, + data: { + ...nft, + sellerFeeBasisPoints: 0, + name: "Updated Asset", }, - { commitment: "finalized" }, -); + primarySaleHappened: true, + isMutable: true, +}).sendAndConfirm(umi); -console.log( - `NFT updated with new metadata URI: ${getExplorerLink( - "transaction", - response.signature, - "devnet", - )}`, -); +let explorerLink = getExplorerLink("address", mint, "devnet"); +console.log(`NFT updated with new metadata URI: ${explorerLink}`); console.log("✅ Finished successfully!"); ``` Run `npx esrun update-metaplex-nft.ts`. You should see something like: -```typescript +```bash % npx esrun update-metaplex-nft.ts -Loaded user: 4DRi8LxWhAWf9LwUuyb3Rz4Y4USEKzjdvQBWTyrkJtwg -image uri: https://arweave.net/nd6rxpoGfPmB2gTutEgnH5B76CFlDxgM6cZ7BcUmFis -NFT updated with new metadata URI: https://explorer.solana.com/tx/4eiuMFLeku7ArV5xkRTPKxBXjfjQsSVGFZimMkMaMxK1d21qptQE5kgKiuob6J852m4GuoMqcjz1ee4oy7fXVEWU?cluster=devnet + +Loaded user: 4kg8oh3jdNtn7j2wcS7TrUua31AgbLzDVkBZgTAe44aF +image uri: https://arweave.net/dboiAebucLGhprtknDQnp-yMj348cpJF4aQul406odg +NFT offchain metadata URI: https://arweave.net/XEjo-44GHRFNOEtPUdDsQlW5z1Gtpk2Wv0HvR8ll1Bw +NFT updated with new metadata URI: https://explorer.solana.com/address/Zxd9TmtBHQNti6tJxtx1AKYJFykNUwJL4rth441CjRd?cluster=devnet ✅ Finished successfully! ``` Inspect the updated NFT on Solana Explorer! Just like previously, if you have any issues, you should fix them yourself, but if needed the -[solution code](https://github.com/solana-developers/professional-education/blob/main/labs/update-metaplex-nft.ts) +[solution code](https://github.com/solana-developers/professional-education/blob/main/labs/metaplex-umi/update-nft.ts) is available. +![Solana Explorer with details about the updated NFT](/public/assets/courses/unboxed/solana-explorer-with-updated-NFT.png) + Congratulations! You've successfully learned how to use the Metaplex SDK to create, update, and verify NFTs as part of a collection. That's everything you need to build out your own collection for just about any use case. You could diff --git a/public/assets/courses/unboxed/image.png b/public/assets/courses/unboxed/image.png new file mode 100644 index 0000000000000000000000000000000000000000..07f1aa5b6ecd6c12942459ac895c6db62d4ffa7e GIT binary patch literal 145568 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þ`CE~DQAQ`MeZ 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

&X?$SiH|!&{}QW0D#=gL$(t*7X* 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 literal 0 HcmV?d00001 diff --git a/public/assets/courses/unboxed/solana-explorer-metaplex-nft.png b/public/assets/courses/unboxed/solana-explorer-metaplex-nft.png new file mode 100644 index 0000000000000000000000000000000000000000..adce8c95de7b815d881bc8663f763370946a1c30 GIT binary patch literal 147909 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


iw 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 literal 0 HcmV?d00001 diff --git a/public/assets/courses/unboxed/solana-explorer-with-updated-NFT.png b/public/assets/courses/unboxed/solana-explorer-with-updated-NFT.png new file mode 100644 index 0000000000000000000000000000000000000000..f1c6981176bd419ff28a8751b1adde9e9567698d GIT binary patch literal 160058 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

U8wJPE7FV{Q=Cg2Z=UCI+2<={q!SVnf&x`{ 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 Date: Thu, 5 Sep 2024 00:26:59 +0530 Subject: [PATCH 017/206] onchain-development intro-to-onchain updated (#344) * onchain intro-to-onchain updated * some refactors * Update content/courses/onchain-development/intro-to-onchain.md --------- Co-authored-by: Mike MacCana --- .../onchain-development/intro-to-onchain.md | 158 +++++++++++------- 1 file changed, 100 insertions(+), 58 deletions(-) diff --git a/content/courses/onchain-development/intro-to-onchain.md b/content/courses/onchain-development/intro-to-onchain.md index 73e545d50..7d433cc67 100644 --- a/content/courses/onchain-development/intro-to-onchain.md +++ b/content/courses/onchain-development/intro-to-onchain.md @@ -1,44 +1,57 @@ --- -title: Intro to onchain development +title: Intro to Solana Onchain Development objectives: - Understand how Solana onchain programs work - - Describe the structure and operation of onchain programs + - Know about the structure and operation of Solana programs - Build a basic program description: - "How onchain programs (often called 'smart contracts') work on Solana." + "Discover how onchain programs ( often called 'smart contracts') work on + Solana and learn to build your own." --- ## Summary -- **Onchain programs** are programs that run on Solana. -- Programs have one or more **instruction handlers**. Instruction handlers are - functions that process the **instructions** in Solana transactions. -- Instruction handlers write their data to Solana **accounts** and then either - succeed or fail. -- Solana programs are most commonly written in **Rust**, typically with the - **Anchor** framework. -- Anchor programs have IDLs, which are small JSON files describing programs. - IDLs can be used to automatically create JS/TS libraries for a program. +- **Onchain programs** (sometimes called 'smart contracts') run directly on Solana, just like programs on your + computer. +- These programs consist of **instruction handlers** - functions that process + instructions from transactions. +- Programs interact with the blockchain by reading from and writing to Solana + **accounts**. +- Solana programs are most commonly written in **Rust**, often using the + **Anchor** framework for simplified development. +- Anchor generates **Interface Description Language (IDL)** files, which: + - Describe the program's structure and functionality + - Enable automatic creation of JavaScript/TypeScript client libraries +- Solana's architecture allows for parallel execution of non-overlapping + transactions, contributing to its high speed and efficiency. +- Rent is a concept in Solana where accounts must maintain a minimum balance to + stay alive on the blockchain. ## Overview -Each Solana cluster (`mainnet-beta`, `testnet`, `devnet`, `localnet`) is -effectively a single computer with a globally synchronized state. The programs -that run on Solana - the ones that create tokens, swap tokens, art marketplaces, -escrows, market makers, DePIN apps, auctions, retail payments platforms, etc - -are called **Solana apps**. +Solana operates on various clusters, each functioning as a unified, globally +synchronized system: -The most popular way to build onchain apps is using **Rust** language and the -**Anchor** framework. +- **mainnet-beta**: The main production network +- **testnet**: For testing new features +- **devnet**: For application development +- **localnet**: For local testing + +The program that run on Solana - the ones that create tokens, swap tokens, art +marketplaces, escrows, market makers, DePIN apps, auctions, retail payments +platforms, etc - are called **Solana apps**. -These frameworks implement common security checks automatically, and handle -common tasks like: +The most popular way to build onchain apps is using **Rust** language and the +**Anchor** framework. There is also another way of developing Solana programs +that is, by using the **native onchain program development**, however **Anchor** +makes things a lot simpler and safer. Some pros of using Anchor are: -- sending incoming instructions to the right instruction handlers -- deserializing data from incoming transactions -- checking the accounts provided with incoming instructions, for example, to - check that certain accounts are of a particular type, or are distinct from - other accounts. +- Security checks are implemented automatically +- Automatic routing of incoming instructions to the correct instruction handler +- Automatic serialization and deserialization of the data inside transactions +- Account validation, including: + - Type checking + - Ensuring account uniqueness Regardless of the language and framework you choose, Solana works the same. Let's refresh how programs work on Solana. @@ -53,6 +66,8 @@ created during `anchor init`, and the private key is saved in the `target/deploy` directory of your project. A program's public key is sometimes called a 'program ID' or 'program address'. +Which can be seen in the `programs//src/lib.rs` and +`Anchor.toml` files. ### Programs have instruction handlers @@ -71,48 +86,75 @@ functionality by instruction handlers. ### Instruction handlers write their state to Solana accounts -If you have previously done web development, you can think of instruction -handlers like an HTTP route handler, and incoming instructions like HTTP -requests. +If you have done web development before, think of instruction handlers like HTTP +route handlers, and incoming instructions like HTTP requests. + +However, unlike HTTP route handlers, Solana instruction handlers don't return +data. Instead, they write their data to accounts on Solana. -But unlike HTTP route handlers, Solana instruction handlers don't return data. -Instead, the instruction handlers write their data to accounts on Solana. +Programs on Solana can transfer tokens to user wallet addresses (for SOL) or +user token accounts (for other tokens). -Programs on Solana can transfer tokens, which end up in user wallet addresses -(for SOL) for the user's token accounts (for other tokens). +More importantly, programs can create additional addresses to store data as +needed. -But more importantly, programs on Solana can create additional addresses as -needed, to store items of data. +This is how Solana programs store their state. -### Programs store data in Program Derived Addresses (PDAs), a key-value store +### Program Derived Addresses (PDAs): Solana's Key-Value Store Data for Solana programs are stored in **program-derived addresses (PDAs)**. -Solana's PDAs can be thought of as a **key/value store**: - -- The 'key' is the address of the PDA, which is determined by `seeds` chosen by - you, the programmer. - - Want an account to store USD to AUD exchange rate? Your program can use the - seeds `USD` and `AUD` to make a Program Derived Address - - Want to store information about the relationship of two users? You can use - **both those users' wallet addresses** as seeds to make a PDA to store that - information. - - Want an account to store Steve's review of Titanic? Your program can use - Steve's **wallet address** and the string `titanic` (or maybe the IMDB ID if - you prefer) to make a Program Derived Address. - - Want some global information for your entire program? You can use a string - like `'config'`. Your program's PDAs are unique, so they won't conflict with - other programs. -- The value is the data inside the account at the given address. - - The data inside the PDA is determined by you, the programmer. - -Key value stores allow your onchain program, and client software, to -consistently determine the address for a data item because the same seeds will -always return the same address. +Solana's PDAs can be thought of as a **key/value store**. A PDA can be designed +to store any form of data as required by the program. + +#### Key Concepts + +1. **Structure** + + - **Key**: The PDA's address + - **Value**: Data stored in the account at that address + +2. **Address Generation** + + - **Seed**: chosen by the programmer + - **Bump**: An additional value to ensure unique PDA creation + - **Deterministic**: Same combination of seed and bump always produce the + same address. This helps the program and the client to accurately determine + the address of the data. + +3. **Data Storage** + + - Programmers define the structure of data stored in PDAs + - Can store any type of program-specific information + +4. **Some properties**: + - PDAs are off the Ed25519 elliptic curve. While the data type web3.js uses + is a `PublicKey`, PDA addresses are not public keys and do not have a + matching private key. + - A program's PDAs are unique so, they won't conflict with other programs. + - PDAs can also act as signer in an instruction. We'll learn more about this + in further lessons. + +#### Examples of PDA Usage + +| Purpose | Seeds | Resulting PDA | +| ----------------- | -------------------------- | ---------------------------- | +| Exchange Rate | `"USD"`, `"AUD"` | Stores USD to AUD rate | +| User Relationship | User1 wallet, User2 wallet | Stores relationship data | +| Product Review | User wallet, Product ID | Stores user's review | +| Global Config | `"config"` | Stores program-wide settings | + +#### Benefits + +1. **Uniqueness**: PDAs are specific to your program, avoiding conflicts +2. **Determinism**: Consistent address generation across clients and on-chain + programs +3. **Flexibility**: Can store various types of data structures +4. **Efficiency**: Quick lookup and access to program-specific data ### Solana instructions need to specify all the accounts they will use As you may already know, Solana is fast because it can process transactions that -don't overlap at the same time. I.e., just like in the real world, Alice sending +don't overlap at the same time i.e., just like in the real world, Alice sending to Bob doesn't stop Chris from sending something to Diana. Your front-end apps need to specify the addresses of all the accounts they will use. From 9959ff861d9ecc5724e1f0534d7ab98bb2f0f074 Mon Sep 17 00:00:00 2001 From: Onyewuchi Emmanuel Date: Wed, 4 Sep 2024 20:14:48 +0100 Subject: [PATCH 018/206] Update verifiable-randomness-functions and serialize-instruction-data-frontend (#382) * refactor(): replaced .then with trycatch block * chore(): fixed course redirect link * fix(): fixed push changes * chore(): updated project urls * chore(): removed unnecessary imports * chore(): included safe error access and flexible error check. also replaced outdated methods * chore(): replaced single letter with fullname * fix(): fixed the complicated error value * fix(): made changes as specified in the PR review * fix(): minor variable fix * chore(): minor fix --------- Co-authored-by: Onyewuchi Emeka --- .../verifiable-randomness-functions.md | 25 ++-- .../serialize-instruction-data-frontend.md | 130 ++++++++++-------- 2 files changed, 88 insertions(+), 67 deletions(-) diff --git a/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md b/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md index d21841170..3f73823e1 100644 --- a/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md +++ b/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md @@ -102,7 +102,7 @@ to interact with and respond to real-world events. The Switchboard network is made up of many different individual oracles run by third parties to provide external data and service requests onchain. To learn more about Switchboard’s Oracle network, please refer to our -[Oracle lesson](/developers/courses/connecting-to-offchain-data/oracles). +[Oracle lesson](/content/courses/connecting-to-offchain-data/oracles.md) Switchboard's VRF allows users to request an oracle to produce a randomness output onchain. Once an oracle has been assigned the request, the proof of the @@ -1311,9 +1311,9 @@ describe("burry-escrow-vrf", () => { // Check whether the data onchain is equal to local 'data' assert(failUnlockPrice == newAccount.unlockPrice); assert(escrowBalance > 0); - } catch (e) { - console.log(e); - assert.fail(e); + } catch (error) { + console.log(error); + assert.fail(error); } }); @@ -1341,13 +1341,14 @@ describe("burry-escrow-vrf", () => { await provider.connection.confirmTransaction(tx, "confirmed"); console.log("Your transaction signature", tx); - } catch (e) { - // verify tx returns expected error + } catch (error) { didFail = true; - console.log(e.error.errorMessage); + assert( - e.error.errorMessage == + error.message.includes( "Current SOL price is not above Escrow unlock price.", + ), + "Unexpected error message: " + error.message, ); } @@ -1517,8 +1518,8 @@ it("Roll till you can withdraw", async () => { }) .signers([payer]) .rpc(); - } catch (e) { - console.log(e); + } catch (error) { + console.log(error); assert.fail(); } @@ -1580,8 +1581,8 @@ it("Roll till you can withdraw", async () => { console.log("Resetting die..."); await delay(5000); } - } catch (e) { - console.log(e); + } catch (error) { + console.log(error); assert.fail(); } } diff --git a/content/courses/native-onchain-development/serialize-instruction-data-frontend.md b/content/courses/native-onchain-development/serialize-instruction-data-frontend.md index 62bb684d8..3154f69b5 100644 --- a/content/courses/native-onchain-development/serialize-instruction-data-frontend.md +++ b/content/courses/native-onchain-development/serialize-instruction-data-frontend.md @@ -34,14 +34,14 @@ description: How to deserialize data fetched from Solana accounts. ### Transactions This course requires completing -[Introduction to Solana](/developers/courses/intro-to-solana) or equivalent +[Introduction to Solana](/content/courses/intro-to-solana) or equivalent knowledge. It's also aimed at advanced developers that prefer more control over the ease of use and safe defaults Anchor provides. If you're new to developing onchain programs you may prefer -[Anchor](/developers/courses/onchain-development) +[Anchor](/content/courses/onchain-development) -In [Introduction to Solana](/developers/courses/intro-to-solana) we learned how -to create transactions with instructions for common Solana programs. +In [Introduction to Solana](/content/courses/intro-to-solana) we learned how to +create transactions with instructions for common Solana programs. This lessons shows how to create instructions for our own native Solana programs, which we will develop in a few lessons. Specifically, we're going to @@ -195,7 +195,7 @@ equipPlayerSchema.encode( buffer, ); -const instructionBuffer = buffer.slice(0, equipPlayerSchema.getSpan(buffer)); +const instructionBuffer = buffer.subarray(0, equipPlayerSchema.getSpan(buffer)); ``` Once a buffer is properly created and the data serialized, all that’s left is @@ -211,7 +211,14 @@ lessons. The example below assumes that: ```typescript import * as borsh from "@coral-xyz/borsh"; -import * as web3 from "@solana/web3.js"; +import { + clusterApiUrl, + Connection, + SystemProgram, + Transaction, + TransactionInstruction, + sendAndConfirmTransaction, +} from "@solana/web3.js"; const equipPlayerSchema = borsh.struct([ borsh.u8("variant"), @@ -225,13 +232,13 @@ equipPlayerSchema.encode( buffer, ); -const instructionBuffer = buffer.slice(0, equipPlayerSchema.getSpan(buffer)); +const instructionBuffer = buffer.subarray(0, equipPlayerSchema.getSpan(buffer)); -const endpoint = web3.clusterApiUrl("devnet"); -const connection = new web3.Connection(endpoint); +const endpoint = clusterApiUrl("devnet"); +const connection = new Connection(endpoint); -const transaction = new web3.Transaction(); -const instruction = new web3.TransactionInstruction({ +const transaction = new Transaction(); +const instruction = new TransactionInstruction({ keys: [ { pubkey: player.publicKey, @@ -244,7 +251,7 @@ const instruction = new web3.TransactionInstruction({ isWritable: true, }, { - pubkey: web3.SystemProgram.programId, + pubkey: SystemProgram.programId, isSigner: false, isWritable: false, }, @@ -255,11 +262,17 @@ const instruction = new web3.TransactionInstruction({ transaction.add(instruction); -web3.sendAndConfirmTransaction(connection, transaction, [player]).then(txid => { - console.log( - `Transaction submitted: https://explorer.solana.com/tx/${txid}?cluster=devnet`, +try { + const transactionId = await sendAndConfirmTransaction( + connection, + transaction, + [player], ); -}); + const explorerLink = getExplorerLink("transaction", transactionId, "devnet"); + console.log(`Transaction submitted: ${explorerLink}`); +} catch (error) { + alert(error); +} ``` ## Lab @@ -269,7 +282,7 @@ submit a movie review and have it stored on Solana’s network. We’ll build th app a little bit at a time over the next few lessons, adding new functionality each lesson. -![Movie review frontend](/public/assets/courses/unboxed/movie-reviews-frontend.png) +![Movie review frontend](/public/assets/courses/movie-review-dapp.png) Here's a quick diagram of the program we'll build: @@ -281,7 +294,7 @@ The public key of the Solana program we’ll use for this application is #### 1. Download the starter code Before we get started, go ahead and download the -[starter code](https://github.com/Unboxed-Software/solana-movie-frontend/tree/starter). +[starter code](https://github.com/solana-developers/movie-review-frontend/tree/starter). The project is a fairly simple Next.js application. It includes the `WalletContextProvider` we created in the Wallets lesson, a `Card` component for @@ -359,9 +372,14 @@ export class Movie { ]) serialize(): Buffer { - const buffer = Buffer.alloc(1000) - this.borshInstructionSchema.encode({ ...this, variant: 0 }, buffer) - return buffer.slice(0, this.borshInstructionSchema.getSpan(buffer)) + try { + const buffer = Buffer.alloc(1000); + this.borshInstructionSchema.encode({ ...this, variant: 0 }, buffer); + return buffer.subarray(0, this.borshInstructionSchema.getSpan(buffer)); + } catch (error) { + console.error('Serialization error:', error); + return Buffer.alloc(0); + } } } ``` @@ -391,19 +409,12 @@ import { FC } from "react"; import { Movie } from "../models/Movie"; import { useState } from "react"; import { - Box, - Button, - FormControl, - FormLabel, - Input, - NumberDecrementStepper, - NumberIncrementStepper, - NumberInput, - NumberInputField, - NumberInputStepper, - Textarea, -} from "@chakra-ui/react"; -import * as web3 from "@solana/web3.js"; + Connection, + PublicKey, + SystemProgram, + Transaction, + TransactionInstruction, +} from "@solana/web3.js"; import { useConnection, useWallet } from "@solana/wallet-adapter-react"; ``` @@ -415,9 +426,15 @@ Next, before the `handleSubmit` function, call `useConnection()` to get a import { FC } from 'react' import { Movie } from '../models/Movie' import { useState } from 'react' -import { Box, Button, FormControl, FormLabel, Input, NumberDecrementStepper, NumberIncrementStepper, NumberInput, NumberInputField, NumberInputStepper, Textarea } from '@chakra-ui/react' -import * as web3 from '@solana/web3.js' +import { + Connection, + PublicKey, + SystemProgram, + Transaction, + TransactionInstruction, +} from "@solana/web3.js" import { useConnection, useWallet } from '@solana/wallet-adapter-react' +import { getExplorerLink } from "@solana-developers/helpers"; const MOVIE_REVIEW_PROGRAM_ID = 'CenYq6bDRB7p73EjsPEpiYN7uveyPUTdXkDkgUduboaN' @@ -465,7 +482,7 @@ const handleTransactionSubmit = async (movie: Movie) => { } const buffer = movie.serialize(); - const transaction = new web3.Transaction(); + const transaction = new Transaction(); }; ``` @@ -477,14 +494,14 @@ the following, where `pda` is the address to the account where data will be stored: ```typescript -const [pda] = await web3.PublicKey.findProgramAddress( +const [pda] = await PublicKey.findProgramAddressSync( [publicKey.toBuffer(), Buffer.from(movie.title)], - new web3.PublicKey(MOVIE_REVIEW_PROGRAM_ID), + new PublicKey(MOVIE_REVIEW_PROGRAM_ID), ); ``` In addition to this account, the program will also need to read from -`SystemProgram`, so our array needs to include `web3.SystemProgram.programId` as +`SystemProgram`, so our array needs to include `SystemProgram.programId` as well. With that, we can finish the remaining steps: @@ -497,14 +514,14 @@ const handleTransactionSubmit = async (movie: Movie) => { } const buffer = movie.serialize(); - const transaction = new web3.Transaction(); + const transaction = new Transaction(); - const [pda] = await web3.PublicKey.findProgramAddress( + const [pda] = await PublicKey.findProgramAddressSync( [publicKey.toBuffer(), new TextEncoder().encode(movie.title)], - new web3.PublicKey(MOVIE_REVIEW_PROGRAM_ID), + new PublicKey(MOVIE_REVIEW_PROGRAM_ID), ); - const instruction = new web3.TransactionInstruction({ + const instruction = new TransactionInstruction({ keys: [ { pubkey: publicKey, @@ -517,24 +534,27 @@ const handleTransactionSubmit = async (movie: Movie) => { isWritable: true, }, { - pubkey: web3.SystemProgram.programId, + pubkey: SystemProgram.programId, isSigner: false, isWritable: false, }, ], data: buffer, - programId: new web3.PublicKey(MOVIE_REVIEW_PROGRAM_ID), + programId: new PublicKey(MOVIE_REVIEW_PROGRAM_ID), }); transaction.add(instruction); try { - let txid = await sendTransaction(transaction, connection); - console.log( - `Transaction submitted: https://explorer.solana.com/tx/${txid}?cluster=devnet`, + let transactionId = await sendTransaction(transaction, connection); + const explorerLink = getExplorerLink( + "transaction", + transactionId, + "devnet", ); - } catch (e) { - alert(JSON.stringify(e)); + console.log(`Transaction submitted: ${explorerLink}`); + } catch (error) { + alert(error); } }; ``` @@ -546,7 +566,7 @@ successful. If you need a bit more time with this project to feel comfortable, have a look at the complete -[solution code](https://github.com/Unboxed-Software/solana-movie-frontend/tree/solution-serialize-instruction-data). +[solution code](https://github.com/solana-developers/movie-review-frontend/tree/solution-serialize-instruction-data). ## Challenge @@ -554,10 +574,10 @@ Now it’s your turn to build something independently. Create an application tha lets students of this course introduce themselves! The Solana program that supports this is at `HdE95RSVsdb315jfJtaykXhXY478h53X6okDupVfY9yf`. -![Student Intros frontend](/public/assets/courses/unboxed/student-intros-frontend.png) +![Student Intros frontend](/public/assets/courses/student-intros-frontend.png) 1. You can build this from scratch or you can - [download the starter code](https://github.com/Unboxed-Software/solana-student-intros-frontend/tree/starter). + [download the starter code](https://github.com/solana-developers/solana-student-intro-frontend/tree/starter). 2. Create the instruction buffer layout in `StudentIntro.ts`. The program expects instruction data to contain: 1. `variant` as an unsigned, 8-bit integer representing the instruction to @@ -575,7 +595,7 @@ supports this is at `HdE95RSVsdb315jfJtaykXhXY478h53X6okDupVfY9yf`. Explorer to verify that it worked. If you get stumped, you can -[check out the solution code](https://github.com/Unboxed-Software/solana-student-intros-frontend/tree/solution-serialize-instruction-data). +[check out the solution code](https://github.com/solana-developers/solana-student-intro-frontend/tree/solution-serialize-instruction-data). Feel free to get creative with these challenges and take them even further. The instructions aren't here to hold you back! From 24da51bedc0152546e060008cdb7a3362ff4d811 Mon Sep 17 00:00:00 2001 From: Onyewuchi Emmanuel Date: Wed, 4 Sep 2024 20:59:56 +0100 Subject: [PATCH 019/206] Refactor useEffect to improve async/await usage and error handling (#357) - Replaced .then() with async/await for consistency and readability. - Added try/catch blocks for error handling when fetching and decoding account data. - Improved logging with clearer error messages for better debugging. - Updated dependency array to include and for better reactivity and stability. Co-authored-by: Onyewuchi Emeka --- .../full-stack-solana-development.md | 32 +++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/content/guides/getstarted/full-stack-solana-development.md b/content/guides/getstarted/full-stack-solana-development.md index f5361a6f7..d8346a050 100644 --- a/content/guides/getstarted/full-stack-solana-development.md +++ b/content/guides/getstarted/full-stack-solana-development.md @@ -1227,20 +1227,33 @@ export default function CounterState() { const [counterData, setCounterData] = useState(null); useEffect(() => { - // Fetch initial account data - program.account.counter.fetch(counterPDA).then(data => { - setCounterData(data); - }); + const fetchCounterData = async () => { + try { + // Fetch initial account data + const data = await program.account.counter.fetch(counterPDA); + setCounterData(data); + } catch (error) { + console.error("Error fetching counter data:", error); + } + }; + + fetchCounterData(); // Subscribe to account change const subscriptionId = connection.onAccountChange( // The address of the account we want to watch counterPDA, - // callback for when the account changes + // Callback for when the account changes accountInfo => { - setCounterData( - program.coder.accounts.decode("counter", accountInfo.data), - ); + try { + const decodedData = program.coder.accounts.decode( + "counter", + accountInfo.data, + ); + setCounterData(decodedData); + } catch (error) { + console.error("Error decoding account data:", error); + } }, ); @@ -1248,8 +1261,9 @@ export default function CounterState() { // Unsubscribe from account change connection.removeAccountChangeListener(subscriptionId); }; + // eslint-disable-next-line react-hooks/exhaustive-deps - }, [program]); + }, [program, counterPDA, connection]); // Render the value of the counter return

Count: {counterData?.count?.toString()}

; From 609d5d188eea75b4e5284eb31db26b9ffa67e0ca Mon Sep 17 00:00:00 2001 From: Onyewuchi Emmanuel Date: Wed, 4 Sep 2024 21:06:05 +0100 Subject: [PATCH 020/206] Refactor/energy system (serialize-instruction-data-frontend.md) (#359) * refactor(): replaced .then with trycatch block * Refactor useEffect for player data management - Replaced .then() with async/await for fetching player data. - Added try/catch blocks for error handling when fetching and decoding player data. - Created a separate async function for fetching player data to improve readability. - Implemented error handling in the account change callback to handle decoding errors. - Added cleanup logic for the account change subscription to prevent memory leaks. * chore(): integrated the getexplorer method. updated repo links, course links and deprecated methods. also removed unused imports --------- Co-authored-by: Onyewuchi Emeka --- content/guides/games/energy-system.md | 37 ++++++++++++++++++++------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/content/guides/games/energy-system.md b/content/guides/games/energy-system.md index 17ac844bf..ed1d8ec0c 100644 --- a/content/guides/games/energy-system.md +++ b/content/guides/games/energy-system.md @@ -227,24 +227,43 @@ directly use it in the game. ```js useEffect(() => { if (!publicKey) { + console.log("Missing public key"); return; } + const [pda] = PublicKey.findProgramAddressSync( [Buffer.from("player", "utf8"), publicKey.toBuffer()], new PublicKey(LUMBERJACK_PROGRAM_ID), ); - try { - program.account.playerData.fetch(pda).then(data => { + + const fetchPlayerData = async () => { + try { + const data = await program.account.playerData.fetch(pda); setGameState(data); - }); - } catch (e) { - window.alert("No player data found, please init!"); - } + } catch (error) { + console.error("Error fetching player data:", error); + window.alert("No player data found, please init!"); + } + }; + + fetchPlayerData(); - connection.onAccountChange(pda, account => { - setGameState(program.coder.accounts.decode("playerData", account.data)); - }); + const handleAccountChange = (account: AccountInfo) => { + try { + const decodedData = program.coder.accounts.decode("playerData", account.data); + setGameState(decodedData); + } catch (error) { + console.error("Error decoding account data:", error); + } + }; + + const subscriptionId = connection.onAccountChange(pda, handleAccountChange); + + return () => { + connection.removeAccountChangeListener(subscriptionId); + }; }, [publicKey]); + ``` ### Calculate energy and show count down From c1386706f637809f210baefd688695f0f46e04df Mon Sep 17 00:00:00 2001 From: Onyewuchi Emmanuel Date: Wed, 4 Sep 2024 21:07:27 +0100 Subject: [PATCH 021/206] =?UTF-8?q?token-extension-metadata=20Refactored?= =?UTF-8?q?=20off-chain=20metadata=20fetching=20with=20async/await=20and?= =?UTF-8?q?=20added=20err=E2=80=A6=20(#358)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Refactored off-chain metadata fetching with async/await and added error handling - Replaced .then() with async/await for consistency and readability. - Added a try/catch block for better error handling when fetching and parsing off-chain metadata. - Utilized optional chaining for safer access to the URI property. * fix(): syntax fix --------- Co-authored-by: Onyewuchi Emeka --- .../token-extensions-metadata.md | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/content/courses/token-extensions/token-extensions-metadata.md b/content/courses/token-extensions/token-extensions-metadata.md index 081def3fa..5dcc3a299 100644 --- a/content/courses/token-extensions/token-extensions-metadata.md +++ b/content/courses/token-extensions/token-extensions-metadata.md @@ -1082,11 +1082,14 @@ const onChainMetadata = await getTokenMetadata(connection, mint.publicKey); console.log("onchain metadata =====>", onChainMetadata); // And we can even get the off-chain json now -if (onChainMetadata && onChainMetadata.uri) { - const offChainMetadata = await fetch(onChainMetadata.uri).then(res => - res.json(), - ); - console.log("Mint off-chain metadata =====>", offChainMetadata); +if (onChainMetadata?.uri) { + try { + const response = await fetch(onChainMetadata.uri); + const offChainMetadata = await response.json(); + console.log("Mint off-chain metadata =====>", offChainMetadata); + } catch (error) { + console.error("Error fetching or parsing off-chain metadata:", error); + } } ``` @@ -1290,11 +1293,14 @@ export default async function createNFTWithEmbeddedMetadata( console.log("onchain metadata =====>", onChainMetadata); // And we can even get the off-chain JSON now - if (onChainMetadata && onChainMetadata.uri) { - const offChainMetadata = await fetch(onChainMetadata.uri).then(res => - res.json(), - ); - console.log("Mint off-chain metadata =====>", offChainMetadata); + if (onChainMetadata?.uri) { + try { + const response = await fetch(onChainMetadata.uri); + const offChainMetadata = await response.json(); + console.log("Mint off-chain metadata =====>", offChainMetadata); + } catch (error) { + console.error("Error fetching or parsing off-chain metadata:", error); + } } } ``` From b8df5ea37d17a764c0467d3e3843325ea66d319b Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Wed, 4 Sep 2024 16:08:58 -0400 Subject: [PATCH 022/206] Prettier https://www.youtube.com/watch?v=DiF1ituOTNU --- content/courses/onchain-development/intro-to-onchain.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/courses/onchain-development/intro-to-onchain.md b/content/courses/onchain-development/intro-to-onchain.md index 7d433cc67..9d90919ba 100644 --- a/content/courses/onchain-development/intro-to-onchain.md +++ b/content/courses/onchain-development/intro-to-onchain.md @@ -11,8 +11,8 @@ description: ## Summary -- **Onchain programs** (sometimes called 'smart contracts') run directly on Solana, just like programs on your - computer. +- **Onchain programs** (sometimes called 'smart contracts') run directly on + Solana, just like programs on your computer. - These programs consist of **instruction handlers** - functions that process instructions from transactions. - Programs interact with the blockchain by reading from and writing to Solana From 3c43753d7b929b04979c03071aa3f99a5f4111d7 Mon Sep 17 00:00:00 2001 From: Onyewuchi Emmanuel Date: Wed, 4 Sep 2024 21:58:31 +0100 Subject: [PATCH 023/206] Refactor updateBalance to use async/await consistently and add error handling (#356) - Replaced .then() with await for consistency with async/await syntax. - Added try/catch block to handle and log errors when fetching the balance. - Improved readability and robustness of the balance update function. - Updated error logging to use a consistent error variable name instead of e for better clarity. Co-authored-by: Onyewuchi Emeka --- content/courses/mobile/mwa-deep-dive.md | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/content/courses/mobile/mwa-deep-dive.md b/content/courses/mobile/mwa-deep-dive.md index a4dd34390..023a84bd7 100644 --- a/content/courses/mobile/mwa-deep-dive.md +++ b/content/courses/mobile/mwa-deep-dive.md @@ -679,8 +679,8 @@ export function WalletProvider(props: WalletProviderProps) { ); } setKeyPair(keyPair); - } catch (e) { - console.log("error getting keypair: ", e); + } catch (error) { + console.log("error getting keypair: ", error); } }; @@ -735,9 +735,12 @@ function MainScreen() { const updateBalance = async () => { if (wallet) { - await connection.getBalance(wallet.publicKey).then(lamports => { + try { + const lamports = await connection.getBalance(wallet.publicKey); setBalance(lamports / LAMPORTS_PER_SOL); - }); + } catch (error) { + console.error("Failed to fetch / update balance:", error); + } } }; @@ -751,8 +754,8 @@ function MainScreen() { ); await connection.confirmTransaction(signature, "max"); await updateBalance(); - } catch (e) { - console.log(e); + } catch (error) { + console.log("error requesting airdrop", error); } setIsLoading(false); @@ -1455,8 +1458,8 @@ export function signTransactionPayloads( }, ]); return transaction.serialize(); - } catch (e) { - console.log("sign error: " + e); + } catch (error) { + console.log("sign error: " + error); valid[index] = false; return new Uint8Array([]); } @@ -1521,12 +1524,13 @@ function SignAndSendTransactionScreen( setLoading(true); try { await signAndSendTransaction(wallet, connection, request); - } catch (e) { + } catch (error) { const valid = request.payloads.map(() => false); resolve(request, { failReason: MWARequestFailReason.InvalidSignatures, valid, }); + console.error("Transaction failed:", error); } finally { setLoading(false); } From d2e220e5c7739037e44570e0b366d906d54b5cfc Mon Sep 17 00:00:00 2001 From: T-Mathieu <97788048+T-Mathieu@users.noreply.github.com> Date: Thu, 5 Sep 2024 20:35:39 +0200 Subject: [PATCH 024/206] Fix INIT_SPACE typo (#430) Fix typo introduced in the last commit. Replace MovieAccountState::INIT_SOACE by MovieAccountState::INIT_SPACE --- content/courses/onchain-development/anchor-pdas.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/courses/onchain-development/anchor-pdas.md b/content/courses/onchain-development/anchor-pdas.md index 32929e2a3..28719fba2 100644 --- a/content/courses/onchain-development/anchor-pdas.md +++ b/content/courses/onchain-development/anchor-pdas.md @@ -599,7 +599,7 @@ pub struct AddMovieReview<'info> { seeds = [title.as_bytes(), initializer.key().as_ref()], bump, payer = initializer, - space = DISCRIMINATOR + MovieAccountState::INIT_SOACE + space = DISCRIMINATOR + MovieAccountState::INIT_SPACE )] pub movie_review: Account<'info, MovieAccountState>, #[account(mut)] @@ -674,7 +674,7 @@ pub struct UpdateMovieReview<'info> { mut, seeds = [title.as_bytes(), initializer.key().as_ref()], bump, - realloc = DISCRIMINATOR + MovieAccountState::INIT_SOACE + realloc = DISCRIMINATOR + MovieAccountState::INIT_SPACE realloc::payer = initializer, realloc::zero = true, )] From 99449bf5a4177565fd4f5c3a2844fce8af6f284a Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Thu, 5 Sep 2024 14:52:47 -0400 Subject: [PATCH 025/206] Offchain and onchain are one word per Foundation style guide (#429) --- .../connecting-to-offchain-data/oracles.md | 10 ++++---- .../offline-transactions/durable-nonces.md | 2 +- .../program-architecture.md | 2 +- .../state-compression/compressed-nfts.md | 14 +++++------ .../generalized-state-compression.md | 10 ++++---- .../courses/token-extensions/group-member.md | 2 +- .../token-extensions-metadata.md | 24 +++++++++---------- .../courses/token-extensions/transfer-hook.md | 2 +- content/guides/games/interact-with-tokens.md | 2 +- content/guides/getstarted/rust-to-solana.md | 6 ++--- content/guides/javascript/compressed-nfts.md | 2 +- .../token-extensions/dynamic-meta-data-nft.md | 2 +- docs/advanced/actions.md | 2 +- docs/advanced/state-compression.md | 10 ++++---- docs/clients/rust.md | 2 +- docs/core/tokens.md | 4 ++-- docs/economics/staking/stake-programming.md | 4 ++-- docs/terminology.md | 2 +- 18 files changed, 51 insertions(+), 51 deletions(-) diff --git a/content/courses/connecting-to-offchain-data/oracles.md b/content/courses/connecting-to-offchain-data/oracles.md index fa638f4e2..0688f9603 100644 --- a/content/courses/connecting-to-offchain-data/oracles.md +++ b/content/courses/connecting-to-offchain-data/oracles.md @@ -38,7 +38,7 @@ Oracles can provide just about any type of data onchain. Examples include: While the exact implementation may differ from blockchain to blockchain, generally Oracles work as follows: -1. Data is sourced off-chain. +1. Data is sourced offchain. 2. That data is published onchain via a transaction, and stored in an account. 3. Programs can read the data stored in the account and use that data in the program's logic. @@ -82,7 +82,7 @@ On the other hand, you may be less willing to trust a centralized oracle providing price information for trading applications. You may end up creating many standalone oracles for your own applications simply -as a way to get access to off-chain information that you need. However, those +as a way to get access to offchain information that you need. However, those oracles are unlikely to be used by the broader community where decentralization is a core tenet. You should also be hesitant to use centralized, third-party oracles yourself. @@ -138,7 +138,7 @@ verify each oracle’s software to allow participation in the network. If an oracle operator acts maliciously and attempts to change the operation of the approved code, a data quote verification will fail. This allows Switchboard oracles to operate beyond quantitative value reporting, such as functions -- -running off-chain custom and confidential computations. +running offchain custom and confidential computations. ### Switchboard Oracles @@ -158,7 +158,7 @@ understand how Switchboard works: Each data source should correspond to a job account. The job account is a collection of Switchboard tasks used to instruct the oracles on how to fetch and transform data. In other words, it stores the blueprints for how data is - fetched off-chain for a particular data source. + fetched offchain for a particular data source. - **Oracle** - A separate program that sits between the internet and the blockchain and facilitates the flow of information. An oracle reads a feed’s job definitions, calculates the result, and submits its response onchain. @@ -235,7 +235,7 @@ data is published onchain: #### How to use Switchboard Oracles -To use Switchboard oracles and incorporate off-chain data into a Solana program, +To use Switchboard oracles and incorporate offchain data into a Solana program, you first have to find a feed that provides the data you need. Switchboard feeds are public and there are many [already available that you can choose from](https://app.switchboard.xyz/solana/devnet/explore). diff --git a/content/courses/offline-transactions/durable-nonces.md b/content/courses/offline-transactions/durable-nonces.md index 4d166979e..a17a92b82 100644 --- a/content/courses/offline-transactions/durable-nonces.md +++ b/content/courses/offline-transactions/durable-nonces.md @@ -131,7 +131,7 @@ sign with your cold wallet. ### Using Durable nonces overcome the short lifespan of regular transactions -Durable nonces are a way to sign transactions off-chain and keep them in storage +Durable nonces are a way to sign transactions offchain and keep them in storage until they are ready to be submitted to the network. And this allows us to create durable transactions. diff --git a/content/courses/program-optimization/program-architecture.md b/content/courses/program-optimization/program-architecture.md index 0af3b57a3..f18289284 100644 --- a/content/courses/program-optimization/program-architecture.md +++ b/content/courses/program-optimization/program-architecture.md @@ -78,7 +78,7 @@ You can read about it in [the Solana documentation](https://solana.com/docs/intro/rent). Rent etymology aside, putting data on the blockchain can be expensive. It’s why -NFT attributes and associated files, like the image, are stored off-chain. You +NFT attributes and associated files, like the image, are stored offchain. You ultimately want to strike a balance that leaves your program highly functional without becoming so expensive that your users don’t want to pay to open the data account. diff --git a/content/courses/state-compression/compressed-nfts.md b/content/courses/state-compression/compressed-nfts.md index 0e3372b81..461bec325 100644 --- a/content/courses/state-compression/compressed-nfts.md +++ b/content/courses/state-compression/compressed-nfts.md @@ -17,7 +17,7 @@ description: structure - The cNFT data hash can’t be used to infer the cNFT data, but it can be used to **verify** if the cNFT data you’re seeing is correct -- Supporting RPC providers **index** cNFT data off-chain when the cNFT is minted +- Supporting RPC providers **index** cNFT data offchain when the cNFT is minted so that you can use the **Read API** to access the data - The **Metaplex Bubblegum program** is an abstraction on top of the **State Compression** program that enables you to more simply create, mint, and manage @@ -77,7 +77,7 @@ data exists in the ledger state and could theoretically be retrieved from the original transaction by replaying the entire chain state from origin. However, it’s much more straightforward (though still complicated) to have an **indexer** track and index this data as the transactions occur. This ensures there is an -off-chain “cache” of the data that anyone can access and subsequently verify +offchain “cache” of the data that anyone can access and subsequently verify against the onchain root hash. This process is _very complex_. We’ll cover some of the key concepts below but @@ -608,7 +608,7 @@ console.log(JSON.stringify(result, null, 2)); ``` This will return a JSON object that is comprehensive of what a traditional NFT’s -on- and off-chain metadata would look like combined. For example, you can find +on- and offchain metadata would look like combined. For example, you can find the cNFT attributes at `content.metadata.attributes` or the image at `content.files.uri`. @@ -833,9 +833,9 @@ Take some time to familiarize yourself with the starter code provided. Most important are the helper functions provided in `utils.ts` and the URIs provided in `uri.ts`. -The `uri.ts` file provides 10k URIs that you can use for the off-chain portion -of your NFT metadata. You can, of course, create your own metadata. But this -lesson isn’t explicitly about preparing metadata so we’ve provided some for you. +The `uri.ts` file provides 10k URIs that you can use for the offchain portion of +your NFT metadata. You can, of course, create your own metadata. But this lesson +isn’t explicitly about preparing metadata so we’ve provided some for you. The `utils.ts` file has a few helper functions to keep you from writing more unnecessary boilerplate than you need to. They are as follows: @@ -1262,7 +1262,7 @@ surface that data when requested. If we add a call to this function at the end of `main` and re-run your script, the data we get back in the console is very comprehensive. It includes all of -the data you’d expect in both the onchain and off-chain portion of a traditional +the data you’d expect in both the onchain and offchain portion of a traditional NFT. You can find the cNFT’s attributes, files, ownership and creator information, and more. diff --git a/content/courses/state-compression/generalized-state-compression.md b/content/courses/state-compression/generalized-state-compression.md index 00252dbf0..4333e308d 100644 --- a/content/courses/state-compression/generalized-state-compression.md +++ b/content/courses/state-compression/generalized-state-compression.md @@ -20,7 +20,7 @@ description: - Concurrent Merkle trees are a specialized version of Merkle trees that allow concurrent updates. - Because data in a state-compressed program is not stored onchain, you have to - user indexers to keep an off-chain cache of the data and then verify that data + user indexers to keep an offchain cache of the data and then verify that data against the onchain Merkle tree. ## Lesson @@ -185,8 +185,8 @@ in the ledger state and could theoretically be retrieved from the original transaction by replaying the entire chain state from the beginning. However, it’s much more straightforward (though still complicated) to have an **indexer** track and index this data as the transactions occur. This ensures -there is an off-chain “cache” of the data that anyone can access and -subsequently verify against the onchain root hash. +there is an offchain “cache” of the data that anyone can access and subsequently +verify against the onchain root hash. This process is complex, but it will make sense after some practice. @@ -239,9 +239,9 @@ arbitrary state compression. Instead, you have two primary options: 1. Use an indexing provider that will build a custom indexing solution for your program that observes the events sent to the Noop program and stores the - relevant data off-chain. + relevant data offchain. 2. Create your own pseudo-indexing solution that stores transaction data - off-chain. + offchain. For many dApps, option 2 makes plenty of sense. Larger-scale applications may need to rely on infrastructure providers to handle their indexing. diff --git a/content/courses/token-extensions/group-member.md b/content/courses/token-extensions/group-member.md index 6953444d9..ca12d49d3 100644 --- a/content/courses/token-extensions/group-member.md +++ b/content/courses/token-extensions/group-member.md @@ -537,7 +537,7 @@ const groupMetadata: LabNFTMetadata = { tokenUri: "", }; -// Upload off-chain metadata +// Upload offchain metadata groupMetadata.tokenUri = await uploadOffChainMetadata(payer, groupMetadata); // Format group token metadata diff --git a/content/courses/token-extensions/token-extensions-metadata.md b/content/courses/token-extensions/token-extensions-metadata.md index 5dcc3a299..8baf0fa57 100644 --- a/content/courses/token-extensions/token-extensions-metadata.md +++ b/content/courses/token-extensions/token-extensions-metadata.md @@ -389,7 +389,7 @@ export function createUpdateAuthorityInstruction( The function `createEmitInstruction` "emits" or logs out token-metadata in the expected TokenMetadata state format. This is a required function for metadata programs that want to follow the TokenMetadata interface. The emit instruction -allows indexers and other off-chain users to call to get metadata. This also +allows indexers and other offchain users to call to get metadata. This also allows custom metadata programs to store [metadata in a different format while maintaining compatibility with the Interface standards](https://solana.com/developers/guides/token-extensions/metadata-pointer#metadata-interface-instructions). @@ -643,10 +643,10 @@ at 100 KiB. **`helpers.ts`** file provides us with a useful helper function `uploadOffChainMetadata`. -`uploadOffChainMetadata` is a helper to store the off-chain metadata on Arweave +`uploadOffChainMetadata` is a helper to store the offchain metadata on Arweave using Irys (formerly Bundlr). In this lab we will be more focused on the Token Extensions Program interaction, so this uploader function is provided. It is -important to note that an NFT or any off-chain metadata can be stored anywhere +important to note that an NFT or any offchain metadata can be stored anywhere with any storage provider like [NFT.storage](https://nft.storage/), Solana's native [ShadowDrive](https://www.shdwdrive.com/), or [Irys (formerly Bundlr)](https://irys.xyz/). At the end of the day, all you need @@ -695,12 +695,12 @@ you are running into airdropping problems: - Copy the address and airdrop some devnet sol from [faucet.solana](https://faucet.solana.com/). -### 1. Uploading the off-chain metadata +### 1. Uploading the offchain metadata In this section we will decide on our NFT metadata and upload our files to NFT.Storage using the helper functions provided in the starting code. -To upload our off-chain metadata, we need to first prepare an image that will +To upload our offchain metadata, we need to first prepare an image that will represent our NFT. We've provided `cat.png`, but feel free to replace it with your own. Most image types are supported by most wallets. (Again devenet Irys allows up to 100KiB per file) @@ -763,7 +763,7 @@ console.log("Token URI:", tokenUri); Now run `npm run start` in your terminal and test your code. You should see the URI logged once the uploading is done. If you visit the link you should see a -JSON object that holds all of our off-chain metadata. +JSON object that holds all of our offchain metadata. ### 2. Create NFT function @@ -1081,14 +1081,14 @@ const onChainMetadata = await getTokenMetadata(connection, mint.publicKey); // Now we can see the metadata coming with the mint console.log("onchain metadata =====>", onChainMetadata); -// And we can even get the off-chain json now +// And we can even get the offchain json now if (onChainMetadata?.uri) { try { const response = await fetch(onChainMetadata.uri); const offChainMetadata = await response.json(); - console.log("Mint off-chain metadata =====>", offChainMetadata); + console.log("Mint offchain metadata =====>", offChainMetadata); } catch (error) { - console.error("Error fetching or parsing off-chain metadata:", error); + console.error("Error fetching or parsing offchain metadata:", error); } } ``` @@ -1292,14 +1292,14 @@ export default async function createNFTWithEmbeddedMetadata( // Now we can see the metadata coming with the mint console.log("onchain metadata =====>", onChainMetadata); - // And we can even get the off-chain JSON now + // And we can even get the offchain JSON now if (onChainMetadata?.uri) { try { const response = await fetch(onChainMetadata.uri); const offChainMetadata = await response.json(); - console.log("Mint off-chain metadata =====>", offChainMetadata); + console.log("Mint offchain metadata =====>", offChainMetadata); } catch (error) { - console.error("Error fetching or parsing off-chain metadata:", error); + console.error("Error fetching or parsing offchain metadata:", error); } } } diff --git a/content/courses/token-extensions/transfer-hook.md b/content/courses/token-extensions/transfer-hook.md index e389268ea..f27cead37 100644 --- a/content/courses/token-extensions/transfer-hook.md +++ b/content/courses/token-extensions/transfer-hook.md @@ -95,7 +95,7 @@ const [pda] = PublicKey.findProgramAddressSync( By storing the extra accounts required by the `Execute` instruction in the `extra_account_meta_list` PDA, these accounts can be automatically added to a token transfer instruction from the client. We'll see how to do that in the -off-chain section. +offchain section. #### 1. `initialize_extra_account_meta_list` instruction: diff --git a/content/guides/games/interact-with-tokens.md b/content/guides/games/interact-with-tokens.md index 4273f3cdc..9a08e5acd 100644 --- a/content/guides/games/interact-with-tokens.md +++ b/content/guides/games/interact-with-tokens.md @@ -211,7 +211,7 @@ pub struct CreateMint<'info> { The `create_mint` instruction creates a new token mint, using a Program Derived Address (PDA) as both the address of the token mint and its mint authority. The -instruction takes a URI (off-chain metadata), name, and symbol as parameters. +instruction takes a URI (offchain metadata), name, and symbol as parameters. This instruction then creates a metadata account for the token mint through a [Cross-Program Invocation (CPI)](/docs/core/cpi.md) calling the diff --git a/content/guides/getstarted/rust-to-solana.md b/content/guides/getstarted/rust-to-solana.md index 3d6995bf5..883f372c8 100644 --- a/content/guides/getstarted/rust-to-solana.md +++ b/content/guides/getstarted/rust-to-solana.md @@ -244,10 +244,10 @@ Alternatively, [install the Anchor CLI](https://www.anchor-lang.com/docs/installation) locally, and then use `anchor init ` to create a new Anchor project. -## Creating Off-chain Programs +## Creating offchain Programs So far, this guide has covered the key details of developing **onchain Solana -programs** in Rust. However, it’s also possible to develop **off-chain Solana +programs** in Rust. However, it’s also possible to develop **offchain Solana clients** in Rust. This can be done by using the [solana_sdk crate](https://docs.rs/solana-sdk/latest/solana_sdk/). This contains the [solana_client crate](https://docs.rs/solana-client/latest/solana_client/) @@ -257,7 +257,7 @@ that allows Rust programs to interact with a Solana node via the Another option is to use the [anchor_client crate](https://docs.rs/anchor-client/latest/anchor_client/) which interacts with Solana programs written in Anchor via RPC. Alternatively, -consider writing onchain programs in Rust, and off-chain +consider writing onchain programs in Rust, and offchain [clients in JS/TS](https://solana.com/de/docs/clients/javascript-reference). ## Wrap Up diff --git a/content/guides/javascript/compressed-nfts.md b/content/guides/javascript/compressed-nfts.md index 08e391ca3..18c5eb1de 100644 --- a/content/guides/javascript/compressed-nfts.md +++ b/content/guides/javascript/compressed-nfts.md @@ -364,7 +364,7 @@ changed (unless we want it to). > Learn more about how State Compression uses > [concurrent merkle trees](https://docs.solana.com/learn/state-compression#what-is-a-concurrent-merkle-tree) -> to cryptographically secure off-chain data using the Solana ledger. +> to cryptographically secure offchain data using the Solana ledger. ### Define our NFT's metadata diff --git a/content/guides/token-extensions/dynamic-meta-data-nft.md b/content/guides/token-extensions/dynamic-meta-data-nft.md index ad68dd621..279400ac2 100644 --- a/content/guides/token-extensions/dynamic-meta-data-nft.md +++ b/content/guides/token-extensions/dynamic-meta-data-nft.md @@ -55,7 +55,7 @@ the JavaScript client. Each NFT will have some basic structure provided via the Token Metadata interface: - default on-chain fields - `name`, `symbol` and `uri` - - the `uri` is a link to an off-chain json file which contains the off chain + - the `uri` is a link to an offchain json file which contains the off chain metadata of the NFT - we will also have custom "additional fields" that we define diff --git a/docs/advanced/actions.md b/docs/advanced/actions.md index 2a9d188bf..3aa38118d 100644 --- a/docs/advanced/actions.md +++ b/docs/advanced/actions.md @@ -88,7 +88,7 @@ interface. an optional list of related actions. 2. the [POST request](#post-request) returns a signable transaction or message that the client then prompts the user's wallet to sign and execute on the - blockchain or in another off-chain service. + blockchain or in another offchain service. ### Action Execution and Lifecycle diff --git a/docs/advanced/state-compression.md b/docs/advanced/state-compression.md index a91eee2b8..99860da5e 100644 --- a/docs/advanced/state-compression.md +++ b/docs/advanced/state-compression.md @@ -3,14 +3,14 @@ sidebarSortOrder: 4 title: State Compression description: 'State Compression is the method of cheaply and securely storing - "fingerprints" of off-chain data in the Solana leger, instead of expensive + "fingerprints" of offchain data in the Solana leger, instead of expensive accounts.' --- On Solana, [State Compression](/docs/advanced/state-compression.md) is the -method of creating a "fingerprint" (or hash) of off-chain data and storing this +method of creating a "fingerprint" (or hash) of offchain data and storing this fingerprint on-chain for secure verification. Effectively using the security of -the Solana ledger to securely validate off-chain data, verifying it has not been +the Solana ledger to securely validate offchain data, verifying it has not been tampered with. This method of "compression" allows Solana programs and dApps to use cheap @@ -25,7 +25,7 @@ this final hash on-chain. ## What is State Compression? In simple terms, state compression uses "**_tree_**" structures to -cryptographically hash off-chain data together, in a deterministic way, to +cryptographically hash offchain data together, in a deterministic way, to compute a single final hash that gets stored on-chain. These _trees_ are created in this "_deterministic_" process by: @@ -40,7 +40,7 @@ These _trees_ are created in this "_deterministic_" process by: This `root hash` is then stored onchain, as a verifiable **_proof_** of all of the data within every leaf. Allowing anyone to cryptographically verify all the -off-chain data within the tree, while only actually storing a **minimal** amount +offchain data within the tree, while only actually storing a **minimal** amount of data on-chain. Therefore, significantly reducing the cost to store/prove large amounts of data due to this "state compression". diff --git a/docs/clients/rust.md b/docs/clients/rust.md index 6f8d93d0e..767e5626c 100644 --- a/docs/clients/rust.md +++ b/docs/clients/rust.md @@ -30,7 +30,7 @@ development: SBF. This crate contains many fundamental data types and is re-exported from [`solana-sdk`], which cannot be imported from a Solana program. -- [`solana-sdk`] — The basic off-chain SDK, it re-exports +- [`solana-sdk`] — The basic offchain SDK, it re-exports [`solana-program`] and adds more APIs on top of that. Most Solana programs that do not run on-chain will import this. diff --git a/docs/core/tokens.md b/docs/core/tokens.md index 36092eb10..32b147741 100644 --- a/docs/core/tokens.md +++ b/docs/core/tokens.md @@ -551,8 +551,8 @@ spl-token initialize-metadata ``` -The token URI is normally a link to off-chain metadata you want to associate -with the token. You can find an example of the JSON format +The token URI is normally a link to offchain metadata you want to associate with +the token. You can find an example of the JSON format [here](https://raw.githubusercontent.com/solana-developers/opos-asset/main/assets/DeveloperPortal/metadata.json). For example, running the following command will store the additional metadata diff --git a/docs/economics/staking/stake-programming.md b/docs/economics/staking/stake-programming.md index afac9e315..ed9852168 100644 --- a/docs/economics/staking/stake-programming.md +++ b/docs/economics/staking/stake-programming.md @@ -4,12 +4,12 @@ title: Stake Programming To maximize stake distribution, decentralization, and censorship resistance on the Solana network, staking can be performed programmatically. The team and -community have developed several on-chain and off-chain programs to make stakes +community have developed several on-chain and offchain programs to make stakes easier to manage. #### Stake-o-matic aka Auto-delegation Bots -This off-chain program manages a large population of validators staked by a +This offchain program manages a large population of validators staked by a central authority. The Solana Foundation uses an auto-delegation bot to regularly delegate its stake to "non-delinquent" validators that meet specified performance requirements. diff --git a/docs/terminology.md b/docs/terminology.md index 27c17ea1f..2ce27df49 100644 --- a/docs/terminology.md +++ b/docs/terminology.md @@ -144,7 +144,7 @@ consensus. ## drone -An off-chain service that acts as a custodian for a user's private key. It +An offchain service that acts as a custodian for a user's private key. It typically serves to validate and sign transactions. ## entry From 409da11e2a2e305973e10f7a0148c17b677121cf Mon Sep 17 00:00:00 2001 From: John <75003086+ZYJLiu@users.noreply.github.com> Date: Fri, 6 Sep 2024 14:05:25 -0500 Subject: [PATCH 026/206] update installation page (#438) --- docs/intro/installation.md | 59 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/docs/intro/installation.md b/docs/intro/installation.md index 9632b4271..1e45221c8 100644 --- a/docs/intro/installation.md +++ b/docs/intro/installation.md @@ -306,6 +306,42 @@ You should see output similar to the following: anchor-cli 0.30.1 ``` +If you encounter the error `type annotations needed for Box<_>` when installing +the Anchor CLI, try changing your Rust version to 1.79.0 and attempt the +installation again. + + + + +``` + Compiling time v0.3.29 +error[E0282]: type annotations needed for `Box<_>` + --> /home/x/.cargo/registry/src/index.crates.io-6f17d22bba15001f/time-0.3.29/src/format_description/parse/mod.rs:83:9 + | +83 | let items = format_items + | ^^^^^ +... +86 | Ok(items.into()) + | ---- type must be known at this point + | +help: consider giving `items` an explicit type, where the placeholders `_` are specified + | +83 | let items: Box<_> = format_items + | ++++++++ +``` + +You can find more context regarding this error +[here](https://github.com/coral-xyz/anchor/pull/3143) + + + + +Run the following command to install Rust 1.79.0: + +```shell +rustup default 1.79.0 +``` + When installing the Anchor CLI on Linux or WSL, you may encounter this error: ``` @@ -383,6 +419,29 @@ You should the following output: +When running `anchor build`, if you encounter `error: not a directory` similar +following: + +``` +error: not a directory: '.../solana-release/bin/sdk/sbf/dependencies/platform-tools/rust/lib' +``` + +Try these solutions: + +1. Force install using the following command: + +```shell +cargo build-sbf --force-tools-install +``` + +2. If the above doesn't work, clear the Solana cache: + +```shell +rm -rf ~/.cache/solana/* +``` + +After applying either solution, attempt to run `anchor build` again. + If you are on Linux or WSL and encounter the following errors when running `anchor test` after creating a new Anchor project, it's may be due to missing Node.js or Yarn: From f2ffef5f9ece5245a4e8c8911abe1ba03fc15679 Mon Sep 17 00:00:00 2001 From: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> Date: Tue, 10 Sep 2024 12:19:46 -0400 Subject: [PATCH 027/206] fix: render error (#457) --- docs/intro/installation.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/intro/installation.md b/docs/intro/installation.md index 1e45221c8..ba49b6ea4 100644 --- a/docs/intro/installation.md +++ b/docs/intro/installation.md @@ -190,8 +190,7 @@ Close and reopen your terminal to apply the PATH changes or run the following in export PATH="/Users/test/.local/share/solana/install/active_release/bin:$PATH" ``` - - + If you are using a Linux or WSL terminal, you can add the PATH environment @@ -311,7 +310,7 @@ the Anchor CLI, try changing your Rust version to 1.79.0 and attempt the installation again. - +`"}> ``` Compiling time v0.3.29 From 16914c66f564ca4980bdba801fb446d0d7855ccf Mon Sep 17 00:00:00 2001 From: OFUZOR CHUKWUEMEKE <64340112+OFUZORCHUKWUEMEKE@users.noreply.github.com> Date: Wed, 11 Sep 2024 00:09:09 +0100 Subject: [PATCH 028/206] Fix syntax error in UpdateMovieReview struct by adding missing comma in account attribute (#445) Fix UpdateMovieReview struct: Add missing comma in account attribute The omission of a comma in the `account` attribute macro was causing a syntax error: error: expected non-macro attribute, found attribute macro `account` This commit adds the missing comma, resolving the error and allowing the code to compile correctly. --- content/courses/onchain-development/anchor-pdas.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/courses/onchain-development/anchor-pdas.md b/content/courses/onchain-development/anchor-pdas.md index 28719fba2..da2475756 100644 --- a/content/courses/onchain-development/anchor-pdas.md +++ b/content/courses/onchain-development/anchor-pdas.md @@ -5,7 +5,7 @@ objectives: - Enable and use the `init_if_needed` constraint - Use the `realloc` constraint to reallocate space on an existing account - Use the `close` constraint to close an existing account -description: +description: "Store arbitrary data on Solana, using PDAs, an inbuilt key-value store." --- @@ -674,7 +674,7 @@ pub struct UpdateMovieReview<'info> { mut, seeds = [title.as_bytes(), initializer.key().as_ref()], bump, - realloc = DISCRIMINATOR + MovieAccountState::INIT_SPACE + realloc = DISCRIMINATOR + MovieAccountState::INIT_SPACE, realloc::payer = initializer, realloc::zero = true, )] From 540ad6e2e360f6656cf6f2ad1379aea55a9d35a5 Mon Sep 17 00:00:00 2001 From: 0xCipherCoder Date: Wed, 11 Sep 2024 07:57:43 +0530 Subject: [PATCH 029/206] Program Security - Updated security introduction lesson (#395) * Updated security intro lesson * Updated security lesson * Update content/courses/program-security/security-intro.md Co-authored-by: Mike MacCana * Update content/courses/program-security/security-intro.md Co-authored-by: Mike MacCana * Update content/courses/program-security/security-intro.md Co-authored-by: Mike MacCana * Update content/courses/program-security/security-intro.md Co-authored-by: Mike MacCana * Update content/courses/program-security/security-intro.md Co-authored-by: Mike MacCana * Update content/courses/program-security/security-intro.md Co-authored-by: Mike MacCana * Change branch name * Merged changes * Fixed links and content * Added callout * Added callout * Added grammar fix * Added grammar fix --------- Co-authored-by: Mike MacCana --- .../program-security/security-intro.md | 74 +++++++++---------- 1 file changed, 36 insertions(+), 38 deletions(-) diff --git a/content/courses/program-security/security-intro.md b/content/courses/program-security/security-intro.md index bc4a3849a..468be61db 100644 --- a/content/courses/program-security/security-intro.md +++ b/content/courses/program-security/security-intro.md @@ -1,48 +1,46 @@ --- -title: How to approach the Program Security module +title: How to Approach the Program Security Course objectives: - - understand how to approach the Program Security Module + - Understand how to approach the Program Security Course description: "Learn how to think intelligently about security for your onchain programs, - whether developing in Anchor or in Native Rust." + whether developing in Anchor or Native Rust." --- ## Overview -The goal of this course is to expose you to a wide variety of common security -exploits that are unique to Solana development. We’ve heavily modeled this -course off Coral's -[Sealevel Attacks](https://github.com/coral-xyz/sealevel-attacks) repo. +This course aims to introduce you to a range of common security exploits unique +to Solana development. We’ve modeled this course heavily on Coral's +[Sealevel Attacks](https://github.com/coral-xyz/sealevel-attacks) repository. -We've covered program security in our +Program security is covered in our [Anchor](/content/courses/onchain-development.md) and -[native Rust](/content/courses/native-onchain-development.md) development -courses because we wanted to make sure that anyone deploying programs to Mainnet -right out of the gates had at least a basic understanding of security. And if -that’s you then hopefully the fundamental principles you learned in that lesson -have led to you avoiding some common Solana exploits on your own. - -This unit is meant to build on top of that lesson with two goals in mind: - -1. To expand your awareness of the Solana programming model and the areas where - you need to focus to close up security loopholes in your programs -2. To show you the array of tools provided by Anchor to help you keep your - programs secure - -If you went through the Basic Security lesson, the first few lessons should seem -familiar. They largely cover topics we discussed in that lesson. After that, -some of the attacks may seem new. We encourage you to go through all of them. - -The last thing to call out is that there are a lot more lessons in this course -than in prior course. And the lessons aren't dependent on each other in the same -ways, so you can bounce around a bit more if you'd like. - -Originally, we were going to have more, shorter lessons in this course. And -while they might be shorter than average, they aren't much shorter. It turns out -that even though each of the security vulnerabilities is "simple," there's a lot -to discuss. So each lesson may have a little bit less prose and more code -snippets, making it easy for readers to choose how in depth to go. But, -ultimately, each lesson is still as fully-fledged as they have been before so -that you can really get a solid grasp on each of the discussed security risks. - -As always, we appreciate feedback. Good luck digging in! +[Native Rust](/content/courses/native-onchain-development.md) development +courses to ensure that anyone deploying programs to Mainnet has at least a basic +understanding of security. Those courses should help you avoid some common +Solana exploits on your own. + +This course builds on those courses with two main goals: + +1. Expand your awareness of the Solana programming model and highlight areas + where you need to focus to close security loopholes. +2. Introduce you to the tools provided by Anchor to help keep your programs + secure, and show native Rust users how to implement similar techniques on + their own. + +While the first few lessons in this course cover topics similar to those in the +[Anchor course](/content/courses/onchain-development/intro-to-anchor.md) or +[Program Security lesson](/content/courses/native-onchain-development/program-security.md) +in the [Native Course](/content/courses/native-onchain-development.md), but as +you progress, you’ll encounter new types of attacks. We encourage you to explore +all of them. + + +Unlike the lessons in other courses, which are in order, you are welcome to +explore these lessons in whatever order suits you best. + +Even though each security vulnerability may seem "simple," there's a lot to +discuss. These lessons contain less prose and more code, ensuring you gain a +solid understanding of the security risks discussed. + +As always, your feedback is appreciated. Good luck as you delve into the course! From b8e40124aa70a1531fdf7bd50cab54a9a24cc0e2 Mon Sep 17 00:00:00 2001 From: 0xCipherCoder Date: Wed, 11 Sep 2024 08:00:43 +0530 Subject: [PATCH 030/206] Program security - PDA sharing lesson updated (#449) * Updated code snippets and content as per guidelines * Fixed transfer_ctx and spl import * Fixed transfer_ctx and spl import --- .../onchain-development/anchor-pdas.md | 2 +- .../courses/program-security/pda-sharing.md | 525 +++++++++--------- 2 files changed, 272 insertions(+), 255 deletions(-) diff --git a/content/courses/onchain-development/anchor-pdas.md b/content/courses/onchain-development/anchor-pdas.md index da2475756..a20e1e8ed 100644 --- a/content/courses/onchain-development/anchor-pdas.md +++ b/content/courses/onchain-development/anchor-pdas.md @@ -5,7 +5,7 @@ objectives: - Enable and use the `init_if_needed` constraint - Use the `realloc` constraint to reallocate space on an existing account - Use the `close` constraint to close an existing account -description: +description: "Store arbitrary data on Solana, using PDAs, an inbuilt key-value store." --- diff --git a/content/courses/program-security/pda-sharing.md b/content/courses/program-security/pda-sharing.md index 3e9c77201..a57bf4a95 100644 --- a/content/courses/program-security/pda-sharing.md +++ b/content/courses/program-security/pda-sharing.md @@ -26,25 +26,25 @@ a global PDA to represent the program. However, this opens up the possibility of account validation passing but a user being able to access funds, transfers, or data not belonging to them. -### Insecure global PDA +### Insecure Global PDA In the example below, the `authority` of the `vault` account is a PDA derived using the `mint` address stored on the `pool` account. This PDA is passed into -the instruction as the `authority` account to sign for the transfer tokens from -the `vault` to the `withdraw_destination`. +the instruction handler as the `authority` account to sign for the transfer of +tokens from the `vault` to the `withdraw_destination`. Using the `mint` address as a seed to derive the PDA to sign for the `vault` is insecure because multiple `pool` accounts could be created for the same `vault` -token account, but a different `withdraw_destination`. By using the `mint` as a -seed derive the PDA to sign for token transfers, any `pool` account could sign -for the transfer of tokens from a `vault` token account to an arbitrary -`withdraw_destination`. +token account, but with different `withdraw_destination` accounts. By using the +`mint` as a `seed` to derive the PDA for signing token transfers, any `pool` +account could sign for the transfer of tokens from a `vault` token account to an +arbitrary `withdraw_destination`. ```rust use anchor_lang::prelude::*; use anchor_spl::token::{self, Token, TokenAccount}; -declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"); +declare_id!("ABQaKhtpYQUUgZ9m2sAY7ZHxWv6KyNdhUJW8Dh8NQbkf"); #[program] pub mod pda_sharing_insecure { @@ -53,7 +53,7 @@ pub mod pda_sharing_insecure { pub fn withdraw_tokens(ctx: Context) -> Result<()> { let amount = ctx.accounts.vault.amount; let seeds = &[ctx.accounts.pool.mint.as_ref(), &[ctx.accounts.pool.bump]]; - token::transfer(ctx.accounts.transfer_ctx().with_signer(&[seeds]), amount) + token::transfer(get_transfer_ctx(&ctx.accounts).with_signer(&[seeds]), amount) } } @@ -63,28 +63,31 @@ pub struct WithdrawTokens<'info> { pool: Account<'info, TokenPool>, vault: Account<'info, TokenAccount>, withdraw_destination: Account<'info, TokenAccount>, - authority: AccountInfo<'info>, + /// CHECK: This is the PDA that signs for the transfer + authority: UncheckedAccount<'info>, token_program: Program<'info, Token>, } -impl<'info> WithdrawTokens<'info> { - pub fn transfer_ctx(&self) -> CpiContext<'_, '_, '_, 'info, token::Transfer<'info>> { - let program = self.token_program.to_account_info(); - let accounts = token::Transfer { - from: self.vault.to_account_info(), - to: self.withdraw_destination.to_account_info(), - authority: self.authority.to_account_info(), - }; - CpiContext::new(program, accounts) - } +pub fn get_transfer_ctx<'accounts, 'remaining, 'cpi_code, 'info>( + accounts: &'accounts WithdrawTokens<'info>, +) -> CpiContext<'accounts, 'remaining, 'cpi_code, 'info, token::Transfer<'info>> { + CpiContext::new( + accounts.token_program.to_account_info(), + token::Transfer { + from: accounts.vault.to_account_info(), + to: accounts.withdraw_destination.to_account_info(), + authority: accounts.authority.to_account_info(), + }, + ) } #[account] +#[derive(InitSpace)] pub struct TokenPool { - vault: Pubkey, - mint: Pubkey, - withdraw_destination: Pubkey, - bump: u8, + pub vault: Pubkey, + pub mint: Pubkey, + pub withdraw_destination: Pubkey, + pub bump: u8, } ``` @@ -93,7 +96,7 @@ pub struct TokenPool { One approach to create an account specific PDA is to use the `withdraw_destination` as a seed to derive the PDA used as the authority of the `vault` token account. This ensures the PDA signing for the CPI in the -`withdraw_tokens` instruction is derived using the intended +`withdraw_tokens` instruction handler is derived using the intended `withdraw_destination` token account. In other words, tokens from a `vault` token account can only be withdrawn to the `withdraw_destination` that was originally initialized with the `pool` account. @@ -114,7 +117,7 @@ pub mod pda_sharing_secure { ctx.accounts.pool.withdraw_destination.as_ref(), &[ctx.accounts.pool.bump], ]; - token::transfer(ctx.accounts.transfer_ctx().with_signer(&[seeds]), amount) + token::transfer(get_transfer_ctx(&ctx.accounts).with_signer(&[seeds]), amount) } } @@ -124,53 +127,57 @@ pub struct WithdrawTokens<'info> { pool: Account<'info, TokenPool>, vault: Account<'info, TokenAccount>, withdraw_destination: Account<'info, TokenAccount>, - authority: AccountInfo<'info>, + /// CHECK: This is the PDA that signs for the transfer + authority: UncheckedAccount<'info>, token_program: Program<'info, Token>, } -impl<'info> WithdrawTokens<'info> { - pub fn transfer_ctx(&self) -> CpiContext<'_, '_, '_, 'info, token::Transfer<'info>> { - let program = self.token_program.to_account_info(); - let accounts = token::Transfer { - from: self.vault.to_account_info(), - to: self.withdraw_destination.to_account_info(), - authority: self.authority.to_account_info(), - }; - CpiContext::new(program, accounts) - } +pub fn get_transfer_ctx<'accounts, 'remaining, 'cpi_code, 'info>( + accounts: &'accounts WithdrawTokens<'info>, +) -> CpiContext<'accounts, 'remaining, 'cpi_code, 'info, token::Transfer<'info>> { + CpiContext::new( + accounts.token_program.to_account_info(), + token::Transfer { + from: accounts.vault.to_account_info(), + to: accounts.withdraw_destination.to_account_info(), + authority: accounts.authority.to_account_info(), + }, + ) } #[account] +#[derive(InitSpace)] pub struct TokenPool { - vault: Pubkey, - mint: Pubkey, - withdraw_destination: Pubkey, - bump: u8, + pub vault: Pubkey, + pub mint: Pubkey, + pub withdraw_destination: Pubkey, + pub bump: u8, } ``` -### Anchor’s `seeds` and `bump` constraints +### Anchor’s seeds and bump Constraints PDAs can be used as both the address of an account and allow programs to sign for the PDAs they own. The example below uses a PDA derived using the `withdraw_destination` as both -the address of the `pool` account and owner of the `vault` token account. This -means that only the `pool` account associated with correct `vault` and -`withdraw_destination` can be used in the `withdraw_tokens` instruction. +the address of the `pool` account and the owner of the `vault` token account. +This means that only the `pool` account associated with the correct `vault` and +`withdraw_destination` can be used in the `withdraw_tokens` instruction handler. -You can use Anchor’s `seeds` and `bump` constraints with the `#[account(...)]` +You can use Anchor’s `seeds` and `bump` constraints with the +[`#[account(...)]`](https://www.anchor-lang.com/docs/account-constraints) attribute to validate the `pool` account PDA. Anchor derives a PDA using the -`seeds` and `bump` specified and compare against the account passed into the -instruction as the `pool` account. The `has_one` constraint is used to further -ensure that only the correct accounts stored on the `pool` account are passed -into the instruction. +`seeds` and `bump` specified and compares it against the account passed into the +instruction handler as the `pool` account. The `has_one` constraint is used to +further ensure that only the correct accounts stored on the `pool` account are +passed into the instruction handler. ```rust use anchor_lang::prelude::*; use anchor_spl::token::{self, Token, TokenAccount}; -declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"); +declare_id!("ABQaKhtpYQUUgZ9m2sAY7ZHxWv6KyNdhUJW8Dh8NQbkf"); #[program] pub mod pda_sharing_recommended { @@ -182,154 +189,161 @@ pub mod pda_sharing_recommended { ctx.accounts.pool.withdraw_destination.as_ref(), &[ctx.accounts.pool.bump], ]; - token::transfer(ctx.accounts.transfer_ctx().with_signer(&[seeds]), amount) + token::transfer(get_transfer_ctx(&ctx.accounts).with_signer(&[seeds]), amount) } } #[derive(Accounts)] pub struct WithdrawTokens<'info> { #[account( - has_one = vault, - has_one = withdraw_destination, - seeds = [withdraw_destination.key().as_ref()], - bump = pool.bump, - )] + seeds = [withdraw_destination.key().as_ref()], + bump = pool.bump, + has_one = vault, + has_one = withdraw_destination, + )] pool: Account<'info, TokenPool>, + #[account(mut)] vault: Account<'info, TokenAccount>, + #[account(mut)] withdraw_destination: Account<'info, TokenAccount>, token_program: Program<'info, Token>, } -impl<'info> WithdrawTokens<'info> { - pub fn transfer_ctx(&self) -> CpiContext<'_, '_, '_, 'info, token::Transfer<'info>> { - let program = self.token_program.to_account_info(); - let accounts = token::Transfer { - from: self.vault.to_account_info(), - to: self.withdraw_destination.to_account_info(), - authority: self.pool.to_account_info(), - }; - CpiContext::new(program, accounts) - } +pub fn get_transfer_ctx<'accounts, 'remaining, 'cpi_code, 'info>( + accounts: &'accounts WithdrawTokens<'info>, +) -> CpiContext<'accounts, 'remaining, 'cpi_code, 'info, token::Transfer<'info>> { + CpiContext::new( + accounts.token_program.to_account_info(), + token::Transfer { + from: accounts.vault.to_account_info(), + to: accounts.withdraw_destination.to_account_info(), + authority: accounts.pool.to_account_info(), + }, + ) } #[account] +#[derive(InitSpace)] pub struct TokenPool { - vault: Pubkey, - mint: Pubkey, - withdraw_destination: Pubkey, - bump: u8, + pub vault: Pubkey, + pub mint: Pubkey, + pub withdraw_destination: Pubkey, + pub bump: u8, } ``` ## Lab -Let’s practice by creating a simple program to demonstrate how a PDA sharing can -allow an attacker to withdraw tokens that don’t belong to them. this lab expands -on the examples above by including the instructions to initialize the required -program accounts. +Let’s practice by creating a simple program to demonstrate how PDA sharing can +allow an attacker to withdraw tokens that don’t belong to them. This lab expands +on the examples above by including the instruction handlers to initialize the +required program accounts. -#### 1. Starter +### 1. Starter -To get started, download the starter code on the `starter` branch of -[this repository](https://github.com/Unboxed-Software/solana-pda-sharing/tree/starter). -The starter code includes a program with two instructions and the boilerplate -setup for the test file. +To get started, download the starter code on the +[`starter` branch of this repository](https://github.com/solana-developers/pda-sharing/tree/starter). +The starter code includes a program with two instruction handlers and the +boilerplate setup for the test file. -The `initialize_pool` instruction initializes a new `TokenPool` that stores a -`vault`, `mint`, `withdraw_destination`, and `bump`. The `vault` is a token -account where the authority is set as a PDA derived using the `mint` address. +The `initialize_pool` instruction handler initializes a new `TokenPool` that +stores a `vault`, `mint`, `withdraw_destination`, and `bump`. The `vault` is a +token account where the authority is set as a PDA derived using the `mint` +address. -The `withdraw_insecure` instruction will transfer tokens in the `vault` token -account to a `withdraw_destination` token account. +The `withdraw_insecure` instruction handler will transfer tokens in the `vault` +token account to a `withdraw_destination` token account. However, as written the seeds used for signing are not specific to the vault's -withdraw destination, thus opening up the program to security exploits. Take a +withdrawal destination, thus opening up the program to security exploits. Take a minute to familiarize yourself with the code before continuing on. -#### 2. Test `withdraw_insecure` instruction +### 2. Test withdraw_insecure Instruction Handler -The test file includes the code to invoke the `initialize_pool` instruction and -then mint 100 tokens to the `vault` token account. It also includes a test to -invoke the `withdraw_insecure` using the intended `withdraw_destination`. This -shows that the instructions can be used as intended. +The test file includes the code to invoke the `initialize_pool` instruction +handler and then mint 100 tokens to the `vault` token account. It also includes +a test to invoke the `withdraw_insecure` using the intended +`withdraw_destination`. This shows that the instruction handlers can be used as +intended. -After that, there are two more tests to show how the instructions are vulnerable -to exploit. +After that, there are two more tests to show how the instruction handlers are +vulnerable to exploit. -The first test invokes the `initialize_pool` instruction to create a "fake" -`pool` account using the same `vault` token account, but a different +The first test invokes the `initialize_pool` instruction handler to create a +"fake" `pool` account using the same `vault` token account, but a different `withdraw_destination`. The second test withdraws from this pool, stealing funds from the vault. ```typescript -it("Insecure initialize allows pool to be initialized with wrong vault", async () => { - await program.methods - .initializePool(authInsecureBump) - .accounts({ - pool: poolInsecureFake.publicKey, - mint: mint, - vault: vaultInsecure.address, - withdrawDestination: withdrawDestinationFake, - payer: walletFake.publicKey, - }) - .signers([walletFake, poolInsecureFake]) - .rpc(); - - await new Promise(x => setTimeout(x, 1000)); - - await spl.mintTo( - connection, - wallet.payer, - mint, - vaultInsecure.address, - wallet.payer, - 100, - ); - - const account = await spl.getAccount(connection, vaultInsecure.address); - expect(Number(account.amount)).to.equal(100); +it("allows insecure initialization with incorrect vault", async () => { + try { + await program.methods + .initializePool(insecureAuthorityBump) + .accounts({ + pool: insecurePoolFake.publicKey, + mint: tokenMint, + vault: insecureVault.address, + withdrawDestination: fakeWithdrawDestination, + }) + .signers([insecurePoolFake]) + .rpc(); + + await mintTo( + connection, + wallet.payer, + tokenMint, + insecureVault.address, + wallet.payer, + INITIAL_MINT_AMOUNT, + ); + + const vaultAccount = await getAccount(connection, insecureVault.address); + expect(Number(vaultAccount.amount)).to.equal(INITIAL_MINT_AMOUNT); + } catch (error) { + throw new Error(`Test failed: ${error.message}`); + } }); -it("Insecure withdraw allows stealing from vault", async () => { - await program.methods - .withdrawInsecure() - .accounts({ - pool: poolInsecureFake.publicKey, - vault: vaultInsecure.address, - withdrawDestination: withdrawDestinationFake, - authority: authInsecure, - signer: walletFake.publicKey, - }) - .signers([walletFake]) - .rpc(); - - const account = await spl.getAccount(connection, vaultInsecure.address); - expect(Number(account.amount)).to.equal(0); +it("allows insecure withdrawal to incorrect destination", async () => { + try { + await program.methods + .withdrawInsecure() + .accounts({ + pool: insecurePoolFake.publicKey, + authority: insecureAuthority, + }) + .rpc(); + + const vaultAccount = await getAccount(connection, insecureVault.address); + expect(Number(vaultAccount.amount)).to.equal(0); + } catch (error) { + throw new Error(`Test failed: ${error.message}`); + } }); ``` Run `anchor test` to see that the transactions complete successfully and the -`withdraw_instrucure` instruction allows the `vault` token account to be drained -to a fake withdraw destination stored on the fake `pool` account. +`withdraw_instrucure` instruction handler allows the `vault` token account to be +drained to a fake withdraw destination stored on the fake `pool` account. -#### 3. Add `initialize_pool_secure` instruction +### 3. Add initialize_pool_secure Instruction Handler -Now let's add a new instruction to the program for securely initializing a pool. +Now let's add a new instruction handler to the program for securely initializing +a pool. -This new `initialize_pool_secure` instruction will initialize a `pool` account -as a PDA derived using the `withdraw_destination`. It will also initialize a -`vault` token account with the authority set as the `pool` PDA. +This new `initialize_pool_secure` instruction handler will initialize a `pool` +account as a PDA derived using the `withdraw_destination`. It will also +initialize a `vault` token account with the authority set as the `pool` PDA. ```rust pub fn initialize_pool_secure(ctx: Context) -> Result<()> { ctx.accounts.pool.vault = ctx.accounts.vault.key(); ctx.accounts.pool.mint = ctx.accounts.mint.key(); ctx.accounts.pool.withdraw_destination = ctx.accounts.withdraw_destination.key(); - ctx.accounts.pool.bump = *ctx.bumps.get("pool").unwrap(); + ctx.accounts.pool.bump = ctx.bumps.pool; Ok(()) } - ... #[derive(Accounts)] @@ -337,7 +351,7 @@ pub struct InitializePoolSecure<'info> { #[account( init, payer = payer, - space = 8 + 32 + 32 + 32 + 1, + space = DISCRIMINATOR_SIZE + TokenPool::INIT_SPACE, seeds = [withdraw_destination.key().as_ref()], bump )] @@ -359,22 +373,25 @@ pub struct InitializePoolSecure<'info> { } ``` -#### 4. Add `withdraw_secure` instruction +### 4. Add withdraw_secure Instruction Handler -Next, add a `withdraw_secure` instruction. This instruction will withdraw tokens -from the `vault` token account to the `withdraw_destination`. The `pool` account -is validated using the `seeds` and `bump` constraints to ensure the correct PDA -account is provided. The `has_one` constraints check that the correct `vault` -and `withdraw_destination` token accounts are provided. +Next, add a `withdraw_secure` instruction handler. This instruction handler will +withdraw tokens from the `vault` token account to the `withdraw_destination`. +The `pool` account is validated using the `seeds` and `bump` constraints to +ensure the correct PDA account is provided. The `has_one` constraints check that +the correct `vault` and `withdraw_destination` token accounts are provided. ```rust pub fn withdraw_secure(ctx: Context) -> Result<()> { let amount = ctx.accounts.vault.amount; let seeds = &[ - ctx.accounts.pool.withdraw_destination.as_ref(), - &[ctx.accounts.pool.bump], + ctx.accounts.pool.withdraw_destination.as_ref(), + &[ctx.accounts.pool.bump], ]; - token::transfer(ctx.accounts.transfer_ctx().with_signer(&[seeds]), amount) + token::transfer( + get_secure_transfer_ctx(&ctx.accounts).with_signer(&[seeds]), + amount, + ) } ... @@ -387,83 +404,87 @@ pub struct WithdrawTokensSecure<'info> { seeds = [withdraw_destination.key().as_ref()], bump = pool.bump, )] - pool: Account<'info, TokenPool>, + pub pool: Account<'info, TokenPool>, #[account(mut)] - vault: Account<'info, TokenAccount>, + pub vault: Account<'info, TokenAccount>, #[account(mut)] - withdraw_destination: Account<'info, TokenAccount>, - token_program: Program<'info, Token>, + pub withdraw_destination: Account<'info, TokenAccount>, + pub token_program: Program<'info, Token>, } -impl<'info> WithdrawTokensSecure<'info> { - pub fn transfer_ctx(&self) -> CpiContext<'_, '_, '_, 'info, token::Transfer<'info>> { - let program = self.token_program.to_account_info(); - let accounts = token::Transfer { - from: self.vault.to_account_info(), - to: self.withdraw_destination.to_account_info(), - authority: self.pool.to_account_info(), - }; - CpiContext::new(program, accounts) - } +pub fn get_secure_transfer_ctx<'accounts, 'remaining, 'cpi_code, 'info>( + accounts: &'accounts WithdrawTokensSecure<'info>, +) -> CpiContext<'accounts, 'remaining, 'cpi_code, 'info, token::Transfer<'info>> { + CpiContext::new( + accounts.token_program.to_account_info(), + token::Transfer { + from: accounts.vault.to_account_info(), + to: accounts.withdraw_destination.to_account_info(), + authority: accounts.pool.to_account_info(), + }, + ) } ``` -#### 5. Test `withdraw_secure` instruction +### 5. Test withdraw_secure Instruction Handler -Finally, return to the test file to test the `withdraw_secure` instruction and -show that by narrowing the scope of our PDA signing authority, we've removed the -vulnerability. +Finally, return to the test file to test the `withdraw_secure` instruction +handler and show that by narrowing the scope of our PDA signing authority, we've +removed the vulnerability. Before we write a test showing the vulnerability has been patched let's write a -test that simply shows that the initialization and withdraw instructions work as -expected: +test that simply shows that the initialization and withdraw instruction handlers +work as expected: ```typescript -it("Secure pool initialization and withdraw works", async () => { - const withdrawDestinationAccount = await getAccount( - provider.connection, - withdrawDestination, - ); - - await program.methods - .initializePoolSecure() - .accounts({ - pool: authSecure, - mint: mint, - vault: vaultRecommended.publicKey, - withdrawDestination: withdrawDestination, - }) - .signers([vaultRecommended]) - .rpc(); - - await new Promise(x => setTimeout(x, 1000)); - - await spl.mintTo( - connection, - wallet.payer, - mint, - vaultRecommended.publicKey, - wallet.payer, - 100, - ); - - await program.methods - .withdrawSecure() - .accounts({ - pool: authSecure, - vault: vaultRecommended.publicKey, - withdrawDestination: withdrawDestination, - }) - .rpc(); - - const afterAccount = await getAccount( - provider.connection, - withdrawDestination, - ); - - expect( - Number(afterAccount.amount) - Number(withdrawDestinationAccount.amount), - ).to.equal(100); +it("performs secure pool initialization and withdrawal correctly", async () => { + try { + const initialWithdrawBalance = await getAccount( + connection, + withdrawDestination, + ); + + await program.methods + .initializePoolSecure() + .accounts({ + mint: tokenMint, + vault: recommendedVault.publicKey, + withdrawDestination: withdrawDestination, + }) + .signers([recommendedVault]) + .rpc(); + + await new Promise(resolve => setTimeout(resolve, 1000)); + + await mintTo( + connection, + wallet.payer, + tokenMint, + recommendedVault.publicKey, + wallet.payer, + INITIAL_MINT_AMOUNT, + ); + + await program.methods + .withdrawSecure() + .accounts({ + vault: recommendedVault.publicKey, + withdrawDestination: withdrawDestination, + }) + .rpc(); + + const finalWithdrawBalance = await getAccount( + connection, + withdrawDestination, + ); + + expect( + Number(finalWithdrawBalance.amount) - + Number(initialWithdrawBalance.amount), + ).to.equal(INITIAL_MINT_AMOUNT); + } catch (error) { + throw new Error(`Test failed: ${error.message}`); + } }); ``` @@ -476,22 +497,21 @@ Add a test that shows you can't call `withdraw_secure` with the wrong withdrawal destination. It can use the pool and vault created in the previous test. ```typescript -it("Secure withdraw doesn't allow withdraw to wrong destination", async () => { +it("prevents secure withdrawal to incorrect destination", async () => { try { await program.methods .withdrawSecure() .accounts({ - pool: authSecure, - vault: vaultRecommended.publicKey, - withdrawDestination: withdrawDestinationFake, + vault: recommendedVault.publicKey, + withdrawDestination: fakeWithdrawDestination, }) - .signers([walletFake]) + .signers([recommendedVault]) .rpc(); - assert.fail("expected error"); + throw new Error("Expected an error but withdrawal succeeded"); } catch (error) { - console.log(error.message); - expect(error); + expect(error).to.exist; + console.log("Error message:", error.message); } }); ``` @@ -499,45 +519,42 @@ it("Secure withdraw doesn't allow withdraw to wrong destination", async () => { Lastly, since the `pool` account is a PDA derived using the `withdraw_destination` token account, we can’t create a fake `pool` account using the same PDA. Add one more test showing that the new -`initialize_pool_secure` instruction won't let an attacker put in the wrong -vault. +`initialize_pool_secure` instruction handler won't let an attacker put in the +wrong vault. ```typescript -it("Secure pool initialization doesn't allow wrong vault", async () => { +it("prevents secure pool initialization with incorrect vault", async () => { try { await program.methods .initializePoolSecure() .accounts({ - pool: authSecure, - mint: mint, - vault: vaultInsecure.address, + mint: tokenMint, + vault: insecureVault.address, withdrawDestination: withdrawDestination, }) - .signers([vaultRecommended]) + .signers([recommendedVault]) .rpc(); - assert.fail("expected error"); + throw new Error("Expected an error but initialization succeeded"); } catch (error) { - console.log(error.message); - expect(error); + expect(error).to.exist; + console.log("Error message:", error.message); } }); ``` -Run `anchor test` and to see that the new instructions don't allow an attacker -to withdraw from a vault that isn't theirs. - -``` - pda-sharing - ✔ Initialize Pool Insecure (981ms) - ✔ Withdraw (470ms) - ✔ Insecure initialize allows pool to be initialized with wrong vault (10983ms) - ✔ Insecure withdraw allows stealing from vault (492ms) - ✔ Secure pool initialization and withdraw works (2502ms) -unknown signer: ARjxAsEPj6YsAPKaBfd1AzUHbNPtAeUsqusAmBchQTfV - ✔ Secure withdraw doesn't allow withdraw to wrong destination -unknown signer: GJcHJLot3whbY1aC9PtCsBYk5jWoZnZRJPy5uUwzktAY - ✔ Secure pool initialization doesn't allow wrong vault +Run `anchor test` to see that the new instruction handlers don't allow an +attacker to withdraw from a vault that isn't theirs. + +```bash + PDA sharing + ✔ allows insecure initialization with incorrect vault (852ms) + ✔ allows insecure withdrawal to incorrect destination (425ms) + ✔ performs secure pool initialization and withdrawal correctly (2150ms) +Error message: unknown signer: BpaG3NbsvLUqyFLZo9kWPwda3iPM8abJYkBfwBsASsgi + ✔ prevents secure withdrawal to incorrect destination +Error message: unknown signer: BpaG3NbsvLUqyFLZo9kWPwda3iPM8abJYkBfwBsASsgi + ✔ prevents secure pool initialization with incorrect vault ``` And that's it! Unlike some of the other security vulnerabilities we've @@ -546,8 +563,7 @@ particular Anchor type. You'll need to think through the architecture of your program and ensure that you aren't sharing PDAs across different domains. If you want to take a look at the final solution code you can find it on the -`solution` branch of -[the same repository](https://github.com/Unboxed-Software/solana-pda-sharing/tree/solution). +[`solution` branch of the same repository](https://github.com/solana-developers/pda-sharing/tree/solution). ## Challenge @@ -562,6 +578,7 @@ Remember, if you find a bug or exploit in somebody else's program, please alert them! If you find one in your own program, be sure to patch it right away. + Push your code to GitHub and [tell us what you thought of this lesson](https://form.typeform.com/to/IPH0UGz7#answers-lesson=5744079f-9473-4485-9a14-9be4d31b40d1)! From b3cc5bf8d44e8c58685db61192b7cc886b33eb9b Mon Sep 17 00:00:00 2001 From: 0xCipherCoder Date: Wed, 11 Sep 2024 08:18:29 +0530 Subject: [PATCH 031/206] Native onchain development - Updated program state management lesson (#413) * Updated content with code snippets, fixing grammaer, readability and style * Updated starter code * Updated solution code to conform starter code * Updated solution code to conform starter code * Updated content as per suggestions and refactored for clarity --- .../program-state-management.md | 488 +++++++++--------- 1 file changed, 239 insertions(+), 249 deletions(-) diff --git a/content/courses/native-onchain-development/program-state-management.md b/content/courses/native-onchain-development/program-state-management.md index c2ecfe3fb..f7d331381 100644 --- a/content/courses/native-onchain-development/program-state-management.md +++ b/content/courses/native-onchain-development/program-state-management.md @@ -3,66 +3,63 @@ title: Create a Basic Program, Part 2 - State Management objectives: - Describe the process of creating a new account using a Program Derived Address (PDA) - - Use seeds to derive a PDA + - Demonstrate how to use seeds to derive a PDA - Use the space required by an account to calculate the amount of rent (in lamports) a user must allocate - Use a Cross Program Invocation (CPI) to initialize an account with a PDA as the address of the new account - Explain how to update the data stored on a new account description: - "Learn how programs store data, using Solana's inbuilt -key-value store." + "Learn how programs store data using Solana's built-in key-value store." --- ## Summary -- Program state is stored in other accounts rather than in the program itself -- A Program Derived Address (PDA) is derived from a program ID and an optional - list of seeds. Once derived, PDAs are subsequently used as the address for a - storage account. -- Creating an account requires that we calculate the space required and the - corresponding rent to allocate for the new account -- Creating a new account requires a Cross Program Invocation (CPI) to the - `create_account` instruction on the System Program -- Updating the data field on an account requires that we serialize (convert to - byte array) the data into the account +- Program state is stored in other accounts, not in the program itself. +- State is stored in Program Derived Address (PDA) accounts, which are generated + from a program ID and optional seeds. The data within a PDA is defined by the + programmer. +- Creating an account requires calculating the necessary space and corresponding + rent in lamports. +- A Cross Program Invocation (CPI) to the `create_account` instruction handler + on the System Program is needed to create a new account. +- Updating the data field on an account involves serializing (converting to a + byte array) the data into the account. ## Lesson -Solana maintains speed, efficiency, and extensibility in part by making programs -stateless. Rather than having state stored on the program itself, programs use -Solana's account model to read state from and write state to separate PDA -accounts. +Solana maintains speed, efficiency, and extensibility by making programs +stateless. Instead of storing state alongside the program's executable, programs +use Solana's account model to read and write state to separate PDA accounts. -While this is an extremely flexible model, it's also a paradigm that can be -difficult to work in if its unfamiliar. But don't worry! We'll start simple in -this lesson and work up to more complex programs in the next unit. +This model provides a simple, user-friendly key-value store for managing data +and allows programs to be upgraded without affecting their data. However, if +you're familiar with older blockchains, this might be challenging. In this +lesson, we'll begin with the basics and gradually introduce more complex onchain +programs. You'll learn the fundamentals of state management in a Solana program, +including representing state as a Rust type, creating accounts using PDAs, and +serializing account data. -In this lesson we'll learn the basics of state management for a Solana program, -including representing state as a Rust type, creating accounts using Program -Derived Addresses, and serializing account data. +### Program State -### Program state +All Solana accounts have a data field that holds a byte array, making accounts +as flexible as files on a computer. You can store anything in an account, as +long as it has the necessary storage space. -All Solana accounts have a `data` field that holds a byte array. This makes -accounts as flexible as files on a computer. You can store literally anything in -an account (so long as the account has the storage space for it). +Just like files in a traditional filesystem conform to specific formats like PDF +or MP3, data stored in a Solana account must follow a pattern to be retrieved +and deserialized into something usable. -Just as files in a traditional filesystem conform to specific data formats like -PDF or MP3, the data stored in a Solana account needs to follow some kind of -pattern so that the data can be retrieved and deserialized into something -usable. - -#### Represent state as a Rust type +#### Represent State as a Rust Type When writing a program in Rust, we typically create this "format" by defining a -Rust data type. If you went through the -[first part of this lesson](basic-program-pt-1), this is very similar to what we -did when we created an enum to represent discrete instructions. +Rust data type. This is similar to how we created an enum to represent discrete +instructions in the +[first part of deserialize instruction data lesson](/content/courses/native-onchain-development/deserialize-instruction-data.md#enumerations). -While this type should reflect the structure of your data, for most use cases a -simple struct is sufficient. For example, a note-taking program that stores -notes in separate accounts would likely have data for a title, body, and maybe -an ID of some kind. We could create a struct to represent that as follows: +A simple `struct` is usually sufficient for most use cases. For example, a +note-taking program that stores notes in separate accounts might have fields for +a title, body, and an ID: ```rust struct NoteState { @@ -72,17 +69,15 @@ struct NoteState { } ``` -#### Using Borsh for serialization and deserialization +#### Using Borsh for Serialization and Deserialization -Just as with instruction data, we need a mechanism for converting from our Rust -data type to a byte array, and vice versa. **Serialization** is the process of -converting an object into a byte array. **Deserialization** is the process of -reconstructing an object from a byte array. +Just as with instruction data, we need to convert our Rust data type to a byte +array and vice versa. **Serialization** converts an object into a byte array, +while **deserialization** reconstructs an object from a byte array. -We'll continue to use Borsh for serialization and deserialization. In Rust, we -can use the `borsh` crate to get access to the `BorshSerialize` and -`BorshDeserialize` traits. We can then apply those traits using the `derive` -attribute macro. +We'll continue using Borsh for serialization and deserialization. In Rust, the +`borsh` crate provides the `BorshSerialize` and `BorshDeserialize` traits. We +apply these traits using the `derive` attribute macro: ```rust use borsh::{BorshSerialize, BorshDeserialize}; @@ -95,49 +90,43 @@ struct NoteState { } ``` -These traits will provide methods on `NoteState` that we can use to serialize -and deserialize the data as needed. +These traits provide methods on `NoteState` for serializing and deserializing +data. -### Creating accounts +### Creating Accounts -Before we can update the data field of an account, we have to first create that +Before we can update the data field of an account, we must first create the account. -To create a new account within our program we must: +To create a new account in our program, we need to: -1. Calculate the space and rent required for the account -2. Have an address to assign the new account -3. Invoke the system program to create the new account +1. Calculate the space and rent required for the account. +2. Determine an address for the new account. +3. Invoke the system program to create the new account. #### Space and rent -Recall that storing data on the Solana network requires users to allocate rent -in the form of lamports. The amount of rent required by a new account depends on -the amount of space you would like allocated to that account. That means we need -to know before creating the account how much space to allocate. +Storing data on the Solana network requires users to allocate rent in the form +of lamports. The required rent depends on the amount of space allocated to the +account, so we must determine the space needed before creating the account. -Note that rent is more like a deposit. All the lamports allocated for rent can -be fully refunded when an account is closed. Additionally, all new accounts are -now required to be +Note that rent is more like a deposit; all lamports allocated for rent can be +fully refunded when an account is closed. Additionally, all new accounts must be [rent-exempt](https://twitter.com/jacobvcreech/status/1524790032938287105), -meaning lamports are not deducted from the account over time. An account is -considered rent-exempt if it holds at least 2 years worth of rent. In other -words, accounts are stored onchain permanently until the owner closes the -account and withdraws the rent. +meaning lamports are not deducted over time. An account is rent-exempt if it +holds at least 2 years' worth of rent, ensuring accounts are stored onchain +permanently until the owner closes the account and withdraws the rent. -In our note-taking app example, the `NoteState` struct specifies three fields -that need to be stored in an account: `title`, `body`, and `id`. To calculate -the size the account needs to be, you would simply add up the size required to -store the data in each field. +In our note-taking app example, the `NoteState` struct has three fields: +`title`, `body`, and `id`. To calculate the required account size, we add up the +space needed for each field. -For dynamic data, like strings, Borsh adds an additional 4 bytes at the -beginning to store the length of that particular field. That means `title` and -`body` are each 4 bytes plus their respective sizes. The `id` field is a 64-bit -integer, or 8 bytes. +For dynamic data like strings, Borsh adds an additional 4 bytes to store the +field's length. This means `title` and `body` each require 4 bytes plus their +respective sizes. The `id` field is a 64-bit integer or 8 bytes. -You can add up those lengths and then calculate the rent required for that -amount of space using the `minimum_balance` function from the `rent` module of -the `solana_program` crate. +We can add these lengths and calculate the required rent using the +`minimum_balance` function from the `rent` module of the `solana_program` crate: ```rust // Calculate account size required for struct NoteState @@ -150,31 +139,23 @@ let rent_lamports = rent.minimum_balance(account_len); #### Program Derived Addresses (PDA) -Before creating an account, we also need to have an address to assign the -account. For program owned accounts, this will be a program derived address -(PDA) found using the `find_program_address` function. - -As the name implies, PDAs are derived using the program ID (address of the -program creating the account) and an optional list of “seeds”. Optional seeds -are additional inputs used in the `find_program_address` function to derive the -PDA. The function used to derive PDAs will return the same address every time -when given the same inputs. This gives us the ability to create any number of -PDA accounts and a deterministic way to find each account. - -In addition to the seeds you provide for deriving a PDA, the -`find_program_address` function will provide one additional "bump seed." What -makes PDAs unique from other Solana account addresses is that they do not have a -corresponding secret key. This ensures that only the program that owns the -address can sign on behalf of the PDA. When the `find_program_address` function -attempts to derive a PDA using the provided seeds, it passes in the number 255 -as the "bump seed." If the resulting address is invalid (i.e. has a -corresponding secret key), then the function decreases the bump seed by 1 and -derives a new PDA with that bump seed. Once a valid PDA is found, the function -returns both the PDA and the bump that was used to derive the PDA. - -For our note-taking program, we will use the note creator's public key and the -ID as the optional seeds to derive the PDA. Deriving the PDA this way allows us -to deterministically find the account for each note. +Before creating an account, we also need an address to assign the account. For +program-owned accounts, this will be a Program Derived Address (PDA) found using +the `find_program_address` function. + +PDAs are derived using the program ID (the address of the program creating the +account) and optional seeds. The `find_program_address` function returns the +same address every time with the same inputs, allowing us to deterministically +create and find any number of PDA accounts. + +The `find_program_address` function also provides a "bump seed" to ensure the +PDA doesn't have a corresponding secret key, making it secure for program +ownership. The function starts with a bump seed of 255, decreasing it until a +valid PDA is found. + +For our note-taking program, we'll use the note creator's public key and the ID +as seeds to derive the PDA. This allows us to deterministically find the account +for each note: ```rust let (note_pda_account, bump_seed) = Pubkey::find_program_address(&[note_creator.key.as_ref(), id.as_bytes().as_ref(),], program_id); @@ -182,12 +163,10 @@ let (note_pda_account, bump_seed) = Pubkey::find_program_address(&[note_creator. #### Cross Program Invocation (CPI) -Once we’ve calculated the rent required for our account and found a valid PDA to -assign as the address of the new account, we are finally ready to create the -account. Creating a new account within our program requires a Cross Program -Invocation (CPI). A CPI is when one program invokes an instruction on another -program. To create a new account within our program, we will invoke the -`create_account` instruction on the system program. +Once we've calculated the rent and derived a valid PDA, we can create the +account using a Cross Program Invocation (CPI). A CPI is when one program +invokes an instruction on another program. To create a new account, we'll invoke +the `create_account` instruction on the system program. CPIs can be done using either `invoke` or `invoke_signed`. @@ -206,17 +185,21 @@ pub fn invoke_signed( ) -> ProgramResult ``` -For this lesson we will use `invoke_signed`. Unlike a regular signature where a -secret key is used to sign, `invoke_signed` uses the optional seeds, bump seed, -and program ID to derive a PDA and sign an instruction. This is done by -comparing the derived PDA against all accounts passed into the instruction. If -any of the accounts match the PDA, then the signer field for that account is set -to true. +In this lesson, we'll explore `invoke_signed`, a function that allows a program +to authorize actions for a Program Derived Address (PDA) without using a +traditional secret key. Here's how it operates: + +1. `invoke_signed` derives a PDA using seeds, a bump seed, and the program ID. +2. It compares this derived PDA against all accounts in the instruction. +3. If an account matches the derived PDA, that account's signer field becomes + true. -A program can securely sign transactions this way because `invoke_signed` -generates the PDA used for signing with the program ID of the program invoking -the instruction. Therefore, it is not possible for one program to generate a -matching PDA to sign for an account with a PDA derived using another program ID. +This method ensures security because `invoke_signed` generates the PDA using the +invoking program's ID, preventing other programs from producing matching PDAs to +authorize accounts derived with a different program ID. It's crucial to +understand that while we describe the PDA as "authorizing," it doesn't use a +secret key like traditional signatures. Instead, this mechanism enables programs +to approve actions onchain for PDA accounts they control. ```rust invoke_signed( @@ -235,24 +218,18 @@ invoke_signed( )?; ``` -### Serializing and deserializing account data +### Serializing and Deserializing Account Data -Once we've created a new account, we need to access and update the account's -data field. This means deserializing its byte array into an instance of the type -we created, updating the fields on that instance, then serializing that instance -back into a byte array. +After creating an account, we need to update its data field by deserializing its +byte array into the Rust type, updating the fields, and then serializing it +back. -#### Deserialize account data +#### Deserialize Account Data -The first step to updating an account's data is to deserialize its `data` byte -array into its Rust type. You can do this by first borrowing the data field on -the account. This allows you to access the data without taking ownership. - -You can then use the `try_from_slice_unchecked` function to deserialize the data -field of the borrowed account using the format of the type you created to -represent the data. This gives you an instance of your Rust type so you can -easily update fields using dot notation. If we were to do this with the -note-taking app example we've been using, it would look like this: +To update an account's data, first, deserialize its data byte array into its +Rust type. Borrow the data field on the account to access it without taking +ownership. Then, use the `try_from_slice_unchecked()` function to deserialize +the data into the appropriate Rust type: ```rust let mut account_data = try_from_slice_unchecked::(note_pda_account.data.borrow()).unwrap(); @@ -262,7 +239,7 @@ account_data.body = rating; account_data.id = id; ``` -#### Serialize account data +#### Serialize Account Data Once the Rust instance representing the account's data has been updated with the appropriate values, you can "save" the data on the account. @@ -280,7 +257,7 @@ The above example converts the `account_data` object to a byte array and sets it to the `data` property on `note_pda_account`. This saves the updated `account_data` variable to the data field of the new account. Now when a user fetches the `note_pda_account` and deserializes the data, it will display the -updated data we’ve serialized into the account. +updated data we've serialized into the account. ### Iterators @@ -293,49 +270,52 @@ is a Rust trait used to give sequential access to each element in a collection of values. Iterators are used in Solana programs to safely iterate over the list of accounts passed into the program entry point through the `accounts` argument. -#### Rust iterator +#### Rust Iterator -The iterator pattern allows you to perform some task on a sequence of items. The -`iter()` method creates an iterator object that references a collection. An -iterator is responsible for the logic of iterating over each item and -determining when the sequence has finished. In Rust, iterators are lazy, meaning -they have no effect until you call methods that consume the iterator to use it -up. Once you've created an iterator, you must call the `next()` function on it -to get the next item. +The iterator pattern allows you to perform tasks on a sequence of items. The +`iter()` method creates an iterator object that references a collection. In +Rust, iterators are lazy and have no effect until methods that consume the +iterator are called. Use the `next()` function to get the next element in the +sequence, advancing the iterator each time. ```rust let v1 = vec![1, 2, 3]; -// create the iterator over the vec +// Create the iterator over the vec let v1_iter = v1.iter(); -// use the iterator to get the first item +// Use the iterator to get the first item let first_item = v1_iter.next(); -// use the iterator to get the second item +// Use the iterator to get the second item let second_item = v1_iter.next(); ``` -#### Solana accounts iterator +#### Solana Accounts Iterator -Recall that the `AccountInfo` for all accounts required by an instruction are -passing through a single `accounts` argument. To parse through the accounts and -use them within our instruction, we will need to create an iterator with a -mutable reference to the `accounts`. +In Solana programs, the instruction handler receives an `accounts` argument +containing `AccountInfo` items for all required accounts. To use these accounts +within your instruction handler, create an iterator with a mutable reference to +`accounts`. This approach allows you to process the account information +sequentially and access the data you need for your instruction handler logic. -At that point, instead of using the iterator directly, we pass it to the +Instead of using the iterator directly, you can pass the iterator to the `next_account_info` function from the `account_info` module provided by the `solana_program` crate. -For example, the instruction to create a new note in a note-taking program would -at minimum require the accounts for the user creating the note, a PDA to store -the note, and the `system_program` to initialize a new account. All three -accounts would be passed into the program entry point through the `accounts` -argument. An iterator of `accounts` is then used to separate out the +For example, consider an instruction to create a new note in a note-taking +program. This instruction would minimally require the following accounts: + +- The account of the user creating the note. +- A PDA to store the note. +- The `system_program` account to initialize a new account. + +All three accounts would be passed into the program entry point via the +`accounts` argument. An iterator of `accounts` is then used to separate the `AccountInfo` associated with each account to process the instruction. -Note that `&mut` means a mutable reference to the `accounts` argument. You can -read more about +Note: The `&mut` keyword indicates a mutable reference to the `accounts` +argument. For more details, refer to [references in Rust](https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html) and [the `mut` keyword](https://doc.rust-lang.org/std/keyword.mut.html). @@ -351,98 +331,97 @@ let system_program = next_account_info(account_info_iter)?; ## Lab -This overview covered a lot of new concepts. Let’s practice them together by -continuing to work on the Movie Review program from the last lesson. No worries -if you’re just jumping into this lesson without having done the previous -lesson - it should be possible to follow along either way. We'll be using the -[Solana Playground](https://beta.solpg.io) to write, build, and deploy our code. +This section introduces several new concepts. Let's practice them together by +continuing with the Movie Review program from the previous lesson. Even if +you're starting with this lesson, you should be able to follow along. We'll be +using the [Solana Playground](https://beta.solpg.io) to write, build, and deploy +our code. -As a refresher, we are building a Solana program which lets users review movies. -Last lesson, we deserialized the instruction data passed in by the user but we -have not yet stored this data in an account. Let’s now update our program to -create new accounts to store the user’s movie review. +As a refresher, we are building a Solana program that lets users review movies. +In +[the previous lesson deserialize instruction data](/content/courses/native-onchain-development/deserialize-instruction-data.md), +we deserialized the instruction data passed in by the user but did not store +this data in an account. Let's now update our program to create new accounts to +store the user's movie review. -#### 1. Get the starter code +### 1. Get the starter code -If you didn’t complete the lab from the last lesson or just want to make sure -that you didn’t miss anything, you can reference -[the starter code](https://beta.solpg.io/6295b25b0e6ab1eb92d947f7). +If you didn't complete the lab from the last lesson or just want to make sure +that you didn't miss anything, you can reference +[the starter code](https://beta.solpg.io/66d67d97cffcf4b13384d333). -Our program currently includes the `instruction.rs` file we use to deserialize -the `instruction_data` passed into the program entry point. We have also -completed `lib.rs` file to the point where we can print our deserialized -instruction data to the program log using the `msg!` macro. +Our program currently includes an `instruction.rs` file used to deserialize the +`instruction_data` passed into the program entry point. We've also completed the +`lib.rs` file to the point where we can print our deserialized instruction data +to the program log using the `msg!` macro. -#### 2. Create struct to represent account data +### 2. Create struct to represent account data -Let’s begin by creating a new file named `state.rs`. +Let's begin by creating a new file named `state.rs`. This file will: -1. Define the struct our program uses to populate the data field of a new - account +1. Define the `struct` used to populate the data field of a new account. 2. Add `BorshSerialize` and `BorshDeserialize` traits to this struct -First, let’s bring into scope everything we’ll need from the `borsh` crate. +First, import the necessary items from the `borsh` crate: ```rust use borsh::{BorshSerialize, BorshDeserialize}; ``` -Next, let’s create our `MovieAccountState` struct. This struct will define the -parameters that each new movie review account will store in its data field. Our -`MovieAccountState` struct will require the following parameters: +Next, create the `MovieAccountState` struct, which defines the parameters that +each new movie review account will store in its data field. The struct includes +the following fields: -- `is_initialized` - shows whether or not the account has been initialized -- `rating` - user’s rating of the movie -- `description` - user’s description of the movie -- `title` - title of the movie the user is reviewing +- `is_initialized` - indicates whether the account has been initialized. +- `rating` - the user's rating of the movie. +- `description` - the user's description of the movie. +- `title` - the title of the movie being reviewed. ```rust -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(BorshSerialize, BorshDeserialize, Default)] pub struct MovieAccountState { pub is_initialized: bool, pub rating: u8, pub title: String, - pub description: String + pub description: String, } ``` -#### 3. Update `lib.rs` +### 3. Update lib.rs -Next, let’s update our `lib.rs` file. First, we’ll bring into scope everything -we will need to complete our Movie Review program. You can read more about the -details each item we are using from +Next, update the `lib.rs` file. Start by importing everything needed to complete +the Movie Review program. For more details on each item, refer to [the `solana_program` crate](https://docs.rs/solana-program/latest/solana_program/). ```rust use solana_program::{ + account_info::{next_account_info, AccountInfo}, entrypoint, entrypoint::ProgramResult, - pubkey::Pubkey, msg, - account_info::{next_account_info, AccountInfo}, + program::invoke_signed, + pubkey::Pubkey, + rent::Rent, system_instruction, - program_error::ProgramError, - sysvar::{rent::Rent, Sysvar}, - program::{invoke_signed}, - borsh::try_from_slice_unchecked, + sysvar::Sysvar, }; -use std::convert::TryInto; +use borsh::{BorshDeserialize, BorshSerialize}; + pub mod instruction; pub mod state; + use instruction::MovieInstruction; use state::MovieAccountState; -use borsh::BorshSerialize; ``` -#### 4. Iterate through `accounts` +### 4. Iterate through accounts -Next, let’s continue building out our `add_movie_review` function. Recall that -an array of accounts is passed into the `add_movie_review` function through a -single `accounts` argument. To process our instruction, we will need to iterate -through `accounts` and assign the `AccountInfo` for each account to its own -variable. +Continue building out the `add_movie_review` function. Recall that an array of +accounts is passed into the `add_movie_review` function through a single +`accounts` argument. To process the instruction, iterate through `accounts` and +assign the `AccountInfo` for each account to a variable. ```rust // Get Account iterator @@ -454,30 +433,31 @@ let pda_account = next_account_info(account_info_iter)?; let system_program = next_account_info(account_info_iter)?; ``` -#### 5. Derive PDA +### 5. Derive PDA -Next, within our `add_movie_review` function, let’s independently derive the PDA -we expect the user to have passed in. We'll need to provide the bump seed for -the derivation later, so even though `pda_account` should reference the same -account, we still need to call `find_program_address`. +Within the `add_movie_review` function, derive the PDA you expect the user to +have passed in. Even though `pda_account` should reference the same account, you +still need to call `find_program_address()` as the bump seed is required for the +derivation. -Note that we derive the PDA for each new account using the initializer’s public -key and the movie title as optional seeds. Setting up the PDA this way restricts -each user to only one review for any one movie title. However, it still allows -the same user to review movies with different titles and different users to -review movies with the same title. +The PDA for each new account is derived using the initializer's public key and +the movie title as seeds. This setup restricts each user to only one review per +movie title but allows different users to review the same movie and the same +user to review different movies. ```rust // Derive PDA -let (pda, bump_seed) = Pubkey::find_program_address(&[initializer.key.as_ref(), title.as_bytes().as_ref(),], program_id); +let (pda, bump_seed) = Pubkey::find_program_address( + &[initializer.key.as_ref(), title.as_bytes().as_ref()], + program_id, +); ``` -#### 6. Calculate space and rent +### 6. Calculate space and rent -Next, let’s calculate the rent that our new account will need. Recall that rent -is the amount of lamports a user must allocate to an account for storing data on -the Solana network. To calculate rent, we must first calculate the amount of -space our new account requires. +Calculate the rent required for the new account. Rent is the amount of lamports +a user must allocate to an account for storing data on the Solana network. To +calculate rent, first determine the space required by the new account. The `MovieAccountState` struct has four fields. We will allocate 1 byte each for `rating` and `is_initialized`. For both `title` and `description` we will @@ -492,14 +472,13 @@ let rent = Rent::get()?; let rent_lamports = rent.minimum_balance(account_len); ``` -#### 7. Create new account +### 7. Create new account -Once we’ve calculated the rent and verified the PDA, we are ready to create our -new account. To create a new account, we must call the `create_account` -instruction from the system program. We do this with a Cross Program Invocation -(CPI) using the `invoke_signed` function. We use `invoke_signed` because we are -creating the account using a PDA and need the Movie Review program to “sign” the -instruction. +Once rent is calculated and the PDA is verified, create the new account. To do +this, call the `create_account` instruction from the system program using a +Cross Program Invocation (CPI) with the `invoke_signed` function. Use +`invoke_signed` because the account is being created with a PDA and the Movie +The review program needs to “sign” the instructions. ```rust // Create the account @@ -511,24 +490,34 @@ invoke_signed( account_len.try_into().unwrap(), program_id, ), - &[initializer.clone(), pda_account.clone(), system_program.clone()], - &[&[initializer.key.as_ref(), title.as_bytes().as_ref(), &[bump_seed]]], -)?; + &[ + initializer.clone(), + pda_account.clone(), + system_program.clone(), + ], + &[&[ + initializer.key.as_ref(), + title.as_bytes().as_ref(), + &[bump_seed], + ]], + )?; msg!("PDA created: {}", pda); ``` -#### 8. Update account data +### 8. Update account data -Now that we’ve created a new account, we are ready to update the data field of +Now that we've created a new account, we are ready to update the data field of the new account using the format of the `MovieAccountState` struct from our `state.rs` file. We first deserialize the account data from `pda_account` using `try_from_slice_unchecked`, then set the values of each field. ```rust -msg!("unpacking state account"); -let mut account_data = try_from_slice_unchecked::(&pda_account.data.borrow()).unwrap(); -msg!("borrowed account data"); +msg!("Unpacking state account"); +let mut account_data = + MovieAccountState::try_from_slice(&pda_account.data.borrow()) + .unwrap_or(MovieAccountState::default()); +msg!("Borrowed account data"); account_data.title = title; account_data.rating = rating; @@ -536,18 +525,18 @@ account_data.description = description; account_data.is_initialized = true; ``` -Lastly, we serialize the updated `account_data` into the data field of our +Finally, serialize the updated `account_data` into the data field of `pda_account`. ```rust -msg!("serializing account"); +msg!("Serializing account"); account_data.serialize(&mut &mut pda_account.data.borrow_mut()[..])?; -msg!("state account serialized"); +msg!("State account serialized"); ``` -#### 9. Build and deploy +### 9. Build and deploy -We're ready to build and deploy our program! +You're now ready to build and deploy your program! ![Gif Build and Deploy Program](/public/assets/courses/unboxed/movie-review-pt2-build-deploy.gif) @@ -563,18 +552,18 @@ program. If you use the frontend, simply replace the `MOVIE_REVIEW_PROGRAM_ID` in both the `MovieList.tsx` and `Form.tsx` components with the address of the program -you’ve deployed. Then run the frontend, submit a view, and refresh the browser +you've deployed. Then run the frontend, submit a view, and refresh the browser to see the review. If you need more time with this project to feel comfortable with these concepts, have a look at the -[solution code](https://beta.solpg.io/62b23597f6273245aca4f5b4) before +[solution code](https://beta.solpg.io/66d67f31cffcf4b13384d334) before continuing. ## Challenge -Now it’s your turn to build something independently. Equipped with the concepts -intoduced in this lesson, you now know everything you'll need to recreate the +Now it's your turn to build something independently. Equipped with the concepts +introduced in this lesson, you now know everything you'll need to recreate the entirety of the Student Intro program from Module 1. The Student Intro program is a Solana Program that lets students introduce @@ -599,6 +588,7 @@ Try to do this independently if you can! But if you get stuck, feel free to reference the [solution code](https://beta.solpg.io/62b11ce4f6273245aca4f5b2). + Push your code to GitHub and [tell us what you thought of this lesson](https://form.typeform.com/to/IPH0UGz7#answers-lesson=8320fc87-2b6d-4b3a-8b1a-54b55afed781)! From 73caf29a83a6cead7455584cc4964addfe4475ea Mon Sep 17 00:00:00 2001 From: Onyewuchi Emmanuel Date: Wed, 11 Sep 2024 04:22:20 +0100 Subject: [PATCH 032/206] Fix deserialize-custom-data-frontend (#347) * refactor(): replace deprecated findProgramAddress with findProgramAddressSync The signature '(seeds: (Buffer | Uint8Array)[], programId: PublicKey): Promise<[PublicKey, number]>' of 'web3.PublicKey.findProgramAddress' is deprecated. Updated the code to use the recommended 'findProgramAddressSync' method for better compatibility. * refactor(): replace deprecated findProgramAddress with findProgramAddressSync The signature '(seeds: (Buffer | Uint8Array)[], programId: PublicKey): Promise<[PublicKey, number]>' of 'web3.PublicKey.findProgramAddress' is deprecated. Updated the code to use the recommended 'findProgramAddressSync' method for better compatibility. * refactor: improve error handling and logging in Movie deserialization Enhanced the deserialization error handling by adding detailed logging: - Log buffer length and raw buffer data in hexadecimal format for better debugging. - Switched to console.error for more appropriate error logging. * refactor(): - Improved efficiency by importing specific modules from @solana/web3.js instead of importing the entire package. - Applied linting to maintain code consistency and clarity. - Replaced abbreviations like e with error with more descriptive variable names for better code readability. * refactor(): replaced the use of .then with async/await and implemented error handling * chore(): added updated movie review app link and application screenshot * chore(): updated repo links and included demo project images / screenshots --------- Co-authored-by: Onyewuchi Emeka --- .../deserialize-custom-data-frontend.md | 72 +++++++++++------- .../courses/movie-review-frontend-dapp.png | Bin 0 -> 208061 bytes .../courses/student-intros-frontend.png | Bin 0 -> 187616 bytes 3 files changed, 44 insertions(+), 28 deletions(-) create mode 100644 public/assets/courses/movie-review-frontend-dapp.png create mode 100644 public/assets/courses/student-intros-frontend.png diff --git a/content/courses/native-onchain-development/deserialize-custom-data-frontend.md b/content/courses/native-onchain-development/deserialize-custom-data-frontend.md index 042f3d77c..69fc63fd4 100644 --- a/content/courses/native-onchain-development/deserialize-custom-data-frontend.md +++ b/content/courses/native-onchain-development/deserialize-custom-data-frontend.md @@ -81,7 +81,8 @@ separation makes it possible for the client to locate each user’s data by finding the address using the program ID and the user’s public key. ```typescript -const [pda, bump] = await web3.PublicKey.findProgramAddress( +import { PublicKey } from "@solana/web3.js"; +const [pda, bump] = await PublicKey.findProgramAddressSync( [publicKey.toBuffer()], programId, ); @@ -97,7 +98,7 @@ account per note where each PDA is derived with the user’s public key and the note’s title. ```typescript -const [pda, bump] = await web3.PublicKey.findProgramAddress( +const [pda, bump] = await PublicKey.findProgramAddressSync( [publicKey.toBuffer(), Buffer.from("Shopping list")], programId, ); @@ -118,12 +119,20 @@ of the account and an `account` property of type `AccountInfo`. You can use the `account` property to get the account data. ```typescript -const accounts = connection.getProgramAccounts(programId).then(accounts => { - accounts.map(({ pubkey, account }) => { - console.log("Account:", pubkey); - console.log("Data buffer:", account.data); - }); -}); +const fetchProgramAccounts = async () => { + try { + const accounts = await connection.getProgramAccounts(programId); + + accounts.forEach(({ pubkey, account }) => { + console.log("Account:", pubkey.toBase58()); + console.log("Data buffer:", account.data); + }); + } catch (error) { + console.error("Error fetching program accounts:", error); + } +}; + +fetchProgramAccounts(); ``` ### Deserializing program data @@ -181,13 +190,13 @@ skeleton letting users submit movie reviews but the list of reviews is still showing mock data. Let’s fix that by fetching the program’s storage accounts and deserializing the data stored there. -![movie review frontend](/public/assets/courses/unboxed/movie-reviews-frontend.png) +![movie review frontend](/public/assets/courses/movie-review-frontend-dapp.png) #### 1. Download the starter code If you didn’t complete the lab from the last lesson or just want to make sure that you didn’t miss anything, you can download the -[starter code](https://github.com/Unboxed-Software/solana-movie-frontend/tree/solution-serialize-instruction-data). +[starter code](https://github.com/solana-developers/movie-review-frontend/tree/solution-serialize-instruction-data). The project is a fairly simple Next.js application. It includes the `WalletContextProvider` we created in the Wallets lesson, a `Card` component for @@ -273,11 +282,14 @@ export class Movie { } try { - const { title, rating, description } = this.borshAccountSchema.decode(buffer) - return new Movie(title, rating, description) - } catch(error) { - console.log('Deserialization error:', error) - return null + const { title, rating, description } = + this.borshAccountSchema.decode(buffer); + return new Movie(title, rating, description); + } catch (error) { + console.error("Deserialization error:", error); + console.error("Buffer length:", buffer.length); + console.error("Buffer data:", buffer.toString("hex")); + return null; } } } @@ -301,7 +313,7 @@ array of movies and call `setMovies`. import { Card } from "./Card"; import { FC, useEffect, useState } from "react"; import { Movie } from "../models/Movie"; -import * as web3 from "@solana/web3.js"; +import { PublicKey } from "@solana/web3.js" import { useConnection } from "@solana/wallet-adapter-react"; const MOVIE_REVIEW_PROGRAM_ID = "CenYq6bDRB7p73EjsPEpiYN7uveyPUTdXkDkgUduboaN"; @@ -311,16 +323,20 @@ export const MovieList: FC = () => { const [movies, setMovies] = useState([]); useEffect(() => { - connection - .getProgramAccounts(new web3.PublicKey(MOVIE_REVIEW_PROGRAM_ID)) - .then(async accounts => { - const movies: Movie[] = accounts.map(({ account }) => { - return Movie.deserialize(account.data); - }); + const fetchProgramAccounts = async () => { + try { + const accounts = await connection.getProgramAccounts(new PublicKey(MOVIE_REVIEW_PROGRAM_ID)); + + const movies: Movie[] = accounts.map(({ account }) => Movie.deserialize(account.data)); setMovies(movies); - }); - }, []); + } catch (error) { + console.error("Error fetching program accounts:", error); + } + }; + fetchProgramAccounts(); + }, [connection]); + return ( ); ``` @@ -362,23 +459,56 @@ Now that we’ve thought through this, let’s modify the implementation of `prefetchAccounts` in `MovieCoordinator`: ```tsx -static async prefetchAccounts(connection: web3.Connection, filters: AccountFilter[]) { - const accounts = await connection.getProgramAccounts( - new web3.PublicKey(MOVIE_REVIEW_PROGRAM_ID), +// account type as returned by getProgramAccounts() +type ProgramAccount = { + pubkey: PublicKey; + account: AccountInfo; +}; + +const DATA_OFFSET = 2; // Skip the first 2 bytes, which store versioning information for the data schema of the account. This versioning ensures that changes to the account's structure can be tracked and managed over time. +const DATA_LENGTH = 18; // Retrieve 18 bytes of data, including the part of the account's data that stores the user's public key for comparison. +// Define a constant for the size of the header in each account buffer +const HEADER_SIZE = 4; // 4 bytes for length header + +static async prefetchAccounts(connection: Connection) { + // Get readonly accounts response + const readonlyAccounts = (await connection.getProgramAccounts( + new PublicKey(MOVIE_REVIEW_PROGRAM_ID), { - dataSlice: { offset: 2, length: 18 }, + dataSlice:{ offset: DATA_OFFSET, length: DATA_LENGTH }, + } + )) + + const accounts: Array = Array.from(readonlyAccounts); // Make a mutable copy of the readonly array + + accounts.sort((a, b) => { + try { + // Check if buffers are long enough to avoid out-of-bounds access + const lengthA = a.account.data.readUInt32LE(0); // Reads the first 4 bytes for length + const lengthB = b.account.data.readUInt32LE(0); + + if ( + a.account.data.length < HEADER_SIZE + lengthA || + b.account.data.length < HEADER_SIZE + lengthB + ) { + throw new Error('Buffer length is insufficient'); + } + + const dataA = a.account.data.subarray(HEADER_SIZE, HEADER_SIZE + lengthA); + const dataB = b.account.data.subarray(HEADER_SIZE, HEADER_SIZE + lengthB); + + return dataA.compare(dataB); + } catch (error) { + console.error('Error sorting accounts: ', error); + return 0; // Default sort order in case of error } - ) + }); - accounts.sort( (a, b) => { - const lengthA = a.account.data.readUInt32LE(0) - const lengthB = b.account.data.readUInt32LE(0) - const dataA = a.account.data.slice(4, 4 + lengthA) - const dataB = b.account.data.slice(4, 4 + lengthB) - return dataA.compare(dataB) - }) + this.accounts = accounts.map(account => account.pubkey) - this.accounts = accounts.map(account => account.pubkey) + } catch (error) { + console.error("Error prefetching accounts:", error); + } } ``` @@ -402,32 +532,50 @@ import bs58 from 'bs58' ... -static async prefetchAccounts(connection: web3.Connection, search: string) { - const accounts = await connection.getProgramAccounts( - new web3.PublicKey(MOVIE_REVIEW_PROGRAM_ID), - { - dataSlice: { offset: 2, length: 18 }, - filters: search === '' ? [] : [ - { - memcmp: - { - offset: 6, - bytes: bs58.encode(Buffer.from(search)) - } - } - ] - } - ) - - accounts.sort( (a, b) => { - const lengthA = a.account.data.readUInt32LE(0) - const lengthB = b.account.data.readUInt32LE(0) - const dataA = a.account.data.slice(4, 4 + lengthA) - const dataB = b.account.data.slice(4, 4 + lengthB) - return dataA.compare(dataB) - }) - - this.accounts = accounts.map(account => account.pubkey) +static async prefetchAccounts(connection: Connection, search: string) { + const readonlyAccounts = (await connection.getProgramAccounts( + new PublicKey(MOVIE_REVIEW_PROGRAM_ID), + { + dataSlice: { offset: DATA_OFFSET, length: DATA_LENGTH }, + filters: + search === "" + ? [] + : [ + { + memcmp: { + offset: 6, + bytes: bs58.encode(Buffer.from(search)), + }, + }, + ], + } + )); + + const accounts: Array = Array.from(readonlyAccounts); // Make a mutable copy of the readonly array + + accounts.sort((a, b) => { + try { + const lengthA = a.account.data.readUInt32LE(0); + const lengthB = b.account.data.readUInt32LE(0); + + if ( + a.account.data.length < HEADER_SIZE + lengthA || + b.account.data.length < HEADER_SIZE + lengthB + ) { + throw new Error('Buffer length is insufficient'); + } + + const dataA = a.account.data.subarray(HEADER_SIZE, HEADER_SIZE + lengthA); + const dataB = b.account.data.subarray(HEADER_SIZE, HEADER_SIZE + lengthB); + + return dataA.compare(dataB); + } catch (error) { + console.error("Error sorting accounts: ", error); + return 0; + } + }); + + this.accounts = accounts.map((account) => account.pubkey); } ``` @@ -437,33 +585,44 @@ parameter to `fetchPage` so that we can force a refresh of the account prefetching every time the search value changes. ```tsx -static async fetchPage(connection: web3.Connection, page: number, perPage: number, search: string, reload: boolean = false): Promise { +static async fetchPage( + connection: Connection, + page: number, + perPage: number, + search: string, + reload = false +): Promise> { if (this.accounts.length === 0 || reload) { - await this.prefetchAccounts(connection, search) + await this.prefetchAccounts(connection, search); } const paginatedPublicKeys = this.accounts.slice( (page - 1) * perPage, - page * perPage, - ) + page * perPage + ); if (paginatedPublicKeys.length === 0) { - return [] + return []; } - const accounts = await connection.getMultipleAccountsInfo(paginatedPublicKeys) - - const movies = accounts.reduce((accum: Movie[], account) => { - const movie = Movie.deserialize(account?.data) - if (!movie) { - return accum - } - - return [...accum, movie] - }, []) + const accounts = await connection.getMultipleAccountsInfo( + paginatedPublicKeys + ); - return movies -} + const movies = accounts.reduce((accumulator: >, account) => { + try { + const movie = Movie.deserialize(account?.data); + if (movie) { + accumulator.push(movie); + } + } catch (error) { + console.error('Error deserializing movie data: ', error); + } + return accumulator; + }, []); + + return movies; + } ``` With that in place, let’s update the code in `MovieList` to call this properly. @@ -473,34 +632,42 @@ calls. Then update the call to `MovieCoordinator.fetchPage` in the `useEffect` to pass the `search` parameter and to reload when `search !== ''`. ```tsx -const { connection } = useConnection(); -const [movies, setMovies] = useState([]); +const connection = new Connection(clusterApiUrl("devnet")); +const [movies, setMovies] = useState>([]); const [page, setPage] = useState(1); const [search, setSearch] = useState(""); useEffect(() => { - MovieCoordinator.fetchPage(connection, page, 2, search, search !== "").then( - setMovies, - ); -}, [page, search]); + const fetchMovies = async () => { + try { + const movies = await MovieCoordinator.fetchPage( + connection, + page, + 5, + search, + search !== "", + ); + setMovies(movies); + } catch (error) { + console.error("Failed to fetch movies:", error); + } + }; + + fetchMovies(); +}, [connection, page, search]); ``` Finally, add a search bar that will set the value of `search`: ```tsx return ( -
-
- setSearch(event.currentTarget.value)} - placeholder="Search" - w="97%" - mt={2} - mb={2} - /> -
+
+ setSearch(e.target.value)} + placeholder="Search" + /> ...
); @@ -511,7 +678,7 @@ And that’s it! The app now has ordered reviews, paging, and search. That was a lot to digest, but you made it through. If you need to spend some more time with the concepts, feel free to reread the sections that were most challenging for you and/or have a look at the -[solution code](https://github.com/Unboxed-Software/solana-movie-frontend/tree/solution-paging-account-data). +[solution code](https://github.com/solana-developers/movie-review-frontend/tree/solutions-paging-account-data). ## Challenge @@ -519,17 +686,17 @@ Now it’s your turn to try and do this on your own. Using the Student Intros ap from last lesson, add paging, ordering alphabetically by name, and searching by name. -![Student Intros frontend](/public/assets/courses/unboxed/student-intros-frontend.png) +![Student Intros frontend](/public/assets/courses/student-intros-frontend.png) 1. You can build this from scratch or you can download the - [starter code](https://github.com/Unboxed-Software/solana-student-intros-frontend/tree/solution-deserialize-account-data) + [starter code](https://github.com/solana-developers/solana-student-intro-frontend/tree/solution-deserialize-account-data) 2. Add paging to the project by prefetching accounts without data, then only fetching the account data for each account when it’s needed. 3. Order the accounts displayed in the app alphabetically by name. 4. Add the ability to search through introductions by a student’s name. This is challenging. If you get stuck, feel free to reference the -[solution code](https://github.com/Unboxed-Software/solana-student-intros-frontend/tree/solution-paging-account-data). +[solution code](https://github.com/solana-developers/solana-student-intro-frontend/tree/solution-paging-account-data). As always, get creative with these challenges and take them beyond the instructions if you want! From 701591cf7de6057caa764b2e6a0afc2c7998adbc Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Mon, 30 Sep 2024 14:43:48 +1000 Subject: [PATCH 067/206] Remove smart quotes (they cause problems for some markdown parsers) --- .../verifiable-randomness-functions.md | 62 +++--- .../intro-to-solana/interact-with-wallets.md | 86 ++++---- .../intro-to-solana/intro-to-cryptography.md | 6 +- .../intro-to-custom-onchain-programs.md | 22 +- .../intro-to-solana/intro-to-reading-data.md | 6 +- .../intro-to-solana/intro-to-writing-data.md | 8 +- .../courses/mobile/intro-to-solana-mobile.md | 62 +++--- content/courses/mobile/mwa-deep-dive.md | 2 +- .../mobile/solana-mobile-dapps-with-expo.md | 2 +- .../cross-program-invocations.md | 28 +-- .../deserialize-custom-data-frontend.md | 44 ++-- .../deserialize-instruction-data.md | 10 +- ...paging-ordering-filtering-data-frontend.md | 76 +++---- .../program-security.md | 36 ++-- .../program-state-management.md | 2 +- .../serialize-instruction-data-frontend.md | 74 +++---- .../courses/onchain-development/anchor-cpi.md | 16 +- .../onchain-development/anchor-pdas.md | 34 +-- .../intro-to-anchor-frontend.md | 26 +-- .../onchain-development/intro-to-anchor.md | 26 +-- .../program-architecture.md | 86 ++++---- .../program-configuration.md | 4 +- .../program-optimization/rust-macros.md | 10 +- .../program-security/account-data-matching.md | 22 +- .../courses/program-security/arbitrary-cpi.md | 14 +- .../bump-seed-canonicalization.md | 10 +- .../program-security/closing-accounts.md | 12 +- .../duplicate-mutable-accounts.md | 8 +- .../courses/program-security/owner-checks.md | 2 +- .../courses/program-security/pda-sharing.md | 14 +- .../program-security/security-intro.md | 4 +- .../courses/program-security/signer-auth.md | 12 +- content/courses/solana-pay/solana-pay.md | 4 +- .../state-compression/compressed-nfts.md | 198 +++++++++--------- .../generalized-state-compression.md | 184 ++++++++-------- .../courses/token-extensions/close-mint.md | 2 +- .../token-extensions/default-account-state.md | 6 +- .../token-extensions/immutable-owner.md | 6 +- .../interest-bearing-token.md | 4 +- .../non-transferable-token.md | 2 +- .../token-extensions/permanent-delegate.md | 2 +- .../courses/token-extensions/required-memo.md | 4 +- .../courses/token-extensions/transfer-fee.md | 2 +- .../courses/tokens-and-nfts/token-program.md | 6 +- content/guides/advanced/stake-weighted-qos.md | 6 +- content/guides/games/hello-world.md | 14 +- content/guides/games/interact-with-tokens.md | 12 +- content/guides/games/store-sol-in-pda.md | 2 +- .../guides/getstarted/cosmwasm-to-solana.md | 4 +- content/guides/getstarted/intro-to-anchor.md | 2 +- .../getstarted/local-rust-hello-world.md | 4 +- content/guides/getstarted/rust-to-solana.md | 14 +- .../getstarted/scaffold-nextjs-anchor.md | 2 +- .../getstarted/solana-test-validator.md | 2 +- .../guides/javascript/get-program-accounts.md | 6 +- .../token-extensions/getting-started.md | 4 +- .../guides/token-extensions/transfer-hook.md | 4 +- .../add-solana-wallet-adapter-to-nextjs.md | 8 +- content/workshops/solana-101.md | 40 ++-- docs/advanced/confirmation.md | 82 ++++---- docs/advanced/retry.md | 28 +-- docs/economics/index.md | 2 +- docs/economics/inflation/terminology.md | 4 +- .../quick-start/cross-program-invocation.md | 2 +- docs/more/exchange.md | 4 +- docs/programs/testing.md | 12 +- 66 files changed, 752 insertions(+), 752 deletions(-) diff --git a/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md b/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md index 3f73823e1..3f4445c28 100644 --- a/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md +++ b/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md @@ -57,10 +57,10 @@ game as a seed. Unfortunately, neither type of randomness is natively available in Solana programs, because these programs have to be deterministic. All validators need -to come to the same conclusion. There is no way they’d all draw the same random -number, and if they used a seed, it’d be prone to attacks. See the +to come to the same conclusion. There is no way they'd all draw the same random +number, and if they used a seed, it'd be prone to attacks. See the [Solana FAQs](https://solana.com/docs/programs/lang-rust#depending-on-rand) for -more. So we’ll have to look outside of the blockchain for randomness with VRFs. +more. So we'll have to look outside of the blockchain for randomness with VRFs. ### What is Verifiable Randomness? @@ -68,7 +68,7 @@ A Verifiable Random Function (VRF) is a public-key pseudorandom function that provides proofs that its outputs were calculated correctly. This means we can use a cryptographic keypair to generate a random number with a proof, which can then be validated by anyone to ensure the value was calculated correctly without -the possibility of leaking the producer’s secret key. Once validated, the random +the possibility of leaking the producer's secret key. Once validated, the random value is stored onchain in an account. VRFs are a crucial component for achieving verifiable and unpredictable @@ -100,7 +100,7 @@ Switchboard is a decentralized Oracle network that offers VRFs on Solana. Oracles are services that provide external data to a blockchain, allowing them to interact with and respond to real-world events. The Switchboard network is made up of many different individual oracles run by third parties to provide -external data and service requests onchain. To learn more about Switchboard’s +external data and service requests onchain. To learn more about Switchboard's Oracle network, please refer to our [Oracle lesson](/content/courses/connecting-to-offchain-data/oracles.md) @@ -112,13 +112,13 @@ verified, the Switchboard program will execute a onchain callback defined by the VRF Account during account creation. From there the program can consume the random data. -You might be wondering how they get paid. In Switchboard’s VRF implementation, +You might be wondering how they get paid. In Switchboard's VRF implementation, you actually pay per request. ### Requesting and Consuming VRF Now that we know what a VRF is and how it fits into the Switchboard Oracle -network, let’s take a closer look at how to actually request and consume +network, let's take a closer look at how to actually request and consume randomness from a Solana program. At a high level, the process for requesting and consuming randomness from Switchboard looks like this: @@ -137,7 +137,7 @@ and consuming randomness from Switchboard looks like this: pseudorandom number returned from the Oracle. 7. Program consumes the random number and can execute business logic with it! -There are a lot of steps here, but don’t worry, we'll be going through each step +There are a lot of steps here, but don't worry, we'll be going through each step of the process in detail. First there are a couple of accounts that we will have to create ourselves to @@ -191,8 +191,8 @@ Some important fields on this account are `authority`, `oracle_queue`, and `callback`. The `authority` should be a PDA of the program that has the ability to request randomness on this `vrf` account. That way, only that program can provide the signature needed for the vrf request. The `oracle_queue` field -allows you to specify which specific oracle queue you’d like to service the vrf -requests made with this account. If you aren’t familiar with oracle queues on +allows you to specify which specific oracle queue you'd like to service the vrf +requests made with this account. If you aren't familiar with oracle queues on Switchboard, checkout the [Oracles lesson in the Connecting to Offchain Data course](/content/courses/connecting-to-offchain-data/oracles)! Lastly, the `callback` field is where you define the callback instruction the @@ -254,7 +254,7 @@ Now, you can create the `vrf` account. Now that we have all of our needed accounts we can finally call the `request_randomness` instruction on the Switchboard program. It's important to note you can invoke the `request_randomness` in a client or within a program -with a cross program invocation (CPI). Let’s take a look at what accounts are +with a cross program invocation (CPI). Let's take a look at what accounts are required for this request by checking out the Account struct definition in the actual [Switchboard program](https://github.com/switchboard-xyz/solana-sdk/blob/fbef37e4a78cbd8b8b6346fcb96af1e20204b861/rust/switchboard-solana/src/oracle_program/instructions/vrf_request_randomness.rs#L8). @@ -296,7 +296,7 @@ pub struct VrfRequestRandomness<'info> { } ``` -That’s a lot of accounts, let’s walk through each one and give them some +That's a lot of accounts, let's walk through each one and give them some context. - `authority` - PDA derived from our program @@ -320,7 +320,7 @@ context. [Recent Blockhashes Solana program](https://docs.rs/solana-program/latest/solana_program/sysvar/recent_blockhashes/index.html) - Token Program - Solana Token Program -That’s all the accounts needed for just the randomness request, now let's see +That's all the accounts needed for just the randomness request, now let's see what it looks like in a Solana program via CPI. To do this, we make use of the `VrfRequestRandomness` data struct from the [SwitchboardV2 rust crate.](https://github.com/switchboard-xyz/solana-sdk/blob/main/rust/switchboard-solana/src/oracle_program/instructions/vrf_request_randomness.rs) @@ -367,7 +367,7 @@ Ok(()) ``` Once the Switchboard program is invoked, it does some logic on its end and -assigns an oracle in the `vrf` account’s defined oracle queue to serve the +assigns an oracle in the `vrf` account's defined oracle queue to serve the randomness request. The assigned oracle then calculates a random value and sends it back to the Switchboard program. @@ -415,7 +415,7 @@ pub fn handler(ctx: Context) -> Result <()> { ``` Now you have randomness! Hooray! But there is one last thing we have not talked -about yet and that’s how the randomness is returned. Switchboard, gives you your +about yet and that's how the randomness is returned. Switchboard, gives you your randomness calling `[get_result()](https://github.com/switchboard-xyz/solana-sdk/blob/9dc3df8a5abe261e23d46d14f9e80a7032bb346c/rust/switchboard-solana/src/oracle_program/accounts/vrf.rs#L122)`. This method returns the `current_round.result` field of the `vrf` account @@ -440,11 +440,11 @@ the steps involved in a VRF request, review this diagram. ## Lab -For this lesson’s lab, we will be picking up where we left off in the +For this lesson's lab, we will be picking up where we left off in the [Oracle lesson](/content/courses/connecting-to-offchain-data/oracles). If you haven't completed the Oracle lesson and demo, we strongly recommend you do as -there are a lot of overlapping concepts and we’ll be starting from the Oracle -lesson’s codebase. +there are a lot of overlapping concepts and we'll be starting from the Oracle +lesson's codebase. If you don't want to complete the Oracle lesson, the starter code for this lab is provided for you in @@ -475,8 +475,8 @@ following: 6. `yarn install` 7. `anchor test` -When all tests pass we’re ready to begin. We will start by filling in some -boilerplate stuff, then we’ll implement the functions. +When all tests pass we're ready to begin. We will start by filling in some +boilerplate stuff, then we'll implement the functions. #### 2. Cargo.toml @@ -681,7 +681,7 @@ pub mod consume_randomness; Lastly, let's update our `deposit.rs` and `withdraw.rs` files to reflect our soon-to-be new powers. -First, let’s initialize our `out_of_jail` flag to `false` in `deposit.rs`. +First, let's initialize our `out_of_jail` flag to `false` in `deposit.rs`. ```rust // in deposit.rs @@ -720,8 +720,8 @@ check, going straight to our withdrawal. #### 8. Using VRF -Now that we have the boilerplate out of the way, let’s move on to our first -addition: initializing our VRF Client. Let’s create a new file called +Now that we have the boilerplate out of the way, let's move on to our first +addition: initializing our VRF Client. Let's create a new file called `init_vrf_client.rs` in the `/instructions` folder. We'll add the needed crates, then create the `InitVrfClient` context. We'll need @@ -731,7 +731,7 @@ the following accounts: - `escrow_account` - the burry escrow account created when the user locked their funds up. - `vrf_client_state` - account we will be creating in this instruction to hold - state about the user’s dice rolls. + state about the user's dice rolls. - `vrf` - Our VRF owned by the Switchboard program, we will create this account client-side before we call `init_vrf_client`. - `system_program` - The system program since we use the init macro for @@ -786,7 +786,7 @@ only have one `escrow_account`. Since there is only one, If you wanted to be thorough, you might want to implement a `close_vrf_state` function to get your rent back. -Now, let’s write some basic initialization logic for this function. First we +Now, let's write some basic initialization logic for this function. First we load and initialize our `vrf_state` account by calling `load_init()`. Then we fill in the values for each field. @@ -926,7 +926,7 @@ pub struct RequestRandomness<'info> { } ``` -Lastly, we'll create a new struct `RequestRandomnessParams`. We’ll be passing in +Lastly, we'll create a new struct `RequestRandomnessParams`. We'll be passing in some account's bumps client-side. ```rust @@ -1006,7 +1006,7 @@ If doubles are rolled, set the `out_of_jail` field on `vrf_state` to true. First, let's create the `ConsumeRandomness` context. Fortunately, it only takes three accounts. -- `escrow_account` - state account for user’s escrowed funds. +- `escrow_account` - state account for user's escrowed funds. - `vrf_state` - state account to hold information about dice roll. - `vrf` - account with the random number that was just calculated by the Switchboard network. @@ -1092,7 +1092,7 @@ pub fn consume_randomness_handler(ctx: Context) -> Result <() } ``` -Now it’s time to actually use the random result. Since we only use two dice we +Now it's time to actually use the random result. Since we only use two dice we only need the first two bytes of the buffer. To convert these random values into “dice rolls”, we use modular arithmetic. For anyone not familiar with modular arithmetic, @@ -1201,12 +1201,12 @@ Please make sure your program builds successfully by running `anchor build`. #### 11. Testing -Alright, let’s test our program. Historically, we'd need to test the VRF on +Alright, let's test our program. Historically, we'd need to test the VRF on Devnet. Fortunately, the folks at Switchboard have created some really nice -functions to let us run our own VRF oracle locally. For this, we’ll need to set +functions to let us run our own VRF oracle locally. For this, we'll need to set up our local server, grab all of the right accounts, and then call our program. -The first thing we’ll do is pull in some more accounts in our `Anchor.toml` +The first thing we'll do is pull in some more accounts in our `Anchor.toml` file: ```toml diff --git a/content/courses/intro-to-solana/interact-with-wallets.md b/content/courses/intro-to-solana/interact-with-wallets.md index 924a5ea11..27738df9f 100644 --- a/content/courses/intro-to-solana/interact-with-wallets.md +++ b/content/courses/intro-to-solana/interact-with-wallets.md @@ -16,8 +16,8 @@ description: "Connect with installed browser wallets from your React apps." software wallets are often **browser extensions** that add the ability to connect to a wallet from a website. On mobile, wallet apps have their own browsers. -- Solana’s **Wallet Adapter** allows you to build websites that can request a - user’s wallet address and propose transactions for them to sign +- Solana's **Wallet Adapter** allows you to build websites that can request a + user's wallet address and propose transactions for them to sign ## Lesson @@ -26,7 +26,7 @@ description: "Connect with installed browser wallets from your React apps." In the previous two lessons, we discussed keypairs. Keypairs are used to locate accounts and sign transactions. While the public key of a keypair is perfectly safe to share, the secret key should always be kept in a secure location. If a -user’s secret key is exposed, then a malicious actor could execute transactions +user's secret key is exposed, then a malicious actor could execute transactions with the authority of that user, allowing them to transfer all the assets inside. @@ -42,7 +42,7 @@ existing device(s). Both techniques allow websites to interact easily with the wallet, for example: -1. Seeing the wallet’s wallet address (their public key) +1. Seeing the wallet's wallet address (their public key) 2. Submitting transactions for a user's approval to sign 3. Sending signed transactions to the network @@ -51,20 +51,20 @@ transaction to your wallet and having the wallet handle the signing, you ensure that you never expose your secret key to the website. Instead, you only share the secret key with the wallet application. -Unless you’re creating a wallet application yourself, your code should never +Unless you're creating a wallet application yourself, your code should never need to ask a user for their secret key. Instead, you can ask users to connect to your site using a reputable wallet. -## Solana’s Wallet Adapter +## Solana's Wallet Adapter If you build web apps, and need users to be able to connect to their wallets and -sign transactions through your apps, you'll want Solana’s Wallet Adapter. Wallet +sign transactions through your apps, you'll want Solana's Wallet Adapter. Wallet Adapter is a suite of modular packages: - The core functionality is found in `@solana/wallet-adapter-base`. - React support is added by `@solana/wallet-adapter-react`. - Additional packages provide components for common UI frameworks. In this - lesson, and throughout this course, we’ll be using components from + lesson, and throughout this course, we'll be using components from `@solana/wallet-adapter-react-ui`. Finally, some packages are adapters for specific wallet apps. These are now no @@ -73,7 +73,7 @@ longer necessary in most cases - see below. ### Install Wallet-Adapter Libraries for React When adding wallet support to an existing React app, you start by installing the -appropriate packages. You’ll need `@solana/wallet-adapter-base`, +appropriate packages. You'll need `@solana/wallet-adapter-base`, `@solana/wallet-adapter-react`. If you plan to use the provided React components, you'll also need to add `@solana/wallet-adapter-react-ui`. @@ -135,7 +135,7 @@ export const Home: NextPage = props => { ``` Note that `ConnectionProvider` requires an `endpoint` property and that -`WalletProvider` requires a `wallets` property. We’re continuing to use the +`WalletProvider` requires a `wallets` property. We're continuing to use the endpoint for the Devnet cluster, and since all major Solana wallet applications support the Wallet Standard, we don't need any wallet-specific adapters. At this point, you can connect with `wallet.connect()`, which will instruct the wallet @@ -144,9 +144,9 @@ for transactions. ![wallet connection prompt](/public/assets/courses/unboxed/wallet-connect-prompt.png) -While you could do this in a `useEffect` hook, you’ll usually want to provide +While you could do this in a `useEffect` hook, you'll usually want to provide more sophisticated functionality. For example, you may want users to be able to -choose from a list of supported wallet applications or disconnect after they’ve +choose from a list of supported wallet applications or disconnect after they've already connected. ### @solana/wallet-adapter-react-ui @@ -194,7 +194,7 @@ export default Home; ``` The `WalletModalProvider` adds functionality for presenting a modal screen for -users to select which wallet they’d like to use. The `WalletMultiButton` changes +users to select which wallet they'd like to use. The `WalletMultiButton` changes behavior to match the connection status: ![multi button select wallet option](/public/assets/courses/unboxed/multi-button-select-wallet.png) @@ -219,7 +219,7 @@ functionality: Once your site is connected to a wallet, `useConnection` will retrieve a `Connection` object and `useWallet` will get the `WalletContextState`. `WalletContextState` has a property `publicKey` that is `null` when not -connected to a wallet and has the public key of the user’s account when a wallet +connected to a wallet and has the public key of the user's account when a wallet is connected. With a public key and a connection, you can fetch account info and more. @@ -312,14 +312,14 @@ const sendSol = async event => { ``` When this function is called, the connected wallet will display the transaction -for the user’s approval. If approved, then the transaction will be sent. +for the user's approval. If approved, then the transaction will be sent. ![wallet transaction approval prompt](/public/assets/courses/unboxed/wallet-transaction-approval-prompt.png) ## Lab -Let’s take the Ping program from the last lesson and build a frontend that lets -users approve a transaction that pings the program. As a reminder, the program’s +Let's take the Ping program from the last lesson and build a frontend that lets +users approve a transaction that pings the program. As a reminder, the program's public key is `ChT1B39WKLS8qUrkLvFDXMhEJ4F1XZzwUNHUt4AU9aVa` and the public key for the data account is `Ah9K7dQ8EHaZqcAsgBW8w37yN2eAy3koFmUn4x3CJtod`. @@ -341,25 +341,25 @@ Then set your wallet to use Devnet, for example: - In Solflare, click **Settings** -> **General** -> **Network** -> **DevNet** - In Backpack, click **Preferences** -> **Developer Mode** -This ensures that your wallet app will be connected to the same network we’ll be +This ensures that your wallet app will be connected to the same network we'll be using in this lab. ### Download the starter code Download the [starter code for this project](https://github.com/Unboxed-Software/solana-ping-frontend/tree/starter). -This project is a simple Next.js application. It’s mostly empty except for the -`AppBar` component. We’ll build the rest throughout this lab. +This project is a simple Next.js application. It's mostly empty except for the +`AppBar` component. We'll build the rest throughout this lab. You can see its current state with the command `npm run dev` in the console. ### Wrap the app in context providers -To start, we’re going to create a new component to contain the various -Wallet-Adapter providers that we’ll be using. Create a new file inside the +To start, we're going to create a new component to contain the various +Wallet-Adapter providers that we'll be using. Create a new file inside the `components` folder called `WalletContextProvider.tsx`. -Let’s start with some of the boilerplate for a functional component: +Let's start with some of the boilerplate for a functional component: ```tsx import { FC, ReactNode } from "react"; @@ -373,7 +373,7 @@ const WalletContextProvider: FC<{ children: ReactNode }> = ({ children }) => { export default WalletContextProvider; ``` -To properly connect to the user’s wallet, we’ll need a `ConnectionProvider`, +To properly connect to the user's wallet, we'll need a `ConnectionProvider`, `WalletProvider`, and `WalletModalProvider`. Start by importing these components from `@solana/wallet-adapter-react` and `@solana/wallet-adapter-react-ui`. Then add them to the `WalletContextProvider` component. Note that @@ -405,9 +405,9 @@ export default WalletContextProvider; The last things we need are an actual endpoint for `ConnectionProvider` and the supported wallets for `WalletProvider`. -For the endpoint, we’ll use the same `clusterApiUrl` function from the -`@solana/web3.js` library that we’ve used before so you’ll need to import it. -For the array of wallets you’ll also need to import the +For the endpoint, we'll use the same `clusterApiUrl` function from the +`@solana/web3.js` library that we've used before so you'll need to import it. +For the array of wallets you'll also need to import the `@solana/wallet-adapter-wallets` library. After importing these libraries, create a constant `endpoint` that uses the @@ -450,10 +450,10 @@ export default WalletContextProvider; ### Add wallet multi-button -Next, let’s set up the Connect button. The current button is just a placeholder +Next, let's set up the Connect button. The current button is just a placeholder because rather than using a standard button or creating a custom component, -we’ll be using Wallet-Adapter’s “multi-button.” This button interfaces with the -providers we set up in `WalletContextProvider` and let’s users choose a wallet, +we'll be using Wallet-Adapter's “multi-button.” This button interfaces with the +providers we set up in `WalletContextProvider` and let's users choose a wallet, connect to a wallet, and disconnect from a wallet. If you ever need more custom functionality, you can create a custom component to handle this. @@ -492,7 +492,7 @@ export default Home; If you run the app, everything should still look the same since the current button on the top right is still just a placeholder. To remedy this, open `AppBar.tsx` and replace `` with ``. -You’ll need to import `WalletMultiButton` from +You'll need to import `WalletMultiButton` from `@solana/wallet-adapter-react-ui`. ```tsx @@ -519,17 +519,17 @@ button to connect your wallet to the site. ### Create button to ping program -Now that our app can connect to our wallet, let’s make the “Ping!” button +Now that our app can connect to our wallet, let's make the “Ping!” button actually do something. -Start by opening the `PingButton.tsx` file. We’re going to replace the +Start by opening the `PingButton.tsx` file. We're going to replace the `console.log` inside of `onClick` with code that will create a transaction and -submit it to the wallet app for the end user’s approval. +submit it to the wallet app for the end user's approval. -First, we need a connection, the wallet’s public key, and Wallet-Adapter’s +First, we need a connection, the wallet's public key, and Wallet-Adapter's `sendTransaction` function. To get this, we need to import `useConnection` and -`useWallet` from `@solana/wallet-adapter-react`. While we’re here, let’s also -import `@solana/web3.js` since we’ll need it to create our transaction. +`useWallet` from `@solana/wallet-adapter-react`. While we're here, let's also +import `@solana/web3.js` since we'll need it to create our transaction. ```tsx import { useConnection, useWallet } from "@solana/wallet-adapter-react"; @@ -588,7 +588,7 @@ export const PingButton: FC = () => { With that, we can fill in the body of `onClick`. First, check that both `connection` and `publicKey` exist (if either does not -then the user’s wallet isn’t connected yet). +then the user's wallet isn't connected yet). Next, construct two instances of `PublicKey`, one for the program ID `ChT1B39WKLS8qUrkLvFDXMhEJ4F1XZzwUNHUt4AU9aVa` and one for the data account @@ -633,17 +633,17 @@ const onClick = async () => { }; ``` -And that’s it! If you refresh the page, connect your wallet, and click the ping +And that's it! If you refresh the page, connect your wallet, and click the ping button, your wallet should present you with a popup to confirm the transaction. ### Add some polish -There’s a lot you could do to make the user experience here even better. For +There's a lot you could do to make the user experience here even better. For example, you could change the UI to only show you the Ping button when a wallet is connected and display some other prompt otherwise. You could link to the transaction on Solana Explorer after a user confirms a transaction so they can easily go look at the transaction details. The more you experiment with it, the -more comfortable you’ll get, so get creative! +more comfortable you'll get, so get creative! You can also download the [full source code from this lab](https://github.com/Unboxed-Software/solana-ping-frontend) @@ -651,7 +651,7 @@ to understand all of this in context. ## Challenge -Now it’s your turn to build something independently. Create an application that +Now it's your turn to build something independently. Create an application that lets a user connect their wallet and send SOL to another account. ![Send SOL App](/public/assets/courses/unboxed/solana-send-sol-app.png) @@ -659,7 +659,7 @@ lets a user connect their wallet and send SOL to another account. 1. You can build this from scratch or you can [download the starter code](https://github.com/Unboxed-Software/solana-send-sol-frontend/tree/starter). 2. Wrap the starter application in the appropriate context providers. -3. In the form component, set up the transaction and send it to the user’s +3. In the form component, set up the transaction and send it to the user's wallet for approval. 4. Get creative with the user experience. Add a link to let the user view the transaction on Solana Explorer or something else that seems cool to you! diff --git a/content/courses/intro-to-solana/intro-to-cryptography.md b/content/courses/intro-to-solana/intro-to-cryptography.md index 795850f41..6f1c3d83b 100644 --- a/content/courses/intro-to-solana/intro-to-cryptography.md +++ b/content/courses/intro-to-solana/intro-to-cryptography.md @@ -102,7 +102,7 @@ to install `@solana/web3.js` npm i @solana/web3.js ``` -We’ll cover a lot of +We'll cover a lot of [web3.js](https://solana.com/docs/clients/javascript-reference) gradually throughout this course, but you can also check out the [official web3.js documentation](https://solana.com/docs/clients/javascript-reference). @@ -135,7 +135,7 @@ store secret keys in source code. Instead, we: ### Loading an existing keypair -If you already have a keypair you’d like to use, you can load a `Keypair` from +If you already have a keypair you'd like to use, you can load a `Keypair` from an existing secret key stored in the filesystem or an `.env` file. In node.js, the `@solana-developers/helpers` npm package includes some extra functions: @@ -153,7 +153,7 @@ import { getKeypairFromEnvironment } from "@solana-developers/helpers"; const keypair = getKeypairFromEnvironment("SECRET_KEY"); ``` -You know how to make and load keypairs! Let’s practice what we’ve learned. +You know how to make and load keypairs! Let's practice what we've learned. ## Lab diff --git a/content/courses/intro-to-solana/intro-to-custom-onchain-programs.md b/content/courses/intro-to-solana/intro-to-custom-onchain-programs.md index c939d6c6b..c0b0b3400 100644 --- a/content/courses/intro-to-solana/intro-to-custom-onchain-programs.md +++ b/content/courses/intro-to-solana/intro-to-custom-onchain-programs.md @@ -27,7 +27,7 @@ In previous chapters, we used: `@metaplex-foundation/mpl-token-metadata@2` to make instructions to Metaplex to create token Metadata. -When working with other programs, however, you’ll need to create instructions +When working with other programs, however, you'll need to create instructions manually. With `@solana/web3.js`, you can create instructions with the `TransactionInstruction` constructor: @@ -47,7 +47,7 @@ const instruction = new TransactionInstruction({ `TransactionInstruction()` takes 3 fields: -- The `programId` field is fairly self-explanatory: it’s the public key (also +- The `programId` field is fairly self-explanatory: it's the public key (also called the 'address' or 'program ID') of the program. - `keys` is an array of accounts and how they will be used during the @@ -60,7 +60,7 @@ const instruction = new TransactionInstruction({ - `isWritable` - a boolean representing whether or not the account is written to during the transaction's execution -- an optional `Buffer` containing data to pass to the program. We’ll be ignoring +- an optional `Buffer` containing data to pass to the program. We'll be ignoring the `data` field for now, but we will revisit it in a future lesson. After making our instruction, we add it to a transaction, send the transaction @@ -99,7 +99,7 @@ for that signature in Solana Explorer, then see: ### Writing transactions for the ping counter program -We’re going to create a script to ping an onchain program that increments a +We're going to create a script to ping an onchain program that increments a counter each time it has been pinged. This program exists on the Solana Devnet at address `ChT1B39WKLS8qUrkLvFDXMhEJ4F1XZzwUNHUt4AU9aVa`. The program stores its data in a specific account at the address @@ -147,7 +147,7 @@ Now let's talk to the Ping program! To do this, we need to: Remember, the most challenging piece here is including the right information in the instructions. We know the address of the program that we are calling. We also know that the program writes data to a separate account whose address we -also have. Let’s add the string versions of both of those as constants at the +also have. Let's add the string versions of both of those as constants at the top of the file: ```typescript @@ -159,7 +159,7 @@ const PING_PROGRAM_DATA_ADDRESS = new web3.PublicKey( ); ``` -Now let’s create a new transaction, then initialize a `PublicKey` for the +Now let's create a new transaction, then initialize a `PublicKey` for the program account, and another for the data account. ```typescript @@ -168,7 +168,7 @@ const programId = new web3.PublicKey(PING_PROGRAM_ADDRESS); const pingProgramDataId = new web3.PublicKey(PING_PROGRAM_DATA_ADDRESS); ``` -Next, let’s create the instruction. Remember, the instruction needs to include +Next, let's create the instruction. Remember, the instruction needs to include the public key for the Ping program and it also needs to include an array with all the accounts that will be read from or written to. In this example program, only the data account referenced above is needed. @@ -190,9 +190,9 @@ const instruction = new web3.TransactionInstruction({ }); ``` -Next, let’s add this instruction to the transaction we created. Then, call +Next, let's add this instruction to the transaction we created. Then, call `sendAndConfirmTransaction()` by passing in the connection, transaction, and -payer. Finally, let’s log the result of that function call so we can look it up +payer. Finally, let's log the result of that function call so we can look it up on Solana Explorer. ```typescript @@ -251,10 +251,10 @@ console.log( ); ``` -And just like that you’re calling programs on the Solana network and writing +And just like that you're calling programs on the Solana network and writing data onchain! -In the next few lessons, you’ll learn how to +In the next few lessons, you'll learn how to 1. Send transactions safely from the browser instead of running a script 2. Add custom data to your instructions diff --git a/content/courses/intro-to-solana/intro-to-reading-data.md b/content/courses/intro-to-solana/intro-to-reading-data.md index 9ea60e35c..11c129b67 100644 --- a/content/courses/intro-to-solana/intro-to-reading-data.md +++ b/content/courses/intro-to-solana/intro-to-reading-data.md @@ -10,9 +10,9 @@ description: ## Summary -- **SOL** is the name of Solana’s native token. Each SOL is made from 1 billion +- **SOL** is the name of Solana's native token. Each SOL is made from 1 billion **Lamports**. -- **Accounts** store tokens, NFTs, programs, and data. For now, we’ll focus on +- **Accounts** store tokens, NFTs, programs, and data. For now, we'll focus on accounts that store SOL. - **Addresses** point to accounts on the Solana network. Anyone can read the data at a given address. Most addresses are also **public keys**. @@ -127,7 +127,7 @@ The balance of the account at CenYq6bDRB7p73EjsPEpiYN7uveyPUTdXkDkgUduboaN is 0. ## Lab -Let’s practice what we’ve learned, and check the balance at a particular +Let's practice what we've learned, and check the balance at a particular address. ### Load a keypair diff --git a/content/courses/intro-to-solana/intro-to-writing-data.md b/content/courses/intro-to-solana/intro-to-writing-data.md index 5e2999a12..deede360e 100644 --- a/content/courses/intro-to-solana/intro-to-writing-data.md +++ b/content/courses/intro-to-solana/intro-to-writing-data.md @@ -120,8 +120,8 @@ dropped with an error like: > Transaction simulation failed: Attempt to debit an account but found no record of a prior credit. ``` -If you get this error, it’s because your keypair is brand new and doesn’t have -any SOL to cover the transaction fees. Let’s fix this by adding the following +If you get this error, it's because your keypair is brand new and doesn't have +any SOL to cover the transaction fees. Let's fix this by adding the following lines just after we've set up the connection: ```typescript @@ -134,7 +134,7 @@ await airdropIfRequired( ``` This will deposit 1 SOL into your account which you can use for testing. This -won’t work on Mainnet where it would have value. But it's incredibly convenient +won't work on Mainnet where it would have value. But it's incredibly convenient for testing locally and on Devnet. You can also use the Solana CLI command `solana airdrop 1` to get free test SOL @@ -158,7 +158,7 @@ for that signature in the Solana Explorer, then see: ## Lab -We’re going to create a script to send SOL to other students. +We're going to create a script to send SOL to other students. ### Basic scaffolding diff --git a/content/courses/mobile/intro-to-solana-mobile.md b/content/courses/mobile/intro-to-solana-mobile.md index 956e139b1..cf6a9002b 100644 --- a/content/courses/mobile/intro-to-solana-mobile.md +++ b/content/courses/mobile/intro-to-solana-mobile.md @@ -54,7 +54,7 @@ you hold your own keys. **Mobile Gaming with Solana Micropayments** -Mobile games account for roughly 50% of the video game industry’s total value, +Mobile games account for roughly 50% of the video game industry's total value, largely due to small in-game purchases. However, payment processing fees usually mean these in-game purchases have a minimum of $0.99 USD. With Solana, it's possible to unlock true micropayments. Need an extra life? That'll be 0.0001 @@ -66,7 +66,7 @@ SMS can enable a new wave of mobile e-commerce shoppers to pay directly from their favorite Solana wallet. Imagine a world where you can use your Solana wallet as seamlessly as you can use Apple Pay. -To summarize, mobile crypto opens up many doors. Let’s dive in and learn how we +To summarize, mobile crypto opens up many doors. Let's dive in and learn how we can be part of it: #### How Solana development differs between native mobile apps and web @@ -106,7 +106,7 @@ is pushed to the background. This kills the MWA WebSocket connection. This is an inherent design difference between iOS and Android (probably made to preserve battery, network usage, etc). -However, this doesn’t mean that Solana dApps can’t run on iOS at all. You can +However, this doesn't mean that Solana dApps can't run on iOS at all. You can still create a Mobile Web App using the [standard wallet adapter](https://github.com/solana-labs/wallet-adapter) library. Your users can then install a mobile-friendly wallet like @@ -197,7 +197,7 @@ about soon. Reading data from a Solana cluster in React Native is the exact same as in React. You use the `useConnection` hook to grab the `Connection` object. Using -that, you can get account info. Since reading is free, we don’t need to actually +that, you can get account info. Since reading is free, we don't need to actually connect to the wallet. ```tsx @@ -279,7 +279,7 @@ const sendTransactions = (transaction: Transaction) => { #### Debugging Since two applications are involved in sending transactions, debugging can be -tricky. Specifically, you won’t be able to see the wallet's debug logs the way +tricky. Specifically, you won't be able to see the wallet's debug logs the way you can see your dApps logs. Fortunately, @@ -288,7 +288,7 @@ makes it possible to see logs from all applications on your device. If you prefer not to use Logcat, the other method you could try is to only use the wallet to sign transactions, and then send them in your code. This allows -you to better debug the transaction if you’re running into problems. +you to better debug the transaction if you're running into problems. #### Releasing @@ -300,8 +300,8 @@ First, most of the mobile app marketplaces have policies restricting blockchain involvement. Crypto is new enough that it's a regulatory wildcard. Platforms feel they're protecting users by being strict with blockchain-related apps. -Second, if you use crypto for "purchases" in-app, you’ll be seen as -circumnavigating the platform’s fee (anywhere from 15-30%). This is explicitly +Second, if you use crypto for "purchases" in-app, you'll be seen as +circumnavigating the platform's fee (anywhere from 15-30%). This is explicitly against app store policies as the platform is trying to protect its revenue stream. @@ -345,8 +345,8 @@ with React Native. The app will interact with the Anchor counter program that we made in the [Intro to client-side Anchor development](https://www.soldev.app/course/intro-to-anchor-frontend) lesson. This dApp simply displays a counter and allows users to increment the -count through a Solana program. In this app, we’ll be able to see the current -count, connect our wallet, and increment the count. We’ll be doing this all on +count through a Solana program. In this app, we'll be able to see the current +count, connect our wallet, and increment the count. We'll be doing this all on Devnet and will be compiling only for Android. This program already exists and is already deployed on Devnet. Feel free to @@ -354,7 +354,7 @@ check out the [deployed program's code](https://github.com/Unboxed-Software/anchor-ping-frontend/tree/solution-decrement) if you want more context. -We’ll write this application in vanilla React Native without a starting +We'll write this application in vanilla React Native without a starting template. Solana Mobile provides a [React Native template](https://docs.solanamobile.com/react-native/react-native-scaffold) that shortcuts some of the boilerplate, but there's no better way to learn than @@ -410,16 +410,16 @@ few prerequisite setup items: ![Fake Wallet](/public/assets/courses/unboxed/basic-solana-mobile-fake-wallet.png) - 4. For debugging, you’ll want to use `Logcat`. Now that your fake wallet is + 4. For debugging, you'll want to use `Logcat`. Now that your fake wallet is running on the emulator, go to `View -> Tool Windows -> Logcat`. This will - open up a console logging out what’s happening with fake wallet. + open up a console logging out what's happening with fake wallet. 3. (Optional) Install other [Solana wallets](https://solana.com/ecosystem/explore?categories=wallet) on the Google Play store. -Lastly, if you run into Java versioning issues - you’ll want to be on Java -version 11. To check what you’re currently running type `java --version` in your +Lastly, if you run into Java versioning issues - you'll want to be on Java +version 11. To check what you're currently running type `java --version` in your terminal. #### 1. Plan out the App's Structure @@ -439,7 +439,7 @@ files we'll be creating and working with. #### 2. Create the App -Now that we've got some of the basic setup and structure down, let’s scaffold a +Now that we've got some of the basic setup and structure down, let's scaffold a new app with the following command: ```bash @@ -457,12 +457,12 @@ npm run android ``` This should open and run the app in your Android emulator. If you run into -problems, check to make sure you’ve accomplished everything in the +problems, check to make sure you've accomplished everything in the [prerequisites section](#0-prerequisites). #### 3. Install Dependencies -We’ll need to add in our Solana dependencies. +We'll need to add in our Solana dependencies. [The Solana Mobile docs provide a nice list of packages](https://docs.solanamobile.com/react-native/setup) and explanations for why we need them: @@ -484,8 +484,8 @@ In addition to this list, we'll add two more packages: - `assert`: A polyfill that lets Anchor do its thing. - `text-encoding-polyfill`: A polyfill needed to create the `Program` object -If you’re not familiar: polyfills actively replace Node-native libraries to make -them work anywhere Node is not running. We’ll finish our polyfill setup shortly. +If you're not familiar: polyfills actively replace Node-native libraries to make +them work anywhere Node is not running. We'll finish our polyfill setup shortly. For now, install dependencies using the following command: ```bash @@ -502,7 +502,7 @@ npm install \ #### 4. Create ConnectionProvider.tsx -Let’s start adding our Solana functionality. Create a new folder called +Let's start adding our Solana functionality. Create a new folder called `components` and within it, a file called `ConnectionProvider.tsx`. This provider will wrap the entire application and make our `Connection` object available throughout. Hopefully, you're noticing a pattern: this is identical to @@ -550,9 +550,9 @@ export const useConnection = (): ConnectionContextState => #### 5. Create AuthProvider.tsx -The next Solana provision we’ll need is the auth provider. This is one of the -main differences between mobile and web development. What we’re implementing -here is roughly equivalent to the `WalletProvider` that we’re used to in web +The next Solana provision we'll need is the auth provider. This is one of the +main differences between mobile and web development. What we're implementing +here is roughly equivalent to the `WalletProvider` that we're used to in web apps. However, since we're using Android and its natively installed wallets, the flow to connect and utilize them is a bit different. Most notably, we need to follow the MWA protocol. @@ -570,14 +570,14 @@ We do this by providing the following in our `AuthProvider`: - `deauthorizeSession(wallet)`: Deauthorizes the `wallet`. - `onChangeAccount`: Acts as a handler when `selectedAccount` is changed. -We’re also going to throw in some utility methods: +We're also going to throw in some utility methods: - `getPublicKeyFromAddress(base64Address)`: Creates a new Public Key object from the Base64 address given from the `wallet` object - `getAuthorizationFromAuthResult`: Handles the authorization result, extracts relevant data from the result, and returns the `Authorization` context object -We’ll expose all of this through a `useAuthorization` hook. +We'll expose all of this through a `useAuthorization` hook. Since this provider is the same across virtually all apps, we're going to give you the full implementation that you can copy/paste. We'll dig into the details @@ -877,7 +877,7 @@ export const useProgram = () => useContext(ProgramContext); #### 7. Modify App.tsx -Now that we have all our providers, let’s wrap our app with them. We're going to +Now that we have all our providers, let's wrap our app with them. We're going to re-write the default `App.tsx` with the following changes: - Import our providers and add in our polyfills @@ -923,7 +923,7 @@ export default function App() { #### 8. Create MainScreen.tsx -Now, let’s put everything together to create our UI. Create a new folder called +Now, let's put everything together to create our UI. Create a new folder called `screens` and a new file called `MainScreen.tsx` inside of it. In this file, we are only structuring the screen to display two yet-to-be-created components: `CounterView` and `CounterButton`. @@ -979,7 +979,7 @@ export function MainScreen() { The `CounterView` is the first of our two program-specific files. `CounterView`'s only job is to fetch and listen for updates on our `Counter` -account. Since we’re only listening here, we don’t have to do anything +account. Since we're only listening here, we don't have to do anything MWA-related. It should look identical to a web application. We'll use our `Connection` object to listen for the `programAddress` specified in `ProgramProvider.tsx`. When the account is changed, we update the UI. @@ -1183,7 +1183,7 @@ export function CounterButton() { #### 11. Build and Run -Now it’s time to test that everything works! Build and run with the following +Now it's time to test that everything works! Build and run with the following command: ```bash @@ -1205,7 +1205,7 @@ to fix them: wallet installed ( like the fake wallet we installed in Prerequisites ) - You get stuck in a forever loop while calling `increment` → This is likely due to you reaching a Devnet airdrop rate limit. Take out the airdrop section in - `CounterButton` and manually send some Devnet sol to your wallet’s address + `CounterButton` and manually send some Devnet sol to your wallet's address (printed in the console) That's it! You've made your first Solana Mobile dApp. If you get stuck, feel diff --git a/content/courses/mobile/mwa-deep-dive.md b/content/courses/mobile/mwa-deep-dive.md index db3ed3a55..08d232afe 100644 --- a/content/courses/mobile/mwa-deep-dive.md +++ b/content/courses/mobile/mwa-deep-dive.md @@ -255,7 +255,7 @@ transact(async (wallet: Web3MobileWallet) => { Every time you want to call these methods, you will have to call `wallet.authorize()` or `wallet.reauthorize()`. -When invoking `wallet.signAndSendTransactions(...)`, it’s essential to handle +When invoking `wallet.signAndSendTransactions(...)`, it's essential to handle transaction failures gracefully. Transactions can fail due to various reasons such as network issues, signature mismatches, or insufficient funds. Proper error handling ensures a smooth user experience, even when the transaction diff --git a/content/courses/mobile/solana-mobile-dapps-with-expo.md b/content/courses/mobile/solana-mobile-dapps-with-expo.md index bf876a873..16ee816f3 100644 --- a/content/courses/mobile/solana-mobile-dapps-with-expo.md +++ b/content/courses/mobile/solana-mobile-dapps-with-expo.md @@ -304,7 +304,7 @@ eas login #### 2. Create the app scaffold -Let’s create our app with the following: +Let's create our app with the following: ```bash npx create-expo-app -t expo-template-blank-typescript solana-expo diff --git a/content/courses/native-onchain-development/cross-program-invocations.md b/content/courses/native-onchain-development/cross-program-invocations.md index a20e7999c..dff3df609 100644 --- a/content/courses/native-onchain-development/cross-program-invocations.md +++ b/content/courses/native-onchain-development/cross-program-invocations.md @@ -223,7 +223,7 @@ if a signature is required on behalf of a PDA. For that, you'll need to use Using `invoke_signed` is a little different just because there is an additional field that requires the seeds used to derive any PDAs that must sign the transaction. You may recall from previous lessons that PDAs do not lie on the -Ed25519 curve and, therefore, do not have a corresponding secret key. You’ve +Ed25519 curve and, therefore, do not have a corresponding secret key. You've been told that programs can provide signatures for their PDAs, but have not learned how that actually happens - until now. Programs provide signatures for their PDAs with the `invoke_signed` function. The first two fields of @@ -259,9 +259,9 @@ signer. #### Security checks There are some common mistakes and things to remember when utilizing CPIs that -are important to your program’s security and robustness. The first thing to +are important to your program's security and robustness. The first thing to remember is that, as we know by now, we have no control over what information is -passed into our programs. For this reason, it’s important to always verify the +passed into our programs. For this reason, it's important to always verify the `program_id`, accounts, and data passed into the CPI. Without these security checks, someone could submit a transaction that invokes an instruction on a completely different program than was expected, which is not ideal. @@ -269,7 +269,7 @@ completely different program than was expected, which is not ideal. Fortunately, there are inherent checks on the validity of any PDAs that are marked as signers within the `invoke_signed` function. All other accounts and `instruction_data` should be verified somewhere in your program code before -making the CPI. It's also important to make sure you’re targeting the intended +making the CPI. It's also important to make sure you're targeting the intended instruction on the program you are invoking. The easiest way to do this is to read the source code of the program you will be invoking just as you would if you were constructing an instruction from the client side. @@ -319,11 +319,11 @@ To see this in action, view this CPIs are a very important feature of the Solana ecosystem and they make all programs deployed interoperable with each other. With CPIs there is no need to re-invent the wheel when it comes to development. This creates the opportunity -for building new protocols and applications on top of what’s already been built, -just like building blocks or Lego bricks. It’s important to remember that CPIs +for building new protocols and applications on top of what's already been built, +just like building blocks or Lego bricks. It's important to remember that CPIs are a two-way street and the same is true for any programs that you deploy! If you build something cool and useful, developers have the ability to build on top -of what you’ve done or just plug your protocol into whatever it is that they are +of what you've done or just plug your protocol into whatever it is that they are building. Composability is a big part of what makes crypto so unique and CPIs are what makes this possible on Solana. @@ -345,7 +345,7 @@ gone through prior lessons, the Movie Review program allows users to submit movie reviews and have them stored in PDA accounts. Last lesson, we added the ability to leave comments on other movie reviews using -PDAs. In this lesson, we’re going to work on having the program mint tokens to +PDAs. In this lesson, we're going to work on having the program mint tokens to the reviewer or commenter anytime a review or comment is submitted. To implement this, we'll have to invoke the SPL Token Program's `MintTo` @@ -357,7 +357,7 @@ forward with this lab. #### 1. Get starter code and add dependencies To get started, we will be using the final state of the Movie Review program -from the previous PDA lesson. So, if you just completed that lesson then you’re +from the previous PDA lesson. So, if you just completed that lesson then you're all set and ready to go. If you are just jumping in here, no worries, you can [download the starter code here](https://github.com/Unboxed-Software/solana-movie-program/tree/solution-add-comments). We'll be using the `solution-add-comments` branch as our starting point. @@ -386,7 +386,7 @@ to be passed in: - `token_mint` - the mint address of the token - `mint_auth` - address of the authority of the token mint -- `user_ata` - user’s associated token account for this mint (where the tokens +- `user_ata` - user's associated token account for this mint (where the tokens will be minted) - `token_program` - address of the token program @@ -414,7 +414,7 @@ let token_program = next_account_info(account_info_iter)?; There is no additional `instruction_data` required for the new functionality, so no changes need to be made to how data is deserialized. The only additional -information that’s needed is the extra accounts. +information that's needed is the extra accounts. #### 4. Mint tokens to the reviewer in `add_movie_review` @@ -429,7 +429,7 @@ use spl_token::{instruction::initialize_mint, ID as TOKEN_PROGRAM_ID}; ``` Now we can move on to the logic that handles the actual minting of the tokens! -We’ll be adding this to the very end of the `add_movie_review` function right +We'll be adding this to the very end of the `add_movie_review` function right before `Ok(())` is returned. Minting tokens requires a signature by the mint authority. Since the program @@ -538,7 +538,7 @@ will mint ten tokens to the reviewer when a review is created. #### 5. Repeat for `add_comment` Our updates to the `add_comment` function will be almost identical to what we -did for the `add_movie_review` function above. The only difference is that we’ll +did for the `add_movie_review` function above. The only difference is that we'll change the amount of tokens minted for a comment from ten to five so that adding reviews are weighted above commenting. First, update the accounts with the same four additional accounts as in the `add_movie_review` function. @@ -799,7 +799,7 @@ pub fn initialize_token_mint(program_id: &Pubkey, accounts: &[AccountInfo]) -> P #### 7. Build and deploy -Now we’re ready to build and deploy our program! You can build the program by +Now we're ready to build and deploy our program! You can build the program by running `cargo build-bpf` and then running the command that is returned, it should look something like `solana program deploy `. diff --git a/content/courses/native-onchain-development/deserialize-custom-data-frontend.md b/content/courses/native-onchain-development/deserialize-custom-data-frontend.md index 69fc63fd4..a9a57d73a 100644 --- a/content/courses/native-onchain-development/deserialize-custom-data-frontend.md +++ b/content/courses/native-onchain-development/deserialize-custom-data-frontend.md @@ -3,7 +3,7 @@ title: Deserialize Program Data objectives: - Explain Program Derived Accounts - Derive PDAs given specific seeds - - Fetch a program’s accounts + - Fetch a program's accounts - Use Borsh to deserialize custom data description: Deserialize instructions in JS/TS clients to send to your native program. @@ -23,7 +23,7 @@ description: ## Lesson In the last lesson, we serialized program data that was subsequently stored -onchain by a Solana program. In this lesson, we’ll cover in greater detail how +onchain by a Solana program. In this lesson, we'll cover in greater detail how programs store data on the chain, how to retrieve data, and how to deserialize the data they store. @@ -51,7 +51,7 @@ can be signed for by the program address used to create them. PDAs and the data inside them can be consistently found based on the program address, bump, and seeds. To find a PDA, the program ID and seeds of the -developer’s choice (like a string of text) are passed through the +developer's choice (like a string of text) are passed through the [`findProgramAddress()`](https://solana-labs.github.io/solana-web3.js/classes/PublicKey.html#findProgramAddress) function. @@ -75,10 +75,10 @@ const [pda, bump] = await findProgramAddress( ##### Example: program with user-specific data -In programs that store user-specific data, it’s common to use a user’s public -key as the seed. This separates each user’s data into its own PDA. The -separation makes it possible for the client to locate each user’s data by -finding the address using the program ID and the user’s public key. +In programs that store user-specific data, it's common to use a user's public +key as the seed. This separates each user's data into its own PDA. The +separation makes it possible for the client to locate each user's data by +finding the address using the program ID and the user's public key. ```typescript import { PublicKey } from "@solana/web3.js"; @@ -94,8 +94,8 @@ const [pda, bump] = await PublicKey.findProgramAddressSync( When there are multiple data items per user, a program may use more seeds to create and identify accounts. For example, in a note-taking app there may be one -account per note where each PDA is derived with the user’s public key and the -note’s title. +account per note where each PDA is derived with the user's public key and the +note's title. ```typescript const [pda, bump] = await PublicKey.findProgramAddressSync( @@ -138,9 +138,9 @@ fetchProgramAccounts(); ### Deserializing program data The `data` property on an `AccountInfo` object is a buffer. To use it -efficiently, you’ll need to write code that deserializes it into something more +efficiently, you'll need to write code that deserializes it into something more usable. This is similar to the serialization process we covered last lesson. -Just as before, we’ll use [Borsh](https://borsh.io/) and `@coral-xyz/borsh`. If +Just as before, we'll use [Borsh](https://borsh.io/) and `@coral-xyz/borsh`. If you need a refresher on either of these, have a look at the previous lesson. Deserializing requires knowledge of the account layout ahead of time. When @@ -180,22 +180,22 @@ const { playerId, name } = borshAccountSchema.decode(buffer); ## Lab -Let’s practice this together by continuing to work on the Movie Review app from -the last lesson. No worries if you’re just jumping into this lesson - it should +Let's practice this together by continuing to work on the Movie Review app from +the last lesson. No worries if you're just jumping into this lesson - it should be possible to follow either way. As a refresher, this project uses a Solana program deployed on Devnet which lets users review movies. Last lesson, we added functionality to the frontend skeleton letting users submit movie reviews but the list of reviews is still -showing mock data. Let’s fix that by fetching the program’s storage accounts and +showing mock data. Let's fix that by fetching the program's storage accounts and deserializing the data stored there. ![movie review frontend](/public/assets/courses/movie-review-frontend-dapp.png) #### 1. Download the starter code -If you didn’t complete the lab from the last lesson or just want to make sure -that you didn’t miss anything, you can download the +If you didn't complete the lab from the last lesson or just want to make sure +that you didn't miss anything, you can download the [starter code](https://github.com/solana-developers/movie-review-frontend/tree/solution-serialize-instruction-data). The project is a fairly simple Next.js application. It includes the @@ -205,7 +205,7 @@ list, a `Form` component for submitting a new review, and a `Movie.ts` file that contains a class definition for a `Movie` object. Note that when you run `npm run dev`, the reviews displayed on the page are -mocks. We’ll be swapping those out for the real deal. +mocks. We'll be swapping those out for the real deal. #### 2. Create the buffer layout @@ -226,7 +226,7 @@ PDA's `data`: 3. `title` as a string representing the title of the reviewed movie. 4. `description` as a string representing the written portion of the review. -Let’s configure a `borsh` layout in the `Movie` class to represent the movie +Let's configure a `borsh` layout in the `Movie` class to represent the movie account data layout. Start by importing `@coral-xyz/borsh`. Next, create a `borshAccountSchema` static property and set it to the appropriate `borsh` struct containing the properties listed above. @@ -255,7 +255,7 @@ structured. #### 3. Create a method to deserialize data -Now that we have the buffer layout set up, let’s create a static method in +Now that we have the buffer layout set up, let's create a static method in `Movie` called `deserialize` that will take an optional `Buffer` and return a `Movie` object or `null`. @@ -296,7 +296,7 @@ export class Movie { ``` The method first checks whether or not the buffer exists and returns `null` if -it doesn’t. Next, it uses the layout we created to decode the buffer, then uses +it doesn't. Next, it uses the layout we created to decode the buffer, then uses the data to construct and return an instance of `Movie`. If the decoding fails, the method logs the error and returns `null`. @@ -352,7 +352,7 @@ At this point, you should be able to run the app and see the list of movie reviews retrieved from the program! Depending on how many reviews have been submitted, this may take a long time to -load or may lock up your browser entirely. But don’t worry — next lesson we’ll +load or may lock up your browser entirely. But don't worry — next lesson we'll learn how to page and filter accounts so you can be more surgical with what you load. @@ -363,7 +363,7 @@ before continuing. ## Challenge -Now it’s your turn to build something independently. Last lesson, you worked on +Now it's your turn to build something independently. Last lesson, you worked on the Student Intros app to serialize instruction data and send a new intro to the network. Now, it's time to fetch and deserialize the program's account data. Remember, the Solana program that supports this is at diff --git a/content/courses/native-onchain-development/deserialize-instruction-data.md b/content/courses/native-onchain-development/deserialize-instruction-data.md index 5cf2b27b4..ddd5aa918 100644 --- a/content/courses/native-onchain-development/deserialize-instruction-data.md +++ b/content/courses/native-onchain-development/deserialize-instruction-data.md @@ -66,7 +66,7 @@ let mut mutable_age = 33; mutable_age = 34; ``` -The Rust compiler ensures that immutable variables cannot change, so you don’t +The Rust compiler ensures that immutable variables cannot change, so you don't have to track it yourself. This makes your code easier to reason through and simplifies debugging. @@ -86,7 +86,7 @@ struct User { } ``` -To use a struct after it’s defined, create an instance of the struct by +To use a struct after it's defined, create an instance of the struct by specifying concrete values for each of the fields. ```rust @@ -364,8 +364,8 @@ There is Rust syntax in this function that we haven't explained yet. The leaves the `Ok` value unchanged. - [`?` operator](https://doc.rust-lang.org/rust-by-example/error/result/enter_question_mark.html): - Unwraps a `Result` or `Option`. If it’s `Ok` or `Some`, it returns the value. - If it’s an `Err` or `None`, it propagates the error up to the calling + Unwraps a `Result` or `Option`. If it's `Ok` or `Some`, it returns the value. + If it's an `Err` or `None`, it propagates the error up to the calling function. ### Program logic @@ -441,7 +441,7 @@ pub enum NoteInstruction { ... } ## Lab -For this lesson’s lab, you'll build the first half of the Movie Review program +For this lesson's lab, you'll build the first half of the Movie Review program from Module 1, focusing on deserializing instruction data. The next lesson will cover the remaining implementation. diff --git a/content/courses/native-onchain-development/paging-ordering-filtering-data-frontend.md b/content/courses/native-onchain-development/paging-ordering-filtering-data-frontend.md index cf84f50d6..2d9a4137d 100644 --- a/content/courses/native-onchain-development/paging-ordering-filtering-data-frontend.md +++ b/content/courses/native-onchain-development/paging-ordering-filtering-data-frontend.md @@ -3,7 +3,7 @@ title: Page, Order, and Filter Program Data objectives: - Page, order, and filter accounts - Prefetch accounts without data - - Determine where in an account’s buffer layout specific data is stored + - Determine where in an account's buffer layout specific data is stored - Prefetch accounts with a subset of data that can be used to order accounts - Fetch only accounts whose data matches specific criteria - Fetch a subset of total accounts using `getMultipleAccounts` @@ -22,8 +22,8 @@ description: "Learn how to efficiently query account data from Solana." ## Lesson You may have noticed in the last lesson that while we could fetch and display a -list of account data, we didn’t have any granular control over how many accounts -to fetch or their order. In this lesson, we’ll learn about some configuration +list of account data, we didn't have any granular control over how many accounts +to fetch or their order. In this lesson, we'll learn about some configuration options for the `getProgramAccounts` function that will enable things like paging, ordering accounts, and filtering. @@ -47,7 +47,7 @@ only return the subset of the data buffer that you specified. #### Paging Accounts One area where this becomes helpful is with paging. If you want to have a list -that displays all accounts but there are so many accounts that you don’t want to +that displays all accounts but there are so many accounts that you don't want to pull all the data at once, you can fetch all of the accounts but not fetch their data by using a `dataSlice` of `{ offset: 0, length: 0 }`. You can then map the result to a list of account keys whose data you can fetch only when needed. @@ -74,7 +74,7 @@ const deserializedObjects = accountInfos.map(accountInfo => { #### Ordering Accounts The `dataSlice` option is also helpful when you need to order a list of accounts -while paging. You still don’t want to fetch all the data at once, but you do +while paging. You still don't want to fetch all the data at once, but you do need all of the keys and a way to order them upfront. In this case, you need to understand the layout of the account data and configure the data slice to only be the data you need to use for ordering. @@ -86,7 +86,7 @@ For example, you might have an account that stores contact information like so: - `firstName` as a string - `secondName` as a string -If you want to order all of the account keys alphabetically based on the user’s +If you want to order all of the account keys alphabetically based on the user's first name, you need to find out the offset where the name starts. The first field, `initialized`, takes the first byte, then `phoneNumber` takes another 8, so the `firstName` field starts at offset `1 + 8 = 9`. However, dynamic data @@ -94,12 +94,12 @@ fields in borsh use the first 4 bytes to record the length of the data, so we can skip an additional 4 bytes, making the offset 13. You then need to determine the length to make the data slice. Since the length -is variable, we can’t know for sure before fetching the data. But you can choose +is variable, we can't know for sure before fetching the data. But you can choose a length that is large enough to cover most cases and short enough to not be too much of a burden to fetch. 15 bytes is plenty for most first names but would result in a small enough download even with a million users. -Once you’ve fetched accounts with the given data slice, you can use the `sort` +Once you've fetched accounts with the given data slice, you can use the `sort` method to sort the array before mapping it to an array of public keys. ```tsx @@ -161,7 +161,7 @@ accounts.sort((a, b) => { const accountKeys = accounts.map(account => account.pubkey); ``` -Note that in the snippet above we don’t compare the data as given. This is +Note that in the snippet above we don't compare the data as given. This is because for dynamically sized types like strings, Borsh places an unsigned, 32-bit (4 byte) integer at the start to indicate the length of the data representing that field. So to compare the first names directly, we need to get @@ -171,7 +171,7 @@ proper length. ### Use `filters` to only retrieve specific accounts Limiting the data received per account is great, but what if you only want to -return accounts that match a specific criteria rather than all of them? That’s +return accounts that match a specific criteria rather than all of them? That's where the `filters` configuration option comes in. This option is an array that can have objects matching the following: @@ -233,19 +233,19 @@ async function fetchMatchingContactAccounts( Two things to note in the example above: -1. We’re setting the offset to 13 because we determined previously that the +1. We're setting the offset to 13 because we determined previously that the offset for `firstName` in the data layout is 9 and we want to additionally skip the first 4 bytes indicating the length of the string. -2. We’re using a third-party library +2. We're using a third-party library `bs58`` to perform base-58 encoding on the search term. You can install it using `npm install bs58`. ## Lab -Remember that Movie Review app we worked on in the last two lessons? We’re going +Remember that Movie Review app we worked on in the last two lessons? We're going to spice it up a little by paging the review list, ordering the reviews so they -aren’t so random, and adding some basic search functionality. No worries if -you’re just jumping into this lesson without having looked at the previous +aren't so random, and adding some basic search functionality. No worries if +you're just jumping into this lesson without having looked at the previous ones - as long as you have the prerequisite knowledge, you should be able to follow the lab without having worked in this specific project yet. @@ -253,8 +253,8 @@ follow the lab without having worked in this specific project yet. #### **1. Download the starter code** -If you didn’t complete the lab from the last lesson or just want to make sure -that you didn’t miss anything, you can download the +If you didn't complete the lab from the last lesson or just want to make sure +that you didn't miss anything, you can download the [starter code](https://github.com/solana-developers/movie-review-frontend/tree/solutions-deserialize-account-data). The project is a fairly simple Next.js application. It includes the @@ -265,10 +265,10 @@ contains a class definition for a `Movie` object. #### 2. Add paging to the reviews -First things first, let’s create a space to encapsulate the code for fetching +First things first, let's create a space to encapsulate the code for fetching account data. Create a new file `MovieCoordinator.ts` and declare a -`MovieCoordinator` class. Then let’s move the `MOVIE_REVIEW_PROGRAM_ID` constant -from `MovieList` into this new file since we’ll be moving all references to it +`MovieCoordinator` class. Then let's move the `MOVIE_REVIEW_PROGRAM_ID` constant +from `MovieList` into this new file since we'll be moving all references to it ```tsx const MOVIE_REVIEW_PROGRAM_ID = "CenYq6bDRB7p73EjsPEpiYN7uveyPUTdXkDkgUduboaN"; @@ -281,11 +281,11 @@ note before we dive in: this will be as simple a paging implementation as possible so that we can focus on the complex part of interacting with Solana accounts. You can, and should, do better for a production application. -With that out of the way, let’s create a static property `accounts` of type +With that out of the way, let's create a static property `accounts` of type `web3.PublicKey[]`, a static function `prefetchAccounts(connection: web3.Connection)`, and a static function `fetchPage(connection: web3.Connection, page: number, perPage: number): Promise>`. -You’ll also need to import `@solana/web3.js` and `Movie`. +You'll also need to import `@solana/web3.js` and `Movie`. ```tsx import { Connection, PublicKey, AccountInfo } from "@solana/web3.js"; @@ -306,7 +306,7 @@ export class MovieCoordinator { } ``` -The key to paging is to prefetch all the accounts without data. Let’s fill in +The key to paging is to prefetch all the accounts without data. Let's fill in the body of `prefetchAccounts` to do this and set the retrieved public keys to the static `accounts` property. @@ -327,8 +327,8 @@ static async prefetchAccounts(connection: Connection) { } ``` -Now, let’s fill in the `fetchPage` method. First, if the accounts haven’t been -prefetched yet, we’ll need to do that. Then, we can get the account public keys +Now, let's fill in the `fetchPage` method. First, if the accounts haven't been +prefetched yet, we'll need to do that. Then, we can get the account public keys that correspond to the requested page and call `connection.getMultipleAccountsInfo`. Finally, we deserialize the account data and return the corresponding `Movie` objects. @@ -433,7 +433,7 @@ At this point, you should be able to run the project and click between pages! #### 3. Order reviews alphabetically by title -If you look at the reviews, you might notice they aren’t in any specific order. +If you look at the reviews, you might notice they aren't in any specific order. We can fix this by adding back just enough data into our data slice to help us do some sorting. The various properties in the movie review data buffer are laid out as follows @@ -445,17 +445,17 @@ out as follows Based on this, the offset we need to provide to the data slice to access `title` is 2. The length, however, is indeterminate, so we can just provide what seems -to be a reasonable length. I’ll stick with 18 as that will cover the length of +to be a reasonable length. I'll stick with 18 as that will cover the length of most titles without fetching too much data every time. -Once we’ve modified the data slice in `getProgramAccounts`, we then need to +Once we've modified the data slice in `getProgramAccounts`, we then need to actually sort the returned array. To do this, we need to compare the part of the data buffer that actually corresponds to `title`. The first 4 bytes of a dynamic field in Borsh are used to store the length of the field in bytes. So in any given buffer `data` that is sliced the way we discussed above, the string portion is `data.slice(4, 4 + data[0])`. -Now that we’ve thought through this, let’s modify the implementation of +Now that we've thought through this, let's modify the implementation of `prefetchAccounts` in `MovieCoordinator`: ```tsx @@ -517,15 +517,15 @@ reviews ordered alphabetically. #### 4. Add search -The last thing we’ll do to improve this app is to add some basic search -capability. Let’s add a `search` parameter to `prefetchAccounts` and reconfigure +The last thing we'll do to improve this app is to add some basic search +capability. Let's add a `search` parameter to `prefetchAccounts` and reconfigure the body of the function to use it. We can use the `filters` property of the `config` parameter of `getProgramAccounts` to filter accounts by specific data. The offset to the `title` fields is 2, but the first 4 bytes are the length of the title so the actual offset to the string itself is 6. Remember that the bytes need to be base -58 encoded, so let’s install and import `bs58`. +58 encoded, so let's install and import `bs58`. ```tsx import bs58 from 'bs58' @@ -580,7 +580,7 @@ static async prefetchAccounts(connection: Connection, search: string) { ``` Now, add a `search` parameter to `fetchPage` and update its call to -`prefetchAccounts` to pass it along. We’ll also need to add a `reload` boolean +`prefetchAccounts` to pass it along. We'll also need to add a `reload` boolean parameter to `fetchPage` so that we can force a refresh of the account prefetching every time the search value changes. @@ -625,7 +625,7 @@ static async fetchPage( } ``` -With that in place, let’s update the code in `MovieList` to call this properly. +With that in place, let's update the code in `MovieList` to call this properly. First, add `const [search, setSearch] = useState('')` near the other `useState` calls. Then update the call to `MovieCoordinator.fetchPage` in the `useEffect` @@ -673,7 +673,7 @@ return ( ); ``` -And that’s it! The app now has ordered reviews, paging, and search. +And that's it! The app now has ordered reviews, paging, and search. That was a lot to digest, but you made it through. If you need to spend some more time with the concepts, feel free to reread the sections that were most @@ -682,7 +682,7 @@ challenging for you and/or have a look at the ## Challenge -Now it’s your turn to try and do this on your own. Using the Student Intros app +Now it's your turn to try and do this on your own. Using the Student Intros app from last lesson, add paging, ordering alphabetically by name, and searching by name. @@ -691,9 +691,9 @@ name. 1. You can build this from scratch or you can download the [starter code](https://github.com/solana-developers/solana-student-intro-frontend/tree/solution-deserialize-account-data) 2. Add paging to the project by prefetching accounts without data, then only - fetching the account data for each account when it’s needed. + fetching the account data for each account when it's needed. 3. Order the accounts displayed in the app alphabetically by name. -4. Add the ability to search through introductions by a student’s name. +4. Add the ability to search through introductions by a student's name. This is challenging. If you get stuck, feel free to reference the [solution code](https://github.com/solana-developers/solana-student-intro-frontend/tree/solution-paging-account-data). diff --git a/content/courses/native-onchain-development/program-security.md b/content/courses/native-onchain-development/program-security.md index bdf694fcd..1bbba4de8 100644 --- a/content/courses/native-onchain-development/program-security.md +++ b/content/courses/native-onchain-development/program-security.md @@ -39,7 +39,7 @@ trying to exploit your program, anticipating failure points is essential to secure program development. Remember, **you have no control over the transactions that will be sent to your -program once it’s deployed**. You can only control how your program handles +program once it's deployed**. You can only control how your program handles them. While this lesson is far from a comprehensive overview of program security, we'll cover some of the basic pitfalls to look out for. @@ -281,8 +281,8 @@ To avoid integer overflow and underflow, either: ## Lab -Let’s practice together with the Movie Review program we've worked on in -previous lessons. No worries if you’re just jumping into this lesson without +Let's practice together with the Movie Review program we've worked on in +previous lessons. No worries if you're just jumping into this lesson without having done the previous lesson - it should be possible to follow along either way. @@ -325,7 +325,7 @@ Since we'll be allowing updates to movie reviews, we also changed `account_len` in the `add_movie_review` function (now in `processor.rs`). Instead of calculating the size of the review and setting the account length to only as large as it needs to be, we're simply going to allocate 1000 bytes to each -review account. This way, we don’t have to worry about reallocating size or +review account. This way, we don't have to worry about reallocating size or re-calculating rent when a user updates their movie review. We went from this: @@ -343,7 +343,7 @@ let account_len: usize = 1000; The [realloc](https://docs.rs/solana-sdk/latest/solana_sdk/account_info/struct.AccountInfo.html#method.realloc) method was just recently enabled by Solana Labs which allows you to dynamically change the size of your accounts. We will not be using this method for this lab, but -it’s something to be aware of. +it's something to be aware of. Finally, we've also implemented some additional functionality for our `MovieAccountState` struct in `state.rs` using the `impl` keyword. @@ -418,7 +418,7 @@ Note that in addition to adding the error cases, we also added the implementation that lets us convert our error into a `ProgramError` type as needed. -Before moving on, let’s bring `ReviewError` into scope in the `processor.rs`. We +Before moving on, let's bring `ReviewError` into scope in the `processor.rs`. We will be using these errors shortly when we add our security checks. ```rust @@ -455,8 +455,8 @@ if !initializer.is_signer { Next, let's make sure the `pda_account` passed in by the user is the `pda` we expect. Recall we derived the `pda` for a movie review using the `initializer` -and `title` as seeds. Within our instruction we’ll derive the `pda` again and -then check if it matches the `pda_account`. If the addresses do not match, we’ll +and `title` as seeds. Within our instruction we'll derive the `pda` again and +then check if it matches the `pda_account`. If the addresses do not match, we'll return our custom `InvalidPDA` error. ```rust @@ -474,7 +474,7 @@ if pda != *pda_account.key { Now let's perform some data validation. We'll start by making sure `rating` falls within the 1 to 5 scale. If the rating -provided by the user outside of this range, we’ll return our custom +provided by the user outside of this range, we'll return our custom `InvalidRating` error. ```rust @@ -484,8 +484,8 @@ if rating > 5 || rating < 1 { } ``` -Next, let’s check that the content of the review does not exceed the 1000 bytes -we’ve allocated for the account. If the size exceeds 1000 bytes, we’ll return +Next, let's check that the content of the review does not exceed the 1000 bytes +we've allocated for the account. If the size exceeds 1000 bytes, we'll return our custom `InvalidDataLength` error. ```rust @@ -597,7 +597,7 @@ pub fn add_movie_review( Now that `add_movie_review` is more secure, let's turn our attention to supporting the ability to update a movie review. -Let’s begin by updating `instruction.rs`. We’ll start by adding an +Let's begin by updating `instruction.rs`. We'll start by adding an `UpdateMovieReview` variant to `MovieInstruction` that includes embedded data for the new title, rating, and description. @@ -730,11 +730,11 @@ if pda_account.owner != program_id { #### Signer Check -Next, let’s perform a signer check to verify that the `initializer` of the +Next, let's perform a signer check to verify that the `initializer` of the update instruction has also signed the transaction. Since we are updating the data for a movie review, we want to ensure that the original `initializer` of the review has approved the changes by signing the transaction. If the -`initializer` did not sign the transaction, we’ll return an error. +`initializer` did not sign the transaction, we'll return an error. ```rust if !initializer.is_signer { @@ -745,9 +745,9 @@ if !initializer.is_signer { #### Account Validation -Next, let’s check that the `pda_account` passed in by the user is the PDA we +Next, let's check that the `pda_account` passed in by the user is the PDA we expect by deriving the PDA using `initializer` and `title` as seeds. If the -addresses do not match, we’ll return our custom `InvalidPDA` error. We'll +addresses do not match, we'll return our custom `InvalidPDA` error. We'll implement this the same way we did in the `add_movie_review` function. ```rust @@ -787,7 +787,7 @@ if !account_data.is_initialized() { Next, we need to validate the `rating`, `title`, and `description` data just like in the `add_movie_review` function. We want to limit the `rating` to a scale of 1 to 5 and limit the overall size of the review to be fewer than 1000 -bytes. If the rating provided by the user outside of this range, then we’ll +bytes. If the rating provided by the user outside of this range, then we'll return our custom `InvalidRating` error. If the review is too long, then we'll return our custom `InvalidDataLength` error. @@ -912,7 +912,7 @@ continuing. ## Challenge -Now it’s your turn to build something independently by building on top of the +Now it's your turn to build something independently by building on top of the Student Intro program that you've used in previous lessons. If you haven't been following along or haven't saved your code from before, feel free to use [this starter code](https://beta.solpg.io/62b11ce4f6273245aca4f5b2). diff --git a/content/courses/native-onchain-development/program-state-management.md b/content/courses/native-onchain-development/program-state-management.md index 1f858b9f6..f8dd25ff8 100644 --- a/content/courses/native-onchain-development/program-state-management.md +++ b/content/courses/native-onchain-development/program-state-management.md @@ -554,7 +554,7 @@ program. `movieProgramId` in the `index.ts` component with the public key of the program you've deployed. - If you use the frontend, simply replace the `MOVIE_REVIEW_PROGRAM_ID` in the - `review-form.tsx` components with the address of the program you’ve deployed. + `review-form.tsx` components with the address of the program you've deployed. Then run the frontend, submit a view, and refresh the browser to see the review. If you need more time with this project to feel comfortable with these concepts, diff --git a/content/courses/native-onchain-development/serialize-instruction-data-frontend.md b/content/courses/native-onchain-development/serialize-instruction-data-frontend.md index 798a3ac0d..410b2abf2 100644 --- a/content/courses/native-onchain-development/serialize-instruction-data-frontend.md +++ b/content/courses/native-onchain-development/serialize-instruction-data-frontend.md @@ -27,7 +27,7 @@ description: How to deserialize data fetched from Solana accounts. buffer. To facilitate this process of serialization, we will be using [Borsh](https://borsh.io/). - Transactions can fail to be processed by the blockchain for any number of - reasons, we’ll discuss some of the most common ones here. + reasons, we'll discuss some of the most common ones here. ## Lesson @@ -86,14 +86,14 @@ if every instruction succeeds then the transaction as a whole will be successful, but if a single instruction fails then the entire transaction will fail immediately with no side-effects. -The account array is not just an array of the accounts’ public keys. Each object -in the array includes the account’s public key, whether or not it is a signer on +The account array is not just an array of the accounts' public keys. Each object +in the array includes the account's public key, whether or not it is a signer on the transaction, and whether or not it is writable. Including whether or not an account is writable during the execution of an instruction allows the runtime to facilitate parallel processing of smart contracts. Because you must define which accounts are read-only and which you will write to, the runtime can determine which transactions are non-overlapping or read-only and allow them to execute -concurrently. To learn more about Solana’s runtime, check out this +concurrently. To learn more about Solana's runtime, check out this [blog post on Sealevel](https://solana.com/news/sealevel---parallel-processing-thousands-of-smart-contracts). #### Instruction Data @@ -104,17 +104,17 @@ an HTTP request lets you build dynamic and flexible REST APIs. Just as the structure of the body of an HTTP request is dependent on the endpoint you intend to call, the structure of the byte buffer used as -instruction data is entirely dependent on the recipient program. If you’re -building a full-stack dApp on your own, then you’ll need to copy the same +instruction data is entirely dependent on the recipient program. If you're +building a full-stack dApp on your own, then you'll need to copy the same structure that you used when building the program over to the client-side code. -If you’re working with another developer who is handling the program +If you're working with another developer who is handling the program development, you can coordinate to ensure matching buffer layouts. -Let’s think about a concrete example. Imagine working on a Web3 game and being +Let's think about a concrete example. Imagine working on a Web3 game and being responsible for writing client-side code that interacts with a player inventory program. The program was designed to allow the client to: -- Add inventory based on a player’s game-play results +- Add inventory based on a player's game-play results - Transfer inventory from one player to another - Equip a player with selected inventory items @@ -125,11 +125,11 @@ Each program, however, only has one entry point. You would instruct the program on which of these functions to run through the instruction data. You would also include in the instruction data any information the function -needs to execute properly, e.g. an inventory item’s ID, a player to transfer +needs to execute properly, e.g. an inventory item's ID, a player to transfer inventory to, etc. Exactly _how_ this data would be structured would depend on how the program was -written, but it’s common to have the first field in instruction data be a number +written, but it's common to have the first field in instruction data be a number that the program can map to a function, after which additional fields act as function arguments. @@ -145,10 +145,10 @@ in Solana is [Borsh](https://borsh.io). Per the website: Borsh maintains a [JS library](https://github.com/near/borsh-js) that handles serializing common types into a buffer. There are also other packages built on -top of Borsh that try to make this process even easier. We’ll be using the +top of Borsh that try to make this process even easier. We'll be using the `@coral-xyz/borsh` library which can be installed using `npm`. -Building off of the previous game inventory example, let’s look at a +Building off of the previous game inventory example, let's look at a hypothetical scenario where we are instructing the program to equip a player with a given item. Assume the program is designed to accept a buffer that represents a struct with the following properties: @@ -176,9 +176,9 @@ const equipPlayerSchema = borsh.struct([ You can then encode data using this schema with the `encode` method. This method accepts as arguments an object representing the data to be serialized and a -buffer. In the below example, we allocate a new buffer that’s much larger than +buffer. In the below example, we allocate a new buffer that's much larger than needed, then encode the data into that buffer and slice the original buffer down -into a new buffer that’s only as large as needed. +into a new buffer that's only as large as needed. ```typescript import * as borsh from "@coral-xyz/borsh"; @@ -198,13 +198,13 @@ equipPlayerSchema.encode( const instructionBuffer = buffer.subarray(0, equipPlayerSchema.getSpan(buffer)); ``` -Once a buffer is properly created and the data serialized, all that’s left is -building the transaction. This is similar to what you’ve done in previous +Once a buffer is properly created and the data serialized, all that's left is +building the transaction. This is similar to what you've done in previous lessons. The example below assumes that: - `player`, `playerInfoAccount`, and `PROGRAM_ID` are already defined somewhere outside the code snippet -- `player` is a user’s public key +- `player` is a user's public key - `playerInfoAccount` is the public key of the account where inventory changes will be written - `SystemProgram` will be used in the process of executing the instruction. @@ -277,8 +277,8 @@ try { ## Lab -Let’s practice this together by building a Movie Review app that lets users -submit a movie review and have it stored on Solana’s network. We’ll build this +Let's practice this together by building a Movie Review app that lets users +submit a movie review and have it stored on Solana's network. We'll build this app a little bit at a time over the next few lessons, adding new functionality each lesson. @@ -288,7 +288,7 @@ Here's a quick diagram of the program we'll build: ![Solana stores data items in PDAs, which can be found using their seeds](/public/assets/courses/unboxed/movie-review-program.svg) -The public key of the Solana program we’ll use for this application is +The public key of the Solana program we'll use for this application is `CenYq6bDRB7p73EjsPEpiYN7uveyPUTdXkDkgUduboaN`. #### 1. Download the starter code @@ -303,8 +303,8 @@ list, a `Form` component for submitting a new review, and a `Movie.ts` file that contains a class definition for a `Movie` object. Note that for now, the movies displayed on the page when you run `npm run dev` -are mocks. In this lesson, we’ll focus on adding a new review but we won’t be -able to see that review displayed. Next lesson, we’ll focus on deserializing +are mocks. In this lesson, we'll focus on adding a new review but we won't be +able to see that review displayed. Next lesson, we'll focus on deserializing custom data from onchain accounts. #### 2. Create the buffer layout @@ -322,7 +322,7 @@ data to contain: 4. `description` as a string representing the written portion of the review you are leaving for the movie. -Let’s configure a `borsh` layout in the `Movie` class. Start by importing +Let's configure a `borsh` layout in the `Movie` class. Start by importing `@coral-xyz/borsh`. Next, create a `borshInstructionSchema` property and set it to the appropriate `borsh` struct containing the properties listed above. @@ -350,8 +350,8 @@ how the program is structured, the transaction will fail. #### 3. Create a method to serialize data -Now that we have the buffer layout set up, let’s create a method in `Movie` -called `serialize()` that will return a `Buffer` with a `Movie` object’s +Now that we have the buffer layout set up, let's create a method in `Movie` +called `serialize()` that will return a `Buffer` with a `Movie` object's properties encoded into the appropriate layout. Instead of allocating a fixed buffer size, we'll calculate the size dynamically @@ -437,7 +437,7 @@ send the transaction when a user submits the form. Open `Form.tsx` and locate the `handleTransactionSubmit` function. This gets called by `handleSubmit` each time a user submits the Movie Review form. -Inside this function, we’ll be creating and sending the transaction that +Inside this function, we'll be creating and sending the transaction that contains the data submitted through the form. Start by importing `@solana/web3.js` and importing `useConnection` and @@ -495,7 +495,7 @@ export const Form: FC = () => { } ``` -Before we implement `handleTransactionSubmit`, let’s talk about what needs to be +Before we implement `handleTransactionSubmit`, let's talk about what needs to be done. We need to: 1. Check that `publicKey` exists to ensure that the user has connected their @@ -506,12 +506,12 @@ done. We need to: 4. Get all of the accounts that the transaction will read or write. 5. Create a new `Instruction` object that includes all of these accounts in the `keys` argument, includes the buffer in the `data` argument, and includes the - program’s public key in the `programId` argument. + program's public key in the `programId` argument. 6. Add the instruction from the last step to the transaction. 7. Call `sendTransaction`, passing in the assembled transaction. -That’s quite a lot to process! But don’t worry, it gets easier the more you do -it. Let’s start with the first 3 steps from above: +That's quite a lot to process! But don't worry, it gets easier the more you do +it. Let's start with the first 3 steps from above: ```typescript const handleTransactionSubmit = async (movie: Movie) => { @@ -527,8 +527,8 @@ const handleTransactionSubmit = async (movie: Movie) => { The next step is to get all of the accounts that the transaction will read or write. In past lessons, the account where data will be stored has been given to -you. This time, the account’s address is more dynamic, so it needs to be -computed. We’ll cover this in-depth in the next lesson, but for now, you can use +you. This time, the account's address is more dynamic, so it needs to be +computed. We'll cover this in-depth in the next lesson, but for now, you can use the following, where `pda` is the address to the account where data will be stored: @@ -598,9 +598,9 @@ const handleTransactionSubmit = async (movie: Movie) => { }; ``` -And that’s it! You should now be able to use the form on the site to submit a -movie review. While you won’t see the UI update to reflect the new review, you -can look at the transaction’s program logs on Solana Explorer to see that it was +And that's it! You should now be able to use the form on the site to submit a +movie review. While you won't see the UI update to reflect the new review, you +can look at the transaction's program logs on Solana Explorer to see that it was successful. If you need a bit more time with this project to feel comfortable, have a look @@ -609,7 +609,7 @@ at the complete ## Challenge -Now it’s your turn to build something independently. Create an application that +Now it's your turn to build something independently. Create an application that lets students of this course introduce themselves! The Solana program that supports this is at `HdE95RSVsdb315jfJtaykXhXY478h53X6okDupVfY9yf`. diff --git a/content/courses/onchain-development/anchor-cpi.md b/content/courses/onchain-development/anchor-cpi.md index 7202f7c16..5c96a7456 100644 --- a/content/courses/onchain-development/anchor-cpi.md +++ b/content/courses/onchain-development/anchor-cpi.md @@ -330,10 +330,10 @@ pub enum MyError { ## Lab -Let’s practice the concepts we’ve gone over in this lesson by building on top of +Let's practice the concepts we've gone over in this lesson by building on top of the Movie Review program from previous lessons. -In this lab we’ll update the program to mint tokens to users when they submit a +In this lab we'll update the program to mint tokens to users when they submit a new movie review. @@ -342,7 +342,7 @@ new movie review. To get started, we will be using the final state of the Anchor Movie Review program from the previous lesson. So, if you just completed that lesson then -you’re all set and ready to go. If you are just jumping in here, no worries, you +you're all set and ready to go. If you are just jumping in here, no worries, you can [download the starter code](https://github.com/Unboxed-Software/anchor-movie-review-program/tree/solution-pdas). We'll be using the `solution-pdas` branch as our starting point. @@ -410,7 +410,7 @@ pub fn initialize_token_mint(_ctx: Context) -> Result<()> { ### Anchor Error -Next, let’s create an Anchor Error that we’ll use to validate the following: +Next, let's create an Anchor Error that we'll use to validate the following: - The `rating` passed to either the `add_movie_review` or `update_movie_review` instruction. @@ -432,7 +432,7 @@ enum MovieReviewError { ### Update add_movie_review instruction -Now that we've done some setup, let’s update the `add_movie_review` instruction +Now that we've done some setup, let's update the `add_movie_review` instruction and `AddMovieReview` context type to mint tokens to the reviewer. Next, update the `AddMovieReview` context type to add the following accounts: @@ -485,7 +485,7 @@ been initialized, it will be initialized as an associated token account for the specified mint and authority. Also, the payer for the costs related with the account initialization will be set under the constraint `payer`. -Next, let’s update the `add_movie_review` instruction to do the following: +Next, let's update the `add_movie_review` instruction to do the following: - Check that `rating` is valid. If it is not a valid rating, return the `InvalidRating` error. @@ -493,7 +493,7 @@ Next, let’s update the `add_movie_review` instruction to do the following: `TitleTooLong` error. - Check that `description` length is valid. If it is not a valid length, return the `DescriptionTooLong` error. -- Make a CPI to the token program’s `mint_to` instruction using the mint +- Make a CPI to the token program's `mint_to` instruction using the mint authority PDA as a signer. Note that we'll mint 10 tokens to the user but need to adjust for the mint decimals by making it `10*10^6`. @@ -608,7 +608,7 @@ pub fn update_movie_review( ### Test -Those are all of the changes we need to make to the program! Now, let’s update +Those are all of the changes we need to make to the program! Now, let's update our tests. Start by making sure your imports and `describe` function look like this: diff --git a/content/courses/onchain-development/anchor-pdas.md b/content/courses/onchain-development/anchor-pdas.md index 9f7d80ecb..b2a55c9e3 100644 --- a/content/courses/onchain-development/anchor-pdas.md +++ b/content/courses/onchain-development/anchor-pdas.md @@ -235,7 +235,7 @@ To use `init_if_needed`, you must first enable the feature in `Cargo.toml`. anchor-lang = { version = "0.30.1", features = ["init-if-needed"] } ``` -Once you’ve enabled the feature, you can include the constraint in the +Once you've enabled the feature, you can include the constraint in the `#[account(…)]` attribute macro. The example below demonstrates using the `init_if_needed` constraint to initialize a new associated token account if one does not already exist. @@ -348,7 +348,7 @@ The `close` constraint provides a simple and secure way to close an existing account. The `close` constraint marks the account as closed at the end of the -instruction’s execution by setting its discriminator to a _special value_ called +instruction's execution by setting its discriminator to a _special value_ called `CLOSED_ACCOUNT_DISCRIMINATOR` and sends its lamports to a specified account. This _special value_ prevents the account from being reopened because any attempt to reinitialize the account will fail the discriminator check. @@ -372,7 +372,7 @@ pub struct Close<'info> { ## Lab -Let’s practice the concepts we’ve gone over in this lesson by creating a Movie +Let's practice the concepts we've gone over in this lesson by creating a Movie Review program using the Anchor framework. This program will allow users to: @@ -385,7 +385,7 @@ This program will allow users to: ### Create a new Anchor project -To begin, let’s create a new project using `anchor init`. +To begin, let's create a new project using `anchor init`. ```bash anchor init anchor-movie-review-program @@ -428,14 +428,14 @@ pub mod anchor_movie_review_program { ### MovieAccountState -First, let’s use the `#[account]` attribute macro to define the +First, let's use the `#[account]` attribute macro to define the `MovieAccountState` that will represent the data structure of the movie review accounts. As a reminder, the `#[account]` attribute macro implements various traits that help with serialization and deserialization of the account, set the discriminator for the account, and set the owner of a new account as the program ID defined in the `declare_id!` macro. -Within each movie review account, we’ll store the: +Within each movie review account, we'll store the: - `reviewer` - user creating the review - `rating` - rating for the movie @@ -504,8 +504,8 @@ more detail in the next chapter. ### Add Movie Review -Next, let’s implement the `add_movie_review` instruction. The `add_movie_review` -instruction will require a `Context` of type `AddMovieReview` that we’ll +Next, let's implement the `add_movie_review` instruction. The `add_movie_review` +instruction will require a `Context` of type `AddMovieReview` that we'll implement shortly. The instruction will require three additional arguments as instruction data @@ -515,8 +515,8 @@ provided by a reviewer: - `description` - details of the review as a `String` - `rating` - rating for the movie as a `u8` -Within the instruction logic, we’ll populate the data of the new `movie_review` -account with the instruction data. We’ll also set the `reviewer` field as the +Within the instruction logic, we'll populate the data of the new `movie_review` +account with the instruction data. We'll also set the `reviewer` field as the `initializer` account from the instruction context. We will also perform some checks, using the `require!` macro, to make sure that: @@ -568,7 +568,7 @@ pub mod anchor_movie_review_program{ } ``` -Next, let’s create the `AddMovieReview` struct that we used as the generic in +Next, let's create the `AddMovieReview` struct that we used as the generic in the instruction's context. This struct will list the accounts the `add_movie_review` instruction requires. @@ -610,7 +610,7 @@ pub struct AddMovieReview<'info> { ### Update Movie Review -Next, let’s implement the `update_movie_review` instruction with a context whose +Next, let's implement the `update_movie_review` instruction with a context whose generic type is `UpdateMovieReview`. Just as before, the instruction will require three additional arguments as @@ -620,7 +620,7 @@ instruction data provided by a reviewer: - `description` - details of the review - `rating` - rating for the movie -Within the instruction logic we’ll update the `rating` and `description` stored +Within the instruction logic we'll update the `rating` and `description` stored on the `movie_review` account. While the `title` doesn't get used in the instruction function itself, we'll @@ -654,7 +654,7 @@ pub mod anchor_movie_review_program { } ``` -Next, let’s create the `UpdateMovieReview` struct to define the accounts that +Next, let's create the `UpdateMovieReview` struct to define the accounts that the `update_movie_review` instruction needs. Since the `movie_review` account will have already been initialized by this @@ -698,7 +698,7 @@ expanding the space allocated to the account. ### Delete Movie Review -Lastly, let’s implement the `delete_movie_review` instruction to close an +Lastly, let's implement the `delete_movie_review` instruction to close an existing `movie_review` account. We'll use a context whose generic type is `DeleteMovieReview` and won't include @@ -722,7 +722,7 @@ pub mod anchor_movie_review_program { } ``` -Next, let’s implement the `DeleteMovieReview` struct. +Next, let's implement the `DeleteMovieReview` struct. ```rust #[derive(Accounts)] @@ -869,7 +869,7 @@ continuing. ## Challenge -Now it’s your turn to build something independently. Equipped with the concepts +Now it's your turn to build something independently. Equipped with the concepts introduced in this lesson, try to recreate the Student Intro program that we've used before using the Anchor framework. diff --git a/content/courses/onchain-development/intro-to-anchor-frontend.md b/content/courses/onchain-development/intro-to-anchor-frontend.md index 78443f151..7d2a419bb 100644 --- a/content/courses/onchain-development/intro-to-anchor-frontend.md +++ b/content/courses/onchain-development/intro-to-anchor-frontend.md @@ -16,7 +16,7 @@ description: - An **IDL** is a file representing the structure of a Solana program. Programs written and built using Anchor automatically generate a corresponding IDL. IDL stands for Interface Description Language. -- `@coral-xyz/anchor` is a Typescript client that includes everything you’ll +- `@coral-xyz/anchor` is a Typescript client that includes everything you'll need to interact with Anchor programs - An **Anchor `Provider`** object combines a `connection` to a cluster and a specified `wallet` to enable transaction signing @@ -288,7 +288,7 @@ The `Provider` object combines two things: - `Wallet` - a specified address used to pay for and sign transactions The `Provider` is then able to send transactions to the Solana blockchain on -behalf of a `Wallet` by including the wallet’s signature to outgoing +behalf of a `Wallet` by including the wallet's signature to outgoing transactions. When using a frontend with a Solana wallet provider, all outgoing transactions must still be approved by the user via their wallet browser extension. @@ -361,7 +361,7 @@ The `AnchorProvider` constructor takes three parameters: - `opts` - optional parameter that specifies the confirmation options, using a default setting if one is not provided -Once you’ve created the `Provider` object, you then set it as the default +Once you've created the `Provider` object, you then set it as the default provider using `setProvider`. ```typescript @@ -559,7 +559,7 @@ const accounts = await program.account.counter.fetchMultiple([ ## Lab -Let’s practice this together by building a frontend for the Counter program from +Let's practice this together by building a frontend for the Counter program from last lesson. As a reminder, the Counter program has two instructions: - `initialize` - initializes a new `Counter` account and sets the `count` to `0` @@ -576,14 +576,14 @@ This project is a simple Next.js application, created using `npx create-next-dapp` The `idl.json` file for the Counter program, and the `Initialize` and -`Increment` components we’ll be building throughout this lab. +`Increment` components we'll be building throughout this lab. #### 2. `Initialize` -To begin, let’s complete the setup to create the `useCounterProgram` hook in +To begin, let's complete the setup to create the `useCounterProgram` hook in `components/counter/counter-data-access.tsx` component. -Remember, we’ll need an instance of `Program` to use the Anchor `MethodsBuilder` +Remember, we'll need an instance of `Program` to use the Anchor `MethodsBuilder` to invoke the instructions on our program. `create-solana-dapp` already creates a `getCounterProgram` for us, which will return us the `Program` instance. @@ -607,7 +607,7 @@ const program = getCounterProgram(provider); Now that we've the program instance, we can actually invoke the program's `initialize` instruction. We'll do this using `useMutation`. -Remember, We’ll need to generate a new `Keypair` for the new `Counter` account +Remember, We'll need to generate a new `Keypair` for the new `Counter` account since we are initializing an account for the first time. ```typescript @@ -658,7 +658,7 @@ created. This method internally calls, `getProgramAccounts`. #### 4. `Increment` -Next, let’s move on the the `useCounterProgramAccount` hook. As we have earlier +Next, let's move on the the `useCounterProgramAccount` hook. As we have earlier already created `program` and `accounts` function in previous hook, we'll call the hooks to access them and not redefine them. @@ -673,7 +673,7 @@ export function useCounterProgramAccount({ account }: { account: PublicKey }) { ``` -Next, let’s use the Anchor `MethodsBuilder` to build a new instruction to invoke +Next, let's use the Anchor `MethodsBuilder` to build a new instruction to invoke the `increment` instruction. Again, Anchor can infer the `user` account from the wallet so we only need to include the `counter` account. @@ -732,11 +732,11 @@ continuing. ## Challenge -Now it’s your turn to build something independently. Building on top of what -we’ve done in the lab, try to create a new component in the frontend that +Now it's your turn to build something independently. Building on top of what +we've done in the lab, try to create a new component in the frontend that implements a button to decrements the counter. -Before building the component in the frontend, you’ll first need to: +Before building the component in the frontend, you'll first need to: 1. Build and deploy a new program that implements a `decrement` instruction 2. Update the IDL file in the frontend with the one from your new program diff --git a/content/courses/onchain-development/intro-to-anchor.md b/content/courses/onchain-development/intro-to-anchor.md index 2d3305a34..efda0cd27 100644 --- a/content/courses/onchain-development/intro-to-anchor.md +++ b/content/courses/onchain-development/intro-to-anchor.md @@ -42,9 +42,9 @@ Anchor uses macros and traits to generate boilerplate Rust code for you. These provide a clear structure to your program so you can more easily reason about your code. The main high-level macros and attributes are: -- `declare_id` - a macro for declaring the program’s onchain address +- `declare_id` - a macro for declaring the program's onchain address - `#[program]` - an attribute macro used to denote the module containing the - program’s instruction logic + program's instruction logic - `Accounts` - a trait applied to structs representing the list of accounts required for an instruction - `#[account]` - an attribute macro used to define custom account types for the @@ -183,7 +183,7 @@ You may have noticed in the previous example that one of the accounts in was of type `Program`. Anchor provides a number of account types that can be used to represent -accounts. Each type implements different account validation. We’ll go over a few +accounts. Each type implements different account validation. We'll go over a few of the common types you may encounter, but be sure to look through the [full list of account types](https://docs.rs/anchor-lang/latest/anchor_lang/accounts/index.html). @@ -329,8 +329,8 @@ from the first 8 bytes of the SHA256 hash of the account type's name. The first 8 bytes are reserved for the account discriminator when implementing account serialization traits (which is almost always in an Anchor program). -As a result, any calls to `AccountDeserialize`’s `try_deserialize` will check -this discriminator. If it doesn’t match, an invalid account was given, and the +As a result, any calls to `AccountDeserialize`'s `try_deserialize` will check +this discriminator. If it doesn't match, an invalid account was given, and the account deserialization will exit with an error. The `#[account]` attribute also implements the `Owner` trait for a struct using @@ -500,7 +500,7 @@ pub struct Counter { #### 3. Implement `Context` type `Initialize` -Next, using the `#[derive(Accounts)]` macro, let’s implement the `Initialize` +Next, using the `#[derive(Accounts)]` macro, let's implement the `Initialize` type that lists and validates the accounts used by the `initialize` instruction. It'll need the following accounts: @@ -522,10 +522,10 @@ pub struct Initialize<'info> { #### 4. Add the `initialize` instruction -Now that we have our `Counter` account and `Initialize` type , let’s implement +Now that we have our `Counter` account and `Initialize` type , let's implement the `initialize` instruction within `#[program]`. This instruction requires a `Context` of type `Initialize` and takes no additional instruction data. In the -instruction logic, we are simply setting the `counter` account’s `count` field +instruction logic, we are simply setting the `counter` account's `count` field to `0`. ```rust @@ -540,14 +540,14 @@ pub fn initialize(ctx: Context) -> Result<()> { #### 5. Implement `Context` type `Update` -Now, using the `#[derive(Accounts)]` macro again, let’s create the `Update` type +Now, using the `#[derive(Accounts)]` macro again, let's create the `Update` type that lists the accounts that the `increment` instruction requires. It'll need the following accounts: - `counter` - an existing counter account to increment - `user` - payer for the transaction fee -Again, we’ll need to specify any constraints using the `#[account(..)]` +Again, we'll need to specify any constraints using the `#[account(..)]` attribute: ```rust @@ -561,11 +561,11 @@ pub struct Update<'info> { #### 6. Add `increment` instruction -Lastly, within `#[program]`, let’s implement an `increment` instruction to +Lastly, within `#[program]`, let's implement an `increment` instruction to increment the `count` once a `counter` account is initialized by the first instruction. This instruction requires a `Context` of type `Update` (implemented in the next step) and takes no additional instruction data. In the instruction -logic, we are simply incrementing an existing `counter` account’s `count` field +logic, we are simply incrementing an existing `counter` account's `count` field by `1`. ```rust @@ -713,7 +713,7 @@ if you need some more time with it. ## Challenge -Now it’s your turn to build something independently. Because we're starting with +Now it's your turn to build something independently. Because we're starting with simple programs, yours will look almost identical to what we just created. It's useful to try and get to the point where you can write it from scratch without referencing prior code, so try not to copy and paste here. diff --git a/content/courses/program-optimization/program-architecture.md b/content/courses/program-optimization/program-architecture.md index f18289284..52056d9a7 100644 --- a/content/courses/program-optimization/program-architecture.md +++ b/content/courses/program-optimization/program-architecture.md @@ -31,7 +31,7 @@ with the code. And you, as the designer, need to think about: These questions are even more important when developing for a blockchain. Not only are resources more limited than in a typical computing environment, you're -also dealing with people’s assets; code has a cost now. +also dealing with people's assets; code has a cost now. We'll leave most of the asset handling discussion to [security course lesson](/content/courses/program-security/security-intro), but @@ -46,10 +46,10 @@ considerations that should be taken when creating Solana programs. ### Dealing With Large Accounts -In modern application programming, we don’t often have to think about the size +In modern application programming, we don't often have to think about the size of the data structures we are using. You want to make a string? You can put a 4000 character limit on it if you want to avoid abuse, but it's probably not an -issue. Want an integer? They’re pretty much always 32-bit for convenience. +issue. Want an integer? They're pretty much always 32-bit for convenience. In high level languages, you are in the data-land-o-plenty! Now, in Solana land, we pay per byte stored (rent) and have limits on heap, stack and account sizes. @@ -63,7 +63,7 @@ we are going to be looking at in this section: 2. When operating on larger data, we run into [Stack](https://solana.com/docs/onchain-programs/faq#stack) and [Heap](https://solana.com/docs/onchain-programs/faq#heap-size) constraints - - to get around these, we’ll look at using Box and Zero-Copy. + to get around these, we'll look at using Box and Zero-Copy. #### Sizes @@ -77,10 +77,10 @@ used to be an actual thing, but now there's an enforced minimum rent exemption. You can read about it in [the Solana documentation](https://solana.com/docs/intro/rent). -Rent etymology aside, putting data on the blockchain can be expensive. It’s why +Rent etymology aside, putting data on the blockchain can be expensive. It's why NFT attributes and associated files, like the image, are stored offchain. You ultimately want to strike a balance that leaves your program highly functional -without becoming so expensive that your users don’t want to pay to open the data +without becoming so expensive that your users don't want to pay to open the data account. The first thing you need to know before you can start optimizing for space in @@ -109,7 +109,7 @@ from the Knowing these, start thinking about little optimizations you might take in a program. For example, if you have an integer field that will only ever reach -100, don’t use a u64/i64, use a u8. Why? Because a u64 takes up 8 bytes, with a +100, don't use a u64/i64, use a u8. Why? Because a u64 takes up 8 bytes, with a max value of 2^64 or 1.84 \* 10^19. Thats a waste of space since you only need to accommodate numbers up to 100. A single byte will give you a max value of 255 which, in this case, would be sufficient. Similarly, there's no reason to use i8 @@ -127,8 +127,8 @@ If you want to read more about Anchor sizes, take a look at #### Box -Now that you know a little bit about data sizes, let’s skip forward and look at -a problem you’ll run into if you want to deal with larger data accounts. Say you +Now that you know a little bit about data sizes, let's skip forward and look at +a problem you'll run into if you want to deal with larger data accounts. Say you have the following data account: ```rust @@ -144,7 +144,7 @@ pub struct SomeFunctionContext<'info> { ``` If you try to pass `SomeBigDataStruct` into the function with the -`SomeFunctionContext` context, you’ll run into the following compiler warning: +`SomeFunctionContext` context, you'll run into the following compiler warning: `// Stack offset of XXXX exceeded max offset of 4096 by XXXX bytes, please minimize large stack variables` @@ -174,7 +174,7 @@ pub struct SomeFunctionContext<'info> { In Anchor, **`Box`** is used to allocate the account to the Heap, not the Stack. Which is great since the Heap gives us 32KB to work with. The best part -is you don’t have to do anything different within the function. All you need to +is you don't have to do anything different within the function. All you need to do is add `Box<…>` around all of your big data accounts. But Box is not perfect. You can still overflow the stack with sufficiently large @@ -224,7 +224,7 @@ To understand what's happening here, take a look at the > heap size. When using borsh, the account has to be copied and deserialized > into a new data structure and thus is constrained by stack and heap limits > imposed by the BPF VM. With zero copy deserialization, all bytes from the -> account’s backing `RefCell<&mut [u8]>` are simply re-interpreted as a +> account's backing `RefCell<&mut [u8]>` are simply re-interpreted as a > reference to the data structure. No allocations or copies necessary. Hence the > ability to get around stack and heap limitations. @@ -244,7 +244,7 @@ pub struct ConceptZeroCopy<'info> { } ``` -Instead, your client has to create the large account and pay for it’s rent in a +Instead, your client has to create the large account and pay for it's rent in a separate instruction. ```typescript @@ -275,12 +275,12 @@ The second caveat is that your'll have to call one of the following methods from inside your rust instruction function to load the account: - `load_init` when first initializing an account (this will ignore the missing - account discriminator that gets added only after the user’s instruction code) + account discriminator that gets added only after the user's instruction code) - `load` when the account is not mutable - `load_mut` when the account is mutable For example, if you wanted to init and manipulate the `SomeReallyBigDataStruct` -from above, you’d call the following in the function +from above, you'd call the following in the function ```rust let some_really_big_data = &mut ctx.accounts.some_really_big_data.load_init()?; @@ -296,7 +296,7 @@ Box and Zero-Copy in vanilla Solana. ### Dealing with Accounts -Now that you know the nuts and bolts of space consideration on Solana, let’s +Now that you know the nuts and bolts of space consideration on Solana, let's look at some higher level considerations. In Solana, everything is an account, so for the next couple sections we'll look at some account architecture concepts. @@ -320,7 +320,7 @@ the location of `id` on the memory map. To make this more clear, observe what this account's data looks like onchain when `flags` has four items in the vector vs eight items. If you were to call -`solana account ACCOUNT_KEY` you’d get a data dump like the following: +`solana account ACCOUNT_KEY` you'd get a data dump like the following: ```rust 0000: 74 e4 28 4e d9 ec 31 0a -> Account Discriminator (8) @@ -367,7 +367,7 @@ const states = await program.account.badState.all([ However, if you wanted to query by the `id`, you wouldn't know what to put for the `offset` since the location of `id` is variable based on the length of -`flags`. That doesn’t seem very helpful. IDs are usually there to help with +`flags`. That doesn't seem very helpful. IDs are usually there to help with queries! The simple fix is to flip the order. ```rust @@ -453,7 +453,7 @@ add in some `for_future_use` bytes. #### Data Optimization The idea here is to be aware of wasted bits. For example, if you have a field -that represents the month of the year, don’t use a `u64`. There will only ever +that represents the month of the year, don't use a `u64`. There will only ever be 12 months. Use a `u8`. Better yet, use a `u8` Enum and label the months. To get even more aggressive on bit savings, be careful with booleans. Look at @@ -536,10 +536,10 @@ Depending on the seeding you can create all sorts of relationships: program. For example, if your program needs a lookup table, you could seed it with `seeds=[b"Lookup"]`. Just be careful to provide appropriate access restrictions. -- One-Per-Owner - Say you’re creating a video game player account and you only - want one player account per wallet. Then you’d seed the account with - `seeds=[b"PLAYER", owner.key().as_ref()]`. This way, you’ll always know where - to look for a wallet’s player account **and** there can only ever be one of +- One-Per-Owner - Say you're creating a video game player account and you only + want one player account per wallet. Then you'd seed the account with + `seeds=[b"PLAYER", owner.key().as_ref()]`. This way, you'll always know where + to look for a wallet's player account **and** there can only ever be one of them. - Multiple-Per-Owner - Okay, but what if you want multiple accounts per wallet? Say you want to mint podcast episodes. Then you could seed your `Podcast` @@ -555,8 +555,8 @@ From there you can mix and match in all sorts of clever ways! But the preceding list should give you enough to get started. The big benefit of really paying attention to this aspect of design is answering -the ‘indexing’ problem. Without PDAs and seeds, all users would have to keep -track of all of the addresses of all of the accounts they’ve ever used. This +the ‘indexing' problem. Without PDAs and seeds, all users would have to keep +track of all of the addresses of all of the accounts they've ever used. This isn't feasible for users, so they'd have to depend on a centralized entity to store their addresses in a database. In many ways that defeats the purpose of a globally distributed network. PDAs are a much better solution. @@ -604,11 +604,11 @@ you can avoid concurrency issues and really boost your program's performance. #### Shared Accounts -If you’ve been around crypto for a while, you may have experienced a big NFT +If you've been around crypto for a while, you may have experienced a big NFT mint event. A new NFT project is coming out, everyone is really excited for it, -and then the candymachine goes live. It’s a mad dash to click +and then the candymachine goes live. It's a mad dash to click `accept transaction` as fast as you can. If you were clever, you may have -written a bot to enter in the transactions faster that the website’s UI could. +written a bot to enter in the transactions faster that the website's UI could. This mad rush to mint creates a lot of failed transactions. But why? Because everyone is trying to write data to the same Candy Machine account. @@ -634,7 +634,7 @@ Bob -- pays --- | ``` Since both of these transactions write to Carol's token account, only one of -them can go through at a time. Fortunately, Solana is wicked fast, so it’ll +them can go through at a time. Fortunately, Solana is wicked fast, so it'll probably seem like they get paid at the same time. But what happens if more than just Alice and Bob try to pay Carol? @@ -658,7 +658,7 @@ trying to write data to the same account all at once. Imagine you create a super popular program and you want to take a fee on every transaction you process. For accounting reasons, you want all of those fees to go to one wallet. With that setup, on a surge of users, your protocol will -become slow and or become unreliable. Not great. So what’s the solution? +become slow and or become unreliable. Not great. So what's the solution? Separate the data transaction from the fee transaction. For example, imagine you have a data account called `DonationTally`. Its only @@ -675,7 +675,7 @@ pub struct DonationTally { } ``` -First let’s look at the suboptimal solution. +First let's look at the suboptimal solution. ```rust pub fn run_concept_shared_account_bottleneck(ctx: Context, lamports_to_donate: u64) -> Result<()> { @@ -707,7 +707,7 @@ pub fn run_concept_shared_account_bottleneck(ctx: Context) -> Result<()> { #### 8. Attack Monster -Now! Let’s attack those monsters and start gaining some exp! +Now! Let's attack those monsters and start gaining some exp! The logic here is as follows: @@ -1273,10 +1273,10 @@ incrementing experience and kill counts. The `saturating_add` function ensures the number will never overflow. Say the `kills` was a u8 and my current kill count was 255 (0xFF). If I killed another and added normally, e.g. `255 + 1 = 0 (0xFF + 0x01 = 0x00) = 0`, the kill count -would end up as 0. `saturating_add` will keep it at its max if it’s about to +would end up as 0. `saturating_add` will keep it at its max if it's about to roll over, so `255 + 1 = 255`. The `checked_add` function will throw an error if -it’s about to overflow. Keep this in mind when doing math in Rust. Even though -`kills` is a u64 and will never roll with it’s current programming, it’s good +it's about to overflow. Keep this in mind when doing math in Rust. Even though +`kills` is a u64 and will never roll with it's current programming, it's good practice to use safe math and consider roll-overs. ```rust @@ -1452,9 +1452,9 @@ anchor build #### Testing -Now, let’s see this baby work! +Now, let's see this baby work! -Let’s set up the `tests/rpg.ts` file. We will be filling out each test in turn. +Let's set up the `tests/rpg.ts` file. We will be filling out each test in turn. But first, we needed to set up a couple of different accounts. Mainly the `gameMaster` and the `treasury`. @@ -1531,7 +1531,7 @@ anchor test some `.pnp.*` files and no `node_modules`, you may want to call `rm -rf .pnp.*` followed by `npm i` and then `yarn install`. That should work. -Now that everything is running, let’s implement the `Create Player`, +Now that everything is running, let's implement the `Create Player`, `Spawn Monster`, and `Attack Monster` tests. Run each test as you complete them to make sure things are running smoothly. @@ -1753,7 +1753,7 @@ optimization adds up! ## Challenge -Now it’s your turn to practice independently. Go back through the lab code +Now it's your turn to practice independently. Go back through the lab code looking for additional optimizations and/or expansion you can make. Think through new systems and features you would add and how you would optimize them. diff --git a/content/courses/program-optimization/program-configuration.md b/content/courses/program-optimization/program-configuration.md index ac844a33c..58760c4b0 100644 --- a/content/courses/program-optimization/program-configuration.md +++ b/content/courses/program-optimization/program-configuration.md @@ -27,7 +27,7 @@ description: [`cfg!` **macro**](https://doc.rust-lang.org/std/macro.cfg.html) to compile different code paths based on the enabled features. - For environment-like variables post-deployment, create program accounts and - admin-only instructions accessible by the program’s upgrade authority. + admin-only instructions accessible by the program's upgrade authority. ## Lesson @@ -59,7 +59,7 @@ effective solution involves a combination of two techniques: ### Native Rust Feature Flags One of the simplest ways to create environments is to use Rust features. -Features are defined in the `[features]` table of the program’s `Cargo.toml` +Features are defined in the `[features]` table of the program's `Cargo.toml` file. You may define multiple features for different use cases. ```toml diff --git a/content/courses/program-optimization/rust-macros.md b/content/courses/program-optimization/rust-macros.md index 37dd55142..6f9e106a1 100644 --- a/content/courses/program-optimization/rust-macros.md +++ b/content/courses/program-optimization/rust-macros.md @@ -798,9 +798,9 @@ pub struct Config { ### 3. Define the custom macro Now, in the `custom-macro/src/lib.rs` file, let's add our new macro's -declaration. In this file, we’ll use the `parse_macro_input!` macro to parse the +declaration. In this file, we'll use the `parse_macro_input!` macro to parse the input `TokenStream` and extract the `ident` and `data` fields from a -`DeriveInput` struct. Then, we’ll use the `eprintln!` macro to print the values +`DeriveInput` struct. Then, we'll use the `eprintln!` macro to print the values of `ident` and `data`. We will now use `TokenStream::new()` to return an empty `TokenStream`. @@ -834,7 +834,7 @@ input `TokenStream` parses correctly, remove the `eprintln!` statements. ### 4. Get the struct's fields -Next, let’s use `match` statements to get the named fields from the `data` of +Next, let's use `match` statements to get the named fields from the `data` of the struct. Then we'll use the `eprintln!` macro to print the values of the fields. @@ -867,7 +867,7 @@ correctly, you can remove the `eprintln!` statement. ### 5. Build update instructions -Next, let’s iterate over the fields of the struct and generate an update +Next, let's iterate over the fields of the struct and generate an update instruction for each field. The instruction will be generated using the `quote!` macro, including the field's name and type and a new function name for the update instruction. @@ -909,7 +909,7 @@ pub fn instruction_builder(input: TokenStream) -> TokenStream { ### 6. Return new `TokenStream` -Lastly, let’s use the `quote!` macro to generate an implementation for the +Lastly, let's use the `quote!` macro to generate an implementation for the struct with the name specified by the `ident` variable. The implementation includes the update instructions generated for each field in the struct. The generated code is then converted to a `TokenStream` using the `into()` method diff --git a/content/courses/program-security/account-data-matching.md b/content/courses/program-security/account-data-matching.md index f9963a123..baff3b5bf 100644 --- a/content/courses/program-security/account-data-matching.md +++ b/content/courses/program-security/account-data-matching.md @@ -80,7 +80,7 @@ pub struct AdminConfig { The basic Rust approach to solve this problem is to simply compare the passed in `admin` key to the `admin` key stored in the `admin_config` account, throwing an -error if they don’t match. +error if they don't match. ```rust if ctx.accounts.admin.key() != ctx.accounts.admin_config.admin { @@ -172,7 +172,7 @@ pub struct AdminConfig { Alternatively, you can use `constraint` to manually add an expression that must evaluate to true in order for execution to continue. This is useful when for -some reason naming can’t be consistent or when you need a more complex +some reason naming can't be consistent or when you need a more complex expression to fully validate the incoming data. ```rust @@ -191,9 +191,9 @@ pub struct UpdateAdmin<'info> { ## Lab -For this lab we’ll create a simple “vault” program similar to the program we +For this lab we'll create a simple “vault” program similar to the program we used in the Signer Authorization lesson and the Owner Check lesson. Similar to -those labs, we’ll show in this lab how a missing data validation check could +those labs, we'll show in this lab how a missing data validation check could allow the vault to be drained. #### 1. Starter @@ -212,7 +212,7 @@ program. This allows the `vault` account to sign for the transfer of tokens from the token account. The `insecure_withdraw` instruction transfers all the tokens in the `vault` -account’s token account to a `withdraw_destination` token account. +account's token account to a `withdraw_destination` token account. Notice that this instruction \***\*does\*\*** have a signer check for `authority` and an owner check for `vault`. However, nowhere in the account @@ -315,8 +315,8 @@ pub struct Vault { #### 2. Test `insecure_withdraw` instruction -To prove that this is a problem, let’s write a test where an account other than -the vault’s `authority` tries to withdraw from the vault. +To prove that this is a problem, let's write a test where an account other than +the vault's `authority` tries to withdraw from the vault. The test file includes the code to invoke the `initialize_vault` instruction using the provider wallet as the `authority` and then mints 100 tokens to the @@ -363,14 +363,14 @@ account-data-matching #### 3. Add `secure_withdraw` instruction -Let’s go implement a secure version of this instruction called +Let's go implement a secure version of this instruction called `secure_withdraw`. This instruction will be identical to the `insecure_withdraw` instruction, -except we’ll use the `has_one` constraint in the account validation struct +except we'll use the `has_one` constraint in the account validation struct (`SecureWithdraw`) to check that the `authority` account passed into the instruction matches the `authority` account on the `vault` account. That way -only the correct authority account can withdraw the vault’s tokens. +only the correct authority account can withdraw the vault's tokens. ```rust use anchor_lang::prelude::*; @@ -429,7 +429,7 @@ pub struct SecureWithdraw<'info> { #### 4. Test `secure_withdraw` instruction -Now let’s test the `secure_withdraw` instruction with two tests: one that uses +Now let's test the `secure_withdraw` instruction with two tests: one that uses `walletFake` as the authority and one that uses `wallet` as the authority. We expect the first invocation to return an error and the second to succeed. diff --git a/content/courses/program-security/arbitrary-cpi.md b/content/courses/program-security/arbitrary-cpi.md index b5302e7d8..edb15793d 100644 --- a/content/courses/program-security/arbitrary-cpi.md +++ b/content/courses/program-security/arbitrary-cpi.md @@ -3,7 +3,7 @@ title: Arbitrary CPI objectives: - Explain the security risks associated with invoking a CPI to an unknown program - - Showcase how Anchor’s CPI module prevents this from happening when making a + - Showcase how Anchor's CPI module prevents this from happening when making a CPI from one Anchor program to another - Safely and securely make a CPI from an Anchor program to an arbitrary non-anchor program @@ -35,7 +35,7 @@ program results in your program performing CPIs to arbitrary programs. This lack of program checks creates an opportunity for a malicious user to pass in a different program than expected, causing the original program to call an -instruction handler on this mystery program. There’s no telling what the +instruction handler on this mystery program. There's no telling what the consequences of this CPI could be. It depends on the program logic (both that of the original program and the unexpected program), as well as what other accounts are passed into the original instruction handler. @@ -120,8 +120,8 @@ pub fn cpi_secure(ctx: Context, amount: u64) -> ProgramResult { Now, if an attacker passes in a different token program, the instruction handler will return the `ProgramError::IncorrectProgramId` error. -Depending on the program you’re invoking with your CPI, you can either hard code -the address of the expected program ID or use the program’s Rust crate to get +Depending on the program you're invoking with your CPI, you can either hard code +the address of the expected program ID or use the program's Rust crate to get the address of the program, if available. In the example above, the `spl_token` crate provides the address of the SPL Token Program. @@ -133,7 +133,7 @@ learned in a [previous lesson of Anchor CPI](/content/courses/onchain-development/anchor-cpi.md) that Anchor can automatically generate CPI modules to make CPIs into the program simpler. These modules also enhance security by verifying the public key of the -program that’s passed into one of its public instructions. +program that's passed into one of its public instructions. Every Anchor program uses the `declare_id()` macro to define the address of the program. When a CPI module is generated for a specific program, it uses the @@ -190,8 +190,8 @@ Like the example above, Anchor has created a few that allow you to issue CPIs into them as if they were Anchor programs. -Additionally and depending on the program you’re making the CPI to, you may be -able to use Anchor’s +Additionally and depending on the program you're making the CPI to, you may be +able to use Anchor's [`Program` account type](https://docs.rs/anchor-lang/latest/anchor_lang/accounts/program/struct.Program.html) to validate the passed-in program in your account validation struct. Between the [`anchor_lang`](https://docs.rs/anchor-lang/latest/anchor_lang) and [`anchor_spl`](https://docs.rs/anchor_spl/latest/) crates, diff --git a/content/courses/program-security/bump-seed-canonicalization.md b/content/courses/program-security/bump-seed-canonicalization.md index e87e288fe..e2ea4d93f 100644 --- a/content/courses/program-security/bump-seed-canonicalization.md +++ b/content/courses/program-security/bump-seed-canonicalization.md @@ -3,7 +3,7 @@ title: Bump Seed Canonicalization objectives: - Explain the vulnerabilities associated with using PDAs derived without the canonical bump - - Initialize a PDA using Anchor’s `seeds` and `bump` constraints to + - Initialize a PDA using Anchor's `seeds` and `bump` constraints to automatically use the canonical bump - Use Anchor's `seeds` and `bump` constraints to ensure the canonical bump is always used in future instructions when deriving a PDA @@ -30,7 +30,7 @@ description: - Anchor allows you to **specify a bump** with the `bump = ` constraint when verifying the address of a PDA - Because `find_program_address` can be expensive, best practice is to store the - derived bump in an account’s data field to be referenced later on when + derived bump in an account's data field to be referenced later on when re-deriving the address for verification ```rust #[derive(Accounts)] @@ -151,12 +151,12 @@ pub fn set_value_secure( } ``` -### Use Anchor’s `seeds` and `bump` constraints +### Use Anchor's `seeds` and `bump` constraints Anchor provides a convenient way to derive PDAs in the account validation struct using the `seeds` and `bump` constraints. These can even be combined with the `init` constraint to initialize the account at the intended address. To protect -the program from the vulnerability we’ve been discussing throughout this lesson, +the program from the vulnerability we've been discussing throughout this lesson, Anchor does not even allow you to initialize an account at a PDA using anything but the canonical bump. Instead, it uses `find_program_address` to derive the PDA and subsequently performs the initialization. @@ -280,7 +280,7 @@ If you don't specify the bump on the `bump` constraint, Anchor will still use `find_program_address` to derive the PDA using the canonical bump. As a consequence, your instruction will incur a variable amount of compute budget. Programs that are already at risk of exceeding their compute budget should use -this with care since there is a chance that the program’s budget may be +this with care since there is a chance that the program's budget may be occasionally and unpredictably exceeded. On the other hand, if you only need to verify the address of a PDA passed in diff --git a/content/courses/program-security/closing-accounts.md b/content/courses/program-security/closing-accounts.md index 2f62f0c9c..d4a9b28de 100644 --- a/content/courses/program-security/closing-accounts.md +++ b/content/courses/program-security/closing-accounts.md @@ -33,7 +33,7 @@ While it sounds simple, closing accounts properly can be tricky. There are a number of ways an attacker could circumvent having the account closed if you don't follow specific steps. -To get a better understanding of these attack vectors, let’s explore each of +To get a better understanding of these attack vectors, let's explore each of these scenarios in depth. ### Insecure account closing @@ -45,10 +45,10 @@ account. This resets the owner from the owning program to the system program. Take a look at the example below. The instruction requires two accounts: 1. `account_to_close` - the account to be closed -2. `destination` - the account that should receive the closed account’s lamports +2. `destination` - the account that should receive the closed account's lamports The program logic is intended to close an account by simply increasing the -`destination` account’s lamports by the amount stored in the `account_to_close` +`destination` account's lamports by the amount stored in the `account_to_close` and setting the `account_to_close` lamports to 0. With this program, after a full transaction is processed, the `account_to_close` will be garbage collected by the runtime. @@ -238,7 +238,7 @@ Fortunately, Anchor makes all of this much simpler with the `#[account(close = )]` constraint. This constraint handles everything required to securely close an account: -1. Transfers the account’s lamports to the given `` +1. Transfers the account's lamports to the given `` 2. Zeroes out the account data 3. Sets the account discriminator to the `CLOSED_ACCOUNT_DISCRIMINATOR` variant @@ -258,8 +258,8 @@ pub struct CloseAccount { } ``` -The `force_defund` instruction is an optional addition that you’ll have to -implement on your own if you’d like to utilize it. +The `force_defund` instruction is an optional addition that you'll have to +implement on your own if you'd like to utilize it. ## Lab diff --git a/content/courses/program-security/duplicate-mutable-accounts.md b/content/courses/program-security/duplicate-mutable-accounts.md index c82a49f09..b52f1e29e 100644 --- a/content/courses/program-security/duplicate-mutable-accounts.md +++ b/content/courses/program-security/duplicate-mutable-accounts.md @@ -172,7 +172,7 @@ pub struct User { ## Lab -Let’s practice by creating a simple Rock Paper Scissors program to demonstrate +Let's practice by creating a simple Rock Paper Scissors program to demonstrate how failing to check for duplicate mutable accounts can cause undefined behavior within your program. @@ -356,9 +356,9 @@ pub struct RockPaperScissorsSecure<'info> { ### Test rock_paper_scissors_shoot_secure instruction -To test the `rock_paper_scissors_shoot_secure` instruction, we’ll invoke the -instruction twice. First, we’ll invoke the instruction using two different -player accounts to check that the instruction works as intended. Then, we’ll +To test the `rock_paper_scissors_shoot_secure` instruction, we'll invoke the +instruction twice. First, we'll invoke the instruction using two different +player accounts to check that the instruction works as intended. Then, we'll invoke the instruction using the `playerOne.publicKey` as both player accounts, which we expect to fail. diff --git a/content/courses/program-security/owner-checks.md b/content/courses/program-security/owner-checks.md index a30103dc8..99466ac52 100644 --- a/content/courses/program-security/owner-checks.md +++ b/content/courses/program-security/owner-checks.md @@ -645,7 +645,7 @@ debugging. Ensuring account ownership checks is critical to avoid security vulnerabilities. This example demonstrates how simple it is to implement proper validation, but -it’s vital to always verify which accounts are owned by specific programs. +it's vital to always verify which accounts are owned by specific programs. If you'd like to review the final solution code, it's available on the [`solution` branch of the repository](https://github.com/solana-developers/owner-checks/tree/solution). diff --git a/content/courses/program-security/pda-sharing.md b/content/courses/program-security/pda-sharing.md index a57bf4a95..7b70de4a7 100644 --- a/content/courses/program-security/pda-sharing.md +++ b/content/courses/program-security/pda-sharing.md @@ -3,7 +3,7 @@ title: PDA Sharing objectives: - Explain the security risks associated with PDA sharing - Derive PDAs that have discrete authority domains - - Use Anchor’s `seeds` and `bump` constraints to validate PDA accounts + - Use Anchor's `seeds` and `bump` constraints to validate PDA accounts description: "Understand the potential problems of reusing PDAs by using user and domain specific PDAs." @@ -15,7 +15,7 @@ description: possibility of users accessing data and funds that don't belong to them - Prevent the same PDA from being used for multiple accounts by using seeds that are user and/or domain-specific -- Use Anchor’s `seeds` and `bump` constraints to validate that a PDA is derived +- Use Anchor's `seeds` and `bump` constraints to validate that a PDA is derived using the expected seeds and bump ## Lesson @@ -155,7 +155,7 @@ pub struct TokenPool { } ``` -### Anchor’s seeds and bump Constraints +### Anchor's seeds and bump Constraints PDAs can be used as both the address of an account and allow programs to sign for the PDAs they own. @@ -165,7 +165,7 @@ the address of the `pool` account and the owner of the `vault` token account. This means that only the `pool` account associated with the correct `vault` and `withdraw_destination` can be used in the `withdraw_tokens` instruction handler. -You can use Anchor’s `seeds` and `bump` constraints with the +You can use Anchor's `seeds` and `bump` constraints with the [`#[account(...)]`](https://www.anchor-lang.com/docs/account-constraints) attribute to validate the `pool` account PDA. Anchor derives a PDA using the `seeds` and `bump` specified and compares it against the account passed into the @@ -234,8 +234,8 @@ pub struct TokenPool { ## Lab -Let’s practice by creating a simple program to demonstrate how PDA sharing can -allow an attacker to withdraw tokens that don’t belong to them. This lab expands +Let's practice by creating a simple program to demonstrate how PDA sharing can +allow an attacker to withdraw tokens that don't belong to them. This lab expands on the examples above by including the instruction handlers to initialize the required program accounts. @@ -517,7 +517,7 @@ it("prevents secure withdrawal to incorrect destination", async () => { ``` Lastly, since the `pool` account is a PDA derived using the -`withdraw_destination` token account, we can’t create a fake `pool` account +`withdraw_destination` token account, we can't create a fake `pool` account using the same PDA. Add one more test showing that the new `initialize_pool_secure` instruction handler won't let an attacker put in the wrong vault. diff --git a/content/courses/program-security/security-intro.md b/content/courses/program-security/security-intro.md index 468be61db..f3a17c022 100644 --- a/content/courses/program-security/security-intro.md +++ b/content/courses/program-security/security-intro.md @@ -10,7 +10,7 @@ description: ## Overview This course aims to introduce you to a range of common security exploits unique -to Solana development. We’ve modeled this course heavily on Coral's +to Solana development. We've modeled this course heavily on Coral's [Sealevel Attacks](https://github.com/coral-xyz/sealevel-attacks) repository. Program security is covered in our @@ -32,7 +32,7 @@ While the first few lessons in this course cover topics similar to those in the [Anchor course](/content/courses/onchain-development/intro-to-anchor.md) or [Program Security lesson](/content/courses/native-onchain-development/program-security.md) in the [Native Course](/content/courses/native-onchain-development.md), but as -you progress, you’ll encounter new types of attacks. We encourage you to explore +you progress, you'll encounter new types of attacks. We encourage you to explore all of them. diff --git a/content/courses/program-security/signer-auth.md b/content/courses/program-security/signer-auth.md index 897291264..34777b07f 100644 --- a/content/courses/program-security/signer-auth.md +++ b/content/courses/program-security/signer-auth.md @@ -3,8 +3,8 @@ title: Signer Authorization objectives: - Explain the security risks of not performing appropriate signer checks. - Implement signer checks using native Rust - - Implement signer checks using Anchor’s `Signer` type - - Implement signer checks using Anchor’s `#[account(signer)]` constraint + - Implement signer checks using Anchor's `Signer` type + - Implement signer checks using Anchor's `#[account(signer)]` constraint description: "Ensure instructions are only executed by authorized accounts by implementing signer checks." @@ -52,7 +52,7 @@ the instruction handler matches the `authority` field on the `vault` account, there is no verification that the `authority` account actually authorized the transaction. -This omission allows an attacker to pass in the `authority` account’s public key +This omission allows an attacker to pass in the `authority` account's public key and their own public key as the `new_authority` account, effectively reassigning themselves as the new authority of the `vault` account. Once they have control, they can interact with the program as the new authority. @@ -146,7 +146,7 @@ pub struct Vault { } ``` -### Use Anchor’s Signer Account Type +### Use Anchor's Signer Account Type Incorporating the [`signer`](https://docs.rs/anchor-lang/latest/anchor_lang/accounts/signer/struct.Signer.html) @@ -195,7 +195,7 @@ When you use the `Signer` type, no other ownership or type checks are performed. -### Using Anchor’s `#[account(signer)]` Constraint +### Using Anchor's `#[account(signer)]` Constraint While the `Signer` account type is useful, it doesn't perform other ownership or type checks, limiting its use in instruction handler logic. The @@ -277,7 +277,7 @@ authority. The `vault` PDA will be the authority of the token account, enabling the program to sign off on token transfers. The `insecure_withdraw` instruction handler transfers tokens from the `vault` -account’s token account to a `withdraw_destination` token account. However, the +account's token account to a `withdraw_destination` token account. However, the `authority` account in the `InsecureWithdraw` struct is of type `UncheckedAccount`, a wrapper around `AccountInfo` that explicitly indicates the account is unchecked. diff --git a/content/courses/solana-pay/solana-pay.md b/content/courses/solana-pay/solana-pay.md index 7cd0baebe..b8b8a0cf9 100644 --- a/content/courses/solana-pay/solana-pay.md +++ b/content/courses/solana-pay/solana-pay.md @@ -603,7 +603,7 @@ async function buildTransaction( #### 6. Implement the `buildTransaction` function -Next, let’s implement the `buildTransaction` function. It should build, +Next, let's implement the `buildTransaction` function. It should build, partially sign, and return the check-in transaction. The sequence of items it needs to perform is: @@ -743,7 +743,7 @@ async function fetchUserState(account: PublicKey): Promise { #### 8. Implement `verifyCorrectLocation` function -Next, let’s implement the `verifyCorrectLocation` helper function. This function +Next, let's implement the `verifyCorrectLocation` helper function. This function is used to verify that a user is at the correct location in a scavenger hunt game. diff --git a/content/courses/state-compression/compressed-nfts.md b/content/courses/state-compression/compressed-nfts.md index 461bec325..e0a7ba59d 100644 --- a/content/courses/state-compression/compressed-nfts.md +++ b/content/courses/state-compression/compressed-nfts.md @@ -1,7 +1,7 @@ --- title: Compressed NFTs objectives: - - Create a compressed NFT collection using Metaplex’s Bubblegum program + - Create a compressed NFT collection using Metaplex's Bubblegum program - Mint compressed NFTs using the Bubblegum TS SDK - Transfer compressed NFTs using the Bubblegum TS SDK - Read compressed NFT data using the Read API @@ -15,8 +15,8 @@ description: - **Compressed NFTs (cNFTs)** use **State Compression** to hash NFT data and store the hash onchain in an account using a **concurrent Merkle tree** structure -- The cNFT data hash can’t be used to infer the cNFT data, but it can be used to - **verify** if the cNFT data you’re seeing is correct +- The cNFT data hash can't be used to infer the cNFT data, but it can be used to + **verify** if the cNFT data you're seeing is correct - Supporting RPC providers **index** cNFT data offchain when the cNFT is minted so that you can use the **Read API** to access the data - The **Metaplex Bubblegum program** is an abstraction on top of the **State @@ -30,7 +30,7 @@ structure takes up less account storage than traditional NFTs. Compressed NFTs leverage a concept called **State Compression** to store data in a way that drastically reduces costs. -Solana’s transaction costs are so cheap that most users never think about how +Solana's transaction costs are so cheap that most users never think about how expensive minting NFTs can be at scale. The cost to set up and mint 1 million traditional NFTs is approximately 24,000 SOL. By comparison, cNFTs can be structured to where the same setup and mint costs 10 SOL or less. That means @@ -40,14 +40,14 @@ over traditional NFTs. However, cNFTs can be tricky to work with. Eventually, the tooling required to work with them will be sufficiently abstracted from the underlying technology that the developer experience between traditional NFTs and cNFTs will be -negligible. But for now, you’ll still need to understand the low level puzzle -pieces, so let’s dig in! +negligible. But for now, you'll still need to understand the low level puzzle +pieces, so let's dig in! ### A theoretical overview of cNFTs Most of the costs associated with traditional NFTs come down to account storage space. Compressed NFTs use a concept called State Compression to store data in -the blockchain’s cheaper **ledger state**, using more expensive account space +the blockchain's cheaper **ledger state**, using more expensive account space only to store a “fingerprint”, or **hash**, of the data. This hash allows you to cryptographically verify that data has not been tampered with. @@ -71,20 +71,20 @@ are: truth” can go through the same process and compare the final hash without having to store all the data onchain -One problem not addressed in the above is how to make data available if it can’t +One problem not addressed in the above is how to make data available if it can't be fetched from an account. Since this hashing process occurs onchain, all the data exists in the ledger state and could theoretically be retrieved from the original transaction by replaying the entire chain state from origin. However, -it’s much more straightforward (though still complicated) to have an **indexer** +it's much more straightforward (though still complicated) to have an **indexer** track and index this data as the transactions occur. This ensures there is an offchain “cache” of the data that anyone can access and subsequently verify against the onchain root hash. -This process is _very complex_. We’ll cover some of the key concepts below but -don’t worry if you don’t understand it right away. We’ll talk more theory in the +This process is _very complex_. We'll cover some of the key concepts below but +don't worry if you don't understand it right away. We'll talk more theory in the state compression lesson and focus primarily on application to NFTs in this -lesson. You’ll be able to work with cNFTs by the end of this lesson even if you -don’t fully understand every piece of the state compression puzzle. +lesson. You'll be able to work with cNFTs by the end of this lesson even if you +don't fully understand every piece of the state compression puzzle. #### Concurrent Merkle trees @@ -168,7 +168,7 @@ forever exist on the ledger state. #### Index data for easy lookup Under normal conditions, you would typically access onchain data by fetching the -appropriate account. When using state compression, however, it’s not so +appropriate account. When using state compression, however, it's not so straightforward. As mentioned above, the data now exists in the ledger state rather than in an @@ -177,37 +177,37 @@ instruction, but while this data will in a sense exist in the ledger state forever, it will likely be inaccessible through validators after a certain period of time. -To save space and be more performant, validators don’t retain every transaction -back to the genesis block. The specific amount of time you’ll be able to access +To save space and be more performant, validators don't retain every transaction +back to the genesis block. The specific amount of time you'll be able to access the Noop instruction logs related to your data will vary based on the validator, -but eventually you’ll lose access to it if you’re relying directly on +but eventually you'll lose access to it if you're relying directly on instruction logs. Technically, you _can_ replay transaction state back to the genesis block but -the average team isn’t going to do that, and it certainly won’t be performant. +the average team isn't going to do that, and it certainly won't be performant. Instead, you should use an indexer that will observe the events sent to the Noop -program and store the relevant data off chain. That way you don’t need to worry +program and store the relevant data off chain. That way you don't need to worry about old data becoming inaccessible. ### Create a cNFT Collection -With the theoretical background out of the way, let’s turn our attention to the +With the theoretical background out of the way, let's turn our attention to the main point of this lesson: how to create a cNFT collection. Fortunately, you can use tools created by Solana Foundation, the Solana -developer community, and Metaplex to simplify the process. Specifically, we’ll +developer community, and Metaplex to simplify the process. Specifically, we'll be using the `@solana/spl-account-compression` SDK, the Metaplex Bubblegum -program, and the Bubblegum program’s corresponding TS SDK +program, and the Bubblegum program's corresponding TS SDK `@metaplex-foundation/mpl-bugglegum`. #### Prepare metadata -Prior to starting, you’ll prepare your NFT metadata similarly to how you would +Prior to starting, you'll prepare your NFT metadata similarly to how you would if you were using a Candy Machine. At its core, an NFT is simply a token with metadata that follows the NFT standard. In other words, it should be shaped something like this: @@ -237,13 +237,13 @@ something like this: ``` Depending on your use case, you may be able to generate this dynamically or you -might want to have a JSON file prepared for each cNFT beforehand. You’ll also +might want to have a JSON file prepared for each cNFT beforehand. You'll also need any other assets referenced by the JSON, such as the `image` url shown in the example above. #### Create Collection NFT -If you want your cNFTs to be part of a collection, you’ll need to create a +If you want your cNFTs to be part of a collection, you'll need to create a Collection NFT **before** you start minting cNFTs. This is a traditional NFT that acts as the reference binding your cNFTs together into a single collection. You can create this NFT using the `@metaplex-foundation/js` library. Just make @@ -315,19 +315,19 @@ the max depth, while the buffer size will determine the number of concurrent changes (mints, transfers, etc.) within the same slot that can occur to the tree. In other words, choose the max depth that corresponds to the number of NFTs you need the tree to hold, then choose one of the options for max buffer -size based on the traffic you expect you’ll need to support. +size based on the traffic you expect you'll need to support. Next, choose the canopy depth. Increasing the canopy depth increases the -composability of your cNFTs. Any time your or another developer’s code attempts +composability of your cNFTs. Any time your or another developer's code attempts to verify a cNFT down the road, the code will have to pass in as many proof -nodes as there are “layers” in your tree. So for a max depth of 20, you’ll need +nodes as there are “layers” in your tree. So for a max depth of 20, you'll need to pass in 20 proof nodes. Not only is this tedious, but since each proof node -is 32 bytes it’s possible to max out transaction sizes very quickly. +is 32 bytes it's possible to max out transaction sizes very quickly. For example, if your tree has a very low canopy depth, an NFT marketplace may only be able to support simple NFTs transfers rather than support an onchain bidding system for your cNFTs. The canopy effectively caches proof nodes onchain -so you don’t have to pass all of them into the transaction, allowing for more +so you don't have to pass all of them into the transaction, allowing for more complex transactions. Increasing any of these three values increases the size of the account, thereby @@ -354,7 +354,7 @@ const allocTreeIx = await createAllocTreeIx( Note that this is simply a helper function for calculating the size required by the account and creating the instruction to send to the System Program for -allocating the account. This function doesn’t interact with any +allocating the account. This function doesn't interact with any compression-specific programs yet. #### Use Bubblegum to Initialize Your Tree @@ -365,8 +365,8 @@ tree config account to add cNFT-specific tracking and functionality. Version 0.7 of the `@metaplex-foundation/mpl-bubblegum` TS SDK provides the helper function `createCreateTreeInstruction` for calling the `create_tree` -instruction on the Bubblegum program. As part of the call, you’ll need to derive -the `treeAuthority` PDA expected by the program. This PDA uses the tree’s +instruction on the Bubblegum program. As part of the call, you'll need to derive +the `treeAuthority` PDA expected by the program. This PDA uses the tree's address as a seed. ```typescript @@ -442,7 +442,7 @@ Feel free to take a look at the program code #### Mint cNFTs With the Merkle tree account and its corresponding Bubblegum tree config account -initialized, it’s possible to mint cNFTs to the tree. The Bubblegum instruction +initialized, it's possible to mint cNFTs to the tree. The Bubblegum instruction to use will be either `mint_v1` or `mint_to_collection_v1`, depending on whether or not you want to the minted cNFT to be part of a collection. @@ -537,7 +537,7 @@ const mintWithoutCollectionIx = createMintV1Instruction( ### Interact with cNFTs -It’s important to note that cNFTs _are not_ SPL tokens. That means your code +It's important to note that cNFTs _are not_ SPL tokens. That means your code needs to follow different conventions to handle cNFT functionality like fetching, querying, transferring, etc. @@ -546,24 +546,24 @@ fetching, querying, transferring, etc. The simplest way to fetch data from an existing cNFT is to use the [Digital Asset Standard Read API](https://solana.com/developers/guides/javascript/compressed-nfts#reading-compressed-nfts-metadata) (Read API). Note that this is separate from the standard JSON RPC. To use the -Read API, you’ll need to use a supporting RPC Provider. Metaplex maintains a +Read API, you'll need to use a supporting RPC Provider. Metaplex maintains a (likely non-exhaustive) [list of RPC providers](https://developers.metaplex.com/bubblegum/rpcs) that -support the Read API. In this lesson we’ll be using +support the Read API. In this lesson we'll be using [Helius](https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api) as they have free support for Devnet. -To use the Read API to fetch a specific cNFT, you need to have the cNFT’s asset -ID. However, after minting cNFTs, you’ll have at most two pieces of information: +To use the Read API to fetch a specific cNFT, you need to have the cNFT's asset +ID. However, after minting cNFTs, you'll have at most two pieces of information: 1. The transaction signature 2. The leaf index (possibly) -The only real guarantee is that you’ll have the transaction signature. It is +The only real guarantee is that you'll have the transaction signature. It is **possible** to locate the leaf index from there, but it involves some fairly complex parsing. The short story is you must retrieve the relevant instruction -logs from the Noop program and parse them to find the leaf index. We’ll cover -this more in depth in a future lesson. For now, we’ll assume you know the leaf +logs from the Noop program and parse them to find the leaf index. We'll cover +this more in depth in a future lesson. For now, we'll assume you know the leaf index. This is a reasonable assumption for most mints given that the minting will be @@ -571,7 +571,7 @@ controlled by your code and can be set up sequentially so that your code can track which index is going to be used for each mint. I.e. the first mint will use index 0, the second index 1, etc. -Once you have the leaf index, you can derive the cNFT’s corresponding asset ID. +Once you have the leaf index, you can derive the cNFT's corresponding asset ID. When using Bubblegum, the asset ID is a PDA derived using the Bubblegum program ID and the following seeds: @@ -607,7 +607,7 @@ const { result } = await response.json(); console.log(JSON.stringify(result, null, 2)); ``` -This will return a JSON object that is comprehensive of what a traditional NFT’s +This will return a JSON object that is comprehensive of what a traditional NFT's on- and offchain metadata would look like combined. For example, you can find the cNFT attributes at `content.metadata.attributes` or the image at `content.files.uri`. @@ -626,30 +626,30 @@ and more. For example, Helius supports the following methods: - `getAssetsByCreator` - `getAssetsByGroup` -We won’t go over most of these directly, but be sure to look through the +We won't go over most of these directly, but be sure to look through the [Helius docs](https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api) to learn how to use them correctly. #### Transfer cNFTs Just as with a standard SPL token transfer, security is paramount. An SPL token -transfer, however, makes verifying transfer authority very easy. It’s built into -the SPL Token program and standard signing. A compressed token’s ownership is +transfer, however, makes verifying transfer authority very easy. It's built into +the SPL Token program and standard signing. A compressed token's ownership is more difficult to verify. The actual verification will happen program-side, but your client-side code needs to provide additional information to make it possible. While there is a Bubblegum `createTransferInstruction` helper function, there is more assembly required than usual. Specifically, the Bubblegum program needs to -verify that the entirety of the cNFT’s data is what the client asserts before a +verify that the entirety of the cNFT's data is what the client asserts before a transfer can occur. The entirety of the cNFT data has been hashed and stored as a single leaf on the Merkle tree, and the Merkle tree is simply a hash of all -the tree’s leafs and branches. Because of this, you can’t simply tell the -program what account to look at and have it compare that account’s `authority` +the tree's leafs and branches. Because of this, you can't simply tell the +program what account to look at and have it compare that account's `authority` or `owner` field to the transaction signer. Instead, you need to provide the entirety of the cNFT data and any of the Merkle -tree’s proof information that isn’t stored in the canopy. That way, the program +tree's proof information that isn't stored in the canopy. That way, the program can independently prove that the provided cNFT data, and therefore the cNFT owner, is accurate. Only then can the program safely determine if the transaction signer should, in fact, be allowed to transfer the cNFT. @@ -710,7 +710,7 @@ const treeAccount = await ConcurrentMerkleTreeAccount.fromAccountAddress( ``` Step four is the most conceptually challenging step. Using the three pieces of -information gathered, you’ll need to assemble the proof path for the cNFT’s +information gathered, you'll need to assemble the proof path for the cNFT's corresponding leaf. The proof path is represented as accounts passed to the program instruction. The program uses each of the account addresses as proof nodes to prove the leaf data is what you say it is. @@ -758,7 +758,7 @@ function, `createTransferInstruction`, requires the following arguments: first - `nonce` - used to ensure that no two leafs have the same hash; this value should be the same as `index` - - `index` - the index where the cNFT’s leaf is located on the Merkle tree + - `index` - the index where the cNFT's leaf is located on the Merkle tree An example of this is shown below. Note that the first 3 lines of code grab additional information nested in the objects shown previously so they are ready @@ -798,23 +798,23 @@ const transferIx = createTransferInstruction( ### Conclusion -We’ve covered the primary skills needed to interact with cNFTs, but haven’t been +We've covered the primary skills needed to interact with cNFTs, but haven't been fully comprehensive. You can also use Bubblegum to do things like burn, verify, -delegate, and more. We won’t go through these, but these instructions are +delegate, and more. We won't go through these, but these instructions are similar to the mint and transfer process. If you need this additional functionality, take a look at the [Bubblegum client source code](https://github.com/metaplex-foundation/mpl-bubblegum/tree/main/clients/js-solita) and leverage the helper functions it provides. Keep in mind that compression is fairly new. Available tooling will evolve -rapidly but the principles you’ve learned in this lesson will likely remain the +rapidly but the principles you've learned in this lesson will likely remain the same. These principles can also be broadened to arbitrary state compression, so -be sure to master them here so you’re ready for more fun stuff in future +be sure to master them here so you're ready for more fun stuff in future lessons! ## Lab -Let’s jump in and practice creating and working with cNFTs. Together, we’ll +Let's jump in and practice creating and working with cNFTs. Together, we'll build as simple a script as possible that will let us mint a cNFT collection from a Merkle tree. @@ -835,24 +835,24 @@ in `uri.ts`. The `uri.ts` file provides 10k URIs that you can use for the offchain portion of your NFT metadata. You can, of course, create your own metadata. But this lesson -isn’t explicitly about preparing metadata so we’ve provided some for you. +isn't explicitly about preparing metadata so we've provided some for you. The `utils.ts` file has a few helper functions to keep you from writing more unnecessary boilerplate than you need to. They are as follows: - `getOrCreateKeypair` will create a new keypair for you and save it to a `.env` - file, or if there’s already a private key in the `.env` file it will + file, or if there's already a private key in the `.env` file it will initialize a keypair from that. - `airdropSolIfNeeded` will airdrop some Devnet SOL to a specified address if - that address’s balance is below 1 SOL. + that address's balance is below 1 SOL. - `createNftMetadata` will create the NFT metadata for a given creator public - key and index. The metadata it’s getting is just dummy metadata using the URI + key and index. The metadata it's getting is just dummy metadata using the URI corresponding to the provided index from the `uri.ts` list of URIs. - `getOrCreateCollectionNFT` will fetch the collection NFT from the address specified in `.env` or if there is none it will create a new one and add the address to `.env`. -Finally, there’s some boilerplate in `index.ts` that calls creates a new Devnet +Finally, there's some boilerplate in `index.ts` that calls creates a new Devnet connection, calls `getOrCreateKeypair` to initialize a “wallet,” and calls `airdropSolIfNeeded` to fund the wallet if its balance is low. @@ -860,20 +860,20 @@ We will be writing all of our code in the `index.ts`. #### 2. Create the Merkle tree account -We’ll start by creating the Merkle tree account. Let’s encapsulate this in a -function that will eventually create _and_ initialize the account. We’ll put it -below our `main` function in `index.ts`. Let’s call it +We'll start by creating the Merkle tree account. Let's encapsulate this in a +function that will eventually create _and_ initialize the account. We'll put it +below our `main` function in `index.ts`. Let's call it `createAndInitializeTree`. For this function to work, it will need the following parameters: - `connection` - a `Connection` to use for interacting with the network. - `payer` - a `Keypair` that will pay for transactions. - `maxDepthSizePair` - a `ValidDepthSizePair`. This type comes from - `@solana/spl-account-compression`. It’s a simple object with properties + `@solana/spl-account-compression`. It's a simple object with properties `maxDepth` and `maxBufferSize` that enforces a valid combination of the two values. - `canopyDepth` - a number for the canopy depth In the body of the function, - we’ll generate a new address for the tree, then create the instruction for + we'll generate a new address for the tree, then create the instruction for allocating a new Merkle tree account by calling `createAllocTreeIx` from `@solana/spl-account-compression`. @@ -910,15 +910,15 @@ This instruction needs us to provide the following: and the Bubblegum program - `merkleTree` - the address of the Merkle tree - `payer` - the transaction fee payer - - `treeCreator` - the address of the tree creator; we’ll make this the same as + - `treeCreator` - the address of the tree creator; we'll make this the same as `payer` - `logWrapper` - make this the `SPL_NOOP_PROGRAM_ID` - `compressionProgram` - make this the `SPL_ACCOUNT_COMPRESSION_PROGRAM_ID` - `args` - a list of instruction arguments; this includes: - - `maxBufferSize` - the buffer size from our function’s `maxDepthSizePair` + - `maxBufferSize` - the buffer size from our function's `maxDepthSizePair` parameter - - `maxDepth` - the max depth from our function’s `maxDepthSizePair` parameter - - `public` - whether or no the tree should be public; we’ll set this to + - `maxDepth` - the max depth from our function's `maxDepthSizePair` parameter + - `public` - whether or no the tree should be public; we'll set this to `false` Finally, we can add both instructions to a transaction and submit the @@ -1023,15 +1023,15 @@ run the following: #### 4. Mint cNFTs to your tree -Believe it or not, that’s all you needed to do to set up your tree to compressed -NFTs! Now let’s turn our attention to minting. +Believe it or not, that's all you needed to do to set up your tree to compressed +NFTs! Now let's turn our attention to minting. -First, let’s declare a function called `mintCompressedNftToCollection`. It will +First, let's declare a function called `mintCompressedNftToCollection`. It will need the following parameters: - `connection` - a `Connection` to use for interacting with the network. - `payer` - a `Keypair` that will pay for transactions. -- `treeAddress` - the Merkle tree’s address +- `treeAddress` - the Merkle tree's address - `collectionDetails` - the details of the collection as type `CollectionDetails` from `utils.ts` - `amount` - the number of cNFTs to mint @@ -1052,7 +1052,7 @@ The body of this function will do the following: The `createMintToCollectionV1Instruction` takes two arguments: `accounts` and `args`. The latter is simply the NFT metadata. As with all complex instructions, -the primary hurdle is knowing which accounts to provide. So let’s go through +the primary hurdle is knowing which accounts to provide. So let's go through them real quick: - `payer` - the account that will pay for the transaction fees, rent, etc. @@ -1082,7 +1082,7 @@ them real quick: - `tokenMetadataProgram` - the token metadata program that was used for the collection NFT; this is usually always the Metaplex Token Metadata program -When you put it all together, this is what it’ll look like: +When you put it all together, this is what it'll look like: ```typescript async function mintCompressedNftToCollection( @@ -1200,16 +1200,16 @@ Again, to run, in your terminal type: `npm run start` #### 5. Read existing cNFT data -Now that we’ve written code to mint cNFTs, let’s see if we can actually fetch +Now that we've written code to mint cNFTs, let's see if we can actually fetch their data. This is tricky because the onchain data is just the Merkle tree account, the data from which can be used to verify existing information as accurate but is useless in conveying what the information is. -Let’s start by declaring a function `logNftDetails` that takes as parameters +Let's start by declaring a function `logNftDetails` that takes as parameters `treeAddress` and `nftsMinted`. -At this point we don’t actually have a direct identifier of any kind that points -to our cNFT. To get that, we’ll need to know the leaf index that was used when +At this point we don't actually have a direct identifier of any kind that points +to our cNFT. To get that, we'll need to know the leaf index that was used when we minted our cNFT. We can then use that to derive the asset ID used by the Read API and subsequently use the Read API to fetch our cNFT data. @@ -1219,9 +1219,9 @@ function from `@metaplex-foundation/mpl-bubblegum` to get the asset ID. Finally, we can use an RPC that supports the [Read API](https://solana.com/developers/guides/javascript/compressed-nfts) to -fetch the asset. We’ll be using +fetch the asset. We'll be using [Helius](https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api), -but feel free to choose your own RPC provider. To use Helius, you’ll need to get +but feel free to choose your own RPC provider. To use Helius, you'll need to get a free API Key from [the Helius website](https://dev.helius.xyz/). Then add your `RPC_URL` to your `.env` file. For example: @@ -1262,8 +1262,8 @@ surface that data when requested. If we add a call to this function at the end of `main` and re-run your script, the data we get back in the console is very comprehensive. It includes all of -the data you’d expect in both the onchain and offchain portion of a traditional -NFT. You can find the cNFT’s attributes, files, ownership and creator +the data you'd expect in both the onchain and offchain portion of a traditional +NFT. You can find the cNFT's attributes, files, ownership and creator information, and more. ```json @@ -1360,11 +1360,11 @@ information, and more. Remember, the Read API also includes ways to get multiple assets, query by owner, creator, etc., and more. Be sure to look through the [Helius docs](https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api) -to see what’s available. +to see what's available. #### 6. Transfer a cNFT -The last thing we’re going to add to our script is a cNFT transfer. Just as with +The last thing we're going to add to our script is a cNFT transfer. Just as with a standard SPL token transfer, security is paramount. Unlike with a standard SPL token transfer, however, to build a secure transfer with state compression of any kind, the program performing the transfer needs the entire asset data. @@ -1382,15 +1382,15 @@ Remember, the general steps are: 4. Prepare the asset proof as a list of `AccountMeta` objects 5. Build and send the Bubblegum transfer instruction -Let’s start by declaring a `transferNft` function that takes the following: +Let's start by declaring a `transferNft` function that takes the following: - `connection` - a `Connection` object - `assetId` - a `PublicKey` object - `sender` - a `Keypair` object so we can sign the transaction - `receiver` - a `PublicKey` object representing the new owner -Inside that function, let’s fetch the asset data again then also fetch the asset -proof. For good measure, let’s wrap everything in a `try catch`. +Inside that function, let's fetch the asset data again then also fetch the asset +proof. For good measure, let's wrap everything in a `try catch`. ```typescript async function transferNft( @@ -1434,7 +1434,7 @@ async function transferNft( } ``` -Next, let’s fetch the Merkle tree account from the chain, get the canopy depth, +Next, let's fetch the Merkle tree account from the chain, get the canopy depth, and assemble the proof path. We do this by mapping the asset proof we got from Helius to a list of `AccountMeta` objects, then removing any proof nodes at the end that are already cached onchain in the canopy. @@ -1578,10 +1578,10 @@ async function transferNft( } ``` -Lets transfer our first compressed NFT at index 0 to someone else. First we’ll +Lets transfer our first compressed NFT at index 0 to someone else. First we'll need to spin up another wallet with some funds, then grab the assetID at index 0 -using `getLeafAssetId`. Then we’ll do the transfer. Finally, we’ll print out the -entire collection using our function `logNftDetails`. You’ll note that the NFT +using `getLeafAssetId`. Then we'll do the transfer. Finally, we'll print out the +entire collection using our function `logNftDetails`. You'll note that the NFT at index zero will now belong to our new wallet in the `ownership` field. ```typescript @@ -1646,12 +1646,12 @@ take a look at the solution code on the `solution` branch of the ### Challenge -It’s your turn to take these concepts for a spin on your own! We’re not going to +It's your turn to take these concepts for a spin on your own! We're not going to be overly prescriptive at this point, but here are some ideas: 1. Create your own production cNFT collection -2. Build a UI for this lesson’s lab that will let you mint a cNFT and display it -3. See if you can replicate some of the lab script’s functionality in an onchain +2. Build a UI for this lesson's lab that will let you mint a cNFT and display it +3. See if you can replicate some of the lab script's functionality in an onchain program, i.e. write a program that can mint cNFTs diff --git a/content/courses/state-compression/generalized-state-compression.md b/content/courses/state-compression/generalized-state-compression.md index 4333e308d..f91169e38 100644 --- a/content/courses/state-compression/generalized-state-compression.md +++ b/content/courses/state-compression/generalized-state-compression.md @@ -27,8 +27,8 @@ description: Previously, we discussed state compression in the context of compressed NFTs. At the time of writing, compressed NFTs represent the most common use case for -state compression, but it’s possible to use state compression within any -program. In this lesson, we’ll discuss state compression in more generalized +state compression, but it's possible to use state compression within any +program. In this lesson, we'll discuss state compression in more generalized terms so that you can apply it to any of your programs. ### A theoretical overview of state compression @@ -36,7 +36,7 @@ terms so that you can apply it to any of your programs. In traditional programs, data is serialized (typically using borsh) and then stored directly in an account. This allows the data to be easily read and written through Solana programs. You can “trust” the data stored in the accounts -because it can’t be modified except through the mechanisms surfaced by the +because it can't be modified except through the mechanisms surfaced by the program. State compression effectively asserts that the most important piece of this @@ -113,7 +113,7 @@ subsequent writes to successfully occur. This includes: successful. 3. A canopy - When performing an update action on any given leaf, you need the entire proof path from that leaf to the root hash. The canopy stores - intermediate proof nodes along that path so they don’t all have to be passed + intermediate proof nodes along that path so they don't all have to be passed into the program from the client. As a program architect, you control three values directly related to these three @@ -163,17 +163,17 @@ The answer is 20. Choosing a max buffer size is effectively a question of throughput: how many concurrent writes do you need? The larger the buffer, the higher the throughput. -Lastly, the canopy depth will determine your program’s composability. State +Lastly, the canopy depth will determine your program's composability. State compression pioneers have made it clear that omitting a canopy is a bad idea. -Program A can’t call your state-compressed program B if doing so maxes out the +Program A can't call your state-compressed program B if doing so maxes out the transaction size limits. Remember, program A also has required accounts and data in addition to required proof paths, each of which take up transaction space. #### Data access on a state-compressed program -A state-compressed account doesn’t store the data itself. Rather, it stores the +A state-compressed account doesn't store the data itself. Rather, it stores the concurrent Merkle tree structure discussed above. The raw data itself lives only -in the blockchain’s cheaper **ledger state.** This makes data access somewhat +in the blockchain's cheaper **ledger state.** This makes data access somewhat more difficult, but not impossible. The Solana ledger is a list of entries containing signed transactions. In @@ -183,7 +183,7 @@ data that has ever been put into a transaction exists in the ledger. Since the state compression hashing process occurs onchain, all the data exists in the ledger state and could theoretically be retrieved from the original transaction by replaying the entire chain state from the beginning. However, -it’s much more straightforward (though still complicated) to have +it's much more straightforward (though still complicated) to have an **indexer** track and index this data as the transactions occur. This ensures there is an offchain “cache” of the data that anyone can access and subsequently verify against the onchain root hash. @@ -193,7 +193,7 @@ This process is complex, but it will make sense after some practice. ### State compression tooling The theory described above is essential to properly understanding state -compression. But you don’t have to implement any of it from scratch. Brilliant +compression. But you don't have to implement any of it from scratch. Brilliant engineers have laid most of the groundwork for you in the form of the SPL State Compression Program and the Noop Program. @@ -209,12 +209,12 @@ primary purpose is to make leaf data easier to index by logging it to the ledger state. When you want to store compressed data, you pass it to the State Compression program where it gets hashed and emitted as an “event” to the Noop program. The hash gets stored in the corresponding concurrent Merkle tree, but -the raw data remains accessible through the Noop program’s transaction logs. +the raw data remains accessible through the Noop program's transaction logs. #### Index data for easy lookup Under normal conditions, you would typically access onchain data by fetching the -appropriate account. When using state compression, however, it’s not so +appropriate account. When using state compression, however, it's not so straightforward. As mentioned above, the data now exists in the ledger state rather than in an @@ -223,18 +223,18 @@ instruction. Unfortunately, while this data will in a sense exist in the ledger state forever, it will likely be inaccessible through validators after a certain period of time. -To save space and be more performant, validators don’t retain every transaction -back to the genesis block. The specific amount of time you’ll be able to access +To save space and be more performant, validators don't retain every transaction +back to the genesis block. The specific amount of time you'll be able to access the Noop instruction logs related to your data will vary based on the validator. -Eventually, you’ll lose access to it if you’re relying directly on instruction +Eventually, you'll lose access to it if you're relying directly on instruction logs. Technically, you *can* replay the transaction state back to the genesis block -but the average team isn’t going to do that, and it certainly won’t be +but the average team isn't going to do that, and it certainly won't be performant. The [Digital Asset Standard (DAS)](https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api) has been adopted by many RPC providers to enable efficient queries of compressed -NFTs and other assets. However, at the time of writing, it doesn’t support +NFTs and other assets. However, at the time of writing, it doesn't support arbitrary state compression. Instead, you have two primary options: 1. Use an indexing provider that will build a custom indexing solution for your @@ -251,7 +251,7 @@ need to rely on infrastructure providers to handle their indexing. #### Create Rust types As with a typical Anchor program, one of the first things you should do is -define your program’s Rust types. However, Rust types in a traditional Anchor +define your program's Rust types. However, Rust types in a traditional Anchor program often represent accounts. In a state-compressed program, your account state will only store the Merkle tree. The more “usable” data schema will just be serialized and logged to the Noop program. @@ -280,7 +280,7 @@ impl MessageLog { To be abundantly clear, **this is not an account that you will be able to read from**. Your program will be creating an instance of this type from instruction inputs, not constructing an instance of this type from account data that it -reads. We’ll discuss how to read data in a later section. +reads. We'll discuss how to read data in a later section. #### Initialize a new tree @@ -339,14 +339,14 @@ pub fn create_messages_tree( #### Add hashes to the tree -With an initialized Merkle tree, it’s possible to start adding data hashes. This +With an initialized Merkle tree, it's possible to start adding data hashes. This involves passing the uncompressed data to an instruction on your program that will hash the data, log it to the Noop program, and use the State Compression -Program’s `append` instruction to add the hash to the tree. The following +Program's `append` instruction to add the hash to the tree. The following discuss what your instruction needs to do in depth: 1. Use the `hashv` function from the `keccak` crate to hash the data. In most - cases, you’ll want to also hash the owner or authority of the data as well to + cases, you'll want to also hash the owner or authority of the data as well to ensure that it can only be modified by the proper authority. 2. Create a log object representing the data you wish to log to the Noop Program, then call `wrap_application_data_v1` to issue a CPI to the Noop @@ -354,7 +354,7 @@ discuss what your instruction needs to do in depth: available to any client looking for it. For broad use cases like cNFTs, that would be indexers. You might also create your own observing client to simulate what indexers are doing but specific to your application. -3. Build and issue a CPI to the State Compression Program’s `append` +3. Build and issue a CPI to the State Compression Program's `append` instruction. This takes the hash computed in step 1 and adds it to the next available leaf on your Merkle tree. Just as before, this requires the Merkle tree address and the tree authority bump as signature seeds. @@ -413,11 +413,11 @@ as those used to append the initial data to the tree: 1. **Verify update authority** - The first step is new. In most cases, you want to verify update authority. This typically involves proving that the signer of the `update` transaction is the true owner or authority of the leaf at the - given index. Since the data is compressed as a hash on the leaf, we can’t + given index. Since the data is compressed as a hash on the leaf, we can't simply compare the `authority` public key to a stored value. Instead, we need to compute the previous hash using the old data and the `authority` listed in the account validation struct. We then build and issue a CPI to the State - Compression Program’s `verify_leaf` instruction using our computed hash. + Compression Program's `verify_leaf` instruction using our computed hash. 2. **Hash the new data** - This step is the same as the first step from appending initial data. Use the `hashv` function from the `keccak` crate to hash the new data and the update authority, each as their corresponding byte @@ -427,7 +427,7 @@ as those used to append the initial data to the tree: `wrap_application_data_v1` to issue a CPI to the Noop program. 4. **Replace the existing leaf hash** - This step is slightly different than the last step of appending initial data. Build and issue a CPI to the State - Compression Program’s `replace_leaf` instruction. This uses the old hash, the + Compression Program's `replace_leaf` instruction. This uses the old hash, the new hash, and the leaf index to replace the data of the leaf at the given index with the new hash. Just as before, this requires the Merkle tree address and the tree authority bump as signature seeds. @@ -504,8 +504,8 @@ pub fn update_message( #### Delete hashes -At the time of writing, the State Compression Program doesn’t provide an -explicit `delete` instruction. Instead, you’ll want to update leaf data with +At the time of writing, the State Compression Program doesn't provide an +explicit `delete` instruction. Instead, you'll want to update leaf data with data that indicates the data as “deleted.” The specific data will depend on your use case and security concerns. Some may opt to set all data to 0, whereas others might store a static string that all “deleted” items will have in common. @@ -513,13 +513,13 @@ others might store a static string that all “deleted” items will have in com #### Access data from a client The discussion so far has covered 3 of the 4 standard CRUD procedures: Create, -Update, and Delete. What’s left is one of the more difficult concepts in state +Update, and Delete. What's left is one of the more difficult concepts in state compression: reading data. -Accessing data from a client is tricky primarily because the data isn’t stored +Accessing data from a client is tricky primarily because the data isn't stored in a format that is easy to access. The data hashes stored in the Merkle tree -account can’t be used to reconstruct the initial data, and the data logged to -the Noop program isn’t available indefinitely. +account can't be used to reconstruct the initial data, and the data logged to +the Noop program isn't available indefinitely. Your best bet is one of two options: @@ -531,18 +531,18 @@ Your best bet is one of two options: If your project is truly decentralized such that many participants will interact with your program through means other than your own frontend, then option 2 might not be sufficient. However, depending on the scale of the project or -whether or not you’ll have control over most program access, it can be a viable +whether or not you'll have control over most program access, it can be a viable approach. There is no “right” way to do this. Two potential approaches are: 1. Store the raw data in a database at the same time as sending it to the program, along with the leaf that the data is hashed and stored to. -2. Create a server that observes your program’s transactions, looks up the +2. Create a server that observes your program's transactions, looks up the associated Noop logs, decodes the logs, and stores them. -We’ll do a little bit of both when writing tests in this lesson’s lab (though we -won’t persist data in a db - it will only live in memory for the duration of the +We'll do a little bit of both when writing tests in this lesson's lab (though we +won't persist data in a db - it will only live in memory for the duration of the tests). The setup for this is somewhat tedious. Given a particular transaction, you can @@ -619,7 +619,7 @@ development experience, please share with the community! ## Lab -Let’s practice generalized state compression by creating a new Anchor program. +Let's practice generalized state compression by creating a new Anchor program. This program will use custom state compression to power a simple note-taking app. @@ -631,8 +631,8 @@ Start by initializing an Anchor program: anchor init compressed-notes ``` -We’ll be using the `spl-account-compression` crate with the `cpi` feature -enabled. Let’s add it as a dependency in `programs/compressed-notes/Cargo.toml`. +We'll be using the `spl-account-compression` crate with the `cpi` feature +enabled. Let's add it as a dependency in `programs/compressed-notes/Cargo.toml`. ```toml [dependencies] @@ -641,8 +641,8 @@ spl-account-compression = { version="0.2.0", features = ["cpi"] } solana-program = "1.16.0" ``` -We’ll be testing locally but we need both the Compression program and the Noop -program from Mainnet. We’ll need to add these to the `Anchor.toml` in the root +We'll be testing locally but we need both the Compression program and the Noop +program from Mainnet. We'll need to add these to the `Anchor.toml` in the root directory so they get cloned to our local cluster. ```toml @@ -656,7 +656,7 @@ address = "noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV" address = "cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK" ``` -Lastly, let’s prepare the `lib.rs` file for the rest of the Demo. Remove the +Lastly, let's prepare the `lib.rs` file for the rest of the Demo. Remove the `initialize` instruction and the `Initialize` accounts struct, then add the imports shown in the code snippet below (be sure to put in **_your_** program id): @@ -689,8 +689,8 @@ pub mod compressed_notes { } ``` -For the rest of this Demo, we’ll be making updates to the program code directly -in the `lib.rs` file. This simplifies the explanations a bit. You’re welcome to +For the rest of this Demo, we'll be making updates to the program code directly +in the `lib.rs` file. This simplifies the explanations a bit. You're welcome to modify the structure as you will. Feel free to build before continuing. This ensures your environment is working @@ -698,7 +698,7 @@ properly and shortens future build times. #### 2. Define `Note` schema -Next, we’re going to define what a note looks like within our program. Notes +Next, we're going to define what a note looks like within our program. Notes should have the following properties: - `leaf_node` - this should be a 32-byte array representing the hash stored on @@ -723,15 +723,15 @@ impl NoteLog { ``` In a traditional Anchor program, this would be an account struct, but since -we’re using state compression, our accounts won’t be mirroring our native -structures. Since we don’t need all the functionality of an account, we can just +we're using state compression, our accounts won't be mirroring our native +structures. Since we don't need all the functionality of an account, we can just use the `AnchorSerialize` derive macro rather than the `account` macro. #### 3. Define input accounts and constraints As luck would have it, every one of our instructions will be using the same -accounts. We’ll create a single `NoteAccounts` struct for our account -validation. It’ll need the following accounts: +accounts. We'll create a single `NoteAccounts` struct for our account +validation. It'll need the following accounts: - `owner` - this is the creator and owner of the note; should be a signer on the transaction @@ -771,7 +771,7 @@ pub struct NoteAccounts<'info> { #### 4. Create `create_note_tree` instruction -Next, let’s create our `create_note_tree` instruction. Remember, clients will +Next, let's create our `create_note_tree` instruction. Remember, clients will have already allocated the Merkle tree account but will use this instruction to initialize it. @@ -834,25 +834,25 @@ and the tree authority bump. #### 5. Create `append_note` instruction -Now, let’s create our `append_note` instruction. This instruction needs to take -the raw note as a String and compress it into a hash that we’ll store on the -Merkle tree. We’ll also log the note to the Noop program so the entirety of the -data exists within the chain’s state. +Now, let's create our `append_note` instruction. This instruction needs to take +the raw note as a String and compress it into a hash that we'll store on the +Merkle tree. We'll also log the note to the Noop program so the entirety of the +data exists within the chain's state. The steps here are as follows: 1. Use the `hashv` function from the `keccak` crate to hash the note and owner, - each as their corresponding byte representation. It’s **_crucial_** that you - hash the owner as well as the note. This is how we’ll verify note ownership + each as their corresponding byte representation. It's **_crucial_** that you + hash the owner as well as the note. This is how we'll verify note ownership before updates in the update instruction. 2. Create an instance of the `NoteLog` struct using the hash from step 1, the - owner’s public key, and the raw note as a String. Then call + owner's public key, and the raw note as a String. Then call `wrap_application_data_v1` to issue a CPI to the Noop program, passing the instance of `NoteLog`. This ensures the entirety of the note (not just the hash) is readily available to any client looking for it. For broad use cases like cNFTs, that would be indexers. You might create your observing client to simulate what indexers are doing but for your own application. -3. Build and issue a CPI to the State Compression Program’s `append` +3. Build and issue a CPI to the State Compression Program's `append` instruction. This takes the hash computed in step 1 and adds it to the next available leaf on your Merkle tree. Just as before, this requires the Merkle tree address and the tree authority bump as signature seeds. @@ -901,14 +901,14 @@ pub mod compressed_notes { #### 6. Create `update_note` instruction -The last instruction we’ll make is the `update_note` instruction. This should +The last instruction we'll make is the `update_note` instruction. This should replace an existing leaf with a new hash representing the new updated note data. -For this to work, we’ll need the following parameters: +For this to work, we'll need the following parameters: 1. `index` - the index of the leaf we are going to update 2. `root` - the root hash of the Merkle tree -3. `old_note` - the string representation of the old note we’re updating +3. `old_note` - the string representation of the old note we're updating 4. `new_note` - the string representation of the new note we want to update to Remember, the steps here are similar to `append_note`, but with some minor @@ -916,22 +916,22 @@ additions and modifications: 1. The first step is new. We need to first prove that the `owner` calling this function is the true owner of the leaf at the given index. Since the data is - compressed as a hash on the leaf, we can’t simply compare the `owner` public + compressed as a hash on the leaf, we can't simply compare the `owner` public key to a stored value. Instead, we need to compute the previous hash using the old note data and the `owner` listed in the account validation struct. We - then build and issue a CPI to the State Compression Program’s `verify_leaf` + then build and issue a CPI to the State Compression Program's `verify_leaf` instruction using our computed hash. 2. This step is the same as the first step from creating the `append_note` instruction. Use the `hashv` function from the `keccak` crate to hash the new note and its owner, each as their corresponding byte representation. 3. This step is the same as the second step from creating the `append_note` instruction. Create an instance of the `NoteLog` struct using the hash from - step 2, the owner’s public key, and the new note as a string. Then call + step 2, the owner's public key, and the new note as a string. Then call `wrap_application_data_v1` to issue a CPI to the Noop program, passing the instance of `NoteLog` 4. This step is slightly different than the last step from creating the `append_note` instruction. Build and issue a CPI to the State Compression - Program’s `replace_leaf` instruction. This uses the old hash, the new hash, + Program's `replace_leaf` instruction. This uses the old hash, the new hash, and the leaf index to replace the data of the leaf at the given index with the new hash. Just as before, this requires the Merkle tree address and the tree authority bump as signature seeds. @@ -1009,19 +1009,19 @@ pub mod compressed_notes { #### 7. Client test setup -We’re going to write a few tests to ensure that our program works as expected. -First, let’s do some setup. +We're going to write a few tests to ensure that our program works as expected. +First, let's do some setup. -We’ll be using the `@solana/spl-account-compression` package. Go ahead and +We'll be using the `@solana/spl-account-compression` package. Go ahead and install it: ```bash yarn add @solana/spl-account-compression ``` -Next, we’re going to give you the contents of a utility file we’ve created to +Next, we're going to give you the contents of a utility file we've created to make testing easier. Create a `utils.ts` file in the `tests` directory, add in -the below, then we’ll explain it. +the below, then we'll explain it. ```typescript import { @@ -1132,21 +1132,21 @@ export async function getNoteLog(connection: Connection, txSignature: string) { There are 3 main things in the above file: -1. `NoteLog` - a class representing the note log we’ll find in the Noop program - logs. We’ve also added the borsh schema as `NoteLogBorshSchema` for +1. `NoteLog` - a class representing the note log we'll find in the Noop program + logs. We've also added the borsh schema as `NoteLogBorshSchema` for deserialization. 2. `getHash` - a function that creates a hash of the note and note owner so we can compare it to what we find on the Merkle tree -3. `getNoteLog` - a function that looks through the provided transaction’s logs, +3. `getNoteLog` - a function that looks through the provided transaction's logs, finds the Noop program logs, then deserializes and returns the corresponding Note log. #### 8. Write client tests -Now that we’ve got our packages installed and utility file ready, let’s dig into -the tests themselves. We’re going to create four of them: +Now that we've got our packages installed and utility file ready, let's dig into +the tests themselves. We're going to create four of them: -1. Create Note Tree - this will create the Merkle tree we’ll be using to store +1. Create Note Tree - this will create the Merkle tree we'll be using to store note hashes 2. Add Note - this will call our `append_note` instruction 3. Add Max Size Note - this will call our `append_note` instruction with a note @@ -1154,11 +1154,11 @@ the tests themselves. We’re going to create four of them: 4. Update First Note - this will call our `update_note` instruction to modify the first note we added -The first test is mostly just for setup. In the last three tests, we’ll be +The first test is mostly just for setup. In the last three tests, we'll be asserting each time that the note hash on the tree matches what we would expect given the note text and signer. -Let’s start with our imports. There are quite a few from Anchor, +Let's start with our imports. There are quite a few from Anchor, `@solana/web3.js`, `@solana/spl-account-compression`, and our own utils file. ```typescript @@ -1183,7 +1183,7 @@ import { getHash, getNoteLog } from "./utils"; import { assert } from "chai"; ``` -Next, we’ll want to set up the state variables we’ll be using throughout our +Next, we'll want to set up the state variables we'll be using throughout our tests. This includes the default Anchor setup as well as generating a Merkle tree keypair, the tree authority, and some notes. @@ -1217,12 +1217,12 @@ describe("compressed-notes", () => { }); ``` -Finally, let’s start with the tests themselves. First the `Create Note Tree` +Finally, let's start with the tests themselves. First the `Create Note Tree` test. This test will do two things: 1. Allocate a new account for the Merkle tree with a max depth of 3, max buffer size of 8, and canopy depth of 0 -2. Initialize this new account using our program’s `createNoteTree` instruction +2. Initialize this new account using our program's `createNoteTree` instruction ```typescript it("Create Note Tree", async () => { @@ -1258,7 +1258,7 @@ it("Create Note Tree", async () => { }); ``` -Next, we’ll create the `Add Note` test. It should call `append_note` with +Next, we'll create the `Add Note` test. It should call `append_note` with `firstNote`, then check that the onchain hash matches our computed hash and that the note log matches the text of the note we passed into the instruction. @@ -1282,7 +1282,7 @@ it("Add Note", async () => { }); ``` -Next, we’ll create the `Add Max Size Note` test. It is the same as the previous +Next, we'll create the `Add Max Size Note` test. It is the same as the previous test, but with the second note. ```typescript @@ -1306,14 +1306,14 @@ it("Add Max Size Note", async () => { }); ``` -Lastly, we’ll create the `Update First Note` test. This is slightly more complex -than adding a note. We’ll do the following: +Lastly, we'll create the `Update First Note` test. This is slightly more complex +than adding a note. We'll do the following: -1. Get the Merkle tree root as it’s required by the instruction. +1. Get the Merkle tree root as it's required by the instruction. 2. Call the `update_note` instruction of our program, passing in the index 0 (for the first note), the Merkle tree root, the first note, and the updated data. Remember, it needs the first note and the root because the program must - verify the entire proof path for the note’s leaf before it can be updated. + verify the entire proof path for the note's leaf before it can be updated. ```typescript it("Update First Note", async () => { @@ -1344,19 +1344,19 @@ it("Update First Note", async () => { }); ``` -That’s it, congrats! Go ahead and run `anchor test` and you should get four +That's it, congrats! Go ahead and run `anchor test` and you should get four passing tests. -If you’re running into issues, feel free to go back through some of the demo or +If you're running into issues, feel free to go back through some of the demo or look at the full solution code in the [Compressed Notes repository](https://github.com/unboxed-software/anchor-compressed-notes). ## Challenge -Now that you’ve practiced the basics of state compression, add a new instruction +Now that you've practiced the basics of state compression, add a new instruction to the Compressed Notes program. This new instruction should allow users to -delete an existing note. keep in mind that you can’t remove a leaf from the -tree, so you’ll need to decide what “deleted” looks like for your program. Good +delete an existing note. keep in mind that you can't remove a leaf from the +tree, so you'll need to decide what “deleted” looks like for your program. Good luck! If you'd like a very simple example of a delete function, check out the diff --git a/content/courses/token-extensions/close-mint.md b/content/courses/token-extensions/close-mint.md index f2751b852..42a0df6eb 100644 --- a/content/courses/token-extensions/close-mint.md +++ b/content/courses/token-extensions/close-mint.md @@ -290,7 +290,7 @@ the local RPC URL. const connection = new Connection("http://127.0.0.1:8899", "confirmed"); ``` -Alternatively, if you’d like to use testnet or devnet, import the +Alternatively, if you'd like to use testnet or devnet, import the `clusterApiUrl` from `@solana/web3.js` and pass it to the connection as such: ```typescript diff --git a/content/courses/token-extensions/default-account-state.md b/content/courses/token-extensions/default-account-state.md index baff06b7a..c0a19a134 100644 --- a/content/courses/token-extensions/default-account-state.md +++ b/content/courses/token-extensions/default-account-state.md @@ -296,7 +296,7 @@ the local RPC URL. const connection = new Connection("http://127.0.0.1:8899", "confirmed"); ``` -Alternatively, if you’d like to use testnet or devnet, import the +Alternatively, if you'd like to use testnet or devnet, import the `clusterApiUrl` from `@solana/web3.js` and pass it to the connection as such: ```typescript @@ -647,7 +647,7 @@ esrun src/index.ts #### 7.3 Transferring without thawing the recipient's account -Now that we’ve tested minting, we can test transferring our tokens frozen and +Now that we've tested minting, we can test transferring our tokens frozen and not. First lets test a transfer without thawing the recipient's token account. Remember, by default, the `otherTokenAccountKeypair` is frozen due to the extension. @@ -746,7 +746,7 @@ Remember the key takeaways: accounts. - Frozen account's balance cannot change. -Congratulations! We’ve just created and tested a mint using the default account +Congratulations! We've just created and tested a mint using the default account extension! ## Challenge diff --git a/content/courses/token-extensions/immutable-owner.md b/content/courses/token-extensions/immutable-owner.md index b5342a53a..d5eb17192 100644 --- a/content/courses/token-extensions/immutable-owner.md +++ b/content/courses/token-extensions/immutable-owner.md @@ -182,7 +182,7 @@ the local RPC URL. const connection = new Connection("http://127.0.0.1:8899", "confirmed"); ``` -Alternatively, if you’d like to use testnet or devnet, import the +Alternatively, if you'd like to use testnet or devnet, import the `clusterApiUrl` from `@solana/web3.js` and pass it to the connection as such: ```typescript @@ -360,7 +360,7 @@ const signature = await sendAndConfirmTransaction(connection, transaction, [ return signature; ``` -Now that we’ve added the functionality for `token-helper`, we can create our +Now that we've added the functionality for `token-helper`, we can create our test token accounts. One of the two test token accounts will be created by calling `createTokenAccountWithImmutableOwner`. The other will be created with the baked-in SPL helper function `createAssociatedTokenAccount`. This helper @@ -475,7 +475,7 @@ Now we can run `npx esrun src/index.ts`. This test should log a failure message similar to the one from the previous test. This means that both of our token accounts are in fact immutable and working as intended. -Congratulations! We’ve just created token accounts and tested the immutable +Congratulations! We've just created token accounts and tested the immutable owner extension! If you are stuck at any point, you can find the working code on the `solution` branch of [this repository](https://github.com/Unboxed-Software/solana-lab-immutable-owner/tree/solution). diff --git a/content/courses/token-extensions/interest-bearing-token.md b/content/courses/token-extensions/interest-bearing-token.md index ba44e30ad..29cfa7735 100644 --- a/content/courses/token-extensions/interest-bearing-token.md +++ b/content/courses/token-extensions/interest-bearing-token.md @@ -542,7 +542,7 @@ Now run `npx esrun src/index.ts`. This is expected to fail and log out **Mint tokens and read interest rate** -So we’ve tested updating the interest rate. How do we check that the accrued +So we've tested updating the interest rate. How do we check that the accrued interest increases when an account mints more tokens? We can use the `amountToUiAmount` and `getAccount` helpers from the SPL library to help us achieve this. @@ -690,7 +690,7 @@ try { This is expected to work and the new interest rate should be 10. -Thats it! We’ve just created an interest bearing token, updated the interest +Thats it! We've just created an interest bearing token, updated the interest rate and logged the updated state of the token! ## Challenge diff --git a/content/courses/token-extensions/non-transferable-token.md b/content/courses/token-extensions/non-transferable-token.md index f9f2d4c43..c62ceceb0 100644 --- a/content/courses/token-extensions/non-transferable-token.md +++ b/content/courses/token-extensions/non-transferable-token.md @@ -303,7 +303,7 @@ esrun src/index.ts ``` The non-transferable mint has been set up correctly and will be created when we -run `npm start`. Let’s move on to the next step and create a source account and +run `npm start`. Let's move on to the next step and create a source account and mint a token to it. #### 4. Mint token diff --git a/content/courses/token-extensions/permanent-delegate.md b/content/courses/token-extensions/permanent-delegate.md index bbc26b9a1..5576ca0af 100644 --- a/content/courses/token-extensions/permanent-delegate.md +++ b/content/courses/token-extensions/permanent-delegate.md @@ -338,7 +338,7 @@ the local RPC URL. const connection = new Connection("http://127.0.0.1:8899", "confirmed"); ``` -Alternatively, if you’d like to use testnet or devnet, import the +Alternatively, if you'd like to use testnet or devnet, import the `clusterApiUrl` from `@solana/web3.js` and pass it to the connection as such: ```typescript diff --git a/content/courses/token-extensions/required-memo.md b/content/courses/token-extensions/required-memo.md index c5f5decf3..43bab1061 100644 --- a/content/courses/token-extensions/required-memo.md +++ b/content/courses/token-extensions/required-memo.md @@ -242,7 +242,7 @@ the local RPC URL. `const connection = new Connection("http://127.0.0.1:8899", "confirmed");` -Alternatively, if you’d like to use testnet or devnet, import the +Alternatively, if you'd like to use testnet or devnet, import the `clusterApiUrl` from `@solana/web3.js` and pass it to the connection as such: ```typescript @@ -600,7 +600,7 @@ extension. npx esrun src/index.ts ``` -Congratulations! We’ve just tested the required memo extension! +Congratulations! We've just tested the required memo extension! ## Challenge diff --git a/content/courses/token-extensions/transfer-fee.md b/content/courses/token-extensions/transfer-fee.md index f981c5e98..16cd7ff93 100644 --- a/content/courses/token-extensions/transfer-fee.md +++ b/content/courses/token-extensions/transfer-fee.md @@ -535,7 +535,7 @@ the local RPC URL. const connection = new Connection("http://127.0.0.1:8899", "confirmed"); ``` -Alternatively, if you’d like to use testnet or devnet, import the +Alternatively, if you'd like to use testnet or devnet, import the `clusterApiUrl` from `@solana/web3.js` and pass it to the connection as such: ```typescript diff --git a/content/courses/tokens-and-nfts/token-program.md b/content/courses/tokens-and-nfts/token-program.md index 08794cf32..feb79adc9 100644 --- a/content/courses/tokens-and-nfts/token-program.md +++ b/content/courses/tokens-and-nfts/token-program.md @@ -402,7 +402,7 @@ async function buildMintToTransaction( SPL Token transfers require both the sender and receiver to have token accounts for the mint of the tokens being transferred. The tokens are transferred from -the sender’s token account to the receiver’s token account. +the sender's token account to the receiver's token account. You can use `getOrCreateAssociatedTokenAccount` when obtaining the receiver's associated token account to ensure their token account exists before the @@ -457,7 +457,7 @@ async function buildTransferTransaction( ### Lab -We’re going to use the Token Program to create a Token Mint, create an +We're going to use the Token Program to create a Token Mint, create an Associated Token Account, mint tokens, transfer tokens, and burn tokens. Assuming you already have a `.env` file with a `SECRET_KEY` setup per @@ -838,7 +838,7 @@ balance go up! ### Challenge -Now it’s your turn to build something independently. Create an application that +Now it's your turn to build something independently. Create an application that allows a user to create a new mint, create a token account, and mint tokens. To interact with the Token Program using the wallet adapter, you will have to diff --git a/content/guides/advanced/stake-weighted-qos.md b/content/guides/advanced/stake-weighted-qos.md index 7fe090140..3a59738a8 100644 --- a/content/guides/advanced/stake-weighted-qos.md +++ b/content/guides/advanced/stake-weighted-qos.md @@ -106,7 +106,7 @@ Stake-weighted QoS will not work unless BOTH sides are properly configured. ### Configuring the Validator node -On the validator, you’ll have to enable +On the validator, you'll have to enable `--staked-nodes-overrides /path/to/overrides.yml`. The `--staked-nodes-overrides` flag helps the validator prioritize transactions being sent from known sources to apply stake to their transactions. This can @@ -114,7 +114,7 @@ help a validator prioritize certain transactions over known hosts over others, enabling the usage of Stake-weighted QoS with RPCs. RPCs should not be staked in any way. -Today, Stake-weighted QoS gives a stake-weighted priority to 80% of a leader’s +Today, Stake-weighted QoS gives a stake-weighted priority to 80% of a leader's TPU capacity. However, there are configuration options which can be used to virtually assign different stake-weights to TPU peers, including assigning unstaked peers virtual stake. @@ -130,7 +130,7 @@ staked_map_id: `staked_map_id` contains a map of identity public key to the stake amount in lamports to apply to each RPC. When set, the validator will prioritize QUIC connections with the RPC found at that identity publicKey, assigning an amount -of stake to their transactions. The 80% of the leader’s TPU capacity will be +of stake to their transactions. The 80% of the leader's TPU capacity will be split proportionally based on the lamport amounts specified in the `staked-nodes-overrides` file and existing cluster stake. diff --git a/content/guides/games/hello-world.md b/content/guides/games/hello-world.md index 9befc65a6..23e4b4bab 100644 --- a/content/guides/games/hello-world.md +++ b/content/guides/games/hello-world.md @@ -195,7 +195,7 @@ Alternatively, you can use the signer's address as an extra seed in the ### Move Left Instruction -Now that we can initialize a `GameDataAccount` account, let’s implement the +Now that we can initialize a `GameDataAccount` account, let's implement the `move_left` instruction which allows a player update their `player_position`. In this example, moving left simply means decrementing the `player_position` @@ -233,8 +233,8 @@ pub struct MoveLeft<'info> { ### Move Right Instruction -Lastly, let’s implement the `move_right` instruction. Similarly, moving right -will simply mean incrementing the `player_position` by 1. We’ll also limit the +Lastly, let's implement the `move_right` instruction. Similarly, moving right +will simply mean incrementing the `player_position` by 1. We'll also limit the maximum position to 3. Just like before, the only account needed for this instruction is the @@ -381,7 +381,7 @@ file and add the code snippets from the following sections. ### Derive the GameDataAccount Account Address -First, let’s derive the PDA for the `GameDataAccount` using the +First, let's derive the PDA for the `GameDataAccount` using the `findProgramAddress` function. > A [Program Derived Address (PDA)](/docs/core/pda.md) is unique address in the @@ -398,7 +398,7 @@ const [globalLevel1GameDataAccount, bump] = ### Initialize the Game State -Next, let’s try to fetch the game data account using the PDA from the previous +Next, let's try to fetch the game data account using the PDA from the previous step. If the account doesn't exist, we'll create it by invoking the `initialize` instruction from our program. @@ -460,8 +460,8 @@ console.log("Player position is:", gameDateAccount.playerPosition.toString()); ### Logging the Player's Position -Lastly, let’s use a `switch` statement to log the character's position based on -the `playerPosition` value stored in the `gameDateAccount`. We’ll use this as a +Lastly, let's use a `switch` statement to log the character's position based on +the `playerPosition` value stored in the `gameDateAccount`. We'll use this as a visual representation of the character's movement in the game. ```ts filename="client.ts" diff --git a/content/guides/games/interact-with-tokens.md b/content/guides/games/interact-with-tokens.md index 3e74748b6..d36375972 100644 --- a/content/guides/games/interact-with-tokens.md +++ b/content/guides/games/interact-with-tokens.md @@ -88,13 +88,13 @@ pub mod anchor_token { ``` Here we are simply bringing into scope the crates and corresponding modules we -will be using for this program. We’ll be using the `anchor_spl` and +will be using for this program. We'll be using the `anchor_spl` and `mpl_token_metadata` crates to help us interact with the SPL Token program and Metaplex's Token Metadata program. ## Create Mint instruction -First, let’s implement an instruction to create a new token mint and its +First, let's implement an instruction to create a new token mint and its metadata account. The on-chain token metadata, including the name, symbol, and URI, will be provided as parameters to the instruction. @@ -107,7 +107,7 @@ The `create_mint` instruction requires the following accounts: - `admin` - the `ADMIN_PUBKEY` that signs the transaction and pays for the initialization of the accounts - `reward_token_mint` - the new token mint we are initializing, using a PDA as - both the mint account’s address and its mint authority + both the mint account's address and its mint authority - `metadata_account` - the metadata account we are initializing for the token mint - `token_program` - required for interacting with instructions on the Token @@ -295,7 +295,7 @@ health by 10 and mints 1 token to the player's token account as a reward. The `kill_enemy` instruction requires the following accounts: - `player` - the player receiving the token -- `player_data` - the player data account storing the player’s current health +- `player_data` - the player data account storing the player's current health - `player_token_account` - the player's associated token account where tokens will be minted - `reward_token_mint` - the token mint account, specifying the type of token @@ -389,7 +389,7 @@ pub enum ErrorCode { ``` The player's health is reduced by 10 to represent the “battle with the enemy”. -We’ll also check the player's current health and return a custom Anchor error if +We'll also check the player's current health and return a custom Anchor error if the player has 0 health. The instruction then uses a cross-program invocation (CPI) to call the `mint_to` @@ -409,7 +409,7 @@ token and restore their health to its maximum value. The `heal` instruction requires the following accounts: - `player` - the player executing the healing action -- `player_data` - the player data account storing the player’s current health +- `player_data` - the player data account storing the player's current health - `player_token_account` - the player's associated token account where the tokens will be burned - `reward_token_mint` - the token mint account, specifying the type of token diff --git a/content/guides/games/store-sol-in-pda.md b/content/guides/games/store-sol-in-pda.md index a024af0f7..d472df7f7 100644 --- a/content/guides/games/store-sol-in-pda.md +++ b/content/guides/games/store-sol-in-pda.md @@ -180,7 +180,7 @@ displays the starting message. The `initialize_level_one` instruction requires 4 accounts: - `new_game_data_account` - the `GameDataAccount` we are initializing to store - the player’s position + the player's position - `chest_vault` - the `ChestVaultAccount` we are initializing to store the SOL reward - `signer` - the player paying for the initialization of the accounts diff --git a/content/guides/getstarted/cosmwasm-to-solana.md b/content/guides/getstarted/cosmwasm-to-solana.md index 5709298fc..04666aa67 100644 --- a/content/guides/getstarted/cosmwasm-to-solana.md +++ b/content/guides/getstarted/cosmwasm-to-solana.md @@ -408,7 +408,7 @@ pub fn process_reset( ## Solana Program Advantages 1. Performance Efficiency: - - Solana’s binary instruction data and direct account manipulation provide + - Solana's binary instruction data and direct account manipulation provide high performance and low latency. - This is critical for high-throughput applications like decentralized exchanges (DEXes) and other performance-sensitive use cases. @@ -424,6 +424,6 @@ pub fn process_reset( specialized logic. In conclusion, Solana is ideal for applications that require high performance, -low latency, and fine-grained control over execution. It’s better suited for +low latency, and fine-grained control over execution. It's better suited for developers comfortable with lower-level programming and those who need to optimize for specific use cases. diff --git a/content/guides/getstarted/intro-to-anchor.md b/content/guides/getstarted/intro-to-anchor.md index 3012c23cb..7b098c196 100644 --- a/content/guides/getstarted/intro-to-anchor.md +++ b/content/guides/getstarted/intro-to-anchor.md @@ -27,7 +27,7 @@ and abstractions that make building Solana programs more intuitive and secure. The main macros found in an Anchor program include: - [`declare_id`](#declare_id-macro): Specifies the program's on-chain address -- [`#[program]`](#program-macro): Specifies the module containing the program’s +- [`#[program]`](#program-macro): Specifies the module containing the program's instruction logic - [`#[derive(Accounts)]`](#derive-accounts-macro): Applied to structs to indicate a list of accounts required for an instruction diff --git a/content/guides/getstarted/local-rust-hello-world.md b/content/guides/getstarted/local-rust-hello-world.md index 864c80399..88b4b8692 100644 --- a/content/guides/getstarted/local-rust-hello-world.md +++ b/content/guides/getstarted/local-rust-hello-world.md @@ -306,7 +306,7 @@ await connection.confirmTransaction({ }); console.log( - `Congratulations! Look at your ‘Hello World’ transaction in the Solana Explorer: + `Congratulations! Look at your ‘Hello World' transaction in the Solana Explorer: https://explorer.solana.com/tx/${txHash}?cluster=custom`, ); ``` @@ -325,7 +325,7 @@ node client.mjs You should see the following output: ```shell -Congratulations! Look at your ‘Hello World’ transaction in the Solana Explorer: +Congratulations! Look at your ‘Hello World' transaction in the Solana Explorer: https://explorer.solana.com/tx/2fTcQ74z4DVi8WRuf2oNZ36z7k9tGRThaRPXBMYgjMUNUbUSKLrP6djpRUZ8msuTXvZHFe3UXi31dfgytG2aJZbv?cluster=custom ``` diff --git a/content/guides/getstarted/rust-to-solana.md b/content/guides/getstarted/rust-to-solana.md index 883f372c8..3c001d31b 100644 --- a/content/guides/getstarted/rust-to-solana.md +++ b/content/guides/getstarted/rust-to-solana.md @@ -35,13 +35,13 @@ need to know to start their Solana journeys. ## Understanding the Core Differences First, note that this guide aims at understanding the differences in using Rust -as a language when working with Solana. It won’t cover +as a language when working with Solana. It won't cover [Blockchain or Solana basics](https://solana.com/learn/blockchain-basics). -It also won’t cover core Solana concepts that must be understood in order to +It also won't cover core Solana concepts that must be understood in order to program in Solana, such as: -- [Programs](https://solana.com/docs/core/programs) - Solana’s version of smart +- [Programs](https://solana.com/docs/core/programs) - Solana's version of smart contracts - [Accounts](https://solana.com/docs/core/accounts) - A record in the Solana ledger that either holds data (a data account) or is an executable program @@ -53,7 +53,7 @@ program in Solana, such as: For more information on those core concepts, check out the [Solana developer documentation](https://solana.com/docs). -Let’s now look at the differences in **project setup**. +Let's now look at the differences in **project setup**. ## Key Setup Details @@ -152,7 +152,7 @@ Using an additional crate that depends on `rand` will also cause compile errors. However, if the crate used simply depends on `rand` but does not actually generate random numbers, then it is possible to work around this by adding the -following to the program’s Cargo.toml: +following to the program's Cargo.toml: ```toml [dependencies] @@ -222,7 +222,7 @@ allows developers to develop and deploy Solana programs. ![Solana Playground](/assets/guides/rust-to-solana/solana-playground.png) -It’s the easiest way to begin developing with Solana, and it supports building, +It's the easiest way to begin developing with Solana, and it supports building, testing, and deploying Solana Rust programs. Additionally, a number of built-in tutorials are available to guide learning. @@ -247,7 +247,7 @@ and then use `anchor init ` to create a new Anchor project. ## Creating offchain Programs So far, this guide has covered the key details of developing **onchain Solana -programs** in Rust. However, it’s also possible to develop **offchain Solana +programs** in Rust. However, it's also possible to develop **offchain Solana clients** in Rust. This can be done by using the [solana_sdk crate](https://docs.rs/solana-sdk/latest/solana_sdk/). This contains the [solana_client crate](https://docs.rs/solana-client/latest/solana_client/) diff --git a/content/guides/getstarted/scaffold-nextjs-anchor.md b/content/guides/getstarted/scaffold-nextjs-anchor.md index 5adfef9a4..95729eb8d 100644 --- a/content/guides/getstarted/scaffold-nextjs-anchor.md +++ b/content/guides/getstarted/scaffold-nextjs-anchor.md @@ -57,7 +57,7 @@ If you haven't installed Solana CLI, Rust, or Anchor before, you can easily do so by [following our helpful installation guide](https://solana.com/docs/intro/installation) -> This scaffolds only supports TypeScript for now, but don’t worry, TypeScript +> This scaffolds only supports TypeScript for now, but don't worry, TypeScript > simply extends on the JavaScript you already know to add helpful type > definitions. diff --git a/content/guides/getstarted/solana-test-validator.md b/content/guides/getstarted/solana-test-validator.md index c69046e2c..a2dd52058 100644 --- a/content/guides/getstarted/solana-test-validator.md +++ b/content/guides/getstarted/solana-test-validator.md @@ -76,7 +76,7 @@ Once you have the `solana-test-validator` up and running, you can interact with it using various Solana CLI (Command Line Interface) commands. These commands let you [deploy programs](/docs/programs/deploying.md), manage [accounts](/docs/core/accounts.md), send -[transactions](/docs/core/transactions.md), and much more. Here’s a detailed +[transactions](/docs/core/transactions.md), and much more. Here's a detailed guide on the key commands you will use. ### Checking the Status of the Test Validator diff --git a/content/guides/javascript/get-program-accounts.md b/content/guides/javascript/get-program-accounts.md index 3b750e21d..dedc4c497 100644 --- a/content/guides/javascript/get-program-accounts.md +++ b/content/guides/javascript/get-program-accounts.md @@ -144,7 +144,7 @@ token accounts that are owned by our wallet address. When looking at a token account, we can see the first two fields stored on a token account are both pubkeys, and that each pubkey is 32 bytes in length. Given that `owner` is the second field, we should begin our `memcmp` at an `offset` of 32 bytes. From -here, we’ll be looking for accounts whose owner field matches our wallet +here, we'll be looking for accounts whose owner field matches our wallet address. ![Account Size](/public/assets/guides/get-program-accounts/memcmp.png) @@ -217,7 +217,7 @@ Much like `memcmp`, `dataSlice` accepts two arguments: - `length`: The number of bytes which should be returned `dataSlice` is particularly useful when we run queries on a large dataset but -don’t actually care about the account data itself. An example of this would be +don't actually care about the account data itself. An example of this would be if we wanted to find the number of token accounts (i.e. number of token holders) for a particular token mint. @@ -301,7 +301,7 @@ Found 3 token account(s) for mint BUGuuhPsHpk8YZrL2GctsCtXGneL1gmT5zYb7eMHZDWf ``` By combining all three parameters (`dataSlice`, `dataSize`, and `memcmp`) we can -limit the scope of our query and efficiently return only the data we’re +limit the scope of our query and efficiently return only the data we're interested in. ## Other Resources diff --git a/content/guides/token-extensions/getting-started.md b/content/guides/token-extensions/getting-started.md index 67c2ac233..5e43e6a42 100644 --- a/content/guides/token-extensions/getting-started.md +++ b/content/guides/token-extensions/getting-started.md @@ -105,7 +105,7 @@ make sense to combine: - Confidential transfer + permanent delegate Other than these, you have the option to customize with any combination of token -extensions that suit your project’s needs. +extensions that suit your project's needs. ## How do I add custom logic to my tokens with token extensions? @@ -125,7 +125,7 @@ It is important to note that while transfer hooks give the capability to insert custom logic within a transfer, all accounts from the initial transfer are converted to read-only accounts. This means that the signer privileges of the sender do not extend to the Transfer Hook program. This is to avoid potential -unexpected logic executing on someone’s wallet who interacts with a token with +unexpected logic executing on someone's wallet who interacts with a token with transfer hooks, protecting the users. You can diff --git a/content/guides/token-extensions/transfer-hook.md b/content/guides/token-extensions/transfer-hook.md index b5b70559b..685850004 100644 --- a/content/guides/token-extensions/transfer-hook.md +++ b/content/guides/token-extensions/transfer-hook.md @@ -790,7 +790,7 @@ create_account( )?; ``` -Once we’ve created the account, we initialize the account data to store the list +Once we've created the account, we initialize the account data to store the list of ExtraAccountMetas. ```rust @@ -810,7 +810,7 @@ ExtraAccountMetas account. ### Custom Transfer Hook Instruction -Next, let’s implement the custom `transfer_hook` instruction. This is the +Next, let's implement the custom `transfer_hook` instruction. This is the instruction the Token Extension program will invoke on every token transfer. In this example, we will require a fee paid in wSOL for every token transfer. diff --git a/content/guides/wallets/add-solana-wallet-adapter-to-nextjs.md b/content/guides/wallets/add-solana-wallet-adapter-to-nextjs.md index f360fd035..e0e8f5d1c 100644 --- a/content/guides/wallets/add-solana-wallet-adapter-to-nextjs.md +++ b/content/guides/wallets/add-solana-wallet-adapter-to-nextjs.md @@ -148,7 +148,7 @@ import the provided standard CSS styles required for these react components to be displayed properly in our application. Each of these styles can be easily overridden to customize the look. -Let’s import these dependencies and use them further in the context/provider +Let's import these dependencies and use them further in the context/provider component we are building: ```tsx filename=AppWalletProvider.tsx @@ -340,7 +340,7 @@ side of your app that is a child of your `AppWalletAdapter` context. In this example guide, it will be your entire application. - the `useWallet` hook has details like `publicKey` and state of the wallet, - whether it’s `connecting` or it’s `connected`. + whether it's `connecting` or it's `connected`. - the `useConnection` hook will facilitate your application's connection to the Solana blockchain, via your RPC endpoint @@ -397,7 +397,7 @@ const getAirdropOnClick = async () => { ### Getting a wallet balance -Here’s an example of getting the SOL balance of the wallet connected using the +Here's an example of getting the SOL balance of the wallet connected using the `useConnection` and `useWallet` hooks. [`getBalance`](https://solana.com/docs/rpc/http/getbalance#parameters) is an RPC @@ -425,7 +425,7 @@ With functions like these and the ones provided within the wallet adapter packages, you can detect whether the user's wallet is connected or not, create a button to get an airdrop of devnet or SOL in the network defined, and more. -Let’s make another page now to demonstrate how we can use each of these hooks to +Let's make another page now to demonstrate how we can use each of these hooks to access actually access the `connection` object and your user's wallet state to send or sign transactions, read the wallet balance, and test functionality. diff --git a/content/workshops/solana-101.md b/content/workshops/solana-101.md index 1210c2ed8..72850d2b4 100644 --- a/content/workshops/solana-101.md +++ b/content/workshops/solana-101.md @@ -9,7 +9,7 @@ repoUrl: https://github.com/Solana-Workshops/solana-101 duration: "2 hours" objectives: - The Solana Network - - Solana’s Programming Model + - Solana's Programming Model - Tokens & NFTs tags: - Introduction @@ -36,7 +36,7 @@ authorGithubUsername: buffalojoec - Technical Advantages - Network Overview -#### Solana’s Programming Model +#### Solana's Programming Model - Accounts @@ -64,19 +64,19 @@ authorGithubUsername: buffalojoec ### Why Solana? -Let’s talk about the main technological advantages to building a decentralized +Let's talk about the main technological advantages to building a decentralized application on Solana. -Solana has extremely fast block confirmation times, so users don’t have to wait +Solana has extremely fast block confirmation times, so users don't have to wait to make sure their action worked. -Solana’s transaction fees are exceptionally low, so developers can build more +Solana's transaction fees are exceptionally low, so developers can build more robust user experiences that cost less. -Let’s take a brief look at how Solana’s network creates blocks and processes +Let's take a brief look at how Solana's network creates blocks and processes transactions. Like most proof-of-stake networks, Solana elects a leader for each block -creation cycle, who’s responsible for creating a new block. +creation cycle, who's responsible for creating a new block. Unlike Ethereum - Solana does not use a mempool. Instead, it forwards new transactions to the next leader in the block creation cycle, which means when @@ -86,12 +86,12 @@ into a new block. Next, Solana leverages a high-throughput engine called Turbine that disseminates information about a new block to the rest of the network. -When a block’s transactions are executed, Solana’s runtime actually allows the +When a block's transactions are executed, Solana's runtime actually allows the operations within each transaction to run in parallel wherever possible. The combination of these 3 innovations leads to greatly increased speed and throughput for the network. -Solana’s most popular innovation is Proof-of-History, which leverages a +Solana's most popular innovation is Proof-of-History, which leverages a Verifiable-Delay Function (VDF) to allow all nodes in the network to agree on the passage of time. @@ -100,23 +100,23 @@ Weighted QoS, makes it perfect for high-performance applications. ### Programming on Solana -Now let’s dive into the concepts you’ll need to know when programming on Solana. -The first thing we’ll want to understand is the concept of an account. +Now let's dive into the concepts you'll need to know when programming on Solana. +The first thing we'll want to understand is the concept of an account. #### Account An account on Solana is a slice of data from the blockchain. Everything on Solana is an account! You can kind of think of it like a -computer’s file system - where everything is a file! +computer's file system - where everything is a file! Every account has a unique address, holds some balance of SOL, and can store arbitrary data. Based on the size of that arbitrary data, a user is required to -pay some value of SOL for what’s called “Rent”. +pay some value of SOL for what's called “Rent”. Since this is blockchain data, anyone can read from an account. Also, anyone can -credit SOL or tokens to an account. However, only an account’s owner can modify -its data - which includes debiting it’s SOL balance. +credit SOL or tokens to an account. However, only an account's owner can modify +its data - which includes debiting it's SOL balance. ``` { @@ -134,9 +134,9 @@ its data - which includes debiting it’s SOL balance. If we take a look at what an actual account looks like in raw form, we can see some of the fields present on all accounts shown here. -The “key” field is just that account’s address. +The “key” field is just that account's address. -The “lamports” field simply tracks that account’s current balance of SOL. +The “lamports” field simply tracks that account's current balance of SOL. Lamports are the smaller denomination of SOL. “Data” is where the arbitrary data is stored inside of an account. @@ -145,7 +145,7 @@ If that arbitrary data stored in this account is actually an executable program, the “is_executable” boolean will be set to true. Lastly, the “owner” field determines which Solana program has the authority to -perform changes to this account’s data, including its balance of Lamports. +perform changes to this account's data, including its balance of Lamports. #### Programs @@ -157,9 +157,9 @@ we mentioned before. Right now, Solana programs can be written in Rust, C/C++ or Python. Soon, we may be able to write programs in other languages - such as TypeScript and GoLang. -Unlike Ethereum’s “smart contracts”, programs don’t actually have state of their +Unlike Ethereum's “smart contracts”, programs don't actually have state of their own. Instead, they perform reads and writes on accounts from the blockchain. To -perform a write, this program must be the designated owner of the account it’s +perform a write, this program must be the designated owner of the account it's attempting to modify. Programs are designed to process what are called “instructions”, and they can also send these instructions to other programs on the network. diff --git a/docs/advanced/confirmation.md b/docs/advanced/confirmation.md index 98e56cb57..02cc91ad5 100644 --- a/docs/advanced/confirmation.md +++ b/docs/advanced/confirmation.md @@ -40,7 +40,7 @@ where the magic happens and at a high level it consists of four components: - a **list of accounts** to load, and - a **“recent blockhash.”** -In this article, we’re going to be focusing a lot on a transaction’s +In this article, we're going to be focusing a lot on a transaction's [recent blockhash](/docs/terminology.md#blockhash) because it plays a big role in transaction confirmation. @@ -65,14 +65,14 @@ touch on everything except steps 1 and 4. A [“blockhash”](/docs/terminology.md#blockhash) refers to the last Proof of History (PoH) hash for a [“slot”](/docs/terminology.md#slot) (description -below). Since Solana uses PoH as a trusted clock, a transaction’s recent +below). Since Solana uses PoH as a trusted clock, a transaction's recent blockhash can be thought of as a **timestamp**. ### Proof of History refresher -Solana’s Proof of History mechanism uses a very long chain of recursive SHA-256 +Solana's Proof of History mechanism uses a very long chain of recursive SHA-256 hashes to build a trusted clock. The “history” part of the name comes from the -fact that block producers hash transaction id’s into the stream to record which +fact that block producers hash transaction id's into the stream to record which transactions were processed in their block. [PoH hash calculation](https://github.com/anza-xyz/agave/blob/aa0922d6845e119ba466f88497e8209d1c82febc/entry/src/poh.rs#L79): @@ -123,7 +123,7 @@ the runtime. ### Example of transaction expiration -Let’s walk through a quick example: +Let's walk through a quick example: 1. A validator is actively producing a new block for the current slot 2. The validator receives a transaction from a user with the recent blockhash @@ -138,26 +138,26 @@ Let’s walk through a quick example: then starts producing the block for the next slot (validators get to produce blocks for 4 consecutive slots) 6. The validator checks that same transaction again and finds it is now 152 - blockhashes old and rejects it because it’s too old :( + blockhashes old and rejects it because it's too old :( ## Why do transactions expire? -There’s a very good reason for this actually, it’s to help validators avoid +There's a very good reason for this actually, it's to help validators avoid processing the same transaction twice. A naive brute force approach to prevent double processing could be to check -every new transaction against the blockchain’s entire transaction history. But +every new transaction against the blockchain's entire transaction history. But by having transactions expire after a short amount of time, validators only need to check if a new transaction is in a relatively small set of _recently_ processed transactions. ### Other blockchains -Solana’s approach of prevent double processing is quite different from other +Solana's approach of prevent double processing is quite different from other blockchains. For example, Ethereum tracks a counter (nonce) for each transaction sender and will only process transactions that use the next valid nonce. -Ethereum’s approach is simple for validators to implement, but it can be +Ethereum's approach is simple for validators to implement, but it can be problematic for users. Many people have encountered situations when their Ethereum transactions got stuck in a _pending_ state for a long time and all the later transactions, which used higher nonce values, were blocked from @@ -165,12 +165,12 @@ processing. ### Advantages on Solana -There are a few advantages to Solana’s approach: +There are a few advantages to Solana's approach: 1. A single fee payer can submit multiple transactions at the same time that are - allowed to be processed in any order. This might happen if you’re using + allowed to be processed in any order. This might happen if you're using multiple applications at the same time. -2. If a transaction doesn’t get committed to a block and expires, users can try +2. If a transaction doesn't get committed to a block and expires, users can try again knowing that their previous transaction will NOT ever be processed. By not using counters, the Solana wallet experience may be easier for users to @@ -181,7 +181,7 @@ quickly and avoid annoying pending states. Of course there are some disadvantages too: -1. Validators have to actively track a set of all processed transaction id’s to +1. Validators have to actively track a set of all processed transaction id's to prevent double processing. 2. If the expiration time period is too short, users might not be able to submit their transaction before it expires. @@ -189,7 +189,7 @@ Of course there are some disadvantages too: These disadvantages highlight a tradeoff in how transaction expiration is configured. If the expiration time of a transaction is increased, validators need to use more memory to track more transactions. If expiration time is -decreased, users don’t have enough time to submit their transaction. +decreased, users don't have enough time to submit their transaction. Currently, Solana clusters require that transactions use blockhashes that are no more than 151 blocks old. @@ -208,27 +208,27 @@ target time of 400ms. One minute is not a lot of time considering that a client needs to fetch a recent blockhash, wait for the user to sign, and finally hope that the -broadcasted transaction reaches a leader that is willing to accept it. Let’s go +broadcasted transaction reaches a leader that is willing to accept it. Let's go through some tips to help avoid confirmation failures due to transaction expiration! ### Fetch blockhashes with the appropriate commitment level -Given the short expiration time frame, it’s imperative that clients and +Given the short expiration time frame, it's imperative that clients and applications help users create transactions with a blockhash that is as recent as possible. When fetching blockhashes, the current recommended RPC API is called [`getLatestBlockhash`](/docs/rpc/http/getLatestBlockhash.mdx). By default, this API uses the `finalized` commitment level to return the most recently finalized -block’s blockhash. However, you can override this behavior by +block's blockhash. However, you can override this behavior by [setting the `commitment` parameter](/docs/rpc/index.mdx#configuring-state-commitment) to a different commitment level. **Recommendation** The `confirmed` commitment level should almost always be used for RPC requests -because it’s usually only a few slots behind the `processed` commitment and has +because it's usually only a few slots behind the `processed` commitment and has a very low chance of belonging to a dropped [fork](https://docs.solanalabs.com/consensus/fork-generation). @@ -237,10 +237,10 @@ But feel free to consider the other options: - Choosing `processed` will let you fetch the most recent blockhash compared to other commitment levels and therefore gives you the most time to prepare and process a transaction. But due to the prevalence of forking in the Solana - blockchain, roughly 5% of blocks don’t end up being finalized by the cluster - so there’s a real chance that your transaction uses a blockhash that belongs + blockchain, roughly 5% of blocks don't end up being finalized by the cluster + so there's a real chance that your transaction uses a blockhash that belongs to a dropped fork. Transactions that use blockhashes for abandoned blocks - won’t ever be considered recent by any blocks that are in the finalized + won't ever be considered recent by any blocks that are in the finalized blockchain. - Using the [default commitment](/docs/rpc#default-commitment) level `finalized` will eliminate any risk that the blockhash you choose will belong to a dropped @@ -259,22 +259,22 @@ into issues due to one node lagging behind the other. When RPC nodes receive a `sendTransaction` request, they will attempt to determine the expiration block of your transaction using the most recent finalized block or with the block selected by the `preflightCommitment` -parameter. A **VERY** common issue is that a received transaction’s blockhash +parameter. A **VERY** common issue is that a received transaction's blockhash was produced after the block used to calculate the expiration for that -transaction. If an RPC node can’t determine when your transaction expires, it +transaction. If an RPC node can't determine when your transaction expires, it will only forward your transaction **one time** and afterwards will then **drop** the transaction. Similarly, when RPC nodes receive a `simulateTransaction` request, they will simulate your transaction using the most recent finalized block or with the block selected by the `preflightCommitment` parameter. If the block chosen for -simulation is older than the block used for your transaction’s blockhash, the +simulation is older than the block used for your transaction's blockhash, the simulation will fail with the dreaded “blockhash not found” error. **Recommendation** Even if you use `skipPreflight`, **ALWAYS** set the `preflightCommitment` -parameter to the same commitment level used to fetch your transaction’s +parameter to the same commitment level used to fetch your transaction's blockhash for both `sendTransaction` and `simulateTransaction` requests. ### Be wary of lagging RPC nodes when sending transactions @@ -290,18 +290,18 @@ lagging behind the first. For `sendTransaction` requests, clients should keep resending a transaction to a RPC node on a frequent interval so that if an RPC node is slightly lagging -behind the cluster, it will eventually catch up and detect your transaction’s +behind the cluster, it will eventually catch up and detect your transaction's expiration properly. For `simulateTransaction` requests, clients should use the [`replaceRecentBlockhash`](/docs/rpc/http/simulateTransaction.mdx) parameter to -tell the RPC node to replace the simulated transaction’s blockhash with a +tell the RPC node to replace the simulated transaction's blockhash with a blockhash that will always be valid for simulation. ### Avoid reusing stale blockhashes Even if your application has fetched a very recent blockhash, be sure that -you’re not reusing that blockhash in transactions for too long. The ideal +you're not reusing that blockhash in transactions for too long. The ideal scenario is that a recent blockhash is fetched right before a user signs their transaction. @@ -309,19 +309,19 @@ transaction. Poll for new recent blockhashes on a frequent basis to ensure that whenever a user triggers an action that creates a transaction, your application already has -a fresh blockhash that’s ready to go. +a fresh blockhash that's ready to go. **Recommendation for wallets** -Poll for new recent blockhashes on a frequent basis and replace a transaction’s +Poll for new recent blockhashes on a frequent basis and replace a transaction's recent blockhash right before they sign the transaction to ensure the blockhash is as fresh as possible. ### Use healthy RPC nodes when fetching blockhashes By fetching the latest blockhash with the `confirmed` commitment level from an -RPC node, it’s going to respond with the blockhash for the latest confirmed -block that it’s aware of. Solana’s block propagation protocol prioritizes +RPC node, it's going to respond with the blockhash for the latest confirmed +block that it's aware of. Solana's block propagation protocol prioritizes sending blocks to staked nodes so RPC nodes naturally lag about a block behind the rest of the cluster. They also have to do more work to handle application requests and can lag a lot more under heavy user traffic. @@ -338,7 +338,7 @@ still return a blockhash that is just about to expire. Monitor the health of your RPC nodes to ensure that they have an up-to-date view of the cluster state with one of the following methods: -1. Fetch your RPC node’s highest processed slot by using the +1. Fetch your RPC node's highest processed slot by using the [`getSlot`](/docs/rpc/http/getSlot.mdx) RPC API with the `processed` commitment level and then call the [`getMaxShredInsertSlot](/docs/rpc/http/getMaxShredInsertSlot.mdx) RPC API to @@ -373,25 +373,25 @@ To start using durable transactions, a user first needs to submit a transaction that [invokes instructions that create a special on-chain “nonce” account](https://docs.rs/solana-program/latest/solana_program/system_instruction/fn.create_nonce_account.html) and stores a “durable blockhash” inside of it. At any point in the future (as -long as the nonce account hasn’t been used yet), the user can create a durable +long as the nonce account hasn't been used yet), the user can create a durable transaction by following these 2 rules: 1. The instruction list must start with an [“advance nonce” system instruction](https://docs.rs/solana-program/latest/solana_program/system_instruction/fn.advance_nonce_account.html) which loads their on-chain nonce account -2. The transaction’s blockhash must be equal to the durable blockhash stored by +2. The transaction's blockhash must be equal to the durable blockhash stored by the on-chain nonce account -Here’s how these durable transactions are processed by the Solana runtime: +Here's how these durable transactions are processed by the Solana runtime: -1. If the transaction’s blockhash is no longer “recent”, the runtime checks if - the transaction’s instruction list begins with an “advance nonce” system +1. If the transaction's blockhash is no longer “recent”, the runtime checks if + the transaction's instruction list begins with an “advance nonce” system instruction 2. If so, it then loads the nonce account specified by the “advance nonce” instruction -3. Then it checks that the stored durable blockhash matches the transaction’s +3. Then it checks that the stored durable blockhash matches the transaction's blockhash -4. Lastly it makes sure to advance the nonce account’s stored blockhash to the +4. Lastly it makes sure to advance the nonce account's stored blockhash to the latest recent blockhash to ensure that the same transaction can never be processed again diff --git a/docs/advanced/retry.md b/docs/advanced/retry.md index f69bddb8e..51e38f467 100644 --- a/docs/advanced/retry.md +++ b/docs/advanced/retry.md @@ -24,7 +24,7 @@ their own custom rebroadcasting logic. - Developers should enable preflight checks to raise errors before transactions are submitted - Before re-signing any transaction, it is **very important** to ensure that the - initial transaction’s blockhash has expired + initial transaction's blockhash has expired ## The Journey of a Transaction @@ -59,13 +59,13 @@ forwarding it to the relevant leaders. UDP allows validators to quickly communicate with one another, but does not provide any guarantees regarding transaction delivery. -Because Solana’s leader schedule is known in advance of every +Because Solana's leader schedule is known in advance of every [epoch](/docs/terminology.md#epoch) (~2 days), an RPC node will broadcast its transaction directly to the current and next leaders. This is in contrast to other gossip protocols such as Ethereum that propagate transactions randomly and broadly across the entire network. By default, RPC nodes will try to forward transactions to leaders every two seconds until either the transaction is -finalized or the transaction’s blockhash expires (150 blocks or ~1 minute 19 +finalized or the transaction's blockhash expires (150 blocks or ~1 minute 19 seconds as of the time of this writing). If the outstanding rebroadcast queue size is greater than [10,000 transactions](https://github.com/solana-labs/solana/blob/bfbbc53dac93b3a5c6be9b4b65f679fdb13e41d9/send-transaction-service/src/send_transaction_service.rs#L20), @@ -75,7 +75,7 @@ that RPC operators can adjust to change the default behavior of this retry logic. When an RPC node broadcasts a transaction, it will attempt to forward the -transaction to a leader’s +transaction to a leader's [Transaction Processing Unit (TPU)](https://github.com/solana-labs/solana/blob/cd6f931223181d5a1d47cba64e857785a175a760/core/src/validator.rs#L867). The TPU processes transactions in five distinct phases: @@ -105,7 +105,7 @@ For more information on the TPU, please refer to ## How Transactions Get Dropped -Throughout a transaction’s journey, there are a few scenarios in which the +Throughout a transaction's journey, there are a few scenarios in which the transaction can be unintentionally dropped from the network. ### Before a transaction is processed @@ -113,7 +113,7 @@ transaction can be unintentionally dropped from the network. If the network drops a transaction, it will most likely do so before the transaction is processed by a leader. UDP [packet loss](https://en.wikipedia.org/wiki/Packet_loss) is the simplest reason -why this might occur. During times of intense network load, it’s also possible +why this might occur. During times of intense network load, it's also possible for validators to become overwhelmed by the sheer number of transactions required for processing. While validators are equipped to forward surplus transactions via `tpu_forwards`, there is a limit to the amount of data that can @@ -127,7 +127,7 @@ There are also two lesser known reasons why a transaction may be dropped before it is processed. The first scenario involves transactions that are submitted via an RPC pool. Occasionally, part of the RPC pool can be sufficiently ahead of the rest of the pool. This can cause issues when nodes within the pool are required -to work together. In this example, the transaction’s +to work together. In this example, the transaction's [recentBlockhash](/docs/core/transactions.md#recent-blockhash) is queried from the advanced part of the pool (Backend A). When the transaction is submitted to the lagging part of the pool (Backend B), the nodes will not recognize the @@ -139,7 +139,7 @@ transaction submission if developers enable Temporarily network forks can also result in dropped transactions. If a validator is slow to replay its blocks within the Banking Stage, it may end up -creating a minority fork. When a client builds a transaction, it’s possible for +creating a minority fork. When a client builds a transaction, it's possible for the transaction to reference a `recentBlockhash` that only exists on the minority fork. After the transaction is submitted, the cluster can then switch away from its minority fork before the transaction is processed. In this @@ -150,7 +150,7 @@ scenario, the transaction is dropped due to the blockhash not being found. ### After a transaction is processed and before it is finalized In the event a transaction references a `recentBlockhash` from a minority fork, -it’s still possible for the transaction to be processed. In this case, however, +it's still possible for the transaction to be processed. In this case, however, it would be processed by the leader on the minority fork. When this leader attempts to share its processed transactions with the rest of the network, it would fail to reach consensus with the majority of validators that do not @@ -201,8 +201,8 @@ the transaction will be processed or finalized by the cluster. ## Customizing Rebroadcast Logic In order to develop their own rebroadcasting logic, developers should take -advantage of `sendTransaction`’s `maxRetries` parameter. If provided, -`maxRetries` will override an RPC node’s default retry logic, allowing +advantage of `sendTransaction`'s `maxRetries` parameter. If provided, +`maxRetries` will override an RPC node's default retry logic, allowing developers to manually control the retry process [within reasonable bounds](https://github.com/solana-labs/solana/blob/98707baec2385a4f7114d2167ef6dfb1406f954f/validator/src/main.rs#L1258-L1274). @@ -210,9 +210,9 @@ A common pattern for manually retrying transactions involves temporarily storing the `lastValidBlockHeight` that comes from [getLatestBlockhash](/docs/rpc/http/getLatestBlockhash.mdx). Once stashed, an application can then -[poll the cluster’s blockheight](/docs/rpc/http/getBlockHeight.mdx) and manually +[poll the cluster's blockheight](/docs/rpc/http/getBlockHeight.mdx) and manually retry the transaction at an appropriate interval. In times of network -congestion, it’s advantageous to set `maxRetries` to 0 and manually rebroadcast +congestion, it's advantageous to set `maxRetries` to 0 and manually rebroadcast via a custom algorithm. While some applications may employ an [exponential backoff](https://en.wikipedia.org/wiki/Exponential_backoff) algorithm, others such as [Mango](https://www.mango.markets/) opt to @@ -310,7 +310,7 @@ for, it is recommended that developers keep `skipPreflight` set to `false`. Despite all attempts to rebroadcast, there may be times in which a client is required to re-sign a transaction. Before re-signing any transaction, it is -**very important** to ensure that the initial transaction’s blockhash has +**very important** to ensure that the initial transaction's blockhash has expired. If the initial blockhash is still valid, it is possible for both transactions to be accepted by the network. To an end-user, this would appear as if they unintentionally sent the same transaction twice. diff --git a/docs/economics/index.md b/docs/economics/index.md index baf26baea..55444a801 100644 --- a/docs/economics/index.md +++ b/docs/economics/index.md @@ -8,7 +8,7 @@ sidebarSortOrder: 5 **Subject to change.** -Solana’s crypto-economic system is designed to promote a healthy, long term +Solana's crypto-economic system is designed to promote a healthy, long term self-sustaining economy with participant incentives aligned to the security and decentralization of the network. The main participants in this economy are validation-clients. Their contributions to the network, state validation, and diff --git a/docs/economics/inflation/terminology.md b/docs/economics/inflation/terminology.md index 56b1c8154..e8526d500 100644 --- a/docs/economics/inflation/terminology.md +++ b/docs/economics/inflation/terminology.md @@ -14,7 +14,7 @@ genesis block or protocol inflation) minus any tokens that have been burnt (via transaction fees or other mechanism) or slashed. At network launch, 500,000,000 SOL were instantiated in the genesis block. Since then the Total Current Supply has been reduced by the burning of transaction fees and a planned token -reduction event. Solana’s _Total Current Supply_ can be found at +reduction event. Solana's _Total Current Supply_ can be found at https://explorer.solana.com/supply ### Inflation Rate [%] @@ -52,7 +52,7 @@ _Inflation Schedule_. remaining fee retained by the validator that processes the transaction. - Additional factors such as loss of private keys and slashing events should also be considered in a holistic analysis of the _Effective Inflation Rate_. - For example, it’s estimated that $10-20\%$ of all BTC have been lost and are + For example, it's estimated that $10-20\%$ of all BTC have been lost and are unrecoverable and that networks may experience similar yearly losses at the rate of $1-2\%$. diff --git a/docs/intro/quick-start/cross-program-invocation.md b/docs/intro/quick-start/cross-program-invocation.md index 94eb78b60..5bac88834 100644 --- a/docs/intro/quick-start/cross-program-invocation.md +++ b/docs/intro/quick-start/cross-program-invocation.md @@ -562,7 +562,7 @@ Running tests... You can then inspect the SolanFM links to view the transaction details, where -you’ll find the CPIs for the transfer instructions within the update and delete +you'll find the CPIs for the transfer instructions within the update and delete instructions. ![Update CPI](/assets/docs/intro/quickstart/cpi-update.png) diff --git a/docs/more/exchange.md b/docs/more/exchange.md index a85268db4..2aae6ecff 100644 --- a/docs/more/exchange.md +++ b/docs/more/exchange.md @@ -767,7 +767,7 @@ curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" - ## Prioritization Fees and Compute Units -In periods of high demand, it’s possible for a transaction to expire before a +In periods of high demand, it's possible for a transaction to expire before a validator has included such transactions in their block because they chose other transactions with higher economic value. Valid Transactions on Solana may be delayed or dropped if Prioritization Fees are not implemented properly. @@ -817,7 +817,7 @@ may only return the lowest fee for each block. This will often be zero, which is not a fully useful approximation of what Prioritization Fee to use in order to avoid being rejected by validator nodes. -The `getRecentPrioritizationFees` API takes accounts’ pubkeys as parameters, and +The `getRecentPrioritizationFees` API takes accounts' pubkeys as parameters, and then returns the highest of the minimum prioritization fees for these accounts. When no account is specified, the API will return the lowest fee to land to block, which is usually zero (unless the block is full). diff --git a/docs/programs/testing.md b/docs/programs/testing.md index 029c24cfa..32d3bcdc3 100644 --- a/docs/programs/testing.md +++ b/docs/programs/testing.md @@ -18,7 +18,7 @@ There are two ways to test programs on Solana: 2. The various [BanksClient-based](https://docs.rs/solana-banks-client/latest/solana_banks_client/) test frameworks for SBF (Solana Bytecode Format) programs: Bankrun is a - framework that simulates a Solana bank’s operations, enabling developers to + framework that simulates a Solana bank's operations, enabling developers to deploy, interact with, and assess the behavior of programs under test conditions that mimic the mainnet. It helps set up the test environment and offers tools for detailed transaction insights, enhancing debugging and @@ -38,13 +38,13 @@ There are two ways to test programs on Solana: In this guide, we are using Solana Bankrun. `Bankrun` is a superfast, powerful, and lightweight framework for testing Solana programs in Node.js. -- The biggest advantage of using Solana Bankrun is that you don’t have to set +- The biggest advantage of using Solana Bankrun is that you don't have to set up - an environment to test programs like you’d have to do while using the + an environment to test programs like you'd have to do while using the `solana-test-validator`. Instead, you can do that with a piece of code, inside the tests. -- It also dynamically sets time and account data, which isn’t possible with +- It also dynamically sets time and account data, which isn't possible with `solana-test-validator` ## Installation @@ -66,7 +66,7 @@ directories: - `./tests/fixtures` (just create this directory if it doesn't exist already). - Your current working directory. - A directory you define in the `BPF_OUT_DIR` or `SBF_OUT_DIR` environment - variables. `export BPF_OUT_DIR=’/path/to/binary’` + variables. `export BPF_OUT_DIR='/path/to/binary'` - Build your program specifying the correct directory so that library can pick the file up from directory just from the name. `cargo build-sbf --manifest-path=./program/Cargo.toml --sbf-out-dir=./tests/fixtures` @@ -151,7 +151,7 @@ let transaction = await client.processTransaction(tx); ## Example -Here’s an example to write test for +Here's an example to write test for a [hello world program](https://github.com/solana-developers/program-examples/tree/main/basics/hello-solana/native) : ```typescript From eb8c710093b7ce2000ebac88936ecc56897f3242 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Mon, 30 Sep 2024 14:45:00 +1000 Subject: [PATCH 068/206] Fix ellipsis characters that should be three dots --- content/courses/onchain-development/anchor-pdas.md | 2 +- content/courses/program-optimization/program-architecture.md | 2 +- content/guides/games/nfts-in-games.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content/courses/onchain-development/anchor-pdas.md b/content/courses/onchain-development/anchor-pdas.md index b2a55c9e3..c728fe7e9 100644 --- a/content/courses/onchain-development/anchor-pdas.md +++ b/content/courses/onchain-development/anchor-pdas.md @@ -236,7 +236,7 @@ anchor-lang = { version = "0.30.1", features = ["init-if-needed"] } ``` Once you've enabled the feature, you can include the constraint in the -`#[account(…)]` attribute macro. The example below demonstrates using the +`#[account(...)]` attribute macro. The example below demonstrates using the `init_if_needed` constraint to initialize a new associated token account if one does not already exist. diff --git a/content/courses/program-optimization/program-architecture.md b/content/courses/program-optimization/program-architecture.md index 52056d9a7..d1d05e1f6 100644 --- a/content/courses/program-optimization/program-architecture.md +++ b/content/courses/program-optimization/program-architecture.md @@ -175,7 +175,7 @@ pub struct SomeFunctionContext<'info> { In Anchor, **`Box`** is used to allocate the account to the Heap, not the Stack. Which is great since the Heap gives us 32KB to work with. The best part is you don't have to do anything different within the function. All you need to -do is add `Box<…>` around all of your big data accounts. +do is add `Box<...>` around all of your big data accounts. But Box is not perfect. You can still overflow the stack with sufficiently large accounts. We'll learn how to fix this in the next section. diff --git a/content/guides/games/nfts-in-games.md b/content/guides/games/nfts-in-games.md index db657913e..4e7e2924c 100644 --- a/content/guides/games/nfts-in-games.md +++ b/content/guides/games/nfts-in-games.md @@ -233,7 +233,7 @@ let uri = 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/mas let asset: Asset = await loader.load(uri); let gltf: GlTf = asset.gltf; console.log(gltf); -// -> {asset: {…}, scene: 0, scenes: Array(1), nodes: Array(2), meshes: Array(1), …} +// -> {asset: {...}, scene: 0, scenes: Array(1), nodes: Array(2), meshes: Array(1), ...} let data = await asset.accessorData(0); // fetches BoxTextured0.bin let image: Image = await asset.imageData.get(0) // fetches CesiumLogoFlat.png From 3c33a0eb9d96721be542dd417e6217f6c8fb6fc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9?= <47941531+Andross96@users.noreply.github.com> Date: Mon, 30 Sep 2024 06:53:42 +0200 Subject: [PATCH 069/206] fix: typo with getMaxShredInsertSlot link (#540) --- docs/advanced/confirmation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/advanced/confirmation.md b/docs/advanced/confirmation.md index 02cc91ad5..eb698b009 100644 --- a/docs/advanced/confirmation.md +++ b/docs/advanced/confirmation.md @@ -341,7 +341,7 @@ of the cluster state with one of the following methods: 1. Fetch your RPC node's highest processed slot by using the [`getSlot`](/docs/rpc/http/getSlot.mdx) RPC API with the `processed` commitment level and then call the - [`getMaxShredInsertSlot](/docs/rpc/http/getMaxShredInsertSlot.mdx) RPC API to + [`getMaxShredInsertSlot`](/docs/rpc/http/getMaxShredInsertSlot.mdx) RPC API to get the highest slot that your RPC node has received a “shred” of a block for. If the difference between these responses is very large, the cluster is producing blocks far ahead of what the RPC node has processed. From d2dfdeb6128f897c8ca635070fac3907d742ec4a Mon Sep 17 00:00:00 2001 From: Shawaz <65177277+shawazi@users.noreply.github.com> Date: Mon, 30 Sep 2024 00:54:22 -0400 Subject: [PATCH 070/206] Fix a single typo (#516) "build" is the command to build a project, but the correct tense in the context of that sentence would be "built" --- content/courses/onchain-development/intro-to-anchor-frontend.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/courses/onchain-development/intro-to-anchor-frontend.md b/content/courses/onchain-development/intro-to-anchor-frontend.md index 7d2a419bb..ecbe269e3 100644 --- a/content/courses/onchain-development/intro-to-anchor-frontend.md +++ b/content/courses/onchain-development/intro-to-anchor-frontend.md @@ -196,7 +196,7 @@ import idl from "./idl.json"; You would _ideally_ also require types for the IDL which would make it easier to interact with the program. The types can be found at `/target/types` folder -after you have build your program. Here are the types for the above IDL which +after you have built your program. Here are the types for the above IDL which when you notice has the exact same structure as the IDL but are just as type helper. From 63db12baf58a7ba342d1d1f8604bb0e600db9645 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Mon, 30 Sep 2024 14:58:55 +1000 Subject: [PATCH 071/206] Clarify multiple files template confusion after #506 --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c4aed87c2..edcee7aac 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -84,8 +84,8 @@ In particular: have `instruction handlers` that process `instructions`. Do not refer to [instruction handlers](https://solana.com/docs/terminology#instruction-handler) as instructions! The reason is simple: an instruction cannot process an - instruction. The `multiple` template in Anchor also calls the function's - `handler`. + instruction. The `multiple` template in Anchor also calls these functions + `handler`s. ### Code From b464a8b8f9d486205b1aa5582d58120efa3be533 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Mon, 30 Sep 2024 16:20:55 +1000 Subject: [PATCH 072/206] Prettier --- docs/advanced/confirmation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/advanced/confirmation.md b/docs/advanced/confirmation.md index eb698b009..b26144204 100644 --- a/docs/advanced/confirmation.md +++ b/docs/advanced/confirmation.md @@ -341,8 +341,8 @@ of the cluster state with one of the following methods: 1. Fetch your RPC node's highest processed slot by using the [`getSlot`](/docs/rpc/http/getSlot.mdx) RPC API with the `processed` commitment level and then call the - [`getMaxShredInsertSlot`](/docs/rpc/http/getMaxShredInsertSlot.mdx) RPC API to - get the highest slot that your RPC node has received a “shred” of a block + [`getMaxShredInsertSlot`](/docs/rpc/http/getMaxShredInsertSlot.mdx) RPC API + to get the highest slot that your RPC node has received a “shred” of a block for. If the difference between these responses is very large, the cluster is producing blocks far ahead of what the RPC node has processed. 2. Call the `getLatestBlockhash` RPC API with the `confirmed` commitment level From 73cb9e4cae1d6a69695b4f6caaf067c4cf0deddf Mon Sep 17 00:00:00 2001 From: Krishnendu Samanta <76649777+krishnendu-2003@users.noreply.github.com> Date: Mon, 30 Sep 2024 13:06:24 +0530 Subject: [PATCH 073/206] Intro to solana content (#472) * Updated * Updated * Updated * Updated --- content/courses/intro-to-solana/getting-started.md | 2 +- content/courses/intro-to-solana/intro-to-cryptography.md | 6 ++++++ content/courses/intro-to-solana/intro-to-writing-data.md | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/content/courses/intro-to-solana/getting-started.md b/content/courses/intro-to-solana/getting-started.md index d2e5e3a73..15565d26c 100644 --- a/content/courses/intro-to-solana/getting-started.md +++ b/content/courses/intro-to-solana/getting-started.md @@ -8,7 +8,7 @@ objectives: description: "Understand what web3, blockchains, and Solana are." --- -## Welcome! +## Welcome Welcome to the best starting point for developers looking to learn web3 and blockchain! diff --git a/content/courses/intro-to-solana/intro-to-cryptography.md b/content/courses/intro-to-solana/intro-to-cryptography.md index 6f1c3d83b..396e3032a 100644 --- a/content/courses/intro-to-solana/intro-to-cryptography.md +++ b/content/courses/intro-to-solana/intro-to-cryptography.md @@ -20,6 +20,9 @@ description: "Understand asymmetric cryptography and how Solana uses it." ## Lesson +In this lesson, we will explore the basics of cryptography and how it's applied +within the Solana ecosystem. + ### Symmetric and Asymmetric Cryptography 'Cryptography' the study of hiding information. There are two main types of @@ -157,6 +160,9 @@ You know how to make and load keypairs! Let's practice what we've learned. ## Lab +In this lab we will learn about keypairs, and how to store secret keys securely +on solana + ### Installation Make a new directory, install TypeScript, Solana web3.js and esrun: diff --git a/content/courses/intro-to-solana/intro-to-writing-data.md b/content/courses/intro-to-solana/intro-to-writing-data.md index deede360e..3bff43d78 100644 --- a/content/courses/intro-to-solana/intro-to-writing-data.md +++ b/content/courses/intro-to-solana/intro-to-writing-data.md @@ -235,7 +235,7 @@ console.log( console.log(`Transaction signature is ${signature}!`); ``` -### Experiment! +### Experiment Send SOL to other students in the class. From 8325fb5b3beac71ce31dcb501c327ac22246a8c3 Mon Sep 17 00:00:00 2001 From: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> Date: Mon, 30 Sep 2024 12:36:29 -0400 Subject: [PATCH 074/206] [docs/rpc] fix: required field on `getTokenAccountsByOwner` (#543) * fix: required field * refactor: use a live account * fix: real data --- docs/rpc/http/getTokenAccountsByOwner.mdx | 76 +++++++++++++++-------- 1 file changed, 49 insertions(+), 27 deletions(-) diff --git a/docs/rpc/http/getTokenAccountsByOwner.mdx b/docs/rpc/http/getTokenAccountsByOwner.mdx index 84d5d1fd0..d60af8eb0 100644 --- a/docs/rpc/http/getTokenAccountsByOwner.mdx +++ b/docs/rpc/http/getTokenAccountsByOwner.mdx @@ -18,9 +18,9 @@ Returns all SPL Token accounts by token owner. Pubkey of account delegate to query, as base-58 encoded string - + -A JSON object with one of the following fields: +A JSON object with either one of the following fields: - `mint: ` - Pubkey of the specific token Mint to limit accounts to, as base-58 encoded string; or @@ -121,9 +121,9 @@ curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" - "id": 1, "method": "getTokenAccountsByOwner", "params": [ - "4Qkev8aNZcqFNSRhQzwyLMFSsi94jHqE8WNVTJzTP99F", + "A1TMhSGzQxMr1TboBKtgixKz1sS6REASMxPo1qsyTSJd", { - "mint": "3wyAj7Rt1TWVPZVteFJPLa26JmLvdb1CAKEFZm3NY75E" + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "encoding": "jsonParsed" @@ -137,52 +137,74 @@ curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" - ```json { + "id": 1, "jsonrpc": "2.0", "result": { "context": { - "slot": 1114 + "apiVersion": "2.0.8", + "slot": 329669901 }, "value": [ { "account": { "data": { - "program": "spl-token", "parsed": { - "accountType": "account", "info": { - "tokenAmount": { - "amount": "1", - "decimals": 1, - "uiAmount": 0.1, - "uiAmountString": "0.1" - }, - "delegate": "4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T", - "delegatedAmount": { - "amount": "1", - "decimals": 1, - "uiAmount": 0.1, - "uiAmountString": "0.1" - }, + "isNative": false, + "mint": "BejB75Gmq8btLboHx7yffWcurHVBv5xvKcnY1fBYxnvf", + "owner": "A1TMhSGzQxMr1TboBKtgixKz1sS6REASMxPo1qsyTSJd", "state": "initialized", + "tokenAmount": { + "amount": "10000000000000", + "decimals": 9, + "uiAmount": 10000, + "uiAmountString": "10000" + } + }, + "type": "account" + }, + "program": "spl-token", + "space": 165 + }, + "executable": false, + "lamports": 2039280, + "owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "rentEpoch": 18446744073709551615, + "space": 165 + }, + "pubkey": "5HvuXcy57o41qtGBBJM7dRN9DS6G3jd9KEhHt4eYqJmB" + }, + { + "account": { + "data": { + "parsed": { + "info": { "isNative": false, - "mint": "3wyAj7Rt1TWVPZVteFJPLa26JmLvdb1CAKEFZm3NY75E", - "owner": "4Qkev8aNZcqFNSRhQzwyLMFSsi94jHqE8WNVTJzTP99F" + "mint": "FSX34rYUJ4zfdD7z4p3L1Fd1pGiiErusaSNTfgKqhep6", + "owner": "A1TMhSGzQxMr1TboBKtgixKz1sS6REASMxPo1qsyTSJd", + "state": "initialized", + "tokenAmount": { + "amount": "10000000000000", + "decimals": 9, + "uiAmount": 10000, + "uiAmountString": "10000" + } }, "type": "account" }, + "program": "spl-token", "space": 165 }, "executable": false, - "lamports": 1726080, + "lamports": 2039280, "owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", - "rentEpoch": 4, + "rentEpoch": 18446744073709551615, "space": 165 }, - "pubkey": "C2gJg6tKpQs41PRS1nC8aw3ZKNZK3HQQZGVrDFDup5nx" + "pubkey": "HvTGvCP4tg2wVdFtqZCTdMPHDXmkYwNAxaTBCHabqh2X" } ] - }, - "id": 1 + } } ``` From 6aa178dac2296b06bc53bd9cc5f2be0db54fe8d4 Mon Sep 17 00:00:00 2001 From: 0xCipherCoder Date: Tue, 1 Oct 2024 06:58:24 +0530 Subject: [PATCH 075/206] Program security - Bump seed canonicalization lesson updated (#446) * Fixed grammar * Updated content as per comments * Formatted code --- .../bump-seed-canonicalization.md | 618 ++++++++++-------- 1 file changed, 358 insertions(+), 260 deletions(-) diff --git a/content/courses/program-security/bump-seed-canonicalization.md b/content/courses/program-security/bump-seed-canonicalization.md index e2ea4d93f..1ee208d63 100644 --- a/content/courses/program-security/bump-seed-canonicalization.md +++ b/content/courses/program-security/bump-seed-canonicalization.md @@ -8,41 +8,53 @@ objectives: - Use Anchor's `seeds` and `bump` constraints to ensure the canonical bump is always used in future instructions when deriving a PDA description: - "Understand the need for consistent PDA calculation by storing and reusuing - the canonical bump." + "Understand the need for consistent PDA calculation by storing and reusing the + canonical bump." --- ## Summary - The [**`create_program_address`**](https://docs.rs/solana-program/latest/solana_program/pubkey/struct.Pubkey.html#method.create_program_address) - function derives a PDA without searching for the **canonical bump**. This - means there are multiple valid bumps, all of which will produce different - addresses. + function derives a PDA but does so without searching for the canonical bump. + It allows multiple valid bumps to produce different addresses. While this can + still generate a valid PDA, it lacks determinism, as multiple bumps may yield + different addresses for the same set of seeds. - Using [**`find_program_address`**](https://docs.rs/solana-program/latest/solana_program/pubkey/struct.Pubkey.html#method.find_program_address) - ensures that the highest valid bump, or canonical bump, is used for the - derivation, thus creating a deterministic way to find an address given - specific seeds. -- Upon initialization, you can use Anchor's `seeds` and `bump` constraint to - ensure that PDA derivations in the account validation struct always use the - canonical bump -- Anchor allows you to **specify a bump** with the `bump = ` - constraint when verifying the address of a PDA -- Because `find_program_address` can be expensive, best practice is to store the - derived bump in an account's data field to be referenced later on when - re-deriving the address for verification + ensures that the **highest valid bump**, often referred to as the **canonical + bump**, is used in the PDA derivation. This provides a deterministic way to + compute an address for a given set of seeds, ensuring consistency across the + program. +- In Anchor, you can specify the `seeds` and the `bump` to ensure that PDA + derivations in your account validation struct always align with the correct + canonical bump. +- Anchor also allows you to specify a bump directly in the validation struct + using the `bump = ` constraint. This ensures that the correct bump + is used when verifying the PDA. +- Using `find_program_address` can be computationally expensive due to the + process of searching for the highest valid bump. It's considered best practice + to store the derived bump in an account's data field upon initialization. This + allows the bump to be referenced in subsequent instruction handlers, avoiding + the need to repeatedly call `find_program_address` to re-derive the PDA. + ```rust #[derive(Accounts)] pub struct VerifyAddress<'info> { - #[account( - seeds = [DATA_PDA_SEED.as_bytes()], - bump = data.bump - )] - data: Account<'info, Data>, + #[account( + seeds = [DATA_PDA_SEED.as_bytes()], + bump = data.bump + )] + data: Account<'info, Data>, } ``` +- In summary, while `create_program_address` can generate a PDA, + `find_program_address` ensures consistency and reliability by always producing + the canonical bump, which is critical for deterministic program execution. + This helps maintain integrity in onchain apps, especially when validating PDAs + across multiple instruction handlers. + ## Lesson Bump seeds are a number between 0 and 255, inclusive, used to ensure that an @@ -52,37 +64,39 @@ is a valid PDA. The **canonical bump** is the highest bump value that produces a valid PDA. The standard in Solana is to _always use the canonical bump_ when deriving PDAs, both for security and convenience. -### Insecure PDA derivation using `create_program_address` +### Insecure PDA Derivation using create_program_address Given a set of seeds, the `create_program_address` function will produce a valid PDA about 50% of the time. The bump seed is an additional byte added as a seed -to "bump" the derived address into valid territory. Since there are 256 possible -bump seeds and the function produces valid PDAs approximately 50% of the time, -there are many valid bumps for a given set of input seeds. +to "bump" the derived address into a valid territory. Since there are 256 +possible bump seeds and the function produces valid PDAs approximately 50% of +the time, there are many valid bumps for a given set of input seeds. -You can imagine that this could cause confusion for locating accounts when using +You can imagine that this could cause confusion in locating accounts when using seeds as a way of mapping between known pieces of information to accounts. Using the canonical bump as the standard ensures that you can always find the right account. More importantly, it avoids security exploits caused by the open-ended nature of allowing multiple bumps. -In the example below, the `set_value` instruction uses a `bump` that was passed -in as instruction data to derive a PDA. The instruction then derives the PDA -using `create_program_address` function and checks that the `address` matches -the public key of the `data` account. +In the example below, the `set_value` instruction handler uses a `bump` that was +passed in as instruction data to derive a PDA. The instruction handler then +derives the PDA using `create_program_address` function and checks that the +`address` matches the public key of the `data` account. ```rust use anchor_lang::prelude::*; -declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"); +declare_id!("ABQaKhtpYQUUgZ9m2sAY7ZHxWv6KyNdhUJW8Dh8NQbkf"); #[program] pub mod bump_seed_canonicalization_insecure { use super::*; + // Insecure PDA Derivation using create_program_address pub fn set_value(ctx: Context, key: u64, new_value: u64, bump: u8) -> Result<()> { let address = - Pubkey::create_program_address(&[key.to_le_bytes().as_ref(), &[bump]], ctx.program_id).unwrap(); + Pubkey::create_program_address(&[key.to_le_bytes().as_ref(), &[bump]], ctx.program_id) + .unwrap(); if address != ctx.accounts.data.key() { return Err(ProgramError::InvalidArgument.into()); } @@ -95,33 +109,34 @@ pub mod bump_seed_canonicalization_insecure { #[derive(Accounts)] pub struct BumpSeed<'info> { - data: Account<'info, Data>, + #[account(mut)] + pub data: Account<'info, Data>, } #[account] pub struct Data { - value: u64, + pub value: u64, } ``` -While the instruction derives the PDA and checks the passed-in account, which is -good, it allows the caller to pass in an arbitrary bump. Depending on the -context of your program, this could result in undesired behavior or potential -exploit. +While the instruction handler derives the PDA and checks the passed-in account, +which is good, it allows the caller to pass in an arbitrary bump. Depending on +the context of your program, this could result in undesired behavior or +potential exploit. If the seed mapping was meant to enforce a one-to-one relationship between PDA and user, for example, this program would not properly enforce that. A user could call the program multiple times with many valid bumps, each producing a different PDA. -### Recommended derivation using `find_program_address` +### Recommended Derivation using find_program_address A simple way around this problem is to have the program expect only the canonical bump and use `find_program_address` to derive the PDA. The [`find_program_address`](https://docs.rs/solana-program/latest/solana_program/pubkey/struct.Pubkey.html#method.find_program_address) -_always uses the canonical bump_. This function iterates through calling +_always uses the canonical bump_. This function iterates by calling `create_program_address`, starting with a bump of 255 and decrementing the bump by one with each iteration. As soon as a valid address is found, the function returns both the derived PDA and the canonical bump used to derive it. @@ -151,7 +166,7 @@ pub fn set_value_secure( } ``` -### Use Anchor's `seeds` and `bump` constraints +### Use Anchor's seeds and bump Constraints Anchor provides a convenient way to derive PDAs in the account validation struct using the `seeds` and `bump` constraints. These can even be combined with the @@ -166,6 +181,8 @@ use anchor_lang::prelude::*; declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"); +pub const DISCRIMINATOR_SIZE: usize = 8; + #[program] pub mod bump_seed_canonicalization_recommended { use super::*; @@ -175,28 +192,29 @@ pub mod bump_seed_canonicalization_recommended { Ok(()) } } - -// initialize account at PDA +// Initialize account at PDA #[derive(Accounts)] #[instruction(key: u64)] pub struct BumpSeed<'info> { - #[account(mut)] - payer: Signer<'info>, - #[account( - init, - seeds = [key.to_le_bytes().as_ref()], - // derives the PDA using the canonical bump - bump, - payer = payer, - space = 8 + 8 - )] - data: Account<'info, Data>, - system_program: Program<'info, System> + #[account(mut)] + pub payer: Signer<'info>, + #[account( + init, + seeds = [key.to_le_bytes().as_ref()], + // Derives the PDA using the canonical bump + bump, + payer = payer, + space = DISCRIMINATOR_SIZE + Data::INIT_SPACE + )] + pub data: Account<'info, Data>, + + pub system_program: Program<'info, System>, } #[account] +#[derive(InitSpace)] pub struct Data { - value: u64, + pub value: u64, } ``` @@ -210,7 +228,7 @@ arbitrary bumps, but rather to let you optimize your program. The iterative nature of `find_program_address` makes it expensive, so best practice is to store the canonical bump in the PDA account's data upon initializing a PDA, allowing you to reference the bump stored when validating the PDA in subsequent -instructions. +instruction handlers. When you specify the bump to use, Anchor uses `create_program_address` with the provided bump instead of `find_program_address`. This pattern of storing the @@ -222,66 +240,76 @@ use anchor_lang::prelude::*; declare_id!("CVwV9RoebTbmzsGg1uqU1s4a3LvTKseewZKmaNLSxTqc"); +// Constant for account space calculation +pub const DISCRIMINATOR_SIZE: usize = 8; + #[program] pub mod bump_seed_canonicalization_recommended { use super::*; + // Instruction handler to set a value and store the bump pub fn set_value(ctx: Context, _key: u64, new_value: u64) -> Result<()> { ctx.accounts.data.value = new_value; - // store the bump on the account - ctx.accounts.data.bump = *ctx.bumps.get("data").unwrap(); + + // Store the canonical bump on the account + // This bump is automatically derived by Anchor + ctx.accounts.data.bump = ctx.bumps.data; + Ok(()) } + // Instruction handler to verify the PDA address pub fn verify_address(ctx: Context, _key: u64) -> Result<()> { msg!("PDA confirmed to be derived with canonical bump: {}", ctx.accounts.data.key()); Ok(()) } } -// initialize account at PDA +// Account validation struct for initializing the PDA account #[derive(Accounts)] #[instruction(key: u64)] pub struct BumpSeed<'info> { - #[account(mut)] - payer: Signer<'info>, - #[account( - init, - seeds = [key.to_le_bytes().as_ref()], - // derives the PDA using the canonical bump - bump, - payer = payer, - space = 8 + 8 + 1 - )] - data: Account<'info, Data>, - system_program: Program<'info, System> + #[account(mut)] + pub payer: Signer<'info>, + + #[account( + init, + seeds = [key.to_le_bytes().as_ref()], + bump, // Anchor automatically uses the canonical bump + payer = payer, + space = DISCRIMINATOR_SIZE + Data::INIT_SPACE + )] + pub data: Account<'info, Data>, + + pub system_program: Program<'info, System> } +// Account validation struct for verifying the PDA address #[derive(Accounts)] #[instruction(key: u64)] pub struct VerifyAddress<'info> { - #[account( - seeds = [key.to_le_bytes().as_ref()], - // guranteed to be the canonical bump every time - bump = data.bump - )] - data: Account<'info, Data>, + #[account( + seeds = [key.to_le_bytes().as_ref()], + bump = data.bump // Use the stored bump, guaranteed to be canonical + )] + pub data: Account<'info, Data>, } +// Data structure for the PDA account #[account] +#[derive(InitSpace)] pub struct Data { - value: u64, - // bump field - bump: u8 + pub value: u64, + pub bump: u8 // Stores the canonical bump } ``` If you don't specify the bump on the `bump` constraint, Anchor will still use `find_program_address` to derive the PDA using the canonical bump. As a -consequence, your instruction will incur a variable amount of compute budget. -Programs that are already at risk of exceeding their compute budget should use -this with care since there is a chance that the program's budget may be -occasionally and unpredictably exceeded. +consequence, your instruction handler will incur a variable amount of compute +budget. Programs that are already at risk of exceeding their compute budget +should use this with care since there is a chance that the program's budget may +be occasionally and unpredictably exceeded. On the other hand, if you only need to verify the address of a PDA passed in without initializing an account, you'll be forced to either let Anchor derive @@ -294,35 +322,35 @@ To demonstrate the security exploits possible when you don't check for the canonical bump, let's work with a program that lets each program user "claim" rewards on time. -#### 1. Setup +### 1. Setup -Start by getting the code on the `starter` branch of -[this repository](https://github.com/Unboxed-Software/solana-bump-seed-canonicalization/tree/starter). +Start by getting the code on the +[`starter` branch of this repository](https://github.com/solana-developers/bump-seed-canonicalization/tree/starter). -Notice that there are two instructions on the program and a single test in the -`tests` directory. +Notice that there are two instruction handlers on the program and a single test +in the `tests` directory. -The instructions on the program are: +The instruction handlers on the program are: 1. `create_user_insecure` 2. `claim_insecure` -The `create_user_insecure` instruction simply creates a new account at a PDA -derived using the signer's public key and a passed-in bump. +The `create_user_insecure` instruction handler simply creates a new account at a +PDA derived using the signer's public key and a passed-in bump. -The `claim_insecure` instruction mints 10 tokens to the user and then marks the -account's rewards as claimed so that they can't claim again. +The `claim_insecure` instruction handler mints 10 tokens to the user and then +marks the account's rewards as claimed so that they can't claim again. However, the program doesn't explicitly check that the PDAs in question are using the canonical bump. Have a look at the program to understand what it does before proceeding. -#### 2. Test insecure instructions +### 2. Test Insecure Instruction Handlers -Since the instructions don't explicitly require the `user` PDA to use the -canonical bump, an attacker can create multiple accounts per wallet and claim -more rewards than should be allowed. +Since the instruction handlers don't explicitly require the `user` PDA to use +the canonical bump, an attacker can create multiple accounts per wallet and +claim more rewards than should be allowed. The test in the `tests` directory creates a new keypair called `attacker` to represent an attacker. It then loops through all possible bumps and calls @@ -331,156 +359,188 @@ the attacker has been able to claim rewards multiple times and has earned more than the 10 tokens allotted per user. ```typescript -it("Attacker can claim more than reward limit with insecure instructions", async () => { - const attacker = Keypair.generate(); - await safeAirdrop(attacker.publicKey, provider.connection); - const ataKey = await getAssociatedTokenAddress(mint, attacker.publicKey); - - let numClaims = 0; - - for (let i = 0; i < 256; i++) { - try { - const pda = createProgramAddressSync( - [attacker.publicKey.toBuffer(), Buffer.from([i])], - program.programId, - ); - await program.methods - .createUserInsecure(i) - .accounts({ - user: pda, - payer: attacker.publicKey, - }) - .signers([attacker]) - .rpc(); - await program.methods - .claimInsecure(i) - .accounts({ - user: pda, - mint, - payer: attacker.publicKey, - userAta: ataKey, - }) - .signers([attacker]) - .rpc(); - - numClaims += 1; - } catch (error) { - if (error.message !== "Invalid seeds, address must fall off the curve") { - console.log(error); +it("allows attacker to claim more than reward limit with insecure instruction handlers", async () => { + try { + const attacker = Keypair.generate(); + await airdropIfRequired( + connection, + attacker.publicKey, + 1 * LAMPORTS_PER_SOL, + 0.5 * LAMPORTS_PER_SOL, + ); + const ataKey = await getAssociatedTokenAddress(mint, attacker.publicKey); + + let successfulClaimCount = 0; + + for (let i = 0; i < 256; i++) { + try { + const pda = anchor.web3.PublicKey.createProgramAddressSync( + [attacker.publicKey.toBuffer(), Buffer.from([i])], + program.programId, + ); + await program.methods + .createUserInsecure(i) + .accounts({ + user: pda, + payer: attacker.publicKey, + }) + .signers([attacker]) + .rpc(); + await program.methods + .claimInsecure(i) + .accounts({ + user: pda, + mint, + payer: attacker.publicKey, + userAta: ataKey, + mintAuthority, + tokenProgram: anchor.utils.token.TOKEN_PROGRAM_ID, + associatedTokenProgram: anchor.utils.token.ASSOCIATED_PROGRAM_ID, + systemProgram: anchor.web3.SystemProgram.programId, + rent: anchor.web3.SYSVAR_RENT_PUBKEY, + }) + .signers([attacker]) + .rpc(); + + successfulClaimCount += 1; + } catch (error) { + if ( + error instanceof Error && + !error.message.includes( + "Invalid seeds, address must fall off the curve", + ) + ) { + console.error(error); + } } } - } - const ata = await getAccount(provider.connection, ataKey); + const ata = await getAccount(connection, ataKey); - console.log( - `Attacker claimed ${numClaims} times and got ${Number(ata.amount)} tokens`, - ); + console.log( + `Attacker claimed ${successfulClaimCount} times and got ${Number( + ata.amount, + )} tokens`, + ); - expect(numClaims).to.be.greaterThan(1); - expect(Number(ata.amount)).to.be.greaterThan(10); + expect(successfulClaimCount).to.be.greaterThan(1); + expect(Number(ata.amount)).to.be.greaterThan(10); + } catch (error) { + throw new Error(`Test failed: ${error.message}`); + } }); ``` Run `anchor test` to see that this test passes, showing that the attacker is -successful. Since the test calles the instructions for every valid bump, it -takes a bit to run, so be patient. +successful. Since the test calls the instruction handlers for every valid bump, +it takes a bit to run, so be patient. ```bash - bump-seed-canonicalization -Attacker claimed 129 times and got 1290 tokens - ✔ Attacker can claim more than reward limit with insecure instructions (133840ms) + Bump seed canonicalization +Attacker claimed 121 times and got 1210 tokens + ✔ allows attacker to claim more than reward limit with insecure instructions (119994ms) ``` -#### 3. Create secure instructions +### 3. Create Secure Instruction Handler -Let's demonstrate patching the vulnerability by creating two new instructions: +Let's demonstrate patching the vulnerability by creating two new instruction +handlers: 1. `create_user_secure` 2. `claim_secure` -Before we write the account validation or instruction logic, let's create a new -user type, `UserSecure`. This new type will add the canonical bump as a field on -the struct. +Before we write the account validation or instruction handler logic, let's +create a new user type, `UserSecure`. This new type will add the canonical bump +as a field on the struct. ```rust +// Secure user account structure #[account] +#[derive(InitSpace)] pub struct UserSecure { - auth: Pubkey, - bump: u8, - rewards_claimed: bool, + pub auth: Pubkey, + pub bump: u8, + pub rewards_claimed: bool, } ``` -Next, let's create account validation structs for each of the new instructions. -They'll be very similar to the insecure versions but will let Anchor handle the -derivation and deserialization of the PDAs. +Next, let's create account validation structs for each of the new instruction +handlers. They'll be very similar to the insecure versions but will let Anchor +handle the derivation and deserialization of the PDAs. ```rust +// Account validation struct for securely creating a user account #[derive(Accounts)] pub struct CreateUserSecure<'info> { #[account(mut)] - payer: Signer<'info>, + pub payer: Signer<'info>, #[account( init, - seeds = [payer.key().as_ref()], - // derives the PDA using the canonical bump - bump, payer = payer, - space = 8 + 32 + 1 + 1 + space = DISCRIMINATOR_SIZE + UserSecure::INIT_SPACE, + seeds = [payer.key().as_ref()], + bump )] - user: Account<'info, UserSecure>, - system_program: Program<'info, System>, + pub user: Account<'info, UserSecure>, + pub system_program: Program<'info, System>, } +// Account validation struct for secure claiming of rewards #[derive(Accounts)] pub struct SecureClaim<'info> { #[account( + mut, seeds = [payer.key().as_ref()], bump = user.bump, constraint = !user.rewards_claimed @ ClaimError::AlreadyClaimed, constraint = user.auth == payer.key() )] - user: Account<'info, UserSecure>, + pub user: Account<'info, UserSecure>, #[account(mut)] - payer: Signer<'info>, + pub payer: Signer<'info>, #[account( init_if_needed, payer = payer, associated_token::mint = mint, associated_token::authority = payer )] - user_ata: Account<'info, TokenAccount>, + pub user_ata: Account<'info, TokenAccount>, #[account(mut)] - mint: Account<'info, Mint>, - /// CHECK: mint auth PDA - #[account(seeds = ["mint".as_bytes().as_ref()], bump)] + pub mint: Account<'info, Mint>, + /// CHECK: This is the mint authority PDA, checked by seeds constraint + #[account(seeds = [b"mint"], bump)] pub mint_authority: UncheckedAccount<'info>, - token_program: Program<'info, Token>, - associated_token_program: Program<'info, AssociatedToken>, - system_program: Program<'info, System>, - rent: Sysvar<'info, Rent>, + pub token_program: Program<'info, Token>, + pub associated_token_program: Program<'info, AssociatedToken>, + pub system_program: Program<'info, System>, + pub rent: Sysvar<'info, Rent>, } ``` -Finally, let's implement the instruction logic for the two new instructions. The -`create_user_secure` instruction simply needs to set the `auth`, `bump` and -`rewards_claimed` fields on the `user` account data. +Finally, let's implement the instruction handler logic for the two new +instruction handlers. The `create_user_secure` instruction handler simply needs +to set the `auth`, `bump` and `rewards_claimed` fields on the `user` account +data. ```rust +// Secure instruction to create a user account pub fn create_user_secure(ctx: Context) -> Result<()> { - ctx.accounts.user.auth = ctx.accounts.payer.key(); - ctx.accounts.user.bump = *ctx.bumps.get("user").unwrap(); - ctx.accounts.user.rewards_claimed = false; + ctx.accounts.user.set_inner(UserSecure { + auth: ctx.accounts.payer.key(), + bump: ctx.bumps.user, + rewards_claimed: false, + }); Ok(()) } ``` -The `claim_secure` instruction needs to mint 10 tokens to the user and set the -`user` account's `rewards_claimed` field to `true`. +The `claim_secure` instruction handler needs to mint 10 tokens to the user and +set the `user` account's `rewards_claimed` field to `true`. ```rust +// Secure instruction to claim rewards pub fn claim_secure(ctx: Context) -> Result<()> { + // Mint tokens to the user's associated token account token::mint_to( CpiContext::new_with_signer( ctx.accounts.token_program.to_account_info(), @@ -489,104 +549,142 @@ pub fn claim_secure(ctx: Context) -> Result<()> { to: ctx.accounts.user_ata.to_account_info(), authority: ctx.accounts.mint_authority.to_account_info(), }, - &[&[ - b"mint".as_ref(), - &[*ctx.bumps.get("mint_authority").unwrap()], - ]], + &[&[b"mint", &[ctx.bumps.mint_authority]]], ), 10, )?; + // Mark rewards as claimed ctx.accounts.user.rewards_claimed = true; Ok(()) } ``` -#### 4. Test secure instructions +### 4. Test Secure Instruction Handlers Let's go ahead and write a test to show that the attacker can no longer claim -more than once using the new instructions. +more than once using the new instruction handlers. Notice that if you start to loop through using multiple PDAs like the old test, -you can't even pass the non-canonical bump to the instructions. However, you can -still loop through using the various PDAs and at the end check that only 1 claim -happened for a total of 10 tokens. Your final test will look something like -this: +you can't even pass the non-canonical bump to the instruction handlers. However, +you can still loop through using the various PDAs and at the end check that only +1 claim happened for a total of 10 tokens. Your final test will look something +like this: ```typescript -it.only("Attacker can only claim once with secure instructions", async () => { - const attacker = Keypair.generate(); - await safeAirdrop(attacker.publicKey, provider.connection); - const ataKey = await getAssociatedTokenAddress(mint, attacker.publicKey); - const [userPDA] = findProgramAddressSync( - [attacker.publicKey.toBuffer()], - program.programId, - ); - - await program.methods - .createUserSecure() - .accounts({ - payer: attacker.publicKey, - }) - .signers([attacker]) - .rpc(); - - await program.methods - .claimSecure() - .accounts({ - payer: attacker.publicKey, - userAta: ataKey, - mint, - user: userPDA, - }) - .signers([attacker]) - .rpc(); - - let numClaims = 1; - - for (let i = 0; i < 256; i++) { - try { - const pda = createProgramAddressSync( - [attacker.publicKey.toBuffer(), Buffer.from([i])], - program.programId, - ); - await program.methods - .createUserSecure() - .accounts({ - user: pda, - payer: attacker.publicKey, - }) - .signers([attacker]) - .rpc(); - - await program.methods - .claimSecure() - .accounts({ - payer: attacker.publicKey, - userAta: ataKey, - mint, - user: pda, - }) - .signers([attacker]) - .rpc(); - - numClaims += 1; - } catch {} - } +it("allows attacker to claim only once with secure instruction handlers", async () => { + try { + const attacker = Keypair.generate(); + await airdropIfRequired( + connection, + attacker.publicKey, + 1 * LAMPORTS_PER_SOL, + 0.5 * LAMPORTS_PER_SOL, + ); + const ataKey = await getAssociatedTokenAddress(mint, attacker.publicKey); + const [userPDA] = anchor.web3.PublicKey.findProgramAddressSync( + [attacker.publicKey.toBuffer()], + program.programId, + ); + + await program.methods + .createUserSecure() + .accounts({ + payer: attacker.publicKey, + user: userPDA, + systemProgram: anchor.web3.SystemProgram.programId, + }) + .signers([attacker]) + .rpc(); + + await program.methods + .claimSecure() + .accounts({ + payer: attacker.publicKey, + user: userPDA, + userAta: ataKey, + mint, + mintAuthority, + tokenProgram: anchor.utils.token.TOKEN_PROGRAM_ID, + associatedTokenProgram: anchor.utils.token.ASSOCIATED_PROGRAM_ID, + systemProgram: anchor.web3.SystemProgram.programId, + rent: anchor.web3.SYSVAR_RENT_PUBKEY, + }) + .signers([attacker]) + .rpc(); + + let successfulClaimCount = 1; + + for (let i = 0; i < 256; i++) { + try { + const pda = anchor.web3.PublicKey.createProgramAddressSync( + [attacker.publicKey.toBuffer(), Buffer.from([i])], + program.programId, + ); + await program.methods + .createUserSecure() + .accounts({ + user: pda, + payer: attacker.publicKey, + systemProgram: anchor.web3.SystemProgram.programId, + }) + .signers([attacker]) + .rpc(); + + await program.methods + .claimSecure() + .accounts({ + payer: attacker.publicKey, + user: pda, + userAta: ataKey, + mint, + mintAuthority, + tokenProgram: anchor.utils.token.TOKEN_PROGRAM_ID, + associatedTokenProgram: anchor.utils.token.ASSOCIATED_PROGRAM_ID, + systemProgram: anchor.web3.SystemProgram.programId, + rent: anchor.web3.SYSVAR_RENT_PUBKEY, + }) + .signers([attacker]) + .rpc(); + + successfulClaimCount += 1; + } catch (error) { + if ( + error instanceof Error && + !error.message.includes("Error Number: 2006") && + !error.message.includes( + "Invalid seeds, address must fall off the curve", + ) + ) { + // Comment console error logs to see the test outputs properly + console.error(error); + } + } + } + + const ata = await getAccount(connection, ataKey); - const ata = await getAccount(provider.connection, ataKey); + console.log( + `Attacker claimed ${successfulClaimCount} times and got ${Number( + ata.amount, + )} tokens`, + ); - expect(Number(ata.amount)).to.equal(10); - expect(numClaims).to.equal(1); + expect(Number(ata.amount)).to.equal(10); + expect(successfulClaimCount).to.equal(1); + } catch (error) { + throw new Error(`Test failed: ${error.message}`); + } }); ``` ```bash - bump-seed-canonicalization + Bump seed canonicalization Attacker claimed 119 times and got 1190 tokens - ✔ Attacker can claim more than reward limit with insecure instructions (128493ms) - ✔ Attacker can only claim once with secure instructions (1448ms) + ✔ allows attacker to claim more than reward limit with insecure instruction handlers (117370ms) +Attacker claimed 1 times and got 10 tokens + ✔ allows attacker to claim only once with secure instruction handlers (16362ms) ``` If you use Anchor for all of the PDA derivations, this particular exploit is @@ -594,8 +692,7 @@ pretty simple to avoid. However, if you end up doing anything "non-standard," be careful to design your program to explicitly use the canonical bump! If you want to take a look at the final solution code you can find it on the -`solution` branch of -[the same repository](https://github.com/Unboxed-Software/solana-bump-seed-canonicalization/tree/solution). +[`solution` branch of the same repository](https://github.com/solana-developers/bump-seed-canonicalization/tree/solution). ## Challenge @@ -609,6 +706,7 @@ Remember, if you find a bug or exploit in somebody else's program, please alert them! If you find one in your own program, be sure to patch it right away. + Push your code to GitHub and [tell us what you thought of this lesson](https://form.typeform.com/to/IPH0UGz7#answers-lesson=d3f6ca7a-11c8-421f-b7a3-d6c08ef1aa8b)! From 76f7ff4ff751a5f8496b17bb18939d1465fe090d Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Tue, 1 Oct 2024 10:22:18 +0530 Subject: [PATCH 076/206] Fix inconsistency in intro-to-custom-onchain-programs.md (#544) * Fix inconsistency in intro-to-custom-onchain-programs.md * Update intro-to-custom-onchain-programs.md * Update content/courses/intro-to-solana/intro-to-custom-onchain-programs.md --------- Co-authored-by: Mike MacCana --- .../intro-to-custom-onchain-programs.md | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/content/courses/intro-to-solana/intro-to-custom-onchain-programs.md b/content/courses/intro-to-solana/intro-to-custom-onchain-programs.md index c0b0b3400..493fef4b8 100644 --- a/content/courses/intro-to-solana/intro-to-custom-onchain-programs.md +++ b/content/courses/intro-to-solana/intro-to-custom-onchain-programs.md @@ -17,15 +17,9 @@ invoked in the onchain program. ### Instructions -In previous chapters, we used: - -- The `SystemProgram.transfer()` function from `@solana/web3.js` to make an - instruction for the System program to transfer SOL. -- The `mintTo()` and `transfer()` functions from `@solana/spl-token`, to make - instructions to the Token program to mint and transfer tokens -- The `createCreateMetadataAccountV3Instruction()` function from - `@metaplex-foundation/mpl-token-metadata@2` to make instructions to Metaplex - to create token Metadata. +In previous lessons, we used the `SystemProgram.transfer()` function from +`@solana/web3.js`, which creates an instruction for the System program to +transfer SOL. When working with other programs, however, you'll need to create instructions manually. With `@solana/web3.js`, you can create instructions with the From 89aef2fc1b09313d8e942b37a3fa8922ba14d77b Mon Sep 17 00:00:00 2001 From: husna khan <131730258+husna3249@users.noreply.github.com> Date: Tue, 1 Oct 2024 10:24:47 +0530 Subject: [PATCH 077/206] Updated fromPubkey to use PublicKey in the transfer instruction (#542) * Updated fromPubkey to use PublicKey in the transfer instruction * Update solana-pay.md * Fix duplicate fromPubkey in transfer instruction and correct indentation * fix indentation * fix indentation --------- Co-authored-by: Mike MacCana --- content/courses/solana-pay/solana-pay.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/courses/solana-pay/solana-pay.md b/content/courses/solana-pay/solana-pay.md index b8b8a0cf9..48d7991ab 100644 --- a/content/courses/solana-pay/solana-pay.md +++ b/content/courses/solana-pay/solana-pay.md @@ -236,10 +236,10 @@ async function post(req: PublicKey, res: PublicKey) { }); const instruction = SystemProgram.transfer({ - fromPubkey: account, + fromPubkey: new PublicKey(account), toPubkey: Keypair.generate().publicKey, lamports: 0.001 * LAMPORTS_PER_SOL, - }); + }); transaction.add(instruction); From f0504e43362980faf36555ce4c7568f182cf1502 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 1 Oct 2024 19:10:26 -0600 Subject: [PATCH 078/206] fix typo (#548) * fix typo ez fix * Update content/courses/program-optimization/program-architecture.md --------- Co-authored-by: Mike MacCana --- content/courses/program-optimization/program-architecture.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/courses/program-optimization/program-architecture.md b/content/courses/program-optimization/program-architecture.md index d1d05e1f6..805888b71 100644 --- a/content/courses/program-optimization/program-architecture.md +++ b/content/courses/program-optimization/program-architecture.md @@ -271,8 +271,8 @@ const txHash = await program.methods .rpc(); ``` -The second caveat is that your'll have to call one of the following methods from -inside your rust instruction function to load the account: +The second caveat is that you'll have to call one of the following methods from +inside your rust instruction handler to load the account: - `load_init` when first initializing an account (this will ignore the missing account discriminator that gets added only after the user's instruction code) From 6506b8d30c4467799523f5e3750479e6a47e771d Mon Sep 17 00:00:00 2001 From: Sasha Shpota <5640984+Shpota@users.noreply.github.com> Date: Wed, 2 Oct 2024 03:39:11 +0200 Subject: [PATCH 079/206] Add sol4k to the client-side development section (#547) --- docs/intro/dev.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/intro/dev.md b/docs/intro/dev.md index 1d9d5caab..751e5a7b9 100644 --- a/docs/intro/dev.md +++ b/docs/intro/dev.md @@ -68,16 +68,16 @@ If you're developing on the client-side, you can work with any programming language you're comfortable with. Solana has community-contributed SDKs to help developers interact with the Solana network in most popular languages : -| Language | SDK | -| ---------- | ------------------------------------------------------------------------------------------- | -| RUST | [solana_sdk](https://docs.rs/solana-sdk/latest/solana_sdk/) | -| Typescript | [@solana/web3.js](https://github.com/solana-labs/solana-web3.js) | -| Python | [solders](https://github.com/kevinheavey/solders) | -| Java | [solanaj](https://github.com/skynetcap/solanaj) | -| C++ | [solcpp](https://github.com/mschneider/solcpp) | -| Go | [solana-go](https://github.com/gagliardetto/solana-go) | -| Kotlin | [solanaKT](https://github.com/metaplex-foundation/SolanaKT) | -| Dart | [solana](https://github.com/espresso-cash/espresso-cash-public/tree/master/packages/solana) | +| Language | SDK | +| ---------- | ------------------------------------------------------------------------------------------------------ | +| RUST | [solana_sdk](https://docs.rs/solana-sdk/latest/solana_sdk/) | +| Typescript | [@solana/web3.js](https://github.com/solana-labs/solana-web3.js) | +| Python | [solders](https://github.com/kevinheavey/solders) | +| Java | [solanaj](https://github.com/skynetcap/solanaj) | +| C++ | [solcpp](https://github.com/mschneider/solcpp) | +| Go | [solana-go](https://github.com/gagliardetto/solana-go) | +| Kotlin | [solanaKT](https://github.com/metaplex-foundation/SolanaKT) or [sol4k](https://github.com/sol4k/sol4k) | +| Dart | [solana](https://github.com/espresso-cash/espresso-cash-public/tree/master/packages/solana) | You'll also need a connection with an RPC to interact with the network. You can either work with a [RPC infrastructure provider](https://solana.com/rpc) or From e7460a59f7351f5e6cb87fc4b8195fea04509f39 Mon Sep 17 00:00:00 2001 From: davik stone <50995003+davik20@users.noreply.github.com> Date: Wed, 2 Oct 2024 02:47:39 +0100 Subject: [PATCH 080/206] Fix typo: Change "species" to "specifies" in documentation (#519) * update species to specifies * update species to specifies * Update content/courses/onchain-development/intro-to-anchor-frontend.md * Update content/courses/onchain-development/intro-to-anchor-frontend.md --------- Co-authored-by: Mike MacCana --- .../onchain-development/intro-to-anchor-frontend.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/courses/onchain-development/intro-to-anchor-frontend.md b/content/courses/onchain-development/intro-to-anchor-frontend.md index ecbe269e3..c4ea5331e 100644 --- a/content/courses/onchain-development/intro-to-anchor-frontend.md +++ b/content/courses/onchain-development/intro-to-anchor-frontend.md @@ -154,11 +154,11 @@ counter program you built previously: Inspecting the IDL, you can see the `programId` and the `metadata` object which have been added in anchor 0.30.0 -This program contains two instructions (`initialize` and `increment`). +This program contains two instruction handlers, `initialize` and `increment`. -Notice that in addition to specifying the instructions, it species the accounts -and inputs for each instruction. The `initialize` instruction requires three -accounts: +Notice that in addition to specifying the instruction handlers, it specifies the +accounts and inputs for each instruction. The `initialize` instruction requires +three accounts: 1. `counter` - the new account being initialized in the instruction 2. `user` - the payer for the transaction and initialization From 0dfaf2847436034d0d1f9a1ada9d391623941a83 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Wed, 2 Oct 2024 11:53:24 +1000 Subject: [PATCH 081/206] Prettier --- .../intro-to-solana/intro-to-custom-onchain-programs.md | 4 ++-- content/courses/solana-pay/solana-pay.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content/courses/intro-to-solana/intro-to-custom-onchain-programs.md b/content/courses/intro-to-solana/intro-to-custom-onchain-programs.md index 493fef4b8..8ad09db6e 100644 --- a/content/courses/intro-to-solana/intro-to-custom-onchain-programs.md +++ b/content/courses/intro-to-solana/intro-to-custom-onchain-programs.md @@ -17,8 +17,8 @@ invoked in the onchain program. ### Instructions -In previous lessons, we used the `SystemProgram.transfer()` function from -`@solana/web3.js`, which creates an instruction for the System program to +In previous lessons, we used the `SystemProgram.transfer()` function from +`@solana/web3.js`, which creates an instruction for the System program to transfer SOL. When working with other programs, however, you'll need to create instructions diff --git a/content/courses/solana-pay/solana-pay.md b/content/courses/solana-pay/solana-pay.md index 48d7991ab..bfacb6677 100644 --- a/content/courses/solana-pay/solana-pay.md +++ b/content/courses/solana-pay/solana-pay.md @@ -239,7 +239,7 @@ async function post(req: PublicKey, res: PublicKey) { fromPubkey: new PublicKey(account), toPubkey: Keypair.generate().publicKey, lamports: 0.001 * LAMPORTS_PER_SOL, - }); + }); transaction.add(instruction); From 33c09667975c9680d78d88a5071b35a687dfa711 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Wed, 2 Oct 2024 11:53:51 +1000 Subject: [PATCH 082/206] Remove deprecation warnings that are now fixed --- content/courses/mobile/metadata.yml | 4 ---- content/courses/state-compression/metadata.yml | 4 ---- content/courses/tokens-and-nfts/metadata.yml | 4 ---- 3 files changed, 12 deletions(-) diff --git a/content/courses/mobile/metadata.yml b/content/courses/mobile/metadata.yml index f0dff73dd..0d22afc5b 100644 --- a/content/courses/mobile/metadata.yml +++ b/content/courses/mobile/metadata.yml @@ -7,7 +7,3 @@ lessons: - mwa-deep-dive - solana-mobile-dapps-with-expo priority: 99 -# Uses deprecated @metaplex-foundation/js library for NFTs -# which also uses old RPC methods and no longer functions. -# TODO: Superteam to update -isHidden: true diff --git a/content/courses/state-compression/metadata.yml b/content/courses/state-compression/metadata.yml index a95b504a7..3a86b52a2 100644 --- a/content/courses/state-compression/metadata.yml +++ b/content/courses/state-compression/metadata.yml @@ -6,7 +6,3 @@ lessons: - compressed-nfts - generalized-state-compression priority: 65 -# Uses deprecated @metaplex-foundation/js library for NFTs -# which also uses old RPC methods and no longer functions. -# TODO: Superteam to update -isHidden: true diff --git a/content/courses/tokens-and-nfts/metadata.yml b/content/courses/tokens-and-nfts/metadata.yml index 07e368033..ec3629722 100644 --- a/content/courses/tokens-and-nfts/metadata.yml +++ b/content/courses/tokens-and-nfts/metadata.yml @@ -6,7 +6,3 @@ lessons: - token-program-advanced - nfts-with-metaplex priority: 10 -# Uses deprecated @metaplex-foundation/js library for NFTs -# which also uses old RPC methods and no longer functions. -# TODO: Superteam to update -isHidden: true From fc6d1c18ab5ac53c4ae57c7962f3ceb7a0bfbcc6 Mon Sep 17 00:00:00 2001 From: XuananLe <116771860+XuananLe@users.noreply.github.com> Date: Wed, 2 Oct 2024 09:39:40 +0700 Subject: [PATCH 083/206] Mobile Development: Update the docs + code of Solana Mobile Dapps with Expo (#461) * Update solana-mobile-dapps-with-expo.md * Run prettier the README file * Update the type Nft We don't use the @metaplex-foundation/js any more so we need to update the type NFT * Update solana-mobile-dapps-with-expo.md Fix README format * Migrate to Pinata Cloud instead of NFT Storage because they stopped their classic service since June 2024 * Update to Pinata Upload Image and Upload Data * Formatting + Remove unnecessary deps * Fix NftProvider + Update ContentBox * Update Code + Address all the issues * Small Fix + remove rn-fetch-blob because we don't need anymore. * Remove redundant console.log() * Small Fix Env variable * Update Docs + Small fix * Update content/courses/mobile/solana-mobile-dapps-with-expo.md * Update content/courses/mobile/solana-mobile-dapps-with-expo.md --------- Co-authored-by: Mike MacCana --- .../mobile/solana-mobile-dapps-with-expo.md | 1138 +++++++++-------- 1 file changed, 636 insertions(+), 502 deletions(-) diff --git a/content/courses/mobile/solana-mobile-dapps-with-expo.md b/content/courses/mobile/solana-mobile-dapps-with-expo.md index 16ee816f3..90d1bece8 100644 --- a/content/courses/mobile/solana-mobile-dapps-with-expo.md +++ b/content/courses/mobile/solana-mobile-dapps-with-expo.md @@ -11,10 +11,10 @@ description: "How to use Solana in your Expo apps." - Expo is an open-source collection of tools and libraries that wrap around React Native, much like Next.js is a framework built on top of React. -- In addition to simplifying the build/deploy process, Expo provides packages - that give you access to mobile devices' peripherals and capabilities. -- A lot of Solana ecosystem libraries don't support React native out of the box, - but you can typically use them with the right +- Along with simplifying the build and deploy process, Expo offers packages that + allow access to mobile device peripherals and capabilities. +- Many Solana ecosystem libraries don't natively support React Native, but you + can often use them with the appropriate [polyfills](https://developer.mozilla.org/en-US/docs/Glossary/Polyfill). ## Lesson @@ -37,8 +37,9 @@ lesson will be spent in the lab. ### React Native Expo -Expo is an open-source collection of tools and libraries that wrap around React -Native, much like Next.js is a framework built on top of React. +Expo is an open-source platform for making universal native apps for Android, +iOS, and the web that wraps around React Native, much like Next.js is a +framework built on top of React. Expo consists of three main parts: @@ -46,15 +47,15 @@ Expo consists of three main parts: 2. The Expo Go App 3. A suite of libraries that grant access to various mobile device capabilities. -The Expo CLI is a build and debugging tool that helps make all of the magic -happen. Chances are, you'll only have to interact with it when you're building -or starting a development server. It just works. +The Expo CLI is a powerful tool for building and debugging that simplifies the +development process. Chances are, you'll only have to interact with it when +you're building or starting a development server. It just works. The [Expo Go App](https://expo.dev/client) is a really cool piece of tech that allows _most_ apps to be developed without using an emulator or physical device. You download the app, you scan the QR from the build output and then you have a -working dev environment right on your phone. Unfortunately, this will not work -with the Solana mobile SDK. Coming from the +working dev environment right on your phone. However, this doesn't work with the +Solana Mobile SDK. Coming from the [Solana Expo setup article](https://docs.solanamobile.com/react-native/expo): > The traditional Expo Go development flow is only limited to certain @@ -64,7 +65,7 @@ with the Solana mobile SDK. Coming from the > fully compatible with Expo. Lastly, and most importantly, Expo does an amazing job providing -[easy-to-use libraries](https://docs.expo.dev/versions/latest/) that give you +[comprehensive libraries](https://docs.expo.dev/versions/latest/) that give you access to the device's onboard peripherals, such as camera, battery, and speakers. The libraries are intuitive and the documentation is phenomenal. @@ -73,12 +74,12 @@ speakers. The libraries are intuitive and the documentation is phenomenal. To get started with Expo, you first need the prerequisite setup described in the [Introduction to Solana Mobile lesson](/content/courses/mobile/intro-to-solana-mobile). After that, you'll want to sign up for an -[Expo Application Services (EAS) account](https://expo.dev/). +[Expo Application Services (EAS) account](https://expo.dev/eas). Once you have an EAS account, you can install the EAS CLI and log in: ```bash -npm install --global eas-cli +npm install -g eas-cli eas login ``` @@ -102,7 +103,7 @@ the following inside this file: ```json { "cli": { - "version": ">= 5.2.0" + "version": ">= 5.12.0" }, "build": { "development": { @@ -120,13 +121,14 @@ the following inside this file: } ``` -With the EAS config file created, you can build using the -`npx eas build --local` command plus relevant flags for any additional -requirements. For example, the following will build the project locally with a -development profile specifically for Android: +With the EAS configuration file in place, you can build your project using +`eas build`. This submits a job to the EAS Build service, where your APK is +built using Expo's cloud infrastructure. If you want to build locally, you can +add the `--local` flag. For example, the following command builds the project +locally with a development profile specifically for Android: ```bash -npx eas build --profile development --platform android --local +eas build --profile development --platform android --message "Developing on Android!" --local ``` You then need to install the output APK to your device or emulator. If you're @@ -168,8 +170,12 @@ JS/TS. import { Pedometer } from "expo-sensors"; ``` -Depending on the package, there may be additional setup required. Be sure to -read the [docs](https://docs.expo.dev/versions/latest/) when working with a new +Depending on the package, there may be additional setup required. For example, +if you're using the `expo-camera` package, you not only need to install the +package but also configure the appropriate permissions in your `app.json` or +`AndroidManifest.xml` file for Android and request runtime permissions for +accessing the camera. Be sure to read the +[Expo docs](https://docs.expo.dev/versions/latest/) when working with a new package. ### Integrate ecosystem libraries into your Expo app @@ -204,8 +210,10 @@ For a Solana + Expo app, you'll need the following: as `Transaction` and `Uint8Array`. - `@solana/web3.js`: Solana Web Library for interacting with the Solana network through the [JSON RPC API](/docs/rpc/http/index.mdx). -- `react-native-get-random-values`: Secure random number generator polyfill - for `web3.js` underlying Crypto library on React Native. +- `expo-crypto` is a secure random number generator polyfill used in React + Native for web3.js's underlying Crypto library. This feature is supported only + in Expo SDK version 49+ and requires Expo Router. Make sure your setup is + updated to meet these requirements. - `buffer`: Buffer polyfill needed for `web3.js` on React Native. #### Metaplex Polyfills @@ -213,37 +221,32 @@ For a Solana + Expo app, you'll need the following: If you want to use the Metaplex SDK, you'll need to add the Metaplex library plus a few additional polyfills: -- `@metaplex-foundation/js@0.19.4` - Metaplex Library +- `@metaplex-foundation/umi` `@metaplex-foundation/umi-bundle-defaults` + `@metaplex-foundation/mpl-core` - Metaplex Library - Several more polyfills - `assert` - - `util` - `crypto-browserify` - - `stream-browserify` - `readable-stream` - - `browserify-zlib` - - `path-browserify` - - `react-native-url-polyfill` - -All of the libraries that the above polyfills are meant to replace are utilized -by the Metaplex library in the background. It's unlikely you'll be importing any -of them into your code directly. Because of this, you'll need to register the -polyfills using a `metro.config.js` file. This will ensure that Metaplex uses -the polyfills instead of the usual Node.js libraries that aren't supported in -React Native. Below is an example `metro.config.js` file: + - `zlib` + - `react-native-url-polyfill` All of the libraries that the above polyfills + are meant to replace are utilized by the Metaplex libraries in the + background. It's unlikely you'll be importing any of them into your code + directly. Because of this, you'll need to register the polyfills using a + `metro.config.js` file. This will ensure that Metaplex uses the polyfills + instead of the usual Node.js libraries that aren't supported in React + Native. Below is an example `metro.config.js` file: ```js -const { getDefaultConfig } = require("@expo/metro-config"); -const defaultConfig = getDefaultConfig(__dirname); - -defaultConfig.resolver.extraNodeModules = { - crypto: require.resolve("crypto-browserify"), - stream: require.resolve("readable-stream"), - url: require.resolve("react-native-url-polyfill"), - zlib: require.resolve("browserify-zlib"), - path: require.resolve("path-browserify"), -}; +// Learn more https://docs.expo.io/guides/customizing-metro +const { getDefaultConfig } = require("expo/metro-config"); + +/** @type {import('expo/metro-config').MetroConfig} */ +const config = getDefaultConfig(__dirname); -module.exports = defaultConfig; +// Add polyfill resolvers +config.resolver.extraNodeModules.crypto = require.resolve("expo-crypto"); + +module.exports = config; ``` ### Putting it all together @@ -260,9 +263,11 @@ Let's practice this together by building the Mint-A-Day app, where users will able to mint a single NFT snapshot of their lives daily, creating a permanent diary of sorts. -To mint the NFTs we'll be using Metaplex's Javascript SDK along with -[nft.storage](https://nft.storage/) to store images and metadata. All of our -onchain work will be on Devnet. +To mint the NFTs we'll be using Metaplex's Umi libraries along with +[Pinata Cloud](https://pinata.cloud/) to store images and metadata. We are using +Pinata in this tutorial, but +[there are many good solutions for store images for long-term storage](https://solana.com/developers/guides/getstarted/how-to-create-a-token#create-and-upload-image-and-offchain-metadata). +All of our onchain work will be on Devnet. The first half of this lab is cobbling together the needed components to make Expo, Solana, and Metaplex all work together. We'll do this modularly so you'll @@ -293,12 +298,12 @@ it to run. We use 5GB of ram on our side. To simplify the Expo process, you'll want an Expo Application Services (EAS) account. This will help you build and run the application. -First sign up for an [EAS account](https://expo.dev/). +First sign up for an [EAS account](https://expo.dev/eas). Then, install the EAS CLI and log in: ```bash -npm install --global eas-cli +npm install -g eas-cli eas login ``` @@ -307,13 +312,13 @@ eas login Let's create our app with the following: ```bash -npx create-expo-app -t expo-template-blank-typescript solana-expo +npx create-expo-app --template blank-typescript solana-expo cd solana-expo +npx expo install expo-dev-client # This installs a library that enables the creation of custom development builds, providing useful tools for debugging and testing. While optional, it is recommended for a smoother development experience. ``` This uses `create-expo-app` to generate a new scaffold for us based on the -`expo-template-blank-typescript` template. This is just an empty Typescript -React Native app. +`blank-typescript` template. A Blank template with TypeScript enabled. #### 3. Local build config @@ -331,7 +336,7 @@ Copy and paste the following into the newly created `eas.json`: ```json { "cli": { - "version": ">= 5.2.0" + "version": ">= 3.12.0" }, "build": { "development": { @@ -351,8 +356,8 @@ Copy and paste the following into the newly created `eas.json`: #### 4. Build and emulate -Now let's build the project. You will choose `y` for every answer. This will -take a while to complete. +Now let's build the project locally. You will choose `y` for every answer. This +will take a while to complete. ```bash npx eas build --profile development --platform android --local @@ -387,15 +392,14 @@ already have a Devnet-enabled wallet installed you can skip step 0. You'll need a wallet that supports Devnet to test with. In [our Mobile Wallet Adapter lesson](/content/courses/mobile/mwa-deep-dive) we -created one of these. Let's install it from the solution branch in a different -directory from our app: +created one of these. Let's install it from the repo in a different directory +from our app: ```bash cd .. -git clone https://github.com/Unboxed-Software/react-native-fake-solana-wallet +git clone https://github.com/solana-developers/react-native-fake-solana-wallet cd react-native-fake-solana-wallet -git checkout solution -npm run install +yarn ``` The wallet should be installed on your emulator or device. Make sure to open the @@ -416,11 +420,11 @@ all Solana mobile apps. This will include some polyfills that allow otherwise incompatible packages to work with React native: ```bash -npm install \ +yarn add \ @solana/web3.js \ @solana-mobile/mobile-wallet-adapter-protocol-web3js \ @solana-mobile/mobile-wallet-adapter-protocol \ - react-native-get-random-values \ + expo-crypto \ buffer ``` @@ -433,16 +437,17 @@ Create two new folders: `components` and `screens`. We are going to use some boilerplate code from the [first Mobile lesson](/content/courses/mobile/basic-solana-mobile). We will be -copying over `components/AuthProvider.tsx` and +copying over `components/AuthorizationProvider.tsx` and `components/ConnectionProvider.tsx`. These files provide us with a `Connection` object as well as some helper functions that authorize our dapp. -Create file `components/AuthProvider.tsx` and copy the contents -[of our existing Auth Provider from Github](https://raw.githubusercontent.com/Unboxed-Software/solana-advance-mobile/main/components/AuthProvider.tsx) +Create file `components/AuthorizationProvider.tsx` and copy the contents of +[our existing Auth Provider from Github](https://raw.githubusercontent.com/solana-developers/mobile-apps-with-expo/main/components/AuthorizationProvider.tsx) into the new file. Secondly, create file `components/ConnectionProvider.tsx` and copy the contents -[of our existing Connection Provider from Github](https://raw.githubusercontent.com/Unboxed-Software/solana-advance-mobile/main/components/ConnectionProvider.tsx) +of +[our existing Connection Provider from Github](https://raw.githubusercontent.com/solana-developers/mobile-apps-with-expo/main/components/ConnectionProvider.tsx) into the new file. Now let's create a boilerplate for our main screen in `screens/MainScreen.tsx`: @@ -460,18 +465,46 @@ export function MainScreen() { } ``` +Next, create file called `polyfills.ts` for react-native to work with all the +solana dependencies + +```typescript filename="polyfills.ts" +import { getRandomValues as expoCryptoGetRandomValues } from "expo-crypto"; +import { Buffer } from "buffer"; + +// Set global Buffer +global.Buffer = Buffer; + +// Define Crypto class with getRandomValues method +class Crypto { + getRandomValues = expoCryptoGetRandomValues; +} + +// Check if crypto is already defined in the global scope +const hasInbuiltWebCrypto = typeof window.crypto !== "undefined"; + +// Use existing crypto if available, otherwise create a new Crypto instance +const webCrypto = hasInbuiltWebCrypto ? window.crypto : new Crypto(); + +// Polyfill crypto object if it's not already defined +if (!hasInbuiltWebCrypto) { + Object.defineProperty(window, "crypto", { + configurable: true, + enumerable: true, + get: () => webCrypto, + }); +} +``` + Finally, let's change `App.tsx` to wrap our application in the two providers we just created: ```tsx -import "react-native-get-random-values"; -import { StatusBar } from "expo-status-bar"; -import { StyleSheet, Text, View } from "react-native"; import { ConnectionProvider } from "./components/ConnectionProvider"; -import { AuthorizationProvider } from "./components/AuthProvider"; +import { AuthorizationProvider } from "./components/AuthorizationProvider"; import { clusterApiUrl } from "@solana/web3.js"; import { MainScreen } from "./screens/MainScreen"; -global.Buffer = require("buffer").Buffer; +import "./polyfills"; export default function App() { const cluster = "devnet"; @@ -491,22 +524,36 @@ export default function App() { } ``` -Notice we've added two polyfills above: `buffer` and -`react-native-get-random-values`. These are necessary for the Solana -dependencies to run correctly. +Notice we've added the polyfills file `polyfills.ts`. These are necessary for +the Solana dependencies to run correctly. #### 4. Build and run Solana boilerplate +Add the following convenient run scripts to your `package.json` file. + +```json + "scripts": { + "start": "expo start --dev-client", + "android": "expo start --android", + "ios": "expo start --ios", + "web": "expo start --web", + "build": "npx eas build --profile development --platform android", + "build:local": "npx eas build --profile development --platform android --local", + "test": "echo \"No tests specified\" && exit 0", + "clean": "rm -rf node_modules && yarn" + } +``` + Let's make sure everything is working and compiling correctly. In Expo, anytime you change the dependencies, you'll need to rebuild and re-install the app. **_Optional:_** To avoid possible build version conflicts, you may want to _uninstall_ the previous version before you drag and drop the new one in. -Build: +Build locally: ```bash -npx eas build --profile development --platform android --local +yarn run build:local ``` Install: **_Drag_** the resulting build file into your emulator. @@ -514,7 +561,7 @@ Install: **_Drag_** the resulting build file into your emulator. Run: ```bash -npx expo start --dev-client --android +yarn run android ``` Everything should compile and you should have a boilerplate Solana Expo app. @@ -528,12 +575,12 @@ you can reference. #### 1. Install Metaplex dependencies -The Metaplex SDK abstracts away a lot of the minutia of working with NFTs, -however it was written largely for Node.js, so we'll need several more polyfills -to make it work: +[Metaplex programs and tools](https://developers.metaplex.com/programs-and-tools) +abstracts away a lot of the minutia of working with NFTs, however it was written +largely for Node.js, so we'll need several more polyfills to make it work: ```bash -npm install assert \ +yarn add assert \ util \ crypto-browserify \ stream-browserify \ @@ -541,7 +588,12 @@ npm install assert \ browserify-zlib \ path-browserify \ react-native-url-polyfill \ - @metaplex-foundation/js@0.19.4 + @metaplex-foundation/umi \ + @metaplex-foundation/umi-bundle-defaults \ + @metaplex-foundation/umi-signer-wallet-adapters \ + @metaplex-foundation/umi-web3js-adapters \ + @metaplex-foundation/mpl-token-metadata \ + @metaplex-foundation/mpl-candy-machine ``` #### 2. Polyfill config @@ -555,122 +607,95 @@ touch metro.config.js Copy and paste the following into `metro.config.js`: -```js -// Import the default Expo Metro config -const { getDefaultConfig } = require("@expo/metro-config"); - -// Get the default Expo Metro configuration -const defaultConfig = getDefaultConfig(__dirname); - -// Customize the configuration to include your extra node modules -defaultConfig.resolver.extraNodeModules = { - crypto: require.resolve("crypto-browserify"), - stream: require.resolve("readable-stream"), - url: require.resolve("react-native-url-polyfill"), - zlib: require.resolve("browserify-zlib"), - path: require.resolve("path-browserify"), -}; +```javascript +// Learn more https://docs.expo.io/guides/customizing-metro +const { getDefaultConfig } = require("expo/metro-config"); -// Export the modified configuration -module.exports = defaultConfig; +/** @type {import('expo/metro-config').MetroConfig} */ +const config = getDefaultConfig(__dirname); + +// Add polyfill resolvers +config.resolver.extraNodeModules.crypto = require.resolve("expo-crypto"); + +module.exports = config; ``` #### 3. Metaplex provider -We're going to create a Metaplex provider file that will help us access a -`Metaplex` object. This `Metaplex` object is what gives us access to all of the -functions we'll need like `fetch` and `create`. To do this we create a new file -`/components/MetaplexProvider.tsx`. Here we pipe our mobile wallet adapter into -an `IdentitySigner` for the `Metaplex` object to use. This allows it to call -several privileged functions on our behalf: +We'll be creating NFTs using +[Metaplex's MPL Token Metadata library](https://developers.metaplex.com/token-metadata), +leveraging the `Umi` object, a tool commonly used in many Metaplex applications. +This combination will give us access to key functions like `fetch` and `create` +that are essential for NFT creation. To set this up, we will create a new file, +`/components/UmiProvider.tsx`, where we'll connect our mobile wallet adapter to +the `Umi` object. This allows us to execute privileged actions, such as +interacting with token metadata, on our behalf. ```tsx +import { createContext, ReactNode, useContext } from "react"; +import type { Umi } from "@metaplex-foundation/umi"; import { - IdentitySigner, - Metaplex, - MetaplexPlugin, -} from "@metaplex-foundation/js"; -import { - transact, - Web3MobileWallet, -} from "@solana-mobile/mobile-wallet-adapter-protocol-web3js"; -import { Connection, Transaction } from "@solana/web3.js"; -import { useMemo } from "react"; -import { Account } from "./AuthProvider"; - -export const mobileWalletAdapterIdentity = ( - mwaIdentitySigner: IdentitySigner, -): MetaplexPlugin => ({ - install(metaplex: Metaplex) { - metaplex.identity().setDriver(mwaIdentitySigner); - }, -}); - -export const useMetaplex = ( - connection: Connection, - selectedAccount: Account | null, - authorizeSession: (wallet: Web3MobileWallet) => Promise, -) => { - return useMemo(() => { - if (!selectedAccount || !authorizeSession) { - return { mwaIdentitySigner: null, metaplex: null }; - } - - const mwaIdentitySigner: IdentitySigner = { - publicKey: selectedAccount.publicKey, - signMessage: async (message: Uint8Array): Promise => { - return await transact(async (wallet: Web3MobileWallet) => { - await authorizeSession(wallet); - - const signedMessages = await wallet.signMessages({ - addresses: [selectedAccount.publicKey.toBase58()], - payloads: [message], - }); - - return signedMessages[0]; - }); - }, - signTransaction: async ( - transaction: Transaction, - ): Promise => { - return await transact(async (wallet: Web3MobileWallet) => { - await authorizeSession(wallet); + createNoopSigner, + publicKey, + signerIdentity, +} from "@metaplex-foundation/umi"; +import { createUmi } from "@metaplex-foundation/umi-bundle-defaults"; +import { walletAdapterIdentity } from "@metaplex-foundation/umi-signer-wallet-adapters"; +import { mplTokenMetadata } from "@metaplex-foundation/mpl-token-metadata"; +import { mplCandyMachine } from "@metaplex-foundation/mpl-candy-machine"; +import { useAuthorization } from "./AuthorizationProvider"; + +type UmiContext = { + umi: Umi | null; +}; - const signedTransactions = await wallet.signTransactions({ - transactions: [transaction], - }); +const DEFAULT_CONTEXT: UmiContext = { + umi: null, +}; - return signedTransactions[0]; - }); - }, - signAllTransactions: async ( - transactions: Transaction[], - ): Promise => { - return transact(async (wallet: Web3MobileWallet) => { - await authorizeSession(wallet); - const signedTransactions = await wallet.signTransactions({ - transactions: transactions, - }); - return signedTransactions; - }); - }, - }; +export const UmiContext = createContext(DEFAULT_CONTEXT); - const metaplex = Metaplex.make(connection).use( - mobileWalletAdapterIdentity(mwaIdentitySigner), +export const UmiProvider = ({ + endpoint, + children, +}: { + endpoint: string; + children: ReactNode; +}) => { + const { selectedAccount } = useAuthorization(); + const umi = createUmi(endpoint) + .use(mplTokenMetadata()) + .use(mplCandyMachine()); + if (selectedAccount === null) { + const noopSigner = createNoopSigner( + publicKey("11111111111111111111111111111111"), ); + umi.use(signerIdentity(noopSigner)); + } else { + umi.use(walletAdapterIdentity(selectedAccount)); + } - return { metaplex }; - }, [authorizeSession, selectedAccount, connection]); + return {children}; }; + +export function useUmi(): Umi { + const umi = useContext(UmiContext).umi; + if (!umi) { + throw new Error( + "Umi context was not initialized. " + + "Did you forget to wrap your app with ?", + ); + } + return umi; +} ``` #### 4. NFT Provider We're also making a higher-level NFT provider that helps with NFT state management. It combines all three of our previous providers: -`ConnectionProvider`, `AuthProvider`, and `MetaplexProvider` to allow us to -create our `Metaplex` object. We will fill this out at a later step; for now, it +`ConnectionProvider`, `AuthorizationProvider`, and `UmiProvider` to allow us to +create our `Umi` object. We will fill this out at a later step; for now, it makes for a good boilerplate. Let's create the new file `components/NFTProvider.tsx`: @@ -678,17 +703,22 @@ Let's create the new file `components/NFTProvider.tsx`: ```tsx import "react-native-url-polyfill/auto"; import { useConnection } from "./ConnectionProvider"; -import { Account, useAuthorization } from "./AuthProvider"; +import { Account, useAuthorization } from "./AuthorizationProvider"; import React, { ReactNode, createContext, useContext, useState } from "react"; -import { useMetaplex } from "./MetaplexProvider"; +import { useUmi } from "./UmiProvider"; +import { Umi } from "@metaplex-foundation/umi"; export interface NFTProviderProps { children: ReactNode; } -export interface NFTContextState {} +export interface NFTContextState { + umi: Umi | null; +} -const DEFAULT_NFT_CONTEXT_STATE: NFTContextState = {}; +const DEFAULT_NFT_CONTEXT_STATE: NFTContextState = { + umi: null, +}; const NFTContext = createContext(DEFAULT_NFT_CONTEXT_STATE); @@ -698,9 +728,11 @@ export function NFTProvider(props: NFTProviderProps) { const { connection } = useConnection(); const { authorizeSession } = useAuthorization(); const [account, setAccount] = useState(null); - const { metaplex } = useMetaplex(connection, account, authorizeSession); + const { umi } = useUmi(connection, account, authorizeSession); - const state = {}; + const state: NFTContextState = { + umi, + }; return {children}; } @@ -716,13 +748,12 @@ Notice we've added yet another polyfill to the top Now, let's wrap our new `NFTProvider` around `MainScreen` in `App.tsx`: ```tsx -import "react-native-get-random-values"; +import "./polyfills"; import { ConnectionProvider } from "./components/ConnectionProvider"; -import { AuthorizationProvider } from "./components/AuthProvider"; +import { AuthorizationProvider } from "./components/AuthorizationProvider"; import { clusterApiUrl } from "@solana/web3.js"; import { MainScreen } from "./screens/MainScreen"; import { NFTProvider } from "./components/NFTProvider"; -global.Buffer = require("buffer").Buffer; export default function App() { const cluster = "devnet"; @@ -769,12 +800,12 @@ npx expo start --dev-client --android Everything we've done to this point is effectively boilerplate. We need to add the functionality we intend for our Mint-A-Day app to have. Mint-A-day is a -daily snapshot app. It lets users take a snapshot of their life daily in the +daily snapshot app. It allows users take a snapshot of their life daily in the form of minting an NFT. The app will need access to the device's camera and a place to remotely store the captured images. Fortunately, Expo SDK can provide access to the camera and -[NFT.Storage](https://nft.storage) can store your NFT files for free. +[Pinata Cloud](https://pinata.cloud/) can store your NFT files safely. #### 1. Camera setup @@ -806,31 +837,40 @@ as a plugin in `app.json`: } ``` -This particular dependency makes it super simple to use the camera. To allow the -user to take a picture and return the image all you have to do is call the -following: +This dependency makes it incredibly easy to use the camera. To allow the user to +take a picture and return the image, simply call the following: ```tsx +// Launch the camera to take a picture using ImagePicker const result = await ImagePicker.launchCameraAsync({ + // Restrict media types to images only (no videos) mediaTypes: ImagePicker.MediaTypeOptions.Images, + + // Allow the user to edit/crop the image after taking it allowsEditing: true, + + // Specify the aspect ratio of the cropping frame (1:1 for a square) aspect: [1, 1], + + // Set the image quality to maximum (1.0 = highest quality, 0.0 = lowest) quality: 1, }); + +// 'result' will contain information about the captured image +// If the user cancels, result.cancelled will be true, otherwise it will contain the image URI ``` No need to add this anywhere yet - we'll get to it in a few steps. -#### 2. NFT.Storage setup +#### 2. Pinata Cloud setup The last thing we need to do is set up our access to -[nft.storage](https://nft.storage). We'll need to get an API key and add it as -an environment variable, then we need to add one last dependency to convert our -images into a file type we can upload. +[Pinata Cloud](https://pinata.cloud/). We'll need to get an API key and add it +as an environment variable, then we need to add one last dependency to convert +our images into a file type we can upload. -We'll be using NFT.storage to host our NFTs with IPFS since they do this for -free. [Sign up, and create an API key](https://nft.storage/manage/). Keep this -API key private. +We'll be using Pinata Cloud to host our NFTs with IPFS since they do this for a +very cheap price. Remember to keep this API key private. Best practices suggest keeping API keys in a `.env` file with `.env` added to your `.gitignore`. It's also a good idea to create a `.env.example` file that @@ -840,19 +880,13 @@ for the project. Create both files, in the root of your directory and add `.env` to your `.gitignore` file. -Then, add your API key to the `.env` file with the name -`EXPO_PUBLIC_NFT_STORAGE_API`. Now you'll be able to access your API key safely -in the application. - -Lastly, install `rn-fetch-blob`. This package will help us grab images from the -device's URI scheme and turn them into Blobs we can the upload to -[NFT.storage](https://nft.storage). - -Install it with the following: - -```bash -npm i rn-fetch-blob -``` +Next, add your API key to the `.env` file with the variable name +`EXPO_PUBLIC_NFT_PINATA_JWT`. This allows you to securely access your API key in +the application using `process.env.EXPO_PUBLIC_NFT_PINATA_JWT`, unlike +traditional `import "dotenv/config"` which may require additional polyfills when +working with Expo. For more information on securely storing secrets, refer to +the +[Expo documentation on environment variables](https://docs.expo.dev/build-reference/variables/#importing-secrets-from-a-dotenv-file) #### 3. Final build @@ -887,8 +921,8 @@ The app itself is relatively straightforward. The general flow is: 1. The user connects (authorizes) using the `transact` function and by calling `authorizeSession` inside the callback -2. Our code then uses the `Metaplex` object to fetch all of the NFTs created by - the user +2. Our code then uses the `Umi` object to fetch all of the NFTs created by the + user 3. If an NFT has not been created for the current day, allow the user to take a picture, upload it, and mint it as an NFT @@ -897,26 +931,28 @@ The app itself is relatively straightforward. The general flow is: `NFTProvider.tsx` will control the state with our custom `NFTProviderContext`. This should have the following fields: -- `metaplex: Metaplex | null` - Holds the metaplex object that we use to call - `fetch` and `create` +- `umi: Umi | null` - Holds the metaplex object that we use to call `fetch` and + `create` - `publicKey: PublicKey | null` - The NFT creator's public key - `isLoading: boolean` - Manages loading state -- `loadedNFTs: (Nft | Sft | SftWithToken | NftWithToken)[] | null` - An array of - the user's snapshot NFTs -- `nftOfTheDay: (Nft | Sft | SftWithToken | NftWithToken) | null` - A reference - to the NFT created today +- `loadedNFTs: (DigitalAsset)[] | null` - An array of the user's snapshot NFTs +- `nftOfTheDay: (DigitalAsset) | null` - A reference to the NFT created today - `connect: () => void` - A function for connecting to the Devnet-enabled wallet - `fetchNFTs: () => void` - A function that fetches the user's snapshot NFTs - `createNFT: (name: string, description: string, fileUri: string) => void` - A function that creates a new snapshot NFT +The `DigitalAsset` type comes from `@metaplex-foundation/mpl-token-metadata` +that have metadata, off-chain metadata, collection data, plugins (including +Attributes), and more. + ```tsx export interface NFTContextState { metaplex: Metaplex | null; // Holds the metaplex object that we use to call `fetch` and `create` on. publicKey: PublicKey | null; // The public key of the authorized wallet isLoading: boolean; // Loading state - loadedNFTs: (Nft | Sft | SftWithToken | NftWithToken)[] | null; // Array of loaded NFTs that contain metadata - nftOfTheDay: (Nft | Sft | SftWithToken | NftWithToken) | null; // The NFT snapshot created on the current day + loadedNFTs: DigitalAsset[] | null; // Array of loaded NFTs that contain metadata + nftOfTheDay: DigitalAsset | null; // The NFT snapshot created on the current day connect: () => void; // Connects (and authorizes) us to the Devnet-enabled wallet fetchNFTs: () => void; // Fetches the NFTs using the `metaplex` object createNFT: (name: string, description: string, fileUri: string) => void; // Creates the NFT @@ -943,201 +979,220 @@ through the code for each of them and then show you the entire file at the end: }; ``` -2. `fetchNFTs` - This function will fetch the NFTs using Metaplex: - - ```tsx - const fetchNFTs = async () => { - if (!metaplex || !account || isLoading) return; +2. `fetchNFTs` - This function will fetch the NFTs using + `fetchAllDigitalAssetByCreator`: - setIsLoading(true); - - try { - const nfts = await metaplex.nfts().findAllByCreator({ - creator: account.publicKey, - }); - - const loadedNFTs = await Promise.all( - nfts.map(nft => { - return metaplex.nfts().load({ metadata: nft as Metadata }); - }), - ); - setLoadedNFTs(loadedNFTs); - - // Check if we already took a snapshot today - const nftOfTheDayIndex = loadedNFTs.findIndex(nft => { - return formatDate(new Date(Date.now())) === nft.name; - }); - - if (nftOfTheDayIndex !== -1) { - setNftOfTheDay(loadedNFTs[nftOfTheDayIndex]); - } - } catch (error) { - console.log(error); - } finally { - setIsLoading(false); - } - }; - ``` - -3. `createNFT` - This function will upload a file to NFT.Storage, and then use - Metaplex to create and mint an NFT to your wallet. This comes in three parts, - uploading the image, uploading the metadata and then minting the NFT. +```tsx +const fetchNFTs = useCallback(async () => { + if (!umi || !account || isLoading) return; + setIsLoading(true); + try { + const creatorPublicKey = fromWeb3JsPublicKey(account.publicKey); + const nfts = await fetchAllDigitalAssetByCreator(umi, creatorPublicKey); + setLoadedNFTs(nfts); + } catch (error) { + console.error("Failed to fetch NFTs:", error); + } finally { + setIsLoading(false); + } +}, [umi, account, isLoading]); +``` - To upload to NFT.Storage you just make a POST with your API key and the - image/metadata as the body. +3. `createNFT` - This function will upload a file to Pinata Cloud, and then use + `createNft` function from to create and mint an NFT to your wallet. This + comes in three parts, uploading the image, uploading the metadata and then + minting the NFT. To upload to Pinata Cloud, you can use their + [HTTP API endpoint](https://docs.pinata.cloud/api-reference/endpoint/upload-a-file), + allowing interaction with their API for file uploads. We'll create two helper functions for uploading the image and metadata separately, then tie them together into a single `createNFT` function: - ```tsx - // https://nft.storage/api-docs/ - const uploadImage = async (fileUri: string): Promise => { - const imageBytesInBase64: string = await RNFetchBlob.fs.readFile( - fileUri, - "base64", - ); - const bytes = Buffer.from(imageBytesInBase64, "base64"); - - const response = await fetch("https://api.nft.storage/upload", { - method: "POST", - headers: { - Authorization: `Bearer ${process.env.EXPO_PUBLIC_NFT_STORAGE_API}`, - "Content-Type": "image/jpg", - }, - body: bytes, - }); +```tsx +const ipfsPrefix = `https://${process.env.EXPO_PUBLIC_NFT_PINATA_GATEWAY_URL}/ipfs/`; +async function uploadImageFromURI(fileUri: string) { + try { + const form = new FormData(); + const randomFileName = `image_${Date.now()}_${Math.floor(Math.random() * 10000)}.jpg`; + + form.append("file", { + uri: Platform.OS === "android" ? fileUri : fileUri.replace("file://", ""), + type: "image/jpeg", // Adjust the type as necessary + name: randomFileName, // Adjust the name as necessary + }); - const data = await response.json(); - const cid = data.value.cid; + const options = { + method: "POST", + headers: { + Authorization: `Bearer ${process.env.EXPO_PUBLIC_NFT_PINATA_JWT}`, + "Content-Type": "multipart/form-data", + }, + body: form, + }; - return cid as string; - }; + const response = await fetch( + "https://api.pinata.cloud/pinning/pinFileToIPFS", + options, + ); + const responseJson = await response.json(); + return responseJson; + } catch (error) { + console.error("Upload failed:", error); + } finally { + console.log("Upload process completed."); + } +} - const uploadMetadata = async ( - name: string, - description: string, - imageCID: string, - ): Promise => { - const response = await fetch("https://api.nft.storage/upload", { - method: "POST", - headers: { - Authorization: `Bearer ${process.env.EXPO_PUBLIC_NFT_STORAGE_API}`, - }, - body: JSON.stringify({ - name, - description, - image: `https://ipfs.io/ipfs/${imageCID}`, - }), - }); +async function uploadMetadataJson( + name: string, + description: string, + imageCID: string, +) { + const randomFileName = `metadata_${Date.now()}_${Math.floor(Math.random() * 10000)}.json`; + const data = JSON.stringify({ + pinataContent: { + name, + description, + imageCID, + }, + pinataMetadata: { + name: randomFileName, + }, + }); + const response = await fetch( + "https://api.pinata.cloud/pinning/pinJSONToIPFS", + { + method: "POST", + headers: { + "Content-Type": "application/x-www-form-urlencoded", + Accept: "application/json", + Authorization: `Bearer ${process.env.EXPO_PUBLIC_NFT_PINATA_JWT}`, + }, + body: data, + }, + ); + const responseBody = await response.json(); - const data = await response.json(); - const cid = data.value.cid; + return responseBody; +} - return cid; - }; - ``` +const uploadImage = useCallback(async (fileUri: string): Promise => { + const upload = await uploadImageFromURI(fileUri); + return upload.IpfsHash; +}, []); - Minting the NFT after the image and metadata have been uploaded is as simple - as calling `metaplex.nfts().create(...)`. Below shows the `createNFT` - function tying everything together: +const uploadMetadata = useCallback( + async ( + name: string, + description: string, + imageCID: string, + ): Promise => { + const uploadResponse = await uploadMetadataJson( + name, + description, + imageCID, + ); + return uploadResponse.IpfsHash; + }, + [], +); +``` - ```tsx - const createNFT = async ( - name: string, - description: string, - fileUri: string, - ) => { - if (!metaplex || !account || isLoading) return; +Minting the NFT after the image and metadata have been uploaded is as simple as +calling `createNft` from `@metaplex-foundation/mpl-token-metadata`. Below shows +the `createNFT` function tying everything together: - setIsLoading(true); - try { - const imageCID = await uploadImage(fileUri); - const metadataCID = await uploadMetadata(name, description, imageCID); - - const nft = await metaplex.nfts().create({ - uri: `https://ipfs.io/ipfs/${metadataCID}`, - name: name, - sellerFeeBasisPoints: 0, - }); - - setNftOfTheDay(nft.nft); - } catch (error) { - console.log(error); - } finally { - setIsLoading(false); - } - }; - ``` +```tsx +const createNFT = useCallback( + async (name: string, description: string, fileUri: string) => { + if (!umi || !account || isLoading) return; + setIsLoading(true); + try { + console.log(`Creating NFT...`); + const imageCID = await uploadImage(fileUri); + const metadataCID = await uploadMetadata(name, description, imageCID); + const mint = generateSigner(umi); + const transaction = createNft(umi, { + mint, + name, + uri: ipfsPrefix + metadataCID, + sellerFeeBasisPoints: percentAmount(0), + }); + await transaction.sendAndConfirm(umi); + const createdNft = await fetchDigitalAsset(umi, mint.publicKey); + setNftOfTheDay(createdNft); + } catch (error) { + console.error("Failed to create NFT:", error); + } finally { + setIsLoading(false); + } + }, + [umi, account, isLoading, uploadImage, uploadMetadata], +); +``` We'll put all of the above into the `NFTProvider.tsx` file. All together, this looks as follows: ```tsx import "react-native-url-polyfill/auto"; -import React, { ReactNode, createContext, useContext, useState } from "react"; import { - Metaplex, + DigitalAsset, + createNft, + fetchAllDigitalAssetByCreator, + fetchDigitalAsset, +} from "@metaplex-foundation/mpl-token-metadata"; +import { PublicKey, - Metadata, - Nft, - Sft, - SftWithToken, - NftWithToken, -} from "@metaplex-foundation/js"; -import { useConnection } from "./ConnectionProvider"; -import { Connection, clusterApiUrl } from "@solana/web3.js"; -import { transact } from "@solana-mobile/mobile-wallet-adapter-protocol"; -import { Account, useAuthorization } from "./AuthProvider"; -import RNFetchBlob from "rn-fetch-blob"; -import { useMetaplex } from "./MetaplexProvider"; + Umi, + generateSigner, + percentAmount, +} from "@metaplex-foundation/umi"; +import { fromWeb3JsPublicKey } from "@metaplex-foundation/umi-web3js-adapters"; +import { clusterApiUrl, PublicKey as solanaPublicKey } from "@solana/web3.js"; +import React, { + ReactNode, + createContext, + useCallback, + useContext, + useEffect, + useMemo, + useState, +} from "react"; +import { useUmi } from "./UmiProvider"; +import { useMobileWallet } from "../utils/useMobileWallet"; +import { Account, useAuthorization } from "./AuthorizationProvider"; +import { Platform } from "react-native"; export interface NFTProviderProps { children: ReactNode; } export interface NFTContextState { - metaplex: Metaplex | null; - publicKey: PublicKey | null; - isLoading: boolean; - loadedNFTs: (Nft | Sft | SftWithToken | NftWithToken)[] | null; - nftOfTheDay: (Nft | Sft | SftWithToken | NftWithToken) | null; - connect: () => void; - fetchNFTs: () => void; - createNFT: (name: string, description: string, fileUri: string) => void; + umi: Umi | null; // Holds the Umi object that we use to call `fetch` and `create` on. + publicKey: PublicKey | null; // The public key of the authorized wallet + isLoading: boolean; // Loading state + loadedNFTs: DigitalAsset[] | null; // Array of loaded NFTs that contain metadata + nftOfTheDay: DigitalAsset | null; // The NFT snapshot created on the current day + connect: () => void; // Connects (and authorizes) us to the Devnet-enabled wallet + fetchNFTs: () => void; // Fetches the NFTs using the `metaplex` object + createNFT: (name: string, description: string, fileUri: string) => void; // Creates the NFT } -const DEFAULT_NFT_CONTEXT_STATE: NFTContextState = { - metaplex: new Metaplex(new Connection(clusterApiUrl("devnet"))), - publicKey: null, - isLoading: false, - loadedNFTs: null, - nftOfTheDay: null, - connect: () => PublicKey.default, - fetchNFTs: () => {}, - createNFT: (name: string, description: string, fileUri: string) => {}, -}; - -const NFTContext = createContext(DEFAULT_NFT_CONTEXT_STATE); - export function formatDate(date: Date) { return `${date.getDate()}.${date.getMonth()}.${date.getFullYear()}`; } +const NFTContext = createContext(null); + export function NFTProvider(props: NFTProviderProps) { - const { children } = props; - const { connection } = useConnection(); - const { authorizeSession } = useAuthorization(); + const ipfsPrefix = `https://${process.env.EXPO_PUBLIC_NFT_PINATA_GATEWAY_URL}/ipfs/`; const [account, setAccount] = useState(null); + const [nftOfTheDay, setNftOfTheDay] = useState(null); + const [loadedNFTs, setLoadedNFTs] = useState(null); const [isLoading, setIsLoading] = useState(false); - const [nftOfTheDay, setNftOfTheDay] = useState< - (Nft | Sft | SftWithToken | NftWithToken) | null - >(null); - const [loadedNFTs, setLoadedNFTs] = useState< - (Nft | Sft | SftWithToken | NftWithToken)[] | null - >(null); - - const { metaplex } = useMetaplex(connection, account, authorizeSession); - + const umi = useUmi(); + const { children } = props; const connect = () => { if (isLoading) return; @@ -1149,118 +1204,151 @@ export function NFTProvider(props: NFTProviderProps) { setIsLoading(false); }); }; - - const fetchNFTs = async () => { - if (!metaplex || !account || isLoading) return; - - setIsLoading(true); - + async function uploadImageFromURI(fileUri: string) { try { - const nfts = await metaplex.nfts().findAllByCreator({ - creator: account.publicKey, + const form = new FormData(); + const randomFileName = `image_${Date.now()}_${Math.floor(Math.random() * 10000)}.jpg`; + + // In React Native, especially when working with form data and files, you may need to send files using an object that contains a URI (file path), especially on Android and iOS platforms. However, this structure may not be recognized by TypeScript's strict type checking + // @ts-ignore + form.append("file", { + uri: + Platform.OS === "android" ? fileUri : fileUri.replace("file://", ""), + type: "image/jpeg", // Adjust the type as necessary + name: randomFileName, // Adjust the name as necessary }); - const loadedNFTs = await Promise.all( - nfts.map(nft => { - return metaplex.nfts().load({ metadata: nft as Metadata }); - }), + const options = { + method: "POST", + headers: { + Authorization: `Bearer ${process.env.EXPO_PUBLIC_NFT_PINATA_JWT}`, + "Content-Type": "multipart/form-data", + }, + body: form, + }; + + const response = await fetch( + "https://api.pinata.cloud/pinning/pinFileToIPFS", + options, ); - setLoadedNFTs(loadedNFTs); - - // Check if we already took a snapshot today - const nftOfTheDayIndex = loadedNFTs.findIndex(nft => { - return formatDate(new Date(Date.now())) === nft.name; - }); + const responseJson = await response.json(); + console.log(responseJson.IpfsHash); - if (nftOfTheDayIndex !== -1) { - setNftOfTheDay(loadedNFTs[nftOfTheDayIndex]); - } + return responseJson; } catch (error) { - console.log(error); + console.error("Upload failed:", error); } finally { - setIsLoading(false); + console.log("Upload process completed."); } - }; - - // https://nft.storage/api-docs/ - const uploadImage = async (fileUri: string): Promise => { - const imageBytesInBase64: string = await RNFetchBlob.fs.readFile( - fileUri, - "base64", - ); - const bytes = Buffer.from(imageBytesInBase64, "base64"); - - const response = await fetch("https://api.nft.storage/upload", { - method: "POST", - headers: { - Authorization: `Bearer ${process.env.EXPO_PUBLIC_NFT_STORAGE_API}`, - "Content-Type": "image/jpg", - }, - body: bytes, - }); - - const data = await response.json(); - const cid = data.value.cid; - - return cid as string; - }; + } - const uploadMetadata = async ( - name: string, - description: string, - imageCID: string, - ): Promise => { - const response = await fetch("https://api.nft.storage/upload", { - method: "POST", - headers: { - Authorization: `Bearer ${process.env.EXPO_PUBLIC_NFT_STORAGE_API}`, - }, - body: JSON.stringify({ + async function uploadMetadataJson( + name = "Solanify", + description = "A truly sweet NFT of your day.", + imageCID = "bafkreih5aznjvttude6c3wbvqeebb6rlx5wkbzyppv7garjiubll2ceym4", + ) { + const randomFileName = `metadata_${Date.now()}_${Math.floor(Math.random() * 10000)}.json`; + const data = JSON.stringify({ + pinataContent: { name, description, - image: `https://ipfs.io/ipfs/${imageCID}`, - }), + imageCID, + }, + pinataMetadata: { + name: randomFileName, + }, }); + const response = await fetch( + "https://api.pinata.cloud/pinning/pinJSONToIPFS", + { + method: "POST", + headers: { + "Content-Type": "application/x-www-form-urlencoded", + Accept: "application/json", + Authorization: `Bearer ${process.env.EXPO_PUBLIC_NFT_PINATA_JWT}`, + }, + body: data, + }, + ); + const responseBody = await response.json(); - const data = await response.json(); - const cid = data.value.cid; - - return cid; - }; - - const createNFT = async ( - name: string, - description: string, - fileUri: string, - ) => { - if (!metaplex || !account || isLoading) return; + return responseBody; + } + const fetchNFTs = useCallback(async () => { + if (!umi || !account || isLoading) return; setIsLoading(true); try { - const imageCID = await uploadImage(fileUri); - const metadataCID = await uploadMetadata(name, description, imageCID); - - const nft = await metaplex.nfts().create({ - uri: `https://ipfs.io/ipfs/${metadataCID}`, - name: name, - sellerFeeBasisPoints: 0, - }); - - setNftOfTheDay(nft.nft); + const creatorPublicKey = fromWeb3JsPublicKey(account.publicKey); + const nfts = await fetchAllDigitalAssetByCreator(umi, creatorPublicKey); + setLoadedNFTs(nfts); } catch (error) { - console.log(error); + console.error("Failed to fetch NFTs:", error); } finally { setIsLoading(false); } - }; + }, [umi, account, isLoading]); + + const uploadImage = useCallback(async (fileUri: string): Promise => { + const upload = await uploadImageFromURI(fileUri); + return upload.IpfsHash; + }, []); + + const uploadMetadata = useCallback( + async ( + name: string, + description: string, + imageCID: string, + ): Promise => { + const uploadResponse = await uploadMetadataJson( + name, + description, + imageCID, + ); + return uploadResponse.IpfsHash; + }, + [], + ); - const publicKey = account?.publicKey ?? null; + const createNFT = useCallback( + async (name: string, description: string, fileUri: string) => { + if (!umi || !account || isLoading) return; + setIsLoading(true); + try { + console.log(`Creating NFT...`); + const imageCID = await uploadImage(fileUri); + const metadataCID = await uploadMetadata(name, description, imageCID); + const mint = generateSigner(umi); + const transaction = createNft(umi, { + mint, + name, + uri: ipfsPrefix + metadataCID, + sellerFeeBasisPoints: percentAmount(0), + }); + await transaction.sendAndConfirm(umi); + const createdNft = await fetchDigitalAsset(umi, mint.publicKey); + setNftOfTheDay(createdNft); + } catch (error) { + console.error("Failed to create NFT:", error); + } finally { + setIsLoading(false); + } + }, + [umi, account, isLoading, uploadImage, uploadMetadata], + ); - const state = { + const publicKey = useMemo( + () => + account?.publicKey + ? fromWeb3JsPublicKey(account.publicKey as solanaPublicKey) + : null, + [account], + ); + + const state: NFTContextState = { isLoading, - account, publicKey, - metaplex, + umi, nftOfTheDay, loadedNFTs, connect, @@ -1271,7 +1359,13 @@ export function NFTProvider(props: NFTProviderProps) { return {children}; } -export const useNFT = (): NFTContextState => useContext(NFTContext); +export const useNFT = (): NFTContextState => { + const context = useContext(NFTContext); + if (!context) { + throw new Error("useNFT must be used within an NFTProvider"); + } + return context; +}; ``` #### 2. Main Screen @@ -1401,50 +1495,90 @@ export function MainScreen() { const [previousImages, setPreviousImages] = React.useState(DEFAULT_IMAGES); const todaysDate = new Date(Date.now()); + const ipfsPrefix = `https://${process.env.EXPO_PUBLIC_NFT_PINATA_GATEWAY_URL}/ipfs/`; + type NftMetaResponse = { + name: string; + description: string; + imageCID: string; + }; + const fetchMetadata = async (uri: string) => { + try { + const response = await fetch(uri); + const metadata = await response.json(); + return metadata as NftMetaResponse; + } catch (error) { + console.error("Error fetching metadata:", error); + return null; + } + }; useEffect(() => { if (!loadedNFTs) return; - const loadedSnapshots = loadedNFTs.map(loadedNft => { - if (!loadedNft.json) return null; - if (!loadedNft.json.name) return null; - if (!loadedNft.json.description) return null; - if (!loadedNft.json.image) return null; + const loadSnapshots = async () => { + const loadedSnapshots = await Promise.all( + loadedNFTs.map(async loadedNft => { + if (!loadedNft.metadata.name) return null; + if (!loadedNft.metadata.uri) return null; - const uri = loadedNft.json.image; - const unixTime = Number(loadedNft.json.description); + const metadata = await fetchMetadata(loadedNft.metadata.uri); + if (!metadata) return null; - if (!uri) return null; - if (isNaN(unixTime)) return null; + const { imageCID, description } = metadata; + if (!imageCID || !description) return null; - return { - uri: loadedNft.json.image, - date: new Date(unixTime), - } as NFTSnapshot; - }); + const unixTime = Number(description); + if (isNaN(unixTime)) return null; - // Filter out null values - const cleanedSnapshots = loadedSnapshots.filter(loadedSnapshot => { - return loadedSnapshot !== null; - }) as NFTSnapshot[]; + return { + uri: ipfsPrefix + imageCID, + date: new Date(unixTime), + } as NFTSnapshot; + }), + ); - // Sort by date - cleanedSnapshots.sort((a, b) => { - return b.date.getTime() - a.date.getTime(); - }); + // Filter out null values + const cleanedSnapshots = loadedSnapshots.filter( + (snapshot): snapshot is NFTSnapshot => snapshot !== null, + ); - setPreviousImages(cleanedSnapshots as NFTSnapshot[]); + // Sort by date + cleanedSnapshots.sort((a, b) => b.date.getTime() - a.date.getTime()); + + setPreviousImages(cleanedSnapshots); + }; + + loadSnapshots(); }, [loadedNFTs]); useEffect(() => { if (!nftOfTheDay) return; - setCurrentImage({ - uri: nftOfTheDay.json?.image ?? "", - date: todaysDate, - }); - }, [nftOfTheDay]); + const fetchNftOfTheDayMetadata = async () => { + try { + if (!nftOfTheDay.metadata.uri) { + console.error("No metadata URI found for nftOfTheDay"); + return; + } + + const response = await fetchMetadata(nftOfTheDay.metadata.uri); + + if (!response?.imageCID) { + console.error("No image found in nftOfTheDay metadata"); + return; + } + + setCurrentImage({ + uri: ipfsPrefix + response.imageCID, + date: todaysDate, + }); + } catch (error) { + console.error("Error fetching nftOfTheDay metadata:", error); + } + }; + fetchNftOfTheDayMetadata(); + }, [nftOfTheDay, todaysDate]); const mintNFT = async () => { const result = await ImagePicker.launchCameraAsync({ mediaTypes: ImagePicker.MediaTypeOptions.Images, @@ -1533,7 +1667,7 @@ approve the app. Fetch all of the NFTs by tapping `Fetch NFTs`. Lastly, tap Congratulations! That was not an easy or quick lab. You're doing great if you've made it this far. If you run into any issues, please go back through the lab and/or reference the final solution code on the -[`main` branch in Github](https://github.com/Unboxed-Software/solana-advance-mobile). +[`main` branch in Github](https://github.com/solana-developers/mobile-apps-with-expo). ## Challenge From 074a7e086551c4339ebcaa6f592b6aa327c44ee3 Mon Sep 17 00:00:00 2001 From: 0xCipherCoder Date: Wed, 2 Oct 2024 13:48:40 +0530 Subject: [PATCH 084/206] Tokens NFTs - Updated Token Program Advanced lesson (#512) * Updated content * Updated content * Updated content * Update content/courses/tokens-and-nfts/token-program-advanced.md * Update content/courses/tokens-and-nfts/token-program-advanced.md * Update content/courses/tokens-and-nfts/token-program-advanced.md * Update content/courses/tokens-and-nfts/token-program-advanced.md --------- Co-authored-by: Mike MacCana --- .../tokens-and-nfts/token-program-advanced.md | 406 +++++++++++------- public/assets/courses/unboxed/burn-tokens.png | Bin 0 -> 162922 bytes .../assets/courses/unboxed/delegate-token.png | Bin 0 -> 178777 bytes .../courses/unboxed/revoke-approve-tokens.png | Bin 0 -> 178332 bytes 4 files changed, 258 insertions(+), 148 deletions(-) create mode 100644 public/assets/courses/unboxed/burn-tokens.png create mode 100644 public/assets/courses/unboxed/delegate-token.png create mode 100644 public/assets/courses/unboxed/revoke-approve-tokens.png diff --git a/content/courses/tokens-and-nfts/token-program-advanced.md b/content/courses/tokens-and-nfts/token-program-advanced.md index 16c827c38..1fcff33e3 100644 --- a/content/courses/tokens-and-nfts/token-program-advanced.md +++ b/content/courses/tokens-and-nfts/token-program-advanced.md @@ -1,5 +1,5 @@ --- -title: Token burning and Delegation +title: Token Burning and Delegation objectives: - Understand why and how to burn tokens - Allow a token holder to allocate a limited amount of tokens to another @@ -8,20 +8,31 @@ description: "How to burn tokens, and approve/revoke token delegations on Solana." --- +### Summary + +- **Burning tokens** reduces the total supply of a token by removing them + from circulation. +- **Approving a delegate**, allows another account to transfer or burn a specified amount of tokens from a token account while retaining original account ownership. +- **Revoking a delegate**, removes their authority to act on behalf of the token account owner. +- Each of these operations is facilitated through the `spl-token` library, + utilizing specific functions for each action. + ### Lesson -Finally, we'll cover burning tokens, and delegation. You may not use these in -your own application, so if you're really excited about NFTs, feel free to skip -to +In this lesson, we'll cover burning tokens and delegation. You may not have a need for these +in your own application, so if you're more interested in NFTs, feel free to skip +ahead to [creating NFTs with Metaplex](/content/courses/tokens-and-nfts/nfts-with-metaplex.md)! -### Burn Tokens +#### Burn Tokens Burning tokens is the process of decreasing the token supply of a given token mint. Burning tokens removes the tokens from the given token account and from broader circulation. -To burn tokens using the `spl-token` library, use the `burn` function. +To burn tokens using the `spl-token` library, use the +[`burn()`](https://solana-labs.github.io/solana-program-library/token/js/functions/burn.html#burn) +function. ```typescript import { burn } from "@solana/spl-token"; @@ -38,20 +49,22 @@ const transactionSignature = await burn( ); ``` -The `burn` function requires the following arguments: +The `burn()` function requires the following arguments: -- `connection` - the JSON-RPC connection to the cluster -- `payer` - the account of the payer for the transaction -- `account` - the token account to burn tokens from -- `mint` - the token mint associated with the token account -- `owner` - the account of the owner of the token account -- `amount` - the amount of tokens to burn +- `connection`: JSON-RPC connection to the cluster. +- `payer`: The account responsible for paying transaction fees. +- `account`: The token account from which tokens will be burned. +- `mint`: The token mint associated with the token account. +- `owner`: The owner of the token account. +- `amount`: The number of tokens to burn. -Under the hood, the `burn` function creates a transaction with instructions -obtained from the `createBurnInstruction` function: +Under the hood, the `burn()` function creates a transaction using the +instruction obtained from +[`createBurnInstruction()`](https://solana-labs.github.io/solana-program-library/token/js/functions/createBurnInstruction.html#createBurnInstruction) +function. ```typescript -import { PublicKey, Transaction } from "@solana/web3"; +import { PublicKey, Transaction } from "@solana/web3.js"; import { createBurnInstruction } from "@solana/spl-token"; async function buildBurnTransaction( @@ -68,16 +81,16 @@ async function buildBurnTransaction( } ``` -### Approve Delegate +#### Approve Delegate Approving a delegate is the process of authorizing another account to transfer -or burn tokens from a token account. When using a delegate, the authority over -the token account remains with the original owner. The maximum amount of tokens -a delegate may transfer or burn is specified at the time the owner of the token -account approves the delegate. Note that there can only be one delegate account -associated with a token account at any given time. +or burn tokens from a token account. The authority over the token account +remains with the original owner. The maximum number of tokens a delegate can +transfer or burn is defined when the owner approves the delegate. Only one +delegate can be associated with a token account at a time. -To approve a delegate using the `spl-token` library, you use the `approve` +To approve a delegate using the `spl-token` library, use the +[`approve()`](https://solana-labs.github.io/solana-program-library/token/js/functions/approve.html#approve) function. ```typescript @@ -91,21 +104,23 @@ const transactionSignature = await approve( ); ``` -The `approve` function returns a `TransactionSignature` that can be viewed on -Solana Explorer. The `approve` function requires the following arguments: +The `approve()` function returns a `TransactionSignature` that can be viewed on +Solana Explorer. It requires the following arguments: -- `connection` - the JSON-RPC connection to the cluster -- `payer` - the account of the payer for the transaction -- `account` - the token account to delegate tokens from -- `delegate` - the account the owner is authorizing to transfer or burn tokens -- `owner` - the account of the owner of the token account -- `amount` - the maximum number of tokens the delegate may transfer or burn +- `connection`: The JSON-RPC connection to the cluster. +- `payer`: The account of the payer for the transaction. +- `account`: The token account to delegate tokens from. +- `delegate`: The account authorized to transfer or burn tokens. +- `owner`: The account of the owner of the token account. +- `amount`: The maximum number of tokens the delegate can transfer or burn. -Under the hood, the `approve` function creates a transaction with instructions -obtained from the `createApproveInstruction` function: +Under the hood, the `approve()` function creates a transaction with instructions +obtained from the +[`createApproveInstruction()`](https://solana-labs.github.io/solana-program-library/token/js/functions/createApproveInstruction.html#createApproveInstruction) +function. ```typescript -import { PublicKey, Transaction } from "@solana/web3"; +import { PublicKey, Transaction } from "@solana/web3.js"; import { createApproveInstruction } from "@solana/spl-token"; async function buildApproveTransaction( @@ -122,14 +137,15 @@ async function buildApproveTransaction( } ``` -### Revoke Delegate +#### Revoke Delegate -A previously approved delegate for a token account can be later revoked. Once a -delegate is revoked, the delegate can no longer transfer tokens from the owner's -token account. Any remaining amount left untransferred from the previously -approved amount can no longer be transferred by the delegate. +A previously approved delegate for a token account can be revoked. Once revoked, +the delegate can no longer transfer tokens from the owner's token account. Any +untransferred amount from the previously approved tokens will no longer be +accessible by the delegate. -To revoke a delegate using the `spl-token` library, you use the `revoke` +To revoke a delegate using the `spl-token` library, use the +[`revoke()`](https://solana-labs.github.io/solana-program-library/token/js/functions/revoke.html#revoke) function. ```typescript @@ -138,20 +154,22 @@ import { revoke } from "@solana/spl-token"; const transactionSignature = await revoke(connection, payer, account, owner); ``` -The `revoke` function returns a `TransactionSignature` that can be viewed on -Solana Explorer. The `revoke` function requires the following arguments: +The `revoke()` function returns a `TransactionSignature` that can be viewed on +Solana Explorer. This function requires the following arguments: -- `connection` - the JSON-RPC connection to the cluster -- `payer` - the account of the payer for the transaction -- `account` - the token account to revoke the delegate authority from -- `owner` - the account of the owner of the token account +- `connection`: The JSON-RPC connection to the cluster. +- `payer`: The account responsible for paying the transaction fees. +- `account`: The token account from which to revoke the delegate authority. +- `owner`: The account of the owner of the token account. -Under the hood, the `revoke` function creates a transaction with instructions -obtained from the `createRevokeInstruction` function: +Under the hood, the `revoke()` function generates a transaction using the +instructions from the +[`createRevokeInstruction()`](https://solana-labs.github.io/solana-program-library/token/js/functions/createRevokeInstruction.html#createRevokeInstruction) +function: ```typescript -import { PublicKey, Transaction } from "@solana/web3"; -import { revoke } from "@solana/spl-token"; +import { PublicKey, Transaction } from "@solana/web3.js"; +import { createRevokeInstruction } from "@solana/spl-token"; async function buildRevokeTransaction( account: PublicKey, @@ -167,114 +185,187 @@ async function buildRevokeTransaction( ### Lab -This lab extends the lab from the -[previous chapter](/content/courses/tokens-and-nfts/token-program.md). +This lab extends the concepts covered in the previous lesson on the +[Token Program](/content/courses/tokens-and-nfts/token-program.md). -#### 1. Delegating tokens +#### 1. Delegating Tokens -Let's use `approve` from `spl-token` to authorize a delegate to transfer or burn -up to 50 tokens from our token account. +We will use the `approve()` function from the `spl-token` library to authorize a +delegate to transfer or burn up to 50 tokens from our token account. -Just like -[Transferring Tokens](/content/courses/tokens-and-nfts/token-program.md) in the -previous lab, you can -[add a second account on devnet](/content/courses/intro-to-solana/intro-to-cryptography.md) -if you like, or find a friend who has a devnet account! +Similar to the process of +[Transferring Tokens](/content/courses/tokens-and-nfts/token-program.md#transferring-tokens) +in the previous lab, you can +[add a second account on Devnet](/content/courses/intro-to-solana/intro-to-cryptography.md) +if desired or collaborate with a friend who has a Devnet account. -Create a new file `delegate-tokens.ts` +Create a new file named `delegate-tokens.ts`. For this example, we are using the +System Program ID as a delegate for demonstration, but you can use an actual +address that you want to delegate. -```typescript +```typescript filename="delegate-tokens.ts" import "dotenv/config"; import { getExplorerLink, getKeypairFromEnvironment, } from "@solana-developers/helpers"; -import { Connection, PublicKey, clusterApiUrl } from "@solana/web3.js"; import { - approve, - getOrCreateAssociatedTokenAccount, - revoke, -} from "@solana/spl-token"; - -const connection = new Connection(clusterApiUrl("devnet")); - + Connection, + PublicKey, + clusterApiUrl, + SystemProgram, +} from "@solana/web3.js"; +import { approve, getOrCreateAssociatedTokenAccount } from "@solana/spl-token"; + +const DEVNET_URL = clusterApiUrl("devnet"); +const TOKEN_DECIMALS = 2; +const DELEGATE_AMOUNT = 50; +const MINOR_UNITS_PER_MAJOR_UNITS = 10 ** TOKEN_DECIMALS; + +// Initialize connection and load user keypair +const connection = new Connection(DEVNET_URL); const user = getKeypairFromEnvironment("SECRET_KEY"); -console.log( - `🔑 Loaded our keypair securely, using an env file! Our public key is: ${user.publicKey.toBase58()}`, -); +console.log(`🔑 Loaded keypair. Public key: ${user.publicKey.toBase58()}`); -// Add the delegate public key here. -const delegate = new PublicKey("YOUR_DELEGATE_HERE"); +// Replace this with your actual address +// For this example, we will be using System Program's ID as a delegate +const delegatePublicKey = new PublicKey(SystemProgram.programId); -// Substitute in your token mint account -const tokenMintAccount = new PublicKey("YOUR_TOKEN_MINT_ADDRESS_HERE"); +// Substitute your token mint address +const tokenMintAddress = new PublicKey("YOUR_TOKEN_MINT_ADDRESS_HERE"); -// Get or create the source and destination token accounts to store this token -const sourceTokenAccount = await getOrCreateAssociatedTokenAccount( - connection, - user, - tokenMintAccount, - user.publicKey, -); - -// Our token has two decimal places -const MINOR_UNITS_PER_MAJOR_UNITS = Math.pow(10, 2); +try { + // Get or create the user's token account + const userTokenAccount = await getOrCreateAssociatedTokenAccount( + connection, + user, + tokenMintAddress, + user.publicKey, + ); -const approveTransactionSignature = await approve( - connection, - user, - sourceTokenAccount.address, - delegate, - user.publicKey, - 50 * MINOR_UNITS_PER_MAJOR_UNITS, -); + // Approve the delegate + const approveTransactionSignature = await approve( + connection, + user, + userTokenAccount.address, + delegatePublicKey, + user.publicKey, + DELEGATE_AMOUNT * MINOR_UNITS_PER_MAJOR_UNITS, + ); -console.log( - `Approve Delegate Transaction: ${getExplorerLink( + const explorerLink = getExplorerLink( "transaction", approveTransactionSignature, "devnet", - )}`, -); + ); + + console.log(`✅ Delegate approved. Transaction: ${explorerLink}`); +} catch (error) { + console.error( + `Error: ${error instanceof Error ? error.message : String(error)}`, + ); +} +``` + +Replace `YOUR_TOKEN_MINT_ADDRESS_HERE` with your token mint address obtained +from the previous lesson +[Token Program](/content/courses/tokens-and-nfts/token-program.md#create-the-token-mint). + +Run the script using `npx esrun delegate-tokens.ts`. You should see: + +```bash +🔑 Loaded keypair. Public key: GprrWv9r8BMxQiWea9MrbCyK7ig7Mj8CcseEbJhDDZXM +✅ Delegate approved. Transaction: https://explorer.solana.com/tx/21tX6L7zk5tkHeoD7V1JYYW25VAWRfQrJPnxDcMXw94yuFbHxX4UZEgS6k6co9dBWe7PqFoMoWEVfbVA92Dk4xsQ?cluster=devnet ``` +Open the Explorer link, you will see the ‌approval information. + +![Delegate Tokens](/public/assets/courses/unboxed/delegate-token.png) + #### 2. Revoke Delegate -Lets revoke the `delegate` using the `spl-token` library's `revoke` function. +Let's revoke the `delegate` using the `spl-token` library's `revoke()` function. -Revoke will set delegate for the token account to null and reset the delegated -amount to 0. +Revoke will set the delegate for the token account to null and reset the +delegated amount to 0. -All we will need for this function is the token account and user. After the +Create a new file `revoke-approve-tokens.ts`. -```typescript -const revokeTransactionSignature = await revoke( - connection, - user, - sourceTokenAccount.address, - user.publicKey, -); +```typescript filename="revoke-approve-tokens.ts" +import "dotenv/config"; +import { + getExplorerLink, + getKeypairFromEnvironment, +} from "@solana-developers/helpers"; +import { Connection, PublicKey, clusterApiUrl } from "@solana/web3.js"; +import { revoke, getOrCreateAssociatedTokenAccount } from "@solana/spl-token"; -console.log( - `Revoke Delegate Transaction: ${getExplorerLink( +const DEVNET_URL = clusterApiUrl("devnet"); +// Substitute your token mint address +const TOKEN_MINT_ADDRESS = "YOUR_TOKEN_MINT_ADDRESS_HERE"; + +const connection = new Connection(DEVNET_URL); +const user = getKeypairFromEnvironment("SECRET_KEY"); + +console.log(`🔑 Loaded keypair. Public key: ${user.publicKey.toBase58()}`); + +try { + const tokenMintAddress = new PublicKey(TOKEN_MINT_ADDRESS); + + const userTokenAccount = await getOrCreateAssociatedTokenAccount( + connection, + user, + tokenMintAddress, + user.publicKey, + ); + + const revokeTransactionSignature = await revoke( + connection, + user, + userTokenAccount.address, + user.publicKey, + ); + + const explorerLink = getExplorerLink( "transaction", revokeTransactionSignature, "devnet", - )}`, -); + ); + + console.log(`✅ Revoke Delegate Transaction: ${explorerLink}`); +} catch (error) { + console.error( + `Error: ${error instanceof Error ? error.message : String(error)}`, + ); +} +``` + +Replace `YOUR_TOKEN_MINT_ADDRESS_HERE` with your mint token address obtained +from the previous lesson +[Token Program](/content/courses/tokens-and-nfts/token-program.md#create-the-token-mint). + +Run the script using `npx esrun revoke-approve-tokens.ts`. You should see: + +```bash +🔑 Loaded keypair. Public key: GprrWv9r8BMxQiWea9MrbCyK7ig7Mj8CcseEbJhDDZXM +✅ Revoke Delegate Transaction: https://explorer.solana.com/tx/YTc2Vd41SiGiHf3iEPkBH3y164fMbV2TSH2hbe7WypT6K6Q2b3f31ryFWhypmBK2tXmvGYjXeYbuwxHeJvnZZX8?cluster=devnet ``` +Open the Explorer link, you will see the revoke information. + +![Revoke Approve Tokens](/public/assets/courses/unboxed/revoke-approve-tokens.png) + #### 3. Burn Tokens Finally, let's remove some tokens from circulation by burning them. -Use the `spl-token` library's `burn` function to remove half of your tokens from -circulation. +Use the `spl-token` library's `burn()` function to remove half of your tokens +from circulation. Now, call this function to burn 5 of the user's tokens. -Now call this new function in `main` to burn 25 of the user's tokens. +Create a new file `burn-tokens.ts`. -```typescript +```typescript filename="burn-tokens.ts" import "dotenv/config"; import { getExplorerLink, @@ -283,51 +374,70 @@ import { import { Connection, PublicKey, clusterApiUrl } from "@solana/web3.js"; import { getOrCreateAssociatedTokenAccount, burn } from "@solana/spl-token"; -const connection = new Connection(clusterApiUrl("devnet")); +const DEVNET_URL = clusterApiUrl("devnet"); +const TOKEN_DECIMALS = 2; +const BURN_AMOUNT = 5; +// Substitute your token mint address +const TOKEN_MINT_ADDRESS = "YOUR_TOKEN_MINT_ADDRESS_HERE"; +const connection = new Connection(DEVNET_URL); const user = getKeypairFromEnvironment("SECRET_KEY"); -console.log( - `🔑 Loaded our keypair securely, using an env file! Our public key is: ${user.publicKey.toBase58()}`, -); +console.log(`🔑 Loaded keypair. Public key: ${user.publicKey.toBase58()}`); -// Substitute in your token mint account -const tokenMintAccount = new PublicKey("YOUR_TOKEN_MINT_ADDRESS_HERE"); +try { + const tokenMintAccount = new PublicKey(TOKEN_MINT_ADDRESS); -// Get the account where the user stores these tokens -const sourceTokenAccount = await getOrCreateAssociatedTokenAccount( - connection, - user, - tokenMintAccount, - user.publicKey, -); + const userTokenAccount = await getOrCreateAssociatedTokenAccount( + connection, + user, + tokenMintAccount, + user.publicKey, + ); -// Our token has two decimal places -const MINOR_UNITS_PER_MAJOR_UNITS = Math.pow(10, 2); + const burnAmount = BURN_AMOUNT * 10 ** TOKEN_DECIMALS; -const transactionSignature = await burn( - connection, - user, - sourceTokenAccount.address, - tokenMintAccount, - user, - 25 * MINOR_UNITS_PER_MAJOR_UNITS, -); + const transactionSignature = await burn( + connection, + user, + userTokenAccount.address, + tokenMintAccount, + user, + burnAmount, + ); -console.log( - `Burn Transaction: ${getExplorerLink( + const explorerLink = getExplorerLink( "transaction", transactionSignature, "devnet", - )}`, -); + ); + + console.log(`✅ Burn Transaction: ${explorerLink}`); +} catch (error) { + console.error( + `Error: ${error instanceof Error ? error.message : String(error)}`, + ); +} ``` -Well done! You've now +Replace `YOUR_TOKEN_MINT_ADDRESS_HERE` with your mint token address obtained +from the previous chapter +[Token Program](/content/courses/tokens-and-nfts/token-program.md#create-the-token-mint). + +Run the script using `npx esrun burn-tokens.ts`. You should see: + +```bash +🔑 Loaded keypair. Public key: GprrWv9r8BMxQiWea9MrbCyK7ig7Mj8CcseEbJhDDZXM +✅ Burn Transaction: https://explorer.solana.com/tx/5Ufipgvsi5aLzzcr8QQ7mLXHyCwBDqsPxGTPinvFpjSiARnEDgFiPbD2ZiaDkkmwKDMoQ94bf5uqF2M7wjFWcKuv?cluster=devnet +``` + +Open the Explorer link, you will see the burn information. + +![Burn Tokens](/public/assets/courses/unboxed/burn-tokens.png) - +Well done! You've now completed the lab. -### Completed the lab? + Push your code to GitHub and [tell us what you thought of this lesson](https://form.typeform.com/to/IPH0UGz7#answers-lesson=72cab3b8-984b-4b09-a341-86800167cfc7)! diff --git a/public/assets/courses/unboxed/burn-tokens.png b/public/assets/courses/unboxed/burn-tokens.png new file mode 100644 index 0000000000000000000000000000000000000000..1547f718a330909c665ee5d5381689ee11c67cc8 GIT binary patch literal 162922 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 literal 0 HcmV?d00001 diff --git a/public/assets/courses/unboxed/delegate-token.png b/public/assets/courses/unboxed/delegate-token.png new file mode 100644 index 0000000000000000000000000000000000000000..b5e954f699023acd7bcd19a096f3d3487edba0c2 GIT binary patch literal 178777 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 J;I(gu{y(fWk`Vv^ literal 0 HcmV?d00001 diff --git a/public/assets/courses/unboxed/revoke-approve-tokens.png b/public/assets/courses/unboxed/revoke-approve-tokens.png new file mode 100644 index 0000000000000000000000000000000000000000..0cf4f8cf1024446bdcfa77d0385e9f009e260779 GIT binary patch literal 178332 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

@@ -342,7 +358,7 @@ load. If you need more time with this project to feel comfortable with these concepts, have a look at the -[solution code](https://github.com/Unboxed-Software/solana-movie-frontend/tree/solution-deserialize-account-data) +[solution code](https://github.com/solana-developers/movie-review-frontend/tree/solutions-deserialize-account-data) before continuing. ## Challenge @@ -353,10 +369,10 @@ network. Now, it's time to fetch and deserialize the program's account data. Remember, the Solana program that supports this is at `HdE95RSVsdb315jfJtaykXhXY478h53X6okDupVfY9yf`. -![Student Intros frontend](/public/assets/courses/unboxed/student-intros-frontend.png) +![Student Intros frontend](/public/assets/courses/student-intros-frontend.png) 1. You can build this from scratch or you can - [download the starter code](https://github.com/Unboxed-Software/solana-student-intros-frontend/tree/solution-serialize-instruction-data). + [download the starter code](https://github.com/solana-developers/solana-student-intro-frontend/tree/solution-serialize-instruction-data). 2. Create the account buffer layout in `StudentIntro.ts`. The account data contains: 1. `initialized` as an unsigned, 8-bit integer representing the instruction @@ -372,7 +388,7 @@ Remember, the Solana program that supports this is at network! If you get really stumped, feel free to -[check out the solution code](https://github.com/Unboxed-Software/solana-student-intros-frontend/tree/solution-deserialize-account-data). +[check out the solution code](https://github.com/solana-developers/solana-student-intro-frontend/tree/solution-deserialize-account-data). As always, get creative with these challenges and take them beyond the instructions if you want! diff --git a/public/assets/courses/movie-review-frontend-dapp.png b/public/assets/courses/movie-review-frontend-dapp.png new file mode 100644 index 0000000000000000000000000000000000000000..a770aa71506e2832a8f3337c807b7e33c49871e2 GIT binary patch literal 208061 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 hxm_sd&iH82 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 z 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 literal 0 HcmV?d00001 diff --git a/public/assets/courses/student-intros-frontend.png b/public/assets/courses/student-intros-frontend.png new file mode 100644 index 0000000000000000000000000000000000000000..e4ec073dedf1c8d133a4709f236a948edc8632c1 GIT binary patch literal 187616 zcmbSx1ymeQ*6%>@1a~L66WlGhySoN=hd~m8+u-i5!GpU8x8UyX4sY_`{dV`f@13`2 zw@>$UO_x{Qy7zY_R8d|65djYY001CLNs1~10DqFuQE)KeS5={J3IOoI(o#f3QA$LF zMA6CK+|tGj0FVq#(16uc8N$lciH(T~M1vEP-j_o;5R-;u`0B6PB`ygGPZ1QDZ7hL} zsoN4_ET$o5Q$|N(EqrW-dJL@2&MpscrVblUi}9~~8orZnZ@SvcVl6VGbcX>{=x3^? zhFiUhp`wZDlL-9LUr<;rN$3yt!C&Ax#>1y6o)8-wG5f=g|IKzjgF0wzF6^-^8seZDjwwlP2M2b9fO>GXo`mUu3a@6ky6 z=KUTlj#5c1+^S#1 zbLVbj@zfNBpO-0yLPFK%@HX|Uh1A>uieZwdDfv?pa`#S1<-~@ck7?JxiwoO8I{qZ* zq|_e$Vj9-dgwiwnRURGN0sSLKpa)2iC^36(fiw-R>h}Ab`7oCayI&?1{(0H;jUp(n zSAEHk49#iwme~tL%?xdf&^z~ia~mh*0HtNn87+5)CofDiJz1DAg;XE6gT43Svy^Da zuz-3p&HHGLqomy-*sH#Vkltk+b^%Qi=?K+XSl-b+#9n0QF6}@xx2bHx93S0lLqJacWPQ5dQ7&@P|zvP7u23v`-#|btH^R zm{j`lqxghHVXy{Bxe%~{kXVYHi4cYUHY9eZrAJ@aRLM5{VNFTi!v)l);--UGK9L5D zLn%VN`b)xXi(Gw%5&xcza+wvZIXjJOiWGr`^lK1eoMh~s5(&1i#)n_AA3SAX6h4x@ z2D=m4_~6(x+6-U#jU(3>;BuJe&PEtdkjYpp#^H#6pb$sv2}SzJOce68HF=KvAr1fZ z+Y{36g<95m#Duhm>`!3}vgH(d#zY|Y4$cJ3NpP7p=)#u4LC0bm9l7gWwyOp1m(Bi8 z+&h2Y-ySH}$M9NFJa%SknrjQMIxuU`cvk#1bhs4wG2e!6*T(aCr}%@*sjXjZfvVN! zA7;~7*)H4s#yDrOI|UBCGdKnERs(CuQkAy-ruy(_bx(0LZ( zrgD_NHMKF%wPc{xPY<(KmY71C0=LQUD-y>+{g!LpK zLp~=>eB~X5ONO8`M80x-r{75o_3hIqyxy;(F$k1hwBhSKNdYB>l*zEtLb#epbN)Am ztiNI00@~I|ir-0eNjYHYLNctw{Djp|;PrrS?&6&YCV_*``S_t1j#6lKccoZz^oSo{Vdi*90!mCU;P&GCmO zJ>p2O>2I5I47!2RA3)7_&ly!lwwlqo7DQ-P-lbm~UxHtNRxnY0Lh79vU-XCZMN7ToF?g~q5Qfwjg(f7GZ>qAZL`(fd z{e}9D#-5#>oq-+5K42BbzGtOwK{UZv^&olmPA%zBaz~L$5p$+sCSykYknm6kFVbA* zePO{Qf`yFbY@JG7aGgHSx6{viQ_$Dk*V0}LFSIWSSXv|E;T7ysWs+sOM=^7l6^ynu z4HX;`X+``xEy_`&zu01Z$&F@_r4>G5K-JLk< zACSI{Cy)Og^j~u33r8!1-9e=-9p=;!g9)3+^bmX9U#VB{$U4vT#O~ZTJBOBi14<|p} z#N623?oKRkg>N5j)o$krLy!cJxRLM)wF#6Y6eK_<1zVU@GeaX%$90n>u3Sbx&m4x% zOE((ROU7*WKJVe}NifPLStJ=J@g!-Gl}qGDYBFywhcH!URyI{G>77N+5ORB&UJM3- z?3W2v?(Gun=2t9FH%^_Gk5&x4xjfT~)@=a~7KQ3rw}BIr8-lIQrv)~`*rAmbd= zoPwNDqh=#1qoW?8Af2Eu-{%9}B|OA`g;+$8i;9a?hP3vv?_4&`E}u@W=6#72AQX#~ z4$&sQ;aX(Y##;FVL&)m&tCac9#KxGM*|nM^5x<4@RybWx*LS(fB-CW9Up)$lCCK7y z{@es5-n|{T0)K`kf|f+FDpRANOwLYWO`#xJDes$wmRiG7V7naRSlh2B%`T5wG*<+g zik)`LzllJ`?=bgyf*OaXK(~{xOXITL{4UiW=R`%AR?eQn`Jl-2k)HzS{z#=yUlleV z*ERY(W^#1zeE!k^;VX0*bVfH|Lwe)tm;bMX6hbWst+E;(G2vV%rKDsseJ0-w!jv}d zC!oB|*jW1Oa{Tg(C!Xhlrv!O(EWywLjk!vpoMi%!luW+ugYSd&Ws8|o4WW~$fResJ zHZ1Z@66S3fF-A1PyZ3bOy^AOn_}S#Xq?#`797IiHEBNVS=wDBN@PY9YpOy_zxiS|> z?aQop_#VuLSjb`Q-8 zM`B0zszIu!YlbyO7eROU(D+q$2&;AWwFkR3qr{CNjmxWe)%6X-4W&N#jyf9+UzXw; zvz~_biVg|;d57J6R%sR%8t8oI53J4(4_7E#l4i5n!&1li(QoUH5m$6N#y!{OUVgop z!FEFQ1z-ynz4=@j&U6)u2n6507+;M9^+fa()JvXRFP`!!>FEHifJdN7iB!C2e5AL- z%cHS8ED5^k17aPwbSIy#i&u0pDlfc(NIj}rc>&ARWtX#=pDObT(flhul!w0_YB#

ci1j7t`oyp5YzhUCB>qbUw8XVOgOj>a#BlwT)BlM_(0aD-8;)P`n15vRw- z^+T4G9DY3Szn8&?8|ZZ!mzBa43>e$*s!mUd_-HaIeYqTWh5{8r+GJqRi}oC^SRZ{q zp{i{2{jqZ0`*`ykTgX|GLbo9>F?PILoMK^z4!~heh~*T;FgmW0-Ev$J7vRmK`7-~7~oEua?eMq6eyhs;cMH( ziiGbB5HJDQQlwks$5nPHJ1LSZKRdcuDemDK3XWLIoBZV4a{{u-dSO!mva{&>WB$D? zn2Yf*X8$GQe|h#_0relrEBCK7rv6v;{HtgGH7fo;v7m0BfD{wGXOq9YFjfKea&t$t z8GpEEdOSJg0;-P>q7^}?U(QBy;s0UpJ;S0()^_0rK^ee+N)QwSqbL~>QHcg%6c7|7 zCqY1R&d`X8fjABlBny&rYH~NCfRdWrKm&~+v`A>6$*E5*h1s*%-~QhBJ=b-9oa^|H zak|#3RrOTW6Yl%24*Vyk#?tw?OEjGyIUuKWoV2H@Lh^Mzi8d(2%wfO#fi_u3yb z@I|I5$KMg<9NBt<#VH}fY9sS8agmPY*%AB|pqzl3n}~tAjTU?$e=<@l;skr!!+6M% z2e7_dN$Pr{RdWrN;{fMmbNt!1_o_|LSJZmVd^|Zq(YQWH0YDEdCyoM5vW8qo*n`p_ zRkc_#=+$aH*d1{C)msqTPb)0De=T{M#w>)&yVkny0^w z14Kce6sSL-1bwOC9=8(YahKaYgG;4NF+%{J!-)rnX1;vrI2a%pH|*2uy4`Y6$q)c; z%o{q>&4)j}w9Z}E2v$Ypy`H)Cud@Rhsj=GtzcyXj4}UaGflL_nqwwv-f{H7cobud+ zS$Ltm0z^sp)42xlAt?q!k{y8^+6n~xA%vgRRmSJ=c>y^D&FJLwD)6>{fwp1lA2he3 zs&Wu0cYD(Y!EbHpI}Jh?0rw5KrDQ{6ROPjMt7@;N2x2262BS-`*hqx~d`KT(m@m9- z82FIPBKEqibX6y~Q7Uhm_u)FMZL0ui>+*R5&e*U3sSC}CQ4zPFACh1M0vu+Y10Uc? ziaromb(^L$zJ?7#21tfzCU*(3Y_**RZJiCSj&Os-+TQ_^uL~GJl!876))^H`Xt@Z+ zzu%gX{~34)wB^ZumcL~x&QN7xjh z=I0>D)Pf1)MV)xI%~|-FoG6A8ug!OloQ1Vj0|?E$TbcLyw%QH=LzzH7uG<0c0O>!g zh)N{9Gu_aK=u17>nh_p=7tze86+Q~L+92>D*5M5@@V2)=+k4u3jkhe}J5;`0V!nWc zwS5=?+E#pBfak-CLDn&AVeW{;&ks=%1{3Db|KiK`+Ws-xGS*-aEDP0k!&me@@F7|4 z7HkY#ZGSCYKM)_by%GC1U`=lkp%om$ZX>i$#|V7WYz%vS`}9r|l3YRfbZc zL(Tc}KOQu1czw>%A=48qj~O&r90b;QLHLQq3T0krhoj*_YE2c8JHWtSq@wK_TTK3) z({1MM1;?=_tusY^X?LLWdAy8x=3T@YrKr)>*0)c)~4?7Q=nx_|R)|W51^e@kYLMtYhN_6dwr@<5R_K1?+)$8V&{3U;Y zik7C$tPh4TH&t!q}c_M@auIfB>V!1ij`?Rc(>H0Ev2Q8~X`-F$rrRD044gf8WJ9FDhI2PF* zS@iWUg)xMo?i$H9_NbteG-|U|-P|{^OUI^SLvq(2ZSGGOP8GRsqiL5Ubte%!ZtaM6m!+o(S;}j0S;F0$>RFymELK5Jt*q610CbY z>z3ZR&ErHar9!~r+xHhc}0S@~vssrqxkSo~f9f_kh zu$}#c3dn$lAN)~i{?~C{txE@7X0{KKvjOqS3M^r*HkgqXr`mfOOHuE&Epy%gEpdXE z0IEF5-@rR0Ek*Qi1_N`~0#HU@$50l6Bm%b)p6KgQqmG3iGy??6ANH*ziKhSoZ~l!b zl2}W7{2{Wyf&1-rVRE!+Tko|B@?dL)mq?9%#Z-YK+IV$-e7vomQ#rSC)q)*}i<$%B z%*K;>Y0p-Y;@2-I@jre+cDS(iCOSg+0$F@*nmk)HSU&M}h=9E~@tY&viLY3Th*|C9ZauaPSg z1e9~r74H9-W6uQ#q5)Gp>@0m$eUwh^G@^7#-}7CNSieveAd-|NYK*ilt@I3YP^}|0xYbUUX+h^k6A7S2(0laxqVrg{~D^C z-1E3l0@Y^}aJ2JC)%cl}PN2{IN}r#nL{ivgvO=BJlF?Yty~{w=>SX2IE#9%IC!`9B z?|kcrkgu0tZ+x^=TMn?kM)8<(Hg6VHSDwhKa$!IJz;3nK)+as%8ySZpxZvl(rStP{ zf$YT=+P1OI?WMCL0keS$`L&bmca&`2)3yU(Uc{#U)6c`3X!+%5ZC5O_!>(=4a>xBq z!lJ_=f7THozLbIfpCP-LjTaUdel|l?4$qrgbXVIdU)J#i8NG+|53B^)3M;u$r3FEv zpH1W%s1-#=O} zixzh_@@ALq?w8NEE2IJeOi560Q3#4?hp-tyTYEsFu7XsSiYu<$?>ULGMBbJQ(iV+J zL%=Bu0Vc1jExCSuf)uX#*I)`S2f7#2J3UU@h|e6=9Mu7+Y$gg`PLR~xGS4Jy{QC1YMPvsGGj8aXHWul8N{P1 z*5HJ($PHbE06$haX?Gld6s`lx5$F2@;hFc z=BTkw2c2i~cp4?lsCO$hJyJaZMveeDU;r>Fs8qq5Pt$dOfL zq>D!spjG7REcI8Vxu8DRxd-6lS#TpSzK7hQEx?RKS>`H>5gZh-$>;f2CkUGY&m}ws z4%X~VjDANYA$@OP&l{lfayxpfb-G-gy6NCeeq$R5)&Wjy#CYP7I4FSC9}P5bOg~H zpn*^L2qGK3Loft4Rm^)VdTC+9s~WkMQjF6sB#j?Eyy-((n>vgc;Myno`*U+{$lU;B z6SSD(u*cJLCH$KK1lgusiBpxRgjqQ2jmmPYO1yghiilFWcTf(e2&<&DS^8Bzh`7G8m1&Uc-OsWc15S^xvW0) zw`=y3{Whh*z3!Pws5_x}WObFytTFaow@uv`AtVJ>Gu@!9(AgRtrpob(3=6v5F){ zeGE_?%b|Nv$1J5ELW@PNV3VO_p-?qy|jpt z%}4?ewtG|0axyVYU03*aYF)wuwZ8(gO}QRjw(cvM$5v3n^pWlk+Geqd<^6!rxi+Fa z5_KcFfKIS3O4oTo^fDduTR_s&5-0fdy)kRP>z$kWc35eAJw(T*IczUSuJ?ihcM8?6 z-CxP}l02QqRzE*+Jbq_k%79WXreP4k^SDt^`n*rE@T7(mLlCiHk$3^Yrq0WU@$x^R zlclQVO&U+UrStR@(M8dO;%yKjHTU9ZP9S-y-_>BSd$B5`!n$PYqB%aXUGL}}_qi{L z7GLiw@V~jppK+(IkmF=K-CHG(l~FI{l_t^Mh>^0O%XR&y@{Zh_9e%T~!)-UmuD?tW zLhR9@MDtlAMgtzCy#0+HfwXD_hOG>@p);x z*&NS>xH2H>3R&KM)r?p!83m9;LCjbf!j~R|9O`cNjBs=Z50o|<9~Hg?^BL1JptRfZ zUK{-Umu%_RC0dezA^c`?=DJi^390gJ+R?=lqsATx?7DAhqV=?pV41!;$bfwWt`m&$KV-xT88F<|L z#9QCW7U(Y+5jNa#v0>3{N&8v;@G21Fj{V?1TE%o}ZJz1*Xvm$bf;F=CuK`l=Y^?Y6 z%H^kFf`@$?EIfj)*40(3TX}1%-whW1XYU$S9B4(lAKN0r$79BrmU$cZx{B|ymG zm@utF*tCiHetFDAQPN|A_<`LyUdxs@rHnYkq^kL6|Z*~ zps zuJ>LPkz{5wV?|godddl1;yHNx&H3cXc3!|6gpx%w!))yEtQV9qYi~5(*4Ej|2Ho@J zp+!UhuQrFehwWj2wQthnp7hk%SD8^$=m`Py!nWwK8H1;YqykNvs8c7%PgIfpANtu4 zM;)i#p%{2xH$ZH3F_S6LU#P3%Sdv)p?^6KWJ6?Rsi=1?vQbg_S>eKgl6R5^mGdXuLw%(qM~_k14nJx0vZ2i1lYvgL?NDg>M*mk9#j zp~&gZ%^6!CjPQWUI&Nus42S+JGbHS7MqRauT6V>7L#C%6VhxGGV40+Nc`skI*>$w; z{s3DMAMP9q6+{k_A6aZ=dKfsPd*tJHtmSQ9gxqlw3nB(DEE-%!TI)%4k3KbDJ}bvD zHlshXKo_WY{2n*ukQ49qM0+Vz@sy_(y7yZVUO+sxj+hBx@&r;?{GNSBBhe1+zpac= zV%B4iUW~;P)2%WwI6yhiO-m`0D<^I4@yOs=bR|^8@?LiXZ{v&it8-Ze6oiQ$0%pJX zVVxk`s;=;=8ebE_-sr{XM zcBHDsPX;e#h@+TQCFOgqbuN|MG6_*2;_T98O@bqrze8J%Pf#EnVaRh#L&2n*^?-?U?d>8 z#qeG?nUxA=BONlXA8YUtME7_GQqacT7?X-1JR$;5ky{o<$p?S8x|7TwoK}O=+?#8a z&uFjb(JScC^?v0TA|^sO%-A~@*AwTl&?U!=znvQ^7pN(q;U7SHeZM4Iy69ft{k5q% z_14t&d9%U`8dCf1-!jgGS$1hs3FXw29)<>8YyiZo4By$ndY?P70>N`@fb(@bK6Tkf zZ3XW&|E;KwJ#*A<+(@>Vi$N8$@LS!cZ+N@K&(>4NX*5%ThdE zl}2Rbg^IZreO(>DN6>se6_BS>!WityUcxJgIizD#U&tZv1FnBtVq%s^ z`YZJb!q)>N%eyVB0^wRc8Bp0Iwpi#O{MdK}(TScP^-^IMwdm4aumVz!w{^T`c1d<^ z-s&#k89G(}SH&gT=KkWOzcv~LURJzXwJOo&58?1FfDj;_pg(m?*Bf#8`MjY>T z)Oq^&loQHMIQUW&Ga^P0k-^9m_NDGyA>+4ZYlIL_uPsZ~oH6ZlV zE(A1~dWVci>sY-Pclsk2Vc35NUyC#(x0$CWhksuPqhr!{8poRbrnXR?zI@f_;$SsBD~CacPF-p5fMIx!58XmE`kLt=hu|> zdL@E4_m*qFyN0pG;Gq*LyFfg{&iB_zc*g8Bh-Y}q_;$lHX7^arv=MgmDYY&Y6;n|_ z65-^Yip0A(lL*RrAZuo`));=C`$Iu6pV%&+eQy{<~L za9um*ngT9)DnEJ)8I&E7bjtYYTXtT=#lZ_8s{|z|Q?gP0r}i3{zVSNOeHwKbS;Ey9 zIOR7YilPdhQva~Bxrb9R-`n=+ombOPkcXrsotivy|9u@7T1Wkk_*7HkHKRM;d5nn7 z6@T82Sl5lh*~Q8rM*{yd&wZQtTgnkVt7Nsea>E5b zrpnY4`2F>omla9>ZBgACPS<$Bsg-JNiT=*wUc^NkG6yCdN}ysFi-L4Su$BlriuclI zW<~-eJFy^&WBD?$CxG6wgDeDTm;h+{Bz0bpQV<<^TiQ`ku)Az8f-{eRzWk}% zKxfZ1#z5P$S=3aAYUXi(;LVYG>E2Arrqt{ES#&&`GxgF+pzJ*1jE6Yi8Ulg-Pw%`D z3I^+--*`z+_33cUWt1Lry6iVeV}Jh_0783rQ+GE498`bq-p3Z1!eShf{e~kXN!t5{ zzqQp`CJWBZU{?YMu_LJ$}ODk^s zkaC9n!RK3-dqzT16$C3J;&~}I{NATs0Jo0TE`DO2ALJ~nO!Wea zMelcy8+(%83}DC`$H!C*Mi$&KfbD-9Z(X5;W$6ieo8N(D7g4Yis_|tyXvG*Aj@2!r zwOhfDlU$jxS0(n_H(4TPptN!(WxxYJH4gF`p?Dt3YaIy^Hph?{>dy-}9Gh9pGX&njhmn^=gIl-`3$ z{A-|ou}|cA$*{JuY#x}#Ktv~N2t{|Fwd`5G8e_l@Qv%`y*K(@ah^Jm??M6UC2j@_K z29Y5R3bb_HQOkpPT6yNOxxq^m8~LXUTn{uknO-oi)p1cHndSpFPd!`#dA`xcA1p7& z&QwR*_jNJ^!2jp9E`7gxxs+MwgtFV_ikDAWm4lbt>YGytx6O(@2n|i-$~?p{CrnjH z&h-bM6Kf|bXSu6s1R^X0XNj0)lU(}eOfnLN80D`M`z4lDRsrcJTIX!Zvmheb%q%7h z5Z$A&V(NL7)3##oIBd%=#|y@n0ZNcjehx&LL%Yl-MO zOt12CpaFQ?$jfXDHKJT5FpCyOltL_D>yo5$<0f)daIfFY7>e3(zL3Bz71ymtBw*EP zuEhf_kbZBgAUjK2eaRJUA<5th2IFuu*RU{++s~2Tht@0n z*VuhXvzLQENG*Im?C39Kr*_u~B&GzxM(&Xv(FWhhogp+pA&VTGydruq%?QY)*g>)+ z>gyB5xa710xTUitGeKmg8@x~SN4*_65P>pUG+qtHbG*6luI}11Mt`4)KCoIHI0iI> zKj?LHfGLvB{#{9|G(d{X-<>X$p+2GII)UDW};&<%v6=`SnNKlI@}vS0~IN%9193)@{kD zz{5yKhu2;6!-JcTW4<5(mwnXQel^Ws4+9?Y)QgzzMX`PikuQA}!72Q!s2P}PIRShf-F)Ot))8F;z_5a{%2Pg=S#e~pvCGLyhXLb#l(kq=bGsse|Ix@Z zH&mk01GUuvt}NqNE(F^I=ZGYE($Ry5za@vXYy(dHJPDA|TUgIwj~__WXWx*Q_6C_0 z+gt1SgYx~X%qqud=sF=tgZ_j`5gbZ!3@U(S`MrWy*Mn#>0LRfWs4L*R)|y#u505LT zE*8EBXI?X9U4D50d(&XuYje=YXX2|C+Gm??4zYBd>SJ9;Co*%&Z(Ygjp)X}LsQsL8 zT%Wvl+)c>#a=#dY?d|(CE0(T~VK$KJE}!{JfxNc4dEr^UzNhuAKGTW)qX$&_Io?)# zPFLB6BfeDp4A=bqEt%AKN~-zw*m)zujLrM6p`=4WhW~uFjv78-(P;2avQS2?Y*%Sr z2J*hANWo9i+AQ=cLEeAL5p4HA9rW zyhw+`IvR>!W^2W}FZRwy6E^OL6S;U0(;zUET$0ma3Jf@)_jEeW>wCJ>rXQ=AOB-n| zO`?=6@7jbvU%xj$+1kpQqaJJ_KI!q&P;&cFfGbIRlnFU#9ow)H6&fhfU=<0>#Fsf&Phi zNf$paN6R$fiG%oP&#*^R8F9gh>3ypk>eN$BDII%Zo{-Jy{XUbwQEJP27mne8%U8GZ z{>h$HZ+{;yNU;fPE17Xjf3eXZ8Omtx5x`z1JznRl-x$5K+c;@>bcMBQsZbk<1%Y@M zq_R+Vg^d<|s6Z+UNK4a?aHFI0<=KtEHy`Y3O|bu*l{cJy@GLnq$4U9b$`dx7SD&%4p7eeNfS~a_`g? z%iOTc(V(Nkr}nfN>2#SsPdqi_^6~!juV`?cSHb+pp8UdNsSL5)D(d5b+4h)?s^dtt;#cZF= z#xQq=UNmlOfozc^m%M9n?S}S)SF#R=u$Y-^R~(xzllx*wU1|ya-`9YmgF=MfW@A)K zO&)l-P$uB~Wu0k(Z8!+u%Mdy9(CMWe|11T1Rsau6)B;eBP#K{vqd z{$cBqYm<&j_q05-i$Nd^7_9F=)g~3HK`G@5^mI~LTA}Gal2PQ_;wjSW%O20p7q`r@&cJRVWpz#b&%qUA=LD7 z{{+UBLx`?ub-XToqTYZfHg|Ty)IaH*AaE9rulVJbwef>RYDHBb0IS0$aDh1%chFLT zYrc+wyXA-0S-Q8ySCzmE28#N|;DD=Uh}D{sf`UKM5;zeRrs+ysh`)!vpc@Q-I$!-4 z6aYZ{jzJ`>SB(~T|1o;NJTRa)#FD&iRb3l^=$cIFx~TEbK|b&>1w2tiv=|<4>VX77 zkEnum;?F0_Fo168Jj#OKy!h=8u&RP})kEPkv;uO{moR?CTfjIcz)Uq1%SM&K*Qp5T zTy%Q+4wX@MXq{?V9NI$sX`cYypnjkSGi4ch;ETI_Er^2a`8L^twk!Nu+q#|6(8!q= zH}8-Ig@#H|$r@%DGB}8@)_ga53-Q-V4IagEV&d_?;FG{IuiORZ!WGf=4mLxENRTaS zvAw^2Bi;Z2WA-RzTIay#qE!(*(bU2MuIf@Q2cBpd-go1t0s69lZlDlatnj9}rx?u9X^Md{G#|xmibE`=X zk$14s@Br-jD%U~R*af0a!XZv;v>68xM=v@(WEVENF)KZYi33-8G#{osL2qA3Gh;(N z>%*q$)FunLoE=YpI|PK=&Q#&2_{+{9dJdY#!e?y{G;2eNQQI=YKP|Y)$Crl&ku*n0 zyQiU)TRErgu{Kpgq`X_$!ma|^_%#Op*Wvmep8=ey6s19Z7%`b9-}nGF2?>7CF7UCN z8Mc8q1w(i&;6mKew)3S0NlK9`d%CxHu)g8+jBI(DQ7bJ?7m(}A;fweZ5vpqRDJj?} zfXx)p5o1KSU19cu@YRQq**Ta&5A(UN8rExgOOqcuq~P^qawkx`I3?WDAxKM8GcF1V zl2;u!MgM@USUsRj+H;!0Itn%wt-8=)i1iyjnI8@ajS?5m-g>PbcV5%^>m5}~1GsK? z1_Ub1fCy`-0_oVZ3&y>L^d7?Ti{03T43(k2X-9qX>99cUKvk(2jqADEbKQy7ukI$OJ-T*o!_L)} zyR;&?^w5dhf7vd+73nW46D#xm+!XVMn78Q~+#F7f&05IrBKVN{pekjH{+4`(%n#+V ziF8p|pmIV*2{<_x787tEnjP|?@88;XRK}sOVv`#ITNyMCAWt7TveQxNybYSV{Ozdl z07per>)!^@0yrw_syiJOA>gR&RlT*vQdANIKF+-K4oBrr$SXVgZ>&BS(6qP^w{@AF ziWc}$gNFqi*F&cU1;0^!tMJh383=x@BDZxl9zwbrDU{z3@R<832uQ|Ccj{^sL$c7Z zf9q;AKws7UZ+zb$fPkI48W#eAhxp-j`;8wyw@e3k{>2St1S~kB`wB!vgz9%PB-3I+ z(~ws8Xc7L)@ht#93i~&YAq|RrMRz*Bdm+bHDER`@594c{2TheIhjuu=mx1HkWIxLY zzv9V)8yJwdr{tCs9tN^QSy`#wuns?x`N4=t&lZFk_d_-?mCw#?OP8boDxKA8JOTmx z(I%mQ~F8Jyif(2c2IWe zv;>1C<)|xho%^58zwfUl`)kSmTC)FGvWMIzx>5@-V}(gZy{TXwZO|x2!nR2EKfn&= z>u=5jk7j?|wV*Yzb@4}9jEwMlg!W-XR!nC2j-4YLY>1XSdD5RCo^;MOr8VIkt^XH{ z>g`Qq#mimu_QUCBru)b5?<(d1ipMeWK?S*oC z2-yp?ustpf4IaDDys(unQ7o-quJK8irK6I&ngP$7YBngi-uB^zTAwV_Vb^o}H#7qF4Bq@DMDI78%Rvu*Nn>sRVS z?3)U@;FR1<65h(aZaH5M>7YaHY|>45BCweDJ5YNVqGtH0Vc>lXTtt|&IKQx^$JqI* zTKPAM^K}2^lsJzDH&FDqxRUh7W9g-aLCzGL1$_csH{rw#lyUd@Jth~{bs0y7&g%%f zZY{H*me?!xdG|j=SFoA>%tuFQ4y8V&9K=5ebq;7VmaDJ!-DR0^7NMz%jD@d||8(qu zC+B%CO+z;?*Ct#gd`!EOWbyp%c8)ED`W(%r`pSUX`+KJE^>vqwKI-!vOjd}9w8%I& zJmot0^5perMeDb^u(XKG+d0=^7X9!57_Z&u-kHP4%NZK4NK=V{q7FIIU=;%;X`_`* z*y!EVqs%pt)}IoRpOR(z7E3H~H^EhupGT5Hr2Mg%<-{>E@Ic&uW8C2k^8jbKqvps( zShBQJJwc!P(an?DG(DLbx!-z|QKe7B-X!U&Vwt>PNS>fe@b{#{S?=T?7?g$UJxIA~=9zLgd81DC}ln ztvIXi)J5orEHz~(g?#~};x(23)0bt)1!<4!~E8jNT~} z&L zoB-(D(oQ*s&Rbx2Q{O4apbK@e{BO~V&Ntu%vCKQ<7~uQbw(-bFLPMkaw;aQ-$pz=+ zugRsR`L%NYbxQtPx!cBVngZifsl?RS7fT@GZ9d6lv? zET$}M&NcO-v1o*$(uy-Y^7!v%Zy+_J%5)YOHUwmEKn#}oHfulJak~ULy1ePX{TLbF z6p$UV`aT!ECA+h=`2TweGAPS6m!b_*yWWC?Ju8rcPs|r6L6-CG%uh|^D2S<*-e@}q zo74YZ4$>X;zaiS<6+FaKyAGbn-mnUfubu%H&#LsVr~^L??x6)}nj(Pt4D=xYhLsJ%T~4p?FftoZPruOide=4TrsZ0mO&mpWFmvDC&UW${s& zy*7Cw=72(rkdN+4ot}LUm(RvcYo$*Sso(oVI0@e=i3+I#_RCy80gZ%G<7;UB#c6fN zZ01nq_UuXha<{dKrIEM$7 zAz+_&MrjtIaI;nP0tWQbHfs;et{%#Of8EWOaZdDUwGD$6`*VT(>rOoDxK%a@hlf_q z`1^h`L*m)TotIb37j6gnr9_KNd%4O?+LMlpuUEyd4j=Su{W3Zc6DjK0th4m-{r=dv zSnQQr#rzR3j*qF=G5$W4cCydQ-5o0?`n+uw179woH!fYQTKRL?VHr1t)=1w|FHj|K zB~J3ta;)h0*6m;03=Ol;7N?<8OaSOGn#b<&TryqfOUMU5T=TCB~kw2*V6AH zg!V3eI_>(hH+Aw5#(g<(*{CPMYCXCs-(ua}Zx?;$VvxVPKtErF7+Sg(F=X}u?Vl^p z*rHGBb8n9^1vgJfD-S6TcoCh z3HYribZRnS`BJ}#f^Q{b&{l$uiniZikf^N17}tGH4e}*;u}uulOt1-CJTPx%P!yNf ztr$Gl%TgY}jKWGL<^@fMT(&rZu(GU_21+g)vGOK5n=E)GJT*yzB4w0c zFZgs#K=A3h_VIebLJcb+{H@u3Vs8CDSI$^TDU0-hMCFk25favb3G1^d*Q?RJ((8~v zel)W#G#-7BSm~y;m}P>Pd9+74h%3D39LtobEu-Mmy|!*^o27Hj6~p*f*BkmSTh~5G zw2ZhpocEl6$NNg@4WMU94XtPG* z@?)lxH^X|m#tQ^%c`Qw?|M`6LAfc!r@||PE^29C7%iDg(qB{CJUJV|XaL_zD-)i3L zJgb~BURRiVkfRyx@OylbLJFSzC+mC6dDXiibLQ zHy7HSXP3DJ!{VCT3tjJv*2WH#Yk2(SrB*}Qy}4)9a^x?4Qlawphf@Xn0C*Z60Um34S^ue(A)ZSNwLRRD?J>0H8zXZk@>wb zne`k`1_PYw@n2Gs*bs_T6|||bg$E|1izda*c?TD4dU9uCT@{uHJ=1+wmILAhPrmNS z3a4@8l_T18Yg0}*Vf(f|3|5`nYGr2Qef(i+H_r(5^Iq2Y%tBZH_fX(rG_9X;-~(W@RPqJHH;7XP0W%ICEtFbhlG((7%7`2)w~lW~P3 zd9|*A11$X)+F3p|>gHdcMJZGNhw`Q>SXnVFEf5rWJHP>eTol-$iWhL=z9^dMzOPM@ z*8WnxNo&$>S2pj`B}kHcEv>7x%a@FIJxcdIY{W6s#?af~6u_$9r0}J*s76nl%C3yp zl_%?~7~e!Hm;hEm?^$)-jc&>OPfm_zym%AA!<+9=Iqu{*KC99(J_UIT!DBvd!v^+) zjW{zRuxmWF0*P8R)IKffO)0H!`8?>EraDYPZfgM?aPurYpbeyB4G=Sa*@7WO$7VbU z$b*@>g*x3$wk!mxMNK>Mq(pX#tH#NuQk9d4l>n^>>@^Q_{AiK3A^n_QY4>ctE=jf^ zJ5mGVf-Sh;pSNk=>+dIsoHey_>hR6~%E)kI0%52Lnb2<9Kt<$ zc?XA%s{&dOS-AFX z$IT^nc{8d?$>|N_{*~!Re@y8Xb(0EJh7%(e1+8Dk)Vva0!tm%M3)7PBB673Ac((~= zPe!1m^|KG0SahaaUL=?5K3 zdr^H}MBwnmx>eb=KW%3DRKig&mFib=`w!GhBW+yt88eQNdwT8PXNs9E`TJ~d-)8u^ z9LJ5^0z59;)q?NBKuoVXnq$yOX11%HcszVSe6_jiwwIKZ3ZHlFV(*3#!fqsbe;})r zPvQKuM`6wZAH5YZ6W`L|4^GmO@sU*3Mh4l^SmbQRrImD&hM*#LAJE3?vG!Fe#I=W4 zW`}?yByQjqo`Y5Cw(c}8e^l49PMqL%z*4tDW3jSygLI4}#qK%idCdiw=+FdSKN=Vu zL-yK)8XZqcwr@wi%iA;NnIlGNq>8pAqrrfS0V^qQ_-*=z1bbON${)TKVJ=!zf<{Vr zm)npo*|k{@YcSX{=ORUgx-0GzvX1%C9askOVymDp%!#4<3a}$W@y;R^FbDXj#xz5M zC-tGTLO8X;j|&s=>;vUaLE)K88$F1jC@iTAtDg9{{GUm^1e*pgt#uk;gKF-```T(JeTnw(zTr&`{f4+?ln3iDpoJmF*3w1@zm!>Pong@|dA8?J4(^*J^LH@uQ9 z*!b8teafJv*ah;HlM{%UcwIfZ!!80(cZmgAB4>$w)$VnU5p@P}Rll$0NdIrHP<84K zr|9!6{7-w(Y*J_AHYOL;l`$9zkMRNHHFq3VU<_>+%BQQ&h=|*qtewRX1$fs6dowwi zEL#c`qj?eNr77-SmNFBAv%2pN3;=(IC;L)F91d{H*Th43Xuq{zvh5$5kMxP^<;s2+ zffBoYvd(Gp0!3~Xf7WGEO3~#c&y`KIf2%P;D`=Vze9!>95X->McofvymW;x z&++6tmj@@`T?B50QN&`1t=zsN6BSSdgF4^e3Y^bt5msT6K5k^PQQdS$tw?+oOEkgZ zk6zbl{CvzeyyLTrV4I^Y2fJ=E-;Hqf8c(lA2IKEGk|QauoPplQmsPv6$gaY@1f|w^s7?%?gj<$ z3Z+a1bX=@c_FlckH)x4wyD*H`TraRLxVU~&W@ry^e~$CTz~TyouLLNEjHPSW!O1<& zpi-nMmMnCD`c3uku@xV|zIm4BWBCKB;;HFN8GL~#=&1bMNQ##9nNK1bM~kBg(~Ik( z!7rh6m`mP=6+bXraV>2!Ijd?|9X&qWe3ew&hokUR80abq=)Gh9+8$nVP9=O*+IAty z*zXN8uBv2WpuS#`B>gH@8C>ql?iqFc%0ADpx%RajuBOD1)ee1xkT>yhad5z>Cq;tc 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 F{{Sp25KI67 literal 0 HcmV?d00001 From 3655b0a6309c758cf42df95c209986b21e859859 Mon Sep 17 00:00:00 2001 From: 0xCipherCoder Date: Wed, 11 Sep 2024 09:27:20 +0530 Subject: [PATCH 033/206] Native onchain development - Updated hello world lesson (#401) * Fixed codes, mistakes, links and styling * Fixed grammatical mistakes * Fixed onchain * Removed smart quotes * Update content/courses/native-onchain-development/hello-world-program.md Co-authored-by: Mike MacCana * Update content/courses/native-onchain-development/hello-world-program.md Co-authored-by: Mike MacCana * Fixed linting * Update content/courses/native-onchain-development/hello-world-program.md Co-authored-by: Mike MacCana * Update content/courses/native-onchain-development/hello-world-program.md Co-authored-by: Mike MacCana * Fixed linting * Fixed suggestions * Added details on account info and entrypoint * Updated link to client --------- Co-authored-by: Mike MacCana --- .../hello-world-program.md | 324 +++++++++--------- 1 file changed, 160 insertions(+), 164 deletions(-) diff --git a/content/courses/native-onchain-development/hello-world-program.md b/content/courses/native-onchain-development/hello-world-program.md index b928a329f..d386491c6 100644 --- a/content/courses/native-onchain-development/hello-world-program.md +++ b/content/courses/native-onchain-development/hello-world-program.md @@ -13,74 +13,72 @@ description: ## Summary -- Native Solana programs have a single **entry point** to process instructions -- A program processes an instruction using the **program_id**, list of - **accounts**, and **instruction_data** included with the instruction +- Native Solana programs have a single **entry point** to process instructions. +- A program processes an instruction using the **program_id**, a list of + **accounts**, and **instruction_data** included with the instruction. ## Lesson -The following guide assumes you are familiar with Solana program basics - if not, check out [introduction to onchain programming](/developers/courses/onchain-development/intro-to-onchain). + +The following guide assumes you are familiar with Solana program basics. If not, +check out +[Introduction to Onchain Programming](/content/courses/onchain-development/intro-to-onchain.md). -This lesson will give you a basic introduction to writing and deploying a Solana -program using the Rust programming language, without any framework. This gives -you greater control, but also requires you to perform much of the basic work of +This lesson will introduce you to writing and deploying a Solana program using +the Rust programming language without any framework. This approach offers +greater control but requires you to handle much of the foundational work of creating an onchain program yourself. -To avoid the distraction of setting up a local development environment, we'll be -using a browser-based IDE called Solana Playground. +To avoid the distractions of setting up a local development environment, we'll +be using a browser-based IDE called Solana Playground. ### Rust Basics -Before we dive into the building our "Hello, world!" program, let’s first go -over some Rust basics. If you want to dig deeper into Rust, have a look at -the [Rust language book](https://doc.rust-lang.org/book/ch00-00-introduction.html). +Before diving into building our "Hello, world!" program, let's review some Rust +basics. For a deeper dive into Rust, check out the +[Rust Language Book](https://doc.rust-lang.org/book/ch00-00-introduction.html). #### Module System Rust organizes code using what is collectively referred to as the “module -system”. - -This includes: +system.” This includes: -- **Modules** - A module separates code into logical units to provide isolated - namespaces for organization, scope, and privacy of paths -- **Crates** - A crate is either a library or an executable program. The source - code for a crate is usually subdivided into multiple modules. -- **Packages** - A package contains a collection of crates as well as a manifest - file for specifying metadata and dependencies between packages +- **Modules**: Separates code into logical units to provide isolated namespaces + for organization, scope, and privacy of paths. +- **Crates**: Either a library or an executable program. The source code for a + crate is usually subdivided into multiple modules. +- **Packages**: A collection of crates along with a manifest file that specifies + metadata and dependencies between packages. -Throughout this lesson, we’ll focus on using crates and modules. +Throughout this lesson, we'll focus on using crates and modules. -#### Paths and scope +#### Paths and Scope -Crates in Rust contain modules that define functionality which can be shared -with multiple projects. If we want to access an item within a module, then we -need to know its "path" (like when we're navigating a filesystem). +Crates contain modules that can be shared across multiple projects. If we want +to access an item within a module, we need to know its "path," similar to +navigating a filesystem. Think of the crate structure as a tree where the crate is the base and modules -are branches, each of which can have submodules or items that are additional -branches. +are branches, each potentially having submodules or items as additional +branches. The path to a particular module or item is the name of each step from +the crate to that module, separated by `::`. -The path to a particular module or item is the name of each step from the crate -to that module where each is separated by `::`. As an example, let's look at the -following structure: +For example: -1. The base crate is `solana_program` -2. `solana_program` contains a module named `account_info` -3. `account_info` contains a struct named `AccountInfo` +1. The base crate is `solana_program`. +2. `solana_program` contains a module named `account_info`. +3. `account_info` contains a struct named `AccountInfo`. The path to `AccountInfo` would be `solana_program::account_info::AccountInfo`. -Absent of any other keywords, we would need to reference this entire path to use -`AccountInfo` in our code. - -However, with the +Absent any other keywords, you would need to reference this entire path to use +`AccountInfo` in your code. However, with the [`use`](https://doc.rust-lang.org/stable/book/ch07-04-bringing-paths-into-scope-with-the-use-keyword.html) -keyword we can bring an item into scope so that it can be reused throughout a -file without specifying the full path each time. It's common to see a series of -`use` commands at the top of a Rust file. +keyword, you can bring an item into scope so it can be reused throughout a file +without specifying the full path each time. It's common to see a series of `use` +commands at the top of a Rust file. ```rust use solana_program::account_info::AccountInfo @@ -88,81 +86,79 @@ use solana_program::account_info::AccountInfo #### Declaring Functions in Rust -We define a function in Rust by using the `fn` keyword followed by a function +Functions in Rust are defined using the `fn` keyword, followed by a function name and a set of parentheses. ```rust fn process_instruction() ``` -We can then add arguments to our function by including variable names and -specifying its corresponding data type within the parentheses. +We can add arguments to our function by including variable names and specifying +their corresponding data types within the parentheses. -Rust is known as a ”statically typed” language and every value in Rust is of a -certain ”data type”. This meaning that Rust must know the types of all variables -at compile time. In cases when multiple types are possible, we must add a type -annotation to our variables. +Rust is a "statically typed" language, meaning every value in Rust has a +specific "data type" known at compile time. In cases where multiple types are +possible, we must add a type annotation to our variables. In the example below, we create a function named `process_instruction` that requires the following arguments: -- `program_id` - required to be type `&Pubkey` -- `accounts` - required to be type `&[AccountInfo]` -- `instruction_data` - required to be type `&[u8]` +- `program_id` - required to be of type `&Pubkey`. +- `accounts` - required to be of type `&[AccountInfo]`. +- `instruction_data` - required to be of type `&[u8]`. Note the `&` in front of the type for each argument listed in the -`process_instruction` function. In Rust, `&` represents a ”reference” to another -variable. This allows you to refer to some value without taking ownership of it. -The “reference” is guaranteed to point to a valid value of a particular type. -The action of creating a reference in Rust is called “borrowing”. +`process_instruction` function. In Rust, `&` represents a "reference" to another +variable, allowing you to refer to some value without taking ownership of it. +The reference is guaranteed to point to a valid value of a particular type. The +action of creating a reference in Rust is called “borrowing.” In this example, when the `process_instruction` function is called, a user must pass in values for the required arguments. The `process_instruction` function -then references the values passed in by the user, and guarantees that each value -is the correct data type specified in the `process_instruction` function. +then references the values passed in by the user, guaranteeing that each value +is the correct data type specified in the function. Additionally, note the brackets `[]` around `&[AccountInfo]` and `&[u8]`. This -means that the `accounts` and `instruction_data` arguments expect “slices” of -types `AccountInfo` and `u8`, respectively. A “slice” is similar to an array -(collection of objects of the same type), except the length is not known at +indicates that the `accounts` and `instruction_data` arguments expect "slices" +of types `AccountInfo` and `u8`, respectively. A “slice” is similar to an array +(a collection of objects of the same type), except the length is not known at compile time. In other words, the `accounts` and `instruction_data` arguments expect inputs of unknown length. ```rust -fn process_instruction( +pub fn process_instruction( program_id: &Pubkey, accounts: &[AccountInfo], instruction_data: &[u8], ) ``` -We can then have our functions return values by declaring the return type using -an arrow `->` after the function. +We can also have our functions return values by declaring the return type using +an arrow -> after the function. In the example below, the `process_instruction` function will now return a value -of type `ProgramResult`. We will go over this in the next section. +of type `ProgramResult`. We'll go over this in the next section. ```rust -fn process_instruction( +pub fn process_instruction( program_id: &Pubkey, accounts: &[AccountInfo], instruction_data: &[u8], ) -> ProgramResult ``` -#### Result enum +#### Result Enum -`Result` is a standard library type that represents two discrete outcomes: -success (`Ok`) or failure (`Err`). We'll talk more about enums in a future -lesson, but you'll see `Ok` used later in this lesson so it's important to cover -the basics. +`Result` is a standard library type representing two discrete outcomes: success +(`Ok`) or failure (`Err`). We'll discuss enums more in a future lesson, but +you'll see `Ok` used later in this lesson, so it's important to cover the +basics. -When you use `Ok` or `Err`, you must include a value, the type of which is -determined by the context of the code. For example, a function that requires a -return value of type `Result` is saying that the function can -either return `Ok` with an embedded string value or `Err` with an embedded -integer. In this example, the integer is an error code that can be used to -appropriately handle the error. +When using `Ok` or `Err`, you must include a value, the type of which is +determined by the code's context. For example, a function that requires a return +value of type `Result` can either return `Ok` with an embedded +string value or `Err` with an embedded integer. In this example, the integer is +an error code that can be used to handle the error appropriately. To return a success case with a string value, you would do the following: @@ -179,21 +175,20 @@ Err(404); ### Solana Programs Recall that all data stored on the Solana network are contained in what are -referred to as accounts. Each account has its own unique address which is used -to identify and access the account data. Solana programs are just a particular -type of Solana account that store and execute instructions. +referred to as accounts. Each account has its own unique address, which is used +to identify and access the account data. Solana programs are a specific type of +Solana account that stores and executes instructions. #### Solana Program Crate -To write Solana programs with Rust, we use the `solana_program` library crate. -The `solana_program` crate acts as a standard library for Solana programs. This -standard library contains the modules and macros that we'll use to develop our -Solana programs. If you want to dig deeper into the `solana_program` crate, have -a look -[at the `solana_program` crate documentation](https://docs.rs/solana-program/latest/solana_program/index.html). +To write Solana programs with Rust, we use the solana_program library crate. The +solana_program crate acts as a standard library for Solana programs. This +standard library contains the modules and macros we'll use to develop our Solana +programs. For more details, check out the +[`solana_program` crate documentation](https://docs.rs/solana-program/latest/solana_program/index.html). -For a basic program we will need to bring into scope the following items from -the `solana_program` crate: +For a basic program, we need to bring the following items from the +`solana_program` crate into scope: ```rust use solana_program::{ @@ -205,31 +200,34 @@ use solana_program::{ }; ``` -- `AccountInfo` - a struct within the `account_info` module that allows us to - access account information -- `entrypoint` - a macro that declares the entry point of the program -- `ProgramResult` - a type within the `entrypoint` module that returns either - a `Result` or `ProgramError` -- `Pubkey` - a struct within the `pubkey` module that allows us to access - addresses as a public key -- `msg` - a macro that allows us to print messages to the program log +- `AccountInfo` - A struct that allows us to access account information like + account addresses, owners, lamport balances, data length, executable status, + rent epoch, and whether the account was signed or writable in the current + transaction. +- `entrypoint` - A macro that defines a function that receives incoming + instructions and routes them to the appropriate instruction handler. +- `ProgramResult` - A type within the `entrypoint` module that returns either a + `Result` or `ProgramError`. +- `Pubkey` - A struct within the `pubkey` module that allows us to access + addresses as public keys. +- `msg` - A macro that allows us to print messages to the program log. #### Solana Program Entry Point Solana programs require a single entry point to process program instructions. -The entry point is declared using the `entrypoint!` macro. +The entry point is declared using the `entrypoint!` macro. -The entry point to a Solana program requires a `process_instruction` function +The entry point to a Solana program requires a `process_instruction` function with the following arguments: -- `program_id` - the address of the account where the program is stored -- `accounts` - the list of accounts required to process the instruction -- `instruction_data` - the serialized, instruction-specific data +- `program_id` - The address of the account where the program is stored. +- `accounts` - The list of accounts required to process the instruction. +- `instruction_data` - The serialized, instruction-specific data. ```rust entrypoint!(process_instruction); -fn process_instruction( +pub fn process_instruction( program_id: &Pubkey, accounts: &[AccountInfo], instruction_data: &[u8], @@ -237,40 +235,40 @@ fn process_instruction( ``` Recall that Solana program accounts only store the logic to process -instructions. This means program accounts are "read-only" and “stateless”. The +instructions. This means program accounts are "read-only" and “stateless.” The “state” (the set of data) that a program requires to process an instruction is -stored in data accounts (separate from the program account). +stored in data accounts separate from the program account. -To process an instruction, the data accounts that an instruction requires must -be explicitly passed into the program through the `accounts` argument. Any -additional inputs must be passed in through the `instruction_data` argument. +To process an instruction, the data accounts required by the instruction must be +explicitly passed into the program through the `accounts` argument. Any +additional inputs must be passed in through the `instruction_data` argument. Following program execution, the program must return a value of type `ProgramResult`. This type is a `Result` where the embedded value of a success case is `()` and the embedded value of a failure case is `ProgramError`. `()` is -an empty value and `ProgramError` is an error type defined in the +an empty value, and `ProgramError` is an error type defined in the `solana_program` crate. -...and there you have it - you now know all the things you need for the -foundations of creating a Solana program using Rust. Let’s practice what we’ve -learned so far! +...and there you have it—you now know the foundations of creating a Solana +program using Rust. Let's practice what we've learned so far! ## Lab We're going to build a "Hello, World!" program using Solana Playground. Solana -Playground is a tool that allows you to write and deploy Solana programs from -the browser. +Playground is a tool that allows you to write and deploy Solana programs +directly from your browser. -#### 1. Setup +### 1. Setup -Open the [Solana Playground](https://beta.solpg.io/). Next, go ahead and delete -everything in the default `lib.rs` file and create a Playground wallet. +First, open the [Solana Playground](https://beta.solpg.io/). Once you're in, +delete all the existing code in the `lib.rs` file. Then, create a new wallet +within the Playground. ![Gif Solana Playground Create Wallet](/public/assets/courses/unboxed/hello-world-create-wallet.gif) -#### 2. Solana Program Crate +### 2. Solana Program Crate -First, let's bring into scope everything we’ll need from the `solana_program` +We'll begin by importing the necessary components from the `solana_program` crate. ```rust @@ -283,27 +281,27 @@ use solana_program::{ }; ``` -Next, let's set up the entry point to our program using the `entrypoint!` macro -and create the `process_instruction` function. The `msg!` macro then allows us -to print “Hello, world!” to the program log when the program is invoked. +Next, we'll set up the entry point of our program using the `entrypoint!` macro +and define the `process_instruction` function. We'll use the `msg!` macro to +print “Hello, world!” to the program log when the program is invoked. -#### 3. Entry Point +### 3. Entry Point ```rust entrypoint!(process_instruction); pub fn process_instruction( - program_id: &Pubkey, - accounts: &[AccountInfo], - instruction_data: &[u8] -) -> ProgramResult{ + _program_id: &Pubkey, + _accounts: &[AccountInfo], + _instruction_data: &[u8], +) -> ProgramResult { msg!("Hello, world!"); Ok(()) } ``` -All together, the “Hello, world!” program will look like this: +Putting it all together, our complete “Hello, world!” program looks like this: ```rust use solana_program::{ @@ -317,78 +315,76 @@ use solana_program::{ entrypoint!(process_instruction); pub fn process_instruction( - program_id: &Pubkey, - accounts: &[AccountInfo], - instruction_data: &[u8] -) -> ProgramResult{ + _program_id: &Pubkey, + _accounts: &[AccountInfo], + _instruction_data: &[u8], +) -> ProgramResult { msg!("Hello, world!"); Ok(()) } ``` -#### 4. Build and Deploy +### 4. Build and Deploy -Now let's build and deploy our program using Solana Playground. +Now, let's build and deploy our program using Solana Playground. ![Gif Solana Playground Build and Deploy](/public/assets/courses/unboxed/hello-world-build-deploy.gif) -#### 5. Invoke Program +### 5. Invoke Program -Finally, let's invoke our program from the client side. The focus of this lesson -is to build our Solana program, so we’ve gone ahead and provided -[the client code to invoke our “Hello, world!” program](https://github.com/Unboxed-Software/solana-hello-world-client) +Finally, let's invoke our program from the client side. The main focus of this +lesson is building our Solana program, so we've provided +[the client code to invoke our “Hello, world!” program](https://github.com/solana-developers/hello-world-client) for you to download. -The code provided includes a `sayHello` helper function that builds and submits -our transaction. We then call `sayHello` in the main function and print a Solana -Explorer URL to view our transaction details in the browser. - -Open the `index.ts` file you should see a variable named `programId`. Go ahead -and update this with the program ID of the “Hello, world!" program you just -deployed using Solana Playground. +This code includes a `sayHello` helper function that constructs and submits the +transaction. In the `index.ts` file, you'll find a variable named `programId`. +Update this with the program ID of the “Hello, world!” program you just deployed +using Solana Playground. ```typescript let programId = new web3.PublicKey(""); ``` -You can locate the program ID on Solana Playground referencing the image below. +You can find the program ID on Solana Playground as shown below. ![Gif Solana Playground Program ID](/public/assets/courses/unboxed/hello-world-program-id.gif) -Next, install the Node modules with `npm i`. +Next, install the Node modules by running `npm i`. -Now, go ahead and run `npm start`. This command will: +Afterwards, execute `npm start`. This command will: -1. Generate a new keypair and create a `.env` file if one does not already exist -2. Airdrop devnet SOL -3. Invoke the “Hello, world!” program -4. Output the transaction URL to view on Solana Explorer +1. Generate a new keypair and create a `.env` file if it doesn't already exist. +2. Airdrop some SOL onto this account on devnet. +3. Invoke the “Hello, world!” program. +4. Output a transaction URL that you can view on Solana Explorer. -Copy the transaction URL printed in the console into your browser. Scroll down -to see “Hello, world!” under Program Instruction Logs. +Copy the transaction URL from the console into your browser. Scroll down to the +Program Instruction Logs section to see “Hello, world!” displayed. ![Screenshot Solana Explorer Program Log](/public/assets/courses/unboxed/hello-world-program-log.png) -Congratulations, you’ve just successfully built and deployed a Solana program! +Congratulations! You've successfully built and deployed a Solana program! ## Challenge -Now it’s your turn to build something independently. Because we're starting with -very simple programs, yours will look almost identical to what we just created. -It's useful to try and get to the point where you can write it from scratch -without referencing prior code, so try not to copy and paste here. +Now it's your turn to build something independently. Since we're starting with +very simple programs, your task will closely resemble what we've just created. +The goal is to practice writing the code from scratch without referencing prior +examples, so try to avoid copying and pasting. -1. Write a new program that uses the `msg!` macro to print your own message to - the program log. -2. Build and deploy your program like we did in the lab. -3. Invoke your newly deployed program and use Solana Explorer to check that your - message was printed in the program log. +1. Write a new program that uses the `msg!` macro to print your own custom + message to the program log. +2. Build and deploy your program just like we did in the lab. +3. Invoke your newly deployed program and use Solana Explorer to confirm that + your message was printed in the program log. -As always, get creative with these challenges and take them beyond the basic -instructions if you want - and have fun! +As always, feel free to get creative with these challenges and go beyond the +basic instructions if you want — most importantly, have fun! + Push your code to GitHub and [tell us what you thought of this lesson](https://form.typeform.com/to/IPH0UGz7#answers-lesson=5b56c69c-1490-46e4-850f-a7e37bbd79c2)! From 94afa751be267e938ff2fb8975d72f7de98b1dd8 Mon Sep 17 00:00:00 2001 From: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> Date: Wed, 11 Sep 2024 09:40:56 -0400 Subject: [PATCH 034/206] feat: added mike (#467) --- .prettierignore | 3 ++- CODEOWNERS | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.prettierignore b/.prettierignore index 3359ecdec..b134d689d 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1 +1,2 @@ -.github/*.md \ No newline at end of file +.github/*.md +CODEOWNERS \ No newline at end of file diff --git a/CODEOWNERS b/CODEOWNERS index 410750e42..3a02281c3 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1,4 +1,3 @@ -# This is a comment. # Each line is a file pattern followed by one or more owners. # These global owners will be the default owners for everything in @@ -9,3 +8,5 @@ # This list owns any file in the `/docs` directory in the root of # the repository and any of its subdirectories. # /docs/ @nickfrosty + +# /content/courses/ @mikemaccana From 60d757d62f411438380fa8c6461346a4567b465b Mon Sep 17 00:00:00 2001 From: Suhas A <113137561+suhasamaresh@users.noreply.github.com> Date: Wed, 11 Sep 2024 19:15:59 +0530 Subject: [PATCH 035/206] Update interact-with-tokens.md (#441) --- content/guides/games/interact-with-tokens.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/guides/games/interact-with-tokens.md b/content/guides/games/interact-with-tokens.md index 9a08e5acd..3e74748b6 100644 --- a/content/guides/games/interact-with-tokens.md +++ b/content/guides/games/interact-with-tokens.md @@ -1,7 +1,7 @@ --- date: 2024-04-25T00:00:00Z difficulty: intermediate -title: How interact with tokens in programs +title: How to interact with tokens in programs description: Learn how to use tokens in Solana games with an on-chain tutorial tags: - games From 0ee7008a7456c6f92f700cdeb07eeb1da3e51100 Mon Sep 17 00:00:00 2001 From: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> Date: Wed, 11 Sep 2024 12:25:52 -0400 Subject: [PATCH 036/206] feat: add info (#469) --- MAINTAINERS.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/MAINTAINERS.md b/MAINTAINERS.md index 137604e09..0d23c5ee3 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -53,3 +53,35 @@ translated content from Crowdin. It will first upload all the new content in the base language (i.e. when a page gets edited or newly created), then download all translations for all languages. The `deploy` action will then continue to build the content api normally. + +### Testing and fixing broken translation files + +Crowdin will often return altered and incorrectly formatted content files back +when performing `crowdin download`. It may be helpful (and faster) to work with +a single content file at a time by altering the content locally, uploading it to +Crowdin, the downloading the Crowdin-altered version to see if the changes will +actually work and not break the site. + +To upload single content file to Crowdin specify the source path (`-s` flag) and +the translation path (`-t` flag). Be sure to include the `%locale%` wildcard in +the translation path: + +```shell +yarn crowdin upload -s docs/intro/installation.md -t i18n/%locale%/docs/intro/installation.md +``` + +To download the Crowdin formatted content, download the entire locale using the +`-l` flag and passing the locale short code. For example, downloading only the +German (DE) translated content: + +```shell +yarn crowdin download -l de +``` + +It may be helpful to also run the prettier formatter on the translation files, +since this is normally performed by a GitHub action on deployment to catch and +fix many formatting issues that Crowdin causes due to altering content: + +```shell +yarn prettier:i18n +``` From 158891d032d458432c625020326b574fd8de204d Mon Sep 17 00:00:00 2001 From: nickfrosty <75431177+nickfrosty@users.noreply.github.com> Date: Thu, 12 Sep 2024 09:23:28 -0400 Subject: [PATCH 037/206] fix: codeowner --- CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CODEOWNERS b/CODEOWNERS index 3a02281c3..0b5b1e443 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -9,4 +9,4 @@ # the repository and any of its subdirectories. # /docs/ @nickfrosty -# /content/courses/ @mikemaccana +/content/courses/ @mikemaccana From 4cd23c958a4bb87f5a169e2ab05e0f180fd32ef0 Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 12 Sep 2024 20:24:38 +0530 Subject: [PATCH 038/206] onchain-development anchor-cpi updated (#394) * onchain anchor-cpi updated * minor refactor Co-authored-by: Mike MacCana * minor refactor Co-authored-by: Mike MacCana * minor refactor Co-authored-by: Mike MacCana * minor refactor --------- Co-authored-by: Mike MacCana --- .../courses/onchain-development/anchor-cpi.md | 102 ++++++++++-------- 1 file changed, 60 insertions(+), 42 deletions(-) diff --git a/content/courses/onchain-development/anchor-cpi.md b/content/courses/onchain-development/anchor-cpi.md index 35a627adc..7202f7c16 100644 --- a/content/courses/onchain-development/anchor-cpi.md +++ b/content/courses/onchain-development/anchor-cpi.md @@ -114,21 +114,20 @@ pub fn new_with_signer( #### CPI accounts -One of the main things about `CpiContext` that simplifies cross-program -invocations is that the `accounts` argument is a generic type that lets you pass -in any object that adopts the `ToAccountMetas` and `ToAccountInfos<'info>` -traits. +One of the key features of `CpiContext` is that the `accounts` argument is +generic, allowing you to pass in any object that implements the `ToAccountMetas` +and `ToAccountInfos<'info>` traits. -These traits are added by the `#[derive(Accounts)]` attribute macro that you've -used before when creating structs to represent instruction accounts. That means -you can use similar structs with `CpiContext`. +These traits are added by the `#[derive(Accounts)]` attribute macro you've used +before, to specify the accounts required by your instruction handlers. You can +use also use `#[derive(Accounts)]` structs with `CpiContext`. This helps with code organization and type safety. -#### Invoke an instruction on another Anchor program +#### Invoke an instruction handler on another Anchor program -When the program you're calling is an Anchor program with a published crate, -Anchor can generate instruction builders and CPI helper functions for you. +When calling another Anchor program with a published crate, Anchor can generate +instruction builders and CPI helper functions for you. Simply declare your program's dependency on the program you're calling in your program's `Cargo.toml` file as follows: @@ -141,11 +140,11 @@ callee = { path = "../callee", features = ["cpi"]} By adding `features = ["cpi"]`, you enable the `cpi` feature and your program gains access to the `callee::cpi` module. -The `cpi` module exposes `callee`'s instructions as a Rust function that takes -as arguments a `CpiContext` and any additional instruction data. These functions -use the same format as the instruction functions in your Anchor programs, only -with `CpiContext` instead of `Context`. The `cpi` module also exposes the -accounts structs required for calling the instructions. +The `cpi` module turns `callee`'s instructions into Rust functions. These +functions take a `CpiContext` and any extra data needed for the instruction. +They work just like the instruction functions in your Anchor programs, but use +`CpiContext` instead of `Context`. The `cpi` module also provides the account +structs needed for these instruction handler. For example, if `callee` has the instruction `do_something` that requires the accounts defined in the `DoSomething` struct, you could invoke `do_something` as @@ -212,11 +211,11 @@ possible options: similar pattern if you decide to use an accounts struct and `CpiContext` to organize and prepare your CPI. ```rust - pub fn mint_to<'a, 'b, 'c, 'info>( - ctx: CpiContext<'a, 'b, 'c, 'info, MintTo<'info>>, + pub fn mint_to<'info>( + ctx: CpiContext<'_foo, '_bar, '_baz, 'info, MintTo<'info>>, amount: u64, ) -> Result<()> { - let ix = spl_token::instruction::mint_to( + let instruction_handler = spl_token::instruction::mint_to( &spl_token::ID, ctx.accounts.mint.key, ctx.accounts.to.key, @@ -224,12 +223,12 @@ possible options: &[], amount, )?; - solana_program::program::invoke_signed( - &ix, + anchor_lang::solana_program::program::invoke_signed( + &instruction_handler, &[ - ctx.accounts.to.clone(), - ctx.accounts.mint.clone(), - ctx.accounts.authority.clone(), + ctx.accounts.to, + ctx.accounts.mint, + ctx.accounts.authority ], ctx.signer_seeds, ) @@ -242,8 +241,8 @@ possible options: We're deep enough into Anchor at this point that it's important to know how to create custom errors. -Ultimately, all programs return the same error -type: [`ProgramError`](https://docs.rs/solana-program/latest/solana_program/program_error/enum.ProgramError.html). +Ultimately, all programs return the same error type:  +[`ProgramError`](https://docs.rs/solana-program/latest/solana_program/program_error/enum.ProgramError.html). However, when writing a program using Anchor you can use `AnchorError` as an abstraction on top of `ProgramError`. This abstraction provides additional information when a program fails, including: @@ -381,14 +380,14 @@ pub struct InitializeMint<'info> { bump, payer = user, mint::decimals = 6, - mint::authority = mint, + mint::authority = user, )] pub mint: Account<'info, Mint>, #[account(mut)] pub user: Signer<'info>, pub token_program: Program<'info, Token>, pub rent: Sysvar<'info, Rent>, - pub system_program: Program<'info, System> + pub system_program: Program<'info, System>, } ``` @@ -455,7 +454,7 @@ pub struct AddMovieReview<'info> { seeds=[title.as_bytes(), initializer.key().as_ref()], bump, payer = initializer, - space = MovieAccountState::INIT_SPACE + title.len() + description.len() + space = DISCRIMINATOR + MovieAccountState::INIT_SPACE )] pub movie_review: Account<'info, MovieAccountState>, #[account(mut)] @@ -486,12 +485,6 @@ been initialized, it will be initialized as an associated token account for the specified mint and authority. Also, the payer for the costs related with the account initialization will be set under the constraint `payer`. -If you're unfamiliar with the `INIT_SPACE` constant used for the `movie_review` -account space allocation, please refer to the -[`solution-pdas`](https://github.com/solana-foundation/developer-content/blob/4c8eada3053061e66b907c9b49701b064544681d/content/courses/onchain-development/anchor-pdas.md?plain=1#L467) -branch that is being used as our starting point. In there, we discuss the -implementation of the `Space` trait and the `INIT_SPACE` constant. - Next, let’s update the `add_movie_review` instruction to do the following: - Check that `rating` is valid. If it is not a valid rating, return the @@ -520,15 +513,29 @@ use anchor_spl::associated_token::AssociatedToken; Next, update the `add_movie_review` function to: ```rust -pub fn add_movie_review(ctx: Context, title: String, description: String, rating: u8) -> Result<()> { +pub fn add_movie_review( + ctx: Context, + title: String, + description: String, + rating: u8 +) -> Result<()> { // We require that the rating is between 1 and 5 - require!(rating >= MIN_RATING && rating <= MAX_RATING, MovieReviewError::InvalidRating); + require!( + rating >= MIN_RATING && rating <= MAX_RATING, + MovieReviewError::InvalidRating + ); // We require that the title is not longer than 20 characters - require!(title.len() <= MAX_TITLE_LENGTH, MovieReviewError::TitleTooLong); + require!( + title.len() <= MAX_TITLE_LENGTH, + MovieReviewError::TitleTooLong + ); // We require that the description is not longer than 50 characters - require!(description.len() <= MAX_DESCRIPTION_LENGTH, MovieReviewError::DescriptionTooLong); + require!( + description.len() <= MAX_DESCRIPTION_LENGTH, + MovieReviewError::DescriptionTooLong + ); msg!("Movie review account created"); msg!("Title: {}", title); @@ -568,12 +575,23 @@ pub fn add_movie_review(ctx: Context, title: String, description Here we are only adding the check that `rating` and `description` are valid. ```rust -pub fn update_movie_review(ctx: Context, title: String, description: String, rating: u8) -> Result<()> { +pub fn update_movie_review( + ctx: Context, + title: String, + description: String, + rating: u8 +) -> Result<()> { // We require that the rating is between 1 and 5 - require!(rating >= MIN_RATING && rating <= MAX_RATING, MovieReviewError::InvalidRating); + require!( + rating >= MIN_RATING && rating <= MAX_RATING, + MovieReviewError::InvalidRating + ); // We require that the description is not longer than 50 characters - require!(description.len() <= MAX_DESCRIPTION_LENGTH, MovieReviewError::DescriptionTooLong); + require!( + description.len() <= MAX_DESCRIPTION_LENGTH, + MovieReviewError::DescriptionTooLong + ); msg!("Movie review account space reallocated"); msg!("Title: {}", title); @@ -682,7 +700,7 @@ After that, neither the test for `updateMovieReview` nor the test for At this point, run `anchor test` and you should see the following output -```shell +```bash anchor-movie-review-program ✔ Initializes the reward token (458ms) ✔ Movie review is added (410ms) From d6454e0b62d32ad9236b2a329e6fe879166d463d Mon Sep 17 00:00:00 2001 From: ARYAN <48391385+thearyanag@users.noreply.github.com> Date: Fri, 13 Sep 2024 02:32:04 +0530 Subject: [PATCH 039/206] Fix/intro to anchor frontend (#368) * fix: basic changes * fix: lab example * fix: sync lab doc with anchor-counter-program update * fix: formatting * fix: terminology --- .../intro-to-anchor-frontend.md | 398 +++++++++++------- .../courses/unboxed/anchor-frontend-demo.gif | Bin 1472556 -> 2243723 bytes .../unboxed/anchor-frontend-increment.png | Bin 73287 -> 205368 bytes .../unboxed/anchor-frontend-initialize.png | Bin 81074 -> 152862 bytes 4 files changed, 246 insertions(+), 152 deletions(-) diff --git a/content/courses/onchain-development/intro-to-anchor-frontend.md b/content/courses/onchain-development/intro-to-anchor-frontend.md index 39803ac8d..78443f151 100644 --- a/content/courses/onchain-development/intro-to-anchor-frontend.md +++ b/content/courses/onchain-development/intro-to-anchor-frontend.md @@ -56,11 +56,10 @@ writing to the program. To create an instance of `Program`, you'll need the following: -- IDL - file representing the structure of a program +- `IDL` - file representing the structure of a program - `Connection` - the cluster connection - `Wallet` - default keypair used to pay for and sign transactions - `Provider` - encapsulates the `Connection` to a Solana cluster and a `Wallet` -- `ProgramId` - the program’s onchain address ![Anchor structure](/public/assets/courses/unboxed/anchor-client-structure.png) @@ -84,41 +83,78 @@ counter program you built previously: ```json { - "version": "0.1.0", - "name": "counter", + "address": "9sMy4hnC9MML6mioESFZmzpntt3focqwUq1ymPgbMf64", + "metadata": { + "name": "anchor_counter", + "version": "0.1.0", + "spec": "0.1.0", + "description": "Created with Anchor" + }, "instructions": [ { - "name": "initialize", + "name": "increment", + "discriminator": [11, 18, 104, 9, 104, 174, 59, 33], "accounts": [ - { "name": "counter", "isMut": true, "isSigner": true }, - { "name": "user", "isMut": true, "isSigner": true }, - { "name": "systemProgram", "isMut": false, "isSigner": false } + { + "name": "counter", + "writable": true + }, + { + "name": "user", + "signer": true + } ], "args": [] }, { - "name": "increment", + "name": "initialize", + "discriminator": [175, 175, 109, 31, 13, 152, 155, 237], "accounts": [ - { "name": "counter", "isMut": true, "isSigner": false }, - { "name": "user", "isMut": false, "isSigner": true } + { + "name": "counter", + "writable": true, + "signer": true + }, + { + "name": "user", + "writable": true, + "signer": true + }, + { + "name": "system_program", + "address": "11111111111111111111111111111111" + } ], "args": [] } ], "accounts": [ + { + "name": "Counter", + "discriminator": [255, 176, 4, 245, 188, 253, 124, 25] + } + ], + "types": [ { "name": "Counter", "type": { "kind": "struct", - "fields": [{ "name": "count", "type": "u64" }] + "fields": [ + { + "name": "count", + "type": "u64" + } + ] } } ] } ``` -Inspecting the IDL, you can see that this program contains two instructions -(`initialize` and `increment`). +Inspecting the IDL, you can see the `programId` and the `metadata` object which +have been added in anchor 0.30.0 + +This program contains two instructions (`initialize` and `increment`). Notice that in addition to specifying the instructions, it species the accounts and inputs for each instruction. The `initialize` instruction requires three @@ -139,8 +175,12 @@ neither instructions require any additional instruction data since the `args` section is blank for both. Looking further down at the `accounts` section, you can see that the program -contains one account type named `Counter` with a single `count` field of type -`u64`. +contains one account type named `Counter` with a the `discriminator` field, +which is used to distinguish between various type of accounts present. + +Last, we have the `types` section, which contains types of account in the +`accounts` section , in this case, for account type `Counter` it contains a +single field named `count` of type `u64` Although the IDL does not provide the implementation details for each instruction, we can get a basic idea of how the onchain program expects @@ -148,12 +188,94 @@ instructions to be constructed and see the structure of the program accounts. Regardless of how you get it, you _need_ an IDL file to interact with a program using the `@coral-xyz/anchor` package. To use the IDL, you'll need to include -the IDL file in your project and then import the file. +the IDL file along with the types in your project and then import the file. ```typescript import idl from "./idl.json"; ``` +You would _ideally_ also require types for the IDL which would make it easier to +interact with the program. The types can be found at `/target/types` folder +after you have build your program. Here are the types for the above IDL which +when you notice has the exact same structure as the IDL but are just as type +helper. + +```typescript +/** + * Program IDL in camelCase format in order to be used in JS/TS. + * + * Note that this is only a type helper and is not the actual IDL. The original + * IDL can be found at `target/idl/anchor_counter.json`. + */ +export type AnchorCounter = { + address: "9sMy4hnC9MML6mioESFZmzpntt3focqwUq1ymPgbMf64"; + metadata: { + name: "anchorCounter"; + version: "0.1.0"; + spec: "0.1.0"; + description: "Created with Anchor"; + }; + instructions: [ + { + name: "increment"; + discriminator: [11, 18, 104, 9, 104, 174, 59, 33]; + accounts: [ + { + name: "counter"; + writable: true; + }, + { + name: "user"; + signer: true; + }, + ]; + args: []; + }, + { + name: "initialize"; + discriminator: [175, 175, 109, 31, 13, 152, 155, 237]; + accounts: [ + { + name: "counter"; + writable: true; + signer: true; + }, + { + name: "user"; + writable: true; + signer: true; + }, + { + name: "systemProgram"; + address: "11111111111111111111111111111111"; + }, + ]; + args: []; + }, + ]; + accounts: [ + { + name: "counter"; + discriminator: [255, 176, 4, 245, 188, 253, 124, 25]; + }, + ]; + types: [ + { + name: "counter"; + type: { + kind: "struct"; + fields: [ + { + name: "count"; + type: "u64"; + }, + ]; + }; + }, + ]; +}; +``` + #### Provider Before you can create a `Program` object using the IDL, you first need to create @@ -248,7 +370,9 @@ import { AnchorProvider, setProvider } from "@coral-xyz/anchor"; const { connection } = useConnection(); const wallet = useAnchorWallet(); -const provider = new AnchorProvider(connection, wallet, {}); +const provider = new AnchorProvider(connection, wallet, { + commitment: "confirmed", +}); setProvider(provider); ``` @@ -258,7 +382,6 @@ Once you have the IDL and a provider, you can create an instance of `Program`. The constructor requires three parameters: - `idl` - the IDL as type `Idl` -- `programId` - the onchain address of the program as a `string` or `PublicKey` - `Provider` - the provider discussed in the previous section The `Program` object creates a custom API you can use to interact with a Solana @@ -271,16 +394,17 @@ and listen to events. You can also To create the `Program` object, first import `Program` and `Idl` from `@coral-xyz/anchor`. `Idl` is a type you can use when working with Typescript. -Next, specify the `programId` of the program. We have to explicitly state the -`programId` since there can be multiple programs with the same IDL structure -(i.e. if the same program is deployed multiple times using different addresses). When creating the `Program` object, the default `Provider` is used if one is not explicitly specified. +To enable type support, import the types to your project from `/target/types` +present in your anchor project, and declare the type for the program object. + All together, the final setup looks something like this: ```typescript import idl from "./idl.json"; +import type { CounterProgram } from "@/types"; import { useAnchorWallet, useConnection } from "@solana/wallet-adapter-react"; import { Program, Idl, AnchorProvider, setProvider } from "@coral-xyz/anchor"; @@ -290,8 +414,10 @@ const wallet = useAnchorWallet(); const provider = new AnchorProvider(connection, wallet, {}); setProvider(provider); -const programId = new PublicKey("JPLockxtkngHkaQT5AuRYow3HyUv5qWzmhwsCPd653n"); -const program = new Program(idl as Idl, programId); +const program = new Program(idl as Idl) as Program; + +// we can also explicitly mention the provider +const program = new Program(idl as Idl, provider) as Program; ``` ### Anchor `MethodsBuilder` @@ -442,129 +568,109 @@ last lesson. As a reminder, the Counter program has two instructions: #### 1. Download the starter code Download -[the starter code for this project](https://github.com/Unboxed-Software/anchor-ping-frontend/tree/starter). +[the starter code for this project](https://github.com/solana-developers/anchor-ping-frontend/tree/starter). Once you have the starter code, take a look around. Install the dependencies with `npm install` and then run the app with `npm run dev`. -This project is a simple Next.js application. It includes the -`WalletContextProvider` we created in the -[Wallets lesson](https://github.com/Unboxed-Software/solana-course/blob/main/content/interact-with-wallets), -the `idl.json` file for the Counter program, and the `Initialize` and -`Increment` components we’ll be building throughout this lab. The `programId` of -the program we’ll be invoking is also included in the starter code. +This project is a simple Next.js application, created using +`npx create-next-dapp` + +The `idl.json` file for the Counter program, and the `Initialize` and +`Increment` components we’ll be building throughout this lab. #### 2. `Initialize` -To begin, let’s complete the setup to create the `Program` object in -`Initialize.tsx` component. +To begin, let’s complete the setup to create the `useCounterProgram` hook in +`components/counter/counter-data-access.tsx` component. Remember, we’ll need an instance of `Program` to use the Anchor `MethodsBuilder` -to invoke the instructions on our program. For that, we'll need an Anchor wallet -and a connection, which we can get from the `useAnchorWallet` and -`useConnection` hooks. Let's also create a `useState` to capture the program -instance. +to invoke the instructions on our program. `create-solana-dapp` already creates +a `getCounterProgram` for us, which will return us the `Program` instance. ```typescript -export const Initialize: FC = ({ setCounter }) => { - const [program, setProgram] = useState("") +// This is a helper function to get the Counter Anchor program. +export function getCounterProgram(provider: AnchorProvider) { + return new Program(CounterIDL as AnchorCounter, provider); +} +``` - const { connection } = useConnection() - const wallet = useAnchorWallet() +Now, in the `useCounterProgram` hook, we'll create a program instance - ... -} +```typescript +const provider = useAnchorProvider(); +const program = getCounterProgram(provider); ``` -With that, we can work on creating the actual `Program` instance. Let's do this -in a `useEffect`. +- `useAnchorProvider` is an helper function at + `components/solana/solana-provider` which returns the provider. -First we need to either get the default provider if it already exists, or create -it if it doesn't. We can do that by calling `getProvider` inside a try/catch -block. If an error is thrown, that means there is no default provider and we -need to create one. +Now that we've the program instance, we can actually invoke the program's +`initialize` instruction. We'll do this using `useMutation`. -Once we have a provider, we can construct a `Program` instance. +Remember, We’ll need to generate a new `Keypair` for the new `Counter` account +since we are initializing an account for the first time. ```typescript -useEffect(() => { - let provider: anchor.Provider; - - try { - provider = anchor.getProvider(); - } catch { - provider = new anchor.AnchorProvider(connection, wallet, {}); - anchor.setProvider(provider); - } - - const program = new anchor.Program(idl as anchor.Idl, PROGRAM_ID); - setProgram(program); -}, []); +const initialize = useMutation({ + mutationKey: ["counter", "initialize", { cluster }], + + mutationFn: (keypair: Keypair) => + program.methods + .initialize() + .accounts({ counter: keypair.publicKey }) + .signers([keypair]) + .rpc(), + + onSuccess: signature => { + transactionToast(signature); + return accounts.refetch(); + }, + onError: () => toast.error("Failed to initialize account"), +}); ``` -Now that we've finished the Anchor setup, we can actually invoke the program's -`initialize` instruction. We'll do this inside the `onClick` function. +Just focus on the `mutationFn` which accepts a `keypair` which we'll be passing. +We are using the Anchor `MethodsBuilder` to create and send a new transaction. +Remember, Anchor can infer some of the accounts required, like the `user` and +`systemAccount` accounts. However, it can't infer the `counter` account because +we generate that dynamically, so you'll need to add it with `.accounts`. You'll +also need to add that keypair as a sign with `.signers`. Lastly, you can use +`.rpc()` to submit the transaction to the user's wallet. -First, we’ll need to generate a new `Keypair` for the new `Counter` account -since we are initializing an account for the first time. +Once the transaction goes through,we are calling `onSuccess` with the signature +and then fetching `accounts`. -Then we can use the Anchor `MethodsBuilder` to create and send a new -transaction. Remember, Anchor can infer some of the accounts required, like the -`user` and `systemAccount` accounts. However, it can't infer the `counter` -account because we generate that dynamically, so you'll need to add it with -`.accounts`. You'll also need to add that keypair as a sign with `.signers`. -Lastly, you can use `.rpc()` to submit the transaction to the user's wallet. +#### 3. `Accounts` -Once the transaction goes through, call `setUrl` with the explorer URL and then -call `setCounter`, passing in the counter account. +In the above `initialize` mutation, we are calling `accounts.refetch()`. This is +a to refresh the accounts that we have stored, every time a new account is +initialized. ```typescript -const onClick = async () => { - const sig = await program.methods - .initialize() - .accounts({ - counter: newAccount.publicKey, - user: wallet.publicKey, - systemAccount: anchor.web3.SystemProgram.programId, - }) - .signers([newAccount]) - .rpc(); - - setTransactionUrl(`https://explorer.solana.com/tx/${sig}?cluster=devnet`); - setCounter(newAccount.publicKey); -}; +const accounts = useQuery({ + queryKey: ["counter", "all", { cluster }], + queryFn: () => program.account.counter.all(), +}); ``` -#### 3. `Increment` +We now use `account` from `program` instance to get all `counter` accounts +created. This method internally calls, `getProgramAccounts`. -Next, let’s move on the the `Increment.tsx` component. Just as before, complete -the setup to create the `Program` object. In addition to calling `setProgram`, -the `useEffect` should call `refreshCount`. +#### 4. `Increment` + +Next, let’s move on the the `useCounterProgramAccount` hook. As we have earlier +already created `program` and `accounts` function in previous hook, we'll call +the hooks to access them and not redefine them. Add the following code for the initial set up: ```typescript -export const Increment: FC = ({ counter, setTransactionUrl }) => { - const [count, setCount] = useState(0) - const [program, setProgram] = useState() - const { connection } = useConnection() - const wallet = useAnchorWallet() - - useEffect(() => { - let provider: anchor.Provider - - try { - provider = anchor.getProvider() - } catch { - provider = new anchor.AnchorProvider(connection, wallet, {}) - anchor.setProvider(provider) - } - - const program = new anchor.Program(idl as anchor.Idl, PROGRAM_ID) - setProgram(program) - refreshCount(program) - }, []) +export function useCounterProgramAccount({ account }: { account: PublicKey }) { ... + + const { program, accounts } = useCounterProgram(); } + ``` Next, let’s use the Anchor `MethodsBuilder` to build a new instruction to invoke @@ -572,53 +678,41 @@ the `increment` instruction. Again, Anchor can infer the `user` account from the wallet so we only need to include the `counter` account. ```typescript -const incrementCount = async () => { - const sig = await program.methods - .increment() - .accounts({ - counter: counter, - user: wallet.publicKey, - }) - .rpc(); - - setTransactionUrl(`https://explorer.solana.com/tx/${sig}?cluster=devnet`); -}; -``` - -#### 4. Display the correct count +const incrementMutation = useMutation({ + mutationKey: ["counter", "increment", { cluster, account }], -Now that we can initialize the counter program and increment the count, we need -to get our UI to show the count stored in the counter account. + mutationFn: () => + program.methods.increment().accounts({ counter: account }).rpc(), -We'll show how to observe account changes in a future lesson, but for now we -just have a button that calls `refreshCount` so you can click it to show the new -count after each `increment` invocation. + onSuccess: tx => { + transactionToast(tx); + return accountQuery.refetch(); + }, +}); +``` -Inside `refreshCount`, let's use `program` to fetch the counter account, then -use `setCount` to set the count to the number stored on the program: +As the counter is getting updated, we'll update the counter count by calling +`accountQuery.refetch()` when the transaction is success. ```typescript -const refreshCount = async program => { - const counterAccount = await program.account.counter.fetch(counter); - setCount(counterAccount.count.toNumber()); -}; +const accountQuery = useQuery({ + queryKey: ["counter", "fetch", { cluster, account }], + queryFn: () => program.account.counter.fetch(account), +}); ``` -Super simple with Anchor! - -#### 5. Test the frontend +#### 6. Test the frontend At this point, everything should work! You can test the frontend by running -`npm run dev`. +`yarn dev`. -1. Connect your wallet and you should see the `Initialize Counter` button -2. Click the `Initialize Counter` button, and then approve the transaction -3. You should then see a link at the bottom of the screen to Solana Explorer for - the `initialize` transaction. The `Increment Counter` button, `Refresh Count` - button, and the count should also all appear. -4. Click the `Increment Counter` button, and then approve the transaction -5. Wait a few seconds and click `Refresh Count`. The count should increment on - the screen. +1. Connect your wallet and head to `Counter Program` tab +2. Click the `Create` button, and then approve the transaction +3. You should then see a link at the bottom right of the screen to Solana + Explorer for the `initialize` transaction. The `Increment` button and the + count appear. +4. Click the `Increment` button, and then approve the transaction +5. Wait a few seconds . The count should increment on the screen. ![Anchor Frontend Demo](/public/assets/courses/unboxed/anchor-frontend-demo.gif) @@ -649,11 +743,11 @@ Before building the component in the frontend, you’ll first need to: 3. Update the `programId` with the one from your new program If you need some help, feel free to -[reference this program](https://github.com/Unboxed-Software/anchor-counter-program/tree/solution-decrement). +[reference this program](https://github.com/solana-developers/anchor-ping-frontend/tree/solution-increment). Try to do this independently if you can! But if you get stuck, feel free to reference -the [solution code](https://github.com/Unboxed-Software/anchor-ping-frontend/tree/solution-decrement). +the [solution code](https://github.com/solana-developers/anchor-ping-frontend/tree/solution-decrement). Push your code to GitHub and diff --git a/public/assets/courses/unboxed/anchor-frontend-demo.gif b/public/assets/courses/unboxed/anchor-frontend-demo.gif index ab21143f506174cf49656bbd631ac917df19ecf1..6d07aca3ee3f7df70b921fde5d5f987350b3f70a 100644 GIT binary patch literal 2243723 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

#FM5#`^WtyyGCAuj;ETbTTOQe~ZcM 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

6JapgoVN6wIuck;DwF#| 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

}HIl<%31&-rTzzyKi-1bH|D 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

Z+FBX&p|M@AcV<( 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

{N2oz(w%>b+)?=oR$9b->MS#Lk-BUB;I3r3F-Iu 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

  • EBUp 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 z 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ΥIchj%?;uei8Y<%%x_rGy>92XIB5Lw$Oc!agzYqG($-c9SVh3*9t zjhQRg=peS4ft94QQOD zY<*AT+%GI*Oc&i9p<**HebyJLe)YC3zikE!t-*Z@5UDpEy0dlk+<F?UjJTr`$$;}^Xg2@*xN$&U8d zn6298Yy*BQacI2BB;r{=XU$OHI1XVCbh>y3Y6H#Wfr;+y#jN`%6&9HnuiM4>+LQ+0 zin+1qCbd{(YU{fM{S#zf;cnlbttIbfS$)BrBYWk&`kM^fm^WThPymgyC`>ycVRI=? z*FQ$`F!u_8CfInE|3#V^J~6uPfTb;gB_Rp z-aZ&wlC5wg51a6Ob6O9cx-ug>ds|n`Fh});Bw|~XOzHu$_cl zcFU0Q=34E-YA~j`cm43fZ5CEUm8+1(h;argMq%9iwD2}8?e@>QSOxqHw;}cqjn%TL z#>$U(+;kiBJXp{{KJ}LJZ^!OzgWF@4o6ENfFC;`u??emaZi?nQbN4&*%x-e=fmj@Y zwo}+Y>sSQBd_q`}Npa?ftFxx%`+P?rD+WkSaSxa?3xs5pYe!#x+9J6T6^X*SFl@?r=-0U0%R9NQn$n?c zKJ*NW!!=dSyj_2Wf4FGZZo39oU6fSschz|N!G7<9U)%c@Vb^OR8hU`v`q(Oj-eD{I z7+Fo*hM#bMj9UBQexs72qq();^Tbh^U@3!jt@JS8;({DMxkK={1@Z6;dBN}(u>cMJIfj+@&M>eE~l5YAnRmvSHePp@RQ?X&(CGzUalY<;8sB)!eX^%f{WQRsKuI zd#LtFU8VQ)8{YIEKej_>3U<9qYngi4ygbvsoZCP8zI`vV4vTweB`rY zF40$qt%KS)tQ6^beN@`_m9!7zwN^2CDa|P z9)9vsxfP=}E)CrP&a8N3U;r#Tb)5iwLA7M;T;1)VMxHpCErNE^Z{uQjx?)@*%!Sp8I#42^!w^rXUNs}>P8<<>QqO*5;S2z-ECPB7^vA4a0hftx|d34o!| zk(IwxP}s)QG+{^vq_9V9RQ^1xf2;*)<#L+-c7e`rZ9CmN(HKJn&;gV=LvtZ4GC5V_ zqSR0WIw^1!D+dU-!(}E!mpGSFMkvb=mB+r1*X=|GWjq#Vk~I8G5J2(7`OBMy-V;L~}IfStT@JpNKQ71R^m*UfVG3W1P_?Ly>SJR3TEXVso{4=SoN0$O7 z>Q!%)tm!-r9FLB~<|0byJPZUZa?|mG@&o}uCy?eLDc%(pWr<0WOek=OkeNR$Q~N?N zM9UC79|uLzP9;j9BLFI#tm)cuCYI?-O@NK1xXv0sN=mTZrI(tDQNJxj6Ad8|%Fu`< z9(;6s{5N*DW$y6MHHQ&sY83R5L4uzFuR5zg@D- zm6%RAcS6}Otp+-Au*Fo%FD&6jUGaQw?7&>S+7jxaMV*>I#0Nu5{p8f3cCL`9&X>e2 zUkSyljhCH}PI$%;X;?`M?C+8H@s7E%2cewTuO`w4F8|iTqt3hbGAETNmaI3i=0g~} zM`4o=?vO7P!59{@f9$>GxY|Z~xM8WK@)LDA_S*vZC{j@$5KjfdKmt%^N!%fNFqWQO zP8~+iukcWDc3rF`4W$ks5@ksnvcoZQ`70$rQdLnLih7-`6&pRk8|v<}5z|pw#0c6Z z35Y_?bNh9{Rza+U1BaeSyOpkQI}3v<4>K3*oiVTq8mL$y2t%6$Q1D4x5wQE!3Rl2E z(#ZwKF9~t1_c&!-Pp}3(v^{BBEKuw^FVtXf8EZk^Tk8(F)e*)c2V;9q;4juxhS184@47126 zDpVq1rL-Lcxe2o?$3ryltEVSuxaVRARnqFV=fHlL_SdQuf9s(kj3(Itd*H*cLO7>AIL%zV8)r(h7;T z35;Agk!WPMyF+-L_Ma0kpC-m4D=46vRh~|Lw=i>1dgl~cU`01LG=25bK#M=y-@WGT2a05 zJ3xFe7w@O$E`0Bsstyr26R2*xoF>FOG4h3X$@cK2Xkt;zl=L+I=%NSCA>4s1aO$n1 z4g4Pd;1j*bZ*pr%vZm_iiUL2!HYr|V9%k^|uPm!eqcjR&D*UyG0ox(!7VMsBwAmL3 z)BP^ekdnf~?S8Ijn^}Ejbim?Q7UevDLyI-S(<1MjTic__rBV zK+Ae4G!rbaprpOk=Z8 z2{|gCHvM&KbzXjs79AE~Zb}f3O>2W6vAPX3BrbI?!l(n_36+s}n_fX3zv>>r5<$pC z86pd9bn_tEIM`12owi5$Ij6Z=gcR<=@ZGNP((xK$Nz_P5`rG45^-tWN z6UNl8Hzz4+yI-J!A57T!?F1(Gibw|<4sX;OB|a0b@IMM25{rBCbhNkB!E4;;jn>#B z;xy$li=dGrh~*Kfw^F=?bIPn;E_bQ5QsS}LtR&at;9EWcNADaQ+GhECD32bbcDn$jl%*<+1g5_ z7;ENID_Kf39d@qih|fRCU@hL16f=5v$s(<}wIcp_hfrR|d{Ew6so3{f3vD!>Z9!Wl zI#X>NBfjve{#ArL<72Bzma!7Kw&x$jHe2#{tZ}?;RpK`mty^kt9AV8><5$IPhr|~J zwS((CG5VJ*WEXHX4dWP7mB=VKP;^tvDJ&ydESlbsaqSg=^W*)z4o});Twv*@wGsLWu%1F zs&iG%^NM}Tl3Ppb(l?*bG;UqsJ2-m!3;(HAaZR zT?M8%MyP)Sd~W&h{_RKVu!NMy#Yo!n3k3&}zRP5nePR-}Y8$t-+1I8obO8lEXf;~g zPo^6L(1!*Hu;LkY3f86=!hcL|1ROShF#tBoE%wc8y#%vO*$NMuQ3#df_^CBXMkc#- z7mtL}pS#x>>a;j;Fa^u@($Oel3HQ=CsG#rk8iNHu8ZHc>fqj$bu1N*>U9A)sk3GPGX)!M z7>lD`Ow1kT3+3_rmd-JqK1)d$GuaBb{8L~XKPJ2A0KGivE+L>icGc^zN*85TWYbvJ zNg;~^dohqS8x2@zOkTDKBJ+c&E5!q;XJf>-OU z;NHjU(WAhRQ9p*~`c)nBDm4V7`H1uXMY=8(7)7k0KLeOUrNEqFVroOsNk_IGSE-qOSX4Zh;TFzjt0ngKZy=88N3rq zj-Nq)goUO=Ur$M9n&Z(z(=fu4Id+@I_#n-R%Di#Jd=P=lNvYIHskr%g| z!@C@+We+^Ep^cyes;{cBo_`&`IvRLu&xx}T97_b|W&J;7-B(moU-+o&l|l$1kWi$T z(5pxj5l}__QY*SA5E?9h@!!a#MBm zVI81H0demot5Qwkk0E+HpzEr@wWFu2&{a|Ts2Ut10XL9tV`suif_%=2ubm*^Qo%s} z%pb2#wJkaoluK8S{G)(1cR(!JN$%O;sqAUAG?-hJDvitAeseUZKN0d@j9sLzmZIV6WvqZhn0@AD% zT|+V%c$^W%^$kXN01pT)lZBT--c|aNfM+Ng*TR;(5d22n&qNhb6B(6GDqGETx&7j< z&sBxYT{ccIwA?IL%(ex}!t2iS+GiI&nOCDptpXkqi+_vtLO97Sjn~9(8WP}2H>w_N41~bo*&&h@?)Q7y64gFjn z`c?MoVg1#Ae!;R!*d3PuP(zs5h6kHJoWvJCSY&ffF4DLm(t6|EUr5+v$B0nJ^C5CE z(G4-zKob;@jjBdgX+7mlDdUQGRm%wsMhaoV2Q{3xfRDB*vI+ zNYa9X#hk+xEr%QBi#K46No}Q>Cl|xTUL+YeCY^2!KNk>YF3%J|EL`NH0~^yP_%5{x zcOe5Vhi#_6{cK*zdF_kCjn=v%mPI0NGZW^Ye_}IZ;x_4Dg~#VQ70=tTIjos>C*toL zCe6v~m@$04uBAM%Vz+FQPy5B^UR|4!W|F1Des{GoYN)Ze-dWJxsX*vUz~JUhM1zOc z70C2r&6~|^vohN2Qkp0|8ZDJmwREe=*F13YuHBX5-~0n_Zs&}A%wJgCW@{o{k}p-U zyE7nDxp1YV=}S~BH3r)hZ5kMjSF~c`>3{}$wE4!p5NO~GbTA9NDN6tk`lw6Rl>CF# ziUni}%9dXjtQe8W?fpV(tBouOOzxF#DCBP{x#M;i7|0@8pbvB~59E};4Cj6aax4{6 zZ>sh?VT#8)27ikDb-&b=tDvK@XDcAJRUWsem|Ce2%^}Kn|D!5G@ZRH(tqYqyvNeO( zm0DF86ty?j9YWh3l3VvAq~%+nHIXT{Mjr?J$%wcV3QM`hij5#8sbr{zUMfVJ!Z?L~ z@>wg~T^UwMF*GO_s&9I4T_zmZ(RA%B_NenHzI%~#5l&DAy@tu@;yd-N|+ zg?93AZ6F%Oy!BI78+jeKPvvd{Ay}BtBtpF_WOt-KU(0ZW54lJg7PK~Rfv-M?l++YS zZI)e}&MLh&t@I3h+jL;(nbzTb7LngfJXP6)ywlG(Ck=lmGoh0LXtb!6M0jTFu-_Cjt({6f0`{D=#|s zlarVoCcU;#uH2upUVYaQs#&%F9N32Dx*w@5s-gFR#oR>DhkQ<2_@&jjdBqz1u!dMQm74g8>|7-5E`D=b_v3MwvCGj!59O~m;n*Y8a`Mlx6bW!-A=YL3!5C27P} zU6iIuC0w0J2Zoc`D3GI^3DKGNLW$qj^j79*V`_xa;qK&@v+3`lSFa$e?v`DAJ2N}G zH+y$%`@;9DQFGjke^;m9Z>X`f11Qyh{UCX`GH4m3=<`&FC{)KmrgetEmlYqD$yx;aaRu9aAo1h4<{L>*QLlZN>}c8bMCHBC0{CB%jF z{cZv`g%!jF4$L*RhARt?HbXkwacF-IVdhwc~%)9CIm;qz50XJxmL3>AatM|DC|C#(zmWLdl(RcdPoY z?{qpU4UTw}t*H$T1hgkLZ5x$UgPXGt!?@HCYLc$ObZ6nyGKsx5iJ=?nHZHFY11x%N zasn0aO)pmFD!yQ8R?Bt1)w?O+)Z8<_p9fQ{O4HcMX|AZ&$SaI!iDqIC36k`&59ByvKIrMxAj&i#7qb94zF^}IZ=!ZkY>Dcz3OE-F4F9y0hO0yFGUbeaU>O zc=?+a(V~}lD*EcXXctJIlXzeFPhLXT;nlA{!qZu!p8N<&FbVw@b$R_u)a95c{=Oj8 z884nQag$mR_kPxfN5{Y14zxIvIN6u@{LHn*zH26YgJw5tI1jI-n>_k^hQx@uJg_0e z(obHz6C!p*UiXhZJQMi)L9$7I5UxMPNjp^Qhp}6K+EwlJnAmGx{psob!TWs~w`0q$ zoj6(6pLN@%f2~vW+n21#qnO|~YNH2k9P+~hDb^f?**{~89S(wL?M*NYp*#Bd?0>Wi zUly4!X}gO$Al$!MT4q|e0>w^o`uJZ4pZp82{))F0^kNfGD4C*0juktdE#Vm};~C3s z*edyXw2A>Oa4f4)K+Sl3KJlwi+G|oJhj?AXQNt|_0aQueDa)~1{M4dVY2+-R{YBQ+EgY6%O#>OrHMnflevb#!bp8ykzpn5FanRQ zts&hv&_}}cm5w0@3YE(c#5;s*%p);};gN~){bzKAMHnF7Y+YVz{Iz?Ft7s1HC4c}o z(^VZ+I~X0I|LT)mY<+B{wvz~F+;gW`rUh={(})QDi>LoVk*mUfUtENd_S>=$(quw_uyf zpyIfyWi==aqCKJ}eT)#%Z+JM^eHqM_Pa5w6O+26u#0=N!#`By05oDSMQ($3y+=;40 zseYYa2HBBv-2F1~noZWh3ajSv=t>c}p3*|bv-syAq(>3mY)NjrX6I%m0NDYLSAn&%ljeEAbzQ@PQ#hqq96#?r8T4<& z6j-7K%a0zB(Hs(qP5LOTznYL#_W-E51vL5p7MvPZ5@DcKhZ>$IZjb&fIji>aOP&es zFX)TK`{aHa$_611lFuHI*9Jp*4UxbYnpYJM&*YX#O-**ew+M{GjE1F5lw-9aGRDSQ zwoA3>{jI$88wOg{8C*sgXfZ8o+2fzwewJk#R~EYCc>JyJ>c$-&{Nf3~R~cmTosQ?d zVpnHT@K*JE9y#>}pO|xd;4s553vFi*x%>ND5WL{oLtK&JyNrn?A_y}Vd zPl+{zgwoQOyg*Icn+!n>$Wca-WcKLtV>mftmWd*~Q3ns;`*{e=qQjz(2j`xM(39ARQ#-gvU^qXFm+<#$y@)7UL+gr5}Q`X+gysz;8 z%U-uScj7g(R$lzt(PEZ&!8xSbe!(^5(TSG=VJpRp9#>zzUL>T7I_kVr)xEjoQ+(;L zbHiMtRx@~&=QRMEY>Rx(DBaknMs>DwfZ$AL}cHIw@(Y@mN-K}@c zUm>mtTNnv9{{7`I9;9;JgE!aS{hPc zgd(gjKJ@JfxS7+`$69%|C7CDQ#lNp@!DaWp^-FVNvmJ%f%o>dO9oSQ&5+6R8SK|8h z`n~sw@`#ix{&yofF(eSo(whXZTR#7Dk5vpq0&t}uDijv&;x8IW!`2BvP5bDobivK? zgG+c2bCWk8OKD=H#9=;GWEX#474gHq`Bb56DYxCCJV*8y#px01MI*n)QX*m8p2ksr z+@9FL`vQQG0FWh^3PN-Sq%*wDZ;-$MaC2+_Har0D8%xoKeVyw_3*9@F*cia7NBN%T zO==T%X&?SM;;#*GdW!CnCLmMkxuF;`fWlHO768;4Jcer^Xi~*A9Y9b(F?#~zV1qMI zk)%)#C_x0W4CL@)0O8P0A#gr17mcTawM1BS-jWf|$=^5?lrIU=^oN-O_07$xB;jz= z46gvmEOb9e`(H;oZP=UpjTA{$))r}Bq{5;_T(K}eQy4+#PfuTIrZ+v;FD#?b>tnh}HoMqR_&wO;6?hPMzW(6}fTpW|Y z)xt7wbXU{R(jzbzQ>f0)D%P*)E9Vijn}EY+m{(T`e6ui=T5M-csHF(#9i_|CI&R*u z|0X^jU?R9oLg9)$MPr;NRqWbxz2NKOF4{0XF>Ho6r5d?Gg>k=KeR?T4Ur+%(p(IE} zUL!z&a_4l8;QYw~p)RCvqKVLI7x8Y!KnJuK^V01mX|oW49wnl+?D#E_fD zYP@ks6K9~ZMgYfWtT-P9za@x=3QMpl@yMLRGzg}`6jD2K{R?e)mPlzn`ec+JJ-P7^ z%i_QsCYY_R7QRKARH28ZN2_)T%pBFoW|8x}={3k1DvVhw+3WI@^o)Ogrn@7+Y8ZFGNhu(h&KR#wmT^ea+)!$eGgbg^@|%69K@=*@G~b zGeaqYb{zLEg!ZLfz(K@oFu)<8nn}^A9vDbIb#VU82t#*iy)%n9jU~&%?M%0Uz(%8o zRn0q2VZ9$!0fY%1%8R_ys?=@<@KwlfDfee81=$xAjO+{Ng!Cp0(%RF7qhD}dBcWqf z@OAE09qC>byh0m8S9C@6Ne}}n*T20F!K(9VTvGtXe@ zV!@To2~qj}bP0Rk_SBOtJ#(N>!M*Duw17#q>hu(Kx>z}&y%b^S|bV%=&-)0=!(~K5E!9v3Ze1Vu!`h` zv&YTpg6&SwmKt#d;;8eZ5NvvrK+7K913R7t1@wsU($GndMNd>BMk4W*J1cY=Gki&) z91R4VZqEB2WM4}WO(B^S-K+|G-%}%?l`qP)!J(d1<`Syr?b0jfZ$*@K6OACd*hyc$7)`0O){|AU*if=je+e{-M15Oko~B*5mif%rjRCKwpp-i=(YE^ zrjpJv4|b`<_lT}cT|(Y11fQ)Tiw9xB!TQ!2AzEC*3eI#PihK6zJ2CN%6&4_vkoULa z)Lq%w2(Bwvlgu`yxY#_mqz`gAP}my5hK#fKJHDoB@;LLmACkgbzvkHzARF7-<6=$C zUcV)@KYtG8K-7N@{Hm;sW!mY>rJyQ$mEe>)eHz$glIuSHvC&M593} zzU2*egEJb$%P?Mjp0WzcB3~!6exd!3JtCJzqmYtg`_*@9q;da=MENsC5H3VE6$%*<_kC4mR4m`-NAc@8j@exo$M zFNG>XDP=B-$eu5VvdQgR&-vbSL zqEfyTWBo<_h}@VtXf&uTJD}EeZmbX~S_F?tSuMlL7448ma9DvI8dy76^oUs$Z4@oS z@^kAqPr=1#!@MzMP%t23M~4l1@@BJwTJ9$;c%r7{Hpkc_x%I;k`GTwg@H7kyLl4`i zhh<~J@B$ci3{|m+3KO7TRi?vuv1TNbFnJ6=k0dk=xGn|={pYWE@KljD34UBJe3AaF zU6Lgh!$J*K{EBICSC~ml3g0)4!cpFf$tf(z*U+_pff_L2`s8WfETHZ<3VDf;bEO# zWQqGe*DVUM}Nwa+f=J@&4mE=0U zhB|pVE8B#-{RYSmqu4$!W3{f@kR)2Hf=R{^qtmqZzl(DwtKS31{?q>=Kw|A3kv0H8 zgb4y+B1)d3ShBC=Y#xro=DW)h#zthi!9*sT-qe5`8VS)X46`(71f~>ln7H~BkmDDT z4D?mYaIuGy+BTya@3=kD#v$|#ncB5eKVO8lkBENq4@FNz3S5*DZ>a07eqU|JsOKeVo%QqOlUC!B zy&@KQl_0BoEzPgnS2OUlM`evJ+kwXd%&l}^-!|eiqeVm4lX-s7&%i3uh|4cf(cbXN zy3gR6KVR)BrBRs%AK8DO)c8|~n_Yl|pO>QaWhT9x7U{EG?-O6Gt_9Q7Y`{sRhkF@c z;Y>5+kk!3%3-Hz?bZQ!(sQ1hGY>|@&JnGi5y=dU=7cik|<#6B;Dybi|c3E28upMUl zEmB9N>q3&5e`6%!m>1s>X~}ZB6mi0`S;MN&-nLKE64Ha`aWI&T{Jd9Ww+iw3oow9N zr7K!|QTO%5kk1zl9PCX_;FVt6pNukN8S}C(c5v%ac8t0}cW{d@>wjqmbdAGHfm&+vwDa6Sn#iUTsw>|V(Y98j4oMvTRe8SEc(&SaMVVo z$KD`Wb7$R~&~y3c2~QN%k|)ZpK+>9r&+F&wllvdf)9Wt!YkFxodY>ur);+u;w%~1W zXdK$3j7c*zjn=?A`Z)EPT54K|LVX-ceEk=U+@sGs)Ecf9`Nc#VNk@7pXvBd(;)NZx zZ@%(tu+#D_@xNW7*XR=(FrrMJ&`AyS{23{Dcfq?!OWn>-<>y6@GQQvs211`c30bg$ z2c?DBUWuHz6}bLFs4h%9*ikm6URN9HtDB<50N^v|O;>fpDCjd0TjQuUT)fuB_Jf1a zQO7V1?_dcg`ajI&W21dDT;OnRG5u1eT}ledTpnWjcCBpO2b0%Ow7nL81NN4Vy9 zN4jwWxm9N#z#i~fM72%d!RLY8LQA`o9t>srbH{`w-%fbdG1CSTc@+xR!^F{E!nU4i zMt&1{D*+uti0!YB3ijWWqATyzm;9RiMFnco%(#iG(eP_NdaP6Azoj9=5(7b%{l zb{n987=?#@fz(B}V-0p`B`)>MYm7O49*VyBLZPnJvjuYwVcB8vF+9(pzW7(VcxC3& z{$7QlpZ{S@`k%%0%n|UQ=Rli2&yGGS@k&+nu-IThF&sO(;K@w`+~5?!QYP^|top27 zAlon5CPq1YowKy+BMviOz9}LWKz@-9GE|u>9Zm@_AO3hIO>^r3a8v>Ko8|e*Dt;u~ zSjzh@Lof~DFjwuPuJY3LJG0^Y=jYhZvhkK2(Ki(Zz(5qUb`j8dGs55s`@%`br{(fT zq^8?7Ondo|#I`~akJfL-4~s89a^)@mHkGP0YEJs7GoR&un)I6KRWRz4MW;NycBqtdYSuw_FCPFhz`(U5Dp76qETZi2Q$I=^ml zCRGW{O{H$R+)-M%;VY#it6#iAQN&T6r>K_;shtgKjvUNav*EhkiOsGF;5829=AEqk zURL+_=T)^b(jnKiiGm%N<>$tvlXE4C$|T@=rlrz`&Hj2q-y8Lzj+4|R%*}8m(@AXx z`DBIN$RDq|4jN^+jAtn4*&CozS6jCU}f>cFW_^qioc(> z)VU?0@O=B|A5K@r{MyglY42KaeSU(F*=rG3)_$QTboTW^KL-5*NqJEFp_DB zxFh%WgzFQ?!@fHYAL_c@9JQ}}hkNfM*Yc+;%2}>bEAgpr^;L()v%jj=-5zfw;Il?; z#vYz^6@K#bo#U$m-(SMiYlbF1U>EQ*6(usv<37w^F)S=X{qb&CO3w)6KBBZNE6F3* zk_-rp1QqVPlKQ^2DFTqCoa@5}j6mHCfJwx|u@= zQ{O?F`aGSOI!`a=bv|?or-)x2ive@UI}5~O8@X2nS~3-J+3JhH34-3V+izFCfUnRF zrSdzU6!$PCO^Z>R{0>>*;(E?`Q$TBOP&iR(_wk4&GDdjhXq0EV*MWnT9x=^bv z+YnXpe4kJkrB$A;K*N54U5eWYsX*pQU`F<9J`R%tR{i4fG9Qad6So@={HXL-&f_UB3KZJCcz~=BW8c9 z-aKfhe)jAAw&$d+p%x3jE_XIK_POL%tSel2&-26yWZUoI`RRk5Z*L%I`jS`x|0Y3{ z>M7bk1;$FmV={RoOxWlk5%gK8A-qvmncYh&vhceI7~7n+Dv$Ix&FWQx^Db2T)lRxK$;QPP9;2N$m8U{k(h`1Z4kmS zn122F(4u-_U3|us6G9bL?w}v$WSrWy*(-h`ieo}uqBSxvMiCr_b^AN zQgV1ZiYwDd^CKJ|S#INqtt4z9wCfa4EujpQ#ES&H{jp?l>~^V48a}HW6pWnJ@rFpZ+b<(>IXw(36-rihH4$O?_S;fn> zmDdr0jn%n2iVe35vI3i$+NJ}W<9iW7EuC}bL9Hflvx3?NzfL#j@g6em^$|{s;EoBg zo57vapMNXiW>wfjy63GeJ{HbBW|)WczU6cC>wACQ&Ck!5(>QeCV`X~i;8xo+mBH12 zqfSHn`z+sv_LFX2eY|4+s`b&of9ymm7-dNuhKXkrM-ZoGh@&2%>}tll)``;NC#aVjg3uk4b`zrNx&2#H#7y?XZp{4~#O)RI@;Bis5T1*_<{ zfv78oCLu4=LkJ!Ttu%O~R5!RX=-cei@)XB|LtH6KsDHlm`w;R9L;kuVV=!( z0{z?`^;2a;7J55N5$gT@M4L_gUS(CScLMWaQ$JXz8VhC}24Mg3*f87|B{r%Q%rG@~ zcPme5?wb)q_^=~t3*?;8B7OCFvs-(}{ZiH)FO)3RSWp1`=rr6w{T7f)cmEFvsA!i+ zfv|0J7rO4fN;K7|Xy{gD}u5*X)8k*GAYTnnRS3Qo#q7(Fd` zhA|+Ho_?#JVaRM?DF`seFQ<`URz;u0Q-~=f?kYBvDu%s=#0Gn&npIZH1$J>xmRjCJ z!HR~(^vRR*X#he~mB112Jj%gsd&|~m7@SLlLPF`2odS6pvIIbb@|}dn42z{KC420s zWnQ9=!VIXa=hLvDSP^g3;nKK{rY9s}M?xDpn0-R6WSr2H;||$E$hU)lNU8xpZ4;)W z`5l$$4iO6qfN9TFrC+Lmh>pt}=+1#qR!b1EOlK3pIZ$qN1&;ra3e!s(Aw_JCu1NYgd}p*%loRMLTGI@k`* zf$o}n012i6r{VMTc#9AABe z05Dg)3*&Py5!M?wrbcvfU13&K2=4}Sq1qC)u+ z@X46N*3RCkvE^M>1D8Y4Dl?_rY>qUPO=FKU=*xacp+{g(~+8uPp6 z{~sDY-P64IfH0c%ztM2V+f6=uR2-cBf6#D?zP6Qz{|gQ8d+_1O|3<^xS4T5=l-k&< zI=tb5Rudfh1D&6qm1+dNpBd=dm=n`ZfdBoaaph&*xjfj(-;rChZ7xsJM1>= zT)o51^*k)hMJVU=??`VPPWJxCLQAbLA8*ZZxqQSMcS1iEJNw=LRN}5Od9nBc`M%w4 zpOPz|%K|>j^V@0-7X1$zF6fW=zi4=5eZOq6SA9{rTloK=;b-^nZ&qj5qm$U={wdhs zQ98HxoN|}Tyv#i#dh1JrB`&bKR^PVC&aLvCD%Aa|8Uf-L@rZHyO?^cmVypG8-_qq| zPHR(MA$P$pmfthMhhEz6;f!7IZhsN(rpL<@;T^6)CNx)Lc}S zpTwb6@$OY~f3I6(+oOpM*97*3pgSxht`;r`6gq!Og-?(2t$%j-2i2`yqJ3O#qeTiS z#M*$_>Uksks;Kq(phFAGLwXHLF9E6dwXfuF#N1g%DYo;W@*P39xWBW1E{ANt-T^%x zwL3&9&Q!eQ&>F#bma*}i@*i$e$gda?+dEqCzVJ7oy2ann)%E)Yez%e^cgoR!s@lg$ ziEy|ZW>tQ0(|qWgXiO~?Knnqo`e)#qE4K} zSD`$YNIu)7xBrg(QJ=4zBsmFFHgSYxR!wE{Zy;6bKw`iQxGGABkd#LgK(V}1Tt})k zKYoL9qc$NYHb@gXFa_kxVPaZFh35ghBUhOhB4j{?$@lt`qmGH(&^-x_q=4k;p>|PP z`=r`iiR@?}GRT*Car7xJQw|Kf@o#g@AH2Z(+|%l!k_HIUUSI;IsBrO7S@(kRgSygQ z+@{RUw)aVhgbZ$Ag8$EjkYO_Wchs{z5Od#ErQr}!w|s%0++mz} zRcacgKUp0V!%Aw<__z(x43vZuFXEA=hq{rh|BBEizyCR`mmr%L7c8^Ee@ z;EC!J9Tlfxv64rghKam30s#jmf@pe|I&)ec$NWA%?%;$*j*2G)+~glNdwIsi-&KK{ zFPlWp4X6fR-ZvA`IBd7j!J) z7uRUL?{&$qa+&r;^GrMGH}`h{W-q6rK%#PlF68Pi1K^{#Enr?Eq)(sf@ZKKfj;63b zIL}d2A}ZX%UEbQo@SA{sNm}lDgrCitz5B<($JWpNY;fFEr5{~GsI*m;6lr|seIkpty;^6U`G6+QTKb}8*31!&Z8Co{i96CX&%`vWLd+d_*1qx!ltfd0qqoQYEuFn)V zA9>CQb%a__Ns`Lm+Nmd$PV>?EK5TXD54yB3Lqu_}VQK!Kp~-E~pS1FHLjFjDp$)D8U(|%subWk{ge%|5emz&x=KNG|cFXbM@7EXDdMu3p z=GjSQV)FT>-0Uw2Iy2F5%@;2EDICF{HshZY#o&oSop_Nqz~VFOo(=q^oj@iUZlI83 zmd(3cc2Fy=MF(}KU;Fa=KE<<6;CL{cdlV8dSKD&TfA`U(#hezHWs5@uZOyp z8F$ZI+_BnA5>8xUJZ8IZc@E8kto^{6*FSdo(MDF#yO-=XnRjPiH|8cBuVYXHQzq8? zg?ElW$}?;Rrp>NP7elhZVfRf<$4(aJEM^91KOdNjnftHu&+!HpHAqXhKByM{yJ>1O zIDdQYpkDXyhC;&c`5Kjj-_%4aH%gqj$o2bb`iasb|9+3ApZnfKH8xG%uUq?GVd@t9g!FwrCfaLd zsjkJ~Uv7&I7PeE7f2_`5{PpJc=8vf-(K`;jaqAcVEKgiz`{r4wY=10Ok6;V3DlIzx z3Q71i6ZV+lFUCk5z6X8&GX3eAt>@`oR^k2gS)BTuv;NOE&hP#-nO{8lobmV1Wrj5P z+KmQ(Nj3fe6SVu!*gjYoa_Q>PA!#)2hD24|1-rybleog~LAdImeUkvEm!w|}q$++g z51b?&%d`%XBms4K6Sqx7XcckDplY6VVO$2z-Gp;Opo&2yC z_n2|oEBAJ^owlUC^L58q{}NUOKs!ydF{$(@^`3m1o3^^$8j&p{xg^$q0e3x6JFWOA z)$=GV9G-Q0GwpUExTQZmBP#Ul8FasCG_6J>Fv6#7&F7PP#*GFArGkv|XjKMUg%twK zIVdY8t7RCObgDzO@Hu~rl}+)QT1$Zs=^9M(I{+&ev#G2ZZuH1V3Q17O_;fj>KvO*` zzPQeU<}4LyXtD(6S2f8aa-At0=X2tBM`D2xE~0lvM8Bz=VHZ!t@F^t8`3XFIHcBNl zLal!)@9BI&h^NAnQq9K2JhK{$#~XPiojEaK1qaSj9MSxW1~+343(eLqXVj@5GLBHb z2dLLcflp%NZ}O<<+PY*L7%O0b2B(-@JGntWg{u;U;Wc@>F9^;TrT%3^-1Am!)hf^e z5aUEvSqw51gLW?i8xXZS3&ELq*b@gS-76sU7x|wuq&66*;y7d+4+|y-6%?H>!2zGg zASgU+oaF2VaPVQ_

    PL3^J485n=?Qpp7!~!9g^R&3rf$yY#KK2qnRuf)UZapv*mu z4H8EKuL@BDNeApAs%(KToS9hoZaZsML^*|o3c%QwQ`p?_wl4WBrXz5v3o zCntsuFO08sA>3hl`V@eFgN8B%5O-g@Y_zjO38)x64E+869)LKclw}XFY{qf!_H)ih za<&@4i+-R?DQxe(KyG+gCdJByVx^$kbYdF0t;+VB4omX}`?j;3@&N^3G5(v+Vt9ax zGcQk}*k!+JkUf3waUAO{qWM@k{E!4qp_*>cbuuYzipB6yEWBF^DU||cYU{VCz#rcG zT6EY$CP$AqKf;{(A1;3yNCDiKIDA064g(9P05vn4{(A$QO9W6rK8uVZ@(@7%dCS=| z+PY11q|i`@3;<%lQf;#f|vGy5ezO9f8K7**mCSH6aM!YWY-@<)@Yg< z)}F72qUbbK45@WR)nr>0p+!Q~z2ZZ>tKTD7&P5_?rI5T-CnUWaNrF>_`ku+-0wlyH9!BowG-VLgUj~6g zJk4S#D5@c_LbrSvU;gr)S+YISl)}t2pi;0Pg{as+_CbfL)y#u_GuWEvaE{-A>K!&z zqgLm&v~<>Gj&NPJJv@ww42Kd>@xB#4XEW$)uGb74}F=>M^tNW zb6}Ht{gA!%P!$?c4o;yW_oztWmWOb3{rT*^5j^rFv_Bym_9eA?^pnBqB#x^ySfuLk z>{H}XyCc2b%#?C|kL28l*4?gQ>w2ppJvbFoZu!Rtl$;G*wSco;wDIvl(TM8hfe$9i zntuLi+$AWeZCx>wI_;m`YFz}5aGiu>;e&CUINrz9gTbaTQ=r{UY753M)ZGr_512;g zJq2>9NTEPTTNme+FX*)J_{%Y7kpaH9*J9~|LhW^Pj*awMjwR4I#!2@agdN;4mK%7N z8R8>9!{)POpyU-FlP^BpqX4Sskojdz3~3i53*Z*5(`byZ?~XD6JktXJqh{4Tg5wu( zmt*b2-|d{UMMf(mbI+_93KsC!eQG&|g#sK5i`;jAp0s(Hzm06rqSqPy!FD51OpxyG za>uoy^D@^s+hp-fYvM+IT0}pFk2M!*_>J4Jz!f~2Cdnm6*WVE)C_T&B}2C< z7JkJ+m9n9m_?kV{b34p$A3`%cW#-Np^3$MM)*IE8u0~;{G0IcO@o^vw^458X+2vSz z9ngNr{vyI0F4_e7kVSx~YR!)YJ8Nz&tB#pxv}WTU_OHmOYX&zVWu#2)?5<8xC7 zTa{B!JEzV*n!%0%x_T(!LiTU{<91dzRom5zxf}-bw7uNjcHQR+cGJ_4+5^CaU>8K9 zB#l8*H6NAfEFwuJO9WI96}SX>^AKYmCS$}=1RmklkC}ef|9d_oO1&Yj0cU?c;m#~D zgVMsx?$J0yf*__JVWHTkdlV;;({-`ieFlK}5wvG))>JlVIPeh+g&&YXB50IBPd!ta z$1Ezsrdh{Tld4eMtA@k-sB!ee6{@4HG;NnyUOL3?OSPD!-|al~=RAY(dNUXJn0*9z zoIq(=V~kcOkW|V^Ff9x+mku*%hxzrel5gcdUwQr`4*75t>E5LNFN)RmH_o@6^;|{i zmrnLunD*RSRP^{t3Z^tA|8`#)%a^tDBNPJ$$;nNXP4VReSPr5bK)mNE^G2@9F~nNRUVHgEd=gMo z05}UDwcH}y;Z=o}w<|v4L^Kk%g@@P;@E>kRYI`He&HKyHrTc7+6uX7%-%?Z&V%e~8UvSXx;G^I7GXaDz{@s@i=GaR*QuWa; zW`H0spkP2$d&;f353qtfqYJpxJ=Ohh#uxfY@siH@v)@i<2Lz0a`>Mt zf0!Fgi^zFo#t&-9k6$%B!(1pH<%e?dtM;wB2JIs3E z(l48`#O#<!ir74b!4Z(d@!?YoF4X-c*N8I07QQdQ$C z4=gnK^UuXbD7vR4+5Fu&bu=g~6QrJ&ShWW$J)V8QpOnWR^SQbx&p*xc7Xpc9KslwI zX>|P*wi7Dd1oFreR*sX$8U-V3M%jY=p&yrCtefPE%4vx>f3IdMl3*r?d-N#wv~53Bi#ykIQ1^bKvtKNO?WKeTvPvPNzuGwhZiI&Ag1srKVeq zOG4TCs;Owbachxx3%hRpVGi**iZP$w6~ye$6+esqcDa=yug6Tzc)v+U!O{rFd10=j z1u{1E?r-*upA?E;{XFz*eZBmA5~FmO6Z&*E24?I}BMKi2C+9 zDXOmvUpt9L*k8cQ zgxu_C^&4VeFzTp{asWMt&jioNJPP2)9E7b7d>+gKJPB5xVW`--Li4~+6xlKfmq}R;XZ!l zLA}5HD*V&HStlF`oIVA~B@O|0*P7?tjujEZDaE#*f2h?vlxSfY?YWycPAyCUguC_A z-tVCH(a-Ta9gqByb57v*sE}&1N?%CzdN1b}XpR?2rZKLEQeC7_tfL1OMM&qED@xqi z9^tT&DK_V`Va9jCSKRj}*=-=Oc6#V+$UySvp@VUC=R z27i^Mf6Tx$SOI+dQ?I)c!KR)Ac`?CLMW`+k)0h8EexkZxx=!XTne8hGikSbC z3-B1X@A0;h5U)xb^b9(;nA`kxGz`ckbBaYmL{i!Th6c5RU6@yjC3K1T!GSog{Xcx& z`#;nFA3y$`Y;ztKb2h}B3OOIQIplmUhom{=5S4RYkv5yn`Ao{8ksKl+Nsil`MNvqi zoC<}clTP;C`}@=9d--0z-@jm&%kyyA>V3 z4dmTPU@XP5b&F6e5;gzZ@M@2ct-+`!t(XyHsP&6i;=-C(g(a!mI$bfMf~PV~$K%); zL;I`N_9nj|6JqA6_QAj`-Cl|_4`M3&ECL`?Pqfy@0<%rw3PQi<$)-Bf{IT?ENfibR zGv{ez+xz@VJ~Bjq($>kLdZtF-!Ac?VU=*FfR1YdY-M%^IT=o`L7qpO8qEl=|-;ee` zDh%h+sp5t%0x29jmY?_}^SX(M1icfCLG8InuGf@+gc}6T%y5+c!`!bB*?iYylyq3Of^X%!{)*jEExw{W)Sc&Jpi9&j}{_VQ$ z{wevk|4IRP>A}@M#^+kU#rJt! zs5~Lvd!S>4_?U$eAZ56#2mDyIW{Ffr#axgomjo-1^uBIQ_tpy-Rod3)vhc{a?Gbw% z&E_3z>@exC90#&$!_}Yt_P%UI z*qL(@uNwQlSCfPM5y#i#`;_8aGuz)0c>fp=2md(p{I7avW#_Pdd{m})#6?lbpk7d` zX3CSvrJw=NelDe!jMmMsZ|91I-YjZ9Q99+04QCh;dnecCARu#`GD+w7?bc=YK6zSpfvD%%cpS> zJ=5gYaO~gMRPdVtlXr&CG@Rm^&iwlz^7#p#zWcpC=Ic~U4qHy9msmTo-9@msw*t^`ogB~L;WJ};~KfojW-k=g(jR7 zxuC9WlMTtXKc$w*Xq_$YFM@4_fnP0!a%Ww9hvfa(LV zNJ~i~<6Y*U(W2zXK<3$ow6l448dRw=d`&PwrkG`hVmm+w%LRY~)r;WjkW6V`=5GSg z)&QoaW7(_PUx%i|d%+r2!I2E=oJbE0kQ!fq2j)eN^MdJXlJr<~!k7xxCb^P zWi;iI7p$g>97CjX29mGakj@gUp)S_?^0+J`nnol!&Sr$>!sDMXa#qu_|0*t`lMEZB zm!-k$Y%;1)phz!RED8iEh3Ffw06}=uEas(7Fd&E*mxTi%sO+=}; zweMc-QANPyi$TYApo;-5=iWVZC)pO8VobDw635h0Bc@oe$h@`U0nHdge)T#|_f-e?A3C995rBH68^i_((%WL5h*!#7>!5BJEhLX)l^$Y6D3^ zfnw)VNq=FE*p$nPL=7S=X^JP)#yV3f1wGG|G@q)mtj23VjlpsywE+FGv^Y(SVuCGn z9u&!dos=V9Vn7ucw7x7`9s^l@uiLtvWDN!l_Ys$Yu!%@x8go2tFIhYwHBOF#jHHCe z+WD7K)C~r{{|E4I88Wp2`kByhZueX{|Nn||5JvzSIu8!)A)`4q?>vZiG=;-3`ybG> zUF?HhDvC#+#uLXI7QxU`Cr3c)|6olFRku^ULy{!4*ONg2_ycIWmN5J>Ev|(YM}&oP z2vY-E+((vuMBm+NH13Vp?dX*gQZ(MH~?tAxDhkFxR0l9!;f$P3X*j z6|bIvBU-E=%R_g+n7s((g9ichLuqItOrHo#)EtOGaH?pj`qgQ@QG>1+Dj`-ikpSJb z(gUL~JV0c_{mu97NK9%CzJNH&oauzFP?Z$9emcv6T2dXWq1zm!(p)A90jXay$Vl z-%Ac;P=kHQ$pBce7dU|cO{#y^+c0Ts;0D5wFDeqxw!nT*jKpK0I37l)#dBLo-#27C z5c&h3TGwgVGwAeUz-@mN5x0Suzq?kUZc zs0oan2Ve0en+iiCuoc~7_iRx%b}Lrt1i-UMICK=0P)b44PbM(ZquT+qI!`Oqx$yv6 zOen3~izemI9m~m7?r#GB^1li#ne1DqY?TzH35v9;NjDHk5ir=`-2v0#1{Y$Kvp*%Ss~ zK<(a_!8$!e=m3Bmq+Ej<2!MGU3~Qgo7!+AqxyzEU&X>Gr-#`F5UNl=Q47B%L!wc4H znHuN?)}fzrAz-+VaDMdk`HCsy(y2J?>GQfe{udnd=jpnkG~^>dI6n)pEyHC+G!CVy z*8p^`$^9*wzRrL}Y`%()WuD!%N=8uA)6$R#MGqnkHkuOO0_34v@@`Ud9?^7dR4+(i zJuu`NEFji~;x!8aFksgd=kij)x!%m@sAcjfCi_{$L|fFC3?tsfg?v*_NfyeYv4*f9)?Jt)2Yx% z8(TP+6XqN4c%Taj&~Syn@4C(GT}@JB^z(bOkn^Un*S<9EP*~*XTY{?Rh2oe0S93z;r^}3&vq|k;|lH1XO_nO-^%=toPM# z174FOcna39&g?~B?1;;ks3?%i94y!+%dCcIza&}ph!)uC2No#XZ6hr=e8Du-cy1h6u?5&81(IPry|YAC=Zv0`vML-P zEsuzkS*{R5x<)C**q}lKL#}eLPR4*ud~-B9$-02S(%Ho-sd4b4>A)YDq#Q*%axfh= z&Mr&S#W;Uf1M7E^zpH>hIFK~v$zggxeEs6 zrdq>Aq5kQ2$acUvE*LW*9XyEB2^~)f?f>?=7dnAm5y1%raqIAXIzg1emSfN&m)Vb_pz+PN=aM_&P40)jz$XZ@O*E2TQOPEhP_E z4WNyyVNS!m^?RB4=(MLs+xPV>)!SVyKVWCSmc4hurAJs*O>s98!#=OU)4!PycQDL? z(mzPTYjiS@>Wcqnx!Et~w#By1r3OE38228_vMMdjNE}|N+GIt|1XmmEmQ0=F=}afj z`%X^w_Q1`R6>`c;wkvkSZpWL9Bo0jw%>JpRpY;=0lw#)F3_47x-JZHcS!UccfHy3s zEi^L=ZMeV1o4xsplUEPl=igo&=*>?UsG+Ajx`%5*9$8zY{k{~LId4llt22ZGRi6zQ zugzkcUEVCXoR7#{*o`>B&1~djI7VoRTM&Y#aw*qC!QM+ENTV2XM zj4zxfX1*KSHs7KQ|2PdDD9a0~q+wI|WEqOb_mydleIGBmv~VlZFP-?RrSWc`ii1mH zF##*lS~tp`VzbyX6X_?LPs)sf)N}WL<5Nu$a2NPjtp_prDlvm;IFb6dws4Z}2s{}&u{kqd>x(X z8VC8#=5Zd*ai`A3oxU7rRA}6v_U$f0$mc=anf^H6$A~R8RUMx)Uv?ZpFdiWuwF?+@ z5j4~>`XNmM1YeF1)`xq0#;@Rw!X5~QT!|-hp6bH*{P0}Od-1CI(vd&!ALqFnrC%Un ze&x?*yvKfbS@jRk29bErpJbaWo!F9ho7zd{cXd`oV@P)s3mR{C9d#7yP{!*dKd!U2 zO}Kgvsj7X4od7Cvz*SE>8C!l9g9$5WUOn*^iz=|8zfF_LKc{y*?BK~lHc_jq?`1-X zc~K#({6@&ljn<=(49UWfoUWHv5u|fpo48*FemQzVyf_TKBia8tQ^v+M_JcS*hx-@R zGxE(?SvRlAFlM^?mE@DvUo$Q58ZZ|08@YE$=5r54di=BM*~Mzpzeu>NcWK>4=k(&v zG2UqO*L&wozQ?_}8Q#OqD5<}C^b0O(sSFPq%v~^r%CUM?ddBj4_jy+fxy@$KJ0tZ2 zvp4(G;jg-5er^GL{j&X9@YGTnwV1)OVduUkbFea#xTE&f9ScTKTyw7&%@i{z$#g|>y$L) ze5m=)li%~r|NNn4TZ8Jq_1%HII@_l8;^$v2{1fDf-^upum&e6S46l8cm59q_&NNJ2 zQKZbQFx4UOP4LNKG6({cpT93|C%%fskcJU7y_Fx6 z_H3`?%Z%$HV$aGF9=u`2y)g@xx}p4G;+B5Q?)I+}q0iBW-dNZU@Lrr~e8tNmJW40@ zJa)@?gpVH+S{NPplEUx7gP*6PnZtsodc55EeM0_j!zr#Q}eW-4^l zm!6d#wt1Z?ea}WbSFQS>B+*LZKg9yuT_m1^TDRoH9Or)NB>w}EBB(Rb6hku|nPx)BQLyd~TAw@~L(RI0U;&5Fc6S0#yJOq%<2Ncv1MvY%VsVaMbA2;OPm>4^0I=;l0IaNBzRAN13L}Sn|<|d4mK#9Y_t} zc`RQ<$BJX;u`n;Hd7G}n1167}ddtznakb$8ei=oa88Z6KLBoxFRKS8wC%C~XML;Jl z06oUR_zWLVQ20~PG(Y-NlMvqc{C2AV@DrlC*mP=fTEPA7Q4oWJs|SK5e$)_{2))v) zIs7|bM5xZjCVAK}#|t1Rai+b{Nw0H7J!@MLG1P3FNIFowa! z8);mEAiw)-+Fc4qwFhhXN?kVb#lf{|A%oNe^@p}<8a4h5(LZX=M~`*4Ka@IiO?S@z z@GEwJQ!AUJxj`{XH$C#|v6E#wr3{ozp~uLTrI&+qBoBJGjz}nQOGWZLuOd@44_4N! z^*0dJ&qW8$19O!k-fE32riJ{=9ho4U|0Nw#@+j5xjN+=GYLif&hDjoQO~Q=N;^B}) zJ<2IueCa+JdSZ{y;pG%v+*J3a{hzn7ElvuOaSwZx&wgJYQ+u#(FC&;ArO$!nCyhqD zT=;}7GzS=3p~#pKtrrh+sG7*62S<&%y%-L+=tXLE{1Y|we{(~x*$Pet*^q<*lhb2gb3$8CBfdngpGBFS6z?gE+hc1;RVYnr&14@$^-J zPn++gDN6U3Gz7yf!_jlgzJN((9JOkfs_H&rOU=ZCi13(ouDGpo+bFKy*pR|IqLTd!OC5 z8-0I|YLZnZ{DmKu4x1=x7dA|smv1PUNK(?dqcR!h_VCtRkCNWQhRKW3F{QbGl?(<{ zo<$WrEdL)G{<7g&T-(En-6Um`HI?W8y?9vpqi4gUyW#n@{fD;?i>gkrRi;S79?C!s z48HikDLp*zg%Byfe6Ro7Q>I1x-2pu+s^M4Q)1(xL=Um zez$cow5|LX-gnHSFv7QC+T-5zJKW4&vurfi{2dW1C!K^-e=5G@byWF3+PpBbw)G`h zbygHQo2`#lZBd_Ux{ojRVy<0Ka9)^gy%&2gc+%$-?E-tMBeb}w=jvE$d1pyS{A_AW zRpXiL^DiIn>-vOEa-V)(eX6H#R+D1dBruEjynhRD&)Z$p|LelbKDX1h*NfLJZ>GH( zex}<>t@xCRC!{EuP1}Os1P0wvo$G|c(N)=vK}UUFzwX*-^PJ7|DVgtz^Ooa!U5yQS zns-;5Lda2Z*#=+wDa=#D;OCpS;1O^1>Xf(4QCV*KynRoUXP&^zSRzZx5YH~7GaK4X zFXu;u&-!K;05vRNCKUfX^}IQBj6J1LPgvzlwm>t)<^~rhj8RHqpv5HSsq%5YH5c?D zz=tQ{Q>_At^$*veQ-O>ML zcdclIe0Xs7Zwptw$Kb7h*-<~RsY*sCj~Wh%amNL?i}z77Y|FtChvWE?0C#FWC%_Z` z0%9g5)b=*m^S=wNOtQle;Mr?zsLw@={S)=DvV>n9p4ZYJ{Ya(Q#s-Q33`UCbTndow zpNt0v44Z5?}U!rx8l!5M~ty&R3b)Xbbt?HkYL%_EvWFf{4{57u(Z1m zd1v=MoXru8R8H*#@;bnqX2M2|ef1cva}k1qN0hb<1;I*IX@EBjD8qJ8R4SkAr#Du_ zdp<=8)RSu4qaq|)O3{?c#|IMw1qH4%5Q`&OZ#DND#fK$8fDqscqAmy6|D+x2XUDio zL91XH;DD3`$=@Y9NYsvqNVMh2PkZvc6#?q48DAR|Y&YCCY~|4D-=EnC6??FMpSYj= zs1e-pDF|k~kp6n5!v53tjoqsYYi4l|?Ok`{JzrQWy|>kmk&pjf3GdBnzTC@Y9i%XO;yN7{XZ!We z@j54JB0k0R|9RW5^rKMh1+n0qjwP@8$kgS~7i!5Rm?fpcbBEW0JJ@%9 zPW!liQnh)qd+mhYIVR8iB0LN02#^CTO#kIae)uvY_x?08eeTb%cVa*~KzP|4walYP zw{Nuy#N`vtd#>>pNa2K1{_%V?^eH%d3+g5ssyi3;s5s=2FWhMI@E;h+m`!b6nwuW% zzgC$@f6Mcuz@>HCNAZR|1|o=HyG}X0T2DvHNBKrzEkqf`v?>6YQ!GS4^AMIrtBJIm zL{S-%J%b}dGI-R5cxtM|st3)3Rz%xi+<5@-AeyIV5C~n-;$OKhRmz=}qKRNZ(M)`& zB~OrVfU75bcUHUtEK$TnNLh$uEU5?(dY#EJE@coPNjgB%WmV}dL^&C+fOJsMVM#Or zgb{d!Se(QHg?}9_KZ(*)#*p5j=XVe;BBdH3Tl@*K;j%sZK)^-r@Ok(D$pGOL((RBrm6 z7eCaMGq8c@zK5#Lqfzlp*{NFnn5yh_J2-Zat0LTEZHSfgjRzTguNv<>PhBstKnR+E_vNcs#hJ*BX71DMU z^-I=_I)X08ttmwZrunVP>VS}YcOCgKBx?~*0086#0PZpP#f9uJ?5bD4Y#eLSl&v=S zzKen|6e|cEc@qE)pwEeKO6ZheX04E09EyKTVz~ygIrY_*2r1eUNF{O|+T?1#ltDA4 z{^e~8Em9T+_qDb{JVH^pe32!A_r49l;IQJ9!i=OXq_+yUi^3ft7B7NTHh9Q3D>F4tet-cGOG;?V0#rx@IJYq##f;RK|Jr? zRqOxJ*ne7vUum{qK>eY~(b<`B)Jk~Uv8Irwv%D%z8Y;I3Rb>Z$7Y!VHzFI};J*__S zc5q15dH524L6iGP?b{Iv;oaG-;3W6)j;5!5>J!6F6VKEq=b9$psz3YC^lVrC`EFBi zdBhl0W0~vd&(y{#0pTf``!C#%Olx2KCq3zdF5@iey)-n`O*J~q&OJ$nD>>fRiYlHR z7oGzZ&t3S0Gu*NydCUgS{7StatGBaXzBM;jB)=-UaOlQvy-zI{eta1CLdLCxs|nJ~ znE;Sprk+~=mBAc8w<6K}CR+FmF66TTI@rXOS#jZAhU_YyUCD4Nq4_rpnl+=XcF)e< zf9Sn?PXIISa1+f^V9AS#K4XvFE=B;HOul)xWoEo&^bEy4&TI5=D^hL+}Zz;`SJW(?!Qz#kW)N zF2pkIfR>yD1`<}&bJ>LilG7$CD5k*l^X*w1oiMHsi?H$pQ~X8nsz)kTtDEI zT-!`VNSOR0DVaa(fsl5BFI+f*EB9`yz_mT;Am2xdG!MeSu^^J?vZE*gtOux83gT9U zS1ZkUi^e+eAi+ii`%6+}rHKZIQEg#$A7lzBEP-zz7Hm%h>FIDiXtUNbX~jn{F??A{ zmbK9DW6zn#>9L&V3E<-(T;6cxRfC7z6n3`eqJqqc0ck~+j59-UUhS?jU0^L#EQs_NBC1M+NiD2=^j;`s;V??(|CbD$P$)H7f z;VEWEsyGHif-N!_%i>0h3`N+MOzE3roW6?)9cd&)ID*MKmChA9WjLQ+@d#`mOExVB z-9Uoxb>fV5P9^~tFgEk9pP8bIfbT_Iq;JqX98t0+@9=I5EQ;*P%om~AsD42z0y zH2mOegdC2?q0}bLQj`exD0(fuNA7%&(&+>mLBJp)s4wk1LJ==Y*G(nk^&wzD1kmK~ zpwT9qT%vB3c4Tx!2YiAK9#!P()Wo*jXG)kbROT&=H!Z{m%WoY8K_=#j0HW}6Y>Zq6 z%L_Y*wb0+j#ZBS#8DR6jgDQyH0WOA?%Tc2lYB!LfizMUau`MbG;{Z;LUa9aV*=!R8 z33}hbB%5`P9c$uA`VTiuIFn41GTUS#yxOyDI3-1oOgAk=n=JI(9m<3DWu#Ky6IpMT zwa`Qh=?8ZD%j7ec?RsXOnR7S-O|m)CV$xjJOyq(Me!)1$GHWVt$u4JBZ^WsQ}i4oA_;i;b%E;DiRi!gAOkrAI)uNK?T3~@7; zX`#Of#vmBk|6UoDdfiO3dSnbz2V-s9C4rhJZy8RA{?#`@+UfJ15RSBcJ0)+X`Gh;{ zk=Y{9UGooRg={(xIFw`XALTPo`(ea4v88F@wK%~)iE8*_>TGhsBBR+C>Iw;a4BTj zwDL-~`U_%wfhI8B<%1i-j9$PHN5+5jAoIvrTB6MAx3{XKRU*P>6M7cZJ|CjRBE z7zX&%0hs>C;>B^U6XoEd2Vf9|Hj+1GxD5o%{E9>n7wWIB1(H|09eNP4#+){csm>%C zm)YXJq2<=#Hta1s?qeehFSQWqs-~&&5VX0T9&$*3=Plhm!~zz}hx# zA*`LVOczl(-JT#6Xq_!-82{}+>kfzi#$exY5yelO-0SjRo8B!q#ShKh7g6GqBnA$R zx08cYfI5lu+uRnjI|4m1J9)%2uP%u_JUi8eGyXwmziEzHUM9V4Z+`Q{_7jTk6N0Nr zZ(vW&Pf_@T7Sj@oRz>t`q&UlIUda_Zg(8x}E(@nT;B%mpe|~#s6q_vaq!s2Q+lkzn+ag2hC?j6@R9HZy zK;27ns9OXHHtzR0jt;3@dwg`-NJMnuD35xCb70~v&VDLHaLh1abM7vY)7U7UK>1xY z5MLK;9DDv?g|iDQk=%mjN3N(x)@WU$Ob?phEX8q^$IvZCDz!_uJ^*{hTNpAPbRjAr z63eVDi+90|v`_A-d?{6*!rM2a&i~(N_?jIFmUgHTcoOeMU{Edf9GLugb(DN2EDyCx zQcnmXq#5tdvp|Y@1Oorbg1^f7#@gi(*+m@O&nAeU=C&E#CO6#~lc{zQ6_9zo4I9v=y@*Od;CEYIq*$|C(V57+7Lsd+&Rt<{ znM0hsqYfq^G+UPagp5e*=nNFpLAhw>yJkFDGmFhhzYK4uVpoBZ9W6LFD~-;Fe2PB^ zalHN+Dih;=x#d|j{)dr4nXtLiBiTFf6^AkOp%&9lKLe@%;yTqUFxz+>6X>mvw8GcG zI!Y}I&weYf;e$@0Rt-@>Z^BNrD%6N)k#&PX)>v%i}X0bs}B+TR{492rE58+ zAK;|xsM0t^TF29ap+Z-`o9|1``WaTY%N;v7nQh+px*CbU1-H)i$${HN%o)PG@*_IL z722(xD7}H0$j$flcPqO>?%nS*3M_y0_SUCdhdlMv2abru2oX2#ZWS

    MVyt!>wP&LsyCw433bWW%)+;TPR= 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

    5B28Akhh_>kF<5A1JJPn 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

    >%1gRY}S2iK58Xs8m2 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 z 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 z

    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%0D?bO2? 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ˏj75b_JwK#^W|1m= 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

    tH%X);s!nSTxM7h7Z)P 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≺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�`aN_J+|7rN?`!Mf~Wl&8x+ zpp$ZmwjHC>-9-eL=NP34vjVVGzpyoYqZk+#9$MExgh%`u&-NgmalJwRZDpn*nf-GFS28H-n)<>vpj+KZ(@8y{>eDt)HKAeL_zM(VlD<~u z6{ldlw5Rex%Tz%(=AmmKTjZR-s3e*xOLKP)@4Tb`HQx|d16_% zaD?;eUrxfWNm%JluA2tJHPQ=!7!&2HUf?4hRc+B5ySCYgV_OIITEvt|z=3GJF^`hL zlND93Tf|DFP{*E?lo=b7lzX=Tih{{)%tKIjDktNhVNd%*)~b^?Krnz++hmFz6cfx? z)YwQO^cz~Vhbpqf0U3gl1|?xb3=@FS}(P#FOWOw9K20o^XA zjO;yIEPMgSD2;ia1;x_~EcNL?J{5qTW%yjPrUM&+CsMCCX*M-}Z+g)Az+!eW>rRnO zIgd4Q7@q0&zM(vdLVut~{BnVxBydktJwKZBfD#^MGzH#WEfeQ&7ZQ#wmc0`k2{k$3 zAH86l7L{YbHD62?4E#nxg>YCR-H<*cXxe`;pSvSYZVPStG$LYFy6&<;u2+afW?65< z=Od|h{huNqSaeSo5HeIMTtALlY;dW^+HQ%?X~tO+frW%!L;uS`rwrx3y!OPMMmui!88TPmInazsS-k9#fzB= zK7K3Wh=Mvn^cZ{b+8ZKNf+&D)H@FaXA6T2+m6w*Zj4jvOwqXE!i>f{GY=E%?@!JN*p4po%{ByLQlLZ>l1lBXhs5|)*gmhK?BvL9g>a9b7M+X} za=W2o0fK#cbrjQ5VCfbDgfd=Cogf`JjV_$Dw0J=nzGhR1x!v531vn8L? z|GJ>f{?;PLG$1yUz})ZsK+NO0OcnY-0&D}Q_*-pwqPQG>x*-TVIXTQN-jYZc92cWc z+*B{3!>oy5`7JY;L^2S_IUtAGq63V0wU-Vz;60 zRE7KrnCh1NpeT;qsbI2+on%0YIhVTeUycEkwrW-V+>|PT@+zA(sqWYqQF->8D zCbk89Fu#c9(SVP53vlX(4VnZTfY_!fkcpDpBg*F8bnnDp>$*~q&xG3;d zpLhX;UU3B!*#kk}@;B{a5kSuWn2b-+IKP*QI8GNvjJ$#~l#;muc=LU3?JK=6O521j z0dzY-!s_b-NsAEcIJBXd(kvcvN<7e`PGp6R^59U?pE%cK_MuzQ13>&`9jTj(GRP>t zADh3akD6p4k-TSH48gP;#+9v*Oj7_*G5sVghjF*R7JE_xuvq{^vgNAsW&Z)?1VL2u zi|>eEh!Y2JfKtZ*ipKztIvIdm#yF8C#uJDM9N1&eSHEC+`SUc@d*fi3YTvL=VS_p#KxyUi@le zsER5anXi>a5P^JwFe?j?5GiO)ymlA`h(m#A+^A@gEna?{Y`K80f`@?O&8H zr14BPke3DGEn7~V0oouy#ADT_0CH78&a-hif`0u65xPeb5G2aYwTVCE~1*yPD?)?xb>M*ut=_oP?@5|9j(`|xaE zO0B{q04QMNc#FW5{I@5cDZju&>^=AU5#j%M5^R9dzR15F5U>|V=_12chxSjnq*!8az_Et{gjMk0d5nj?v}H8KR?@$rGzpNJU;rv>vc~~D?8IW5q7h1-AuAsT_W&xs<|rysB>xXd$@#4K9M!)GOn#2)CIWvJ0;D`d)t-w^0RS+)Z{3{F z{};cV6Gb>l$YJSfZ`ev3iS;gcd?$x*e zbY$G6=gT5_Sa~jWeN%ip?%gC1VC^=43?QF%Oro+FG|QId72ll`{N0G*Jh`CF64|)b zDYo~Wt5`84pXnSuce8( z+&pp43G1NJVCX;?oO5-B;*`&ryM`D|ZltE8(;QcK|qB;X^(7Gar%av;lacXyTsfO2` zN=uGiEYXFyA*y)>o2Oh|BfxmwJsG zFRxQROnG<(+oxWgGl(|3rs>jH*cVM70_C$sR-_8SG$@r=js+c@&ADiSJ&4n;INMT7 zZwOGYbWpEU_Yb?crCOn0`=)4|ey1|%>Ua%6M9{Z%_d#f%T~|8mbg5&xV&FqmXJyc* zF%mn3c^jM8)#osf?I<)`L%HoRjW{yu6f=(14(e0af5|*LR$h56fV@(86j3fL8*mm; z9yb;?I+XHyrN*M~41en5r4H=D)O8w$c~QO3D3Dc=^s;TZsKTo`b;H3vak#kDsq}4B zL8G0$@N$4~#uZO|?P!Ks?wI9PW|66uvf(AmVY91@6Q!b;s-(yx)UgsaR(n&n0FhR9 zy)J;=S6WwhRbsyQ&Qcz@CD^diVKaYF)WV*f>Xp2Hks)zeAG=c}%utxS(VtOd`}@*u ztd^^4k_FB;3(B4rDhSom?#rzi>tPf(vd1oznmaLKlutZc&S-VoKfIhVA#2N7zM?eL z;>r2DwYpoBR(Gl4Ft}eIxcUm9W{=LP`uBDpJ-u+HMP6{Dg$!=5A+5%B7N!AU>8}bHZ||- zWx9B44@Tad|332E0zAZDID2rvXS2-ZcbS|AcSfW%=~<_JDIbd7HDpSM)XR`viB9b) zQ6mNph042w=dFgcjtyC6yV`3u!kx#?w-%;eFC4#2gEv;EYmM#sSn3>Fx#{re?fj#o z1KxhE*Jf8h)#>F}l5?(T|4b=nueV?7R`}*mV z-2j(Sm{+0OMsB(P^=5Cir%fq$MwVAn>2S_dSRGyHSoL1<@he&5kF9y2v&~o5#=3`1 zdIp=*Mk0Fve@Aa=-|~uLpBx_3(1JZyo-wzc)Z*yIvZ<@pFB~!_E>vrGRyHF23HWlP zJPjV{`iOu2&1I9r%|~NOZ>vCO0Y^Flnh%bFZ2p2)#>!Weg_DEMXxa{OU-+lP;wRVjpLXhr&AtSML|w3m1J6pDVp~jDs@C5sFoWPIEpC;9*~h$W1C-53u@zF7cue85kzf z&9kTue|?vZ+&v?frlT^O!jwXt8846-WU7}PG&;Uj@Tw0F3%7$;)-C| z*c^c_ju)9_|46DqdbJwW;RSCAIm;1|CkWdx;QvSx+BNVn;A-j-$!t1ulD@+y2oo9b z{-J=0R%j8sW0ohr!u*+H15Lg9^$_5z6j^#4FA{klDv)wR=sd>NAHXGX3Aom{SvSYd zyTUT&-`MyPMT})!Xtn$29T%L5QItPLBSOm1`}x^sGFmo3f+8@Eok_*@UXn`^A&D;#*o?F`@t!&^9{ z{p6dvF;8I;KAE_s98)liiROP|(d{RzEJfkvB$8$xR3se!CcaGVLJ(QTj^$7L$;-9( z)V0S5oLt3yr+#-6R5hO}u%+vYZX!e4b7s_G5?MUjk^+2>{D@}4yK9SBgV{1#+@fAC zRw(}4&M+M)j7hQir}GIu;#S1UMutqvgCM=qd%An@lmck!+{}i9!A>6(W52X8)s}_4 zY{iO3lTTh1T02+T%U>R^I0zDdSQhG^Nt9wj^!N|i^dRFts(-kF!>lhwwR^vG3=MOL zHcvVjfU&rQs#NLu>#G3KF(cbcUu`CM(11eos0Xa;9<0 zfkl#Th*LVGZe{8ZSA=n;5R`fzvy6%8?uAW%fDu&qvMh4!cnWJ)C}Sh1vaSQVY*{0=T*7Y?B{ z)tnWMZbsT@YWtxJjTe37z7R=tif5-oY{)_}IVN1Sqy-v-tjm!>zGkqX29=AHGnAbQ z2RoTdolK|>#)Rdhc-J9YC5FxK{HPHy?6HTSC17UV54e$sZMBF|41`zk%~93TwqkOu z(}Krah4KRX>w>h7mYBX652^F}+|_Is2qeD}rDW*W7{#J#-O!F9dun?v=2XyPQmmY<=zW=?9a6=rU!ZhBqo zyhwfRYQFmLaQ(Hi{u_U4ilO=ygvN-$%a&hDKGt2w#aL?1>7KuEJ^X&arVAZer{J6G$bpS)0(p74Ox%q! z&8Z24*R|DuuMHQkd2R(cy*zvfX+MBW|Ew&{4&+TdXzDlDie3+K6}HD-Ua~%V7;lgK zN}-UJzPlWSr?G_%Ktmr^H;&306gk*O4mG3_Sx1(qkxgOd|Kg9P_a0zN{WoU;A#3{9 zJ*)F7^pleKy_GTkjenVumW@;0>^Og{?3t{CnPqRoT84!vaK`W?aMm0a`yxhc+Qq{j zr8r@5AW@}k?&xjnMTu<1ppcZTrcq@*6tjB%@b_aBiiBcpI!k`(YbSi%qaymW%T!^q zV^Xp1M!Qe2i!ipS+Yx*=?o>)%V`x^$fkSKg1qHSAy?iibGfY3G^wsL;6|>tjH@8k_ zL<&j6L}zaRq0aYOOhHSk!+rV#2X^lq~$rmskA^oV#=PWzNYf8~MT?U;n~* zlc_$KxeWF3NsfEZSKpwvH@Fj&!N?JO!N4Ig=mQNWrwGG1_nX=G#_2hO)Wca{!|KktsG zSwee)4}@zD_T0<`z51o)eKD*^RB!5H%S*Q}!QY-2f8i;=I`ynH_=ZkyP#8LGYpf(T z&QlI~p-uKS7pJ;jrMC9OAa^zFx=jjjuCjm`yY7vN9J%%>{b7gjhY5mrQTEVqjMyEE zXs;uABPsV1v|Js=y$KlKn!XN(XxwpzCRM?BTb#+qLx9of3`@AOHwitA)MLN?@V+%L zJlnmn4#39^rGJ4%%etRY1!>(^z2#4?9m9>PWILIK6c%(5XkR_BB9KvVl?M|ouF`$@ zO|2>VPzJj4X4ZQt9bqf86S74-#*k51-GcGU{~+-K9Gfc={QJCIYk8(L5`GstBwN6xsc1{ z)5RqMCqepW%p?MS4E~R*+gB}nFNM8V;%xVV+(jAU@? z#o2{qwy2A=yNEii_X?X%HCTT{X*>=5+nr4~w3UN7Vp!>fod|oueNz3K45_N5iB-8V z&cc>^Zx^RAa;}th#Ao{Ex zO@E)HZOII2A6e+{wI5Ij335x%OC?6LJ7jm?C{T7Q-+8RB$!g&Plo2#~CD+(JxFEDu zG>ghXKVJy6s+5`|?vX=`_c)>RLP2H!Qnx%H9*sfMr*X@-0#x{t~48 z)?q{$dcl2_otW-olN%@WpQjbdbSJJm+0#BCC&Ai~US zZ57(vH;(uAcJ2XNo(O!yejFhg@?S#QR7VChqNa}_6#j57v;fh$JFOvdN8LW!)G=G8 zovywxC_$Jwq~(?4$$Gs&ahlY>XIy#tXTVM+wAeVqnaK*}HZ!f_dXP4WLC<`@CGKPMi|YB36%_cA!aI#uzLA3uDMpuu9pZR`Jy~s1jf!skj#j!&ro;L<(9^@~Zg(y>^!$~ov@YXPP~| z2>2#HoayS>tx&aW16jmClTJKjT< z4zqMJQt3*hAM}^%F(%ec)BPX}3fK5N1pn|GSpt)laswJkhXj4W2h}F6qv?Agw#TP% z_C<-!wJ;$^jW@i%=I2&_YznrOU-9zi^V>XgqZ3`NjZ|)BxWd2Ye8FCriKPFc(7VbUzrWAz zdWh-tKh&*hbor-+*mmZpOxJIegFFbm5|bk=oBLwgwy-w6H<7{E_VR2%DNb7|+cT~k zU|`=JkC!?A4t2VMaT8P9&%c@eY?^`#E2zjY28MW`w+nq9=J8F7t)rYWxVU=%eVFx9 zL;p-@qn^`q+><5a_AeLQql)f)cc7^{imo3p8{=Q_UoTZ;**%^veNgHs546V-0z!@4 z)|JWsNFHjk2d?-ZcxB{TV^q8ZDb#)N~+F|Ulp zfcYFbgGpU0U&=YATS7J@ngfpR1by>?F^kJc0hHOYh`l$>E^XV(uLC0icF8ZD;Nj+{ zhCLLE_KQh@J@qjIw1aQINuM@$+Rn~raSitLfz~SbKZ6v;mhBU4iSSr8Q!H~_i%T}b zxYbOb(us3~c@ozz2$0H(OD8*gq{boqvH@?aXuQZNk0YKTW-Sai?rmwZv0m+bEJ|M2!zO&0*zE;aq+1@qP`&7a?>3AhAwu0i0sX0jQ?DslCoKTA|jQw1fl#2?G zk;~{Zmaom21ZOpqESgEctZ!bW@P>7!k|&-L6lE8~p}`3vh^~WDH$Z>JuC}dRtuZb4 z=>pk$!7{OOG9*A6U@to!4U0#+cQx9+Y0e;N>R|Ga_A|PqFrYYG6J|wg3BP4(u#xX+2@|9rSggBV14UOL{*~qXX5WRf$BTL<|L&&`x?>)htXXT}JH$$kO39cehF^sg)1eV{!s$|R(76A z#pRzwC*t^$+t&i?Lamm$rr$@9*BB6w2;ddiQB^`%CQYe&?M9meJodag^5B(jDlDxt zoVAtk)WGsas0Rgb%%!zX0?_!==OzV@wkkp*rLa|O+GVYa2btpc%w zp~2blLZ`Np&Y2}-K-Jw39={wf^q>)z*$9iEq7^$OJ8E%{z8>r-hIigl5#3Uma{$#F zXlUYlDr%XZx=herut@5`3lQL3CMdC1hqDC#c2nUJ8F@urCK`{+EEZyR9=Bs-d5`#K zw(}rAZ^FjvVj1z_#VQ90_{h?}mKVh;JPRbBs9#o}5K{{M!Z^+xJnbB&uGc5C+6BWT zBU$ao<`-?9*_JLd?<36WukEIay zm_D{?G)5mZp#Mjk*AE@(fvKXwizr;uS6_Rg@}a>!r;9Zsl!Mm3<~>H67;(YOpUR>r zaEZ3a8o|&8q-Z%H8Gzh_WMk!*_BAfvu2fIYh-eWXmByVKmf;W>7bxSB8>uU+8 z18*5MD~F|PM=GL7*q(r}@b_YLY^M;YR>vhR+^XMxwphgq za7Jhpu!EvfDL{gX{+*MJE`vx#kB64y(wSXZlujYnb-uBEr_kxR;GyQnO+$}6EBZBF zMB{%A<8vw`E*U*;UKb**qrwCbSpyBwECg>r6)PR5}aMi zOplklTBnwuD@A1$9E@0=?Wk)Zt{*_$o~eB{BmQ-!T4uKWS$tcz(@dq&tyADB`~BW5 zJDW1kxGT`eI1B+fX&T3 zBlYIVP5OSL3wA~o25J;{Ou)VEY?T`?z+-R74R%r(e%1*wc4*+M(;pr`6}`|gc)@dD zSqsi|sa-?F;Sq^UEBq5~>&c-6*PsTh@hzD)fspY_WN- z1+xY7(6{ynon~(q?UbVKU_p{RueZZ2yE0EhMHXV!1!%ak^~v5Kd&PY!4;*~yw!%r5 z6}y>gyAlVFw;2akG2TixuIxT1#3R>~+r{L*0~-N>7vC?vKD>YT$EA1AoszZ>oX90T za#~tPI20SJy?mL9wl6&K+eNJ0TyOQ@xtzJ@D~?^Fh6zcdR$GeAdD8Z)PozaN!}n#Q)? zRpn2f-S`BA?olMrryt<3T5&XEhKzErwANIg%{SM!D=!Wu%&m)S1_ydNg%!v7v(m>5 z`Z6F3yDlP?^v7;rJr_6jMu6MuaxR}ieEn8M`fM*@mpgW8~VC z)g_NOh6(a(p+Apq?fbUe5-)_X16D_%!wjDV`1u%-5f;uRMP`?rGx(a{ zZ>O5ewk$02-}$+B_`W@*2x&;jD^f9*9^ds|^75vLAl@KrslYHwjrEy-5S-6@k2;3} zMTaV%b+2m_Eh~z_*whsv*Y;p&)sj-CZk2kJ7z)Ic31Gr|B5SpTGc*hFNP^FrIG7xa z*AD}nd@`T4OHOc_RjN5B5CjWy1^hB+zoRu)uS3nc}>+YRdXKhdyeEqx#nBE@pg z1?x6!A)jRkjWNR(P;hPrn;^ZJS|L@hL4~Ev>U$&zF*A{hgRzHiz?f*)*sx1l`+TKQ zFnjp`eBHVsVW0dN{^w~~naoT=p$A~%`5D(5;}l)9Tyl0cnxq+s%;i!Gt{Gn)M?TE~ z?N2p}%5?H8`luuVe@WJ`ZqC3H_IezkX|(AL3wT!3mC4qox~kSz@%^IO5V;?@dFq1P zvJGbM&FGIxeZh6tMd2%liU}XPw_FQ2Fp($`a@Gw&9rub`f$euz8D?t!&QtEYlRc?& z+w$=aBu5i>Sw{~Zix253j{Hh4!qDw9h29Duuy2ye@>fB%r!KkTd0D#;z*mTMcyrjl z#oEV)SmL0FYb>2}>s%}`yufgKE9Byz;AdJ5{T_YnfkF5$oenGNp9d&4xF<;OPlp{% zj1-6sapM>1QdmMtu5l2q6@^Ze$d!H!Vp@sasUI|VQtkB*y`c8PuBDl55}^8;N4tKG z6M}w@soNR%B15#mW0ql2hzHOUe^_t^K=LtjdY<`d%!!!9dW1>;qnf+1IXP^ov-tIi zh@$-ZQ@wN@`F$)o;-%I`cZ($&m+uGHLm6c+M`dRUg?Sm#D^jNQ^~3 zxUv#@gZIjtWOpWyB2h7ym$y);*LVDoNMM}3a?OiLl|adV23)2!+zE2u-j7lk^{F>I zuH+)F%K7PZ)rdt*`>jo;phVyPv@QHQrVw7uaXh0SLM2zfJl4 zUm?8OOl%Q0s%P5mHTkLTz@%i(xjNz?c<=0vCd7C^aG1sfni)ck#(A}yhGl(RP=FL9 zswbm+uI}4t^fzLTuqzK(pi5>Gjjc~;E~`j*VU?d+CuvXTT^P_*5r*Twk-3=e$$d|a zyWt4L#JT@`a*VS(d0ECKCuY7&Z_>A6%##;#tj77Wb@_(JG}GphUUOtIMY6~1tUD6! ze{bq`vjI7u_{C3VI3`4p^rW3fKt;CbT$%H)Fn1MM7q|;h0P=zqUSwb zNTJ$SYMNgdDkl|Xq_s|ZUvsc1E)rKY*ycc^{k4jA!>yb*7HdM-!y=;XF(J>#DkBZ$ z->yQ8F?g>UX|w$nv&9<0p%n`MeZ6CK*FA1@3Q^=&3SzF?y9kfh^#fi?+Tje(k9fMq z=kGIG%8yD>nR3cB^RG6#mX(ofq<}D&mAyL_rbzKa793rfT%%G)FGX^)p4O5O<%uL#cou8j7Hr;tpv>nwT&lh(r{yZ32zU3FZ5B35+em0 z?{9X*Yo5#pT}LfQEmep~`?!RV2(v3uWVQKc$=N;!_v#2civ)4%??~1R1ki?velwmeXhsnjwjqVjZg0@X3!^x4uO2ca^#_|l%!5ur5 zEPV)Bu#>K{bwFjB%9M)K6|?yOLVTUfmcrJeUhg>I{EDFHhC)cxPKNy)a#_=#2nTgh zW&dqmaD4xBpvEcVKnQiOhkul0vTKKRq&S=v ztTY>AX>v92F&&G$1%bG_@I4u`KXW&AtW3b1D z-tKll>J~i;+&-R`{S^yIv?DW)u=sOuo#rf*_!r@$cJi?M*~X&MPqxnK4$0j#Vd`%m zC&j+`t*y%q2nOa3*x<81$4a7d$D3j!5l163vl8ixptv1Yxu$4;;pcUwEmgq z;U@2?T)&18IZLS=1irJtd4=`qa~4SkC!S$sfA_6E#Sz!3BT6xo8xGNDV!cowFXvfl zgwQjdp!Q@PF}j7*JO3+@21qubyntT~-rIev7KTmSQBuLAy?3~9@MNhXBC_xDT%__! z^LdEy4Dqv0#jBskb?b3K@2o__XbG&+E6*cs#a~_hDsrOeZ~rSw7S7M(PxOxE{~_z% z0`=&0&r?bdaRXSw-fUW6d!njlxK^ ziii#0{n>A)Z??_aeo5AC!>>j5 zJMS4;2Yt8z9c^kZ-4K1QT%Zx$6nGKV_0DlmOXa4M3 zvy;oq0EG;i1Qxsy3|Um>w|`jSq)qYBvdTrh*2`c#Tj$Xq1pmprVY`muRti2|Oy3zI zMJ=*60jDTG__!r!fLGupNLc?1|AvVw!>gUdf2CsBdJ~k-) zP2WxiiTi7QLG>EQwGNfvxzmIbC)s_O)LA3ye9;37F7N;9+P}WMUu=0llsBLw&e8a` z(p^~A=Td23-`Lmw!TR-y`j6Q1>rV`L-`$eB7`kZ_c#*VI!MD^`Lv((bZU z1*K&MCk3j{s%u5u5(-vpHp7S@v&Ug(-BV9@hH<+Y8yrG$!# zTE}vBX4#24#m@SYU}jLIQu>O6Y2R&D@PlAJLff4clEa+ttGk=AZ(gbRM^@iS^blOk zakf(i{3X*<>%p~%>Thlyatk9V67^PdIOn?7 zTQlc(eW*0?&UEpIa3zg$^M;I9!`H|3vEZ^)1G7ADmkyE}pAx7wZg{QJu;mF}o=sH-S#R8`Nlro|O<$Q46z#hP|L_&M4D zb*scZ6qy}`HdUyj`3SAsEg9$f9Yn?J=C+_`9hJ{u+iFc0-5xGfSKZfk8IXxtx&Qwl zv<74S_G1IyV}r-W{)f<}j`82!NafgQ%h>5Y=SPvFW}Rc>24jlb8tk8A6DrRq4W7UJ zA42QVi&pBMA4^(xvud(u1wDTT9c0)2AB1+{`P-J~lM6Vj)%+&3PBD`Bq~!UTzbcKC z1E0|2pHjz{|A)|yue6M>{vU+)>%#c|5L#a9_`UxjvPEkjkbD?&}>qFa%S2`R~|Equ7_mX)jG~yfm$PY1aDEeDI~k)Jx07msXoEtzq7U z3&rSv0=B9++#+osZ&{v+e_)7t<&^fy`Nk`ks#mV9uiP$qqyJpH%ki#Q_C63xg55z8 zJ-zY!4k_;|L~tu4W?$royOgrLZT2zztELXOP6ZB5`C^Qr|1wuE0v4i^hZbdg-iY~x zdilK>xm)W~H#QX(J6#85xI0V}7X_T_eT|>%AC*V_2lJK1`qs~~cf@DTNEqWbryXE^ zolO8zbtW#>@4ep4X-m?toCC2(W}+|6T%4MDTg-mc^0K@(>tg^rDc_I5n7QENgY22P z{APw8%PHlsllGB-52HAnnYskhO7BeiBInW@e{|*yKAe=J>YMnFlj{(0)-s?DIa@F& zb8T?4=*H|VUe#=I>+J2p*^;T*J2z&PC49Cl{BA}S<}A*Z8_rcY%vJi#Rb81)o5~cw zG^eo{(2ky~rv+3G&ecuL)i2IH+?>PSnafh;WM7)S`fsk;;dP78>(QVE; zmh;d4dA3{nMV5@>KWLuSd||LHUyUM4Bry11eBt|Y1d^7@zbFQ(i4F%=Ks7ZE_cRar z9Eo8B*P}!a&%En7a^e*SF*yIhVIKBozKr0WGO0OOSC?uwJ`q*71UoXk_zbu>zntd! zxbm(OFQTpkHu@RkDx~F$Rhh2sarjzwcXaY-m*LTmZw^qWf(D;Ic-VOqJ$z@==iT3) zw<1iCG5J1|^^W%@g~@^ZrCre@LR4zCJDX^b17^m0w z(yC2)*-SGtfj=HA3jttZ>Tp{Qj6$a4GeW}JQ()tFHbvmxCUmXk)DS9N4}eAThCkS2 z;ozcF7cAYJ3_tB)Ng+beWO!GjqW$q^tGLBssh^`yX2ZHsy=z~n%x z{c@@$z%MZlj|N}|907_tR~y4o>gsW7q? z-4Xz9NW#$^i21`13X5(JAPmTFrsa=53jI_YhdLey4bOFG`j=S)?j33ZnM;NiOTr!K z^pK2W;Q)+cf>4R3ro>S_`F)Hga0?>jT3e_wCj!j?d1K)u(gMN+UM+MI0MeRsPuK!5 z71n1FPMSSH#cr)KzCpuqz~eA@coEd>aWduMu`nPsS1092G}V${FMf2v91BPAyU3ld zpNn4NH!nsnFM2xy;Y^wfCxtZrCB%8@`hlfpD{fC19Lh;KLQE@&qXtvMJ3HUL!ymmD zcdCki=#3A9XGqrl63{7u=Ef}^;So-r+5Kpz5E`ry7H$%nF#XA#eB8+~<;mMHS!#H0 z;Ryq&lMcJ#6Q`DY-=-BkhB(0&%uNuayQ%#8YcsXu6e_)=jTYDTF@*R%m;)*izx-HH9c+@^J@8{>L&x&>tZ<1dsMle>emQuZ4JX zKc5}{Cc<4!$bI|i@;61rEbr^z?uSwJH`RFZV3ndqJP}eedHnCKHMG?yE$0m^<19M= zu2L(&Z|ah~t4rbVzfcXz|#d-^`{}tl)~!c1`JTO z-VYI9Z$T_b77G#~h)CXS14*_~4UbbqNMuRhQuJF}JW>GZU*@-o zgxyrDQ~mG#~Z*<7DUO5>$C*~Ib7q0zZWwm4ZR{I+0|7W#p`&Ym3ONTZDQEVH_2a_c5|FhbaMOEbOvKIWq zxRSKJh@*dQrY#QNB;dnN{Ap0>y`~kiGC$H>^Wv@$58oK@GK`%Rcxc7_!g`I@om0P@ zFS)id4ym}@2n(2Ps+zn{_Bjd~IV%|O5ZrL=xn{w~nI!wvX|&s;Q%7Vqpof{d1c$dt zm;a+98}SH?3|Ls}=vaFrQ9iEpVdje3#tSUZmP7jCk^xI`LWTxVZaqwsOHEDPiVTM3 zB}M414&<1+${3X%^4|*VeDwXD03wmYfUG|m8ZHn{MazBSTkXZ)?Vk^UPbA}g!+F~O zYSN_Cb}2k|*QbLA$G{cXh*yKQTi@0`zLqHHFaP)VSL`ym+&&fY2Pl*TLm?RY+lYDC z@^yit0P5QWl%qQSpn|u0A6)9x+CjS9S!XO=A%pNf<89C0K$`H?cCReWw&n6ri6N;G-F zL(gP=Wu7^;`t=c)uJx_`V#Muz9n0Y34;@#lSHE?w4V^spXk+^1>2l=gUgiABiNx(&!+s98~*siVuHt(;#1+2^Z__k)Ap z+n>G4u(3Jo{lFgePtK}&ql9b|(G_wv+Ps^P74)$B$2b=H=Gce@W=jq-Q7<{qz#o@O z76@u{EPlo-+R}|fOb#_4{d##{E2mRN{AgX}sg_OalBSZ)|Bl?Z`1MTwuXOb=V7>ga zzsQG|bMz+d-w)zUWKvjsvc%!CcV~Iah}jQgra~POXr5TVh}*G;e?FC*-W3*C2qO7O z_sN|b(=ly7&yG-Od2GwZ=C28(R2b2Bj$-S4e_E?V&;GTBj_39r7w1ONzD&1{w;e@E zH+G*25_<9XxH{pxDtb!TzV*w?3ZUQmk+Om9H0zngKWhSOZFY4!fVA`HNgy_HUO++j z?;rcCYnN>5(nvdr-^7N$Z>Z&qU$@bJkU%^tQz_l6D-ijtA7yj)H=r|%6A2^(Q7Sm_ zQ_D}fR|U(Eo62C3Rw5>BD+R?P(K#Q96N%N?C6@AVfPT!*+l8}Boq3ZU#F;! zvlZ9oy3*{I6m1C*t>znP2SY&@yv#FUqtU51Gu@1N&h`csUcC{Asm0TETth`Fu>2)i z`iVWDE{f05<1pk`Sx!pH=^`@S+&gPIH5Tvw2q&OY1!Oa9BB6S`bkm*wQki>{BTP>? zG?F5Gt=$eS<1-}H4ZZ~aW2d#iMw;$ah(v86PRUT9;>2Dgfef)Bkv-L8@X}|a-wIl< zBMc;$kqT*Gl+~F`Yl9Dp4Wu%e90oiWB>)QyvQd_y+)cU|9H*6GqjjtoE{>Iem-_bw z=|Q}eP4*)`*?>?@W&?SSH>yhWA*dW2^p=_ru0i&Jd*C`j{bF$K5we|@&Y4%%-O2SQ z!ux|>171exb;YK9hiUD#taODkjA-k!DuXeRJNi?x9v7kP%a~GbmnbjIxaWFh4PndK zABK--nR3tMA{GGIuh=07XH6c$8$sWfGJVtyR<9z zR0!w|b%-eL_d=}u2Xs?BL-->0;L>Aq=NezaG-8AGk*OlE&r8-I&9_OYRHQD`O?sLc z7)Gv;YPv?1n!S)})JGH&iyCmhnQuwseiDnw*Al0rQrwslsF8432y7B2RqK5rYG+`t zlorBNF1EbzYv10Z6G&NqhDa%PKtydW&3CMYzlGm#P4^eYy!OV0*4~Bf;@(>$ztl#A zJ7~?3Q)?sq`*{p?6w)T6cK4%D{T76#vXd#g3N!BG2R6}N&^F(^dQSfp@6|+a)B^Eo zl-x;=*hoJk|E+q*dS>R8?P*`_GMJWs!jMPcgp0c%9ln& zBqLb94}e(^CxoC#JKQfK#KHh{0Z4CvvQ0&POOG%~nh0 z^O2{Xnwmr4jTMKR?f#_&z+{0*oy+nV>ht6yG~t{9|FppgF|)WUSzF5)dEC6o!5A zvVRJiHqYf(UE3*B)Wf)t1v<6r%vP=azjMF z@_}_W21>;|WeD(T@kj`D;}I;JCCtkw?Y$}$Pr#D7aaF$9Xg}Ji8i+3w`Zn}Dgmw}l z68ZRy$A=iS1{rdSjk(YWZD7L)wG?%%yb2SpzIayh7eajv70Epl1|&*5cvqaKjF6#r zs)z`J{aLP`QmCgR?6~f7N<=;!PlQrpp-nZZj+=5wB-Pe&l-3kc-QKF4D!1gW2i zY=xHpL^arjIFl?IaDt9hd-EC!i32+U1nc6U4J6Bib%gcS8Szjr+uy?Jo5F`ey{CAM zV7E1264ycW_n9N)%urG&F3dW^(0fWhbfz%C;kfI_nsAkgH&{0`(2%05EIzn)T9Sn3 zbDhfslrVtWPM6>SLZ{Y%E=E!=5y7AW*O&+mW|B}aB$ObIB!#otm_aq!F%aBiErQ(| zu?Gp?8%>*v2YWEC@VNX2d0{-~Wb9sS>)Od~Nx{`E+0baAu6Q8^R$h`z=dl9RKUsM9 zLy}njVZ>B*EL~y>)>r@o#X$+wXwCF!5`lb$3+0J30(sI$H7U@&nXFR%t8=qyx<7it}eJ9PB=vBR-ZVmGYL zgqntuq23j?QZR_=G!k>qR?-2wN>PyH`UQv;L{hJ5F3>;!K)A8tsq8$zKUWp@$o^B$ zw~LW&Q-&t70&=P@qCa~VosXG$g_}|_iM!|V>ex++ACcW_kPdM`V~ZrYpwdQ=I{~|& zbZ|CSZlbCv^Ij2n9qi5p?Y)leg_9s4QW6$c?zM-WvS%2orbRNCrx*_EhkOly9u#>rZOkRzMD|v-`U*S`@*^}!#12!DTRH2^WfGJH~a6#1euA8v&_cFl}RldkNrNNcu8>bEwU zyu-`)bl6lKPt`dPq8!{Of3dfCC&Y4g!?=qA7OcSYQIh=6MY+-k4VWO0CWyd!?1#mJ z|5T2Co|47bT4B8noA4z?B8Jj-g!heLc(HtZ^(9Zh>#Lp27q9Y}b=`g2W+e-Elsk>v zD&*(RK)?2?>aLV4ido^YerP}9#fm##UKd}#zZ)J~(tqM&gT9J}YlWJt;lDowG}wwB zVx<-hjmSTAp%-@+a=5er?5n4F=^EIm!gB4FQb;G>m8IxPsBz7Qm=bH^U2EdZYD~F` zDSs3_S*A(iwRb8^&+TQzc^au)z)+FL4%Bo{}IPfyJ0&b=h?VA`jGG-j`pmew17<*jNn#-P`}ZzWU6Ac1=a? zkA_Gabt$5<$5oYY8p^$gO{?BNELhi$k6ibgY@w$y~L>hV9Dt?_JxBDJQzt$jwMg9g86a$;o{wfK- z*5BLJr2V={=WkQnB$IHvK|in=&$DST>QZWHYA(9k{2{s7IJJ4=s#Zszh<&!!8_$-4 zGcDyGno%FLpPb$2F01Ki-s+p!>VLb{KC#i_b?ec;t=N=S^V_ZDM9pJvTF3ut9_VU| zeBE~HZ(FqNqs_yrX9FLdSv88g{V39nuZ3z}`1?pZThmgoJ@sUhvR8XX;-k>pr75@D zb06UDq}FCkHeOFOHuvgaW_1+1VXtneUe!~8c`_mE9eIZcd4lR&u6yyTstU5wmD`Hdy*2AT6&GbWTar{bd@8(v}R*kihRJe zs)a;s#Qpn#Y|#XzO3Vb?Y_2dBh`nC94~Q=T1Q8xXcVEchmuOTbgBFj$*#T84Z+Zm!i;IxXs65`;n zVrlj<+<$uFgu17Vybp$WD%>=`QY0AE$HqLx@rml}41QM>3oxRB0xWva0C0Ctyb&W# zBnJ>>fJOPhHgj~Q#X{oeU`jtA)7^b#9m=`6;8)J~Bi_g(i!2RQ-dvo__pji_S zfb>y8gq{(wZk#g<(zh1=?29s&guaZxTwCLh!IA=)Lcj8nsW@~67a2+fU872{aoKE! za19fYiW}iD`M2fgY^)=Xi(Df>QyIdmFiaNb5J_s2!T65#G z=STLuG7FyLk%jxn!pmc5zBs(Z&Lu~#CHDrSr=lw^YlTS7(=5yeX&a z*N7mC@PGV^<@vM50!)K``)7FthfW26>1V(o32tu{H~LlCOl5+>N@A1m*Bhejb+EVK z!V|hs*a0kaMrcry(;vEcdtT@QfOvbjV**;3tytb*S@-m z=L*9Vz(F%Y8<8J*q{Tr3ltB=fu6x^u^KZhT6CQ&}az%ss_5>pG+M4Cy51@}AV1F6< zl=|LHs8Q5%2KpWeyNs@23Q1xoxGZ$w+KFFWID`0#mk)VL3>wRatpSNfj9>^wI3OQc z3SVhV8#iJG7BhrR0Z=H38^c7%99t@8z%?DA*Kkvk&z*O*Ulil!&`cON|2>q3QO<>P zqJ_A?D+nGP-2>aEVi>qya4&GZTWH7!y|flC%IHo6gxM^#IDld^f{N`ygVgy5=Efk9 z$QuG`c&x*V-e{=84<287#w}|BnB-8gd6kK4gsDF_X9f=_ZS1U85KxW>kQ<0_Q>u`) z2NKPNFWY~}ndbB8FX%?7K&H^WPzX045fE3UrS_2*fLUs z3;S>?C!Bcf@Ll_R1wX1~aSueo!4qpoM4#8))vWadMzk^TtO4Qet4 zGg%{D1cBnzu1AaNwE#+632N7nagE8ZMRKbvK}NC3q4~&A(zp}@ag6{)GvI4O=At`5 zVE&R9W@rA~&)sfW?Gj=b$_b@1i~$d4EKpJw9w&D{7i=MF*Vza~RbQ?nrtnO$kZ%SW z#3HIq(RUH>1qP!2FaKu~cBuzm5QQy61B3nSzZXW)9v~o}*P&%nmIIhzumFI|U;F-_ z4Gj(xHBh$!rz9bz2t+EQ%qB}z-Z^#aMemawtd{FV5>_QSPh_8h0cUd2tw=X?yfWbB zCyx@-*l!E7FP9FMsA(4wiu(E{5Kd_dt!v+FU)I3w)T26o-h;t?@~We^_Yb_f$7?s* zBpIb$!S34^A3gF@F^}m%8?V>64oX9y6$WDbnGGX_qUz4k?3vJ~*+O2O+6heV)4_fC zZ)v7d%!N#GAw3*ul4AEHasNxzBXd7byt?P}_gHbC{alh-hUg|Q;(8paq7n00^0oKp zQ(_M(da;7$CQ%)cT{1y}LFXgq9(er7-8~z#P{{FuC}3oMF6Lbp)LZ_xRUY&6^Hjs} z2D7MFZBdJQrBCGc?%bT>X{2l3xa>B2SBz;{O7_YozS^D~@497Ww`PM>z8-A|3BCHj z>aWnT(^l`+ZZr1^Y8qrT2`iT%l{0>hGVLV;W7Zv{LN*9P3}3l34T!VHw4FqGWyIz} z9F<$D5W8@uRr)mA{jti4m<<>8itAU29KzUVE$!xkN!5K_KR4V6z4IgW8vn;?e_1&) zs+)OE?1}L^?{f#tR$G1?u=w%n+(E0qKYtt~LL_2Hwt|K~Nj!TopBPU^+4?WmPRci8 zCSUbUUh{C(pNjFirTtuA!!%IT^FG1t-+eDHFP|yzJHD}-KK>y$Vto<>0S}bZ&}Y zL!7vIW9D$vRfYstrxZp0ndJ9GHg;mGDG$-s!N&0m4h9~WY( zqnP4m>BP z$;NHHzqJ6C3eM8<^$*V0pDrTj82{S(c!pLYb?mB}(Vt`2y?hfw3;!5y{HNe_dE;r} zNh_1El5>TB#^nk|AKg0_C3)e{o$Slh*G0*>O-p~`6t+*);s-iHctuy*wj=7Ar!Sm* z*!8P(+4+fNVq{b6bmr>RhR5`0jWb~f_I=PUkvw(gv*7Pj-9M%iPd{EgWx&}#kv+PP zzHZr6(``hBjxY&%v3c`BNotmeHdEJ)y zz|%bgMJ_jcK2TC({%uO7m)v>g8MV^G+IQT{$GgE%{_T^G=ig~06rXx3@A&4%ab36K zt2Mi-t0^}x8!n}3umAd*ke>Ocxan!;#f=1>{NJBdijOa)7(DYlq24Q8`f7bf@txNC zY1{vjwi@?e9P0n?yDiST&E`ey?~^xnFD?<`q7CtLfeNs9PBu4jYwm(MT;3m?e~+-^ znp+c|BH*EZ+sA`&Nyfmd(Lh{z{Eiy6Zy0)<`56v*$*ktdv7Wb%m0jqp=v0z{m(a`~Gz@xDX2t&Fp)b_q}ddw#0uTGZQ7^ z_g2ifvqUpfdgrD))2Cc#uGTBw)HO&m^`7a4GuA);$oqDOtD;q5NB-)2;AXZet?qkz z!zYDLMT?1XDi<#pQz)SiVO@o5;ko$HUU~NbdR@34)P6$6+g7~%q101Vdlyh)#I0mQ zWQ~@4!a*UVr)mu&E&tkIgs5oasLOR)QuvpHZv2kDPyUUj`(0>QJ6_9(Q=!JbDG|v+ ze}Tg4$|fUn_ffU}VX2{u8+Iz9p&oaWvy!+F#ce9wcRS;T_hIs7w6o12oGmTWA7?D4 z3vw{CM_wd4>~|Mfw*E%V!~Pu8aLHVT zt+s|o7Gk6CMdZc_^{e+n*R`ps=3nrL#LuFrR`2e+;x2c@f{(wCyb2McmMfm(^vkGG zzy@D}#iJXk%5i59mK?6ofqf9sxJE$*lb=GhMfONyqoB$F+}YH>-`|r0;Xenf3uS`z zxA^1VFTEJP38=(QrdwLD;5D2<$(0K;ddn0+;ph|su>j0NVS_QX@pVM$=&ZL=gYXLM zkcBR%vRjpR&w~W-kDjz0O)w{NynvJjL#W8p^#bO*_Hocywy{6pJxAjzKyTCV^#Db5! z8c4`?rv?Wl2>xSzwU#TeON>bY&U4dc`CV{w)l@7o%`xFzctKpzp7bTDG{+PA0?ND) z%s>9bmSF>U5KZ^3*^kO^d&0pb5cw|FQ_rR!%zv?fz;U*}(kajUlTCt`i637XalqDXL?E7^to3X8yF8Y4 zBA!}_US<=@Fu@`jXVb9P-#ZCCd?RYhvQu1IixaZTCqdo8Z^r!7sk&xM^E>?tHPj3% z^wpry1J}LLMNmg*&_Yk$9Gr)1b1FBttT}mzjNuOV`R?kXvK6rM?ByXdEDjwlXIj5( zl79bE^G5}(d+v|FdAk9{6&LkcBT!=U_4PAofFv!jhJ}NQARgg5dg(g1&iUJ1h3S9C zLj#tdTFvONm-tupm2b0(;q2pR1&rx4T3rP6{sA)!rFb55G2GfNLJYwNoLZ2?eHU}Gex zO-$X`nI>11dW4wLLj-#ObuFW1o>DM_Xh^S2+L2n;z9MMbk2XUSm{YB)ffQJf3$o>+ z#0Y9m(NGU{h#(ufYX=ys)9w9JcDBt28}Gh7Q2^)h4u z6z^z=2)G4HEvWBatJ%BS5DTdLgL`j^^f$0`n5+W7Il+r_+1ZoE73^%eKUsGhEuOQ{ zbJPq7_`Y#*e;rOVKOV4MMno?EkGHNH7DTVu8t7*0uAqk2pFHnSN@3Ctjb$1^tBjy_ z5y@FhsH)hFJCQT*oXuBV zBROrMC?U_fYr`k3Z!$}MrIb7usrBs^cob0V2=1?-KFDm(HvS+gBrRlrwW44puNsiJ zRa;e7o9|<0O@P*LGO}xM`z1uw%Zu(s)rp}s22UtevneG~eVOOv9%{{I@|qb{(q~kp zL5_kVDtD#ibY@lW5&QUyHSKQBk_mikqVg8mrKnxyVRQu}OI|~SRjNKTLsgZW815{( zvd4DBKp?kyxy+^PBdEey1K;HPpb$LbF$EXuytzWfC=zs9V6+7x0 zx#8NVBCjLo)|^`8XW`a5zo*;Z?NMY=oBcKBMYm3s{Pyl^kKd1U&$~VT;`U@mlJ-YJ zWkSN-_1SfcGCfVqK+xF0MJde-?!y<|X$9_6YbAZ|VzMOH=kxC4U)*2pxU)jvcV-Js|bob&oDi7>v3+p!n5&&z^GW zz3T^xGn_vY72QWmOPLA+ng$t3*rA@19SuO*qD#(KcBW#st$s@m+*YlqBd##J> z%sP-KRVtVkkc6xsV(Ol~;*bPkXsesqVRi|QrtA#4iJeSZ21^Z3Gz^cF7GH@nvyM{P ztAY`sPI$`P@C?6LwIe>z;N0&bT8X7ngS%@Eeq?9Z4nal^ma`0bmy~X_Ffoo1WAaC? zSZKO&Xs(_jV54vW=lDz=zM_k4-Nz45Z9SEQTFW*mHIR^+@WT#2ek}HQ?8(vI^_aAGC-H0i+OZ`wTMWSFSc?#x|Ma zqu*kL>nV25X|7vS|NVpA^ar6?RO~W6&bjS+Q^xfOr*Io8g4xm4K5!0M7k7agLQVf& zoN5o1;A61{TqLn1BNz*ZI%l6^`$peE$_3QQ^|qQ?h$5-eoCK=NGW|l8pNa|M(gol` z?2`({j5zh7Aq(Dl&d>g5UZF{{GB6eBBW%`sP0l2hXSbF9ADdptfm8mas}pG{Bx6~1 z$i-nTeozd{fn?o=Qru{kCiI{dzkY2ojNcil856lBNeBBK@_4Ea1k`sp4IbNPbYxA9B+HcGIVt zYL^^>HIgNQ!&v{zt6g533n9Zv+-VmMM1|3gTtIZBwR@VRA7N5G$?$0B`bPqMy*mA% zf3iy2%k--3jIRgG|B+JG;HUlR-fVhkd}baCo{bE+=sy=i+)rtL5T^zIbK!9MMw=zs z$bgFQ_D|o95WwnZDEGr}S|WHY6)8zrx^fpJz6kpFY*R_|8~gC|(jy34|Mad!{lAll z_~dkcnvb#!k1m3)VA^t?-L%Yaisgsh@(+8np%;sw-fYATOT82pyzdA?xMDVmol>L9 zoSTCsIzMoafErPg9mD5G9P&mliEMiNr?C8QI>TB;d$r(#RK)1V z03qM%b-hkKVBY7oV3-NQmx)&q0P;&54eA?Zo# z@bGv&C>6moRu>XiPw}NDTg#I_tCRPbl8abrq1^c-fBJvaRLf1200(k08WQUUO*EnS zi)9OcdLPFDgHIZJuo1HU>A}R5pRsjvz3@mTZNu=b9ujN#h61qW{IcUC{bj&i6i)QuZ+2q~EI zGY}~nDn^Ej6+y=@JiKt>s8ll`cmP_b|6Y!^bj}1JIRIC7Q&WZ@8dgk{G~T)EKzQ#| zuLiRr{$_OB#J91G6gl?WhjwZ93=3s3xEVt)M+XwduCZikg^{TC{74}Y5#xL~2Lh82 z1f^P~+pDL<`s=`@U@=8d3KIwmM}#|r8ZPl)nDG3Q=|{kLpsA{QKj{>r8QVS(;p!+2eCv`ijbeEC{ z$vWJSNwu#ASjf*7i*@1@V-vbGkFw$O#@heiLgu_^R2pc zQ58)9?K%7MwXc7xq~N*9{Gy-0!LQQuCc_+d)nZ02w(PWmE|zi@^*iMX_J)eWva)w^kU0{7?Anw`)VkvOOC|Z-$ruGJgV+zk7NzDqT)N=!&u|W`zDz zcv0%b#GgBxvtMLioU&{@^DF2e?#0AVS=s4IY~GIJM1azu=O9m0k%858O8;59s#Yx* z>UA&t95w=Hgn3%1{=?k*-0z8r4H1!{XB)S|f1H}nyBhiAPyV^044NT=?IPoY1jkrD zy2bs2+BRbR*2uPga_(QpHwE4q;pqHLkqzJVvq|U?=e_dLO1bY%@0iz|-gTB!d2|j4 zpm~YVY=VV;r#J^5za|p>op|BLL;-d0_aTx+Y^{qR${(bQg-EI2l^}u$IW#E@DCBE( zlRrrBNY&}&f37Ar>bJLv zaa`evGrIvH;m-79gk*ht&?Q@17huypd@%fs>Ls&|=}&n)?Q(#SCW$i9ur--HwCW3G zP=l)g^ug>34PP|>0Z4nw*>nuGk9xKt9xHcpL2xGDvd}02Zh6eoYSnMCcT~0j!~hy z;c21NZ9gtObnCzR-4v@E+o9Z#|M}Ams5BybyXy3I6njO&Fxi)Y6b(;Ry1^eZruxOF zS%s$fhQp*-7dm+9uKskt_P>?qPu=mmCEgBkYKQDPR7BOLMmeX2olf({PPXq&HK>I< zbLo~I^cOrx@9DH-Tj^08c$CzIYmr~0sHr^unJP$X+j{w;`moo{TKbFh?aG62-CFp; z;g2s5!cI{${kGB#oFU2#y%Z{FacM<|3ct@o1Z*LKw$c~)(jNhw!VQ^akBnMNS4P`- zaM!U^njGi@wzEWD@W?s58XVhOH}#@cermj`Jydh3K4MdIy6*6!h@SO4Y_Y6@b}AAS!jO_ufy>ZnKNgLg6&}gg z``(+h?iRFBGH|6OKXMJ`vi#S14f}3K1>e7Au!6~T(v9A8PJ8=BveaG31L+e}_d^*^ z&brk3Yny!K78A(cAHvrELp}>S{_WNob?6kXf!q{d|K9N^)=@#c_7AJZ6$`n35ApMlRZQOZ>P zrWTm+jK5iib|{M;uudu<+XoVeN_&nv))7G`qPbAW6$2R~5>k!5Obc+Vq}bcuswXB( zk%lQy0m5#q)RhPIWKIArgJ%O4P$-^(IYhv&s-j86i9!(?v9VYrT25E_7B9a|4Mi^t zS1P@<{bw(OcGTy3x;>pB2~FQsPDU#1==UM*cYkDRUl9)r&k=XVotwUlXyaRagX30?IEi$OSUgoEtr>M%YyY-0Zd82#p4#=+;=_}Liy+v;;AnODaGXIQLTTrkEiykin})_W=IOP*~$#6R0WRKy@k;H$797?w3ujZe{J$kdgr9DQkqq_bX&7XN@ zY5b&wY2yt`Rkx4oFFRiuU;jL+kQTSv2q`x6GJR%c@a2)L$KOM3tB>^?igq6w ze0Tk0)%|?eti*gHQ2zVzbr;Kb-D9J#JuD|Clnr}MbL^hA*^DLTZLduJc6rc3D%-#7 z_4ytB@y|7g@b4|+N!~%92V0^S;+(W_w;%s)Nmlx{nM?K3#T`NoKK?$@aM`L$(Pww& z-oc4gFZH=Yk;u>+H0i~p4SiQsTTQ)^v}=OM0>g&X&YA&5racTSd|kN2x@&{geB5*m zJIUymU%?)%Q+igHk@6Vdx1Z{AZwB%DW-_)g-B%qgDN?mLpty08DkrNnhg7|dr)$%7 zN+{1Fw#1VJXqa@9fh+9zilpH(LHR}&BoYgT17mu4X0I$p)K;zO8GO!_CJ-6TY^r2| z(Zi+b+BhdM?K61}s7ltvG7oQ8ymql+XA zMrSc9q$d2D_A~R(oENdS&80JP&PutU7fHL27)c`7i0LAiQ#B4>a;C{DML2W1#T+iA zP+|0A_F{(7H;u)VKa2X;Vk1-}rd-mDput!*{40e(HpHrl3J<4#0G%QZ>dxbGJpEZ1 z2H88#8Z5lcf{Tu_&?JAj942kZbTm30F%QCMaMB20*7Nk_AmZoA0G`pvOP6b@ zkPpP{(L6*I3Y!N>WD>#pah}c|;t=t`c8EH$07gM7BLbyh`oDmzKFLM#RW3~}wNcO^ zSwf(XjnEtgP~Lnm#9{M3A-4cRT2rpQ7Ee@S*dSjiNML->N_aUuR7ywqrkcm$@e785 zDe?WXL$9)Jer@KR!jbDvGM#j}psXYgM3%>*pXJf=LbxHAHG(srW5yWN*-3rn3|hSR zL?`C|P=s!!6Bvy`k;@RwSC(U7eV1UoNqK!D@{LX#J2!+?Az$o|@GUDqE^LH!Y)Luj zg6jk>6YUh=0MT}cvxv(CyAFR#xMmzJ5B;M;YW&heLQ&(}SY8fTaf}~kM1t}{IQ^K# zRJcVX%fUD(_z)?aub?HoE?=CsqZwql{{R=<>Z5}c6f!U*O8zOrN4;P1#Du)7keLpU z;^F{(kokVBV^_J9tv+Nuy_UCn^d^?aUMn&@lamAxZ--bR3~bx!{(8hQUigM7Tn_~{ z`Jni9>#6!Uh-&>h0p}a4Z@PCvDEvBJ@Z(ss&Bh<$na*E&Vc(q3A^DMp>v+#^x-`FC zcAD%*sheu^>*K`ZjYlG-|Uh?aWOlir6aQeTc_SDI^*_&;%GvGEp}3G3pGX8-qY%Y;C%0$4|^aJ&b9#j zBi#;=dEQc|b_mGD<|LPFg(FO~38?tGkk{P@!e4&>3s6`e<-T%KFvSn&?G2jcolSw=`^1r4)HTZiE0 zH!8eI`|=3hoeYtRfgrwwD+xJp0;GUjy@r1kW*k>w<1pu%D>+OvdS>ey7oZI@4VTim zjX_0HAtiSHQZV3zTT+4hK|Ge>Y}c z#{b)7myd0bZQ;jnZ|`t>*6%<9RASuRW_X9e$> z&|dr~hSXG){QyJG%s2>A;*nQ7j;;{MhayK%NKlR(Na9dgWeaKVbJucbSA4>u9~h`| z>!Ac@{t9NmU;Ji2kmLD9AWIx&QbyU5OAFl^7pIjqX%}>SndodkjBLskDZVbIG+0O# zz)J=fSzK+4=E6P|Z9-r85=4A2ik6O1T>q7cz?I&nQsiaGS>A5j_b4*KX+;Yh?==)S zKuPl(T^rNhdEw)b3ib(shq_vqU0aEL%8`6msW{5dA4iIqpBh^qduGza$n8+J)qz>S-Fk@S z3LS$1^Vziq?vZF089EiUQ_=8~ffx&}Rv8T#c6}fPhs9*%!E)pmM{`H~4Lu}l0OS8e)yV*9!jvwNmFu;N% zJ5`#u0;K1u@|aZPj9#Olr`9SEofsQE`_#QLHiq$FdpHOZt5SKF$VF6czUZ zx4Cd@S_1A-j?5elHTT|WSpniq4fm)NN2TW0vef$F-Z^rVT49;lGBhnKlgIz_oIEES zaQHp=zTm#E>+{w-doR>^M8?HTFLt>NND)(8rLhdH)WoBt|)fNp_Go z3vmT&L?%0}t;p0+yqW2xqkXCb<(LFZkrMZ0$3RtGP&Oes^bx&l=k6@+euBpM1)kc^ z1yxW2Kp?PBiIodU2O#&s1_{Y(jvSg3i$;?Ne+x4|xdx>>5pKi|#5F+8UBEZ+L#FaW zSAxy8%{Q))Kqpx#*79Kc{r;~C?vcWRxU4Ka&jcP4}h~9Iey%YiX(FaI1unODk&0${88#ZkqCwG`@yY%CjWIWsd+I~MjUghcW`*=05K>;z+n;_Ri zb?~x^WhkFB_m7e9=hvk=oE=c@0df;W%227IiKs+~EQFWM!X|Q%gDe?wom?Uuf)y^4i-?8#m0(4S_etPJaGo z%5!6|mLmx*f!{=^FK?EtWS$JGMSpFu>_#}earqdJ40d6jd|>~vTG`@DJX+D|;>PCe z#`%e`&{1bYTc^F7l?j=3UhlbAH&5?1xng`bpHFYbLlTdsY(LAFTuSoM0OSwJ0*)_KL_oL>K+UCDQ5kE&X|9PPH7c>vHC;qK#a%LwE zerf{#o8Z6>50+Yhd|u0vEg%k$hdX9|y6Y(d#&*Cu>KRXmUT%;x2^FcJd3fwcHV zIIa9LS^`R~0-8~C(>H3<1q6R(^VwyOHOl=-7;6TEyYNJvj@fuMM-$xmoP}F-eHShZ-h$W`zLEW^ z#jcz{6o*jdOt;G#QogJ?i2HlDF>gM>3m`{tVpRCxVqT3r6>X7D2pad&fTi@(s;ZIG zA1OQ4{K4;9{EAS15k>AiNBPhZw_KWbFBAI-?ff5vA1ws^`KYZj&?#!g4(Z4pMSm_S z?1cHmkcBz_8mu^qY7;#3v2&wDXQBGtpXks8ruKbj#D^BMZ5fN%OaljbX?Ixn8V7H3 zGwMs9*3L@U29I)rbJi=vG5(SnvAZf|2gwq3mAH(tNW(D=&kw>G&fmBAvEQPRCVp1` zro_*;AJv*|Rhv-|{9y*g82*!%gSuE>bnc!X1LJ48%eYN&rQ=-c zmGi7LvyR1h!HAmfhvFpph2%`89v4O-EWfvgV0w%U@5vuz=7Y#DtVHgbH`|>#vdbwQ z7T|iw)v(irCK%!X;PiGiV_Wsa>=DXO>Y#N)si=iRDm{kAPkvGv9@@A1WrfxR&#`BUjS^t?+vLYYI68%UK4?d_3A z@-e8AD7fUjuTWfgV@*DEg{Xz-m+y#Hxw!gAZ6b8h?vL1`ca;=8re7(m#U(2z89uj~yv#%w?BlQn^4 z-E|WNcnZ4_v_gT7Lj5WwWI2qPmi>YQ2Yh6%^Vn;k?rrMq!+1v{kboOge52R&ac?mS z2##D-Mw5E^<3btp;^dRE_I=XRxpECaw)q% zm*CJ|*b-9%W0p@@mS^>o<+@Njds2n3JG=+|J7BIy>q z`$v;2dt+aLk3h571cR`^-&t&&Nxi@zgr}W+EEMG$kjixC7=hjP)hK0Bo;(`m3WaljY2% zwemfUOTH_RYsgn;425FCjnD0vN{j8!2PJ>82I0%sf-1l-(o&HGo8KGh{=*RAAqo z?0@K&1mgnWBc0?uGcyDLa{Nk;8bhvwd&$&)n!&XU)f|+L`);G<0#^Oe_X#H44N)M`9I-akx%0Kr7VBvg<^e7H;HNC1nxAe*){|9@f#;7ztL@763^3%tX za9yMIL#q`8QIL~R8yE%!F3tEdj3MIGp>X>IEIc6^KL&!)dKLK-q?z|b0~ey?xmnWa zdo9;ne#0fb{l`fqY6mvNW6uz7@B$g*H5{Z`UJab7@sfp{GP#xcxuUL~WH&{C#*Kk+ zIkQ6&5zfDrgu*6}G$q8(!=y5dMa-txD$XnA)@BCZmjgHgmH3modSMkdmcIi!X$M9R zdEV}m7*YoD?*#x_DV6*Zp*a+Ios+ySvQV?M7Y2Y7+4oZQx+tjtT{aH#(s;pU%^3Fi zU4Q^+>D9$f<0Ttl&pAo0-POs&)4B+x4 zMdnJ?=lc@e(&=9VnzLnTPtUaweTw5t+^eNP@t-Vlfq;@GDP2*wi`-Y#BF*pltiPGg zHd1f#^24MD-YwLCol809*p9Tr?7a!GQqTp-sf01?ZPsFFEBSUp4# zT@TXD_9F-6_ganD8>@K~g5bITBZsd!tMqFlCk1;{?2)#XfM;t=mv7S^2EP3~OTAz&2Oq*~dqBQUqKzmY zT~y!KATtKfiVb(O5@rK=rL+lx`z(qTJ)Pfin)h%;nMqpl=X1%O3`MSvo08~Kx+iEL z2cL1%@(y%t?0fa$gjrKtDC#PiDh481A${R3KPH>>YAJAzc#=#{h(B&kDy4X z0Vp=uNqqiK?RswB;ePd`vtoE3!(gX+Np5zmFA0hxsY zy8MBTpEZm+r;fJofa_T7g*jH+AW#!&=p+mY-%uUuu7i#)v*kzH$~heMPZ( z@X~)`$1|f9ZZH1~FYe2556=(%B3OC`<-r8IZDxes1UZA6f7usF zx!%6^?yX@dxi9(s$7qVPr)aTZ?19B*`YUnju5G%zzVzAK1>-}QtS8am9yZ)g74p6J z((R<5>vY%^s{Q!VZ~II7wi%0my^YT_MNd?*v(>M7;tiJC^c3+9j~jf9S`%ljfA6Hi zvoZQHk7p$Og`G!w0vHfZ>BN(tw)xU4*7Sp#SsSO;x>tczaSp97;8|Ex{z_U7>gMchvkXHB{O9@FEBzHG?mj}N*{8kb0t-$rVr%Jb<=4e{eXAQpB8y-fFZW=UT{B>+*X4cyl-+IP9 zc>n2>+L^ygVgaDCe#v#tISqy9i*JH0+Fy_O4-2-I=EYr#8C<)z82SLpDd-Nc_+B^k z_np}FR~>Th@5MRY<>GJl8r*(wUG3aoR~b&6x_-Pp;%(2FYwEwv0-mV`@+P!jrCy%? zPx@zT@l(Y{0i%2Dx;z!S(G?@fu)JTt-#)vP&;yR!yXSH+(s+Nj|Ab8Ntc1jdRi%-0 zyv&cg)Bj$lmjCN$Pmt;K%@pX8u_3&N*p&3}>8fLyic0ZoU#2#0NX$ieqtSnPOwm_lINVYBO{EdmyD_BwhlAb z`u5ol&!-(!3N+xVVek+;1fL^UG2T%$GU|4u%E(PstQSP#IVjwV@23|k_U6?2rl-Eo z9pamJ_XpBLACx3e8_j!Qk9x6xgC`9e=Eal*V(%r)J-FS|kBb2p|dp;+9&4 z9Z(Q$Ol|=uL=ThuU=@b&=9{R2hGV&>y$(MiGy(!)kD6o1>^g~m*E(6m&lR2n&qS() z1GuEsPnxh`x|OJdhK5w~kpx1DS^#2=UwID8?SnoI9>N>3Nk&T&+u}dTJOY3a-U5hT=}+YU z>7_N95i8$iB#ERWQL0m!Xx&xbDu8A&8^KYnkFNXkSZKW3NK{U zA41_hbWGD(f(!u}Jt7)GK|s8T8vsy89`8H;d(+sHZESl4kx!skjM!VT4c1fBcFys+ z?U)SD`ONG1UPjkjHO-3;v8u7ey*l&m9kb#~-z z)cyvaavR~;HIxd1i1xt3bcqN@R!KTbBe1^*Qpr;*i(De3kM}As0dGB^A9>8$8< z=3z<<#ir};Z}aN*-W?;T-JJpVu*4J`cBLo4J*U=nS7A#!P{~RZpdK|rKKiy5`coY? zP3EN$)UM0IHmfRO?MmS+K{W!(ZIr+M1WFAnJF3pwgF!iMEJ14mpD-kjX)k=d#_~-b zns-NL4!{SkMEOz>FSlhJ0i;B#a*CjJA>B}K-0&s|`LL>Jr&S}Lgf4-CJg^frq+{b` zv?u|+^Z9AVDOAgv%*obqH7_WSU!)=t;p(O6KFG7c;Mru_UaCV?ksEb!!pn8puKwGw zR)<4-6|)uXJixP}1z7^11a?+Eux689e5?-VBYu2ehs2@Y1_%H3;wgI52 z*oThQJR7pG1Zo6{p?aegnv|;F^W#J!D>{{FAc~bEIv!99TmvGkbsku+ax3RDQAuWR zg=>rwK%{;i9ga83Fa94@`S812*;hw zRQvN9$85~6M!H32+6_jZ2&qHqQchhRD%#e9IWs&P1y22Bpwa=L9oyz~ti=pg<`WYi zc8agyv-*>!KN?yVy95+=M>mmBuBOWUn#sM1m6~A?_=n*%r_RdC$yueM8k3m!Ro*I;{b<%Q{e{UDY*pWFTdBO>ZXo8jDZb^7kz&Jy9oPcun zf;u~M8|ZQCQV@<zww+s?$zhy`A!ikG#Q_dpqXoW_kDvh}TC1^%05L8lIFo%Gx&Tuv#HwR8 zBVb&YM;l)LlyY#5DUI~gQays4`gb{JyeI4FLUXQ1KCiqv|D`4+-%VCh!;9I5re#^Lj@XH|OMWo19+ z9+v(X6&}XP>s%p3#`G7fz6;;FN9DQsHO5o_ARfQB|6rHKf(K|oBGkuIo3@J@aaz+* zk?e`+#keWH4SXETPh-=BPJa7fBGUc|+g|MM)YM3pQGO$Q(4KT2Kd1UQr4ruj_%UKt%yCjkK=iQli!3n?D zzJ91J)cnQdFOmme;yd;I`zOp~TAJqju7w5PqP?X{vo>3z$VjH~a+rBjz)koa$rruOZAo$b`$07z1CqRd`Y&*Lwogk2uK*B}&zxR|L| zeDhA&jY|SIwrXyGp%b&b_BM^%jAl@PMvm&^3@zueHS>3P$7@Ef$P$JVu_wezn z{u~jVLZU>aUjDa15T#Lg%?S|srjRMEGzItk$vtT9%anFC=&A@8+`WVnxmWg$-mjT^ z%CJ-f{+3hD%cZu(ON#qE(fFmQ!2!|wWk?d=1L^hL+Z|IYT4MQR zpO%5!J!uP#WF>xfy*D9!KT8HHnnMKrbO*g|e6iP%YoFb@#2tQ>4Z0LQr53#QXHDIk z%Wxb}l*G!K(opOr1)aoYuh(KO03Eg$N?p+kh2Me2<+aJnQv?;W_5`&sM0-FPb z#LUg7>q9)4+!JK?Dlb$Qf5`*^)uC0g_t5{UzKo7^y{ZjE%dLh0RKs5pDoM-vy39=Fb z2)*niyuh?pSRBF7^BjjSzilK@ePj7lGSiwqG`T8h5p;nRuZ^Fcs48d{J?o`P*G-Z?R2_iX)W zhCugDLqaldm!4h*poh|K2lXz$T%;lNJvktmsTp8)<=tHGonubGlQAxG0msxLEJev5 z-&pk;zjwRl-EJhF#HZ*juSet~5E0mmLvL@J@s{&CL!L{ZFl*Zfy6Y+^i<~H__h(Kn zN;oj4cxFSfF^RJ91#XZ%qt-th5j`hIDa!W1a%awfV?cy3o1S2`>Dd>(qi>(qQq za0)@;)yQ%+`A9nRWTDTmwi%EH6I4aOoa^EFEDloZ2zdIm>D+nDYA(TB=d;c)cwsK0 z2XKWNWg~w^VOUs3!FMVG03x5iXLMR@c?2XAiRH|bza3*_>zw~yw@-IJIUPU!W*tSj zU?AHeIitV1tj4CMq1MkXJBAnY+FzP^X zylt_c0(HF}I<&7&-kvE*3(*_A)J3YtG!fWvalM>D{vY- zkixCtysxBHokrmk64#B|dT*K{ZB}NI=!oTv6)K+4Jp_VQN0PCAZ9N$}_n+S}x$ z2s>k2D_bHalSK_q3YV}e(T;I zd9Q@yy^!r56myqL@8p8VEA8{8sG*IP(o4<)-DFkL~V;0AJ) zy>PB+eP2gT#k-Kd{7U4XX%9?AIu;fd2DLF@78xXU?nbze*G< z`^w*d?!Mg8htduQ&R$I~B036(G;Eci;cwXv!kur>{kQ9P`Qy zG0w^|Odw;Lm@Z*-NLVFv4BKG*<_Ra#%W}}$;%1l7+j~e_d!pIvw*BfMaxrxuvmb}kX%Rv04(~k-A zWO#*rVZfpNk2>xK$n$vv_;o8YXleu8)#S5&$7et=H97+0EeVEH!qohFV_-pM60TIC z33XqTHkHU{Is+>bqj@)W_eM=a1m8^Bt5od4`5`!C*nSJoB{u{Tf`ef8t5axL4g|Ux z35OwuRWXLQNSP_Hm4~A^S6zhiZ6$=}ell-7_`HPfV#gc`2cxEgkg530!_iTcfi431 z+&uR%sisrrb|+PLMqDhj*$`Tn2Q5Vblbl`|eA(m&l&YeXTw!Yrb!wHICVHcHd> z;>f+@>EmaA%G0`hOR$e%G9NksNw~mXrN~q>k{dY+HVSf<%!TUhPRk3o^vX+vPv8tm zC#(YdrRE3-jLS@#a(XWwXvme!SiOqRM0iNfq$*3PL(XH(F_OLA(pBUW$=$*NIfvn= z6RvU{Od1?*$jd`;?r~ z$>}PmGT;v;+!e=^$|rft?BX#iY(d~U`YCNAV97}C(G+Lb~sb=eV$6|GslvMU)JW+Pb6Mr1k1G$rTnWbtB**C-XwMs*+tq)oB>L>)^#q)AvRyCN zCy)PdSW1)%B9}OZN9N0qbd0~MzxsWA9uQUts^qeBCg=!CV*;S?V>vT{*8Q&#@=&vq z>`;7v%WuN~f80nfT0ooTRSJZfk4U0C2{asH?HY+bf>M4cu#Bcye|NSG*u12Sdugqr z^_a-b6Pt`vw&)GO;X`T63Q7x4L3@=HS{9qxtJ7|4Wh zGNKn|V#s@qFYIm8x`2EDDwb&pYRcv4u2bGew~_>+gW4k%ORi`ko@_dn4pTZDdHJo= z8lv-yT@+trmW?y2bWKu2YvSsi3K~zhv+myhqqeP5Tj%)$^I#8Qofe!Oa@IMxkP&3K zX!PQg^xwRjhUSJ4mFEPy)W-QKi{nzI!Pb_vjmVJGGmjhM@n)c}Ddv|o&-G3^n^22C zU^JFQ-MBUjN?v-CPED9%MOHll-Bb2Xpl&`|N3-^t>x*2tZVs&&C2uD8a=H(mVd zfSdfqfj!s-;T!FVQX$syf8+zGHy%4YSBbvPes$gEF%Y$3zbBUdMc=7_yl{gWzrG(vHyAZHi@*Qd zb3nQfGjH>@DY3KO4qRa)EX|7FYCeOlC`@0bS^tc(iLAdApKV=!Hn_Zh=3-Ly&`jK&o9=3@JtGmhPQT=c9rsf!hUHZ|}>yvxsI$ zs%-F$XFK~=zdyb3mwBzI<{8P+%wcHo5|uT)gX^?JZbm8J-c5@hlPJ`C!n-U7W6X=}iO`OTRI;G7gmW-k`SBxYa?7EJ#g;{F;i zu*ERz1?)r=E?R*J)iNk`?ifpsY5Tq8+yLZ_a%?(xQQ0gIRP4KEIO#PA` z7&4-A$LTb*L+D*KmpdI)O@@&ijSL)J%%`)<=w`byU;{MN9cwkXVZ#%pJ3S&B7 zSdA}HK}UAXJn<_0x|s$kAd!bx@AnyMQ_pWXr7ev37Sb&1p$@Hn4yV^_a?m%*&`^HFAC_qBu9MpjV>XOx>^1WK~UX1-sb(eRz21D7sdJhBDP!9z!uo! z81Mr_NVwmnb897X-VyC-{NW6E1sSH!G>v;$NV}X$UZM8#`@o`n%dw*j#O8Sk`9)A);`e=6JF2g;wcf4%(k> z7L2~Fj)n#k3USGx@)Dt@{IoxY$lfa0Itc+2I80EciR41_(a<9qAoYA9gqx*Vp+-Ge zVo?yxmkR|s8C>#$rJI}e&c+4~(CgouwF_vQx>#2nPS3wXDC3>XBQu@@H7}eoeISci zduY{IfH14_xD=^R!a{Q2-+rBO_wml1qFFKJqAS*fw8j_3q&!68hAH!+VhHo(ZU_7l z9umlanFE~tDISygAR}g4tI&-=rtC*Sker+4%m)5<3DmDZxzO5dw?q1~)4e0VJ#xIV z{u4^#F!D#l)Q@OT=`!D4VSayEzpuO#AQbqrsaHyW3FFp=I4^TGnx9H9x5@d zqG#rhu3L%s|4^0vAU^mpsW>h2EAHOG!y<$H@=v2q&+n6Tik(Z=fh3POryZd*0hua_ zw3n9Txpk$}@T=5Q*X~u)x@N+Ec3sh)!AglLEX$sWIU@DGSAut2RAW7IL0@oT46TTk zPi_Or6MzuKM%=CFKXHL$Lm?ubO?<7;5T>s_&_=Z^!dXeJiywrwyVNfiaRexE#;Rqs zlGb)lxhP7J7>&j_N}XTiud7tx zHnz9F)h}{?Aok~xwxAG|xlDaRF~-~fTIX-2;?CGxL&E1~f}1FqF~ta>OEP)<3Z*!) zFO}CqXTp-KI&ZH7S=5jsgGB8IkE69hTot{00xpSFV)PwxOeZnKnNWo&DIBpKbV>0O z<#h0kt`uUM=iSKfts>G}E^10a3dAQ&BlR&&9pve)cv*)FZBkTMHzZN3)|~ zYyv{LihFQ)kSskG6=j#Y-1LN>(hiG_9)G55@ZZ(@9NX`T_x?PfsXPQtQN)k0_8g1q zQpR;Rx+T26(Z#O4;G8q#P61Hz4J0}JbB?HyJ z_DPR-$l);3cFKAZU`K3_f_C@59}wgdj3EPKci`s;ovH+&e$pe}Ef-~GpFA1VNC8@U zwqv~dK)3-IunoJ&tXm!wSb4NM^oWxyOcO}NMOw~JBj>SjJ~YUR;2X9^zI54j-WLQC zzT9hvwzhBaz+p)2VUx%^qW~zKIuP(-==D~Arip+N12ks@vSb{0Ac9DE2nL`c>NaXc z01A+SR?Ja8FA#~14bxRe;k>}YoF>cPgI-_9nv(=Co>lRTydsS5r!i1?IuD02zU+wN zL?V{id_h>)XbWl?z{O!BIW4F(=EM?!E3ySW&gQ!%i=OKlr$kQFvH3=ss5g!S>1b=_mbnJ=`zyC3&LsPsdGg6Fs5N!a2Sp|n=tzr3zN&{F7!gLkhv## zxJI$CNghrjXBv4}9QQfwptAWa8)qqA5X(q}>C+dZEj<4*Q4{;z#wh5DBiHQh$AWhR zjg%IHelSDYyPkB=j$0#)C7NNm$RL0n3<##M$Cqv+8<{U~TgWBmB&HH&vyXPN=Kqfk zuk(UDGn{?VgXXMEa`(>FvEg(!JoD)|2MdyApd;DHWj43`b$&@QhjdH1cqjwUDsP!OzLx zL9R^9!T4YGp)#el2A9~}kpM1yBt+&ZC}?_Fv3H)k6;*h6yXVL?4_K^K2Q~6@5Rv5R zH(}^g>PxBsu6Z{6y5qzrbvPb9$su!FGGX?Uu)eVFq3qST?3MINnm!IRp5s zAnyokW+O=ike1YP>BfK`ou`?_6*P@Fw3sa$rG=*v=jiBjY-Agoi?qtsMsH{&zoXvC zzyQEBz}pG{I26m>#+s-=zYoU0l#4=)V!7F`VOr(3jvCyklL)QyS5D8f+t^6s?DfAB zePWyIgHKnBWI-O47p_C;~_U)hNZPYSGW3}0DG98O%G-7g$9gkCMA~d_h}Qq5QgK+v;6Z{ z6Xi&YRnDRQ_k{jQT^=vJ+{n8ru>ZN`e4_SvyscZXDB+W|vGCpX;m)KeSXUe@#;)_Ei?u650!v~ISX=yeJeV1to=+345c>b3e zU+iq!dfli}V*2u}S=ApFeB-(|?LOs7d#c676>nc!%v9v(w4!^MrzfNN)Fi!@$1JCI z-=*%z)a>{V?`*H^bOVK$AwOLldYP?KSMTqh~Kzhs(&#bT>IO5 zJ+Ol#_{3pfZS}X(h0B1m+w<%DQ=A`tn*W5a?jQHwk8}DrA1ZKsWwrTM_e{J{mgd2G zhl39{H{aeoSdBRNGIj9n`@#3O|J=$BemHP;BRJ{9VxKs~UsD{J+?xxT*`7oWUj z0o!4fl!_8@jvSfp8_3{S=dCGmdT*H{r9vt}0BfvLWKWdcwkCeCEmBuWnA;Orw=dHQ zc~hhEDG?Jk)7C9T-*k@>FmR6Pzl$sZf$;( z;DoUrd=h!BNdUs-TL}05$ng-sBEBs|_>^Ff;qQI$gJ*Ef z|5@#CGtpEo!Pp=(ek=LbfeN(m38LT`-&PB_)4ry;NI*^NP`kVi_Ym@QN2^MW?^msn z!IvQs4`dr(Y^idmWNld~RnW9;Rqofc*{U`VXxpjZ?Fh8_kN3TX1-4Ya-Cj5eoxU@T!eS}pTLnzq0=l~UFRNJg7W%{%cNxC@=;a5)MUI%Ozd-kG5t>BHhI`NSy< zCz09o%49VrVeV{-klxFCffpaS2UMi!dj#FT`^dw8^)?U4bT@SLMXKdq03I$*dMRdABEcXo_AIxxF3dJpb*G!UI$sk&+5PF0O|+x4ONp^E)e zRwB)Ckr(c%!VBE9e}A|xR%I3#=QoL~JY9I+;H~|A{d}ML=Aok@46JiqE8`)|IJ8yf z&;5|*XVS)D55Xs%%MVSTHx7T2vfrfo_~VfAcVV6GHWtw7!h&&RuSG+qmPAwFtE&H> zN)tPz()xhjKmdXR;BZM=w=jB>5rRj~mPC%5DuPQ1zSf6S+6_^i|50hx!#A;JnUXeb zHKWM_3gPaf&RDxNrHhx%W!vvf-ZG3iq|#0?xCCWk&qQr^ET*an$nLLMa~dLbt7a9w+2-?g(gU14=AwY%%# zm#3ASy7N+hAAVbY9P{PPWOwKHx6I^Q^7cJ@p{pbLs{5loPkvP7RoDeI^>poidD$NF z_W9H9U*B2%H#jm5&w76U*m&{a!ql^;e}A#xkADo=-`oGYC*s5Osx;;7FB8+~TmWG= zECtfbcHogm%#~2keIKDzGaejT0_=yQr+#}SvU;_7zrD}2v7^mP&VQtH$Vi4H`p#5X zfCeI__1w2P;e{@^c;mm)TCeOhCYFYUp6in~!H>=j6O6a_Zc!_EYOq9#;USL>_s+N_ z8Bl{mgA);RBc_&@Pb*>!2ED4pgKBWxrLOM|M@GDKX9l=96G8JKfye?_YVgRGLq*s* zpLaG|>A$B+qTX4U5pT|7gThrIiqp=*gqF7icZ-J?5c_(MF<|X;kLE(<^vf2ixmtrg z>s8SlWtORQRteR`&YSJ-^$^uby35%&aI7z?|8trbmPo(FrLvz{eAhj$Ua+A~T(uDX z(%%mK=&6xiMVi(wydizwOBkCV(aF_2Uf6bYRCPJLfp`fzh6X`Nc}H`yLQ1l-Oa z>xg$L36Q?tb7quXZW8fSf4m`LaBSVaWkCOTkJH4_Q$=lqr2mGZPY}B8V`oZc?4o9k z^(J-am6dL3FZ>dZJ=^Sfs;IB=O!igPS9+z5KbL|l27WI4U(kIW>;17a{&m8~#$Rue zesRA2dP|0D?6GJf;d`s;N=pzH57(Hyy6Ai_4o2{(SBHe(;w)tjXEmS&ZQP z+xyteIoSX8ox=g}FaU6CCPL=ZXDu6YKghRwqnW<#TLT7jaAwng1Jpp33mp9RgO+&df$>I)+2^ic0OhW+FxYe zmK|CtoH4j?g(oTeAqJuj4U5=EP)0TwL+q`iJZP!9B!NZ~>A`b`Vym8;Eieii6jrk| zXlm$doolj@2QED=%Xg9QD%zJWO14t4%R`j8Y!TB#3Y{ugQr)=y{Qlhu3msfOy5{1 z&vq<_S*>SGveaD*zI97?LhA4uC90@~&e@Q4=z3E0Pg0Y9oJ;=L>qHKHZloR?mn3fU zvs5@NZxS*iifk@65`ZscPSvi43hWZr!kq0N=U(Jf`Mp zsb@@%taHJe`*$_6>+Az;Uz9EF+%ue1Npz`wvBzw@Pe9c>rrFL_iSO20pQv{(9&?eX zYOgDNwaT`HpQ`my#6y!yp1QnHIrr&vP}CKqYWE+$OCQGSxwo8KWm7wfKH2K`il1mY zoGlKMhE&cb+n)LL$AyOx)*L96UhLy&t>}^uD;-i#K2}d4vG< z5HEg#WYM#h1-+NaAk1OkeE!ecYf3gwpX0?eUKX{XO7Me#9zY zFL3o~1U#sQu)|cj(eNUF4&yJ^xGWspH-cRlgk3i9%(#y5w&Y{rW9GY0ZpS;7L!LC_ zH*XAoa`x){oHC}$O+q9fV!FhGYtp#2eI69;4M0PN367O(ZYSUAi1afxFZ>;o;#B7* z?O$|&eM<2nGJAMxwMp@+Zzr1=UdSv~q(pn&MEOq+@PVI_aYU9ilJ)S4{VP7mHJ`KRL z>eHEyyE>&suC5@#miy8lToD5I{f8}Gsr&iv{^xt0gX8O%>4Ni+(bN6dFQ4x{RxR|s zA>4p+4!!1DSRHvxH>iA4IMdcxe(u_WNAoeq>ej>mW}82K#fv^gp4pL)kkWJbdTR4} z7IQ^r^bx5ouO9Q5Er%CQhv%JD5K|F{uXXUNAA~?Gwa{t)9iVEoD`ESEBa36>tVqi z_WC5AeN8x?bRm;pZt%y4hY*9c5z#%I0XCtg;LONdDRVJ%{pc=>N9o7b#@|o^LE>hX zpV#%Oxw1qCdWCQhzG+I%Y)X0EgNg}fTg}}}(|GKQ!C193&t_H}EZchf2s!QSuXnRb z_O$g5w)hiOVXUjT_}d-YQJO=(P4`|20srGT8GOGw>FD}(_U*)@W3mU;me-c5R*i@Y zGB1B!^iS{_@A@b8U3mM#1YRO&hA9qFG>)SJkCTE0{E~gGVB$1Z!T=pih~*Gy z$W~WL^OW;WKBqz6Rl*1gD`rS1Iq^)2k#_)Siwo5j@d|X+LR1jhslFtjed)0f4oeN3 zOFP>d0dm%$CZu0!y`H`&6#h8ffishy^AbZB%~*_zC`iC0C1m_)Goy-9qS{(7S|Q1f+vt35Ya7L6M@UbP!Pi3s^8W z&wI|DdCxs()|y#szU;L>?T>r?e;pgqlqR;8M&9Kje@&~EV6Tr#cR{D`8ws}Xu(zJ1 z+aNN!b`2UFGX$_1dLl*xB^j?5GmNVX};BnPW{H%_W(`CmGWv91~H9pU0Uk z7gg?{{gHT^#BJ{-V@$rf5GNct(|@CX#Cu>N>zxEgVO%nioJdiCaH6hCl3<-Z&izXl z-V+cs3TlANGLj3rpMu!`9y=VN`!iK&r57O(;RPbH&^zg{`6B+72$WH1$_S$PEWCM~ zB*>Y&S)EGX=}g7AVmEUcI&+8}IUJ<|%@)efEsQV&5I|^;}oq;G4p208%X>eV5p)U$@c|CC>Bw%^*=AW+x_IWqxM++?@ zc{z;J+?ExDUa35HESjHylVCof8|nU~4zGYjtwZ@zSo$#m!FJKFNIh!TkpqvG;|>EG zzbuY$xIy1w@yVX!i90aSS3!WmFP;EQt3ivnql-oa)Xs9aq9Djn`eeIsDh85ULVvyw z1UEF9#+r!YfgcmyyvZ^#7<@Ko+GQyIQKD*BO`$MeG9Pdyx0dhagqlngxXMiu=u`{^ z0$Za~KPq2t_LZb7fxk3>RS}`w2p-zbjesJ98f_BU7CK3lOihcggoJ=WFV5_aRw%F0 zx#GN;*GfQG)tTmWE)mpzyd@i%VF}K>;RP1ny;f*olxwJerLfp*QK`?~FIZCE70#T7 zV$KhizBK`#8c_)T&W#FB`*zGhH(+sEEon+&CdUDexDA?t+#e#+BmtUP%jfv)@NgV- z8pXUc687ZKzDczrl1B~M5g>ESu?qt-!r^M+78A?QmOCHGSOmTR1Fv$!A>mP|L=jJk1pK}>RvwOOy z$+s})f~si4LkEqKm~uK`yV{`{aL~!x4X%tw?1h4L0YGAB8zmi~N1`(+136L3WR&5$ zBsw*Ca(pEH?0UzVsf>I&>QfCu2%xzP0wz1L|J5uqE|gHf-DOk|epe&ycdZj?-LjMEm)z3foa<3?o_p4)a!s{2#0$fI zdmql7yOW~QU0jGr)dotjg-ed46)h&96s8bI5F%c|+W9H3ki4p0xvUzQoQHJ~d>VYo zAMC*qXjZQ2)R`$XXAJ*n9vO#2_0)2QNVCi<#hdWPJmvT{75^xaFH&0F33Zn%m!3vD zB16M2P9VH!KA2$oZ52qCKFXL}NL-`K@*IdcVJkINwMgMkZ9)Hh?S)o>lik2R_cYSr z&B7sf&kTbFbUC<(EZ2Fja}h!8$xs>nl5DcfaUpD}6qZ?VHx|uAATu2QGW+ht@zSe4 z_;4U8{{c4@pSrt;AmY)VLAPIBLkMsx@_l1d>w?l0s&7)ASF!i=_&HdC;a8s2lENB= z5Mos%iAOC)LQ^D2XocEYNTORRXKphD0roF*B@VmXD&A7ITrl%Ji^l}-y zy#HiP`H5(Cvv$ZpU~h!Obf`xroRfpY*`*}5}O64Qt&W9!S=j+el$9fbi-!F{h zP$y-buUE&J>v(1ImeKBX;Dh+!1i`s88Ztb5O1=D@P%VnAbDXT^w~3u@54^6N2!Atx zpEnwwocbE+PoYqQ!RUkgi(9ZX3?z~l6L?_Coqu=m4o@^(-08rq3jQ?U&@{nM;U%4i z84dVhO1SRp1j5BB0WE*|tn#d(=2A#VdhuZOn@D{x|tU-jZ_Xu zRU>(TiH}>Y$G?V2%bD|?-=4HVfI7-tUHHl>N3JWFVR7Dk;>Ae2`}QM!foL+O0)|Pb z=GD3rSl6JC9BcR>6T{W={IYc$pp9#&%YNBLhTCJR_$#mHH@U)^!guV*cU1cDHFv*T zCBYwF7BtLR3tMP&(CKC!^6swxi{_}O22__UfS6RVaQT*-8B5`YJ8JJ|KX;} z+@_@v2kt^3uQIk`-AAP)^x|i}!Cq&*4_BT4^43OE4qG>R ztGDxpv0i=auw(rWk;@GSpnpQ>7y(p(41h*}EdV3_8v!=aQT;dtE@E2o4*{0u3@f_# zUkI>#iHoMwd0u9Qh4LO#6(;{8z^tdD3%eViS78zu1x@EU=4y@er7ll>lSpd7)tXkC z_U;YC?YsX)fGys2dz>z4)<+}22>(HVz3C6$n5s1EZ+|=VF9NLp?)yh^U?w5+fsTI& zFlpE6fzFNbe-U8!y0)Iu2(Wk4_qunUll3x$ECzc%yllF7$8}~9wXo1}v0eV~8Y=xE z+Vy4j4F4vWsPMP+C%3zYTPspx{`1Tq;Q|qm_T?kb%`1ElW~sEXNPkqpEv@nlYNN67 z(D&WN8JQ}xrqf6E&?^>atf=VcJpFV+F;*nV+tbxkFd3UQ??cx6Sr0sO9sKj`;!S{S zY6oX*(521$$2mz1k7E@_vek8a+~hn<$#W;0qdcxBiKdwFHsyEc0;x+P0)mq>2v zZE(4{phs&L*uPvO{wM^W$An5mUceEo%SN?ujk;#vGm5q zzF)q+?SqWA(s!?oFb3QnVU6|a9E|e>(MBE@Kv|6`a92 zJN0E)^WoS*_Fa78o5!-2=A9Y$G_D_}z_0BqKpq9Htc?q$$Q*ewmFtI&i&s^wO`(R& z-JdE(8i&pBzsn3u*8H;n^*N@yDP&fkJ8M_;A>S#QPkTsUr2c#1T+fS+YV7w{jy`QF zl|sx9zDHTzlKrvdSseIdnb1fhzykU|{df~RE_=LkZ87lpzYt*kZ52-#qfgo9L1-a$ z*C~V=ZcH5B7_ynhrcY!*mSBFaM>DKNVGB}l-lfG!5g0NNxZg`)FVY4$`1;z+)Kc%SN(fU#fv%clGmZu?GWXkX~T z<=fN^jDm^C=yS}b|51*}r$0)g$I%)Ra3Ix|`dp~!u~kXJ30pxbw)W+O&U`=9_Ycp{ zi7u^Z(&C!OrJsp()s!EsgyI+4UQXi)C_2UBds`CEqibqVuCDo@*8#H*R=xssQzSYj z(X)xk9MzWulsji07+N9|U(b8;6g4`wMx}5}Y*P~l%Kvzs6IR$kNTFy3Z6%riX?&q_@@7hC zd99LXEEg-FwKKjiJa&aJCcb;5#i#Zxj>-R z)nb{ajDNB5S^+s&PKK>lwxvaZsnx=wC!+5hO_1s^edaeEUizTUtoyPlMeeyzbovyq zsW3b@%itS1CJ`uo$Pt=I5Pu)XP-MtDn$7sLa} z%eW)K9&@OZ=I3R@Dr#)#V_=aHKZ@^+HT}`Is+}YBBnyO%qnMj=1$PxlcwBF`bCLQF z0&GiAHB7TWF*gpRyd`N7d}wORXeT)-uPfbmn4vsDta^Ltopl=ft8B|&VLLHXKI7FY z*LCGP`m|->D^3?XSj9YSWc__E9OZdW6p?2oueVwWOD|XOJZ~wy>;Y4X<(LZX6Tf}B&#or@dd|JC z2VpDZSKRda)!1fN`;9<c_TFL<>~hHGdGU49 zgy3hC?a3hb5MAfFll1-(U=02S=$>BbLNMjP)PP0Tk;rFwq|a7h!a(bsV0Y)NMc2hq z=$>7@t^=~|i}!?mk#-F#*Z`7|Y@n^cO5zvc;UL)X=)KOltcOhRj`!$5krIXqQ}ex& zx(YErW|+XR&SbRw<1opIr7XVIN2naq1OTU}pc_!jIm;7lIhG-^3jjc2U_sZYOF=^S z@RYq_#0W-QS)en6zb=jn^OgrQB$HBp|J7s2#u&*@$C+EKP?%~_iM**K81v8~Sg!-f zo*u$tODoCnLqQmEWT+F*rTg~w&(3|G#Y+drB<17oMs+u($ozS1jPp;Z94`Tpk)rC< z2~g|Z-}ZBztWDCX#FWbO+n3&#k*I)(u!i#;yd0v?32~9IDgFKH!zWVRL47{D+&u@K zpU;>i=N1ZH_j<{Eu3gbN81~NLcDuHiA?I$N@9uf+s#o4D@fc!D3MSE`-wpPHwVf}y z!|fR1v*4N#t1x061tF3GLl^0NC6x!!o!0Yh?R`3;T4P}R zNfSZlGliM)JZS4#o1!z0gL zKuq}7e^EOWfmjq@P5#cO;mWoih*%$gMo+i4zS(w0(!^wi;c{4h=vt_Y@y}HGchYTR zvCQ}t6|W2)VXHMDLT@Q%hC48!^zlmllxU=A&`s%kh>_HbIwbqzCA=P7KJ)buNs$>H z={LJV4ZT#=pGA21`C@Z)A^SN}-J;VgHeSp4ERW=gUV4T^0k5A)g!A8Ww$}1(!X(`2 zs>skP074oA^9#QA^DCQiaft7Z;v~0*!V|7U49GqX{@3~{Yr&bid1%#Y7%LiUd|<{Y z4^i>)`@5sMeQeyo%_$okCrp6L9_x!aq2d=k-F;sq&#PTD>62tzmFE-}Y5bAGpkNTZ%SQo;lu$XM zE~p~IIYq4W&)2+&G7U*#`>H=-ou-ZSD0Ad87nZ8sOg>PO?8h4;csPC{6wsU@yULQa z?BLl$PQD$k+ai)staO7&;vT1Jzb8_ja;BNA4OKvW+SC=rp&p^&uh4KJ0BNlb@3Uo@ zmw*q}S=!goQE`H=5Lw=Hg3w%gcO1j)fTjF8(P}LVkI#nWLJRVt0SB22*4dwxf!H2x zT04Be1ed6rz`1^_0%Ow$;r!Bo3@0q;F$|{_q3(zV<*x&K7rA&k;t%!3DC+Q9dM;Lv z+|SC&H;nK}Gy<>D%2->q1Vt71H47qN=D+P4H3F$X9mCSB=hBr=Zw(DJyEuJ(pOt>E-;C9rUzD?=r07Ua36o6fVbnubhp(jRa`%1Xu6? zDpEx<629uDJeJ#8u6!nW`z=GoM*Qs@CxdUimESZJ=ABCExubKwv8lR&DQS?n0y3IJ zX2{oNE8{nI16$=2Hi|&+d808sSdXHL@zUG8wFKJcc+jhI5Ao=iLW*#ll4%wZ9i(;7RbWhV4X5DqaWD$pn|qvZM+I~ z2GkRR>Ctht%G7H6A`s&s9nFdCDCK51NT(MEaXtVTlN;=QDKqcgK;j~J!40@yfJis6 zOaYxgssZT+_KKv}3$C~O1+e`E@B%a#%cs7iCP2Jap`tNbdL2-&IH=?*6iKNk;Gi6g z4S$k!O(x3?Hgsn|wuCsSUT_NmQ|~fJ=O5hSBIQO!HTYBNdt+K6aZo=^h(a0YPD~5Z z4;Uoxrb?poI%w$_thZNcWc&rN@1`@2gFY*3i9Jxh^SaSI9qL3P?}pO{#n7M21tl{! zISjT$$~T1hH4`rB=;5Hzd(fsmb^@TjLbJi#wEl%=Q^8Gq9se5<5C=D-S=wlCRR~hfB2Dj6~vuqtuq1gspdcECV zQ`}Tf*i_@KOVFdeR++VMxdQw1rYe}i2AQYzL6pYwJ$Bt8I<#AR5T*B^rHj?M9lhF! z{@BpQ*kr$V*Y;Asa|@xz4;(wot~PY1+^@MP=FZ)8$c^;7tiM}SNuUbvdISE3b6DV| z!9L;G`XF4h&}v)UUPt+*JN|KvZe7qI%#~YjdKzChikGN~ zH0(G*F7j@qAJt$SP2K~=qnpHarE`j(T+$1I$T-184$*%gR z#s4>${>M%7e}UgCUFH)lRldd_BgU5%^hdWNh3N74IWP~v>3Xjb3!jNm(C1DKIa-@ z5Ry9C%RKvjB7f24@Gflv0K!m-p!Lg0Z!L9qU;D*4g;@eU@Ta*+{)!~tdduK<;oO1w z&wtz`RaTE4p8h`h`tkkqM~`S)K2%~g4uT}C5@D843NR*OyQ>~%ryKJLoc4sZBvp&l zwd7Ql0aA)UvLkmYyQOhWs>HJ=3+Xc1MeDTgW{HhV|-UQw{vo=Khm&Ho0bcWX(8QXlFH?EOB}b8C}7G?X!Zqv%w)5270@j-6f`TaqHQ4DjB-Vm{4?aE&OB#p1O~pZ>`QeeJ@x= zL)16lGuC~1_`?Y$M**H!ksk(%v>uFr?oD*upx2Q(9OZNfIDEq6(|R~25V?Oij-uh{ z3DM$!qe+Rz)}twz{{7G!h)1m@l^tU(yin=Z4jb(9l$K*FeH(dMpVLG+SD*ST(;>mP zKG#sp_s>NW6qTp?s)3{QTL)O#D{-9I73$X%i~>OL4!e|vCvfi4o5Hh8AZyv#VCpEK z6~xx@R`oLK9hCy*2m31Fq^JV4$TqvW`*RkrKQB)-q&|K6k=QY50bc`E1NI`b--y7K z@^W~(w@Nt@DLVe@!X%;Uog^Y-2pi-W+e)n++-v*zT@y>3xIDQ}UH!qP^a*bJhvnWI zt~;^NnZKp4sm%V)N0Ax^y7LgC_ILm9F_iEZ^N+Y_wc^#^bGE52!Pw2eeebPX`SQ-( zv^o;0EB(buJga3G13v%AY&F)H5ZVCe5EFA{_j9a*u6HD~CSesAfR{uG@~!#=&+ji& zFT&JGzj#}%M32tsEx60%@O5b$;UHcS^>(}{wHu?$tb82bWL%(l920rCnT z({Z29W}M_@Z~@ap72&eRt?mQ?N%(dL6pE%`F1>z%TqGQxQRjy-k~$C(f};6C37)#5 zKXd$gpwK2fca`5Z--SN$Ocn?yv-;VI>!*)Z%1-DRP#_75x0xt5N}RO9ZZ0&tEg$mp ziOx;yNn!`uZ{Wm84K18(57TEggs1YcMq2EjJ`Np#gN;~sRNg)K>e<0b#_*x3mc-O* z{!WnzRo3;MTZtS|%yZ%btZP}sr9AW-*p8yHPp%GRL_6i=i6ULgOx~7KE**MU{j?Om zzl9h1AYdH0sR55f>IVz>E@B6HE%R>JiWIKwV)8oS>bQB~H%*?}AGU3ZggnVeBG=p3 z!fLgAxnY6~M9Z_v>0GpgR0T5`3%7P52y;B9o`!oZdmcB ziFHr20)b~*r&Dur4P&aXO%DQvW2#)yGkcX6C{_9U(cY!w!KIn@i2kQh5zrb z;Ww_9LZ1(E&MRjR8%Y{szv1Bow-Sl$IC?A~4vxs54lN|?rZj`@ z+sb%6u_+bQ#cOdH&z_8_KkLknoZb-neKL+=?INX^d!7XJu;XSc0yA9l3t|E%%^OUl zThNei1{!DG^oWIb1M+P`cqO-gca@BrZ!4DnoF-Uymo1uW%bnSzrUv{-EoTAksE2tz z)5>V5{NmE?^VvxxDp_2L%Dfx;s&uwg@f#UYNk|eXn}gzu>&~_{o3PnmobTcD?o;4$izZi4e=8K^ z?`EiwNX$AlX}25WWCqik&~Pv?--N$l&(tZBNuJF7(GpnoEs%8e*g0O+ZA=or`uRbi zvphO3PUQ0q@Xh@FwVMicpAv_eMIEnu^1SCehLa(LeGovB+JR}K9EYSQt;mVHQQ)|0 z2E2L=9m|^N_zyvzM#oi-w>0MBS#Hva<_b#onDJ83;{l{ZH8cEx64-8-TX?7?FPY=Y zbcqtj!*e5vg?stcDf^Xc&L^x$M=%;@4V942L*dm_&^C>{N^mTPnTsATjur*ugfRTP zt>WKxaE%E*;xBvfnlG80rph^rU=;78*z3V8;3Lc+L?UKt_QbpD&4C}BkFjenRqVo> zo?&TYCIRdkp&tM;n~sE$j1mXV{!ZCv!A|8r^lsm}8u-_b1Su7KzhOW7iFr-i(yz~W z&&!{X&-TfcdFjvQ+I>2qS#!p&E8&G0_Mf)cVw#)K8()ZGi#*)Aa7EblvJob3L>8uX zWq~$s(q;40=_e%2m<*kNo}+>!GZ>RXjY;M=szYaqm&56SNL<{F5U_JYbY{b)zQ=*! zVN(zh!b2dwcE9#=fp{`b$nRHL8BZ zAjD{mi9kOTtd|&#Obugbf@-S=>MFyHcmic4;z1!dn41!8)RSx-lkB6C97~ce4J5fN zCApp?x$z{st0#M&2)7{vePDsUCjtJu0f9>aS0@5O1_HtylOv*1qL!{u8WL`M`wSkX z#POuYJ4%;trzAwBrow=|$b<*p#4PGWV2*lVt~zgvO{2?LM((4DwEH}n4^uPxqhxO<`?E9TGB@WQ?WUEpU*RO> zInL)*MESqq$uCXKXv5}=vgawrlxC7sb0pGo>hkh23^~e9xlC!&H6^LWX$7($^xo{| z)AN#`%{hNh3apy5-l=DQWluM`SC}wRpsio%_MreTNpjFAa%?__olN(RCVd(x3eqUN z+MK$~npXAW;~gK>{onuTA85Mdxhv6%m( z+Sb3!-NthXMmbe`QaaQ@jR$Z+hx%-wJ4Y36RDtN&^4uBs{rf`9!_=lF;LkdC#p z*e#an0?aLuL4i<}_}Myj77V(~tsBAfFKufC3WSJlN4lqToEsn~$ms40)5(uHzROe& zCDcZ%FAUU1YW_WOCF%AVdFE~jrqRxEn`C4p%qdtef6Kz8J`5M3KFe~(b!g%EU7s98ra>A5$}U0AV)pD$Wsct^ExTQ zQZD8w12H(ATJY9xki6Hg+>3dxd@J_yzOR}aM{?7Um32oE3oXrkdwX{}#;8&sTYDD# zKDG^Pw|s2B|6}jtT?$lszhe~Xzu!3_{#!bAs%tEuyI$Krfn_$?aJU# z8LC5V{c1%D68*C*3i@f>Ia-*6@-Cz5XPz4?3M~JugK8LRt3g>s1omCdYYm*@P2h>A zKjW>Y+b8cawhvR=ap7*Nbr)57_B?3M2fOuag|jYC+=6|!NXnuxyrOG9wC>D|c_?<_ z)qXh4mT9wRUO7on#l#^Y9r>~%;`Dn8l4PQ^tV^eD^OTwz+%sK0NWBk#cWp=X>!RW^ zOX1Q@4$l!x%ySFHmqKY6r9LhG#L!jM8^*(oR35Zyw+C-K4pz8x8ZeXpR}ZxQE8YSK zrOIS~#c(nc?^()*B`ARxF93k|89I#yF~X^s4IMenq=h{QaUyoF!vk! z6%(pK9L*7@=S<~;cVz;P>RhJ3u9%Kev=r2XrIhrXp8qf+zFLzLla5Nl;7D+M6YvIz zW(_zB##WF}=Oxrf7?Jw%N0p;t6~D(BOVmgrxCt1$D2$EjY@E+rL-5c0Jr2{CSIsoW z_^Z9Kgt9QI7u?WaitiLHRAS`NDIREJ&x8){Ck!=@a!HwWqHNdtOe_tq6;0QP zt4&T?#vJ97nd>EtOr~tgjtZL0>!lnfr|buh3Oh3EWqeGYUV430G%#I%E^_kejC@nv z1JOyjgfw5l%zP&MQSkRnA6^vc^isD?&rfWAyb^p_i;xxu$E=JV!az2h)MuhbcTri&T`~$-*kpqu~Y}26}E@pKl3C+$FagyQ+ zo<;r12O-Ot6#n4JEXBa5>*gJFMMc&ZvCYL` zdK`S674s^C&YY5Pp0uu$yTr5t#8XRJ?UN~s2kEMEcr!^hrMvrF+4oy$&fFAdT^td?@d@i=& z7z?m0Y7&p(JRMHYlMCh0m=AnG@Y&yvD5z|QF8^zI0>_sv;6dSMCk8A`n^4o&7@Wu@ zaH2p#q3gTD6NO-NP>T*6^4bF!`(OOfQ!k$ov||Nt!1!h1U?0;+yLi57w-rUmK&`I) zKaK35H>E`CAhqOZ$B(ginJZ)o)? z8dUv}_;EFe>P43n+5WDYn&5qp&^+^CaFFiI61qjQ90hme=yv&KJ&NThlgl76>K?L;2qL#hZz)@wRK8R= z7~4@E?JbdTpWEoIehCJ)A3oaqwm4;I`|f+B_Ycg{gJi1?d8ps&txpS%B|jKu3hCMw zO^oKRO6Wy!j%zU=F(^=i;t$N=VoZ_-Fz*GZw|D@sh`!njp8VrF9k*#@AxI_p3bXL} zi4+2}E=(F8Pj!oCJ!Y#~4IZn%3Ig6l&O)~g;j0b4Ulv?MA>yk(R_QfFtyxD}2Tr?BZ8Fci-v`w1_mM$B7% zNQ=*TW`H=FC*v5KLG1`R##@fn`=Uy&^!wl+c*6zhGbctp_O~w-AumOf1E~OU&|2&U zSd4MUd;#yWpb#zrh+U!=!_vFh)?QAMFk4X2TN_Zh6X~#o#t9xpxGUMcTe4Q5M6X3k zEyp8YK_gStNXG64XnDQY)q<0Y$dx&sb~Y~>SG&&?fdWb@I-h}fZ`=NaZY ztT(NMi|CQ1?*u(amhuOlUopIDUTp9}Ngv$FLWRRX-;loBDEO%de1*g4g%X@a6#fW_fqOdEw~%z{C_e4p7I-)PN8J!ekm`PRVgn21&^aW8l8d zP}1==FG$pSMZrIDA}jz6^iC|frhn1!Y-ys0)fwTd5yL4_o{<&Z**54hfx@zudu6T5 zW$i!9I(W;wG|FkZP+xTUKxz5lz4H6Z!4tCn_}_A!XH0t>gKN@A|D66m<@I5Sa#y-4 zq7mSKa-EuWap=UETj%sjc0brOnpW#6{Q0BCSwmyuLq?*SIcuK7CI5P5y$+Ea=2U$g zDroj&15HHU5(dWDc{^pgG9=r*{?_((hym?;+1l>24wQLi-D_f1E_nn3R3aZdA6XsG zK^y!`SsNC;uJw2AcR#%VZi0E}^rKOYWm4Rf$0E(oku#&_NEuZm`W+!+oTW}_~jyM7%zIx>0Z zi!m|YipVBJQA6K)@Qs*cA)h+*@X=#sYLA1Rm1GGe-|-DPstUtXaV_r_Tvb0FW9y~j z5VyHpz~#ZI-o)i~!$4vk`^nn4)ZDK0fE>ejq_&;`HGmZ8Gqg?QrL)zSl`3S=A3VV8Q)Y? zy*^7z(-ubPnv-`ae!;}kC7gF_*vDKkNhHDGwkI(wVxg21igY9wIGA*Ca(DnWQ$1=S z40iCEq}P%NhRosN)%06k%DFc3lsF=U^|h#oM{T?@obik|_0riaf~{U1rrjC?ijh+I zL2fp~`oUAa)4{;)UCGVv*a0}i2&IuW$EZe~z$an?V2970=ztQq?#Zda01+ytJe>y| zoxvfH5+#D;djq>xMC+R#npWHkI(!- zB}_BQP(=GHDZMpxu~PLLY54!s*7pA<*ZKM94msuAuid)hpkE)F8ry&Ewf2Ah^|538 z-0%IK#h~Ax26ozif4+bG`S%wJz1*LJQSPgM4kymu{c|*}_T|slStGgAZ}SdUPronu z+&%rV68YtH?TG8Aw#8bGPSMHs^TeCKBnzKEwEX-i=i;BE{P#YmN^?0>(_dfS|2_Tt z`~5FaQ|@2Hfe2K~&4|5;k|p0kglCc=XKAS9(m_1Wv>U7o2Oal>i)j5s>GrJ`LBHQQ z3)XVW=@>&nzh}fd0&Qz#W`!8#DG3&qnWEQ@iw-M@5jZ7 zqgnJ`O9`CyQ7J0qYG$uhthX-bu=w8%AkXTs&}ZBenGyvi|KJ496bhJWZALF3WRkA6 zBjLZD{+mL@7$E;2J%}^O9m!qK`Lh7e5*hp$PKoM=eoxfZt){SBu4Vl9(_i8gV>}jx zXY+RxSwz}F)dq<4X3QKWHk4xWKq9QMDM>!XWZIqYYsrLpgJM2!I!>ay^l9d{;tlKs zy#$`E|2n|KhGM~l2Y?E(U{z;=8iymL*c2TvQ}>Up?PbaA^+v72pJ`%C`suVT$Qo~7 zD#!RN5w2%EzpSW&plt%d*?C7;%;9INdoakBOoC(%uPHu)y|k*8P9jax`buy?!T0MJ z;SX+TF~vONbkj|~X^mOkCu9~zewfr$TvL-TdyU|XuVIFhb(VNosS zNWP^mjIc2=^*087%A=bkLtPG67Xkb*_G9>X0 z2?S+cWA$>B#?As50RR+Y7c-(3h)MaFC~LWtbO~o8|Cr5Xb%OgOF0XjnQ~d1mgt1|0 zexv!8l=Je0!!yOgsy{?#!cVaNsu$x}6nOm4CeRBGm6(cSu^qrtFRaTv&RM*48BI?I z{`HN)b!!QCR*1ofO}C)N1+=TnuW5TdK8+0_)~~MlW6n3j%Bvlu22);;KKuP8d=X%2 zScDfGUjj=(^XLMOC?v(Or{QPdjklSffV|=kh0NWcMt>eN!wiExP=X+#0b(-g;kWub zHjmx)7*o7&Vqo4(AH3yEmkGuYKB3iQH0wC@?Q{g=`ltmFx9V-@*=Iv00BH-f2)2Xp z-p5gH{f-XLR2kCg7BDa+7>Mrs-xTo+o=~EG^?Mk$g-%h=uQUqBpqrha=@TD(atW|z ze=^Q;yEd2j9?M2p1@ib1fV#$KnLG=^me{4?AL`uZi>cFiWGe=uvKotWKI{|$1d-0G z>$YSMSn`rqVK7dfH9gM&y|?llOaxuFqU17+)KIcDN@bmGGXDt|uS2$)T{^){Iq(YP zqRLW?tU}b}JXtug8kZ&Buvl`LM25G=o$ywNRAcv=apIHlhtf7?mk!Tc>=_x8A zbJ(n3T2H3);4o&M$CL)Cjp>7|AM3ldMG|4|=^?fzl24G{al zw+4*oCB?d1AIF@YL0la!PQ3l6AQ8ZzFP=&bzvz~v7z_A5bzEUp^Bey8i%Hd&oJpp+ zZQZ?Rvtn;k-p0=A=Iuq^>|C(B%;cal=XE)2Shrb(#}>`;H4<^HAs8NI`IDRd%W-UF zap)bTTl@V87O^-)YMj!rBOy=XbUv;?Pm+n28^oOLZA8R&1p;A2pwsvdOTnsA7{_OK#=l6&el!~ivam8&FMvcq`ZJD zF0&#M`~t}66nFE?CVTktjjkOYW7-eTFj$!L3f%3o$qBD%E|--$_9W#N?kmR{0joev zgG$`mk-&av3jUlN&zqRIyLf}61Pdv41E|L>J0|w2sunw>pHUWg(8w?pNiV+z;}zGX z%awSr2taUW_9x?+o&K>3>XGm?QDZ(bnyZIU%%~;Yk3X$ z#qP4p3m&1_VCJ7U)#wKD5)l7(8H>}dVrJmof4_|5g>?UXr5unkNvtA_E(#&2q+2|S zjGjxgk9C;%IbsToX^kiUNs8B-6{2;61%A$o>8FAeHm6JGHl~x$P$hdXU+e#a6fc_x zO(YqVB3-ZuKjU16D${=&PZsZrR^Ei9=S#mLp?Dh{C0-^Z^|}2M_&D~QzU8l0)SDhE zXU744&dAx>vHhwk{GY&w%C_@(Bt7VpG`wy#&5nw&Jh2wHO%{eL(E=aWCQCRa_@Yyl z3>fFc97ZcFNG$<0Mt}r6#8k5+#ab|(xgg-q8w6TQ1eg%j66qy*aRU$I76kIQ!>>3b+~0jiyqpXLRII zXG!wXf{wYd2P{3)Is>-gCpvFnqlSune;>QWp^^s*oT)u{1lAojz#a?wWQY?R%!NFb z26v*@v()?QUg;--bd$21g?Z5f!I;^a=SvRRo#Tzt_is(xNP!^f?c^qcstZ~cc zq)rzzr>?hU=kThu?Oe&YpLO4d27TQFo_vInXY*E)^f1sUv6xt}?q}DA0bxZ25NqYB z?{;}1kfa~aVZxB(7nhyvcjjPd1}{CIvZ~ufG&w^>EBHLUJ}0BkP&om z-!O4>=wM9x?)^^-&ZLW~idy9wZt*M(0d_rkSnx$AnPbGF?yKj@*Y*hRlVT zm8M~}iWJ$6{kCTSCa|TjbixSpV*~yf*%zlZ3X=-4n1pnB=YR)YkF3qwWM7?%D>CrS z3W$6YYGQtSb;;es?8l=fOn1*r$kp@xZ&AoF-GQCY!Ji(Tc{B9rqNnTq?%3K8X7!+oe3;ZMhsB?xQPrz`{P_c&r?Z(? zavpS$?pAa?TFbdLw9kCYqWk-vbgb5&Ly_~;gYRt43#V=wRXTV7l&?@TRn%w;ldSP! zU=WLX(xx@D=U;xecE%_Q!>T@7O=NTi^HFiekKH=q$t<1_m8gkS^;P*)rgA*ud{PhO zhzYSg0cGoNx{IRq(LZW&fAo!HK%3U#OvRD8>tSPRA6nhLQTkfzSQf*8_3YFMGT;r2 zvNUX+edq`knJO`&m&(Z*Dk~qEo`ni|BM>sP8)$^a@M>i+3(aKD_GKc~nC~c~pkkHf zubsjzbTA{#{E9@#_c-fccM485w|JGCUIy z3}T<%O?>!+^z3rqSK3Aqg=J}+DyJN`&POiUQJ80#ie0~0^~aW1ssk}w$})c&`o#Jx zk`Jf6zgB&cv766I&)D|8?KbbLCjH_x=p*b#-7JA%Y#>#$eQ&K|obnp!-DgvDfuo$o zj4Tz%R|62vZ>(Lm#$LaKBgY#w9rMAAg%dhF7Ur9ro&4Gu+2c9CCEIJAaAUoWO-L-v z>Nu5|2q8BhbO{xyzF7=b_yMS-h_{9_yw)Mtsuz5yzQWMPCxOd_)s5IGOrMNv=u()2 z6!(1sMF=`rVvdLB{@q#z?0MWAD{h+e#x&-MP(-e!TznSq?1_=^0nlj-lK@a9j3XJD zbZ;@vun7GcXAm6A45yN7dg{;sw$;O&={_Xqh~qLcd+tGXJ(nj0qjx^|JYPU-tspZ@ zcD-bdLG4}wx1<=I7ML=_Zs4*1F)6IQzx2*g7K?$Kq^W^U$|lKay!Wm z%?#s)+PWDOe(+CK^7`^{!SPCc38ty(#Z;vGQTZ*;-W!+o6Xc&k4M=TX8g#0R$t)i5 zkhDAEJW(Bw_R<$iu^|bolLuzEN8D|jpK59$6waM#8dhn*J!wR|yyq$q&l4Nq({;Wx ziQ&jm;8;wNvUV7tD7>+}yfndQ*p)YzMC=v{%Zer*nYA;X6MN~WA&wbAj+t*O6tB@d zDql;xTfK@7h*W#(?olLEcxOx9OTu!p`}Xnu9aSqv#U6CwKGnuKW^jMjfrm<@1TUFFP_8 zt!4xs;u(UhzYmVi`#K(%US`3D_r04YiFSK0hAw)991tn46VLOg&OHL4+B6t8hcV2%4E1@8U=o?1r%5titrrU0zA z0mG6G)CW->?r`v%R`OC!9|gH!ov9KB+JZXVvvIUUFx}Te*9bWxZQ?9-?~6VECb-(m z@B&H{({Q0WCfEW*w+0xN**>_|5TC1$iO)=?$BH`^c&ESnS zjB)yaO=&`xg-VGv4OZNOdp17vloMuzxkH5pR(7s*4rfc?l5ee4vv~h6_TKxi={Mc> zCY2-v2oOStgx(EBKtM@CN0fl5fQa-aASfM`B!ns@6ahgo^dcxtKt-h&K@HddQKtN>Ki-0*t^-j=u7GLUE{ zR2l~UkaorBRSV`$=Z0u}TeT$foISa*|D=@jp6m~-Mf`{wb_Ay+Av>qeca zUw^7E7DhW^=RMO%4~}An<4QI)+j-v}oY)TSXRF0z`#lQ7*Uk#wvk=s5j|YA7XuyQv zxM64h&|(9h71b-5^d7L=g)v>JkoIgNG}DGx2dwmQl`Rin@oa6&?}AiUf{9 zRh*!%8~mA#0y!RlsKz+KJgr%p5I;&uWF4OSMNo^~7-xl21QMeJsv|V1KxbU7V2bqpJbc61?&0A|!k6(0_G|o=hoji|XlHzs@+>TnDJ-dTEGQqC z5fz(I4Xv(r%%w!Q1wHsc8CFgp0N^$^!`6`AyJRMId23_gOVc6a^F{9JEl$!vh4W zwSks!Kb5LH6&%CC`MjNM*7ZLM%mj|NBov_h&%GtaqGeu#R2lt0fdhY!(atO{7!BwA zm)!JUyd`?afKoObt9QAQmm)gtH#qQ=>QANcz{gjdS^^vV%YJ!F_67aUP18Le{sssB zJFVXTC^!A@@Rsbq{m;RH|JdrSSTjRI>MhSCpe&SU>A$Vs|4MFp`CqqsSEL-Zzuto| zJ=6C%8xkYjlLPj^KFWo8z$*!k+g?QEu1c<){3GIz7YjUSpX_oRId@kP29}4h4Ut|T znnm%UmrO)EKD{O?_62k^PrK}@GL>HVMlOkSS<8Xr!grD`S!h}VA?z+33VJFQl3mKH zbz`XtSi7b~vPC#%5G>r?72p^$n*anU*<)W5nI$$1xcpW*FEJhlwyaaRF3XSv{lxVV zMwV~BHj!VzvGmv}V;KZ$eeC#-$J_H6#O}bi_2hBHeLL3+ZYfxA6WwtSvd{H_@xCeG4bD{2Hpr?D_ zK=mFmKTAyEOyIDYoId}-{7OL*DUG%Q-KW>s$Pc$RZ=JdvyPA>ku;c5w+-n`*Qp>YCz9%1fxb!jgz;2_> ze*g}A&wUmuSzH#m#GOh$5yb0?9dRvFK)9F(3b>|0np%l%N4abx-^`e7$dg*m;P(b^ zJeu_+06oLJ6Zq?=AmlZEk#TsEh-5KyQ@2_oA9aE{H_O8|n$Rx3Z3YKf=Rp|C42jil z>QM(6B&G_!n?S%ud3K3!HznEU&B{1ahW3^z_e)N#LLp6En9rffJF$#lI~z2y&oN0Y ze?dX(@sqtUE$z~YE`btLYiahUoKdaC{q`J*OMM1lq{`=bL;UfOe2s3&4OOpnRaxt< z@fM?Dd%JIf6_$6Jb>M<&z)TnG3hWbWb58qLy2QaUY-qoQn^t;OOAo|>l_Y@hK6fZ| zS}yhi&2pNEHJh31Qw}g7Vo#w#lXE6ufl>YD3>ZeV$0X!>zkzcpVBE~ka+3jD#*bm6 z466ujjoduOVb~CZ$0l5<62^Rj2BY#E&=Z!8s?yRpZ+jqjr`^YPs_lM5dUHAVrgsf$ z)He5v@xH6Fsu%5K&B%PgV&(@vHoxhpEf06dCFli;>lj)pql9WpzZ;C7zwl`%gP!T& zx>GngsWoe}@4nfR{>4n?dk5QHCasRm=@;{zuPAQn5`mOGcJOeZDPs=AuTfNv zM_ccz?Xj6q{wxH9S4G@wRD#ps1{|={0(gP3``f% zClGcMv;_UUpNA7aZzm>T#b@@umDdKV3>^@gnt|aVn=*h5Q4uL>T4ldZd6V-BA>$Ot z?xjj#tbe^o8ODw_T`KxQc|a%`RW1GF>T3lx^FZ@6E5oTCO_xnYX@w45T$Xu6p>lUF z3y+UBQPw96Q`0nc7X2R;I59hXxVn^c)P|S#XxzLT9OU)kaZS9t2nWLfRh4$9GSim4 z)5RP7w8eq8_FV#W15Ld`D)^hWA2rQ0Ajnlv3E>ZvVkv`EQH}S9Ty%{})viSZ$PMrG z_TVq4B=Jtam2%|k1FN_TCaY}m^Xq`n7e0PCIiZCL*)ny$_SG^ytlaa1F2@O9v@fGl zsGi1Ui%n*R#iAnV)W*^y#Iw`skY-0Q(~&TX&=g+YL90E%2ybq4*D|`SqFRJ==ed@K zTY^po@XgJzD&C4-An>mo5d|(h*ExXF-?)FM3@#Y@OY|vcwV9s5`V&Xwu~$kwu7oe0biMY;ulw-eH{C!adZ&HLPo>D!r@uHN z{Zmiqk82#B{pN^_)R5=-9v}bB5s~l|wH58X+d~ynd%02?Hc!hEF;chv8tOA#sFNFx zoJ@HA7mmoWhgBSoNQRcS_tQqNE0MbynB1+wepHG6@>-(1bJf_RQGfPY z{x`Z0|HILzf65X0WAv%ew{E5CV&t2ZYM$7&dP=If{Pk0kvKXJk{*7K!s$M`W9P7FDkG?+M&hS+*;9?$*Xb-#j7FhFMQRnKTyr1 zIZh*vpj_h;XIx-);=Y=GFAV7-t_x2wnx=MRRY%%@yAuJB4L!x4&UXl1QHUBUZ`Gt1 zF#XmYmyW011>blwT`M|)C$|9PD&Ck(ubQhua0ISykZ`u`$=>ZW_ihl{$sGXR+E&Cv zQ7mN80Cyr+0x=oZ+9M#@;Qk(w^mBt>9-K;K2mluWpJWWwKB19xm?KB~3*WL6?{RIt zZ!&^Kp63?TEgnzXsy-_l05SqNkpx1 zn;$JI=Fx{R^Fq-^uZU+Sje|?~lg+MVy%ht0+y3~$L@p(?qa%y=mijd>Qy;B?el?lN z1G4G7*E$AXJ-zK$XX6ug=bG=|0qM@KNPG~Jx)^V%$-@EZDiao_-^Qa?G6)WMu(ZJ% zXW@zk3k+q~R1i1|*O?O~mc)CB6sj0<7L@&n=$J_1=0%sntetw&oVviuwjMAaQ6i>| z;dYdW17~-2;VKwO0(oNG>=PX#QWlJ4kp-flmcOa&_(%%BWDkbHNYn_z@mO({fxa#E zC0-<-^Kml8BooZ#u{fHkzo&=_w>h^jj>nkLD-naY6t4=);Du9B6n_ip`cmYPwOLVI zw54%uQwCp82YP9n&N_vU}I}abk4z2|ar z2a&!z_6^&*7@kVfFtrCoBgy{BVr@hXr)Z~9{?Kj#ZXb#^W zW*BPF@2VvIPK-Sgcqiww|0vVM5>5_$b1DO(;oDghGvZekTH1y7MFhJia2lAQ`a{dS znl59>XLpqKhGWgmW9>6SK9!}?3p7uB%}b4ZOch&HwiLP`!miY=Fcw__d8r<_#8>J% zn5S$lWhE?&qN?Jb_}h$$I9`0CiwMGl1d>pR6~5uMGp!|i?T3;~Mm^x}kSpqkr_4)V zx0YF@yy43y(4|Bp>Ybmc;*!Zp+J&V&Mni7}XNnHC7=~sAl0g#rc<%Q1!WrHXb0QHp zEoIuSH<}r!#c-(>n43A5M)!GRSnmBdn>UU;YVnPh+0`GGKilcNugY5I=8*a{7NWn_b6Urc zwR|@0?hz+btW52znWEOa&s|SY9;WnY`wMi>G%Q3nSy>p=>D+m1PTDm_J`9Z#={+w= z5`J5hC_`!~dHZ>h7Z=ks{vDOj(hig|XZz3kGb z`rcM)4Vf;kBQ98o*>;#MRo(V!RTosL^GV1$cZTN{C}yItPnv~y@ZeJtI1cOP-JF5Z zaUN`bHdntUT`TqQhAH;#S8fBQJ=B*;OJBH7mAHpR`qP=n85Y=pK}kBb{lDZq2iDL2_~#t3)T$^LIQ+G8!6YK0DPfAIMqR? zo#LBZl=z8+{1^U%CRR{kNB0EO1Oceb%mxOncJsbZw^}`!@+lu=y+*!PgVdF>LEiy^a z+-z#*MOky|Y5OBPTeRiusHp9_UT98Jwa9Ko4_9Ac{zvzv%6;-V)CUO~^B=U$!ptQ!jy#wFj}~h&Am1X{?~W$1ix)HCVnj5!7PXp~^x|XD7ZX5_{kq0K5(?r|TmjBSaghf?EFrCR3_5Nyvi{+;UV%b-$g_E*0wa2db+s@acZ zRNd3M!>aaJGsYQ=@dtps@c`KBD{n3Iqr?&q6{twr9qp}tov8ZSK~=?16mF$o`H|Gx zC-xjD<}kI*rn(RHGY~cMei3duj z!4YbjAJIE>)KN3qO&c0&E!1YAc%=@Dv1%xW0_Ifju_>G$Q427Uu7!=AOs02LKwI@s zH&h#DVq=Ha;bj~Ji3Kf*5mxu{ zjM*F@U_#2dE2&8d#p8!ko;f{T9pgQA2I(#zp_BZIZH_zWkB4MK+PPD%TB0gw&}>m0 zTSQBoCV9#~u~{T-`>-Ko{&celUG$`y_%m$VC!$EMTf<2LH(0iz2HQJ^x=Yn~6%qL* zOjT~?1>|%_3~&K54^%PsXbqRMnEE-?Y>{)E5CCn;X$&76e+G0h6{?ufA;6lLeJdoK1=$DGx149Z%7n7 zq14Db(T!&zmVhV%Ebf!OG!0B+#GnMvyj#Zb?LwteVs4XQ>wdAVBJt$XG@&v>;3SsZ zmL&mGPp&z;YN;C41%j)9>)JE;fa%z_9+2c$e#qciP!ptyq{?xAFX0gf6TlIsIbgvI z+=lA26chwa;6Pua2mmC5a|+V*Q*&j;qrjyWc6vD&W>7zq8-|y>lOkg~dHyNMm7Hp; z`DiDYjC5;E0fguBl;$C2DYGP1s8d1@7Z(@hL|o|kSN^%0Wj>S}JV&^K%L?+N!8;1{ z;F%QY;S1@R&xDUqxDufVFy+DpvHeIgG!+kyt&I-L2J*AQm|{f@Pdf{SzvWXa5pPhOKI3sx~(Xx^GUZIMVed|opC4XjDrNcbuU=(<>}|_hA8qG?w4;~X~Lxq zW=~0I8q9^LKG2^}H9D)mAZnedzbN9oXV+`tfcN@K1+gXi%R;Gp3|DN6LxkV()!s3D zi@dSNU=3jVO`>%r7(yS{<;J>31>uK2{RAMfHH-uXWN@WY*jnGa{r&-Iw@ zy|cZp+M2Ei-o_4Yw*S1WE4mr=B=`1nDZ81v9ZvR0aF$%89@8)zK+? z$YDVc5L1P;&i*kuSacUC#24TroaQ|l*Cqadnr5~oml=wrO0#E^3=};D<5K43x3v%+ z%4?Et2FZAJ_XG{(EWkgyOY1>5m;3}s`0Gr!$trQ!>(jjGq!Bl88^G_eTrM@*#l1&y zEHkoeUUHL*TYS|67|3GE+(7~5Q3>n6NXSTy*#7Q;>N7T%=n95BK!p4 zo*54i57tBKU8DEs%w1qAWnKnmz^$yz;*(wliX;8G#mN9R|DiqDl0gDRMA7qorC%bY!IKUWa=G0!GJ`3EQel&ZBMqcTAfBQQ(@ z2Rb!H@mre0pzgqWrr%b|{nt)i_zPSaiZ%0+<_D`U*9pi^rb*kI;#ER-p09Oto)^D# z&oL?cgN8r&@Szpo7X9G!s+3XblAA6{SM$%;x11}fV5J>WabN&Vq)H*r-*iANvO^;8 zUvc|#@7bO2pRZAP>)pBcPV^w!AT-ew@lh5Hb5RY7!O{pWoO#8`1M7=7MM52*G*_&x z)zGBLV{##8sFkcC3ai{eL8!_e*jp`K$GOY64cVv^loqP*#&-5ZO`%6L9?V$7Cy>w&iGiIA{YAl=v#r z#-;t-#03wAIqE@8nU8&+@4D_{j$G<%NMxm2r|s}yLW9|J3NXcO-rdrZ~a z!N>EP=qmN+$6M=pglLZt^1&hAHZMa?-{P`swj&Q3WBvC(8+`Iko-XYWw}Unji$z-O0DH2uleN;hSrMNzxk1zrBK9%LpMcap zyMDijh`n_yn!00uGV(|9o?LbrK@2P~FL_xF5u%j5{QfGTKGd5X?Q=JE_j{*bR7U?Byry62V&0|DPiJ=x za$7&C*w*st^PXKLJtRr&nVq(@)rVwJLL}tX7|6X+1T?mRpt_e#Wpv$vj5QOOKVH(( z&Ch#%qqE?TpkLlUy=%x$mP=ZTl1&HR01B8TDP0vbakF#*W*^kO-R!(iV6OSc&SrwA z9b*G{^wEamPj`p6ZV9d3H`oSOAyZ=aLCL9a)F#88G?d33`d9(Ev=59^W=v^!RZi_& zZxVTrr*ld4ZK5e5?3kFDW6r2<5BV`ur#O=h(B36)3uoe)*&yJ-t3Hm0f^Cd&Ja1_g zHrwyKHB4D9D13}$7|3grzZB{np@X|-aVXCrXk+P=g_b3XY*`8nSv+OY@2SS2dd8j< z)UPtpgBo*zrB!oyA~m!cyam0z?ekh{5Xc<^W=&n*@bCZKAkpjb`{&LRm`KMgYN zkox&d=#t=J+lUZySb%XCvbvFHG92|Sa`!hyRmD=B&PcCb9Vt<+_3_l%M%2!gI zpd%xZ{Y=!issk&z@v;Uqg&OJ@?u0om{y;WRLJ6gl9KDYUj#g2fVC$MWt)=oPccO#s&11ux>0+!Ooh}2TvjOX7f>xu z1m@9z%l$c|i2#)ufXI@$MTaxDzR-r!&WK6J4Q^*O6zKG@u$w?Zv+Pa{ExJN9;POGQ zmJ}&%pPT?~YEiQy*f+%A1Nfm$!9^P*FncE(2+8@B6g<#9D{r}th?#Rr@& zgDyrxE>`A9004j0?oBuYe>OnupAY1>TiAQTYKG)>TdcCvQA0a<(>STsYC=?3;hI#D@lt^z{L_ z$fdKgVSaOy)d%_IRT)g_6f6yr>cX{B>d}CraVw_7hfNyDX~LHa>MlTWC2ouNP1M{8 zWK|@Y9C)a9o9)$&0NT&Ixnh?cTXiAeVn6ii;nIG;BNkjg9vAw@a8&#OO@$|ofz-+6 z%KLw?guZ>(K9i*OzGET(`1>2nRaf5MTy1;%{+A{6e>1?Ze7N)563WG`zSad630muh zDRHo6(nS|)%8)x2)_Mi@8nb%&9jEh2qR0O(wrpbrKdAn3RQK86*=38I5oi^v4baN5 z;kmvvr_w z37wL-7lS)OHkZ`MjigV;jheBq1okivmGzdVD$L+?-N|pAZCos*ou>g*F*?d&U?V)4 zi_;b{!Hg~}6N6K0K=S<)!_5Rmi5Fl0v!Vr#<#g zB(Q!!X`$qj4n zFw@3^$a@sJaGyKOjNB_YLICraQDMed5<;DWyIs|S9H}T3)6Gs)uIUyqV}UQ34VGGO znZh!$R4wYmd@iFN@_L4!S@)jQEFTBLR*q$ z*gb^<6`avj%Sxg!GQfOa1rr%%MOB=O$=9m~0HsA~rv0yB{DfA>jS31xIW$>2#W9&) zQ>v)UWiM|~28bO3LZTUvfQCe1Y9kPm!bpLlWO;nBW}riBTqn{_!pg0ba8pbusiu^d zPN-H)BEWQe$gtGLCsry-Wgmsj_#rXn^`2`(4e$k^2$l&EEuxt@ag`zcyRqj{K*K_h zv-(3m2tq9NsKu<1oK)=(QM`k4Sy!dH0$3161%i`i((`$QA!qMV)KN6B39l;1ifl@< zT@xZ%5s_0}d(;R|kfan6XTV6r!Dv7)^on%vCtMf1G!1Ktl`~z{yLCO9lZD57%03kx zGh%iNn8Ju+l15v_6!j#ZGUDDDfIU(T3e>53a&3BiW4JZ8}iKQ8V{>$ubpIxcE1 z8?+3|$?xVA|MW`H8PAs+uxT-r8XjC7l(?$Rd6obL-HL&hjt5&?UI-?Cm8Vy2dtEk5 zSs?6>W(bz_r>QuNVA@fAxV}tom9-x6BvhNCZy}6iRwlw=Oegz#L}IwE@jXEeqG8nJ zLuNF-6AXJMzaq;0^^H*qt}R|9sLuHR|?A*8LS_*0C8=;TWu12Df6 zZdUQdu2wfn3{JURnDRD`NuZoTsAHeCnlfbTD4Q*N!U;fjdk9)!>D)TYPBsdSe^Ul zM5F8Zo9N}VdglWZFJB?=SjJ8cUvOhpPJb;*4;XK2^E|!q@jypX-cjAun{fpd1vk?K zw!*HT)E+Lgpx*tNahk2Qbz&gTqb8%oj2T@O=g81D}@%NaF_Lz`DRrI+cstbgUX7AHN zL5Q=&V^7a0m~n1kDKP^ff13S?-cZalw8MJ*sI2e^2Yaxgd%7z0ZndOnIGQ)gPxu+l z764FTf>{*AO%_r_6kY6VpcgF_NTL`K!~JBHqJfJ002pT$@>V0y{h7%9APsjXDIC@y z`>D`LxrCEF2K&3CFl1yugHFW74i5M=h)4yj$D3*CXZMFXIwcW_;6tDI``303eG$5v z6KN+G`_?zvY2yfx-E?O6dcvuX{3X4#a??cfZifUXBy`}+?rsP7K_%x#B}%W~q{ks$ z2zu@dziB7{3;>|4&{rLxS2=ySU8!`=81L?2f&<6sTb~}^6TEPCGTZuK6+ECo2;_qr znE+mIM!Rc)^CP%fSmcxB{R;jf`!W9#wKp=xuYLSGL%aB9RR{NmYM zhpy66O}n|Qu*gx$S&n8N$T+iSR@G`I!)#68lmQdWPhf@F)U^mHc|(J_4gmp}Lu)Wl z)7ia%Bb>>7VvYX=7U?;7&KL*2NpkoYVPqW2T{C`Wx?4TBLTGczPA`-+;-5pt>5V*b z{UDD{btS0&_?TYOA%!Sl=&uKsHd}fxrlCRsa;;i>wG{4q}D{l|T1F+A!?v!p3E(Ob9xu!yL zkKf=I7cpDcC;G~3paiY_=d2`r-ppE=Yo*^|JxVvxV2B-uEm*zQ6ZE(#f{0mxO6`zA z*AkQ&4L7E-@YYsKeSf}eZWU(N*A@2YG?X~dt-jbmj-Dz10&8hcXF(H;SH$Gab; zxXZx^a2vP1RxsTO!K~GNenx68M7DvsT)s!T*RCHIKGOyj&yi>134O3Wu8Ez}bwi*h zIw^w=ZDxwTbWi)fp}y@eEpH;4%rQ024<8uh;Pb(X(h_oF2U|@Y!c;Rr9_4&XLns-W zj4Y!A&d*w_2GK8Apg846Bcop#S`P9mGGXQBqLbI-(?jAuTT|s={)sy)u#g5Gk$K74 zVcII-?DLb4Oe~0uO^@*-XzWaWnch`{L;~!n+`%6m{aO;n!*Z&p(GUkFlzU^`%V4Wi z_=d2c13(+^{v+js=7MR#R}?7Q7>N&FtI@7xGI)EOrEWXk4-9-n9y(W^R99_LvPj0G zuwb1?T)HQcnlGGF2%6<)17OAv@W=^}4x#Cs=Zwx}GrA0XY|U7r14pH=lf)jAkshsl z1!Ch)7iavMcDDlHnH?a{DME@79wgyQNZ{7;2B1UkdFq$~czF|mY6LG4777T-k6|p8 zdhiOVGayM{#;q4dJs-6W6BFkW(@0)0c90e9ePa@esZBVwk%NM*^Q*p~UNI7r!YNZm zv`;5mJGG=j?qTixQy%*t^6!A)2`5?ig2M;OtB+rXAN<{Ob8Z!jzq-`&G9*> ztSi?O4nm$)dw{anO>$IG;?L!JACar_Xc*LYn_wZNT66J&gR2IAM z1k4I_CE>#Ol>A$2^PvaV?$eur2A{t@JbL~Sg6qjETVDB8_|$6OM5}KRAr<&Q>XE3W zFwI`fE_vdGPQ_U(?0dmPYsa2DJfq}jH z)GqRJ&U5GI%Gke(UJ9JzyK?~I-`>G%%*VkM z-0$K$j_5VHp2#V_I|i#5Zs7ztIK_9D{5KX%)Yy9Jzu=%xu4wA`-(UNXaQOEfeB?=j zGr#vQIH=x|b1U4G?*E@IzWWc|!9PDcCxqTQ$Nus)pEcjs&J0?$x#c zWQceb;*WBBrZkp5{Gg_oW&>x*!>s)O;;FI4j2C)$7N4*{YjO*%;j16!sgA z7`-MF_;sNPoXy?EyTI25!hjz)-lQ7O$tcet1xn=$z={hIm#>VD-uzm@x^5d^WhUh_ zGpDT|9vWbSAoE0b?d0jBaEmZJFm(S5C{6*}kgZ^R;5YsQ;wQB+6fTe`i=t5^Xzd3U z6VfV&??#b?3X7*+-Vu{;?#?L4UrEB#scc?LT`V|MOm26SnI7n@FHipjPC+44ZHKp_IzTl|B$zH8AkDF>$T%4)^2i@bAD7BfZkYIPL&t@0W z5jHP#oUxZO#k?!muYJDSR_dGjspO;XULwbxuwYnN@=kR)J<2J-&jOcjkC%h`4uSZ= z>lO;L_k92-&5(z<#_nD8y8KhUSE`Jeiq1Q4bu0HAFQUWzCZ=CtrKQ`X4PQ_hpeu(; z!9lb)`4KQP(VC6~e5Wszhna(w^jsObo>M*I^i+|pNmA+md;Vswe3X_DRP z_sTZ{KFNhmf?QjM6pXt+TMgyJY0YDze7p7m2=~V=mgZ{Cov>B1JBg9zPZu#c6?V<$ zWs=T!V8gkGJl*4(T&|aZ!@#677e=P?kLLA#(eO{TJ9DVnnhGw&y3SVtPW>p?kL7QL z9I`(A5O}DCFq0%My*7CdKh)Zxu1~o2jHC`;5yM)S6iWRj&S{cyK-+2JkLc>RjE_UxUYs*?xA6g*1 zk$d)YK7#GPm}Y)Kh>7T9*U~6y+d(RVHR`-0wmL+{vm~IJ0V&=L=kUO-nvPQ59}3*{ zYCoYf$>`z@Uag-KwZ~|pzk^#_7SF&l*=^< zhoa4R+${aFPtV26e|3>Ddb^X@sE3eOzksm5%_u#)(8H^hAl$jeFM%|AtY&{KcW=HA z9nV6VXr!3MpgYTiA9tZ|boGZ^1o~BBi!dFO<*O-z`gfYrdMjPjy&BuwH-&u534k1Ox?oQ{o zkDSTi*u%eI!~bE6&;QGlK^YYy=mhkjbepKvccC4Pd-~oI235_^XW;tWS=VlFs|MNO zsjc;y54MGRrPve*rd8B-Z?NOD*9HyZ^pxXyaI38ZuoDS(1B#==(ETQETc*VJA9Z5~ zZUNUh7n&&_j?n^SyM*lfaqa`7L6T<6 zmwhlPw;c_$yIi9M#_cfLl7py4<31uLrOy$OlXH#(CYU~!CO?ozEUyo(bSt;9(~!5q z@#*{6FxZh5`Kvb_M2^4PE5v@3LzcK}>;2?K+KbQoMT&PvJcTqgEL~+=*|x$Ja*Kk; z*-Uo*fm_?#Eta`7=317x*_KZ0v^;MJA4kRBWpS7 z8lawFa79h<$urW7w*<6*M$qc)mF_5u`g6ev_t+KWuxt^((%`mr3>qZhhQ2HC#GT!n z0EyuiOPDl2uGYo@L)v}X08x3~eU>=4&u6bh)B^Dn`rG$2L>Bw1_u=lVjM&Y&!wWeO z=kNozS`!A%>d<8)!L0?6yPFU)PLZ?BA~&70#+!QMOSxL7_2p}X8EP-)h`@a_0Dj3; z*$2&BAbNK?x+C+fe4GPvGeWB-OaXd)!e(-NmWV2I_v)t%@HT$of2Lp_ZKDbrWItwb z?}Qz9(IO;>wB;mf7kb2s1%L!b$>~SIy(g=5ito~%%8ybNAjd=La8D*YnHnNnHBaP| z0%#`#Rzqh`<+M{2?p|oXLNcAY#ou#jpDWydWS2Y;#9(Ptx5BV~XhD%L{c6Am=|HWa z@|C=(Y&*QEXpy^x*!Qnl>e76k&sT;<8buOgFFnXJ5HLe0<-!WPERPJ*aTU9|2w?|qD}1jB7pm>QlqK9eM9BW?x*p6lT(L9J4_ zG$6Pj#n{M2f%=T*V(oxpz^(y<405O{8e0uA^&wAGa{OoKmN8f@VW4oRy)YN*0kz=PLaS-lwkF)D&>XG~89hK7Wh0gxucGh^>&fx3g>3n1@);x1f8T=kAd%(th zy?j5XN;H!<17=G#2VAu80vmve2!{xVc%ny@GjH?1GzCI~jd${lb^xwWd|5&?z4tcH?-#r-KR`5Pbb zyLSE89rIsYyZ-;*F~4iq56K9iNeEw9I8_kHK`d85h=GZOsOj}AIgvIk6hB+n5LL}4 zGgGBesK*pSM%{Xrunm*#Q3{bEGU^CfTV8&#%ONN*b9aZ#vd0}UM>l4x9kqO~v)VFA~l*u;e( zFrU;I+>f{Az+h=I)1$po(7U@G`c@p@Rr~Ty_brUg5!UrV&%FQ$fPbO8sr_V1C=B4Y zNZjM51jUB$NOCjE88yP0gQ-w9uICGzo&NMo{Ykq^(1t9XHYkaOlXAof_a1M zq$j@f3-BIWUL~NgV*`~|dF%XwT7|fgr>t1<1VT)wDuX3Pvth^uR5J&Zf>G-a{ZyoKXjEs?>zR_ zkkNvK&FX~>B@xyhussts+Az9XU7$f|XV?=dke|ld68GIF?LTvj$)9<0&mlm=N2NQj zV~*{A($gi^N06Q2f`Ecp*NT2Zc~>r1Gm1n8a(>kDhbqKywZS;qRd6Yfk7;GdKX7eiXG72u$t1J(|ST z5br-1d8lbZibRI)uk1Pwoa|qf9Lw-T(G1?nT1|n&YB5_NUPduuF?}e(Hs+py4{E^h zCK2pUU)MkLytqnt3~HBZ!_SVMcXaq{#A!McqV!o{24I%0v)PWDv1UBF_Vx8v51ma# zVQ48%a_wSYV@M9~_JG2RFm@ zul&I&kJ0-%@>&sdsHuD~>%ZF{oS;k!2Q%2Z@~DD%3)y}1_aEG?LmH0~f>YXdv+l(F zV1^{zjQ_AX8P_p3H}J>qo&WiH@JkSO>$)8hgTk>;To(39MB0{D|5;@iom2|kH4a5k z$7_!HzbWWp{W0;hsYnb}3%VODl*~#K;WVia|E#mjA%bY}Y>ZQ&%eoH1XoDW{RDJ6>!U2JVaiZeo=!6g9cOeCD>KaPTh=~4GAVOE^ zu!w6tW;Hk6|a2K5j?HewUm zY9SJ{f`W;P?~=@@gd$kEwN|c8f%$`2JuK_S@zy3Nh=!b1v5HzyN9pzBb@U?akz+ke zAc(5rt;@DQ$E4U3lpTUqMnH`xklDA@H(EdH$Box-*UpTEU!C5Hmtw2y$2>cBj5Q9@ z2qr#-Ngq8*`0Lcc;Cz(We>Qcbs%QsJ4{7!H|F`=nnWpFd^ikGuAPx6_f0P1(9SIpg z5VYxoc4)7y69RnWg@fq+(*_AfQ4BN>5od4|5x2=jkR62rmI6)vUtPUKlUqTCN3cJp zNNGYyJ>+*(sOsLBkMu6Msm`14KiXCDu*4o@u^`Wv;l&|wJ+Q$u(0wu3VT2yCnt23+ z{K7@yFB0xC5!v?QkZ4Q#k0ysC&QJ-`=|i{_w@WoIQrL~rvT3dgLuCZD%tCCs+ff6# zB*Qt;r{WrX3)B>L$L#!nw4e6Bz2^OiQ%(D~n)mAa7@&gHkclx&o<~rgS&>Y5U#i87 zlqWSN$pv0*q!HAd@O>N}Dvl0E!@|aSF*UZO_r!X3NuJ^>B4|VO%Dt(aIw%A0RGs`G z#RtI2AYh_JwHe@{E$Ft_MUjD3hg1nc>$!`fLh=zdjvrP(rPvh*^o+rQg{Q_;0MQ9a zq(>8x69IxhA5Mf<-yT3ITx~LcF26By#uo_!C=Z!v)!PiVV`)Hv*l8~adS@t z&uX8P0K#)DrCpWEI0n5u;!Bg`Y);*}U)kEjApv&p4MOqVvpIshg>oQZ47R%|uKY@E z^F8~{s{=jkLgH!b$~dlW>2S`wI|D=B?~C9mUgsC*xnkS*wz+s=s1K#Ag%Uq`Gl+=9 z)a+rrc~RUNKBGIgN4^+$jlmoQ<4Of5G=MMevIDiLgL|Obz^PS^IQl9nQc=Eo9qxr% zuzy;S%n$)s`G=~ZAs&D1pN`|w<=P48{LS_~zc3VL3ctA%slIjOSL;RczbL%>^QEhK z5le)(cpec=;S}Eexqtc_3kX42kpb>)z8znec2X|T{sm#N(=FAb2aMGmxTV1PzK@S1_g&s!dh?$b-u;(f zx+gz%r7Gvc1R!kVt};`7-ek`-Rc(Dv|MXLXqkflaC*({`HmfE%{nNDF~(Ngg^O1+ig**x1A`INZ;B@p_3~(>cxhG1;8u-R5iuPL5AGk65AV`&S2MTa@oS=WE6(ZI(W7>X6;ox zNbu_sn4*(AjRI5^m81Yj9B`g6scQMT{7}(X(H~uo@|Ojnm;a8WgJ?TtnntF zgiw6!PfD-8|EnJTfdL~!|7FVjf2tn+rL+6erRdiIfJ>)0SN<1sZxz&L+{NocfRNx& z+})v2w0Q7h4aMCd#ogNmcXufSr&xjF(&8>DUZl7dC{VOea`?V|WY3wiug6&u_r@Ea?md*v8(uheT>y9G{tRB>Mg$H{}ZJ={;5$0zMI;FPpY1$_c0+zRKH0)ksXRqe{?8e_FY9cJ`?hf~ zPix&;r~fv=KNYdh7ELb!xb(EQ|34^|Kfl(e|FfM(19JW^xARukq_(QP7}(N?&B!NW z;8rv^VPrFc^FnN1m%Itq8_U!NgTx9iz@9qU-hWEv`d~Xr4#>6h|Eg5}KfP0d{=eyD zxViB=nUdQf4CU4QSX(pR%)$S2?&+z<(9i&p|BE5qGiC_Zr24@Bd<5jbMK;8TO6L?D zO=TfrMLF-N{%9=!k0k2oiCMO7ldel5?g4`rjekk$kaeBhFf` zUMVu0&~4R{%WF@gO#i=rSiV=;5@8RxBmm7~X^7%dGLJy?I%ClO6xM^7J;AqkSS;j} z@(rdH5CYUkUhl@;Y)_&4e-ice3X_<3+&etWwTH8nIu45c6Pj9m5MMfl=IZ93Q_(EH zBQ*ck+fKyp8&l%l7DkU7+q^F`^%s0QiSQC@I=-`dJHPbBN%jP|!rCUb8;N?t0uN*| z*0c(r(hLBE#mIU6(RlkpO>v*h)z*y8`FGe+D z5W(h|q8nSH$KJD=Zj$j10y2^b`d4Gli~ikLgXIknx4szheY}b zge<07ycF=l!dy3E)L>>{2OfP}stE)3>>oE0h-*HJXBA2eO?8xn)r6^K_H}>-TL?l^ z!WOn7Ea9Bbj+X4h-d7{zwq{VrH|t!>tHx#TCI@OJ`;NCf zEnqu61KCW`chz|?=LRflfwvN)vg8Q#P4}R#aP#fFEw(h8eXJBa0_&i9rF_pKVyf`x z#1V>VbmQ+kTR91I2dwpR*2F)U<9HsC7m?-bRT&-nO6PJtSh6Us4IY zQxpGQNb;;JOjw22lNc9sd|3LI(OIYwdXj#J59FTDju!*n3I^o-NI z`e8F?@U)#3ScpH3s`39n`C-kcW|&N#oKf-{A=c!707FlbsI1Wmd+szQCd1dl*e@nO z=ssilK2a{(Iy&jJWz5R7)fi$0tPT>evVJ5eEX zGm4si|MyQJ8a}5`Oja_DqF46MrzkH;U`V8Bdcj?~nmmV^w!32*D?Xn*Cugs=n&MUo zBmO5<6`UC;s}=THdWD?9*o-|+X_-L6Ck+S32^h&GqwtknurD>k)VX&B0e%%UN^P!~ z`l?b@v+7OO*j%~9)hG3Y*DqwxLag6hRT)lJ={Fcpkkufv6GlH74y!FR=FS(+Uv8^U zk1fCnN^9K{oTNWF&etx_*O~ou{J!%)KnEbQXk!TGQlBzug_23N)wG)7`#`-az%G{= z1vIO&zJ^Tqa6hA4eu0vvHEk4VFu&IV~&|$;`E%Ia=2D(QFYBN zUtIWHv)&rPuNPXrP1d^O#%VC~hBtQN^IJelSJzIj+WY5gJqx*@dmY{#-zQy7GXxBe zsTVrd=j;5vj@E)Q{kjeksy)bFto$jz={`&N9Bk5QzBG07^>*^}`y1TZzoD7m&0bN;_~#4yw?8uQqp| z)>2fK@~emI^N%-Od#JUXX;iQf0{i3#Lz=*Jc%*AFg&8brnQ8(@xyb@6!A{v^xhAs3 zEqh!2P(3KHEQkK0;^U7)?Y!k0aT%W|y~(4m<+;77>^{{F(mxGUBo-F2&fPpTfBjqT z81B*+c8}07vc1kN7jkvAD0$|&b@Piy$-=! zlG@Hapd)NsXq~#MQ>Uvuq?bS*(#>X3KPX7F9RHBy-OIf3I$?-?-DP)l()hUi1-gIY z_I#tTy;X0*KU35ygU1JPFTF+%>)9MO_IvT$f6TfYzRD4-!m2_k%lJkt318;Ker)Y` zuvqQ;HLatrapOYCvS2?BDPQ*L?wPS;@$XqNg@fx9rw*ds84khd6`cWB+4yxqUseMh zW*1uPhZ~RM+$NTVTF#@^x=+HcuQ=3Dj&1ApnO!uy%mSt!I_5YBY~k02%{6QJOQ)uos*Yypns z(79F#BC-sciSTt0b*9J;8LfbYmK*j_1OZ?s!yFE*s%E#s@9q`h*dcIEP77TBx5Sk1 zpNTvE7K2Nc5n;1gJ%_y&%+|Pbcq@`^DP>1AlOC4k_d$v>^j0ivyCNJ@G(3;(gDA{V zdMQ}r;Juc(CDi{tUQ3wWqCTm(iC$Z{)speKeq;?kN6 zY32}Z?syw6mW}1h7$HC6;T3IkB^nT>8jWA?LY>rNDu$)2*6MzKs(08KCF_`jNBcg1Bt&RfN7N#tI8SM zmjS3i;%}f4RGh`Mi^o<`TGreW)-5@^Q^xg|VJ;!@7vcDQn6aI0(S3I4B?1J!NZ_CV zK`x{B5M@-gcuXxU2IH1+iqq5^iRXmGo2!f}icV-(!d!C4S3sgEy5mnWCiaoV>{2qM zM<<4~C0_YskfSBdbD9T@#C_St+Cborc%u(KeR^e_J7+S=5__D|b@DbkD?$T@D`^pw z8fORW2msOc@<$s8N*)cs8m#D4L{rXmG!jM2-Zg0Wv7LtQ0n)gzgBd&*1&L5hd9GoL7lo z=94cuBRkL%73&i!EEDjqW4Mw57NaQ`y*R?7>A&ak7Tq!QjM8i+5qnNv8BS(E4j-jO zzg053cqlogjq}TFr9;;rSZNs7gw?N-ohlQ(+B_HZ@`Zi#ewPJo4dwwvbFA)i&#nUY z?D8?9a@ZpCONR2%Gcl?UbKk{S0+{kBQJ|o(ESsgfx65G5)lcy~qfuL6*#6<$!%+(e z9P=$&bk1Eta7z>lnHeKmcykrtxe4G$7Nk}d29XzL0TDNBPx;Pg-d2d+XoUAdP;7J_ zWC(F_<@2rqKoT3D`x1uZ_?DX5g7z<=xv%yDS4_ERalC%<>>AB!I~WFXG)T_AHCxlf%?MD{B)jFFZ8R8ng3)Jf{zc(O1)_fCBB&%B$xp-v6yI zLXeo(0~G~Q;C4k_yM-QhSmvmnn3{p|FLRZt4u&3MZ@vB&3C6^H@Ikk2Dper!cG@V9 z$}RaIg2@-)R0#hY^WK+poMJz2 zeT941Km=|m5#FFBmR~hE5Q>+$0qR9y2NFHOQ*e7Nv66_|d}#3ep5QA;z?fn)@pxks zb&w(y&l}$AVhQZ6$8{mX%XM!}st5KG;Z+df*(bN>%5@Aff;!;%YVa=-xD}X^fv%km zhw}~ZMOsr;uqy;`5)t5BD4t^#xFQ*ANdTvVv8x0DE)l?)6u{|4b|s#5g$pzj(fH`E z81Tnc_ilhXQ5&6=PFP{;nBPtCk`TB)JfKb}UIqMXuUto>I}S{;^W9*}R#}65u1Uv= zL01sEHv+c;f!)i4hxq_XdVS7<`Ri`F2k=0j`eH*3RAYrVRUrW$-u;5XCPm8SZ(@wNS?uUmOd{er_I z+1l-WFy4%Revv&fsoSz(I_};)(LO&xWS{AAHEM5H<&mc|7++x+S24X@)fI2?6VIum z=Jle)1UK>YjrWv+F;K6@Mr;G?xF#?v(og(602)$lzoDa1;l;o)S!>$d&lL6;+9~J(?oUN1<~J*!uy6?rsu!ui_Q>Vnc6Qx72pG}9%cmSW?x9p3Zp&_ zsPZ<>Et}kG=P|>kB}Bf9(9Oxy%@s@3ORde0M$Am$&1C=evv2VYU1*>i@pa6yJGv$G z%b7Rso;O{aH~%;yE}7 ze2$BAeu7ESn#;R{cc1r7Vx`||OxDP)IKb(kx4gFJ9iw>~=AR}tR#(m2Yx-Lx^O#;H zx!d{92Fx|h2WV-o-lwn3h%BiXPEEuwMEfUHl&{uYP5C-bj$bYR9mt$rn`%Y1uJ}** zyE(0*4BnX?h7oPNb(;SkRBJPG;#fTyk3018HMYy_=no9?l~o(3=ox8t6+DEThf>wQ1X1FvbPU&mXc1wqHLQ zZatn}EsH_2V^RtPJTZra$HRhvWsSJbLfq z{mI`?Qo0(Z9FNqQMrs(xM=sZW9@};j}AS0$rZ|Xpg6@f;489fuKXI za@ANrIZR0F&Rtcw9pC;ItYv=b>6$nSIZOqk-KiZcKFb>Ovl#tkS9_E|`P4@piJwLb z(p&8T=;ml09cP5ONIZKa+E6vv90BgA?}{4!#7>K+fYwo|-Vw~h;F?g{u%B!R)8L@R zqdx;xY=A-!7s%yuJ$`CfRO32P<1NVz_PS%3@@B_r>D2uVGJL<*{z=CPfm@na_BtPs zl;>W;I522g8F_@&v4P&(bK-*d+OdI!!^lwLjj{|QzXLUjBgF#>E8|d?OwIkORpkfw}J3E@vPY0UUg^FTYTGCpsF~Pht9*&aN5U z_KLH8UssI;^RsdDvghLL`t83f6Yarg(H*jErCnW%3J}=(6bADIZUzN=;2U2E=JHG z0!;CCHw5MDZ*bdMYq1eL#!c8o;(SPa+?5FLS^oBK1%+z;z|&Qf_pfKX$DQ{}>c1_x z$ae4FPEOw5&ENl$db(C+QJ0_pZG7u+3;fmuLRS21ta)r5O%QU03`22-Ov}=q$x$bgb7EaWO@zk;63PubzFpSjM zjW5W5Z{(FWWTYYI(5T0FyWF%gQ*Ig>{Jn+Ew5=Aq_Z@bePmKo4Yu6*gbIs~> zK8rotYp4Af8{)<0abIC;B>p*dX^ydoe2?j`AzzfH@b7_1bu8ug#*)_dlV2lRgH?mt zl;*y?8aIFcuyK?_lrQ_CpzZV3Aw8wTK0(0v{KncK#juR2@Zp~BY+RI9ee-Sj(5A&t zne~_MW7l8O7T4GPg5s_(+~gLISOi3>fAJL!7lD7Y?SE9tA(e9vhnmZMxG3j$_q>Tt{P+utp76A1Y{z}TvByCUzJNHQ#+-ZD)M1AH(I3sb1e9|Z7Kk!UxZ#G?MPLc)0 zd#iScp1782;l_^7p3*auzSd}6CDpya^SaVAw8`+%H+E|FDO03@>3#t-A)E{(+{kZ*mYNP1&e2wgR^hn-FjR#hugQ}V{jX~5%UlZ5Pt7{Y2S~5RV&vB6(Q}0%mZJac&Yr9GQ%~8W03n>hT@9eT82N<_qPh$)JU|7X36xoj^*+7 z(|ONlrYG}8$7XahQQ?%|rbbcp&NiJzlWaNN#P`mQ(f~+mpX=0e2gwoX4sa+4D&XIL z{}0Q#wkMax7+R8+cmj(>dKuT1l)V4@8TARfB=BvC+05d8mK-o`CV5-J*ZC=7xALo< zS3k(5WkosLMwgf@cRuQ@`QEkbPmAQ-EJ2ltTMq_Bu)D=#+&%OSwx;-Z_%}~l%OOoo zVNZXqtYFJAJ_BzrrKC`)AH!mcU4LS$BXmq#bqwD5#B3_-Xbu>Z#kg%dwoYA_dpR7a zM{S;VORXyDJzTd}c4s@)-s#`H{)l^`SASVtq4{^9GU>D15nPP+<;lwybARQ3kra2I zG}y>s3Apc^oGvW56N^tStUKOCTyLdS-xDf++tEy_kPX-^bAh60Vo}SOl6p!!cgKlv{NYYrN z$#1*qrF%e6uu!kgu`>fwr{ttQf+~wMrxH<-4A8qW`H~A4JF;T-vP*$<)VQR#KCu(MRvbS2oV{oYH;}iM^y`PpNIS1@~A>m^G+gcsAbBn^+Sj z&&HR^mI|X1hRP_V;~3e|K~SI^a~S~bS`Sb>7lLWshn>RoW|X>KFwxbJDgVz~`;>xq zb=`CPq*Ws}PpPM2r2i(Mf-;JwZ>i8D^Z=lEpe&T@f$#I;PvIBu60&hp6@P*^y!5aT z_T>$9tOInqT$o&PJQXWXd@)w9>b}J0tQKRpSHa&+9qCV7{IA|S^3rufggQ1O65m|N zp_3h`spdjSi<(pld2RH#2Pklx;8gzxcDei{SklHW0kR2>pU96il(*uAhX z|13cc8SUS>Ul()Bi>UAcZ;8pCAxMKqf)3?^lrJB#kyZ#kBDbGAGe+&G=tCUuZjCDjccpJ#6snD@>)^DjvK7}U*MSzUS7?tC{qn^)`?y>wLq z!g1VFXyABts;NY;yrxY&AMs)#-FoX5F>6$;Q1`TpN1|@mo69kOUI&}pm8s%_g` zeHt1LC+8BHJXDLuh4fq88cQIjiqV)(xo1XoSENXGFRnRg)-x>l8BcmIo^^|7&ZM&) z^F-!Hl{)Rz5EE9?)>14d#y%s=RDjgJ(R9$BSK-w|2%)%9p~aM?|Go~fL~GALG4K&(?B1%*P4y|{Fcos z{qoL!qHt2goclE0LzjYLx*bBKK6ITy|pE+?dABmAYZagQS*{MocZJ)Gs#G9)o*W7|fgNqqJlIuB+E zmY7QXM8x|rQp>;03b2q*83I{VCL08~^;!crUY<8I5?aq3REMx;fM&2_$_c}MmQX<) zi10RX322Dr5*lw`vxe*4dcRE98*jPsa&rb4@cqXZH#XAk(?Q08HJ|U1_OQ^?3Iv8w zYy<9K=RZ=X`Yv`Eb<8k->3K^r?ZM~q9+}TDPu%^&*+V@r*jRPIDeDpJ^j1OBDl*x* zNK`+kG9)^mpcE^dqodN4tD=PC-Kooxl7K*MRF4=&b`mmzUaKg|Oz|t_Tx+NRtzhg1 zq2lEf(|w4>XV3HOH4GQ=L9SCq(4x9bj@x`Vqq0Yk%BoCusDC)i((@%m3Fj7%;Bz4f z?S{~kS3^O<+|;}Gduof&3oTy8qk8Wl z+TfSo7==kWxVS`MsPQ!;^6HECHsf!?+zqWZIf zq(l=X9-(*~6um=VePG8hNt!hAf+hJ0_7b;EU|PaMD6R-ei7r3mR^gRWC6(W-j)p2w zm%gGthD2*!CcLIihVrIO8@}wwRg&|Hp>rCLJAU4;&>gMXpKlm#T9aUQnPkpdPdpGq zBM@eRo}hQxt5aRO?Ug8!Js1Hm@bFf?j~;r=R_2Echix=6j01Fn1`a?K3(NSgjKM+& z@pIJtk5wb~F|m|NF)h|n-hBS;7pLkSQvEO*A} zMK@7_&*jFAgbLBT;_QEsCiN<kR|EtveSHcRaMkN9bHVt=hi5+V4 zc}`WvU?rhVT>A0;^V<>9@lhW6G32eFKDQj4x$%qOi$rIE7nlw8{u%0_V+uTCPaEx9 z)tAIl$}a=dGI<-miAxLWjzzr~ zK>eI@MCu1lp9XEObMXMF>bE(Dfzt8Zc7AZ4fM1Zt2yfwsM!Yx;wl%|{3Y@+%=ZRy1 ziNYVl)3kMwma&sH@j|g&Y%HQnIPpkQH89KMp@3#!EU&X#!G*sj>Mv!SelMBMT`F{j zu`*=>X*l5!huiF4nt{v+uNT@S!jA*>l+>u#hDHK!n8d(o}G+)1}OZ4CIRiq zuZk8$V#wEr>M(_Jheu1ghm%eK@?hxFJyTmIO#ciqq=_(dO~B8IFy%Srpk8tp5 zPK2kPv3^^a&46$L*~BAg7%?TFXt>CT>a@vrN`RRvI*KR(ta8Q?;vU{(@@iY5o|UR> zjy3vZHY_$(QeQp9Qchcf2e^d9&_rVKw4tx-h*;J4k|VKt8%H4>g_HiNOS~j&im5!( zi9lpHCLgeXCZca9g2o+Fx*knvDT40V6t1cwkLv7VSd0o0CZEgPk7N~EX7#U2GJLe5 zItW}`ajXrR2+=n5vY-?!GYl1I7x3w)G+eND52rz5wDSOcwqEZaC`h&IiuXeoRncpI z&09uy>!>Qepu>`e!jDX1RQ$s;>c5h=g}`tlagkUOPy=5*Fth5cNRwW7{pYqz9cCmM zGqeNO5W@@#_Ui5dTFSb)%rilCc$To_>(NlpM`{S6q1sDWON@sJoHZ&BpyU29DxET!P~LPFD8BC9HL?V~ZT+N^j}a9Z1TbB2iN8|qmt z!tL?jq2s;0=Fpm%XBg&mjpjoG=H_$e8oNKKFU(owSGJ)mw4-y+kJi3pTD&D)cfp!a z^;lmCU-wR5PcF0Ax6)#gU*CjUq|f4B*fIV2XYnvkh_0NHYPH^aX+a0D+%(*Hc!PuO zT8xpnf!RWc6Pa=&sD_c5xzfIY>P{6s+%UKx`5ccp6OYo|+lvGz(M zAKRsBQyV||d%2-RQ@oMLCvnr~r? zE;6pE!%R4ZJS-^32#MTiTvZ z);w=#jc)MHMxK9X&d7?&-kLEaHy|uyEZCMaXLE0v-ngBLDAG19#a2U!Sd-p;7NExq11qt^DV>X{ku7`Ft6FWH1^mTh+jp675)yIZ^>=GG_9S;LU8V@4*x6#v$bzqP zqy=&O=@SEiyNUd7og;Cak9LCece7iDPbM59hW6@z?Kk7A=CKnb>6K_;y^Xmz;BtAJ z$$pTc=a?p1T0n4+`~FKh5Z`Jl*%2J_UDyh@{pf3U39l#YA?M&2>u6cdZiCxVL?TUG z+iAkkeR08OGJ-6-{InmCG#^?Ay3#y5y+a(fB%DmUh%8&5 zzOZs>_a#x{;?eP$voUu4l}P+_|6bv*xk?TKC7()M9fqi)tDr@B^Z;`b=E$5F&j^0& zk-MD3xaN+3zpLSB`MFmF3-dr?IVZa*>MKF{6Yht8&v>0SX6lwN9HNFwQo(1~4FF0$ zASTCnO2Xt1-?N9G$MxPPkMED(X}L8O*W76xv9=#rNV*VLxRLBn)obN-%Eyyho?{xA zQx%?nrF093JgtLT&o7-5e0F90?DDTJHB{puX6u|v=eLm6Z#DxM(K7uH&jdv$-;hbEejkZf{}XNq(GEM zV6pZUL5?KDWy<8AkB!GcES@b1f07H_1As;8>}wKkcw79JMdIGli*FZoy@7{qTv3Ou z&2EqzC0vnjywk~qAs10|mnmFq&pDJ|JpVHt?h~gnfx{DzSzC?qBs;H9RF(Q7cIjpgm2^b;pS;=)kl6~^r0mvDQA1k?;XXiKZAvgSQ7j> zzSGI;z0)g{$-cmQj^BK*{oAlIm85bqnK|V`L0Y$ibu${5D`n`KJoJpDrNVt z(3#y^)-mmKGu^8Q)E*Yts9UY@cg!(G2j;M z-uEX=!cnw`)7w+>PTEf})bHNy=C2euH&6`pG@x~?Y89~r(;Ed>+`N5)RdlbfRZRyB z2yBir)RnK}slPfXZ1riYIQB~nzRWx)bsxrJfMvl#UJ$**?-hH-;iscE*e&gJp?zP9pR`g2dJ>3>JW^kN*12%e$PHs$u6JI;^)sG^>P zcqiB_zapTI^j#g`29CZBLJNG>@Z`sTqJGuvk97i%pKV%RL?=iR=^2)A3Q>mA)Q9r6 z4Ux8m@S;WY0-mo5Y!^k4J?GMT+2P)c@q~J2P_BWUGY`d6^F4MVd-{fwnRy;*-d?bd zrE?oJIv-xxsj;H$XKIW{*rzhZ%${KGA@)-ld}HD@OZHjimJxN-U0a z^QfWkmDUu|Qh}wIdF9%ABH$VCsvJAbq|1D2pJ9MfwCz=_6wd{_W8(8Q0Q<>b5$A5- z-++XZWjDn+NeB6Qq{NO}YTE}#(qJnNo#{mSkB*P3I=EHSblUIh;)>W+{FL9$?4qAQ zgo^G-7`{r{oF$isd|CWA`w*~lAxJPi`S+?5WR}rPTybr8JH|Fq9F1ECx z3WksYd_}pXND>l$`EaJ44OWMh^@0~!-Yw%b&d-i%U4kKNH|ig&=} zTLv@up&?6R!xe{R5_fOqcUQT!xfKiAB3O#Y)x2Ly(2<_7aeOV=r!g~uknfz-JmM$73B0qyFJ_^%kK+C~9Y9^jBWho9g5}b*4Utd+` zRb7>lTNn&wWxi9gpW7*Tr>vO#gs%p(EA#d3?j+|kOK^YUpsKR}#B+B;=pQ?jy;m#- z7_uy8w^FOnvVVtZnI0FL%U$1V?af`-_j82AV&@;VF0Q#@a;U<0HA%kad1Dh|h<=kq zVPOED6K~rm5*mj#aW4J(l zs3v!TJ}^(0KtJw>d>r|Zkk>rt1NDQ>6-<)^L1>PNg`w735CjWw)kFeWT5b&@4hP%3X<*Lg{re&U_V}k8RClR{p&(G_Qd^XF}$6F6x z*%T6p@|L3o-H>Odq1-Ea0 zSvc;FuXM`HX)U&2@49^elFnfvZ)DK+rariNtfRAJGhj6)g$O-kylK;u1ACsyl4=xU zJ>N?%fU_G@4Xn3FRLZXeCkHc?F8O5_V-pI)iE=4J2ju>Ij4|s0DAvnk@FSv*n-Eci zhnx8HDf0OI9uZpcd8^kq@<-nX0s5dJ>gA0P5rKYUKGhJ4(+w=bCM$gECsJpqRV3j- zC{c;{Al4Y@xsYmE3}-Miz16IIN5pG39dEL%REH21ab_&OGc=~`q9{^BbebdthPC(8 z+j2%Op*ba*?Ct1sm^@DfGJ?(qqgN`GgguBgWB2iZ=Nj`fGrm726RHb}M;kZ{uwPQb zphm>}Z1p!!{5@vGDH-cao$;l6VE1~s1V zqkZ_{-vPM(o1{;t*!UMVl!2<{9HAg(;%-D7Gq4{QvN}j4vK=josSqViT_*g;Q(~65 z2?0zXSB$mS3?dtMH0b~C@#YLvw`vK>Z9}J|Lnjt;X2Yd0EXRH$2ePG}dBKMary#J8 z&_38IHu;VzqC_?sTJBsQSUeAob1#aCW<9W)kf z@NXqcYD6U`wsGs%2F|O10M#Zg8V2AW*(x<5FO8hzS){m8g3(jy<@K-7VJ$2YNXWSx|4eC&LYVGlNQeM|j9qG^xLHQSOR{-eB`4Q}Ti@iw3*rQC^% zPlHv`@wEcOUva+p2(KN51o2j_A^o)J{8Vx||7OaCVg8;F!r-3%@n5%%(oawxWQ)!8 zqan7`<4U5>r43zLeU!97SEBE&0>ibTO5T;nzVbTN_?e}!kk{1_Hs<-v$;O zL28q3R)5^sCh(MBZ&99!4~amn2vy`TNDpDax=jxPXHW^FmL-)oviLhZmzJOHPCpZ6#ll6uulTCkIz4+^@gf-X13z z5`aal5$eKy={AsxlD?ZszLwjx9gMPA|Nkq{xZW{UOZ|%Ng5@&lI1<~?-WpEN|oG_@XWcT;&i{b6H#DJR;x(c|jWcaxQ ztfp(M5{@l|Xo!>R-`;q9B0Lx81@4>w_nZ_*WUC;e>QBHKfzx|dUESgls zeP`6a{ayGbbN%J>zZ0)-_diiGw?P*vbJYcGFJWGi8&ipGopcNedl&bwX;5GX%1fd4 z-akJ$YQ6RvKL~%%Lt!D%2pG|y5(hIt+YE+8z45z<1&Nw<8O4oX4GL!o`VY;NU1gaO zlZC#$CjV+*A8azX$f1EV5#RzwoN@$C9V2cF0{1H;-Vg$Bit(v^;s3P6jVvTMWhA^t z5I!OZiY;F+$>seBTTx;>hM<;!V;CC4GDT0Xd{8Sg`yz4)rWYgqjwk3i zQ;Gx+AcD*yssbkJ@*?UwCYqKany*Z>Lz_51;UpLRn0*Du8JSYyp{$oh43A8Vz+y%M zW+pWNgR7CO{|f9oI))S)MmmC$9>F@s#HL@&X3orRU(D`Wj5kvRYo|Yk7{9&h=T((w zRRpjp_VGgHxeJPUikW$aws;Dxc^8WLT9|piGV^jWzZEQIk>8Ttkt0$qM)xchq-S}- zUh;x}n=Q~9Mztz4@bUOxw#=m!tExOP6d;<*%=49*ha5tz3gGY9;#(*dw`bu?wBhVo zO}^V=Nkvc+Y=d5)Sfm$9q<^x=?3Li{k%CEz9PKP&hhd`EOt_a2l1p@EMtPE3bY@a? z1xFhaaa$5$TjFqe5?WhgMtM$B2#Mj2Vx!#CU{^76o2$;ov7JQ#$L7NUi+W3``d3zs zuU7my2w6wVNU$w0JG!bTD{g&{(zUJV8-O@70N0Qe*L_FHycF_x2XYO89F;QM+7gr6 zz3Nzb+iru=Vuvdl0OA(Trl7fY^Hz|4Fs$H`jynz~er8NeNC!ywKI zm0%U8XM=vVQ)J#%`r8Z9-!&E z7Tw;Jo#z_0Y5y0(;9L%iEN3z>S2$FgKh?#`<-> zrS=bY+|zRKR~zt=Jy-?}{MY_9WrZ7c1^Bewt$@+%FT3kC&}GO<^KlzCDbG2*)fRFA~?}T=Qv!o z9Dk?8aGITnKr^cU!E!+;1D0mauDi~Fh?C9N_Noa6(36CUj;z+ za$?SMX7{pi!m;ZeY2e&7p;a&JqLO@7sG1;DhX6XmPh_xA`gHUf*Ea%OA@r7SsJL{# z$nenR_mR5~)31imLo3Uc5rvIQj@Q}ASUDXoxg8Ns&r=blL$KBs9)e|d?sQZLzUmAY z5<=6H&H|F}?&HRUM)GHeusetF*Pz#!%hhnpCGWwl4&>7U(P(#jSp3mzW_lYF0fTQM z>HQ(2J95py!&(yge8(Zq%U_=P@-*pqtZQfr@s7Qo!_?{MksVI>KYI$VvnL%Xl4CMy zE|v8QIH<;Wkz)v#pJ?2MHCP&0`ulPwZG=O<6qOa(}Bh(!q~OEpxPC{KXNhyVA- zB=FSnydVFJSKv+6I{PVZWRJHR45trf#eE=)#)zTens9{9^4{?45el8jaz5KUgPt|i zz-)dWN8Z3nZ(kym9+PV%m;WfSju9Es;`odDc-D)XAD5(u6~zC$JX3%XLa9%1O7I)} z^VIbkiYwEDmA!$%$>Ec^fhEk3Vc2s?U*Q7a@JWS&m&-4PC_EQnZbS|q*F#Ot&#y^7 z<4DL$*3;a#e7^ts{9)+x!_@PCQ#mCk^1M{AUpwdih6Vg0RYF- zf=d8HsQ!`&ewEAE2@t?CsGpE=2+==?Bj?2CfwPGIjuS0ri4*{5xr0&tpgaMvmwVXJ zXRn_WsIQEI1PH9fdi*b&SJcmmPU{Jc-85C}&xSVea5wNNL>q|LH%^vW+*AdK3O9D% z>=QDaPP3mA8#Itvc+hB_Y6w6`={U$g2vSBhAer}NpS}`GRSxa{BCGr-Nm~EEijsm_ zRr6J~ts$|Pg7T}kpNs#4J970nC@ZB%1n{xzeyT6+P36^oVU?O+s7{Uip7SNtsAkF*9`6)ULSoYfSsKq`|se3gseH05TZKi9)G@ zPOgi1>-K7aQ-9s$%8PQ75}G^Z{9pPt|B1GHl^rI77ickER10{G8g@re+$(JpcMOJ+ z26cuF)~%=Cc#W1$Nu!P3_e0ne#xvJ0#}w$Qh*z%L?=4^v@ZGAbi#)-#;%62-7E}4v z`cZkP-RuIEz(122_)b%+QpY<9CF(3F#gBQG+c<0Y$Hwei{vbo4t9E$erq_H|eAl6YiRb5HwM~s+u;uMEnM2{R!z6pCCc5jX%36!L1T=vgQ z9FD>?I6P7A0ZNr3CwZJ4CznARh33`AJACjBK=)_5o8~3nq(qcmu4)%{NHLef{6|oZ z0FepBwl@<<*ApZfO(g$`C+lHa&{Y*JXZ-svq5-tv;!MOH6Rh7DzN(ZZZ=X|ez=Vvv zI!GP@9L6+3)Fj0{6>Oy-KquTE`q4aLXc!Z+bq`3QXA*6Ycp(_gAs-|jPjR3F8~pM$ zM6Hr)Q7+ZF6Y3=V3H1ibRPl1IUsl#X0BZ>Up+pW1{oxrL(8flZON!AgcW0&6^yjrK z2Ejm|oEPd(OAKqTIfjg= z=90LA2Iu16@??*8%K)5JpdQU%S)VWKYs}|KRJKlT`^3@Qh7h8ggcFA8+o;Wlh~xo$ zOzRYdXctZg0{5LQVj}cmIbrN1!GGJ-XOvNLb>~Ua*^!)uJfIx?Hxf}`MYE{G@AUc{ zncFeDLd>L_{ixzhiHe6rMh!{TIaBh`Rl)Bz!0(2CfXs@{jI6#ro?!*1H@w6ep>ar| z=wFx@H7T^`4B!6HT{L>JFpCZ(;D)f!#uQ6CCU_7VC`>xzh33i!yRfvqq*;!J#55`gqzJ{=e?N}VJyOD4AN?xLWx)I9J_8`CXT+XLzzpEB4y zsFcg-psGVI@eFe$=&9uf1Wh4((RYf`G`-l(*a@J-G2!UD#(EVh`^_ZG^EV2}A#De= z5#dhoknAl|)o5gkDJ6MWcCP^pFi%Yb7lBQWzhKq+dosdJXdvbFI&L2?7@mt;K)QCv z=yc_2009F8#|uQU($1V}=kmw8e+jD`8;b!CDtO=*61I;Dxp9AoU*;)KemS1_i1TV& zb_$(10kTayVL8;DA3!7>(oeg0pgQ-zk#<*6ZH0~2s38Oh9$bn9cZx&N1cJL1D-NZ2 zff~?K2m}bOZE<%iRve1E7k4k-Kq&UpC4@eK5pZ^2Ioe@rr{ z)iUTrP#O|`WlKv4mfIxQVBGU`&!_r|S-fNkP0_GRLr7BBdTIQK1d+dHjc>RMA>WWe z(cf-r~;9pRGO#14v zE&WSYF(3VLs#-g~H%*ZD)m`Uu^%}uVFqe4NNRr8T-a_){cIr7AZ}5o3!(@OiEOXS? z?(X)YPGyFV%0_6a;wK3BVcJ(uEIlx1-(U-{MtwHC)wxdK%^;e^<0@QW>9ZmW36i35 zzeh2{n+Qu+%G$5hQ~7OPwC>FqhE%CNnMWMI)^R^Ubm{n8{J58G&hHOi}dm45LZC|ERs2`Rd;7>V4V zFE?qGF-dOLudtKfwwOC5NzzJL!I8Bg&l#V$BcYPCAeXhUtPf;x!tfo! zW|)_C%|bCpzTI#_RlrGz?=IiQ-DeXN6j{!Lt(j{u)Vg7KpzdcSlrVRqcpFW@8Y(Gb zdfoJbS3!dM&F!{V_@A$cfWx79kgV@7--;)R<>5|@^?Fgw>j{^92ONJP+D*aCnUyTB z)#Mjv6MuU$PYj$AIyVRl4kmE~kJUwUobBW3E3+x?td8pMKZ5CK>tf!_HFWSrPiYo# zb_1mxU5TFTjjAi{x}M6ve(FuufewG{OShP*#-1$_x5j+FCKb5t9_JTA%0ez5hIf%` zI%<2zW)QjisSE$#Gs2M7$70x)6kcGEf@?QJEpWPQ9i{L41{>xWJ*hvFF+;(bZ3 z1foz>e?KNku9kvSSa8>-qli#@uelduRD#sw31uS>)i(<@15sF(AT6&#tx7_T)gcVN zVK_~mz}zs@Cbs8Qm=|5Rk97EJv+%dR;l3&1{!QT@7Q#QKgwu9Xf4(5&uLiK7$=p$4 zkxeMD9X2lpZ4*rw5pIX$i9!Xchl9N%(wZVN79z5)A~LSX!p*?R`jJJxktHdSwkA$0 zw$`D(*a)78TIndD9d?9zR1+#Jrzxs!A*$mlDx*nsQzB9q7F}%?(VP+;jfx&#h#tR+ zo?HNT4|?`4P@P#qt|PH0)#lNQnauQC~<0;-^_{sYE6VVU$lF7$3ps*-RBXi^`Vq6E#!X`d(wp3^+5 z#<$+UdzRysVxCsymsWJ0SkjzUv6xnMomNesUi&1y-aNg*FTE)>y`?!_7dyP|I=z!V zV{|jU+dQM+FXJgJ0~C=_*q1R*kTI;GJK+Kr;L7~rm)WAh>n-Km`;)hM&if@d+at`6 z_v=qYx9GDvxdSF%uK{{#YmQKBVLvSB!#OfKV6E}?lY?J#_bm7ex6m&-rz z9F#}I2VjG;W}Q*r9K`X+joBZ)(5(W{cC6k8?oD>3{<+ z%ZDx%=tfdRcNYx)=3#nUpj#u$nJ=p2n0$X-U|kk(;7YwTlW!PVfO{qocU{=%mxzxY z<;vhHK=1gekhj~+iy|lYhCr9wL9|uuG4?<)09)XRuMCKfYUn!`|*CsUSlQ(B-|R^(rXE-A|zE<^KxYX-rd z`(^bOmZ_Yv zsGRe!Tu7^2YN=dVs$9FN1f#)dx~ixa#)?`Kg=Em`5Y2Wi4na5uym zl*_FS5tC0#oZyS2z``c;N&|zdb|O)@HD!4J$Z(gdN&i)YAJtIE)=)jGp?P0JmtMo5 zRYmfs{7gL~eltv9I4^NY39zXwj$^V;#UAJn9|%#Fsgt#&kK<^Kcg29BrPJ%4JVKE` ztCpOx@!cXK8B(B+>aXc)nT2ZwT39hP7Nm&W)__RhP zVK-lQWvD-uy!ZyH#~DdO&{etf#j2;*H?kLI*3#?En3IX*MfTZsI~VRQVKGOg(dt*@ zpOtwMMuoj^LZvr7w9BKHn_~Yp#Xo9Jlx_Bmj0x0=SC_5D=-0(BHmhj58nia1+7-y8 zz5hP<)xoX4a46a-z1qQz9{lF**Y}XJsMLyd@K>4EC%tx$e$y9~w|+@zElEXHK8x!7 zr#x*?^!qqL=w z>g>aIee4bqNXG$D%ZKuK%~n~7_ut8|JFx`736-I88jm^0EtNZylsl!MzeCT-$D#3;EJ z3MfgPEA=KWt^(zug$QgLpdJj%%t-fI2qx(wEXf!yYa6au8Lqk=u4Wvml^dzI9BKG4 zQX>E^uO^h<9sE{~sF5B9UJZ>%cMO;hTVT7A<_-f9BjdNDlZ<22a$}V%qrjnt?iK$d z8dSBk_+kb^XLRWE5jIgpdf_dZ4VG(3+sMc$l%QthSPqPqn`pBH|JDYdRgC;0CjWa& zcKrcdVi{B~0E=~x$Y6}pL}Tw{L~XXA;*r&Te&d*&@e1?=A^GGl;)yHm37V4$2EmDc z$5V_`6HKe4r*c8H0$RYBxP=N7qKW7y7Kxx2_BzHLL6V6OC;74OMcOJHDM6A>p)Eoe>xuN`-2)3 zl~(;212KdEr@qtA0BXkd0%pOmS@p_k1;lU>dXCs&hGc5$PGEM{eFW4s&z~8mtcCCZ z%Z`HQhy{nT+?%B!-~=nM;$50&%mhA+2opaK5d_!gET-L&71&OsWzOfGET*@QhV`yJewl}DU=>!Xmi1_4n*hKC)^XhW96}X^tWOoBRj8^lI1Q*|t z{Q$3|l1yUIYuXKKfZTP$O;R9?tZme*lVs)J>LM9pr95aucWg?3Y-BtjZc=_UPkMF1 zY*jiY2Ho_SRycCiHsed>2qtD7m`e)CB|c(;5pAwxpj&`0uiF?f&*=m%jBMC;Z3+kj zAhxbnopzyQA`0LMG%>O12Jmd{o@w1iZGp@)j$C0hd{F6=4#H7BXypU;h{~#r>E@(M z#CFUKLDn{=lK`|y2qcH49)s;af)!6mIXt%ktjio##1~j5Fi)_u0@!PO3+GI20=l=+ z`MG2)Q1f(Tgbp?4MUsT^*o?lyhCSNFs~y@{2&UVeP|?}r*9GqeE#u{G{bTw`a<(OQ zKj;4uoD>T_1;ggz*E@7JNUcN0U6B04A&% zjjf#Dp9_)wrp06qhkC@}>IJ!{JSU2Y`p3LFTZDf-j*`MeimC zA$XniWGZ%%kA+4fb4pX^_onBDRbZIY#DMd!{m;#pw^;*1@)wgle;?^A;3=G2Cj4z? zo_{~~_riK2@GAmA7K@vHS?+R$;~SH3b$LB_1t0qx`w~oda^;tO!-l!hetFHac@tvw zm#XP{ec>9(lA1FSm^Xnch>I(FIbHtpU-7StVwQj3;%;m7{uR65j*wk-9Ak5ur?=ar zbOpwlO5v70{CL(dcN@R%`f2WWSngNJ?ze63x4z!*2HqcI?su~9(TbS;U-uX5_m_c~ zKP;I32F*)SFthzF`~Ox+7bZ8AQRJMuNc2QEJepp@b7$df0~bUsAIrfz)uTbC*>;O# zFukjlBJzB^!2Gw3IzsZz>5h5zR$mq@)Dy_-vu_Z>lW;q-iG5&HVo=D|_r&XPwp_8s z^Ta&)NH`clSETbz1`-rSKW7*`w)u{Wi(j>}xVzb#C1prsb+c#rBl1_#Te^mqq+{v0k9IH_ zUe(=8L=RnZ5^u?_wR-QPIXMxjjSXg4U6FIL-}6BuJ%txdY5q#{*0wlb?jBWp|00j0 zRZGcuf4#DuK-Sp)OkVldo?2MPy_d{%HSIm`=6d#bE&gN(8*cE0EWb>NoUm||z-vSF z1E=kaChm6o)C9wU3e!nqq_EAR!b+&<2GA#AFY;QFogfU836&+ zC|4Nebc z3ga6%Nf{C9O07%G<=h@s%5i+2!%oYS9_H$*n9!ktbR6@qTfO zMapM^9e+Gl1&|ed334yh^^hQ%7xMEsn$HcUc3mimT)i->uNB;94B40phj`tahvzWj z-G^s8xJzHLi2J{%tCmSUz|WEgbEzYuiSjP9;ZzF4@OMoA5=VoFEsb`Acm8}ED?WZx zIvt8uF*0&!ETgt9qEN!M;GlvG_FCQChQrCM?p~1P#;uWL2c~`Ow8a1=xk_AP3hkT1lFJY7;@GKb?j<^#4DPWFz5TLY+9aV4cui{vr4O0YFk~SY zwbtz2$my~`bWw!dWam*DnH>a{^>b;tgQkCaW%;N-{8RC=_v674G$TJDG89I4eVVV| zcw^}xJ#+zhX072V))P&iOU+vFT4lvsyxMSezCczfL(1bXpK+Q($*-^smK#}uoG0qR z!J(wBKBT$Dzij)(fC2ndHGG+noC|hz0S#e+an~hg$|xr?cs2>*7m^)mox5?b_C2rg zG?2w>7 zxA)pAJ71~ydN+wHN+1>y(3mIN=x&-l*q%!xpv{t3Qu= z^#|v8Cej)@H`^`6us5t-;|ZNs=Aa7mW>cg^ z$skERAS5ivnU!ydjXdD0H&ocbQ|)!~a;1-pd27?bDXm_j`7rvpr|TPiD*kyzthmj|~Gql7k56X^tk28-dAf4?;P9vp>a3 z4X(5!8z_6b6FxMG) z<^*#xRzZ3h@Z5+}t@$623zO~&=ag$2BO~$y9XClm_6=adZxE7K!e$<35wuq>eZe#8 zhIpHwByxktvYdabVw`)TZ_Rs<%=Ovn^$AaY&}-7Q{LZBJ+cetaZSYsx&63Wug7G{h zPm#1W{9YGiV%-RCkPwadGrgtFJ&Tn}8fVxu6Q>RZBqB@1c#boY)Ya0+trcd!JTY)l zI(>KynMY#ka1OmeyR`Z}Ni4Q-U)3i#N6=K0sm;75)Vv7SxA&{j(*48-&$F1%AAHI~ z%1Kbjbz_oc7KBZJDA6@3(8=Wa#_!+f=D_q%A7el`&6Vtmpv8K$(8X3zEw_23MKwZM zq+n8?e?s8!rgnPB+BPqRopm z&9~21xlEfGG)f~aZ)EpXOpvZ~DUgCBOBV*)<)mCsrcDmAO!f2Fra)oK9h|5<9;)ooV*_ZpTj`=&6#C$5a zSvO^oSE!)&X2FF}Rhz_2;Kaj*9;sO`Gq3Q+56k37nxS3NK4@)#OA_tl&pofs(SFKu z_Kb>qU!L?2MiNZhGt&;%|A}}JA9EbP$Bb!aRZtky{WRLjYEwL@S5&L_)^aygn0^p; z`Z%HH_IVfw{V48~&&TqW=e%*|V|Wqg2_wflkMmPyjI71tmfd%x=IImPIgw`mk+WC$ zEj}=qsc;01d>*w+YrWg(}Jin*8%~0l3US$(Y16YpfX_Stg+M&rXrm88%() zq5!>4Fv-nnJ8{AtnHsw%ATr+t{yGB!I^+D&~- z36GW|w-~)O&#qGRL+b0Hc4_;Z%MjuaV!O7byPeN==d=)+EtX)glZq;~I+Ep~UdxLT zuJ{scFMww8T9R^>Vy2I>`A}~kTNx}A#4EP{pF@w1{|qTfKRlY7?mg_+CrFy?q-^IfH zOHd!rmdhMu&B&Q5K(HM}UGa{v*1R6VA2_`Dp8qrbA0~!io>nf`{i7-d+@EW0AwmT% z;A9&pEgXdIeeof$i}E9Dm=uO;%i(I<-ua$I+LBA{u~#^Q0@E*Moi2v9hZ}O+kNjCI z!>@H~S8E5~r#^rKqmQ>hW`9>NK63<95gFEt@TPFBpVpnm9RDli!``)I@dy7xqa+5! zS!t@BsfRvJV#(m@brT+zcZgqy8&q?|+H<9!aS)k36hVXW=pKq~NLz#8N7A82O<3}s zkT%MW^yYSgA^E>aWt}6azpNm*AxO;`mg)wBdBN1oik`Efbk1`ht;A6|HgEFD(EZDn zct`+vXJAT~nzT~tBV3($7?-;emw-~>QVST#N+HmdAk!7W11Y8pe#;LMdJPh~?f!g? z&lZ#NM#ieh~}&BwqEK%`8FP)gerSt zzi*UXgfu$5YJ9g1yFKqpOUZ6-0_CQ)#_X5fBr0j(WGY-J(*fW~C0~KTQsYS|jpn#_ zMv5YS4Gkgi9-q=r36Id-D6EHf3HeHTz2#8w zK1)X7EB>kmC6#C55ia82=6(9wZ)DqS73cPQodi-}RMdWa)y%lvul!F{Ww}r0(LkV> z=qquOm+*le$}VmARtDG!1_y4`1bPOZv8!9|;KEoc0cZ^N*Q5O;` z3-KM&6q9svADWV3kuNXZ@`j`k*JfvkWpD`AfFl;MB?^)W3M@5?+%=0oXqH54mSzl> zaG>ygg903|9FF+Pjy21OiK>aUY8bU1Zp7>4wCWkP9u5q6G7e9*#6>n~-rj_lS7^1i zX|;`xv;vuke6cE?)y9KH6X2lc`e9^BS_F@Fi=1|}zIHFX%i3O}QGmqupGa4m_UNeg z*ve>*;{$V$lMWh{e$PFWp*?Y>B3!Qe<2ZWSQfK~y4x`%`d|Q5@VoV}QM=4)tc|}K{ zM`!I;2eZL3wsBlYMWDJ3AKT_g+%cwCaT#BFrRx$s4)oVOOdcRK??IrI!}Qjx5# zB*#)per41<7ts4Hr*~m2iIOHbC=)$8(xtl@e^ScZSC1;lkkeyFT%lKFO*+>4`qsx5*^~ovV7C zV)Te&UC{tzT_afXlyNFvU>Kw`7U+y+;41MHSdRzQ$OY!eL>+M$?%HE9d3;}$BPQ3MrX+~q+7&tdM-=y3MqZhZMS@CTcADK~ z3iBt8K>~MJbd~B_`-i535&!Y1RQnI|e51dQwB=5W6sL_=w~Z7ZUSM*v$O;<6b&R{g z#ws4hYJ~)<0md4c#uT!~nw)a6w_<`?Q;JbDS^)&&nep1ILv~0k-B~fcyO~7L)2L{J zmXcm7H{!SMM(T^=1L{woGDRd(Jhcc=(WPuK6O8u$5M*stX6{aGIW`-+@H9$bPUQ*Z zc~rFME8;unAlA-2A-IXwQPPEf$7+1GD~?~_<2)J-sm zK2R`q<3WzWT{ScRf~gu@!u6ynP&oHlzxKno(&_i6c3e!iATnh0U5usC@q9 zS_MJ77iI=iV(s_w__3DKP!^>D0_7e=X^616kOf2er)}}mI3kO60kzbe#D826G$}2A z{LCdCRRYZPi*i_#ZaN;8H{(t zs>-EuXkyp$OU_b+&NE@6Rrs>ybY@~=^YCaN|178YoQKtqPfLp@GgBT`R=cYhRLaw- zKURhmYvG+M8=PyUO;&khR>rGVJDj}!KGqf=vTLFVzP};(D#6nIDSC<1YIoQA;2Uvt zMU}ZgU;dzV#e#KolXc?0_4u9jkcyS+Gs?@pvacPy$5OWA)=7IfEnIY;Tk) zAno4ua84Sgw)J3lJKC_gs1YIE-wh&`J-N1PjS>2T z61Iako4!m2HMUU;PeB~2c3Ebdbmw;5PGnv)Tl(U?^~Ak)qIQoP$ON(?Fk+;UqHFe> z=#^Rn5JPM|@7nj*nGVO3T=xMH;zELwG=y|Q#2M-~(nWSWcN`y?gkIz!sju#W9_a^@rH~h=kaIQ# znQ)B|MspljBe(%aO-p*u!m6ChcWwCf}{)+*NRTN>5_a zAO?aH;yHoY#H4W~58$%geK~eGz8t?Bw8b zUke!Cem|VyW6^;v4wAppvbtaXEVkvNilX;M8hI)35BFTscjnP^W1Q$h`+o~i_E8%X2A=(vMoonJ0- z;7NjFK1ZlYTEW=FXN(GTe*EEsDy!e`<9ZbSVP1k)3nSn1TyEoV9VS<%`Nq z6EZmx4d(;Hlk@n8c6OB}*G6G=lelTI0v*Tg3w)oEMaCwX0afPK{WGy1! zw+2hj<`Ry5Yu{&m+`h*&fcM-Wqonke$MMGID07wdT%M}q3WjMkfre)@RQhC9={VEu z#82Y{xzVv-i?w^tGU5qZ89HL4Q5`#N)4{9yaF1FF^T_t}kW@b97CY?*|7y;R1XT6n zO#+qZ1a!7Rvt8LsE*qV*n{r&`H_XnVO}4S1!zq8a^Qs8UePl^!)4nT~)jl5ZiV2(r zA}W!(8%LGvCU*oS;ZM8_EB9g&(<42# zHVb#-!E+MENz6jw4FfhmM)0li0}LpM$#!uc3!-U+jagA~2keTeS%K2gtvC2hL@(OR zNTs-Fi0A;?o7|lHVMamWANPG;(>aAfZADmK0VRnr7dqe&p5JLD34FMRthB=KhOyfS z5M0HSy1XFrzce8W!C15+k<>)9<~ev^bi556g=xL(|6} zhiKj&kSuuNNU2i?5+Hhf^O1vymwucXx4%2Xgz)z90-@nfSCBB_5!Q~AFIhVmV=ERf zNi*QV@>mJ%@2qs`zZ6OnbI?Vf(6O%cDULGbiF4RsU|cES_=j z^V{n`C>YA?>~#zxW!dcSbd2>cUDW#GavFdSb2vHJyb~EZ@H)VzO0c=ca2SOA#Sr?F z@U)670^d9`TTM=$nxB_6nB`ZTRFnsIr$23@Hn$*Hq-`gKo1E@VuC({`syB7J@7k{4 zc#PL7r)MVkMr5`>vUp2I!8*T~AX86Br#`w4?I)b>mltzWQQ})bA$dv^ffpoE3?=}P z%;g%k&yr_-`GOMD1LFZsK-4;a#CLuefUEq4{-~T3dpI%phk$h?7M8Y^qO&nZ%nZ}xuY?C4IWH(cft@dn!$}fby zpCauiAEp|TbXpMgiFc{|F8Pd)23dg^eqW#(RK6TK~l<2};HS^|=&2V7xy~Kiq zetdo)&3<&Sy5k{JAqzo6=RU^A1D+;Hu2m16&g+uoA&b2U@}7@Dv|LzL8=_~J5Krj` zs5EZG4`<3uvn5AvB$P6$t!^%EUz$cm0@m+esVC>0A`(w%9Qo3}*@qO_ks+Tn=FG(S zd=dv!jp6{~;6l#+_Y;xttT3@+-22sXHy4NV`ESNPO88wdE4`TE(N78pVPKNq)f2`9 zVC3FpQ-^)}VhI~5{5b{nBS@JFjNAB&QoVlKG|A&y_-^ezlm8Vf3ZMaIi?C&qoW$oX zfS3>owk&M>l8ovg#JLmf|e!gOlhb2nn#j6Yh$qhC5nmLkmWQH80C8&|B zzWZGl9G~?hf9||jV8C2+rr0sS3sRm_Jlra~lr?jud$cqc`HPaiPWm+Vutb;M7P?=U z8gO%+`#zBHp)=@1Sg?_!D-&k?1x0bgQ&51*aG*q1^QAD$iD79OCmC<3xHva*c(x#) zi!QtLz=IH0T>24IR$eo#sb5-^_2r`-K0{Q6X+H~+%rK%N``RH-`exz_m5*AB^wFO{FF2F)DW0t?_0j)$?$Xl^>rC!9 zd*kml$ay4QJv6z6nQ`?dr6u+mCdx#)jY|AP`V>e%jixJ-|Mvi9!d?+f`Meb2n;w^( zSmYbhl+`(^BU6``m^BF=tm>9zQ}=%#?cQ0eI0~ z=6mY`EjEDsKel!bOgm-3qKmY}PP_hU{mYT5 z^Ormy;{Pu9+qRrT?gB)qSne?UEU?`{?5SS-pOu%2`hPb96{oKbB|3dB>LS72hXutG zm3o!5q*FMK-!XcnhZQ4%iuI99p0(;h1K+VJ^tp@tw6Q5mp!atZjsQytkX1q+w)i-h zrVa8+IvfUh>J`E)o`|Q|#7&+!sm&^27cPV9rtWwVEZ`VTXv3qt*Ho>CNn<5_Wu`2) zDjcrx@W^mvriX>X012b|0gfu^C1MuQ)^H?COsnhVohy&9^|udCv4`;a)L5F_QqVkp zQzVp_@XSWsknTN4yb)tzv?p?oeu|Fk^feCC{Gc|@ddYw@0e={?lA3Ui_dxqeO?*|P zLjs&4O*RhmKjD@aySZw@D^D4=xcjWg&DK)jy^97OHn*5^#7oi zNX3(sI+twBf;rP*6(Mw-ZR3*8G#PsQrx%C++DZBcy{KN=0pjojw?l?To_Tj&)7i^RK z7EJu8IV@${SIa^m;KdWDkwDH8G*;& zN@ixS>N~fKS_DsSvKYEJ63%s+tW%g0m7S+uLph4+R7CEl z!UFfVsJ@$T8{d0}TLB$}#=!b-{lw$;`VC|Q+1EOx9j3Bk@O7*A=CVt95h z-+#HbzAAdrLFyLbyN|Zw_5aD@->D}I0p^4Oq&vG9gPg144+qAwaA4Srrov8KqHGE_BO5RKI~6iRd}c+y;H2AOF5w+Z0KbT)sUVg45-K?_ZSG*6!NdEW zvWxlhIC)z2mA~L|+e~7Acad(=jX=UZ_>0kMli{zksl92g2xCFFZ?!EyimN25u-_h8 z{$8@mK9#7Z-#Ta+ZXd~^yWEW68 zg3{gt{$JS1fFV5e6d-cv%3r|qM}qfGAdRf^l*oc*qRGi#CT4HKRh2N=kg~X7({-*k zJ1FZHo~c6;pv?mi^{l=Kv@(I1(D?jYnwq@Z7;UwPgP%8{H6Mg`7XC77I&TE z-0}O%U(K*s3KjbM00E6Ji_ae~dcF!v{sZBEqWiR#0>_&vgvPn+38ZhoQmFdE{)xPM z#h3;N+GF$*)=hK2`ERqmZMXYe?d43=huudt*W)(j#TQsL2<^b@oAZ0qps(8k=xvs} zoSCOBHUZ{%9b@@V6qR!@Wcxkq{O2qv#nbgqkyKU?bu{EEH1ukB;a^SI{ex`HG=NDp z0Ey?|C_sR!IY3#t^EPK(CPi96ZPWi??_n6bGh@5R>bhE`xgpyHVw><;}F|5&cyAs$Kw0iUR!a( zEDLW}SwP(^Am$BDnqI0b7RAAJibG7#wLuZpTQ=BMAr$1)fabL62ig{ex%6wQqx7z4 zM$b67j!U)`Eq4_9Dp(X;P%L!s2|&dau)~F`n&HVB>PArQ(C@lNBm$zjQUo4H)8f zw@9;|d~vnIU9|f1qxD33iV+_@-V!x5q)mM_1r?3)74+a z`}1D(UZ;`}Jep=Ih(hyH4x?HW5%>4_#YZ8R>kaNeh0+|(1NE!oKzoZ=sLi{>B3N{f zi+(p$ACN)_=gCo4Y-3kiK>!%zW@p%94-0hZe#TXCXL_o{k(O#>xsdKW_wIP1JLwG9 zeE4FXT$;lfkn;i@JO_fulLDU!0Tt8%FjQ$laA}Hl8O-u9MHNu|woJ+EP%+wtXAnoZ zf_L_cC5sOk(_f0YUWa9Em=^GvpvD!ALo1kp@rN7?IS44K6E0AYi|2-5EBg(d%)3|4 zr+|C*?^4n9au6ap)B$V|KuWM{iPF)-l^ZC4Y{bZKq`=ZVZl#pN+*3!>rmjj=4kd*x zjJ!Qt6Rh?#2KBY*2!<|`u-JCJf6hw%P*5$0=ah122B%OUSuSAYASBCeNEcym*JYO? zM@2UUoLsu1o7uga`4}qgPI1xI8CI?o@0Q+iXu<*Luvd}paL%da``U6~X1pUh&DqWc zWN1P>>MXPEKPEaW2VA?su_~aQ%JrIuiX2^iq7^U>fnNJ#MXIi@+RkZGB+C`{R4tT3 z;G~PfV<7UV>At5ltz0(;o6ut0n+D#R=$^R;Z_Vq2?Lk3i+svK3rVB+p_v>X_haFsH zx;Yc7K9$h=;kC<3?ds8WAFVbT_@1AVp>q@*OZE2R%b=!h%Sy`0QsYsnw(s8~2rHn%)g1t*2KcUtCy%4RuAxxhW!LYUuHO$(0^AK2fB5nqXaB9o zu|4k4mRk$o&ofncT$<2P*!J~(8FWU#!W|*;S%|@m{j{5pT8Cucr*g)9;#bw!>Kj6w z3g>kTl9B3C<6zHA^%$4>$W;|9os~>=Ij{K(A3y*QGrbQ)55Vh$@>TU;HUtT{2B?N!0s#Yvg~^p`{)(bA7FH=SA<2-=UvE8TsJ_A& zZDoS0wVe-B>{U1ldWdOz|9&nf5JR>$RKSu2k0L{*0j^nlXC#54B&~>(C3mHbV?22* zz-xBD*Mz1fxJ;8UG54QZhe5t$p|llUIKt}eQ#1xmT}Gp!#w)NcNKlBm%FD`g=n8`C zfe&=<#m$-ET?yiv?84tk=W+%_ZJkv(>sUHDYba$8RE3FqJtoMnsYt9KA?p?U>2hP? zuyj)rUT|7a@XK2iJA=lK6ytrb(8-&!s91sU^(utUl`$W0^XAl1{K9;pm0Pi_=rUSC z>|*1?e0v$(O`V;U*a?DZ_q$%DAl_AAkBs%b+z+NM$?#0}5`HlzJOV$TUXL)TSFsUS zeNnH%0#{LFzax3|cTEJp*mbO`YH|1!+H|y>CPetEZ+OmKgS&gFn`cF4dois7Q(2#0 zbu6_mo}kdl1Ns8xptFCXB-NlP+*=2&uXUGGa+<`}@`Tzr_B*d2CuKEpsE!u+bGEFKuod-CqwZn`(d@-u~%V+^+{v9xNPW3VX7Y0Y@-< zhBzw+fVKYJ))N40^1GJ8^pNDnkeHVtO>QbX&s1gvm@;Y}${ceLs1`;;c=C@uWo;Q= zZ5*@I3SMmprY4s8XVw~znRb(*>$cqynt~oZL+mwA==DmbH?lz!j~)GFk9#&APWgT` zylxC<-O6qbIIT^R&PEay*&A6^8W(?MK_op#<&B8?903V~d;NP2UwHHW{veLeFB@=v zW9VC@DxG0i5WFlXSfmxS{1dic{3Y;7in0p~IGhj#{`8``RIb|i-UCP`j48XOXNPBy z0W*I8n%(!9&G0+kf09O|S-js=jVHsf?H3h!iu>(lwpf&Mcm$PEOw{@H0kD*T`vx~t zubi0rP`{a{_Nu_hAK>Rp$b(&!9a}^M|39nR@mRK4U;x+uhx*H|nW0{j*Z05bZ#e6H z=&gEf!B7&9QJLjXZQ;llVUL9%jk^C;e|JZ-{!1aRf1ss-Z({s|{zFUucUAj=mNu(% zT^;^b{vU<>|D>h=qmX-T4`*uq7cKq!KMMKR_3uGAM9kVv)&HxIJLJ(aKPcqaHao*9 zVvjm1n(JP4WGF^43rdMUsJ~Nbx??Th=4Y!MMv4gEH=Hc1x^1tGJu5z4>kMhU6>Mud zi|dW!x3Ly^^84o`txTM5d&~2qg*w`ds`mF@r)xdi7`(?FAKcIPe&nlu?YMh!dAjWo z_W1j~!_DPy{{FAu1MTkbaY1xJ0GcLR1Rj?&Z7`uE9c>7y>L3l0!o-&*l*WmNCXC_j z{$@BNjAskQ@!5GRg6Bc~jTC6u--;4WeBBlO|I*UzF(Q|AEI=?ZRRK&{30M%Xz*V}F zs4aQ0lccZ8yPIrm;eo&@{^ROi8n@#bE^}f1 zGK{brxQ+!}p!PzU>UEEzGEYvLFZoC74`X!;Iu(fWmk{9Vh>b^9I3+ zT*0zp>#(wkiEp-HmD z)>+%X)W7Qcb5(Wq%}D+^xf1 z&*op94RU|IJsFs^_CBVy?MP46geYw9A*G)~eSJ8=V z$LktB@ECJ@G5->CclGmO{o(fSuLsQQJk~xdekIthiR`27pIEysiU5EtyRz=#xYsbR<|o zLO@sttZc`3>IW_kmKU}cY9xW@Nfwj}OstcFpznKlw_w$cjpsrRIe$BDzE|h zlem%$L&INqSn0l&aq7@P)U8?yVmcf%XM;6H?HPWj4E~S$EAu;bGP+2-SYyo9;&*t2`7U{FLFS4+@cwF`k_lo%=c(DbgVcB#C+zt8pX7V$naDY1xG$$kw;CjWh%~f zCXf3~D*R@OEJU51whmRQ{X+9cifUewbYH2Ur{<4mD_blSeQfd;ONPPw+cb4NCI7Ad zzA4psb0~P8pz`@XzXS+7)aA7!(okok(2arP@^#J@OHx;)`yTSVZ27@~%mW30L6-l5 zP=OcNIRHO?E6mv(8Z3~=K~1e*`9&C*0OIcj5D%s-oa@!J#G) zZz};VQ#T?_b$c3xyCcE2!>2(E@0z1SPo0!&EHwlg$wuzN-~5AG?GsAH3H~WHAJAGm z-+B`-_-R0pt!wSFR;u_v>TlAadft{Y!+)v2BkT7!f4^hm)fB2_RPz85C4#(sh_0ax zykd1Od_;9fpeQAQ?A3p%zgFi-B(x8I`v^e)_oztL|JSGp`2S8ShaO=_k1wOf|D9A0 z!v%Dr9I$w?|MKaJC$j&OREITOx(LY#KC9vXNvd||*Beu%|C>~J-jP79hKj{H=O1Nn zK+_|NR&M{3RG+n%y6@(XtNtsgviL8THXcSr_^la@1-1v`*|oAPYlL@4QpDU$GsxO5F!2P6oxx;Co)yia9Ycyr=$JfU-a^i1PaxNcPrb! zkJf*k!$ABUNVbh2AdT||;v>gdmm-asR~PQB3eP5zG1aykU+WlxLnJV`@!v@mPVZQ4 z8$$J;q$2h6Vgm{*LH{SI#4NnFLj*4Owz#8kd~}^)!fMjNJYHP7-+$v#>H7d zczpXgNE+Au+y|e2KQCJHa6dm@mG7V+*~ImrFvY3tpeW<*;X!du7~f$@!DrXQ(vqUG z!?KEo!^86GehlAHMg5%XQDxI!*-=&7<>Ar)kyL|R<;S(7l1ImNqYVTn_44N$g7sv< z1dMS@lF28H8)5vX4?exyY4d(j`Dx3Rb$TkUuq1f9?PAXDSNqjo`LB-K%cEc4f6FZB zhhWjVqq{)d6~fV{hIo&ofsX~wdZ|pce<_N*)dC}Fg)JE)>D*ST?ZLvn*l9e)73aeO zjmPIB!Zv;g-1ErWIDGW|E1yxhzsJ8PpvAz@Svkq3*{=|5wG9`%TyP8*1S6%z)FteN=lq`gNK4sb&)`ncUpypL<=<={YYgPq zQV_n-)drH*^J=r4T3%wSQ(-}3J3ea9cPBYe(r-7#;jQ0ZhFXK)&z%267%5Vt+tEY1LsS^uqeG+{gO*ZhQ9$Vul?G9f7EsxlpZmVg`JTA0 z^E=n|`y2M&J6@0H^ZB@X8n#nOiRd!b%zLV=QKLR|0G7}>Q-0mBy?wT3smap)&Ac^Z zXtpgmeX<)h~fSJu~}ka9}jPzP^1@wC=T<6g=o10LTfBlsmR7ZftfJz`h2bb zQ^)r!7aqen>&Vm%-c(U|%Bnx1(N8V!00Qhnz81;$r3fs-xuZB|OP-dgT-qYZ$B|@; z!)PkL8F*5mwK_-rvF1vs4>UY9hCBPGI{f~wfgn}-&*oVzg(bA8Urz;hfn$~Gg`a59 z?+TtU`VlquLwtf>B_GS15iRAve)>uQ4--VN74b$}xDg}iODY(8m{m$uMfB6_UKNRg zicU~{OTfp9&ga3bpE^vO0^WH)@U( zhqdGmCBDmpTS@*1!%%lWq@sHZf9-A@VC%vPTu1HG@)qzIbHfMTo#s|Ow2Oq=mu}ke zI71NEQy*D0BPnOt2ui2&VmVjUKEU3>3&fuEd5efvt^`LV*{L!V!v18a@as+{T_iXe zff&9uZ?;8^rQNc-lQ|-!%$nLxX?y#c&Ai-&VzM!oy22O#^RiEiwlSkZPPO3hDFmSU z7!XYRV(eN-(*W4-CQs9PW^%_2Q2zT<0~X6@9-Up|m1Q*+;*zQK2+V;;r( z+vHrIz=_FsrYp1vv6X#WKL9bg8®zPX=IT!c@Wql55=qZv^->B2z-PUu}bwv$@ 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 =46`(E%TIQ#kCxf4E8bSQzITsS`N6n8 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

    @mz3W}yMx`#Y2n!2Qi21JUQ;)90jgNCe!rcR@b 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

    QdlFO%Z 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 z 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

    $cBvxjN@wzBpQv#VkDpuKnN#D7DBFY z7LAKXo17PrOUCktU9wy~>zTep#@9O%brImV8-27kqDU>p!b}Ps}IvKrDo^z<5tYK2KmnNPDv`nN7>S*S-ja%ljBc!oqYLFrjFZjnC1i=bw z)PL zzBIz4t?-32e9jKfAh(ITZf}QM-68&VsewyqgSS}RRrdJDQ!~(a!&=dw_#zWnL6C(& zmm-;H_ZH7E3Q!ar-NThQi6O3Yj`Lj8>7F8$=gQ}3hy1uDCi+a^>(vjBnByG=x-wn8 z#*&-d6l=@_G=9yOhYdX$@!6p+ibi+HSOTgySB53G9Y=}KKss#Rf2Em)86a2Z!qru9P!Sdt17d*G~ zY={x*cm!P~<*q_ePdt3BZWB_RBwzq>K_+ZCJgc~l zlf3rpygD2;JDkAJ6S)kmzaQ*CYS4o_Dne_hiZon93PV9TOgI%(!Az>HVF|+y?6NaN zM21krNn*q$gu=6fL^zbhNemWDVh1twqQASuHY!4@Xoy=-LrxUHPmDqYj6_Ky#Zt_# zQ?x`GV?}Fl#c6=WMV!SR1VuQ!#YoCUS}{db>>^e4MK)?hz8FSXY(!clyHG^HQC!AY zX~teOL|~-GSQMvD#5Qbfyf}11N9@LN`NlDXwN;cxaePH`1S2sr$K_+kW3)wNY{!%S zdB;?Y$7o!mX{<+LyhdZxJ#BQsf83aWe8zzc$6&0+ax6v^8^FhMLx-Fdh~y$@oXBxR zNKaJAbX3RiD@l%I#$9yAkCezWq)2=GB7D3^L94$zP1gkvvCqG{B;4!J`zGq|BnFoX4gN%BL*J&hpBsq{@zbEq35Vc-%61 zEJ%eo$gR{zu=F_slsKad%SnMGvTVtod`VVROJS5rFQUnWWJkzrLAjhuLaEEL6v(qA zNHD5|y{yQ4)Pj73%hmEif1FH(%*n#Mq_ITIh*V5Nbj-fIC&`4w6s%0kyv+Va)J#J; z%)3;|yp+b!bjr3&zZg7C)VxfT%*@q9k=6u9B9u+GoXpx|qnhN(JmO8mY|y%T+(5p|;k^-mXN&=ghC zL1NK`q|vO}&>Ll_95u-u9`#Wf-A6E88ZLcMGc6-D^-CaC(;+R=HucgsRZ=m%(cGfbGqqC{ z#nU_u8aB01Kg}ROUC}ue)G#H|BJI;dr5Qr)P(x+ZE!|TNUDQZL8HK`uOx4sI;M7j_ zR2`0byZlE)mpVxT-8d0KnE@t=Jp5 z*n?HpjaArvMOTmw+2tA8k`-2hP1$c<*?jF-mu*;>joIIs*@-pTioMy4%~_5u*JpiM zb^TeO1z3p{Sc)ZDgT+~VMOu$t+NK4bppDw0wOOh)TB~hYrR`a!)mqZw+BF*3sWsNB zO;~*;+h{f0v#p%81tY0t+j=F{Q_Wd&O0Eea9(Xrbv!rQNH+aTaueDzzb1%SZy z*}*-W!u6uVmDi$OTvcsco`u}GmE60b+%B@*ZN*&vjYZnOt<}!`+`4^Qk`>xaJz10m z+sqZ$%_UpaUERrTU7C&8yv11BJzdAe-P{G;-F@BOMO?jAT+_8(z!hBLt((y0qS58n z#0B2wP2J~(-m;P2Eu!8}on7V~Tj!13?ai9*)uQh$SnCyExFuiDHQ%d2-z-vJiw)nt z9pCIN-}q&k`E3fXt=Mk;-S+KRS$$vrc-1{xB^;Jek}22NZRu3Z*})(M8; zppjt{&S2O**%ZEB9oAp??O~evVVXr@2QL2N2yS5>PU4zb;@55B8-C&fj^Y=d;*_c4 z6CPqGCg4{E;r;Dml=UQ-k3C|VIlTim33n>-eNPBV~wF>!>wU9 z#^N#NSr_KxK5m#luG~PbUggE%;4Nb$M&v}c;28#FJKkWG4c8ooVmLnJNd_227F|XL z-$CAFNZw;f2IWw$WFW5NHEv`M)>uw{<0D>WG;U=k4r5dH;7+#XTb|=ww&GoO|tb!PkJhKH8jq+@0p>b@pkKZf2CWSd}j7 zkJjmlPHI_^X@wqQs1{qPK5DA2YErpsp%rSqCF-q)Xuw74ucnr;?%J{T*0O$R)SYUP zR%=mV>mYXPQtfD+mFupi>$4^4fz^)X*rs=GAZFBW);I?Yp9`2?V?c?6q*CgH`A%=Y zUT^yz6a2<&{Vr_&?rre?ZvYPy0UvAvA8qeGaP?O3#U}5Gja`&I?^T^|Xr+M3p77en z0SdV7sJ-w^jc?xWYsvQT53dsj2jmjZaGe$24!>>|{}C5oWEekj2v2buuWuXo5gZ?7 z9nWk7@9`A}axxMA@@6J--8S+WNAe`U?+PdJ=zj8+j&doNk|h`CCO7UYkLWDdawy^Q zcJ}i9MsX;w@i9k{GQa0DFYq+S@-=636LE8ZhVutU@3RJJF|YF=r}7NWbLrOb&GzvG z|ML^MbA!NS?zZWbF74{pX+KZ&9kFN;$JT{rXh?@*w5Ie*PmxO>fK1QoO@DGpKk82h zbw&4SOtV&-d<#_Z%ni<&|{~clUu0^?he{^S<9= zS9n!tczq9XSGRUYXWxXc)efilivNy+AM%3-UKx*DkLPxf9}baca+0t2LPmLkSNY;# z`7U>Pj;Ga_$M=~(j+!^~o0s^GUwEE}5TAc@plA0M)_J0j5TnO)r2luAA9|)w_KRQk zjEDG*5Bi*+da4I@hsS!-EnS=kfTj2Ps_*ct2Y2|^`lO%uls|jaaC$~>@?%AKvxf4I zk9*;`bP530xsK^GVnH!f%bf|NF7Fd%+QY$9wM|e(;A2@fY0^7wBg<|LRBo+JAoSCuUg&b5Cdf_>T+qpI-Ja=RyYv1`HZB zaN-02!T}T(UWqfwAH;|fCsM3v@gl~I8aHz6=?d$h1;J|_h6BZkD=Gnw))%Ii? z)GgekFP1K8S{Eu_se21^?(F$9=+L6Gjzyf<>|(}0g$^xxR5E4DPw(cXFm*KU+`4!3 z?hUqd+0!{yH)aj_wcN^dXGhgb)i?C$(x+4J4V8(#T%%(ZW~@9+OVfd9P*Urnj0MxSf;#kL%InK>6Agb_+OVQ2%w zXW)UxB?udS0~w^BX3tSLB8erM=-y$$T`1pbZM_wlTuph{;C|7@mwzf%xE#Nh-PIggpxP<60UD37&W}9%-J4Olr9$m(e+S8k9Z-Ib@Ya(iUQu zX{xysh3X)dzAC%yjldT8D6zO2ix~hjCCe7*o&-AdsnrT zYI`oa>2d3AoPo~SD!JC~nl8Qd?zS$p?utuSgXO+zFTeqNhOhpr`WDMCwepTCFvAV| zMX;^W#yIX>3TNps#u;w~@piXPjBvc>YCJN@E^$np$3#+$ki{jt{4%2{Zt7#c;0h`& z$Q6qWGtWJ5baI9U<2+-?|N4A1(h&g-q{J%c%<|4jOWpI*Q40Mr(dAt`HP<}D6ohG< zMtrr?ml;aI1r15kHQO%(5(n5S(p<33?=pC0+HtJiHs2b*9rw&n*4*07ADdlX-h21G zIKzL3J@?pk?|V41i8FqAz>do;INgNXo!{A(V?KJingPed#|z+$ZpEw;l7aWyc=(-?_zh{wD8PTuKxD%(IXG{!Y`=chkEn}1)hIqKIFe$@Nr7f(L`w`4#3y-9xw z>L1?Z7r+HBX@I9IVEb&wKb#HEe0pOb1{(;s`#sQ4o!ejb{HMSSlF&pBoSnD2140Cb zZiFR#;e<~3yAK|ag771r3t^~30Lf5!K?~Fb4R=EeDsG2H|iPX*vRAvGLo&l=Dsd^y zt>_YyveYCk5jMzSGP5hi^dZxvbV^RPv6FK+XSo5W8l zJt@g>vXdm^Od}no*-do*5{JQTCq6;)&N+e+kiM*DJ_9O}efsf0DkMq}ot8DIp)HRB zeJDl<8cT!L5uy89sJ|}YP>6DLA`(p%$_^TYgqEpax!Y(*Q~J?bQB*@Dl~mC*n!}W; zG!BU*B}iN9qL;!;XAPYxO*y*KVA)Fkq&!_&Mo}8nhYs~w9W&}hotIRgE>)mSrQK62 zI?||`lz2+5YCf+jEF3`fU>H3qRl$l+u@+UUM}68<@2S>+vNfwNyLiWo=|9JK77CHnEXnY~?z;PTXG8wY&9EZ)N-2 zo(6Zd#BHTbsb|KU(wWtMm4Y*DC|~~@7TXicA{6U zXCMX1(x-klv@y7BUc36**}k)bCq3x&7OvM_ZRnQ2UBW-SA>8LBE4jmbR3trkt3e)iNCJm z?;iG^Z3pqZqI=^UADzeb&EInWGo}bf_Q{Wza)Pg1-cmiO#AEKgnLE7Z{3f}-O|J9B z@%+RXH#g8!>-~NP&u)& zXV#koSnOn9{-D{>9&(XmjqPX)`xUJI_5jA6=4qGu+WU=nz3)BOPCvWf=g#u4W7qA4 zpI_g5{&%`7)b1;G{NvFVd81$XbMwAC<}=^D&7+y?!DD>e^FDUb_l@*%Hoe!G3--{n zzUkpcyyO+{dCL!e^|fc4>&M;s!20y^s{g(8f`9Sh2VTpxM}FA_{$RONTVk{g@$;ci zI)+a_@zuZD^%b0b?PHGnxaa)j3m1OpAD{fYGe7m$;<5Exc>L}sy7bRqdgg1kwvBK9 z{cT_V#h;kWUrDha;RPVd4WReQpYP}jP9Wn{VD5dN`}807 zNgxOQwjKk1paX&*1U8oamEhEPAo}UvJlU59`ko7x3=F;=>?IbAbQ=QN;0=z9@=X`W zrJ!u}V6#Qw1_oi*3?X_I;RW*G42oHBwICDvj1zVk6gCECAt8u~9|>Ne)MO#N?cfnk zp`+EH7y{qn5u6!%hZkm<5(42GG7K5Qo0C1656)p7a?KrXA$N2k8vd9S_8|_op~Jml zebgEYhM^(y%pWSEk?mn4F5x3WA|e`{ByURa#kUNBF2c~Y)BC z)nY3q<1)TXFS{ni?<2DLRHv-BvB4Z_r<2V9LISz|yful68 zBQZAPxXt1_Vj~!8qdaCzJATV|p(8M=<36TKKeo#`{-P=3;y^Ov?YZGIPF*}Mq#d51 zEIy>cQAZZW@q}!XBuN>{-uK~CS{hUtemDb7Mod0=HLycYbFY8dZRoUC2f-CZN^G& znxkxL=4dkJZ^BA&x?_*c=4wu+Z60TyBxhfyCN=dWYd$A*vWZZxC1hUYk@%Yi7-x23 z%685rW-D$0Hq=u94HdnPENENFKcsG)!-fm|ippr3NT`keoP*-0j^+rDTG1lb-LW)Yj0P#5 z3~4zPY2_Vh+a;-zt_hRIrjs5ZW*}*fPAQXAscxQO^JQt2ZYh^4iI)oJl}d`3f}WI? zDVLn7a>5~At?A{pshesEocd#$=1TE}ot@t4lH{pD%4wMPDT+QQpqeR-nkSJ`C!aD@ zoswyy-iV+IVxdB+pGxYannc!K$n(>I>AW1>9-`<*JbaU8W*xuX1Ysy8)}PQYEoIsj>2Evg!z} z+A3KNE9I>qrb_FyuIjQ{Yeiz~;>n(tB5Su&NVNv*wK{9IqF$()>$yrux;AU0jw@1? zYplj=dd%y(*6XK6YpUvNgz#&)va7wq6}}3rvi>T#E~UZ#YfK$$zAEf=5Uj)cEAee> zz*6jgSnO0jY&R7N_GthXz$?f0hsT~IuF_qZjBLqH?8*8@$`Yu!BB98NAIX|*%&y1G zZfMPhtQ@jn&cf`@?ncj&=+AD_%{t%E7VW@(tGX5}#wu;lR$59hb8ldP}E$g-}XuR$N#_s0MF6|QT=klNG;;ioOE@#+o=9Xf@ z3a@k!Z|VZBp#B!?_Wo~f1aLhLFtir1 z0gna(pQHj~>H7L_1NX%PpReyqF#T3<1^#2j1?OZ0tLX%Da0gq(2M=WkKWhJya0$D_ z32$Wz*U|>JaP5Ap`GRl;i|`E7Fz+(#4Wn=l<1Uh(Ef06b(Uu|TM%Ak-ZV?m45s&TT zI%?ITDiJra6F05^Uzrl`Did2V0Aq0iYw_AGaTR;<7c*?shH?6BF~F9w8M`kSL$DaT zDj8Go8=G((WAGY}F&De>9ba!AC~t)*4>Bn?mIiEqDW7syq_X0%v4yqrE5q_t z$TA4}rS{gcD`PS)lY}lu@qG3&{wx173kS1C4D%xMvJeB9Ed#SMhXgZo;cl*Sa7A-6 zPxD1ob0A*x^!oBGbMs1g^G{SVA#0g7le1Qs^L(H)HgncGv$F>WG7zhBI3M#k)ALEV zGwM2X_(C%>^K&lSGYpS%K4TC<>1*EL9ZwHi~~L#wrDQb5>o zt6x*IK_hWU4YpjWV3H#TQ=%KbzyI|O}DjYJGNejw!~7l zNR&2am#t=}wrc9X{0w?ZNM>j-ZciOeaTS1c0cDHwf_nwLOoO1VQlQnwp zvU;ED=9+hOzxU(Dx2^`Rcki}xzaf4TFnb3#LECpT|Mzy6cY9Mcfm`!k$@dT^_);(U zH#c~GGcA21w}k$mGhjJ*lwP=QXZSmBc!dY}es2Vb|FeN>u+@5aZ1*fo$Z7xjI|_=q#qME7-xQ^bvR0&b&%h4dN=uj z`%914IAu@yLBlwa?>Lr2xq$OCm%n(Gf4P%~`ATbfXDhi$GdY@H`HZi5l;3oj(>8*xRtB;oF6%oPXwS-vWTa7qx<-ye>b8FxuQQd zd8@gjUpl7007>KZnUjf(bhowszW2fBuXbBCb%tgkw0 z+q0R&x&EoEaH{*ddjq?x=lXI^My%IUj~ly!BRj5#xUM(5g0(WVN4T_0dbJaKuh)7= z-#WK1`>xBnKxey@Z@Yh|rnRdxt@}AUi~G9IXS@3{y4$(B%a~u*`!V0Ut>?R!4?9ws zqNQKDypN*%!qt3(dshSe+;O6{tMnr?yl^}GE*EK)VAR6HJ2@ZxDyFZ(KRCy8v&TO? z$ZNdFgL;yqF{xktB$j((ro75Sy2TSS#LM2s&pgeu{8yWN!lQhLQ~ZF}d^2M_%olc@ z8ak^JeV!AyLIFLSD*dnX{F2-J$xBtv>wH9%yvv8KPm{RThdQ(NeAi$7Uaz>&lR4AB z{(APt`q^iF*mFHGd;MG^_{dMQ+!uY@x;@hSsnj1k)xY`Nn|a-Zy>Qf4$v@ zz1Zt?m&@S(LN?kTelRCK+wVQ&SH9!>1LiBc^k%$RH@@S4KD94zxxc;4$Nk!a{^Hj? z=a+u#4{GQiebGF7+W&c`Q#opC{=I&?<>PXsALiAc8}0``ED!%N6+g)xf9ET|jWYl3 zf3&}c`|d}6@6$cP0{`=0f3U}9?MJ*%Ilt_SI^=)zWJXuK>WioaNrGt2NB}fv2bCKAVrEGLGt3ok|hi{PX6; z1`8JcMU@(rU_pde6*Ao65TZni6*Fq&_z|Q?k`_*;OuCkBTeolF#+5slZe6=Imo|Mm zb!t@{SFvi{%GE1Hi(xm8^*F%nQw=Cp-jzI=a%IbxF=y7Sl&OZje5qCioKUdChlML% z%$T_2;>IN*Z+b#x+HY{-r3oKTjhJI==C7eg#=f3?d-w0JYwyh+c<|v3!+$-zy8Qmf<|7@84ZZ;h zEYQFM*^*J? z5kT0;#M9725tU8P(5$jis}d(nu7N<$^RXl>3QbhgO*xHgQ3n5V(9I^{M3K@cFU_>m zRatHIr%%~z)6Ym(I~6@l>2y`sU3rBG)*2lp?#uBsvei-zaQ^L8*=2eCwb3OX9hSmL zd8~9$WL0HW+imZ3Hq>D8dy`mGt3?&tT)9nG-7CFy@WEM~EVkTRvt8HTdtYo$1!3F#GS7rr|G8i!a zdw0KEK3;io7irKJ#E=J3WCMN$gjhB%Q3o#^;C07a6ZpahDe?g-F=Rm%1-dYYMl6FJ z2K3;)v>^*Y$UzDeXyEN@x7OwcjBkte^GhE>S8{iG}?1;P+c2ZcMWTC$-Xhg?s-~t+$LKw_&hBUOn4gK_I z8vq(mfeJJY1vThF5t>kiE|j4SH7NcXAR1ALPL!e*wdh4Lno*5zl%pN>=tn^sQjw07 zq$M@!Nh|75m9CVf3mxc70qRegw&4tCFvAy^U=nlIF`W+tVw<|?G{lJVYtbtu^fZ8j zD||r=Wgx>-p&C`GPL--vwdz%|8r3mum8)X#>Q})URt6w@R;~^rR-$6~=CaF`QxJGMK|1Ht>gOD_{|iIJN5auYWnv-uHS2 zos+#I7umTs@tAI5E_6;Hp|{@?`!~HkRso5D3}PV<`2-x+@R5<6WF;?|$xZHUhZ#&{ zDH9mTB=&K7cii6;tM~%&&7w%;3sgNyXm9+(-G2tfS}(!`aP+UT=Hd+hyLo&VOMBD#?N{zWwnJb@-iUj@fKzH}`nZ zRSxv0KYZsq_nFkCX0oX53~E&iy3~41>+P$T$ zHMqr{5OODs#x-6{x{+oQOfy{J9Y=V)u}yG-3!LO7H~Gm?{#}t1+~6PIcE=aa@L4Mw zX)O*(xL*wZVzLU*ThGUHO#q9 zbS``Q+aehN03v>n828L)n9c03H(QdUYMt%v#yZxmZt$c}o$j87`rYwf;JWXfwJo>$ ziQoSAwzGZ3HMcbdJo3Gtj(g{*G2QLXY?iZ>MB^JD{N-gH_`ic3y?pn)fb$-DI)9$@ zRDbp6UygOmub$zBuetxe4))mP8a!Q@vAJu7Za_|6&Cv5b>w#Z%qobbKJ}&+7Nq=wT zFTc}ruR8G!E%@M1-}mp$q-1aY5yjJ9Z!hC{)UhK zHqZGuE&ebt14+*UvyB2#PXZMV0=3QoNpSz*tLw540Fh_$7_at>!}~(1JR(o>GES#T zsk2J(_e2o?K#;#Y@b8>Y1BGx1t4!{GaPxXF>voXna=`03>C2y4G;EE#}BPAe`;@h2+_U}Q2fTP6lt*(NAVWLa11|@_0EtJeeoB8 zF&KqW%X)AZK`|5=5EpT=78Ma`oN*6RQ56G_iv%NFTro#%hc&v82A$C{m{A$Q@d=T! z0gci8Br*MlF&))$9bN7mRj(ZDa2)S292t=r?J){_=Crb20U=FiCJQ z*^(&nF))uZ2mOZv_|PL{P#T$XUv6ZNpfW185p^!^G9~XXDKj-cQZg5DAszD(88bFz zb2bAFS9HkRF0TU>j(=;P z9=j74tzdqlRmQmx9~kJ z^g?6wM@`d2TeJpOlonGoMNc$IPxMHcbSR6I7KijBZ4*eTlsuQS4{5Xk7~nx6=+Pwf z8U?a>Ag?bkZUD@*O3`%pMl?#Jv`O9cP2n_7Z}CZsl1=T@@Ln@b_0&ww^h#yW=P;r! zL4^gy4AOKI8^x3_uar+2l~MKdQ8RQV?{rdElTIy_HRb+vD=&3ZpOjMX^hF^xRAIDH z8`V$$G%N&_I5}zJUhwv!67sGzo=BBcMYUEjR7n}oQv;Jzd9_!4l~Z+fNO86LY_(Vw zbXG|!F1BBwMW}EU)Ob8)74nd6&cGlUUs zeBE=9WZkze>h7}9UAB#`>auNi*{&|zw%ujhwr$(CZDig2`rG@Q-@Rv_J7UC&nVBmx zBmbRqjpzNWS4$&TQfjDOH&l){k zP0>ItksteB>!&_6n4{d)Elh@;dP#$Nk1T{n<8N^VBY74Rz)789XroDFBXl5(se+S^ zXQOEnvt-&3kui%t>7%hmgZ>zK{BxXCMx%L+qjCa^h3B2gNTbD&oW&nyqu2%W4yT_w z%944?#)OX|!bV@9ug#nle>Wvsz9d>MpsCHUm`pg?e9+s>Jz4`(nNXXIHWu~vl&!K* z)itIm5t*$A9Hd;GY?+g+k&~3+pX~Wr9fY4$Ih~DIpB&N_Eluz3#vtvo8jSCTt+MQv zobK)Dl^q$-937iXC7rcIpPYTsUEH0uoSR(Q(41Mn8~5cp>gXDqqB#v!zS%XZSD?C9 zpgTvhy0bgGd}Vd%cye!Xwrp_rK!0*mS~}WRmKqBN5Tz%Xl|34dSh!g_|DI^_x>&Lt zVfEHv@o0N;_fGN-R`CX3R=jHRfoGGPd$LXP@my2k&SMsRU}P_8TAFV1Yq;@YSaySS z@n>)L=YIC*Z?^pD5)ixOC%x>HlH^;o=zG+FMQrF)!(vXq6kv+sDgGRE#v0)0671R> z?1{l<%NBy&6lA*Wgh>#n})dQo&~L%@*F^65jG`TJ;=` zofuZM9J18p5Yz2S4(VjD6sY5ZWWN}4r4(_n?AOyA#oQcz!xsIp9DdOpz2y}3b;VY# zDPrO|VrJQM>*=TM<0B1PQ~_HI=t?x{i`x^RIgYkPi=6#WFh(5cO6*RvBRU5A5M(5z zlAT6#XvT7+fr}q^OTtv-p99rDMk_w_Es1JQiMB0Xdag;}D+#=qpJ;YQZMm4=qZ0v5?a_Z z7FJ^GS~4t`Q+L=i_f|4aT0)jyGH+gzpj%>wilBm8;un$$mYXA$Ueb-&vXD7)cA7IW zQ~w;ie< zTA;^KXyjIS)LdZsTByKL)R98Ofkg!H+s^vRksYa~PME8NnIhoGQKIl#n9^DjnOvB| zQChI-m(f~Up$vGQ72lp40iQF*|T zGuK+_xLV%Tk`>;~I9BPVQ1-+JifmL?IQG@CZ+~cl6eXAzKj)!%x6>cf( zSS5U2tqRAi&QPs}OsnO`t|E4?7srmreXEz}Y)ESb0vHv7Zw)$adEBqH3~g0{>iMFr z=}*JOIT($eZ%wSN4T0FTN^Q-NZE3-rEyUQ(DQzt;YE@6Ib3#(^~x7LlMcHC%mJh*rHueE=? zb$#XP248P~Y3qi?>AG3#D8TM4d26&y>y%&V+`#CeY}bZ=?`3GOhV6PRfG}7!hZ6AbQ>$81txAYit#i=)XAM$N4mR)Bm zl^?);@6lKvaMl?1Z6C>K?{()IE$|pEX&)_kAF1IQThkaeO&bnhAMR_l`h(M^lRh?) zKGwiBvB1?;(LS;9KC$!OwB#|F@jiZ`IXvQ#t<>JC#x(+p-FC$_4Zbmc(moB#J&DXc zv$j5s={W)UF#`_B81K-WdU_v@U7z~Y1mgU&gdKBJ?KAw`^X?im;@lm=AM@}Vb4uK^ ztQ`yfy4lXU1dkqegKFb?S|eKAOB$XFt{*e|4}wCWPv zr5Vr76VJJkkIfeD^#{)_Nt~^Zjmb0aZE)?my^Kg-|BW@=CfJ5;Ozl`mzz$*N+^6R* zW#?R7`z`}ulh|vIy>kH@u$KU~Be}Ang1QNe2h{7>Q}Q~f;NH^$9Oz^o7$LI14OlVj$r4k0Y|=oWK*x>(9YvXz;P_kw!ha&iZ*qK!jW_4(b2*YkTI#in~mc+ zYw$X2@!G2bob_a`5~H2wX`hlJ^!D*wENEY}bzW?A9xw4+9(0~=B%SAF?1Lj+9C=;6 zbY6XAuI>P?z`d`by-#R8nTEagZ+Nb*I&Y*quL*f?Nxg3=yKZUm7lDb6R{*;2IydN9 zH_W{E!d+B!UH8(T_wu|C@ZR@oT@QUYgdAIU6M$K*F5uihy&~_EqxX~RR-pCglc@LO z2I-@b&T}OGy)W+zbJtT!*GongVLb1v;OBG6CqYQp25;AEgU)$=*IP%{X%_GM2LSLk zvh~pP`L6f$TEqJ`)Aixn`M$#oIM}**^8#Fa0+_cx9=tynyg!~kKfmq_h!K)l!Y& zSSoioOT}sfL{IC3*`JE_7KgLdj&PNewGJtU!w*=t>g}F@id$~3IqRK)2;f+M`V!&p z2m`8MX9RoQ;RFZ%F91#=#nDW@WSSKYa{Z|{rfi!RJm;fwSeZ&wVkBqNWy}T{?IOT4 zt?7EFU-I{Rq^7~m!FZbJVF;JoSPoK#Mi)tHX8ad4 z{<{F;#{c#|;xW)Y#-{-4#~9c|=$QDxD-c5l8pwFWKslKX$S?m@l!1`)KMh2ff&F*= z&!_*qLrVWIxlBaH@ShE2jsL-!|Mq_^{w1A(SKymK+Znj{+rUr%n@#>t8~J}B$^R_= zn^yh@SO%{DqyN7A4}|$Iy!;Qv{QqhyW+1}+KLXDGxBLIS8OS^TkNtms)xQw*e_g5n z`7JVP79i$K_1ANzXJr4$3`CoG*f{t(xdpj-g?acyc=`Xen#F-c^S?^7kf@Znl)SX8 zlI$-Pc}3MPjjas_NPrTDsc0`g(@O#wKQF7FM?Qj!rJ_Zk|4#KK|amfj<7h zKEcu6p$T3Q>A)v6{F5ug(koMQOY@7%3QH@B$|{S?E6XaYt7__M>l^Fa`kH%2JNn1_ zhen6TCPpTw$EIe+XXYno7p4}LXO>p~_S($y`uys~zrFC^i^a8#<@Jr_jm?#ft$%uR zdv$YXb!&HZYiDh1XJcz;a~sGh18aA8Z*PBpALuF{9v&VY9RYRalarIvzXfELfpz}3 zE-o&B=^DVg`nRsHuWoLD4HTIFBFuMpclY=A55RhSe0u&{FE1}Zmig^(0deM!zxDqk zH2){3+^r1clr@J-ft+#~k%(deRlfqU!3v}E$wf&O#O1bt9qtri~ zaxsuoo@i}2TXJ?BQMafD+RGrsynzxar3>X6j*b%zEqAIa6^1?9lkF{cN7H$dSy4%7 z7k-WS)MFLywKbzkbpU-l?f1kAb%U|hF!zrC52w5})%6dj3;~6&)!h7h%~A{=WrcCm zQ)R_yFLo%!^=RfBEOq7nZX$pCHc&YR38L5yAxSjZ{g+dI8UWvQgd}o__lskGCQxpV zC{j~BTo4EkENSnB)d0WvHbz}QlCn=-(>}cWM^1$DAYM_~v>?=`2ZPvZouL`q8c`b@ zM@7qbK`pSp`x{9t=*>6Dxcq)fa!T>R-m!%L=9G&(t!K~-3^V}>d69`b#Rjh2faJqe zGvs<$nu2jt)AWLFyQ8dhr_+<7?4VSg>~MH0;z*s_!|fkkq3Afa0OQTwygakc+C{!U z${a;;iHX0$i@PDH&#T{B>_%&b$=t*A`x~3|O8n8>iWTH5R?VWS7&*?O8$>v!)7pB! zg$Kq1QD)C(2PVn7E6ZG%kfFog%l7+6XBe{7{j#ghR71b8gjydV4Vv6yMjZ`5ku;Q2 z9p$sM{S zIj{);wE{j(9iJGSrcEwE7;jNKLL8MI7d}dJM?Ol~1@a67_>!qg9z%ol{&kG62`Vmh zOYmg8ZfdFFn*_apC_+8x#mu+fgj$*nCVp8_Y5d-4yyvN2RpL>q{%|*G+a~nSy70jQ zi_y&01g4KL(xi3)=dstFSuwJ@uP$T6-G~knpzztZyVURjxAwc7pL2J2LY{U|`*FXw zEI`p}!yds<#5 zJt4c`6e#{C1K~_NArL;jXdsy21SrXM$I@3E>CKssEEF_XGeKy0idb`Cvn@BVSISCt z6MVD3iyusBX)mc2%BO|GU-(PCNSKy*PkVXyKBBDv#Zcg6KWt&30HEl(7(`@3$n7d2 zy`h4JyS$n`(7>seZ#lzTDC`XVGH@~kL;B$83^TQ|aJDER#358D1YxNgen>eKy4Os4 zp)17#-z9|7ck_qXei-YA)Eo!WG7^S>eTnlAc~^uA1rgvjiZUhbmwl-w=C~&n-CRK#cZ zXXdicPQFW+)VSUEgk~^sW`+=H8~yKo!zyGfzR-f(69 zS*|%t|Kt9tN0%P&fZcCad0-^Edg0O-AYZHiu-Zh#O-!V(cUj5LyMN|qzx?{hi;V&k zCY3N2;LEY0II7!Um`^H2*OsKt*q+sGx2`B`8F`JErC0v(;33 z$4F(%bAuD8)`W{#*rVCh2Z9Z$^Qvq!e1jJQ4;fYeDMPXAn(orC!A!Aqs|{TZqGqUQ zd%V;YcB_%$a|A^SjQ=W;%U$a+6vhqb7{(fs|08T|bb=CIZM2A#unk5oB)_e5j!>Nx zA~g2PcU&r93Hg&FkVO9lQSpa93S@%8hZq^(l8AsABkC~q`!%1hP473-#jQ=DudrVt z^qJD8`)OX8!*$vPzF+U_gYG{fUIO6{zvh5%@UdT9dluT|3gdhh%6K1tsR<|3?hvy& z3xF!zc7|n`z&@R2OY2kTeJ0=oM7bf_2s>Eoh)@gsL7{d;lMlYx3YL;Gw(t06gCONV zFs`upfNxB;!_x4sAVObCO~`#(gWhN zVsZt#?Tyvc>GY0Ne)xTFtsW)Ay0L)IBBJ$1sK0{vfK{;3pv@rI<25u(5UCoPi(wh2 z7tn(yV0}hKm=*$6_DvMC@k3K)$BT_jpBt+LM_Kw_U52hrq>3oKsN&V2Wbwgz?TA^| zcKM(`1ZSbgi#BmnMpz4&fZF= zadw1?+FPCab+jB{C<@I?sDv)t9BY$A^O-Y@DA(@y7tR4vD!tHI>t20f=O(2%fU)m1 z2w0wsBstdfud;k1r1GuIm7NG3(GdK{_<+zHiiR?bp(E5HlWKK4TbjDOT@>!j z0ZNXUP(_Tg?rIyD>My|DK8N}rFd4cqbvLk;NHFig-lo3DU!3J~V+bGSV2XbD-X8jl z#-deyfho69t2}`I`5iX9o8j{dOyw7%CrBb?em}$zQ_gztj4w(P&i(*GUFUv!u3~6- zQqsz5=!$F`FhbazFECC=MlMSjSmefgN47`kE~aF5rz#`{{*?ED0($lg*s~m($AK_U zf#Hxr6-|Oo0wlgfLB=6JFoON9n(<+tU{Dx>9mJ3?Ma}DxB#d0l$7emApFFpVoWW{% z4xVgN83+MPih@->FgYaF?Q*bUet|8EZW_ZuKEgrfY(ZBAK`E+6Mj=7JDS{sIf=tB% ztX;xd4r$!Q%#RBK{wxRiBskFwiK@Ir|dw*|Jt%_u+8mjIRT453~ z)Eqi|9Gbf9G%_3-D-c%L98|0td0!BAgc{V79MF@j>c@suf2`W5iq{MU+sYO>RjXZT z!cr&}F#{DjG8}O$7Bm4BF|{0#!xlCi5h*~=iK0A)AOBOdm3v7C3 zZdnd_eD-*xu#P81pLdCUQH@AdjYfgCyibnCFbxHNi6$wDdLuS!V~e}m@q}uz-D!^5 zGXantxJ0>!pnnyQ!7GW*R*l9|i=8?S4bO>WhmPYpi6V84=ckMx^5?JRS$7-tT{ftOUX-v z?7ZKE{V5lou9!gRoPZ>bt%I55$DRyeOKMk6@=vC6rHpbfN%Rj+pl*o@U{8r3u?bQ` zk`GOC6HkaLF^*A7$;M38a7_t;jtXl@F%^$OFpcu2Os#xLEfPzm-j6F9Nlq_GH6KZp zhE8i=Ny8yY+xeZUQ=9x_CAs+}x#A>kv?aakC3y2W5+o<)f*7xNCWSdZyjl)n70{Bg zzLK%|lCh1MxyzopuaIL(Z`D$S>8XSc-SVeXmMGopk5~Fz# zu_=I14i&S6I=*}-tYSZoVnBd;agchpOIS+%it1u-kwt5w&uBW3Q;z+U9jczHFj_p9 zLhQMkrZfbmeDbwimZ-c2qu|%8d1-45(jUx>m!c||ip|#w zVxkJemaJ*h3b_#CRdpadF5dQ9xcypreTu&uhHx)Y1)+!VY=!{JfUrAVwfhC(%NaaK z8~j=fJcK(ulsP=mVV?g1KSuyR^96qT8g615ZjcWSgA=ym2W$sc72aFT9YfVa7{XI( z)!S*+CssA625|cqPz}3Qjfh?IU84p)tpnHY0$X!GoDs zulQ6iWmm(URU=W?pqSTSNWx)_)l9V3sirk>n^%FyR=rXoy;Idwnb*^#)zhujGr%@5 zaW*K0*QvcV;XvPohV8~Q&i2mLmMrYnJdM^OYQ&PZ){3{*bELL9 zjkZIZwp~C>TU%Pa6eoNac6)$i`!;OZ;91Ksb?az&Ybh*Z`5VGCc1NvbTVr@z>sZ^` zT1PK-=QDN59&9TFLu)=YQek-Kn(FDOml*>(>zPA{8OFT6!B57$6IN$-$G&!Kyd=z2Sr zR5wn0Ka*w$3r+7zOdsiZpJMu;5?ntRVLy#U|Jc|7!+UED>>xhZpzM16@A5$pnq+0E z9)OTV4;{@A_Ian%dOxdXwK2|s$@)-KM7*~Yig5WrvE;C}#jq63piKF&Tzg;i`-mv! zh_%$nxcP`g`UpY#u+jPm0^De&hktIw04>f?q14b%kD;{oQMd8os`arVj4|Kz0Sp?X zADY9C5u+~SBW>p+o$KQhkmFzsBYm1!WMwldHt#R$QZVn&X!QeJ9=hO_KGj^wr|VOp{gc$^liTO*Hx^@eQhg;J zQ?NAfZ|M_&_vtv$X%(6=8_m&cnyGt>KA4UUxQQvGj~RaA86TYSI?WMu%V|tYz!c2* z41DAy!N+Va(X61;#SC@E6z;|JkB_+?qPaMlVbF>m@QEHstv2Y6Irz0X zI{10H4RWFmj4g{<*2r1*irM?IIa=BQ`HzKP6N4bg(;$`$B9U_v6>}OJ^I99jx*v-k zj0=Lakby{ z`Vs4+TC3w1>zf<+)7-N&n*EhpON;Pr%eak=9UI9T8(SZn&&ZoUxi?2NHjTA5YCWe{ zIyRdpHe}(qz98W5NH6$FZ5-itoM^2rk8Os1Y<&f6*E4L}Z}dWBZe5pc!ftL|Tx=t4 z?tl~STx#wNRBT~Xw!vM_YhUb8@t_bOtUO9D_gU@?O>8Yzuj6#?;%@F{e(c6YZV`L! zz*y~KZEjOW?TJ+G0Z-l!Y4_eTc9<`>gst|eqxLs7wJ!t_w!(T5TNs0vvquZE|h4^B{Db#%zC0TThByskhlP18f57IcmfCo0`U&LFA8! z#%rO+W@ciJ<;`0xIGas7j}+(@y<|{)tU5k8jvJ+`gS-wy@!-Spnv=?oVlLM`FYDs1 zYJD%OlA}6OH)~}#=Q98&3fQNbJg3)Mr<$Bi#a1UkJU*qeDR^?OM!P0L<}BLk3@Pf2 z#Ql^n?KJ7~tQ_Gyz4Evp;nXj@1$amiXLZ`TdEVZ6dPjXxg;zJ<*;u#P*pPXV-+9rJ z*&P0MF^zYb#&e0JaXH|1kz0A0R&nm#dFF?A6?l0XVs*6`bvaadH6g_rM_g&?Ivw8vP(q)y9tBqLp4`&tKJ1K@rEc<_0)g)_;UFqNBaaOf5IC5C>32D)b)tm_VnZP zF+%6whxZ9b=gD8^IoSIpbm~d3>m}Vg8j8NBVrl)F8vRPX^%5=nG-dVl z#~VIjYhGLDHKpsh5pgz(7bynuwMzE6#`>iW!23?B^Umk_4ifv`hW|Q&_#T3IUoZPU z`#C*-)c`dPJlf);3o6JgrzReBSTo3i>iAPylJl-^T$1eSHa>uMZ zY$=xfguv7Mhf~JRlC;94*@x4olmc>gQiT@vqV8n9}Dugo45d@Bg=KRVZI%c_L_<&*ndDmXslQxYHe*`xPF4WODbJ!-G0BS2 z_Sj7fFL#&I%BDY_|KS&>6=qga;{NF%CdB&gATK}R5kDp7uEDILT&7#l@pInHv;l4{%MNT_ z!+A>yb=|kWLP10hlXPy?A$kEB$SK1sYWp5v%*&A6a4o6wHh?$l1(%>a^7r29KmpO95Iqka6WY9O3VRh zT^$_jXIdG@nRl`uDYzTAp6qx*G|J?t5v8)^-3cd6yRCZ{vXq^AS304X zzQ!9rn>TGOQd^XCF=1PJHfX1rH$NSwQMG6lY8a>9Y(`%Ec@yEf2?G=+pIe^dtsk~0 zDYx5=5#Ls!Pq_1&pil8WwG(KHkbfj3sP(=<50+=L30;_7(7<&j-dL zrv`Hl3yRCuqsbpb|1Dn^g4U>~Ls!lp9|r~UVV55%v09pF92Q!-S%5MJiJr<(56*SJ zx2;<)i1j}CDGrk7VrM#-eH_Nd;#rXBGC0TyQy)3u_$RJ@bnvl;K8nhs&>gpYn9BYX z@>!e^jT17PdOHky2b;)@&kU75i2)X;!C+~&e5Ca{EOyDR2;1Teon1N%?nSd`mwb(< z^1cDV((%yC*IzNg5yXUdzr}=DZll89@riNSM|dD^Sl#js$+vgy` z5E&|F$ReCFhGO_L9Zf zW^%p(Ah=f;rs7Mszk+iGNfx%j_yv&R8BRtR8?rT})zt7j+lf)&R!&4eZ=fBzL5oSW zj^*Ud=KGoYfK&Zo3TYgrMIuV2h54mC<-SUPuJ5s~uS?l9djPZEO#0tzuSMiVL84UN z_rCRuNiv7{!btjLe~sMkr&@ni*3_54e=UaOMrD-qO9rdDqB!Tr(F>0!gTR@d4xrH| zD^&i{O90>8&ub#FVxs<7JE02o8CVsQgGah5+;Mi_!>rK^|@;QaT> z)s$=1+Tje2f?C3Vb^g$T);A_8Y8jI@wnyB6o1|VKo;2dA6RaOUU>-srcjqCoTfg~@ zgUvJzk6E93V{yzv%n=r5?2vHuZW1K)I;m4xUyu-D3J2OcsgcN3{6KTc5SKcd>U3WM z&21X+C1n9#Xp)ODGKMHCU=H@iA;>Png*MDOYo%=J7^yQHo#wlU{lpeAdc(OGG1e0UFN9(RPYe4 zuWjJt0TlnL(^<>X?^$CVj@6kz8~)}gV{rRJ=9wQ& z<}%{D;U13cmT5?hiJ5{20UA1!ErXYJy!#DPu5OErJe}GD$@9;Rry6#pp{;}1~7pUmT#tMK;RGtwa_ zJL>Ff|3thF#@F4W?|Ok0dqua>`S5Wj#owQT^c~LvfW>-$zuyY*j_>&tMFJtj@cX*& z3qsTFE%y~w%ohd97sA1p*91&XxAUnE2e!8BHLc5Uxa;Gr>l3#7D-Hj`LyA2w?8}f9&yo z*7YEc^MkJUe7o;KffFFC2eds?_hR((k(T#hgYhHp`%;|ue1GRhtrzGd6nN?5WA5)F z+2

    ?e=3lrWvB=A!;i$=!!CIDK%upB*wizq|Y?yLL%xG zFbvTzs+ukqpE4NeAZQLIX2diU*)AITF7_-a7AQCDB{iTiJ{&A08l^arK+_(^1QpaS z63o@@8!_zHKay@S65t{p9x!BkKk}!1BpzinN3mUsWH3VrloYJLU|z)CVbmjFw3tRB zfMC!$pr@2%1RHKR3vS^1xtQenXy%Hb8P1pnljNWAQ2|X!6N|BjSc#f_(AtQhmhnNi z^1illNz--79Kx^o_=Xya`tnq zbZPm-w$#`V$>c6@=O%q(GhKSYLg2t*eBEJkk#o|I5A-ymuUk{*w;@>NxXfO_WJbJ< z|MBELSdZQQzz&XVG|d#`s*Ini>^4}B_m_dQcmHR@u@}v*yZP?>eVHpbp^y0f>vP## zFuB{3Dc|O)F0Sd1ajDP#F$mA3x%_b`Eh#afY4&|t*n#Pz{fTNWD1?sD_x$M@lo@14 zxv!Rj-<4!RAEr?QWg#4AB4?(*7s#VZPa_S?;GlLvqC%l)4G=z0D=SW;q5g_mnZY!g z`YHvOeNr3)PnaUxARzjHB(9Lb2cLm~|3w2o{VhWRo@ti&c~Z+^z#Z%>^@l8jbmCmP z%!1Hd!M-n;lq8~w0$JeP9p^avML!4p1gDk)x8oe_#hg~GLTUaS6DmJfgQ(!aoKRqr zF!P*9gMyglAUC{%!~vS*K-W)4MbP+)FM6vKRp2 zUPfFM^YS^j4Ka@lMbCuj6s<71<$1N^TF!zLu(LsA_D4Y8uQdW);is(rVgTY9Xd-x}Iu3BGh6gmQo8A(lQp) z!TX|>#$p~;XbzSX?#Dv|)p9#jgSl6sSC$dZmkWi}@*-EoPsWe;7u_r+xCd6t;d46n z)e9HY;=$H3Q8ffs)bG#Lqd(MTp+^Gc;Pc3EOa|n=I8klr%ak*76I4 zJKJDD{xKQ!7s=LZLtha%$|GceEKK z!w*X{1)9H@wGxE2N>H^(NH*FZ)_Wp1rj@jsRKOF0@f!v~}UPx^Z<*X@SoP zY?(@L&1!9pS?a8iYR?O8@o{UP9BjTO#5`S0J~wRiq-(!EYzd@jT`z1McT9rtY=8oC z!6tQlHnt!xb)Y7Rpo6x+7qvk;b>S8fzwpe#WNtx1?94oGZWc_Al`nI|uOag6yov4f z4-8v5j-!)pVN7nn2}__Rieu9W;TY@SvgCq2>ctuEFgt!FWYHx;14LsU&XQ=$kg@2I zray!HeU^h#*fJ`8%jWAvv2^~4aO zn$itF%JwB8Hl-H#`8u~`to&rj469KOc_n3x1dR{or41EC4n$ZML@N)j zZ4Q`u4pboyw6qVjAtH5*wIt9E)eemeI^%zN9q7`5sx2C+S{namK`<=T>KZrVSzIt5 zG~S&yhKrcCLR++^JG8k(6pu2tuLQa(za2LXogj>z@zfmvlX|WqdTuhts+BT0TpAvD z`kr*eUfO+ls5*!;zx^h|Z8LcTlyw3pe+L2Jf-g5HB28iDX`X3io^)x}Ot!?2dgi=v+S(c31UPOVTi-866WdzF&1ky>!7(ERXIWEo$$5>Ojo(;EnK*FzKK?gd@ZHAe;1{So9#jbn{DeT@`ZN zS^0q!-$8e1YZMJik^E6x$5C0-X)6FYinE|!b$b=%RJrh=H+0I!>clza)U@$P(&$8| z;-HE6XxruR`_qXP@u^Gc$?W%&IiTv&8Gpki`c%~0NxI2dqKMyY%GtW;>EO~?_S0EW z*38rTiAVIwFv}_6%1LPJ$-vsh6y3=}%Eg!UNvz7nlJ{9_$|Y3i*rzo=eVhdXvpyxa(kWVn?zpM5X4jNEEk(A7uzP+i0J2ZL^o%AHy3(0 z!spIQC`Yac7v1HeM+nJor7AWmM_ScaBU^)pwO6l5 zpRcOuZ;kZsbxF4MI_g?kZ*op=`B|>*vQ7>3;>AaAtxazMA?_Vb3N;XReZ22vMKA3` zuLJn*L*5<&O|Nko9*y+xfTpSI{;l_(N{^{%o9Uyj>LQO;@((c94>UM?QWK5)X~zuvl@#r0NWW5 z8w|LP^-3=Q{K>eZ>;fb#S?;sGtUUpCitetrTz)-$+-B{aF4;W*iDty!3-rC90B?dM z@6E2aSLe@d$Phw77bKcu0pTzdLV@P%FS~k>aNZccx4&=j|8Jb~$t~%4GUM;ra_Cti z8E@j3>+_XZL@XxhAON+2VhEBiDC{?`WE;J{U;-kUa+evh|KOCX^@oDSU6~DKvv7c% zvROSGkW)@0QXHNp6bePLjr(7mGM(n)`DDF^7X+ zl~srH^;}peXHbNu)p@`~0Z*6b2iHHGviU@mQ`_n8rVceLg%^wKTH4ATkW=>dzVr>i zaxV9TT(f)HNXRmt`TG11r@WlvgO7}%<2*DYifR9B1c7VyJ?tM&Szjqf6y2&{IjF)C zV^aav%Oo?DdG#MonU%0`!v+KES>KOAUs=PS@X&=MPMjxXSN6K1In|bqY$(T1FtI5s zP7TN@J4#g^~E8E1`@<^hI2CJ*AaS(!CIBTgbCK-42YCZS+Zw zJPaXB$zlm!TPX4(N5M?e{Q%z;ZLMd-3u0W*PAG~p+^D|g`%6fa7$kz2W@#~!N$eF> zw2qn)l8aZBcX#JUMdkYw)th5k$?`4PR&f4wWIXfZgDll|l@+JtjBj~2YsXu-d7n9=L_lm-0 z&?x@G<-VR(Gnf7~*QdW&R_6uK=mZGHW^(`MApW9oBmJHn*I5 zU3KcCY1Xj~wqe}Wy!}bQQxuMEj|+B^e#E7XyK$GA)ys7_n%C2LO`lkX#nsq==XEGm zXT4>UnH8SrK82Av6A~G(@yr-_Rm#=KIaki# z;qXCeLwb-?Df~v>bW6dS*}m0Qi;%tJ!MvdLqBd3sZO-b3v9a+Yg2ebef6syU#~{FA z5tqZ2(#=3q<;Q}l2^AcNjy_-H{=AVhka#Ejo>469iF_j|vaSchzTX$ZWD{4cczC8AaP3X5 zfsfh?7^{@Of~}M+CSh0mBhg~dj&WpY$FVlv_r;J<&{d4aYBs)-1eQuCPgE#Y zKCY_WNJXDAMa>Ql)V81WhdbKv*OQpY5~dIeWbsj5#ycU$h*`!7bGM1D_ zDK+*9QF%s8`l*L8i?~0eF?Oqmh08=X-zt*!Xvn!_?Ix{wLc`AUQ`xF8r#$`4(vI)R z3@@$WOipi2FXClo4a%bKTg?XRkBJJYy z@Nh{41=ZVPIjZtWxlgts5`L*Q{>%b*ED`^%F2Bg6n2%{mDMJdQFicwypv5RbD-0Wy zh=W+j7L+bZjvB4bZ&k>W4m?uuBw5I;yf4CQGZU)AqIdzDx7WfYmFsDhtq}<;w`M47 zQGHcvxcyU+YiDj~g050E`%u6U_+9oICTacxwZi^_TKUtgsoSZjJU}`{54lag%}$}( zCa|1wj!MnqS7MEjZMil>o8p93VoCJ4Y7rueOmQ==jCh1*}Z?F|JhmZE7IkEuybX=$`>f6NswXOsQ_F5&4t0y(t+kIr$Q z;8s2hk{ck{%bnH&l}=A%iV*a--P5R7PUKQMyy|Qnm}D10AIo|lqs;w_j@PPLXL`{7 z%l*H(eq2v-B6Tc*Bgsq-ZDzAN;h|M*Qg845%w%aFOT zUYddW%GTg>qnh@0hI#VQ<}1sj=iqr3G>!?^+5Ch~?^#ZG;xQ3DmcI{Hl!faq#`WmR zn8aW=M7`z-r1mO#%3)t&K`9R=BKy1#UPD1vsHwmc$--}dGC>*fu9U=E=a|QFn z5r)3nQtssgKw_dwVa?5WKEA$2C-NMG%AH{x&k6AZ$5LCCbEQk$saihLlKK#9e(2Ka zrS!stlcjC0ROr5uGV=1NxmFXSl##ZBF*HEOn@7dZU z_)=!q74^CMZ|qIbqsP8FbX(>^H_a(yd;r$uegwA1xVBJp|G>nYPf?675ji_F>!elq zu7(GFuxq(=rAWMe`XOqP-kVjFz0TQs6j#>EsQKkBa9`PxG1z!0K#e`8L# zz%GW0`&hZ_^`Q3hu(%C7h2Wl}r|0tCzY6=5haB*oR-i)z#tMab^GAy<)5LIx!D-FUT5ampsb3`KR_}lsDHl5#rHz5IKJTC(orR$I>p3cTiv&iM_sS?|-%U6;bahch{@@7K;^S3Ogn zFMl3CBo{^BXS_e}_pX|E*K9u?tUr$^v-(c(Z!)qL3$hj~wltTsIAig@8smMI=$uI_ z@c+nWW8VhF(*`5k24jf;??r|%)?FRPrvM=LL+0YWhw2_$WT#OQD5Miy9%RAz!9i=I zz*%j5nIssSCy-Xsee=z}J|Q@-)|G9}M%)yKv&%yI1&8=68yY|WGrIi^OX|BD0ScKO zg3M08qF%;&_5o!M8bZ$3R!opaT}UTF5@AA&AiYjS>}iypUd>sM!kvrlEv(v|OPqCV z2xXi^0z?{FMsYQ$-JG%Jo$cCH!YQy0+olNOxQnh%%ob#TJE2}}naA#?$Gp4CVW-atvc@@?`#qER+b#k3q5;Duar1!z z`(++i91-7aHeYUfe@`C2b`CF@;Ry{1Q)2>;x*l)g90w z9U5cME>RSTKq3ihrePsFiAd!)@z#6{x;arERk2Az$<18pO+(3pebtM7iCIHQfFVgQ z3BU3#y+FPQkr6f(sn~1oGETm%fDxV>36Bh^f^vaE1o}_?gR16GIdu}HQP>}T1=L{& zsWAu2r~7JVQtB+*>a_)5#Q~(6PNeEyq*@4hTDOSW2u7OfgaX9{IshXLh(fi~0?pe4 z@I_L6<4_F*5*0uFm4#d%EhEF;T>VWYd^aP##{*U?<7x+EBhN$aphE*ZGE=h=LqoL(GNf8#bAcGsIAViu#>PPhmV>fZh5JUC#FnKw9DqVYh@xp9V`~92yVYTH<^10W zg<>$v5YLD9x8e@D`*xQ`9w%5%#^h-hzol}G4ZO&U1B+Zrp9WoDnsZ2Y85g>`fu@a_ne#dd@ zCkcy1kpjox{~yNg0XWjG?HBz_G|9x6*qqq5ZQHgnF(zuRds#UA+sz!BncXhA6?%$swBiZ{j(5Tb~ggn@VJT|S=Ij7XlUp6YKG@XZBrt2^~ zjGTAMJbmfZsmI)P?{@?2X~f&9`!@>TD)Ypr(p+4r6z`K1jSLf(v)CN-(UH=E*SP`( ziYPUU90>CSbBas{ia%}^d3nE+LMig&ENoKF5**A+a7oGqOl@>1JPFgvP|qqjC=$*v zG&3j?&(x}}PO1Q<3PU0Cr=@@wCB8z$s%J8jIK9TbSzp@&Y^2WH6 z+9kz0fwL@z^CEA`mM4l_>Dd;z<2r@&*1Yme2ofHU1dG8EeWdb^vmwho6deNat}v7M zt8<%&@@fxwqi+`tRYhG$6=vucZAcP*TNYh#75xlz0&nNGiN__ZMro`jmWU_chQ}-_#uX|;MlMR8sD@Zh zCgU#jQZJ@F%4hS2r*SX3e^y2yT$b@%stH*SP+X4ZSuEaBEtQ2VMO`c~R4)2juLxLU zCK_khQ7_I7&C;FP7Xhr(E2y(j7l*noSCK6G=cx7Epw`EfR%xg<{ErvktZ7y&1C|uG z(yVsxsK*GebiZ9~HeK%cpY4xb4olDk{jLh%v!3C&+OnWI*7q>Cj*2wDbc$Xh}R}XR&gj05}Q=(;HL#Y82-iV{f|jvuem;Feoy*ZvnQT*H=H|haigMp|-2R zSq&hk?MN1DE`DQ!#+%>X)o{JqUE5*84c{Oj+lx2Q{phv>r>yE8;o3%bzIksyz_y)y4gRD zZn)5H_|74z>MK~WnCO2nkQOG73i6Fe)|>X+E$IJ01>Ria0W{vN}NtVv3kv ziN!my|6$?@U|I}iVs>R<(q)ng$dHO=WM6&|y*6z1$9|e)l)QhCe0O>|8icEFU`cI& zUT=^;zIv}>6h(gI&7P3|(I`OaEF#A&q&TE3+9(&#q)N$H0Y|H5+Nko?ucm3B-cI}7 z7GR^%%&5p)tElPBBFQXV&5Y!JS={KLg?6i@Yp?BUh4c2P%UUa`%B;_tr;qm}cEVir z)7+5rNq^#T5Qb#}?#4*5iQD$Z__<-q;zlffTDHQ7h2AJW$S7P`YMcA8H%?Jl;^Or}IARFd+~Fs#~Aj5eJ2 z7Xr^m^QS;DNgwye(a&wSZ5<9W>v<*u~#ti0{4Zj!FX zcB~qfjb7QVE`kl7su$jr&OX(Yo|ezUnHRqCO=#WEJ^{ME&=>yWE&{|OJH?{OV>DSWTsB%Wy2pPx#6FM3G7cq(Hu;ag zMA$kf3A(Qru3)H`GH>p&6uKqBPbcxN6p|^+{zPv6 z^iG`Z&F$^ooE^hJuEm2T1Ei(+)TtDhNeNf5(rG9(b-^w2od-PRNb(9YtuE5f0uSj=WYtHRBRJg6 zH8I>VG3{Ae4@&LZM+Dhmi{+*Fc2a(f6|;j>c5~|Or5LQ+-t>Nwc`L#4g^6;ClF$$KKz^S z5K5nNI^361cU#uJV1Ye&2m(ZGAjD#Q#3)_6cszS#U3;`V`$S#DTs#M&T?eu}hpJtN zx;#gwT}QS&$F5z+K0GHOT_@2zr^#KX**s?fK#YXvycw`72|~;zK!gHmSyy}A3noA)F6>v5X*bD8&nlNWH@eUAk~0NICE z@{P|a24BCQH{i$Dt$d3dfj|KCY>qiY?PxcHaTGQpA;3sX6c>-b3?Y?J7&4xQ%U5nS z7Zd^piv=d)8*+dI0^PqjWwL3=|8UB)dEa74mD>``6^mtaMG`p@EtJbuYfTp05-nA$ zb&D~7aVA|%WSP!hH9#o}1p3k8@EEnw(ExW$sSOrJW`SvU6k=&GesiRMlW13)KFRec zz=opzb*8)8 zZg=~Pqw-|D*ew+Clc{!XI2s>M=W-TfK3Mm*Ii3gvw>#yztMO1?80>=o{qxfFZPhJ&RV>v<) zMA%l|9{#i^*>NlK^P(WZN+P;42OYG$_ZN}m%pe*wrQFa0M8)h7mi>hN(7fKotT3vd z69N^aUm08g6lH@PClABGcsm2jon1%tH{@AjBvl7-?!lFJiV<3Zd-)0actPr6##yQO z7K~9VMJc*nFz9b*kZV08#PJfi=Gv`QJZNn|ugH_Ch zAWCg7l-Y4bKR8u^Z8tBXgLPXWn>#Vjn>mkV#uuFELYdl_I{bIgaHE=uD0$VYiL>cc zYMni^OY0U#^58dJ1%4hgPBQj~W(|aKA|>N~DX9y+WM&!k{b1)QkKXiF5!LhR>Zr1_ zNG}>BGwL8fi&=hdqzbL_yFueABCIfHZQbn>n^i&A6=z%3_vGp8Uf#`i(+;mDRmr4< ztaFao*eS@X7Qk28oH(m3byskU3M$JvrN?i!Jw4=LMIEM-JXx?rYtESx^`9-Q*YA2`F+3v508CfIG@z&cugV)B$*Iu%mE$axc zTn$VV`jUE}<(kb-cf3%j(LRQucz_xMURawLHS~e7K8lrAD2W)dx_zBzh>?)>TXRD3 z_xWxL)hvj%9yxhQXju`lUW7h)ciaTLAATp~coeceoG6lTiOzzVR9At&iPQE;je4%| zc0lSB|ko+W=Frn;Bd$%5JLiBG4Vunma{b4V{$293%P5$<$INk1~?UaAmSl95ABA}*dgIYo+V*NYurKzvgh z6Q6mI`HH?Wyi+Ke?9zWoZcWawK`4`y6L1LRloKuLY|^45ioUW=hfG-FlPPWwX%$QQ z+Qe#gX$!F3y+xa;qT;hAVUA_GLdR^b7(v#Jj9HrZWc{w9v&$yPu&!T+JZKgIlOB8l zw1VFz^vWDFH!xD6kxTga!7KdWDhMP~M&*J@l|p~~GU7L9{}-oBO@bwXV?M_c$3#uo zc>2U=F)G>CL+n_P-*sa&i)xUdfw^h+dsY>_pz~DGJPkF~0KVv7oU+DZX%t;q ztY?{Y`j}GTl@c9KW{FUc#zZp-ot$W7G1qY0Le0@bxpSeZYG||amvLgX*CVCMqeNfT zT4GH?hNarRhxp$l<-FdBWI1sb_WZXg3GzQ02D~0C{ishxZb2q`Uzi%RAS^XmuwfeN4IGBm(W&ExaRZjx@$~y94RdVO@y~&^Tbe*`Y z<<=SFOSfCgsbwSz@LFf8EEx1vLqg=zq{(YPcS~Jx#>6g-gzJD?C|#(2w7y>|1_8sZ zJBx%V{f31$&fY9eQjw!cX#uV4B<8qsK+1G&8V~A__X?GST+e<4` zj%0N@hKEzxNGXG667^BADys}M>0_bw*O^RI+T2nqGx_MWg+dmp5_xSISyzvFqba8R z5GkZzTpoFSM(bHI9V(+;sddRw^)|XV7b=48i&QzzSK%H&zc_;gjVI(k`}8#H08ooVM+FN-MacR!U}r?Cpoo0>yry<{9s z(>6X$?iz7nPsO&=GOcMWH2WtHNT1uc-@To?u5s)q=F<0mHNOn5Q`<-G|5=06W$NeO zI`J{&T(9H4bKy*ox6_r}fQEk^=fAR--ge(-zNQ|s&jL7R;w>F9PdDf3<2t2KY7yf> zxmA)=n6D|^?m%8YY6jstmyUZ*@ya?)Gj};w=3|~~H@D@L(m2;fdmT`G8=Z~qvNnMG z<+m;J0(6BRYp1ynl(wIjLpPl}uQRW`@MyOJtXv)EGjI5#|NN{vO!kH5nsn%O)_~n| zD(3yXp`raa#GrB02lbx!e*QS---zDVReY9F<;K(-z8&au^>=Q%D-=2~VLLFt z$SJWKFnNS~9y@TH7*K+n%bn{-z3JPNYmn5cxtnQl=bP{9H9u0R!2ReTft+$^%&zAR zB&F>S*O|8+TEGFkpvBC9%tic`3{)ioNGu(+eKllj4Rj|Rcq1JQ{PoY#na_%9qBJ=O z(;1qjDF{WG!wOos??o`xaxj;4&s}uzj|ec=HSp`vaHDc?hjd(XauAeqPaAa6J8}pZ z_Hf@35kBdVUTxvY<-e2MA~jwkGSh=#0pt-%3!yS=Zdd3k7bKR6p*J|_e|1_St0N+7 z-~Lj*_|mgSrH}n(U3;QLk5+uJ&Ld5euvgS}{vJXnjfd3)I*56MT5 zk}HN)OiR>854vrS_ezhpe2e#;0Uz7}f3+45_6}c}9{125*UMhlHx}#HELJxn0eKx^ ze=I&d0}-;kA4&Zy2Cw2s@Tt#(w2N0%J+5jIQR6)4)i3B43l?M(L017igebIbf?uQk03PU zj7-9clmzum((_EBjLgdOwD*vBokWa_4%Dl1Ph7}&>h~n9(~&6ZUYtRZk@dcq zp@2OT84vNEb9J7x^&Y^z8_!f*kGx;ca~V&&&d9sY$kmxoIK;@pd&DI^O9!vW{dmuZ zsKjyY$dA#$kMqD!phSl3BtWLb&Dh62j_*1Y&jsY3e=IOUF9--P@R2tNNh|RaF$pU> z39CEN%037qI|&&l@V+C{vM{j#&+Oog=i9Us@p=%YMiB{e64PuDi)0cGVG`Fx5lcl8 zqkkX_v=9_$z)Du+<3$n5W|E|D5N~x7N_>#)RU(OYl5%B~np6^RXOhlTl3Zn~1SZm! zE)Z8f2(C8BTt0{|GRdYsNWC`5em=;4XO;_6l7(6ny?&6pd=T7D5d1OE1?~8Tz^p*> zC5 z)9q}snryOaWU*d!v0iPmHh!|&WdZKj>|igc4Z1KID%w1{*mf>ie?HlMXSEwow1rZ& zxpomhQ!%}EfkkUx`uS`RrD{jw>OkJCMDXkY+ibt6Ad9qYgvOf5geFSw>LiY4LHX>o z+2o|$Y$w?4d@gUwx$MZBOrYKDg5&CJ&+6*TYUAhP>h6Dy z-Hj34GN1q9eO;5?OI6w9(cU7S-GZJy`kOp}oU*-&#~_+bZ?mUh@}JpckXcoLyQZtx zX0zKQtM{R+_bIFQ_OmxKn&@q_cRDIi()59j^#OPD6-M=iMfZkMGp}a#Yku~{dGRA) z^CxlhUrqKiUG|}73!qK$|A$jX_h)7cT)y)XZV8lrapq+UVt)x#NB6{Q3DRc^Hg*d( zZwVGg542_r`46X@;s*Z`66E$bwB>JPizoTZ-$b|2R3KyA;$#03TId#5+7c$n7F79f zPPxTTxh1@pEn?6uLjEOu6euLKMMkRyRZB*0zC`Y}1g^3{?6*W+zC^{kMVX^TzqUkw zs`)&&*nGLgK(U8|zQ)wn#{6=RmH!os^BN195=)})OMuWCNBtV7>lSy29?#BB2MY2p z)Dq&`*EcFzAZjTHQUzK}@c(<@;^HDABErGJfrEpCf`Wp8fPDY{{oDVH?;s$cU|`^o zP%!X_zfds=fEwoiT0kZ9zc2nHW)e`~5K#Va1ynVOsBj6X{+WrW|7!*={=NS9@&Egb zM+}rS|GWO9E<>hSUB>pOhWylMaD+<*s3AbuX4j9YMSgOw0Yt6YCF8wi| z4)YmGifhV9ZOzGQ&daMSD{H8%Y_6^8XsjP-X&UM3obK(N85o)w9-keXo*SQ;pPFBs zSzMl7TAg26pI_ZrT-{h+-(20;TwC8*+t^%P-&$MWSzkNcTtD90INILY-`UywN5%w> z{eQ-P`bJtWX{>lM>Yei}ZSXdGK2equ} zEW$mVr#@;)K3@A(^1!HTMKRo;Q$Z0PUz@TqLx8vP+YP;56aRI?pF$RZLQ z{)0p`H0`w8Aq-ZJ&wUhK1@-(~;77^O%~_QL6gej7@{ za;PB$+TIprXtvTTR!nIpr}e}W56#PwyY;L*<*vF`taT9UZgY_=e1!xa^) zgs-;z*yhCq5D_!uQUqqO%%k^j(~SrbO|k7M2@;0&pfF0Os6L$@XH(KC2q2Q^>*$4rMk*O;7?Rq56+n^mui}Gl(he%cNAniMwN0~)?1WA*Q;IwKF#x=E zd{1}-NG;0!+DZ&gs@gb`Bx#60*OZfztyA}Fbp+D1Q+guRi(*penos%WVCwPc_a5fq zdEamLE1T|HPVwkx|1OMypX5nimP7LtO@L3LIQh|lHwsjX)zL7UwKqSlud$R?klgfq zV{A&Qfwm5)kr{w9w#tv*YFwy`Q+T5)N+V33@a{EgzvNjv>#rPnL_y9B?ZG#!qOm-6 z@MHRFDTC>z>@15fA1+veX)E2GuF1nj*Vs*WoKZZV3)>Q9-BO+-wq9(Q*QCx!UeH-Ib2d@?Gx}>V&$uNw1{X~uOmq*TA>4)+a5(h)C|Z_U>fcV1$g^Kaj0@bQWAl*N$K0ZtV09G)0q+*_)w zUjIfhJrTfr%oyUn`HIj-e8yy}-NvnKj48#%Nw+MHz+#Ig>($fPe%SV`)X;CNwf4f_V`H6`ut| zdF*=;6!d4fEmn)Li5yp^%#)W``|ZrJO&6>m=iN<&E+;nHK(8G4HfEUXh(FrpZ$FMr zUEbH#OYcGJS+wba{P@*LT_3&!rTco=4a5^KbJd}?<^vWj)E?{crKRbuM>0KlQ#}hD zlEOIl5xro+$O_eE1~XVVv3|?c5OzhJL2rREL%bkV?O=Qb;BNPoi+Df*gvk1=M}+f$ z0M5Q=Kj$VUgcFGZ-m9h52bvuXbUALKqlS`JJpK1w3li7yqm8ar>5&583%pgBBf**$ zK4v)CTq8`3ujFe{7a#>K?{wV#@Bxk^`DtXNaXwR_ext^wWYlBtFiQ&=_V+XU*dt<~ z)kx1U-)5~`P+vaIWe$bPIRV@WLcR^?zM+_(3k?%M+CEslNDZ2O(r4u%po6IteZ7sw z*aDiR6=nbb%ld|+{zZqGhMjXn(9Gop|pQ>e8Oh|5AC|rfmi^#&gBK$kmS~F zT|dqqU2tgd_ee^l1J~CvBGoj~mDMYHb1bKG+)!7xjj><$P(+ww>?d_hHuBv;@01!) zM=BXK&%KoHG$I70Y7_biwNcti^6f^`qfxT$NxzJFq4&slw~0bsm5H)z}>wFOa75H;*W{``!_gsm(-toM-OmNV(CyX5UoPw||2#Wt@Ow z<)O-w5)>5LnQMVwhs{$KvJJW?2WLKT4So%1%&?EVn}gyNi-S9VL6L83bMe#kMEgE{ zrq{@j>Q3OfqY+FQ^M%Bq&jnq26ZK>G2db)WOx%W0GSbN}mDf3_@x>~bMM`Q-q+0YT zC}(?glTi_g()C~VCO`6Ety@wI2U7OV?~o%tzX^)V$0-mG644!BJ@j=QF%-H3X@!u4 zjJ~JGT6c~UeysN8%E5+)Qj891Gz!14N6mIHh~D%FkN%Ofn^H>4BmAng#VOW|cTbjYwl1POOzFS_Ot0;-0?V+ruKBy=eS3=H}JOE3| zY<_;|E2&f8cfvO*v^Y})L-cDA^$tJ)J&XYtC{~+J%a|(ejV|X#O@K5MDWf_SR$++1 zK19^u6dJYptt8eQ-%#9!v=a#;D8{@P`*`xy1I4sw7K{J*x|~sLrpYygdCo8Up1h=(zSisc=~-STjwT5^>Y*Uy0No+>v=@B%hD`cyuCW) zMb-85DpB_Hj5GLk2^?>V7ohtwCcFK%1K+LAll#rJ26FATcxJ^_;4vL_;udJZz?s}Z^1 zEj-q-H|&ZZ?u#Ejx<4VCKe3uWshj`r-@fpWo=2>HV{uBTkP;Xzem`UVS=<8HQUW+y z0=QNJcuM>s=pBI%C29_%7&U;0Dd18yfOjQO<|R-LJxGBqh_%H(S~!sAudCQ!zrtKU z$rpGf^k4(FU?a6)lam0I7h|;&FWM0*O*2w$u>d`{U?;T@7q<|%l#tux;NE3_tCAq& zqQKDNkU+J+!ES#6f7$#!N8G*L9IbzoqCtk}5ru@Rg(kU$rlf@4H2*zp4vvES8~gij zT3%>@T3C@=n8HZtCXt_yTc96$i0oK-K-MTM7cx9REMn>s|oCVL!n@t^Hh2;4FI79$S<C>m9hu8~BSG_;X*l;~RJ$dAP3|*sYkjTZb5` z)i|0~U#M0<4D4$R2x9CPUF?@!EZQqP#w$G5YAhZ`9Fck)S!&!?O&o1%f<$Y=8(KVJ zZw&Zu3<7y9ig_%0X)N|>EIxT0u{j)RXdDH3v=n=iQE7q<29lgOf`WRyQfj=)XuKL! zf+l-{j(UQ=dXige@(=eU=-4FC+N3YNc(&4b)zf%&j07$51U>fzgVN-v*OZx&WQg5l zknbt}>WQ4I@w}yp0;`F-<_Tg@sd?;aJ!S|1I;3KCgaQVH(p7knUihyXco2egyLfmQ zcla+oc-e&b+n8AFQMmIPm`L%o0riYjv$PWPw9;4j%Gb17_Vh2g^ybv`c5?X6SNLv> zjDCQ51`xFj{F^~on^Do4G5HE#L!LfOp84gQ-o_5!ahiVlEu-%=6Np;6m89)KW$lY+ zf$XLoy=J`Qr#Bd;pPR!!-U!|4W#06}-eP1->SY5_OT&^h;@Ir+(X`LgjJnXQhI{yC z^BhQvSm>V#a1^HNH|uggZU3?`HigzTE0j?qQHzIUo@>yJS_k2wa5X8T3Yx3oXWCk zEQ&DRva!;N{jD34mjk($&I^@sJ_A#`Rqxd+iOu4LTdbDa8GX)u=`evr`oUi&ht!6W|I(RH2g`=|U zXU)q_6=-=5M0m~5^xA^anxeOwBaB)G%$jS78Z@jl%s+J=qqT<~Ws|3XY7opiWXhTw zi`sjOy5E254NL0=Jj&vJH*Ne0#aD-RQmNg)}*I!c96KmE#dNe3W z#)yws53beIVAaWT)-g#oumB^;ETdH|i#4F@v^8r5p)-Uzn`|VbjoYiK! zZPT0Y(VHd5tEJnk_@Eng$D8!an}azc)UmQm#_B##sfB;CGK9gu=)q@N zw6`|4)E~X&!$YS>k5|FG#xSSFgNJ9rrnM@Lw^mt(WtCUw{3*_Z&WVxCDbma=P0y@& zZ|jl_uU)Sx#%LS%XfLF!xgv*eZ*NO`Z=bRZ?X@gZJ8y1m&m97!19OYou5;RYR@*m+f z7O~Qo)7ycWO`GdopY1(HFWp(39S@dWE$N+S4gK zA94n;`=(!DV}M(1U^=X1eXr%zyu(r>|CX*{0;@`9V~{7TzplJNL96|Av=P}dhm{>3 z&Apj8tySw{(9X&qG&hELH@PLWQ&Bw=q;`mhy#EV74qzh>x9uDE6%)5Q12cgz9G2nl zsDS;BK7BQM8 zH4+>#lE*bJmsS*IHReV&I@&&LH#&B6S4l`3NH92543Bf%(Xg2<) zl{!%|4)ZxZOEo>OH8m(TODOFF$({OBJ6`qxFac?ta%k1qIiW=$q@=U3~_=j86! z=PrTw1d;bJWY*^Ui{T-+fN*NULOAL+EuaHH;URf z$?AoOs^sFSQQWHBgdW+k-Usk7Y-Qpc6Uyw8PR@&ZA9q8=(SB~;PaLZOj(uqc9C;8F zuJ-LQ5<+D#1h$S3K2LP8Po1ld>~OOGRvm}K?WA3uWXSYq>6|3kq~v+`7G#}9W}Rtw zoW*gQm=b2+9;1=_m2z&b)_p1Y+_LflhR@42KC-xQ!j})f*j`FLWS~eD$_YT$e zju~iLclU69Wr6PA)5AY3MBK6RKH%A2YDHddM#R(jJka6AG1$T}bw99d-^xti$#pL& z$Ra3B-_y$80mH$9CLVOY9yxf`iTF*OR1hlm&_HSlO!E9@>z?Okp6Q5S50PMJXLP1x z5N)ozs_cK-dA}H@zl2Y}D4)N?z&};wzQkX5#QD5-rN5?Kw`FXHzPW3@ z6Gy&n3K)mF!RZw$BZ`qOGq_T};5Ol{u{L%>%ej|-s%p5 z#S`&VyV*;kMdk%sn00DHiK0kZ8S3{YQ@+%UfT0a_AZl6o%Nycy<-ua9k~zPK#X+~r zXB)8lR$89gXnP1?);!VxqL$vvZ-SxM+dQic=JST76&V~(#}ltMOBF9JSDT|z2O$-d zcUnZwpZmkMuMS>QUz_iyR~_Qot810{Hk}*I7h9iSKM+b|W3aBX?*Q^NosUoE*LZ6? z^~IU5A{<9}u2P{%5v)?YhXunZ{%8D(VV1b5T7>>HCaYjU1ls|6 z(GVf3nG~e2(qoMHJo}qYpNmpc-1`o9G7;MZb_CX2r-C{O%Ja97o|2e*hz=hG@ls5p zSfx8Iw=}B|j0A!9I%(GCefx2$00V%$IP~;~XllZWXT2=1WH>U#LBqpn22uQnXqMZJ zQs^`Mn-9k&HoS1+g z6iUA$t!q^D4;z>3j6R{*WdhomaZ6nufv9CU$P$@AsIXF&bChlJ3!QO#rIJp1HB{=&7{#VUY7I(&v_X7wK$gE2F5s* zU4?xw$;%^kH`Nuj#U$ntP?@5eBJGf1njim|YMet&s=l0`jq9qJo{XwtT2d{d(UFY^ z_hwLD3-P|_larceSrh^xxnHyFa*wy&q|=NWzR#atkheP2KDM97A!6ft3gEEqT~83H z^jAOobJa$x_{VOT(}>2P>r=()*5}Hb%kc{?+u30dbeZen8$0~ceK$}ia$3|T+EkyX z{Nd%i8Y(z^v;3Xb-DPvPL0fms-qpi(H)wtRdD;<=$9+Cb^u=`nOO?k%{*Nu-Wv6f$ zz`Ot^$^Ga0aV_i5NjDj9)eY!*m*?X&$5++Ea!7XF)3OJz_j`3(HsJR97;pWfvrP93 z?03%BcRL?YA-z_>&y~b)q%(eO>iD4WFML1Oi2bcn^}w0YkcFisRc3?l*5pf>m!Uvt8-~%lGiV_&D&xUan7_3#b2nQI&n$aH+LU)!7(mB{ixPTgB2)c<3mD-2%69kD1 z#m2F#6YUD1+1Nv~>L5lr6zua}h#_$S1fxA4 zi15M1#RLfzVk4{yQ1H~_*z*daTqpK%-+^7y5DvrvR0jmGucLBdNWblgjfu(F<0Nz( z5-T^1sJH>GBN`(13B=@w;xgi+N(OO>X`Uox#;IZksPUo0*y0QXt>Zoq3W=#shrD{L zqv|U2X`%y1ybY<6HXie-JrPB8<4|LcaP*nyLPf;#=A*Vej2ZhGq}1o;)0zTv32#QE zyxUOH_7aXM57=h#*QMiLZ%7%v#AM6_nDW>L$l0$}$6`+}Q+6y$Sz0Cj?Cfi^{zvh7 zP&lWwk{n_}gbamP+UC&QWpT!L3I#;5=Hg~)v*|}nA)H>NvR{abyi*Cp^HgQ>rhgX# zf}KkFtjpxGEffNd*$elvFqxi-IG{R0mh)tnQR5Hb2P48$DDKT$C&E!OmHp z#Q{qkDTyU6o#hbsV^f_5jTMfclro^2y}kYoH4dA^+VgEIuq;iLDu?B|xj)s$IA-e3 zJS|BW!&fFLn(CprjznWeL$%wG>#C`Y#M|gr=XvNFDG|Xfkv&G2!x)>0Q>jfYDSOuM zl$s?Dt>wU9*JHt!8~QJG?N8mbS|}Qt&GoK$GoZD9N-QTVI9EF8TgF{FEZ18pTeI}8 zPn?@HcN_`lxF)vhoQEwp9~4r1zLM#(&#|_uYtwiKm2W@ZCMN)JtbL8sbwP%wd&;e; z|6GP^f9GxPJ^WMSL8PVoE!wpgwCm=Xp+W`>tEpPRnKnQ$LjR#E5ZS=_m;xSa2jE-8 z6iKPF`B%3?KitKQm<;wR(jJ=wr@tkYfyZ9l*J_`Dvt^KC_15N{-7t>o6;;6IZa-{d zpPa093*0_3FIWlfdPKrG=`d>oUNmNwf3P$aQ_a4)ob`u+q{9AiKVNoTc9O z-frV#leT^x%sO`9rRRaCxn`#9(lzU4q5sUe7GEXM1D<8*&&k<0xYX1+9(f%!U$ML5 z?N)W(c^;~ov1@Bn-k%C}YcIL6iHo+`rTPx+eRRw?$f)d-uR075;oSE&Yo*ks8Ba<7 zbL6ks>Y<(`p6rNp1oiwneT({_w9R#V%VjxDUiIKh|G6YX);1M6kRYN`zYc+5%ULaHU_Y~DKRXyF3s*P$e)%UBb6gHT zPv9@e45He03QDVHb;5z)OapNILd)wld`7?V{|ty(@yAG33xNqCBMV7w2ugP(i7N?7 z!jQ=)2r7U9JH2{jjRt%q3#5#ME$M~TsM`6l2Q`$EG%JMUI)v!*g>^23Ri*f}n7FmI zgbf~$bpy%uq=fZ1giQ{9nPO9#Spm27L@ZFS46Vu)!9=3&3-k|$1Um}X1xq9}2I3go zjn;=8z<#j_42vra^JQ?kYKgch^*IK1I}t%_Am+mU1qgIYRzhLPYX8(p>tz`E0VK`3x_?!iS-dRO#Khx=>^;a4%26jO&@d}@@y)X-&i|4g-SSji`a7?Xrsz_x2#oYt98n~2nxnd$C;yzEfLxey zm|>T`hY{;!b zORXHhpDJtZoJ&34yVh1W8?E zwLv=RmjJau>IsV=kg&>?K0CFUJQ~gjwY7(p=t-4q{Gj#m6&q%CJ7M(($W_v^jLyf%4zH08Z64>>MoV8dImi)uXP~r84!R*4yt|D;hnncYOwe_sQ z{#PacmPyUB70v3wf-Yvch7ZjQSgkL_wJPfMJ}<#;@Qp$3uwJhX9)=Avp^eePje?pD zhJmt)%jtnjEkJ6a=Jo#i2)9-%@#fs(YVDzV-=NmwqSn%(*79N4Ja_lPXU|%Y|I*-Q z>7w@cgH6f@?H$;y$``Hjpp7k@&2?#=Otq~hSnV}0ox#YhjUeqJ?iD#ksOyBe?#hLW zpueeJOf8sW?|s8Q2)cLN^Sj!uF%r5zHMgIfbt~v}g)_H*lR&+9>Xwh_z6z^7QcFBJ zFMPowzWn0&uA}%yt@kCoBdNSoBv|-)*a+a>fjs*At!n4Hi(WW36y(xQL&{G1`3}U< zHp0{n;uIvD2`O~d_Ais&a6A2M|J@%+yBMgUNIbe+ZTbi-JGYCw3A?+^VU+Q|XV6ji z2%gXrBLR#Ne}=TUmZK&$NVlM5s9JOr419&hgBlIMk=DqXT7Sz7kw5LxlK!MZZMEDm zxXm{>5#C32G0+4ZW?|`K9ok|;&1Ii5V1VfM*&kX=bM9eFT^a(1i- zCY^-Rm|-V~MW9a2DxZX!{Eb3gkRp5u$8OT#^BL_I6>w#*u`XuYy%n=)>=GC{I(PTBDtr-+(5NKIk;SNxwM0@8PK^xx4PP6xx(qSo)8h6B-O)jx;m#hy@0URwr0nq)GG$N z4)|*m^8Zlwma%QM?Y3?kcF;*0W@hH5VP%ds zwRN<&bcTkerfmPPEX`rh+s|{2U{&#bU0P1*LCnivYHE+2dQTJEmO3^r);3?gF0*AX z1D9+(E^PSUZSIh5YX}cx3oga(FJED;a4ELX z66P?62Pj;&a1yqFOIvitD=EIKCr+z9PCFlQJ8X43oGvTeDqDyyJF@ZXx8MUztj{Vp>{wScP1k~l4%~wd z>M)M5SdLZ|07qWLY(GCm}Dp*Y-5oL~!$Ogg^p|cluD6kE6jVCfO_DUwVJiB+1 zm}cLJ>{LJY!0X6Wbnldt?|&5E$2Q(enr#2Du`T1guL^d;JiJy~y!*L$tOM&rQ(|kR z{#WhL$)L+g9>$s0nV2qc@1&PrGLEZV@@vw7rb7#Glvq=+d0-H5p3h(Ig+EimeDYIwNc3e3sM4C2KAtZ! zutu?U7jV_geh}1g4IX?7{U{AI`4ypX8Dp{} zW@41S`1Gr4BGtqdO&~1fa3d?k1?m1d$7aVQ2DFR9DA6m~!5 za-wa} z(xugWj$PN~b)>-2Y>eVsljkF}_g@sDgAcFCD($KuZ`FIRLLbn;rPp$b!->St(?ihy zB&ZVhV;$pT@zQ%|({5MyC9(sQM(-2Dq=D~wG zz^(YNryf1el{Y$-yt$iL@$l)LEau zaGWjq@WfDPBv()NSzwTPMF1OSeH70}7_Hy9Z}vu*W(KS<>#b)Z6| zvah&xa2Wrz?UPa?4#LoK-Tn@{L7DCU!90X#SR(Ya8HkfMfDrz%y7iX#4Z!)Phm79)FJ{*+CB0ck9w$Y=~Va$i|6)G`GI zUJcLxoA7a7B9b!Kp0GMvpizod>ocXg{7$i+;(;G^VWfF0EEsC}0!YZjPc|{pcGZ%K zjk7R*rYeZ~x}uc(7^O)SYjO}qolL>sN>kz^j!T*KYeSPl#l3c!rmWQdnZ`{Ctu-~T z$e`?ZaoLLdpQ!SOBlDsfG@jG!W_aH6uvU3m^SnaPi$Z=6+ADqiXI#9KKi~PAE$d3e z!BEQ;IbPGMkzzo3<9fOWqvdR{+M$3-wkA4OF=IG*wrpTbPjw1EUzsL662u@XooMk7 z)bcc_s?+C+m$v;A0#|hps!S$EFF);BWfuYu{Z%`<$D3WS?$;3QPE4ju%f4M!Jm$Z| zZEvh{q!Eus!%8}9RdQ@)h|r@1eQ#`2B&wFT!_^1vcB4Xc9rd3@65QDOqDju#W>sO& z>$SwR>Fy`^7R@=9m<>Ca1|(eGndkNY@Lew{7K}Nyhq`xgt}``N+_&N8j9)K0z5cvh zp8*u#3W!a-bL~LGPAn{#F^f$(eJfaZ*+~*};!Ocy(@@XrUVCy|#Jr242M$RC-*GbGd`Q9cLiq zG~Uiz0Nw?La~NID7Cbg7A666;o*(xQY3mBvsXS{B0MK1;R|lg$+kTnnFJ!Nc9}oOL z$0k2Mo_m!ukfg%VpYy(hyqg5}@0q+mc@le_iF7mL02$!O@At(~k|twIsferWV^Jk28`<)IZ1^>cSJZ3)k_K!|2}?p@gUj6gG-E?EEcG+sGWK z?x+pZBq@qtSrhFGF#NnJ*?W{_7a&$oM$8r<0e?~xCgiy@!i_y7<_;S6)@O~79|-NA z{-xl4bxKOc)`IgnI+8g)u;4tIwO~;4A}0OYeh)WK-Jz#_%rg4EJEIi;_ZelnBM)*q z1Woaop7=zwath`)`%wVt@1$T+9VT!~%P)A9q~p;d=;74U~~J)#68bL>9J=V!;71wt?!iIZkN&AZbGv+_V)QIz=a0I zfjLw7+bo~UYHV8*a*^*tg<5dNy=V&U&SZ^5h{~oTMd#Qm%1xmfuf5T!3S>b}@>&`=F-_b6H!nR5mOR7Y1(7{wJ$ z1m{H)CwI`(vS~BC&qFzj{kAj|iqPzwxUI5jTNjdz(3($AYpyVPrCVQ5e{7FwI2S_w^CL)hvH7CH(A_~s_d)rw6QnX$b^7op{o%!>VdK0|!tV5I zZypON6r-)_Hl0$dK}rwa8e^atKyOCNwflYC7MZJDumcH|76s{gGnnYxpBw~W6DPV{;B(B@vuO4F}Q<=uk6`Et|KdXN%-G1Sj zZ1HrmW{cV^H?ezo4)rmvaleN-oy=bSg}UE zHtd7jUinfluFH9;&(#jwaPVwwPF*v2O1Zk~&xyP)d6zcTIJ+;cru`(^rlG6W+Q;K< z{bMt>yF8n7P^_)&RMyrpKR5=mu&#X^er%DEx(=~a*g2)N?@-w^7pYjc#3lUNp`5%G zlEyJg!(JG{P8@U9#FcfO&GhZ4 zit?p1UWeoq|Ls_%%PGTCefhDjsqIG&6?K8mgMs$Dyir9C4dD2m>e7C}tE;gPVbkF6 z;(K@8hugkP^sq?d>IhWCTN-n!g>?pMGmrT6S8)* zOlk{iMh=?rZ$xI;HHqG?)z%FNkSh$#HTKi%L`|uW)B7|-=uaT}5{65$JR8%KiBKj7 zJ+rm2q?fj>hn$=R7}=`4%7xd$8G$C5JtMBY+d5s}>Zc)@VkXJs&I4uvfztZxNF+jI zdgz2CU;HyM-HEVXFcPuzo`UrMMCsor;P06CrdAN|?7P zTXm@H@u+L%D6_Z8dGu-0S8329sY!Q|!?s8}cMujt&x3-nq78DVNl8}nTmJ5lt7%qH zkTBEA(^gJ0PmtEn?|@if3|Z61SQ|;(`3gwH$);rs^3(D;W+Ipu&{gLHtsUeiZa3wJq_mr`=i$Ea`;%o?}v#5Xtiu3^#rp= z1$)W3`SlN%Pmp2*PUj=4Km*=L%{WTgEQhVK zr~tc2t#kkB9hCpWU0PdSc|%O^$3c-!d=cYC!O!Af8W5DxQ$^a!gqiOY1~*{_Hx!4z zat-;5ug{8B?#HDlZ$k)U!+QiJ7s@KiLJzvVzfXV{~XvLrZx2L4x zcM07BRe~f{$8m|-l?lg7iAifo1K>y-_?rdyDEX7AcmARG$f5h!-|>P+T{P6HKMx(W ze%q|XxPf2}4b)8F?2q)_e|vH(hnkx{Bp!J>Q-^!U>QVjDK&7zLkaB61ZUMXFUlSPzw`i z%;D@u)2{W>xSEF(n?@kwm106m+s}VzM4?^tr){PU?=DOI-kaN~jXzB)iY?60F8t@_ z1Qaq*>gGSt$~=@}|0`RVD;t)pM7-(y8l|3E?7t{~}a*VqSY= z;hEZ7CjYl_1*Hz@EQRz$+OCIMOuin+j|RN2vapxt>`$My1XiXnt#3KaCwlS|@iy!e z<1{}UQ~Eu}Xf(J;RBR!vLQ94@2!=QMDVT~WWCn&Y|7k*o8On+oMuu6=idoVMdeMqG zd4_qlig_J|1>^I%PKZV4ibZdRrQnLCXoltFisfvEmEwwjCZLTKtLYUB17K7Ih+%=h zVts>QgOg$Uf?@i>a>&^awVIy9iF^!Zm;{6DOSRs_fgo zYM~M}bKx)MfGowBwUImw!}oUL^6s}vRH&*Cv?{XWD(F)t&_&?8b@dy_*jB@~`n|OZ zF2M#SrW%mL46j`UyC@2u!vxoL^;T&sXIqW9Itjgbb!$KHfoX#b$NZV?Pc6Y!HN}-h zg&CByB^2z{#|p{^BNMVAGpLstagq7n+7=;#8N;Lo)28N5r{-DO4%VTD%+C&t#6Z`! zMPHr#c(6q|JVV(nAab8+h|>I7F^f?PJ6SD@278G-dWFMVg_*#D6j37#SBphd3qY?G zCT1l|xFn{lg+aK10T)?7-oRJYTs7LEmXiTj38}`eg{U*@)2GMee@$G|Oi;22on4{z z*`TYl-omirh}^)-*u!zLG9K14I#e+%GBJo$k?%6m@7m(_F@fk*nDN?JsQPL$!{cbB zcM`wQN420_eihwu#({dQz9MAfS~N!YVWa=BXPUiaGGT_jWc^xF_r!0{GkD28$V`rM z%Y{`(W_Qa{SA$|x3tp30-4L-QS(l*XK(ARBw{`}3dCj?6CyZ4!InMU6!OYO*fYVfm zC{r&cQ~Rn@FP^|A<}e^0z`{`AD-z=fKX)KZ$1X&Eo3?(&zss0K8cYN%KVMS4vZa?P zspT}WN6ER95@C`ex@2~_6Y^x2Kxj}R;!qxCRZ?)|MX8hgsF%9E6W(>8JUsgZi)b&d zgO#ms)PI*nZ;Fe3EyyM#R3*iEcthkx@pJJWd-R@s^raC)`Ryn4D^`gzD^Wsah9PJS>)oYm;YejjGHF7AG0oK&D7wG8E)F6e_2{=w z^r!a%TMh62oMt99rZJ5=9uFY<#>roe#zatBmw|e^968Bm26T-^*|bz6XPn9uns|<) znaexM4RTv-cx{~auXiGU9!ydm?y@-@C7K*pYaQsI90XWEq+IrRE|w+rc5T;bc{j1r zI$FP>Q4yd7)zbuXxrAh!d_G*5Zn=bx9+7rk zEEb!DC!744nmtjRyVor1m>t-NoS~-y6hPWi&<2f-Ub(w~b5#S^sG#kZJ6C|Nvs~hn zUDt!q(k&BuvpE8HBZ2DB%j;+d7f%N+e@JJT-AB4vZs$?%)Re}Q9F~+v8)uVezRRbi0#`W= zj@Xc+TE8zECm}HB*}SL{FVr&O8B|GTgSq=6rT(10+8Tx)SdQ|w9M&xpLCuY_Wae{! zP?cDG-^gVk@isfOkVH$OKwI;wXkD9IaZXE(MT-s!ZyT9Sb=Rv((`$8rbL(O2Bn@~- z)TX)`*!=iPiFa3`TUUj{si4><1pysQ1eI<5TE@#GvQ^^&>8a1Fk#WjfGW)gD&@*h2 z*I(c(NmJXP2lF5qcWn-L=WTQUXlvJM;9nWf{HKTHmEvyX9BQn;MGwy*GR{^_?SEfi z@f^fQa^5^eE{AsAhln~NvApbetEQM<1uWfRUcXJc;0EFWRFS_4?UC6|w3knm!M-mC-?V z?RnPMBHY~BY4L5-qGl?G|6bjvo(=}=Jj=p>f;*kE>`6i)>h{yq}U#G znr2VBu>rb);D#&SXTe9t#KY?+vaWYH&|{zX<0Y@)8#;F^aSuK$D&_ZPW(lDX6cSt` zZaWgh2rL%kxn@wDp+pRkQ1BNXH1hr+RHb4^)A)U%B#5ZLi989$b}3V-V*2 zezdYOqV zL7`oQz#H?u&f1JxCWBv&#;I)HN23Ax?RIjqs~Tb$#Ky}kx6)t*=#A3u&oi4X5K|Ga zEM$`(pM=#;=3l4yb-GwXR@|B8fqb-S!TA{Gd2=&4Aj504B6e@?ud31;!WTQU;PbO9 z7~{1n8q~f1;r@Ea)dXd3!M&p_tk6?9ree)=oerr`cR^h~)f=qSswe_a@fWcd#mQWe z^)^w%Rw!w~BBml#109Y(@wdBGrwNrbJ7xQNGK}x#G$nywZt^fc+*tCld3tE+{Lb29IQ^_g z<+wK7@up-Ok@4BuTDtF)rT!Am)iTke%6(VrMbw^C0w4t`PUYZd&QUWfygH1{wZcUU zhDe&R3_O9h3&)?$+b_jeA4a1FH$3rfR3N!3FnR=7pl?Y~!_wJjbjduwFX`t&Ei9oh zfX-)Te#E?~5NmUJnJ*{^VW`T5E+wMMzh3=`QY9F5pXVYDpqJ!+cnNHj{E=pb1uv5@ zf4by$T(P*}!5g7Y;rh%lvd)~P+N9=Kbf2iDxLH?5tD;+=(5UJ_PWPjJ0NP%GA27lF z)6d39t;i?tMBRvjmS9=gGX}iIRodgHo3bolcI2)p2c@gl@1Y>Laf=#;By=mYJ?D8F zyA13}qH)tv*&?KJ&D}JU=x2&pHiGG2Q(B!`rxj9(>BK2i1+C^)B>w4!B^<^pTSNu! zF(x5fuQ>DH+bFao>L$KwO-2M5z5J-3=D^dc#VKets;r^>aorCs+!Awyc7s0Z@Z)jaO;^5Z zHKT%$qUTrFn^V%9F>hIxkcsQSi{xYY#C!Mx!zE#ycZAKJ{$%^pGTr9)rx-tzhpUb0 z5cTVuV_e;_D>KH<*D)*=cj5*J%eICC1q!&A8HYl$)1N46nX@{lCtL!>UMSv3_?fSu zo=$Liy8l94?h^5lAkx63D}4Q?6aNqo+g^;A^={75kxCBUcBngq=+Bs&`mYOCHg<&H zwZ=J{d*J!^{Q2&-QT##);SX#BHXU%Gjzj8E;}uPE9OO!UlZ8JiD;O*kfHeB)i@OQZ zM}x&3aZw8z#r&b-B7c1k$0maqNOP+(<`gAHYoP9>=p_FR*xigQgsb_q5+(r=miHOu zXn;IgA-2lUaA0mpkex9;Zb`}r62+`e_$4aNpF9*l?I`=b-$dWuLxr%bSD5zVcMLPQ zmxMA+8rNMmi7S$Pg%GDxd;(3ZrhcDpdSOIWT0Es=t?09UQtH>%BP-iea>6F39L4kr z)gr`V{5+bz#HX34$b#ZcTY!wVbwbAa9p!cH@_>bRtnIF4kw`v3P6c_-o!*|5N^HAb zfl?(cZ_SWx)ojG^LM45P<&g2?Zt@}sJ!F&pNN8ScN*zAYzw-w^NZ=7bM^wX>^ObFz z;81GP`nW_M%|ri$5*{@)Ix*>^@RuNTx^hzGT{_i0l?VoxGHSkPKGgHkO|i19;fM;I zV;ibOKWUBazDj=2_b^$KGVWx`$s##9Vu~!>`4IY~QXLUm0bS*}Smf$Nxq32jwscxm zuV3yJUw^7Mq^nh&?3Yc~Q>yAyskTfw+1s9Ph^*4ihWt*dBL9oG@gg!9K^s}Z*D%eh z$uW|FSy&Y{ZX|jmt<1eLAMDs*$wQ+p_b8@TOKWFoh;XyW38%``Cz~LT&`YWC@ZB_Y zeo`a2RincbvtDA~QU@C6v{&AtFFPe1NI!warwx0+UCAL`)xa1))fmJzaU8@80vLZhyS8#J)TL259MUc>8#*}O z6_D_mh|7piCsk4#AfIp42KQ_C8ePcj$mkjgPl_8JP>Zr=nUk;$%(!IN{~|lzRG(~^ zuS||CvwH{T?kvt)CtRBG(i9vGlxjcmIc3{rS<2P5E{u2Hl;;sxv3zZtPf&VjV5>mO zoe5s-0I~gcqMy_kpiji-e{ibKvQ{MvUO9)Uso#zgcbRM(a#wonK#3yArOjWfC4uO9p288=Id&T z_j29j`vJ}Hi{;Lo1AZU+(KpKGrPrS~{Zm<25;nZa+u5%DOxf4N{O!XCM9;`cfs;^BQYDBFUfDmQ6SgvT-o>R>K%iML>@75*$>`JJR4FSPC2k^ zw>Shpk8E^3wo!7<7Q)`Ir$O%fY`D+kRj)arL|!wSpqpH*Q={hWR7IclODI_W`yL|C zAqw|8R>ivlytF^PqXG10m1cqAnGl39o z@5ZX$zu11pss2n5`x)!-6Gin6Tr~v1c1m#4usQnHmtpS(g|wWBm);iY&;~*-_JR87 zv#Kq$=G7kQ6_md1lcX&S6Og6+5>#sliDCHqcl-l%3Bxv}X=)3{zzh=wgr2{=kG2Jb z#lU4Le&U0H^NY1*pImfSY>@4j^SpvBszwl*^2%mL?27>mS0irQu#Pb!4J#rp1L4;P z5w@>jNb)4yA%bd1_46^A*-nO zLh+-z`lE5`D=rHr8lE;Sjik%k?UA5<5^+Y*f<>6coHZrW>|%0nLo?1O4YHq zDMgmoLShWEYu0f{p|J?Fae|?d+tZp~6Od^FIKfa$AIhyCw_MtF6B{#By6929x7=}c zjOX!OX>~kVw>)`ubV7_grRY3y_S|7AJcngpTk3c_*o^bpzKN+YcGP_vb)XMZA|yiR zlbHRs{twiWjep;Pe>{ON4~f?+isk(F`lwFeJ%Rs`O)y0QjklT``c4p)T?oUGQ0!2U4*SxSpQmx<4#0~T@-1~YhwnPmt9l|47L2CediD%JtvAV zC!+2s4qmKNa#N^tM`B$s?p7}mr_54BE8%v-<@FEL(ir3*aeN}C&n_i%E1AbmmQ~Ly zV_F&bg|5U=y1-Fpkz7V9CL5YR0 z;gH@*g{MIUz%I=PhFUs(zhzg!3i+DNC+1HjpFTnU$6zQR*wCLo!F>7*`1Bd^GXyFGBnBiD z4iq#2Gz=ju91$FV5CBhrfPjyPgo})V0|a8BpA3zk({oY&4^z=|Q8RGTFmlo} zaWb-SvaoToad2^Pa&vL>eEs^BmzVe3w{LuWeEj_U0s;bpf`URqLc+qrA|fK9qM~AA zV&dZB5)u-Ul9EzVQqt1WGBPr3JMB}ii%1~O3KR0Dk>`9zkgR%RaH|{ zQ&(5l(9qD-)YQ__($?1g@#DwOpFeeUbaZuf_4M@g_4N%53=9nojf{+b{rY8WY;0m; zVrpt?W@ct?Zf;>=VQFb;Wo2b;ZEa&?V{2<`XJ=<`Z|~sX;OOY+lq=?d{{^F7Z(>FAD@trkeHa5l$4a5oSc%9lA4;DmX?;Do}Q7B zk(rs9m6es9ot=}Dlbf5HmzS5HpI=Z=P*_-4R8&-4TwGF8^85Gi($dnhva&ya{*;%O zS5#C~R#sM3RaIA4*VNS1*4Eb5)z#P6H#9UfHa0djH8nRkx3sjhwzjslwY9gmcXf64 z_H_O2>lx_p9Ukl(8~!^n+CM!$Fgr0YKQ*v0J-9eMxHR*B_3Yr%|L*14!T<8m^4#$9 z+{nuO=<34w+S1he%IxO)^48YI&hFms{?YE?`R>u>-qF?m@zue}G=g%|AY5; zb9)O${@vZ*-#Ta>*4b!s+D?m?p~!%dP{YNBrqBX zaeun&^k=^!##UJShS=UFCymBd{%m)@zd6_DT3v7Sn?_bUTD1N9Hyn%1(i59yuOc2@ zxzQEJ!Pq~8$K~S1jrdn1hC~X?&!x+sb4aRHn365`x=R42NlvR(>&uZA^vmM)Ra?8Q zo^52Ri?){Qu9{s&6HvRmX^3@+3e(tn>qDr8z6IBX{KoZT%Nj}yQw|8+I&86=B5~n; z^Kx>dz37vp%m4mfet$^hi?mKf>1x_NJvRZDJUptX=&-erlVv0 z=KwyXrJ?!PG~ko}h@OUyiJFduijIwnj+2Ux3miN&^xSj|+zgD|Ow3#?ES#*Y?5wP8 ztp6Xe{YT)3!B1;{qq7yGiPxg{(-yG*DW|Kcs->v~P781lI5~l@dk;4^Zx{nC2FlPaU* zbK~OD6B5!=Q?j$N3i9)c3k!Z17nhclfUp13vVS7rpA4uhFRQC6YpE&iuFacjh~H`R z+3$_nA5Pnw$lad)y)j$0INLfk*)=xOGd$EcJp6ZbbZ}x~WM+D7er|keVRB_@c6DWO zb#-ZVZFO~Hb9rZfasPDU@OtR@zWea0`|!E%=y~MqdHVEe?d);;^kMh^?7frw|C4u5 z?sre_c8{<3j?edwj`xlZ_m1}W4)^vCclQo<_y6(U;nBg-@!|3D(aFj2$?3`I>B-sI z>Dk%YeynUepBA2#!~p?~6s_`evWaB<{PXnO?_Nur7)nNoGd;~Crz zCu_rXC6hUV0q_LUcLy0>pkU8-Qghw>e8mFkEa`@_`9J@}&q%}RV1ZN$r`JitKMc~@ zvY(^ie-N8AdT2SG?0=0WG9$4%!8cWHcKJdg5Xv@J>qkgD(x}Nkyq}`C@K|U}m!wJQ1KDyVN?ttFs6e(0 zowm;$7ie~v<$6$hsEb`0w=1H^E{2!vfoXn}7fM-%5$tg;0mMtizR4la@T4X)4WunQ zF3xm5DV0ni^ec{BKnm5=!0+V2!YO!4AyNj3;@d5j)GwHyR@4`#?^J)3(sC;G=?ucRUcv2xSnL&>_%U=6-;;0d{fH)r{0A0yE+<6 zX@)53YCPR#``v=YWyjOOAMn`v;q*V$DcP=fyY?-zB; z>wavL^6LS7m$U0Z;t=|qA@UTbKlji?&md3D()A4xSZcF>V+^kCvYWNJuI7+ zR6ML$Hl07L+72>2t~oARJ+8YRRy=|>JRi>=H+^9lpVkerte>_+sVbj#BDpS}c4H+N zpZ5~gt)KT(O)8%cGF>j74|78pUyce>tY40QmsGx-ls8?xoK_DqzMj=DTECt*A6C9z zv_D?FUUtJWySL^+v6peeutR*30ATj0{6-nPL{ZWlh_Z6 zJoghc7>GwD*#ob2<&Qm<3&S?YL{<<{TwF6*SS>!KKxZ@EmXJB0I*e?+cvr(NgU~(&Bv5@5PsDS}6saN(u zfZJ@$*cg~Nf_MOtDJ6%%NSr=g_=_VWOvduS9yZw+eT;oPLa~{f=M@&lA5f?q} z6!91D`mv1b09(QesIY{g%}qh>KqaSg&qRO%plFWFo(S!9AjFY2Wz5K)fW&bi0>D+$ zm1mE~XgCr>Pn*`UPAnj(*q4CDQI3oL9z)@@FQt^OtWwDy!{Br*vx_~eJds$;alR)v znW~a?F&Dwtu&3aM`&|OLAwrDfM5#1&PMk5RRE}X!B?()#RDM20^?p~iCS8@+x*_D} z{fYW7?1itFaKFTmYB<2$-Y*cv^^ z$-Y7TJNl>@OH_=`zEMtRhLG5rRPxESNfbN3KBsDqTQB%z5$u=<;jQ3DH~JKDoSQwS zXyI2TH&ir$wk__lw3jC^eHyH`t?V*ZF)kjwJMPbIPO*MqAg46G1D^+w6j&fqoI($@%A+N(uUgM|122g0iokl%fve zx}k^aJ~4jCfqD`G&3$64FN@vCjnyG?X9jq$OGEOFwJGCg#=Nh~Q_+p}C35HH+OI21 z6X5%u@pEgB*VQfLrshGp3;T@MwIlha*2VD)=eF1NtLUcoL%B=$)z^)uiKfoS@k{U5 z*Ue8T&D|_i5PXP+I01^2-KC`d!bUsWX+Y%sR6Rhb_S+72Q!`QTmrw`lU_vJ?ZdFif zHPWzU03futk30A8P4Xq#p6*JZQM5jJoJbJxyOu18a;JUD>kk%YT~stEme72<&m?KF zku2ucw|P&#=!&?(sK`Y(IUnDSXvA{Q>{cvA0h2N_)Qu8`CLEVTSB1X6zwB~ zP!@oIc`jgfi32?Nk3d24ktRYPMMT0!=ag=5+!~LN6qn^{>>nXe$%=k168JvMh@{OZ zht-IIKtHHFD1v6EeJZ%AScj7kKe!sGq$#BAX{4lTKR^vsq8<`Y6Uw@+9})?KOE-YZ z6?y0icKi|LWzoL<5oN{&$R7(!nd;pa3#*Xo6Y<$c8t4y=jYJpfMN@+q(F5QohDff) zo{oir&vV*!fl6ZzjIcvSGXcIxIJjK-D8?hX`vN^ep^}&bubK!!akl>1ej($FUcgi! z!f$L|b)f7NBBKOKW~?t}o*&Yazl#fOHe3MYw9nC@{Twh9X4{`I6e<>$!u81=Rv-Lc zLyl8IU_SfTYxpMn`as4(^~FYnqaryT2Jv$RsY-?=AK8!V1^jLHk+_1rJH#2^3NWSy zx+(hI3Bp12z*@&6djdmtLSPfG9MY}=Jv74jVV%z(gMzjwbxp}76y5k!0Q5`2;oC@k z8bHftFV0lhz8#0D?#M4aVSv2wa3MJBL!59bh`3LY$5_tL`mwLfa8fQ|{#ZWICUMo0 zK-o`7Y9WN_)Ib--aDFc2aM&OLlgK-lc*q*qk0bj{AjsYQDTomeYpW3jQ4@2&=pwZh z7aj+|GXvU70th8grmt)VZ2gI`5~)kEhXq{^^$=08kVKx4_SAtdSV%L~*xRv4+qR+n zig6J_NI;2r0V$8gAz#?-(D1xqsBNeCYorWCxVYG$2z^8n8dRuZKT+@quo`Jq5G8!k zE`Ay*Sr9Hj5MYdhG)EnmrkFTa4Hy6-XWQAcxrJoMKM4>3a! z$ypL0Tk2-nf+ENRd}u~VUUr)1&U_AyhyeM;XdL6*=>g_lU?+)jlozuK%m7@P-qn(D z7e`1QV4%CYbGRL{pCC}uH~75AfAxs+PB8}(HQfapfEo&w5$k|eni9bh1WOVZE`;Qn zOGuha_=uBRe+ZeNmy3!Me#eX`Q%&d(j7k8;q5Q@k)d1!`g+lr{L@4D$vBX=aW<#JR z$6q5ZYv!6QdA9NZTf?9LEhu-@;6j~T9(6=ntf1E`q`+KTsj2WenpkhFuy-)|;J9GL zG%KD2X>2H##{?i`R=DpPF;I=YVVZplh-*rXlyFai?#Xy1c7w|Esxbq8Z9%b-1k#54 z8%qOOTNAKrQV?*%U6-ANj|xC>Q<;*!#rr%!#Frvy7C6#oN2nTD>zy=Mq13x8#Ir+4 zgJu*Bcc4o;a*hxd}vShItd@*#h-TadylX*^P zSx%djkD)s-q!oK%D?mx31eT>N0yS&A8D%UC824lk$n)u;jsM^dgSyV#;sQoBmH&J~ zA#cJ~Z4CoRN8yabAm~H6+WNq;M3ZZIp=oA8PgevT2KZEC@0tX;eDZqv4HZb70E1cy zD+MGaPJRZzy{nkrmp_Ck7uF)BjAx{};-xM;uLkaO$!mAk zICdR$92B``{k$Zc!Alf$9Bd)HBeDztUdWl?Ppu1eJ+u-2oO^b`n^rcbV@-s$1lM>WWPQ2JU`4B#e8yQ=V>M&gK&PH9w9K{!%u zM-|*6bks(p*Xk7BW_Xq&^y8*{51__q2J zHC%r{3nT`ewgjC95VuwHwO||50m)^8?WtVI5js$7S`NdTQ1m@q1mP090n5yRax$%O z`mL|sjiicz2vfv3TiDHXV8I}4Tr6NzFfAU{F%_?&^aWV&5lJqC)Q=a(iRU;M0qlxs zo=>gbbZLx0t%uEX%7yjp9&LM_LQK|foAszCDsKm{z%{plx0NMBkd%hoIYX1g5G}W1 z_;nVnHX-^!1yv)4KZWpzHWa<~LQcmqNT5ss0q7AxeqY#>+yHfn-h)*j(pc|@q8rs| zTmN#q+K-M8+a5j3VDXo@%|8X(zk#HRZn3mLkD&;NJScSh0p!tm82v8GSClyFs@b&P zAV|MH9?yQ1p1yGDu1}ev{D;xEr+u(_gMk+9nOm``*gYS%u%;vS$G&-!bOVTS{YZF2 zm(;!3Yr~k|dY2>yc-|_9d2@VafMsXxwm(|7ut)03`z*@(V$2`uhiH-G=RMG15sl86i>ogkLLb=92BvLEb(H9oKC+I=w6%zZwpN zZo}pv=52Abdupx8TkGRxTUXh_!X}6aNy654>;I{ z68LE>Xg%KAV2&hio^ZWSU#>XnZ5itG46vsz1gT*tJ=`htFX!qUcx!Sq){;ZV5OY%b|$@XgUh; z+M+DYs_=d)hqHrqwe1}%@Aafv(c@cPJ8{kPS~2kIit~h$WrmZdjjP2UgwtOUa#_3O z%YU_9r1l(KK1rBx4X!U=tsYw?nwS zorPPCNmsMUN58t|O6mbL#mhu^@i~m0-3uShj2J(bS%%yGy|+Hi%D*BR2?c@thv6lL zxx{D0DktxC`OC#FPpJ=~>?-W~h~X=WX~g!+QY`Dl_Vteu?~;b0KfssqJu?k2enmJ^ z$+h}$|3++|8}2<O*PY|Y`U3`F*%~71 zj|8sDd7`Ml4(`Z--HF$!lki6=L0d=Mkxt*Ve3O8F`i%a*-v&7&5J^fiFg!wn6!Q!& zg6B;4@7rC!M0X_qNj7NniDN-d@lB1>OMbNljF>klmmloNO+XyCPs3dl}Mgmxb`?$kL7G98xkCmUCoCY;74* zXr(55x^NIG2pI1B?S!Za;NlC#Uk!D8QE)-+YAGF} zIA4h^7YTc6eg&>}HfTRFSgfU31rj3+Wl9_>l5VTDgJ6*+?3Jwt;d|1FaAFZY*Zyh) zYOUPJyLWE!?`C_8=a4^7zjRgbxk6e7r12ij&S9X@cP z>~ePj8CUE#d|@BjHV6^!_DhENQxL~Y^SUKbQf!a?tZ$Ar?qOMO<4GEjKlXTzTPc>0 zEafLPm~54fHW7rjjWgUN6anFqNK&++5~EPV%z=0(^A^Y+tfnD%Q-~f{UC^i%S(U&W ziN^+?*H)L??C}knno{VYypOBL)9l^z%JBuz>DdMV$^WY2{V>EPrLgR*214@jk^{&}f(0g_NI^Bt1nR-yvJAPz@=<|WHpY-GBtzFqe z)qI6CVSi$^qtAb5kRGd->m^+l&-7EN{9%wvq^O^2*W0bOtA$#u2seBCNoKdOreHUE zy@27~Xr3E(`QwoV@2FiE_l1)}7^M8x)Tsf?27P}qNMCpMz;z_JtgCHl3K^1V+BeoA z($TU3q&l~@OLb|N#KYQmU)I{Z44!o%uT#Im-%6$H-a*>irhNz`(`#1MkBc+tPuF{z z*mx4#e^Zul=5o0^no*GG_ULhYx@r^drw{ggEN$_2C2Du`0>8YtN^S{3AyA*Ut$;tW ziNXyx+w)EJ>9C0*(Y-1D3C-HW*1hnU31N`Z*eY{vkv~_8(n5_tHAY1=>r`1=U;p@vq~yT65MKPOpJAE z{2Kn;>RLk1b?U4Zz1$jlceQmI46blInnvB%b()lc5l3F!^&xKTfLSsIt8>&F<})xg=?OTDH5l&`;6e_n#KcIFXb+Qj>x_u+VD*dQP_BP z*)H0W7`Mj^^sve$+ER?AW*eGz9{Q8=!L_9y7Cr`%i61}(S6Q$H*_295WYKoMI<6oL(0DgrLN;i$)$8=KQgFrn5H~Y8 z$i5UuQKAPx>ll@`QR4c3Q%A<4lr1od$k6L-LX(dtEWBBgc@0FJNvbAwT}?RBBmCGL zE*ha~op8q>;nu$8R)o&bwalNd!FZk5Pw9nVI!SL3`1H7i-;}mL;QVX#^Hv)nKau8 zc5qE~?N-#MwZc;)NMmfsA`uh8#qB zhsalkESfhWAmTwwNi<^E2ucwsgdzOKF+6ctwA{@Pk?Nfwhf^TzLk7q{wSEz zx0G1r5mAPK07d`7S(%3lmkS92HgzF-L#b;OhYHtJOS}eNCY;PKCuF%08@)-iuaq;T z-&DV0YcJ$@c7lQF-Igl$WLY93oC`*`7D_l2@29cKK-nY)tfa5g6!jB$qdU~6nZ~L` zuz0$ZTns#-1*3R-Q+Qz=`q=*U@9UY(3SKp>6uWQ6+~T?U4R?s)WYoFEj&iMKG@17G zx45HEYfNOW;-zDNV82FMkRvOkV>l?fql(nXlqYInE<%~FyPQ26#x_+NYf;3T1yb2{ zzb(G#wm72hQZ5^+Mx*C36}&l;#OhD_GE%UVTJ^OMwxzi4oVSvx5?`lWp;)bj7%yMa ztYL&{l{Rmv2ec4b_-VCRb;tt#6syklC%cVP`1FU|tWnsI_teOhB~oRxxjyrFhcg_7 zF~i^-+K@MhZZ$2dAcqYQy+eulY6$GTb@*IsHs_g8cMS+c_A{_8bv9N>4`Z z_scBI$!vrK-0tiI0#cu0aTV%OKXaQBpV&rR38;!1bM+I~UI>m`u0y#1Ti}~SH@<8w zg12ghuI1U{;aWAAzG-P>m+1r;p=@q1Id#4HQKs5kii!N1(~YOd7-XZ-+$?0)L-S)j zm@eLUw_G!2Kw%)XzcrDFz=PWp11DD8=Y- z^qbC@3RFYZpB@x>w;V+^s7!3EDk*I07nUDRbof~F8n%47FRi^KR?(Xo44i8|8=g)p zq<^yP_az7!9KJ#bss%KN;V&e(tVxzKH4#QKNxp*8ZUUXJ@* z7dZ1e(KzhmM(kLNZ~pPn$+Qsb^7x=oV`|PSo^^sJ=NyZ@Xd`VTxe|4j{-;z=1nVy& zl8-Z&tJ%#5Lge6n7IY*(=UDUl3Sm+(I(L;C&F~1k@&4M2F?g66uko#db`TQO86L{GI$#CqeQ>$b zgSXQ$JfQg;LL{Z%GP%KQ$+nukhxMr}mfVO3Wr9e?oA(4u)K+;VI~#H_>qtlwYwCyOkK(r>9e0emxk0PDNGzEtO>MqHM}^6q_^mYYIMHLP#A`}Om8sNAmaXfsPrsDP z!H>z_wt1qt*C`fV&s3^5kWS{Kt)O7kUMNIV1=&7S|C7B%IR}|NNu=Fk8}fOPVfw|fLIR6Ih4O(C|B|T7xo~W zIMjP54!_16!ED56Pnn;oIW#c%p|vtg0|TiugX~R%>3-p9utS-p*csHabhtw~;<7{x zLwVG-xlTg`Cz$!MLnFRJ#kE7Pi9@A5AtgIQ<>DA+uyV!cLsitn$Ar<9;&Mmy!*!-| zYtm7*esUUaQT4gQ%_pcR!NavXm@PZQ?eD?>gL1XkSih)8x@=Ky5JyVGFuF}g`s7je zq(_QM(fe~phTb602aV+QpbhVgjI|>649I8XqK;FKPRS$Yh=hPAY9%T$QKp?n=lw<( zVn-KqN0(|xmvQ3>CKOh7M%TEQR$&#_amO~fh&NUgw#3JFs0p@nX?C5)_Qmn{{KgJ* z6?LP=j(WyUaN~|=#(rOqNo|gu;f`Od;Oq%1UW$)jo8nxpj9z^nzw;ZXGg3Nq8o#d{ zf8vUINL6~?83(6gzN{#{;!Z%7VF1jOpd}_?X)s{8mEfEw5QNa-(UcJLCXjnkx2X}4 zdX-UjC(!Z2;9n5X&=fIfCb8{Mu;7$&)F$zmQE+FK@ckzVoskIOREX*(NrVuI)0E%r zsu0aiVx3Ns-%P&6o1zR?q2!*TR#Rzq2$+mgrtzP`9tDSbod;4FPSE#Gp`*chWQGRG zOumDgMjj<=7V(2*+H!g+Hy2I;B&K=PlsU>&c;lvF75qrkrr-BY3(igp?M@5dOn-oz z5y6`grI``qp7|&-Bd#_hVKyV_JR{{lBONy*lQ$z5vRFt<=T(?xxyHq;6RJOZRezQ~ow_J(0Tt%~7&AnU$;f|^;*O@KXJ1;l*FE_?5 zH{~ri*Dbg7F1Oyypb;V>pX;Cu0NU_Yd=>!6kpLtIAguCAubD1lBoK9DxifAVZ2*9% z3Fzxx8L`tvid?B51t0?fqj;;6aR6|~scvl^aF}#;7H<`9V`Umor(HpJE^l=%4>;hj zS6;TVw5vDOySmc0)TID~E?k8J0#Mj=5ta2(900RsdPw(r8+qC&gln_hYaK6v2fNFt z_qvFQtFz(yhyL2gZu-BSgHbcrW}N{SaoR|ldME?>SqlIZ2ZJfI^#U}#NoT+bb0}(| z!Dt@v$!rOga224Aa*4OPjAxiT3fS+}1uLKoIUDx*ufw4)q1_ww=>g9bLQ(Ja`&JE5 z;FnPKbrH`|Fy?d-Hw>{P7q5F);DCk=^eaf}y7*&SlVuyf$Tvpx03`WZqyGAxB8DT} zhHvo~(FWH0Xi%y5HsA1ox5Au_`ofJm2#x!gx9B1ksP$Lo^^BR-b#eN(f@q9-owqs{ zj7Ib}*~&Fo6#;NOsE{QIBB9XuM7ZZPM$?Qr6@mCbXihd5`bdyKy@}f@a752wWC4hB z56xw0%7q9+K)B;2w2eI%hL7kgDG9?_2$G(gXKyzi9stVqnJR7Xd~pVB>FE-#g>iI1 z=GUo4%#Z9Ek8A+wEzQ_Aq&4g3Mwm^84}cPVI~)^cZlk(*!cFQtF!+Rf-_mwi_fX&R z!N~LY{?gua2sgG^3nOBKkw=FiDl~U2Gww|@8#w@}v%pw`_iWJiVF~w#BSGruFoe?k zU-b6%c~H^8K~SdnJMQM{9~DhH7l1@;7C-jp(C#;24~#|+06Kl9?BoYF+y^78VR)Fk zk^w$}?dnQ%s6-3q@?hw&`Z?z>`)#7;_V9<6di$8|VcG%vy26KAs{rD9i_VR0ogY?K zX4~ZL7KXP6DG_rv>MMfqsDy?Gk}NPWw^pVSMk8?BUH3kgeWq-fN4b4!d}Av`0Vt5C zl9D_ys`=JhbpT@Folg3F9d%H}7sy&Bof`nc150^*sM?4*U-YAnNKl#iPH6mb?c53) z7zLmHNb>hy+ZT1(J)=_LP&`E2@>`HM?TMD&5rL#_wKAyJ+>|Zoxc`fKrn)Yni)~ir z4p`lMhb;(dG(vq7Z#9ZG1U(aKSkjl%66D2ms-Lz#=?@%iMRfBNDapSXY2g_03Eu`%Zl{p@Gej?;k&C32-hM6*MDjlc&|T7U5jg6OITb>x?W2KUP~uj z%M@J8HeAc~U(3&5E9_q@-d!sp+$a;=sLyp9l|;1P@Vk57Do#nmiA&8V_+65Am)K39oLkfe%Rq56KM=DgExz3GN>IYw33n z83>P=1dmyCkJ-GBIZ}_g8jpDvkNK{T1%Z!+36DhukHrm-CH;@3`)ls&?ymEX6$nq2 z1W#3TPu09nHBwKt8c#W{cWDMs4S`RM2~SN0Pt6TaEfyZJZ#_^pp4#u8ejz+}5IlF% zJ$LawcS}9@Xgv2?JomXi_Xj=?Bs>omJP$QI5BEQhoIPa*nt?OtpT`kiCJ0_8>0YLI zU#6vAW;9;9&mP9k+`I3V7ZP3;3tpBQUY7e`R_0$;_g~iTUe*!78wB7@I`9@Rcv}j* zqXFKvfV_X+$2atUtjiL!FR8(2#83~2-xo|&&j*|kO>%bH_j<~0`Y0V zCI7DsQj4KfK6XmD00Gy_lfx^ziA=FTY-a0g`l(#m1P;5SSaL-au775b-q=W{U}i)! z+uXies2YKUHRP_lH5+vgYZA3BA$bgMhhL!_p)C)i?Sw4zC3{r{!B5cA$5UR&LMG!?u zP_*w2Ts}nzLvbTzD04GnrXh4VA5}Q_QsM?0nE$Ae>Zj1-JyoPAGCy^c1hG4HG=xD) z9it%dKpm?h%TE)hrrop?uJwmOnjL&jlV}vePn%?x>`t3(Roq0I@`pj1>Nvztm*%|W zPM7X})I^uz=<-092|^Z7%kU@mpwA9wY^H}WNFV8Qzo82-9*wM|^zs>c&^xJgr(l|}4BnbRTe(-GtGqv+=hrb8&?L^55^Y6y#2tVL! zjZDxjrhONV&Js8m5;)9D`5|yrlv3WE%AxGYe^NCp{Qk6VS@=C3N5?b&S)0X-1!6JE z2f>S85_`c7`!R?2SEKJ=!GhNl_UQ#@vrlXL7mGH(gzi>;F?_t<4E-SduyY(yaC7*5 ztl(g^GVB0JZGV3`=pYBmK!Gbk@y!K|s<*m|_;N`DsHWwZtHMy#pI03Pub zeEFa*(%-g9tj`pf+ynU}*i}K4GZYvxg&c3;tAZ6h*D=HCdl|Mcf@NE``V;San7>B3 zspL`;b{_~bK@vvMr;Q1w3;QO$RKmV^Qk@J~_VHh$gxj=Ik?qe(@?BQ_jEJEkg+XF{ zzgHC*aMDTkQaB*t0)~q8@uY4-bRUo@W{(PM-60`G8dMOLi;jKX!C?*_R8dulNrf;- zuVIJOTvTFnJ!!BMf`_!mhGI%vX;Ac#hV>$p<7=O3ifn_2jmVS}S_SiAypTrB6lD{8 zJk6iOf=8_Ol#)hT_cBtEM(sT86=t4k5z8P9QgfM<6~TgwT%<8)F{M-pgEVX;c+9<6 zG3}&v|8xau-0O#Q`t`HL;Ysi~Xh<>RSI4Ou)&{q!31S5C9)^d#Q-)WhKb0E&cYnllZBTL2;Y{iHb`Fn|Bvh zrtP6m05%(3=t&48_wztCk)tkyqc;bGG73Fa^(H@Qg8|d486$JADwpC7%-axRM3EVa zB8phcPt(c7{@`8KCjF2?LNwD`k{2ED(%4N@?EccHl>o2$qt-n$c zUMkNBUQ=Ltk^63Uu?4Ub);l)u+HH4`2eA8XIv6f6JDA)pZ#A=5g?g3iFC2-9%HNQ< zIV@x6g62g_!;!ihj}@k)f(MJ4F}4>FI1(d~&hvAyGt^RCJ6ka9#kbmoIzDplFol1} zRJQ|{ofa!YI$1135~oa@2&gStZ+>(hdGe_g3DEd%i+`*XY*M z-Mq!bT9?VLZ$~%$qM5KvshQm0YUq(rjAiXOiD&Hy@-#YNtabY#JR{)#bgRUyXD3W+*_QCl>nDM<$N5sM z(M&-x^+ec58l8!d^4nxeK~YM8PbEm&!GlEdx2TIfGMXqG2wOW}iee@pkh;JZ`x`ji zFTOhp;T1enXN3)U03T|>F>_mwL|YX+C=wuu7+>ndauJ-cY748eP{;rWqhhBM81sV< z^E)Pte`xp?%QMkR&zJ-0fWs6V2}wV;DOan?wj~-R6cI0t_-eFrki4xJk_{7Vo67aU9xOKJ?lEI#-)qAUbdZITIorD7CVll(Q*%Bgww{ffCb z>c%pr#qo%Y(1=hzur_xwz%TN)6H#`ed}guF&+f#8DCXso^mVDjHYRBwWC?z%d7bbx z!ExLDTF_E8EBNJWihGwQ-HB|!t}eUZ?1EoK%VwXlPMlKJft0tPLUcrD-Wklg3#Shm zJv*w6<-;NLhclkU4jy`qb_9dO~EdlKamIgUXcLbN|<8LmQ zJ{)bLe>hmDnsw;vxAOS(5&FR+aN(-hsp|ZjaQ?FK5Lq`s~s zDNoXI82HS_*K`tvgBDV%bW*F#aE?sVPl*tcvni{=iG;DsJ0S&e~^b>AHxzs7E-Q#=B^b*$0d2gLehd={&Mgm^g61 zM=LsGtI*OadXnMqdK!4lnK;(deQeuD8>L&Fr1esa@LDTi+$;D2jqAM>>D`>K3tzZ{ zN)JlT0+G=R(O9A}AGiouio;p>xg4~X()oh}3dw?V1L7^WL<$1~*8M{0d9@0I%W*>T z>37QLL&ai3+Yfkq3&Y4r!{_MPSLq`ZVkPsc6@Z-?fzbKImJ1L%lHjN>ex(lMhU#)EHcV$+M|!mj5(CCIl_zt zbw#22t&bwRSNBJs5u+4Z`^!fn1c6JtK>f)sXUvi}4H7Q6o#p zETQuTp+_0zBqrR~iVdsB%a7is*m!?TnU0;Z7Z@zJ#OKE@KP+$CJ zf5f{%eYt@zHiP-4Lq~&y*(XEo??$?0hJ6f2=1NEN2S{~}JYO=a026FE(TUP7G4V$Azv1WOislHLG>^O$R$Y`@7@2I}6)8>sx!<+s9YCzwZyu9}dqS zAmjfHx_|Mwd-1q^@wj#IxN-5ge(|(+@dOz+&Y!lkd5^s}htlaDl!eP=6tD)cMkED_t;{#Rg4kvQjtc@h)`wT*w$)u0e*Ze8_ zEzwt)y*QY!G&#*|I5gwAt@YvRU^l{GJl+2BPucI;Vtcz+!PV9A`gq39%PYWTW*rEN zf1n3Mq?L{Wq4FGLenEzm{fc3zTWq=5V{;}20Gi(Qv%5$e|Ca3!wZeQ=<5%* zLix++x82z0EVsiMMhmH2_-+qO!r#L;t^5?nN6Lp-h_!lKtAEhae41?wlirV^RL8Owg|jDzMU z?}WvX?w~a!0GunOMlT*7x<1>i7A$)nQRYV%^AN>vr}%uMST+Dv5WCa74{1CPA)7BEg}YN0t>C*buRxv1D+ zU$b)cFr(iQJg#n%2&|pDz*H8R(W6ooZX8lsHTFPKiP#zXcNRP=459b%xiq@XH%A#_6l$nG z_h!c5B0C&@N8(g5VHMePeRA*MjZwpqT z!1HKj%ve49W8t9Wlr7nsmOvY-vkyxBp5_R9JZyJk%CaTli?8Gk`HlWmb=Uiu)3Z){ z9^j&)l0BA*(9l8!kujzbrP zFY++XCN3~9kbc!qM62E;_tU$>DLM8eCtYDSirkH&c*`MWz|v{PP0qe^RF-}F3wxm@ zR{HPcMtY4JTP%UW+5o0@5eA2Y9j-6Lg2OlSj((tEsW(H~PqWeI-F`j+U&pTUV(X-DqQ#9(=Z%C)cjHZ<8;= zxS+Q1iFQBuu(O#i879ILK#R4MIm&%KQR|2e664?y|1SHP;!qdA&s!7;1AHf9G5xzC=M(KzIX!4Bnr2^rS?7lLnLck| zTdZHCr5okeE+Ktj4iqXp=7-mAoA27r!z(=Z<<=jU?%MB1D}LM!uY(`&egV)cfe7*& z&?NUAh>Ddy1S1>p@9#S?BPtxjXo9N%~yUEe3f~4fPuv6}P=oPC% zG)A`YTkd<=BC5hHmo_C2KgdPH?> zf&4C`&cl%ASap2E$S%wGhhanXn#6wjJ&u%z5lh7yaPs`f9#6}|s6#|eD%Lk3|FSzL zLg7`~-AJO~and-DCoJRj&4Jjo*@PcYZT70qfjH~qq>fc>4u!&Dv9!lj+!&WKOSqN7 zcWt`V-`53F3Ngx|$uos6!9|dM(&{;;v!yO|r3lc+n&V5eb@ex8Drq))XOGiuw>K4> zqlZQ$%hXxI_0@132j1i!i$k}ZWhrQzm<75yS{I0(f zyY5LX@%ul`KmV{*^*3m~w0>AkemU**Z!z?%dmn#!gbS5B#~}*sQJ+1| z$F+Z}TISoOGZGjq6UHvV0q)T}cr2`fjbS`j_gL*c(h%Mse*fw* z@XPbI;;eE`C&MEhwe6;H+$+H3?akWR&IKQD`#IgpLk`pWo%ie0C9|#jKEhl2(S+yg zK(K+!vVs3SXdUcdQt?tMzjm`#;4t6zGp?UN_yrg2^{{^Fc~8=~Bf#2mQxtuZ@Qw84 zw!v_g&P!X=jk&=aO4D#>-bMey8#NIKJ@A!R!}}AKhprR|^WK1;7xZNl2-%-`&T|vE z1Bn`ebOV9p2L?S-z`cDSAkhcf#iMi|Uuz%4=H?CL^{_MYL2&a$ZUk*M__9d*2)h}) zIlvdZ_mMa-;4JjhiSiR~^gGA}5-`WmBg+Y+c3}H0~ zfG+c}BO34C{;$IWVS*H)6ODjr>F^^wFNTEhr63&GNScX421G!_6L-MUUC82n=sOSq z1pozY^b<1@us#rR$nEmUX^nWM?9vH!-sR z{s(wJ5(5b*mp=54kZa8{D%J8Ee?Qd4fzKr$X0GPXd$*rO^wE)tU@y21DB7kVh6n30 z>B##904`Dt`=STuAQT!>C>IETya5m(qW9g5dD#sSTl`9x2^Dvbotp@F#~&*CDN=4Q zRw2nd;UEl71PV72igz(egCR=v3ZOF>$IbwPq|RUfpx`h8P;5~4?sl#kuC56dNE@FW z7o+bjBM}GVU+X*==K-C32~Ju7j1B-wCBQ2ffJB}IX@==^_e8 zjSOx}GITdj`YMx<$Ddk!2&ilP*&l3Bp9ttYOvT(tM5Gl7tKd%~F8um)5P-1(kUj*U zO#puKCpp6htnnL8x!AeSr7>V({uM66|AF)wKwCilfT4kcP_i%~3c+LH;}bvtdvtH9 zDe1VG1gr$KDwXV4)jY2ayl-s2{e0V?e`(gFsVG|OkUOpZCL4W;&UOgWD3%z_e zg6O}P@V{aD+jstV$G^GymmB}xQ~nQ5K89THf8hqibbNV#e0lfR_;7sr&-%yu&qx08 z0k~H`Cw8e-D=tDLx`#ulyI` zGDR>t5&3^7Tt==N{D*K^9R1@zQ?g1ld=S$@{uVBy$pk$Q{h?(2EnNORR%v;41PPbz z#jsueM#+MN%We2K!;Mwj{X|)`>GDn0f5K%8e?U{s{&?iP_1`I32o`|R=DOo5BGut^ zg%(J-%>KT0ZM22A553VBHA6vX1pdF&oNtM@A9Z?)kLxG(7wCE87NC@&sdS z`7Ej71c3JqE6}OeEg%x9k=0kO4B<^}>d~x~Dl$(oN@DnJv9-oA2)v|iz6Di8<_6^Y z=p-jzzeXaT($VyOeu;B|nYH6~5ZPkt_YxVKFmsCC6@z1qq7?JvL9)Uq9k0kQ&xa4^ z$*FZ>gwIx-yeb|ecWu+{Va+E;@7Ph; zDea~g{xYNAeU|JB!#gqUKOl)Y76K1ca)ALvfJAj0@GEEfWD~2XY}Yl2K-( z@kmAb9rwH~R>UzR$TY+sFB(4hUt$I0Wol1gPc=oqW6dId352mul+zJYF|uB^#EYYx zh;P28hP^SSHI=T@W~qt7KbRG1jT560!1CgoWoS!|lf|W!C&zF?M0f{)D(27h;yfkf zgJYitixi@$^$TfyEfsEM&N?va&5THGx|k3UIDYgo`ud{T?;q zF{hG>b}B9`r!7DsRa^KXXQeSrvzmKbw*mm8+gRA-&UWzBRb`cZ@#;xh&Q|AYLHiPp zzr8#vE7>@ZH)$1`vam;e*Tn48@il2#qfX?mnVFKs`N>1~#G^qRj(@;q{xK@j^Z)^twVRg(KCJ$C*OKx?+vdBlVWY*~*BzQVWG+?d8Y0#<99`*U@AB zr~frd*4GD|X+&j!V+zTN5eonc@f^dYp=A}85YReEs_LZFv?5OeY~4+Z_Nr)Exs9)G zo@b8n!T_#8S$u7pFFT7mc-q9Y=ldl`Y41uWICw!j*!{}xnE0l3jR1k81^m$F82G7m z2j;L*M40R=Icw`SqxW62h2nYAH{ES?2r|s;%~@i_^Tr_doy-iHePV$wIr(~1*sRb+ zK*jSqz<#hXZS5M0TJMn6++&Ci-8mVv^^l=~Z_cFDIl@)l)G| zL-|#G%e@lyK5y6e?Ay3s%fFe@pGNuh?=r5_&Vd>in_4Wmoq<9Z^!0B26=OJ&I;5Ah zV|+67(eEn%L2|eJRZw@RuLTk6?7CV*|~t-UivW zy0aH(i&hJ0MtPMv01!(0w4Hz z5cPr&yfWwmI|z~i3BLhgmi9pa_brt00_Ap%#2$03QD^OCQmKFkQqjOuDeK zM1x+!a8~K?C`6n&>0qzK@PoQ{VTrzL_u;DjVR6zCcW~kRi4jMM*sKJOVfztKdm$o? z0krf#HwYtQ7b5Q647dk^P$z!6CAz>^{Ji6fgvk$8TL`~u#OCaeL_3Upu#A8Y1|Up? zb5=#761fs;89rJ@(kw(R1=^=uMs4#&AK&-`2f#r-2S73z?#RYy{NQkw2ZMdnXx;_D z8+U*hLu|Pv0M9B4swsx6FiO}xjQRk8&=Gdq=qj6JSRMpG+K5r>20&K@AOK^F7oydO z4EFs1PXj?Poj+>`q6PTlsof#Z9KviC;#LU5C=cUL={U`k;=U32%@=+%4o-Nu@fWj- z7l8z*8-O=fu{(WVKn#iCeV_z?(odwMc=sd-YdpCrDRnU^{UIrnC^?%yIaez=-#xi7 zDY>{QxpXnP{2{rLD5aV|rB*AY-aVx;DW$n7rFAi-{UN1;D7A|}wMQ#87#`5qWB>rB z4h96{vUxr^#2kFN&oLCeF*jXFP{D%?)6_({Xba!e+FMu{Db_V zU;hQbhA^$Hv0K&d$!s#l^$N#}7g3Lpb{X zO9XvYRSi{D-A^h;pH$2~saSndwo_GhP*wh>tl*+7@20Hap{nSms`x`i5vZczqaq)m zA|Ilv5dKLq^0QK`no@$ga*~E}x~58wmTG~{rxIPYN`3WOW36^G-2qF3NgJbiJCjuh zv+Zvdhc4DKOCQbI6nPweEjkC!Tal-_qS`H z(*@A!H^}+O$92!wZOhMN)!%C_(0e@CcOWd_*UympsPL+o$ddTj{KSN;|8EHTZEbDs z?d`vQ{p#rG=+2gB7#JEF8W|ZG8ylOPoSdGXo}HbYo10r$SXf+KTv}RMUS3}L zZ_Da`A#49E>wn3{#>VF6=GNBM_V)JP-rm6hgr0o_A!b8>`Vd++1d$B^V*hJ`{vU+3 z4?DP5#3)+=8J7W^bw4j=*y~I94+v{T$2#_C0 zd9^(v4!v~Y46xd8rq+{HRsV$m0h8Ut#}u`b%~;Hr89#cXGTKlREn5r4nY zfq@+pCJ=*Gb!E>@g-fp%rlOg2?8Oq5{M#isX#6U_e|3CXqWDXxhS}X6pFJQrra4!vvZ;NiyHSJ0FSf`Xo-3Dtgqafs88K!}c@+LDAb$r*4p~DChg|*vB0I2^ z>Nmo7)B5-jYzA~$my(vvVj}GCSP-5Kvmh?8=TQNP(pIZ4?Xt z8{$sZ8}$#zWlK^omNks(A>JM+aF&xCv ztw>DdXt~rJ_sCRHt?$1KkQ((cr@~W{jALOYNrJ~uW0;dwPp0g9e2Fetj^RfgvE(NZ zCS89;p>LukBM^o3`HO|ab(a57&{=s=qVU~eN5EM5h`jeZ5SP>z^pPBU9K%>F$I>bs z$Q9g)wgL>in1MpXx$iiSq@?j3LGz(Pf`;p@2_S~`hoP1h1$@Bv#Sb!fqSK;4gtUVt zi#0+uo`Cuv}Xsw(ANilMg2hV0V&vbKBLON$POYm*}*S}%C54_^rDn9 z(Yhs5?13FaNRBG3NInMZF$-_%;5a!v3e}JSPfc0qKK`s?&d`b~jt)}#EzTM=>ZA&h zj)@u1&@XxGxRqjKDo=cKzvS#r z50UVyAQ+~a&cv-Y=qy#5#GJFSf}}cnE}m(wvSj`lS6*Y-|> zdgmK?rZa_aXgV%J5 zD*&yoiRzl7uAcx%U18LpAa%Vs0wc%m{2XVq|7w zWMN`rWnyAyX69gF=3!+OU}qEIWS8XTgz#|5^KvWkajWq0sPXfv^Yd!_S(^O3ngYLy zPgCHJ(h}sqDj@-_n}XWHLOP&rq7J$0YMgCaoNYQ? zZ2H`6N8Rn7c-TMla(L=VhJkm8XG6L|{*x1;_#KhFp)HQNFefo5Eb`}7y`JV^Cuj{k; z^8hGzO=C+-OV>blO=AE}0R;6sKW%MoZEtS_6!q@iI{>8Kzkd&~)W?s1*+H_uzYlN~ zu!00YtLwcZzi%A*wP@sezsR2k2+hwmA-t}O2pgs`JQ`8wWouaU$iUs-8H>h+P(hAH zXQk(X5ZhB48Na<@AC&EAbW-L&)`S$?ygc@n!+1(3a~p)F+I5slFYW6snP6Qki*Z-x z=bDgO#0|BCZwICNX)hi*W{MxbiCaglHSWFY7v#lZ_uNZUn4;L7Z`PwD4BwBEP3Q~& z`UPox$1+P{-&DzumYxjDNFTvq03a=u?y~GxmK}2~J6Ca4^^dhRb-~{j$6JB%d$$vWN6Z zc5nf=T4Ym`*bw+GA;V35{$LAm>}`g=kFWcElxSrl&`QQ=41h!_4y_6EYnf*=hE}ML z57;)~KlGs(Ax>y57_^crvunz<=XwJHtrkn*SoTB1Av~pnV+=a29mIk&nREPV0FiUr zW=av%hruec=KwWYI@TH)E&AEXQ`EDA9cBwj1gzL3v_}9X-IO6@RzoZBF&U207K3)2 z;rKEcHo39rENWrMdsZ#|Wf)ba_xM|bj1H_ai#)HdH|Fs|iMGbbL>8YRqqPc)K@%cH zJ`mw}o(d2;_}na}#6H>Ppe#)Z3?;(R01H=ugSZEBQbGiCDk|&9hX<)IkuEc`NMi*> z=wp^IhMZ~(ITm`8L@PT++!ttPI%yeNAyNkU8Tf0(Ri6RE;Uu5 zie}V@wumk;+9St{HyEVCpV~jVllQ1KWW+wn~H^SHXUIk@Cg#C7qWf15YGx8_AW~ok8OZdfQBB2UYY=LHM3q8%lHv ziyu~paSh#ko_#MSgyPFV1W?fyBA1{gWEoO6&5I7BNaMXG+8&ny!Be{hF9P)_HkL^F z-gm&MeLKWd5}$y*y8Y_ll1-gum@Ydx^rkH*U?I?SFngu-p0SHpeCC zmc=D`so3<$T>%D49jK)!Voe>_Z_F%d3cVz1=w_NIcUsEF(UT1I#~-45u?BWP?*<;P zZ^^HqFnIB5L%OAkK$ovnL3p-IWQrbem_(5gl33ci7qjromqRoGsySrpw8Q=~>Xtad zdO0`GW|^qKrqG7$;r?gr-Y9eU*@5%0!&~eDGR`%)MtJ$V$N#Y{TDAn#liH0)?3IcFWyAT>dU?2_6Ab`;nND?dd1CV zu#>+14nmRe!)$y=lG+B*j}1kQI7MVMjumC#Q$+9Zozw}G!3H;RFvfh$xZK}ir>j#c zjoTCCf?dkH>WFM-GN09kT+tBsf{hf8geG2tKxNdP!ZwadqYY*il6qEgYEP2uw^H%H z$XKeg(Nsr8m>N~G6qB=Y;zz}V$yM@fs&jWtk4h+KsuV>h=TbtCO2K&5%1Wy9_i~TQ z*fpwEjV9*-1Eickxmw*xbs_iVQH9t{wPw)dLgBZgN(f$!cD(9h3Dt3xvPO+=_T*xP z_;Iy%vMY+;gL&^Ye<^)o4#P*P^Yy+4WtJD5%0rxnsrTCIXr#DIg=?O-*|yeuwy~SP zQJs4{Z%`80%O(G%#wh-ZN{%R6D=fWmGX};3fPP$2|L6V8@SOKJ{l3gh=O`{l^X*SIaD{P?x*V z5BQ>D%+^svI|gtqz2SJ0HW;6S5Fjkfze->qkO+_~v40*w`MMUoewVlYhGhTHxBg_a z>m6@@)48stE?|cwP(RNVssS_x$Xd+I%)oXxR#sLvHa2#4c3_#?uYGRUTiyQH`^L!) ztbXI>66E0)<>i*<8tDSBI4ELP@LGE_WGR^pzl zM7Eq{fr4~_qD-EmOs*0Hs0T{W9H5k;*;gf-^|LaSW$&v1C6}QhcTYtwT}3`kMLtDU zAz4lFuDVi!hDxlCMxudEl8Jt%g;AlkNu`~6i=$Uj|c)K3X4 z!t0mp^|zOc2ydXyBfP&wc%Mc9wC3|A(sw`7Z}+zU`>4QeSnx(n=qq^mv$)$&5@Sa1 z#`UG#ZA(vS%18$!u=1SjqW^sftmRQnYg<`+$HR`txsQ9&y804&2Euy>{riSJ`bM1l zNA3DYt@_8z`^U`s$4n99#y<;qu|$m94vaeujC&1^2M&!#jZ7quP8N($)lN-!PtObk z(%A2u1`rxRXMY2;UrHIEfc@L?j7c%A3id`3lS)`QN$l@i+;r8&2GLVFtaVd39yw}I z^4r#|AapkAvC{w8;-(eD?EVR&`&N@iJn)jpbn-qSU8%#MT9A8zU$0#LS z<~X-;PQB<$r96!-rXN3YieYj-q8xG(T$reMU&atqsg>WH`JjEb`Rvi|D}R+!e!qAA zRuzte=gZA8N+~oq15fv1Te#HYQOEh!wxEvVk47Z(>%Eol`=y+QFVCA8qTy$WXe#;O zV!JyzQeg{wE@miFU%#J9MJ9N^nJze0n`1yH5S_NBS7e?o8lv<;YLBP9wQ~P8oRp4v zFcM>(f0Q<82R24!y^}_$OngkJ7~^s*Fp5vsZoGj>Bj$}jrajV*qYb)m6N}ddBh4jn zK`MtC!8vhH}>nFi%B*xWM@6_G{N;GMO{U=lP0QTmr< zVi4a{f3cnC6Kf62(V%NWLT7MR7$kGQ*)~RNG>!DG$Tu+xIU_*Vd)bgp9mdEIwyuLt z;7RQIUXvlpxL1Ya_e&?Iz_DJo${(Z=D~cS`5VX>mwvG#=ya_wiN^40^K(Bm zfD<8X1^DnHH*;qGaq=6&=WjR~rvv4Y3+iq8-OX9fywM22nD)@}nLx8yjD#nY11$lu zX;5@h8h%3bwRW|1%=gdVBVnv~1{8M*UB20B-3z4#wQfctUSxx+zo(X5uu2YM1UzBi zMbL0VW_ylV!{1{*om6YE1(CEO+Q~a`K35O~wYv@kifj9f$3%B?)U|Jz@%M9^xjGNw z&n6jW@ zV`kWi~w{OW~9=9mO~P7sWZVmy>f)-O6H8>px$*;=_OuH_|c5S-G_>|1%QUzY))B^ea`L z)tDaF7|+xgc1%8N2>qXtz{uQilc-{PiQ5_@$vCZ1a25xMpI637achy(8W#W(m>3{| zc>ogFd}~WqCWoUC&cclE^YX$AZZ$bB(@X%**rj+}H8@R%+XI`UE*{0(gsH+`;+M5| zZdZGF-8Ey}c@FM9_Rx-z(BH)G=onGh^YP=-fBW|M@oaK~f2G>$2VQg}MKq+qMC>SQ zccZG+<2~&muC=0j9X&Eqe4$}AYsY)7y?Zkp;cvng&gMHRzV?1r|5E!p=dh!n57^>n z#<`B%NZR*Oqbb@$bq)Rd%^ocLICy{U!k+61J^ovlXpDOs*m|8qhr*Z%^xQTmLY>2; ztOxM1ySDr7lsy!5%D)G4uLQPTBrx(HCg!!33CL`K#)gTBiGzcKkB<*nnb%nNOJ)Q3 z?su#M-hYX0*LvG;On0>m{Q3Y(dx7&0oV!B0f2{7kmfwB}ZhxAX0Py|4oIfm1rmMru zd~IR!OI0CTP2qu>Lav&8o|=5Vid>;Gv`7h3swiEqAXOXe%M~Rfmld#vn zKC?4^>1ej*V!7pE`@z$G&&To5?+Wq02fAGb0p)%f{IfzlE`bX5yea_nu2|3esv>-T zFTm(LkM#WxSe%i5UvCE-z=A%&!`2gE3(4`r8EGv!S(UjDO8$pyz-wws>VUlsO*u_1 z_gmUhTRZNyJ&y0_x&62=xC`OiJ>bzZe%|5AeE)9*o~??1$%;k-Op_i4IX1OA(dIjy`Y z7mq{6TXY``l|v&@$h~3P$2;}myr!;t{m%L-BpKiw@+~*0oiaQ&j&L144G(rp3o!qdQ%Qf z_j!xyP6304kfG>jZmlYXh!`9aOVn}vOy)bZz#iV0jPgVj>}qePbO+IR9Z85TMZ5Xw zCADO;*JkpXvGA-o9`zJ$3}Fz_ret8cZebNlC894pKW|I}^Xi4Uy^b_ch@H5{b;-;I zi`nR>K&7Z*KeWfDlXi9?FyD%QLcDkS<+Xexa?e}|MS^v-EX@rV3aRN9)Yt|z$EIZa zO@W<3Q7l1wKqk}$5{<>U5j9NW!!5Y#9zA{lCnBk+vW4DDEQ~iet*TEE#>NBhP(j zcA3PCmmQO=Ao7|!#tF(i?#SeWFb9JRZUwHx=} z*+Ry3#-kHweTLh2Kp*Q+w~`g>ABKw^pmeTw!F`_YAbUU^cwmrwN0QoSAL56K#mbYx_H;}Vk&d)UD9N1 zVkJTjEh?Tkv}|-#QY?B#j61>v*rf&CDhKfo{fBR~=D+ql$$l7&)O&LQEV25I>F$=; zaXurCK6I%}crN~7NPc%)j;O?JtDPjX&oN^NyH9(Ln0e7_l4o7w7?(4CqSYWBRA~1r zLM@v4&osIxGo?ZDKi(Xgiy=go8RM;sJ6|J+{0C-IkOxK>=2$l4NmZ>HHZjmtnndg% z!$ivr@ksN{@1^c(AD5R6K+wR^nDZ|_wSLK=f-*|dEnzT?AH>s#Sf>Z?b3{Up)XFx} zh>5jlH-^n-PnLs^@g=kef<}V+OR&nbOpy2bUU+0KGsTgi^6;TU#^2fLQu-d|?I7B6y;W`H7@CCG7>;IR?T(VtHqN%7U}#G*8tQK%fIZU8FH zh0vQjqAsH(uaK)mQvmHYhu zeQojedk4^oj6k&%%w-Bq|6(OHPB2W8Ob`re`xhqWe|v)a!^He{+!%!i7>sJmgH&Ie z5;W>;DW-r`$X}b&lI!f*)Lu-Qer?H_sdE&adhsOm>!Tt(z{FI0IiLHrwMwJj)oALc zz}BL=GGw#>e$_DF-fq^*z>jM|k7!H&mj5xo8x zoU8BY+Pa?ea0Wh-Slsm$ty;U-)AGWJTD#0@2MIKK&rv7c-g#cLg{K(yTFu}H1nC=K z=L`MFmG*tpsDD$q=Jxh?f(y$41geO)0ny4D2qUKo*V8+MBFXC9QFxFH9mzl-f1}#B zb4cfcKj9(gCXp!F5R!899Ru}EV2mf?(BR-MNB$=0Y4DKn-sj}u3U z_6_6@#wA8Sr1Rx(p`4u3|Gi&r7l{+O5(xK1vIXG0}Aj`uk2J$;7k^2zozjZrc{dV9=RL~MEWG*^v5*|4i z2YdX}OD#=F&iXfaslSVLo!yy_d(*r7lDqp8dk}HG1MuF#=)NIX-%wQla9IC{KVsAy zF&a29dV63rZg4blXe@bXEPZ%9Yh*lsbfR>8vStEkwfRk~yLME6d8z-M#5xh;%SQ(U zig(F{$OR?;F4h_5Bfoi#P4+`Q?G%6#EK+`h&L{z=glV^@GnSYSAi>T%U0+eOw}7R&Ua{ zn!QpbWL|XY+|e{oYW#!Ka(a0)iIf?$D*`8b4^bYsdoSlj=Od>P5gt9d9MM=DGOo+w z%OzR%x6`URoyzBr+dUp~sT=cF`5&uO3yp(*h?ce`E~$1$@;66+-F-JJ@zS{Ys0Fb+ zOy=5(EH~n_ZK-kDnxNSiK6-$WO+tZXhlagnF_Iyy^)URP7(+wigp#tw=IxhfZ0k-! zTOzrT>C7@c4c>64C5&o3_6;YVv?epd7zH$Q?0p;S!AO$01ae$<8nh)@{h26Guu3su zQ3Ai|_8{y>r?UZ0SIF@ImhkXSsY&_`)DkV`z>y(B$a&Kco{Y$iXLrzwi;7I}Y}e&z zB2R6`NX5n8Z);M_J3sU1grqxU`JC@>=Q0SizQSNX5RSpuJe?b(3p*u3!*~BWk&XkM zXDPQ5Ro@t+3*9-;qLDg%zoQ^hg}CQncP1P|5YPH8m0q{!bf@w&*-Zy432s7)0iM) zuS{WEu)!Z&0y^7>>-!$3+z4qB46H6e9fNrfq8PH9z>`!_-p2^BWa}9}hHk=2uf2U$L-FY!wH=$C|1F=f;- z-#522e{Lw6h6B!ah#?)?+lZUg*K&@*dWXH}TPGV;8$X~Kk7rSaeqs8#cl{f(!gJ48 zinNzdX7}zKeBY|w`1uemO8Z9HALS_Y(F^9CaJ{~^rCHt6ViB5W($ed=I33U04a9~S zI-7IV#Lmi)xLD=sTwfgwy(?dOYiI^4M(WlVzd5J0>S0e87J=I=e?uOQUhKE3d(OKt zet%+yg21zCS72ju;UovjneSnMABVk$y7nxnefJYHvt=fp^kQ*4UC1e&bOf_$wyvq9 zm_Qv}gfjBi?{8Pf+`l-^4UlkSG)RpPM4W%5-zCo>-iHmNdw{K1y)z-m)jPMBnrRJu z33&!IpkZXp1f!0kgoK;+7_?ifi?YrGy<~6}<2Ne!k?ZJKtdrK#*2Fk0_C+x{pP4R2 z*I}eP)_q`ZbB3xIxi)G8Glm@_wEzJ$S662>0m|Bg=%tXGZnV3AMv6*DjFxl2Ekz( zi{vqkKu^q&-VQZ}6p|P?I5ZyH(t>g;f5JK}-#){2K1;)Qm`g4=hGq?nMz^DV-;!#Q zic2s1an3yqnSB`kDW=*Nb)eRAo9=dj1uSx;bQvgse9zZ>G z0QD|7yklN1Y!Dk&BJuC}_+UrfW*4nOLQ?ci##!9CwCftWs19iSzEbF!-MzT|J_s16 zR1ir)xz6$-5H_%Og#E1RlLuc=Jk{#ys1bM~qA}vL+2Xf7irxu*%d zLn^U8NqX-3NZM~kxf%|VtJCd{_d3TuNF6{xpnpsWxYF=GA@L(u0*c)=!vS4!zqsue zpZ$9I9n^jy+CK|;*SUkAn%$LX_fxI=IBM>SO|pbbt}S65F@PhVf(z`(%J(9p=p z$k^D}#MsKj*wNJ3!_3&v%sAN0IKtdG+T1wK!Z_8^B+JUAz{;cqFlDVxYHds!ZA@Ei zP222DJMGN69n1$DEr9&NjEnWWo9zn^yVu?hZ+)CT`8pr?xg7bsd<}3t4RAdRbo&o-S#_)^8W%0*ozK&7ahD6 z6S@u$Ta68W5f}L^K59M@HghLtA}MYpIRTM+wRhYueX z6%`d17nhWjl$Ms3m6es3mseC&R9042RaI42SJ%|k)YjJ4)z#J4*Ecp*HMf*JYAa~# z$Z3CkzoR?taZgfLZ$fu}Y!4!`cQCkj$ggkMt8c`;f5f$a6tH8R`p4`LW7dcLrgYh}n0pH)7o8S30z?(EiDd#M7MPD-VH0mOy ztqj%xZAweohD=$QptLsAeRH}ps5N~H+EOa3G{hp?nVb|9)O|K?guOB$Hjw2aTWzIn z&^|JF&!NJQEf-gujW8rUldv-J#{Ow#vK#g{Ep(NZ%)x9y)1sXchDed}tjKb3d49Gn zHe(#5+8(*UBLMQ(Q3HTsfer-HILVg%d1q;XBzN*nX*2)NeCgwUmd%&>YM1@CLT zjgCTr>ZjyDtV}j5Zf>_t)FEj%8~4-**Ag^M*F10tG+>?6=q2*4fybMQ7?q_}?c3Eh zOOCHRgMt0f?Dh}mCEoRt#X&yGEF5mbx(-0x1;t~afVXxwH-wqGvAY#@98qGqsxbtX zt%q>Qk4$~SGRRTi+i{QYE7FEGF~ndqeKGQdlFAv#-T>BGV9+}u2){%Y;*&0-3riTF z(A~y7RHFA9E;@KR(3`+z#SbpVV2C9=9HSD1^ggVMc{!Dd>p|#?$r!r>8(y$Pp&-|` zllo*x5_%ppE)zSu;eYw+JB&j_U!d$De$_dT2<7!|EcnpTU1CHQ&l~J}!r;o(XXUQf z$TD;TURodYCQGRzcnF0oIRi%olksdd20RzAvpbhrY{(N%IK}{4-9^W1Vq1G_{J;$@ zhAMU?d7QzoZnZlYB++Srt4zpvCKG=&H~MiZ#;6`T&YGWrtEwz>ArpKvy*Df)ku2v# zWF!qv`xplvf1~K()7)PC-Qj2)rQ!7Nt0C5M7oV1LVOT7zw^3AZ9QRY9`7@qB#)qgK z`5_=#MG2YBLUc)OXi`%VnyR6OEb#uL`I ziC#aXd5p`9a!IF*uVgw4qU49+`cZBiVIRbch(Y7A@2R4PF-d?&*U|Wcp`(Itqq*jz za9t2`49@J2qErySr<&)i6?`jf3$**N5g&VHnc0Hu!;vp(m%>2?F>nN%!v$;f7}^6TWa_L2ZVz z{NPUzpxbnB4BuwMaFLT7hGLO&mnVy-A&0WqWJc$g^AqS`s;>E>e_GhaM`J`0*(oNt zy}!k8WumS|ClovBo~o~ifD6qI;NMox1ve>T*2iWL1gD`;r=^X#Kj(1ZcLtG6TBD2g z4B+`(I?GW%hoDQ3g75B4lM&ewqTH}QxWhkg1^GYTB=?_lVgJ9>@S2h@|7el}f(SG9 zo~vGEG4#YVD57%?3deAfTy_BwgXs9$H>>$cFL6_Shr0;NwG zhPR@R%C-y!ewB4;&#j~7jR#fAy<^dQZE)!ghN$@ITPwu{G}mNu9iag@eUpNo$RMA>xImZ zKN(7&yqNO7^viwSwUz!ywBqM%sViz+K@vu;1f)KI7lACrFU=1i#b1p03lM*{>;2<# zt>*#HpN)HeJpOcg|1^BBl)k^5YxDQ7G|BKgP5u=q0k#Cp-=E$t^FQLNY^*%&Z2au( zf*kC^oE&1@oRU1;5MCYyK3*k$UKIg;bwPejApy-_DGD(WU2!oziCel-5;_oREm^3x zg1o+xqNS>`v#OH6s$!&ye5|tE9VKX*f=s5oRIZ$4p{zuStat_VRxMPl5hB(E5e2Fl zC>fFKYLO9Xkr8cyh_=W}bSlgAX~>W0t3EN)d2VC0=48I@ZnNv{@YCCMJq>g_3v&M! z?D0Ls6X@ML5A!+?_r9tKpYIVq-y(cZ!hMgzefPutK1KMyjR<%h8T2eFbUZq;Jr4db zAtC+FojZ5$-c15#OeQC%q@<*#rv4k`z~<)WmX?-Bj~=zQwzhZFbv~|m++Ez=`>+@B zuzxUTV5nqpxMFy;Zgi}5e7x^EvN|&}^S9Q#zojUyG4XHD>uANld|st3ex_f60PHVc z_&Ra{wDny_E`Yo$5VrVRUiCj6t$@Y|6F*OzV^l~a7QUQFpgbu0tMj{<(=^hLLqG>M zZi1{&;;@K$7m58zjqmrF)lks*$@%vQ22kTjg04m}SL-E_nBOr+KsOhzdiQ!MZDprY z<$1D}Rom-K@>u!6RW3yy1C4@DfZn|zYaDz|p*Z2I*eT2t$5&aWqiLfSPI0c#l(im> z#W3oN2|crVh7omf$+I7|zwxxlBkq(U%Lf=K!3S3+65t(36xK~LJYOoBnCzM)xHw? z;j9*-rjCxO_T(cD79TD4H}g=R>?}F?@OrZq9zP?LRl_(`UW#r;nZqUNc42^pF^PXywWn~nihhQZO3n?Pl9W4nDwi;*2}L?)(Fa#g$+%~% z7Bq|Pi2RNZfp%*3o-FM5LFlzKcOP8XIa?6j>Z)xiZnOT78;5qX)VdhSigKS}+0_u6 z)beG$FA-5WZ-?W^Geeh=LW%4U8y}=kCc^6b4Q3~kX2y8Nk*6kjXS?0y{f~7-Hy`;m zck-2CvZ-4c=aP%O>BEty@^LN~3Cn>KWOoWU;|O9`*a*&k<&9zb*zVDz6}#_U&)?CL zSy+a36WZd?roG?Y|8iOY11g0CC!|T^&xT`4N|wzQ6Nw;`c=Q~^5est}ME8AXED~6Z zS2&WR30#4V(JC&_?!i5TJ@osnr^sZ zKs=oXDKrZg4aF0o4v%+)Qzv|xQ=<2Go{KTGkfIS=$((wIN)zhd_n5}`Q`EEj_c|{8 z-xnQgqtWGhJsG1hv&SR;B%}oq-*wuURivx&vW%yeIqf5oBN<*Zj2eDph(hQMei%;Y z0Uqek!~)tlw+L{pr215PihDnV_vpkD673;|iDmtHPS3htG@-toIBD*t*7sgjj)ugF zu594@d!rD(%o6a~NaYpLj;7v816(>Nz9)E)U~x2^Y8eSr!x@EUFHl6n8j1$9TSk#X zLFHR4j;>jdqg#W-vg|_`K-CEtF4i$%_G0Wy&onu@n;o5!D^MIx_J>~#jkD;SZSbo< zKKyZtgdy6BjH8(In)tpoDkJ{@w&m#<%_)R%b=wBtxCknnlS4}n-oQ)9C_(e7#1KO; z;FId-lm3{)fNeqXJ@^NSU*y!#TO;EKB$UvIjwwlholBp1^Ja51Y6MEG%PY)3NWN|z z53Jk*Cy^@uIE}&((=G;NUS;dCm zS~eLf^^y2fJku0(x9F8l=#}GqG;%+!vEeXJE+;gnxtTjeTboRoeHDnnJKRp!4tcER zC`g=Io99@T6;kb`>6*XozMcQ~=#Lc=0Eb}rHT}! z3l(L6Do}*vD?##2gg)X6*LlU)dEM6;NPE2XcX=P+`YFhLKiK0-h{s8&*SB!* zi*T>2JjYdC3y8m-UO)aAb@H?Q@2Ugvk0wB1!pT+pU&K}W-?vD=lSsd#+y47efgfRj zwivP*0|<)|OYu>&i7^v*V~3Lx5Gi-M(~{dW(wZ|f>i;J@1OHi7Y-ng`Y;0_5YWkfI z+uGXN+uJ)jIyyT$A3uKF)z#JA-QCmE^ZR&{fq{X+!NH-Sq2b}-U(s7&+R6VgeG8D` zFAn?#fk1O0Fa+h_pY4Fguw52_ZDipIq|A)>w1fZJ8OX&dX|wq{77N5AnFijlLd7Cs zKfjy9Uv{l3h8zqh;{VXT3`4AM#$fRNNIcDsu3V_pE?ql%0cDLTK}~nP4`C=-Y_uMd zmGUXxoGW%ptx>260Ha`0xZb&1)iF*&!bqxLo9<->W6yg@tA6UH*Nbwt_ssOj%P@u( zm7-An>@B=K<;7*Gb{1SNgVr=xLmle7y->wf(HUh7ettVyLt3BxmJRkp6opjHneHIH z)kciK;~d%Hi91+nxqCA!d%ozV>30ychwrpwQu5p=%p_&!K69X5PWEy{%YH3!=&1eS z8h!Bbxuk|aq3XWJ%JFH4h{n2jIsBeZJ$XKam^=G5Yf!~R-oRjhpEjct_7tq=R9%*qWDSys5&DiZMCLbxN|*%s zVa3hlBDM4#boZ3Vd5%Q3A)4q@c?7PXbn57pAgaq&#o~Fn1kQwETr{$$fu(m|mY~a1 zwXca|5OyC{*xNQ`N#x+TVd`?z$nl@>K0efaD@XNpEmw)?n>f0AzwJd)T*v6!SFbV- z7$viDR>>ulh@QU;a8M;uqj^qX!=FD!xI5Wp^oWiiaF8^FR4sx0#zL$kw7k6TkUWIc zmy5w>STg&8^sDI%!jLjGOzOJBx0GlYICutx-l*=}M7=iMjSE;08Cr-~^s=J0O%-MZ zo@>`b+?r#n()}Hn%U;}kp-CnX|DAgifcxqE8O zSa!SDplkM*IkbD=Hz`3N0ojNC20E%d;qoL`<=_XiWk7h4UuQ{1c; zjUwHT6{<)&wWj@GP29y5DGO#e&E@xK`{uz{^cR5}s_z=TGLB69>HEMo&M=((dBShj z+sG92ugw$od-scz@sykkHHc-AKcix3VdvjHnnmifP4>c8Fos@|>OxA)w>jykY|u~G z;KEUjU?n*eBD!bkq~mOSY||Su>n(#5NU)g8ufz$b0cMZv|WBs)=*e6z^J{_7ypoG4Uv$`KMx%|rvzEFuJdy#M1Q zoe=P#K|)KG$hUN4qE0Ouu7wJovJL%sOe==Y91I@y_0%-DCMvr%=o_9cHy`C7=@vf* z)E+xkEtr}58HiS7PXI(hxW%HE5lxP|foTKK=s77mgM3SJhU9>UVKpszoi(Njk{o#y z7#={Bu(nr#fFY8p{oYlBJ1y$BEo)cOo;;E~Qswn%l)q8hFI@Xw z=DUt?{Il5id)ppBasada67T*h+W{)xFDLlAg%22z!otMJ%EZXd#KgtS#KX$W&&GO_ zlS7=F3&P7S&&Q+0$D;yda)Ie6Lj1bIg2tjZEpCa}ONhG2NchW1M=C)RwUi4CH0sTC zdu)uR9L$!SE!JGEw><4WdD(yVb~x~H{Nn3$1SBZ@UCshrzXiH|4|2cwhadYZHF1qi zR|s|Svj7ba=)pS)c0USo+XrY2z%n1lH4pm*SDO(ht4>F&dV8y4d+Q8)8@Qu=xU;jL zo13?%r>B>fm$$dKkB^V9udkn*CP;hW?NJvO%XlPhiSa^7NL_|bn zWaRDJx1*w>U@%y8baYHi3>*%Rjg5_qi;ItsPe@2eOicVQm-hZQ(G3v(u4kwGv-Stb zeAnpqyLk6s80z?mZpOiba5*Bz%S7dCbi-hk+^`vv!39y%h|OAqV{xd(?9C?*tp`)6 zfJMDx_dsa492%`FCI_fVH-yBdnS-qz;Fv!|cD5#3N0R7eqfes*ytn$(73wW#Oq&MK z64gx#oi~P*@3U*)JL)VFeluRofX0jGb}*X85nNe>CY$Lzcbi3piu=}4qg)rd9g>Ue z_8mJ;-4Y}pA22BPwiVjoc_s3eOc@F_Lg9lA?7wUJxLkQ3jZwW79d9mH3uW8Ea+yq_?KMM`>{2N5tSlf{+O zhOLmww1Vvv*`fm9$k22h#gHn@rTIj&pKB}+WwDl)dx+wB{O6;fJY;H!F1A~ulxM1gG-oYBC zB88Yw)aU1b6bG;f3=at0RFAy(l8lI2J-atW7(Vytmaq|a%XWTmAi0$@#RmiB?}Law z_u<6io?DXc7_c^Z!#j=Dp)SK@yA(@U1-1vCku-~1Ean^YLV4>itSGd%25agK7=|zLEGX=^A(E5~dt^$d)=kY+ z`fO>9KO{T1r*u#^c6ow4O znOTSkR<6xsCp9!qm*z}VC@`7Da(B_Xm)WtPP}={#+KUiFxa&3oExva``a(gaQ0*K} zmcA&D0=oauA6J&RwvE{o4PJ<@YR8bmT*b9yqq@nMkcqQ68tMHK5yE*7T9E@mdBKEr z*3*KF-Hr-u!&`%tu;t@zrH0RTBWZ#R=vN_d6gcInDHI<9+dtTnrXJqF))J(~a|W~g z&{lEeWgB82as)YWczFH z!^18YGze!BM(^H?0+FbLAGR#tz_!;)u^>uzklYzeh)qGEZrXT=DU_z{i%6h}!I#G$ zN{f}}0RMGX#?MRnS7+9LbT9w%-mYJ+FXe0J?fN>t7FMo3w`+OjmzHv^r2M+0|D&d@ zzu9bn$98SA{U)^l0t+`M2Ol?=01uB4AD^(GfT*zWEpc&4;2$h7C{|WhR!&ate>g5y zQ$tTv!&pnhR$IdjXt~$X2-ekr>1ihDYo!`!Wg2Pc8S508>Q$KO*I5|0SQ$UIGU~Q6 z>a{XLSQ`ym8xPwUkJ^}w+nP++noQZ6%-ESeu``{uH=B1fUvjoub+g%Yw|(bj|Ir7S zo&n6waQXVD*>(=}WQBNMwPjt`AMy%-1V8I~R&1pA#S|I6 zuq(nmRA-cc(_v-tfXSJ#M9GNWW%UkOI=H}VQUCowYaN72st!@?r=9j`>F z@(HzA;HReJh2XS@5`k}(&)BR%=w#UfI4eHeGxWozL}&Mh;&8G!b;I}f85~qIxr|>T z4oVj^3wRmPMXI9AIv{jr>zC(p_7op!#jP5SjH_;TINT5oJe?&TP08bxVh2OOO#}VJ zYiC8HG(V;TmcS?V@8}e7j%%Y3h`aN{Am5KqUPtpztPfEKkQ##xL!;*8@YgPcHX!H6 zClq>AEy8JrF>oC;1s2oiPzTaOHY5=K*M&5)it5g2cfeQAF(KkDi4f;`LJab6kMo|2Je|y zP!4!dZWP6V{m7hI3PWm4kYiCcf{DmO)7X||%s-{EE7IoYY-W%j@Q;Gg8HwWvC@sac zE0S`ZZ^#;)ZfwY0`WfrgR8!hCSrd4i$7OMVU|T$22iy{8b8t=Ana z_Yr<$r>qu)m_v%QM+=flP34QGhNGWl46|o}c!T?lFccgtrM+PHxo7hQ3M_5&<&V8j zW!>Hn#XBw`EIrycUj)DFZJznjbe1|n`#t|eh7rf!ZG&HH|KNoc?@W1p)9B?#ZY|;fdLJSx$5E1yg;!tGemY-EN13Ab0VZg@-9Z^QzKbj1R%3s@kZZ zD2{w%K^lZV+QH0P49Daw4>xzuTnnM=*+jTeZs3g4XBW#OGI!M*RA`m03ssvCn8vAQ zaKMT`Y=sQ+#Oj58L;!0Y%6hSeU75nkvoRS5sd}RVzfmV3siqCKVL@UqO?2@HTB>69 zo#P)qLP;A$_hr1{y$9wy$JmEIi~1~p23ZH$IEWO1uvim)D%>a^na<1Y;?72@q7FP) z&#uPAoq~g!ZLRfZAp~FF**l(_LubWcIM0>QX!)&6SW$<|qmWP}xp1h62nVDEx6#1f zg`Vw9vU0f!Xry&fH+tE*QCHGrD%46A^{oYPm3?KuBQHPXjDivSJNfY4EWuSpipD?M zwNSdL_V>vMf8N)>e=`66{x5IpYxCoJ4#KbInBTAI>pS}A)qHgiUwt@(ujY$h2j74J zSBwlSj0~)d3~Y=H988Q?-_F0~;3R}MLMFlG=!g-Lr z_c(j@yl2jNXMJaV>z!xa3!daRYhB#eeHB$@3pHgcbrrn2ij9V-!$(Yn&fcAvBT!JRuA+?|>{oLW4cPkFg?`naC++j%L# zy(h?PDAeb6xZgyC|NY2-si=TQ#6SS4pT&mE#)rK~idae^zE6+&k`W8+;NP=0^W1@; zs;%^@4Itp)&v3kj!oPjL8SMU>ZYFVcchcvaq>nkfmUEJqa#LRBrOl8s9#XOy`8gwn zq@I%e3+2Uad&*j>XpPl-5AEN-zqS@AEjUnDSNGq~w)!{TKmLD&*S!=~-|qA=GN6yy zkic)*ssEHCi4oUIV6l6A7{ zC4riqOBD*JU*)YM4x4SPWAl|z#KXBp^IdGaj@fYVSohZ~5E=%B43n3A_bKTTceXko zgWb%8-QpGu3aDXf1mRdE^moC?x6XIW^kpoMXl^?OdwNB{J~Ey8<=ufJhAH=?zVaQv zbC<&Xa>cf}$YKO$^|8%2k6fdF=wZD`zibH)M$_R6)48d+wmHN6thlOtDaQoZ%0aE? z3U*%5tvg|iH-DJD2qM`Yxgrg(Rt}k3XYi~?s2$SKr70gDtv|PmOVvDY@?@hmzZ!Aq z>>;0*qsWO{=N>!;@kKItiORxKL!#;Y1=iv*S2T_|V>*VW!2)@C;z_cnXoDi(Z1=&% ziI7B4J~!u7Jw(`{NDOD>d!JsETp!e5Ae4w9mE75hA(yK2&Y24*A%sRU4BTbHXCfzg@#>$s~lEbSekgOxE z5A#r}&{w?jAW3(Mosq=H8OOwY2{IsfoZgo_82K86igt&&6rzpACU61q!Kg)hB}?a~ zq9WoeiF$ZWNhL=rQtyGtx*0#j92#%hL#k^PbnD}Zhv@GY^Jca@Kgicq_u5J~uTmt+ z0L34eMU!~#!sd3x*;@SIp~@Fn;cj_Sm&R3WXhayNCZjq28{%!3g)hEJP>Hjt7qr1S z#oGQF=>}pq4s3u5s7;}rFFG7c-)BR3A(ouP{>6>QQSQOfm8y}@0L)q|}T)GG}_*1>&{ z69-gLo)#O=HP?GHIl4YP5Dy(~d&Zp{bKx3%|EZ)|$O#UECumo(7KE<0>gptE{}pV( zd-TA{O>V`r{&qP384`j%1wHTdGhO%fqjN z*H}iazBn?#1212%>=n>t|L_EH;bG^nxXcFkJ*XoyvwELoyf$9eGKL13hTDF{c7BlX zDv^FUT{X}tIcNg-V3f?^`J!qx$Zgl^Nlq717Boub#by7uu+^$hr|#^wet4wb_(iAn zvD4B5yxw2le!g0yQj$7*>kv#Wva*IHkGS;R9ge)uTdD|m;mz|xYy|Zxyg}rY;HdsNo6U!qeaQ9JO;}wt2%|< zO`9T(Sk%DCcy^_KvM&D$x&OucpU@ci_$NMlYj6G&6#tIHTTr}(!<$h2%WN{)($aFk z{3NrLWVWfuY*Uk!(U6nXmY364ls8gRGz9{`f1<9PrkbOcy0ea^+t%o6xo(cOtDd&2 zzK)B&u8V=5vyr~@c0+>6c7mA+!5j5Ii5R79&S_**8&fhQV*9s9xi)5TxvXB4tTlNd%GR>c020l z-V)&17U+2{#OG?5Z+~RKO=8fUn2_=K@TpxB7}m4m zR{<|OFuMWl{h9xrll(3>zfT@!37)$M;qp+_!IE zO-;>z;1}ppdHeP)P^a?Wkf+M==CDYaQ`t}`E3x`bw|cR(G?77Q2!U{lYX&lw8ybpB z6towa*@6RD%23y0P(GWW@!q;+CQgBYfD`fgN@ro* zvc~>0JK1If@^g3eBg-#syFy2p0z*OeI zXXr2tWGoyW@SZi5ki&_dV`j3fYukt^B%+>T+k$EvaQbu}pTaDeAfAHTm1&Junk}7; zG3OSsm24tq`mp2Mk4(5x#9_^S%J;Rlw-(>HYBb9?#6 z@&+(?v^hdFAntRo2PBAqsfEAMfM?}%x=;g5cy*-f-wS9SOQg_wz&Pm+L&ENC|4?%Y zeL)vECq&bOmS5~W(1#Q||FRKlOn%{eOkth?&!V)*5*jke?7n_^_caN1>l@j0B|Dwf zp!$8rh=Dn*K#$SMg0#m5BgiA{b1zN{UPTplL|p_f3NG>hi^DN?^#QR+qIt5B|$XNg%$mtUHF z0Qpke2EA?^IDZW^3ci*xis|d!0F5g0JaAu{jDv@s(&Vt~u(#&QU1?6lX);*fCdT*B zl5jj}(dObn#C~7@XW7SZxXM7SVtq3tchV_k4jsrf=q|MSaoe*r$mO)hJ<<2z^Qh!3 zBB%GMcIC5JD&_)`48a)-Cad)5aqfR2W{1BO+lqcfe;S(7$|JdcFZP@7367Ab^G~nk zIHT)eIsJ+tIO&etGGg5+KvfI$E zwHOo1c+4uoAoO3OOR6wle;YKteEbnPP7)`w{M2LV2xvLO?ot+8xH&qV{mpwtzia}O z^EQGE&nS6tX?cuH7`J4`LtXb*DG%!J_cOgZ>EeTw?7bM9!FYFAKp6ShtV|>`C-B^_X-g>Xw9>N*cfQjrUl+D*Fx`VM^|5|KG?D3SQWIKT{1nd) zOaSZMB~EGcjs;}ux7RL?{^>M<&t*>biEOV!NBTv+EmMuu23X)SQ-b4>m>fYv;YgI# zz@vfI+<>nER&iB)d5L&w6OgUV^srgg+R<>m=bV;ULRA6gRI%WnQ<{I@Wd9(a{{csZ z0Mo}WzK`Fy=dENvph-hm7%d_q3Jl=*K%>Qg0cy#9oh?`ee*QBq8UWa>=Z`z_pI(4A z4Vi5~kA{kzth$_>mZH1?u;HozE3JyPhN_*Wx}&xRK}X9~PsiO*&uhDZkI8m_tVtlw zG}HncY-JH*V+E|PA-2{*b~b_bw*C(GzB?SfopyLSJMa7pfABwt(%|6WkdTnj(9rPk zxTuJX=qO4Yu{ts4XmV^vYFtlh?Cs2ism%D<%=pF3xc7jD57=Zg0Cz|1+Ey&{mW*$c zb_OE+{+KOW@K%c7ZyLVeSKUAJ%-?f&ecdz)r@kSlzsS#?F3j7EXf6XHnoG{n%1`g5 zweH({Z2$fv|Jh{!uc5S;0*b2jtPO^i7b3RV)!QTna`J7%ubtIM=!1|Xagk-Xqm4KA z3VP&etme&MuMyoKX^_sy^$BR1^_}`UX4zk*=d5(4V=t3(6eNjREewouJ&KU<6=v00 zu&h$&=u=S|iyCj{HmEHM(rvVB=H1u$Lm?rm_jH1MS&#SqMm7$R+zuu}de9st?HUua z2y8z*$k*)r^+F93`?znIuUV%;@9g8NMz0e|F;6bXalHKz;k8i0FIW**akF6waUKrc zUtSqZ&7XAEorW~H>qHHLJ+Ao2l3v)NmAjET&H}4u`4_m%I%s{`g91Xx9rV|agV~XF zy6fBM{+b1GUFwFO@B9;>=^cTF%=*=7Owo%ajvQ`o!GUiSv2%mf*u|nCl3pkw)Ql!+zl%^$@&J_dNp1o){3U4ZZqm2|1TGVZOLRv}LY;uas~h$rC=w@ixDDU%@*S5Q zqAyM&x;ix2UiG5kB3BfuPem$I!TDZ>23JW8cTBDKNil1Lj`RRsdOKC@%ldc$cPSUd zwP~TEbs0-!Y7nBmems}GWaKv5E@AC9_{bi0D+?kqsw9mNljY`rQw9>)9>rkS|E_|Y zl7)_U?v?p4fC(2kF(9U}xTwHWbur{}}i>uc277mdz-ScRw;N zR6It^$n~Z+PVkgp2scrRQPbC}_TygN4ME zFhW^{37g;mkF8Olq+KwbH_BuX6Ssl@DKIE3(=!>lU>QryIzLs+^YnH(3_CJD9Ywvd zSQsiAELxAHY!h7A8M{(KshhPlnUiuRcTglA_duj3$|+qd2f9#X7TFQpjs)L+9%>#% zJ5?S(PGlVA3?^+mMdFI_1aT(?flZw{I8 zTV4m8WrIcK4|&!<2jl;}|8k38{{0@jiOPQo#(#;&zZ1{^97{`K0J{0-UMmgkwaT)a zT(g?oX6zcE)&lCRv=tQq&6cjRlAel^zN#`%rC^}0YN(-RsHtJ3t!1pMV`89ZZe)lv z-fnJcYJtOAT3F!mcxzi*TRS^DdwY8a2M0$-#~nL%I5|1}AFs9n5rF~mf&Ll(K2(1% znxAK_ug8%9&*ng{wqT#GFu%)DK?5-%w}IxWxX?%OVKV@~oDjB{7`~JgvHaUTnD}ig zQg`bokg&Toz{kym-Pph7b!;i?e`BA2LUL{raP<9=y9>bMZ@EBXLdr){+FMG-eE#m~ zBJ$0$qKkXVPFL+YQC-zkQ*-z~%<_L{we6)SueW*D5`y{);G1~diRtIStozY0y?G$0 zn4vFI!`y0cufn!=;a(DjM3Ugh)WLp`EaF4CzOrm_CX@GX-w>fCutqSB0s)@}Hhc<% zVyt1kMn>1HIntiZs7>kPkrIF(Y&YQHYXy-c%+|NtuWUnf_?|v27Uhb$!zTm@KQuxj zPLX1`)MTTo8axY?b$L0Bmo29RL`1;nqYUP6a_BzbjS19I2rU-gF8O2B{S6kGplnp( zxq8|HSqj%1Y56elw1;c$l3;g&y2De2y%H*Q-`;tSLhlOdBYXmx9GB93AeEm^n3o(m zbks_9_biaQwy_Qs?)1IUYtv|`i zFtHmAMFg-ix??6q{AT(+cD1(JgMRP|`tu5o_7H9g{J-P0*WupeTbj;L`JsikSpzny(A$C`zx-ETgsm6*14T4P9SiG?ES=@$grEcyZqB&f+^MG}z=rr*WL z#cvH<;Y+w8sbYTVB2n}1Jin70Iz92E?ZT|XX2lBcxuw#oo%<_H8^Y9J33e~Z$gt6% z5oyB4QEL%_cM85Y)UV`GxU^0RS)i#1$T_LZmNAQcw4Gl-Jh9!K1t|Sw@fr?o6sxsV zF`~(4U7Fe>MU9B70Qla_HRnRKCc2{A*3jy zi3KRlE}9F6G7~!>lEOSRGFQSMT!_YvpdPS&db?7HQ5FqGNTr?%8WJ|@X7-sw8q_{; z8`h2ui7G2=UBpsHNqE#fkzV}Ev3Gtp!&zOVA>j~2kSWrf5eVUl?9hZurMs$an30x( zhPYUK+$gBHiQcTc1Xt?2Yt}_3OASa;Em)jW7_r*PNp$8LxmuEE{AsxdkxKBAlITWQ zr4#b5*+Xu5zUW1!G9t`QT8Q2Zq^#|PAVTQiVfXvmi#S52fldS52X@Kq6p1quD}0Zg ztN| z$5!z9ga```VQE7_-|vBa85`pa$B=olQQ*-@J50-WYp$A9ir7LRZTO(mKRfCEfxW-J z{KHbb`Nf}T-%%D)t(x zj+$ytfNEM#%iTc7%TU+LNY8t_zK^k?kLl)8?29w?F*ozEzOwQ(p~!RbIQFG`5klv-0ZVro^3nUEVjb#xvLC#q%8|L1r^r#3^l-oD0b~u zU$2z`IE@GRLkdj50V-(0guolx+t_#|Z9el0e+Vclu*hl@Ub$=Ddyug4WK?(@#9m^n z-H54VeTi)`xEg-Q;CvY4crf%{nXN0)r%c49Ms+oaIB^=J8mfVwl`KX{8f1@VB$A-T zyY`2tA3U#MneV}&=9Vr^A@o6Q109trK_QJg78+0LS7zWG!O!%{jjOvRNc<{vv8;WI zJL1FTygDgW0lr})lrP3`lcp&*&}YqhtrjMIjHELvlZzI+vDH98NnaU+7ZFq=e055Q z9fV#))gC+1-Q)jUfM2NY?YZ>k0>fg&OENXXs@Fxv?o;of^ybvsG#x2~0$w^Jj1-4Q z-c~Ta7;gT_<%Rt!uW#_^^bmqqy zYspMR1Ly=pz?KoD-V*d$GWX-mz)3In7j(YeYpe)NZqFF#G+6QA@k7>gtTq@Di)*!jKklkTWjrg~FV%Yl-cc9GTv@8dLnLr6j5Td!d*b;n7jI?OdVM^DmnZ zLQb1q(kG3%>h#b%6G^Un*7^Fy<-x&)s4u1$Xc4N92E;iWmvFl-@Co?|-mc%H3+ZEf-8s-@Q?Wn!mSb=iOj7>%NeG95n%ms^BlqjmAkmx&t`T&5 zX3Nx6==DfvR6;`iXEe^{D$~B``FVxQD#AGUgAXvEG~Kofb1_r_@<}f)ORyZolWg!* zQ_S{?MyB~TmDF#bGvV`O(ad_WPVs1&6$=hb^ryQBa(Q_=WVrm8IVz^w{==1x1=e9+ zv!)Kvill#v0Ncp6CuiP^SXO&-b;WIufB9s(cZk;p6+}gu3O7(uT2~m8?{_}3m1H-M zw0H+v;l^>!`ED%Smt0POo2;^OpF1Og8W_H?Kf?xUUL=8mn43TZHG($MYb4h?3iVoE zCcBSwR=9K&7=C<pdtfS$oqq$R83owm)8R+;L>IH7s4>d82Ff}5YZQmTMF%fGL zg#*Sk(h?hMZINVamF8fbv%`++>`>zBSm{nU?B#OY*R3Pa^HQ)^Ux@cenD50AS^ysw=U}Ap!!69e;+*W@R zF#lHk2S}%W`oI&u15JO~37etf*@LVl-V-&_NxwE_aMxzB2TtBk+$lEt7i)8MHvg^|wRpE|xI&P6- zj6Cnlz0(#EddG#2af%tl-AhQ9gk(dfWMl8 zwIHfw@o_l37i%e^)Hp^x7*eNK$>xT77*v`bd~q5pKz~6NU{5v3-$(Lx+wW;~165EG zu*zt$lcc58VQm=?rG)f->s;9C>R@1gvD8Q?XQQ_a2Di?^548{|zPB>Of9kxQvt{-V z?Vd7S&%~p3gt^veC$RyyhFtFn?*gQ{#C9HpUwM;-pi+${wM#(p`%X(A0$S;UfGU)P zFbrIo=bp2h+XhkW=&)){PVcq240q0|*on`$m9GCK0l5|+|q*ug$uoH*Pj z?BM*G5MxG_+W{5|Pn25ZAcx>M?4d`d`OG3YYzp;0st#FgQ6e74(>$n{hrJKRU(Fj7 z+hDBR6?I_*Y7Rl8K00x^j*RWP>**$>k)#_GHXvw!dX>V#`rRP!Fz89(AXb8-{2d*1 zNR-YWgy>?5=_@=|cnDuzy^9P`d2&`DHtD;}dIVmG+IUwSEp@(qkDwcC!S<$xu4x~Z z&W_tq6OCtBMS?SIDw)tgd8AQ7U(EDz$pH(BkMrOK1Ole3Jh_E!4)XZ2y#0W7onu5U zIQ@98$K_1#1VjR^y%+r|=Hsqlce@UN87OK6>1LHnj zEc_@)@TQ|Pheh_)^P*kxSfRZ1UN3^P^*kMl{?h3@#IG?U1A2SsYXFY^o_jfT5Ngsx z&bZeBmG~IO%FV!Au0atlS}q8blCm~sA(wrmfr)5FsRusf5WASQrR3Bta51I7qX?oRZOO4m?C5^E z+2xYmhKL1)5xz3cg%XDWX`k9Y2{pYJdU`xZh1I3o9=Xx;g9fC14~ODc4qzdi<5&(0 z5Xr>^%-8&U$~68xw(PfHXzvVpM|yjy6gS{#(xq_{kr0A zZMJ{OC;#d)`t|+ygYQ57{@dkuE8+zx^aa{{fhZRsxkX)FU0YjQPfyRt$jHph>|b#i z0o<~a(@uhuH^Ir@*(uV+DZ!PHy_1md?p*HST+BA@i{4SbywuK~OP2+JoU^@Dxw`~)ufA=15Rk!_3-28V(-z~4v zmc;yA?$PRTUThud|^4hr5h=DTWD4jL!bT@?4Ds?3(;m zsvmFY6op+t&F6mgN>Y9ymP^E-sDpI0acI8={KXUx#9mlGeH{Y&c>Jz}k*5|XH87~p zj7K#@>0G2mA-8hK>;jw42yGHaX8APMKeT{Dpb0AC+m{Ok^fDkKMsqE(k1Qx%Z&#{9 zNPZL!jF_XHUI-tZc3}vTW(wlW+(X&5{r?oSBfjhPou_NLf7OASdJbbe{$v~y{>Zr2I%;c2+t44opn8&&Hm z;k!zw?1IisI%FD2 zJc83kCqpF~3W#vjdh<1Ee?na9R|RC;niP%Xt0EkY*ARXnyNd>^EW}Pi-&-_a=cV?; zaeC}gf~W3Bjfg1govh@-tsiBr-JU-7%B;X`rRBWf#p=3_4VDIc<>Z@0g-as3-3mm^ zc~SVW4Y4HriI3ryudhCx?&udF5#&*V*I+R`M}{>|fQ85kr-lVajU1d|nTzLo_8Jte z6t-*_)O7aiA#_h=8YgJlv=pwf4%|RLP@-`eW{;iTM(JUVzAf}nnNenVigZ+pw8jTv z2Vb791@2Xes3;q#+OtzxnW(#4|8%%?ZYhixz@pe7*4n?$0$r zpT9{umv+1KXxhZ>Z@TLSb0{RFnG3C>_Iv>?=}(IW7i-|2mkX|+T=d@Pe>0zI@>P$$ z=-`*>np%B{?Av9};%JE5$`QREXrk3;miQ8|-%shBi4R$YaFtFAY44uce7) z&W1)FOVDg1Crd&CkMsDc=_axHuXn7z?0xd>8yPGb7?1JwW{0~>8IY=n)26?(TsBS? zLr@b`>NO$*xNh&|y_v0UthdTCY}6&jS&{EJSz5;RyKabc8dq75@{Bv|X^nua! zFwk>1)OR;BaNlmY(`5TjGZQzQnX5U@)zSj67`a$myV%(}JJ>t#*a1kK|5c51U_ex$ ze|oTgNl3u{Q2(Y-|I+~JObqUe4!Io@axXS?Dk1zyQsjJc)T`tufNOrA67?|!Z~_C# zyFg6?5DP;5p0)|ln;5+b(^~_yHUKB!U#`G^1g-t%4c>Ab{RY!p(7Ywg`ka^Yo|O8Q zoW4lOe4d~ExG-;`n0))+Row7D9<1ekM?DkC_%ZcpY#D`iIFRISo_ufZ%8f##=#G2-QnlA$ezS zF_MSZ&4sNBW8uw2X<69RYDQ0U28*UK4r*w+(FI$AVIumjCx+zaUUKq^sGZSX-@iYL zLr`~My{Q2_a&8irJo4Cc{WMg>G+On$tu`LcDWG`%T^Q?g!~vZ)KP!Y}If#g))~V2M0TEx3Y)7Ga3|N}Eb`Tg39OtV-+Bck?jK6P5LH=*3p1!J!3B02 zhcJCm&O8D&B6|+FB&u~p5Ky6vnQ1AqOzMQa9CL&PEP-+!64q}~Xu>HChfstQ5+*~?TFD*34l)KA zFZYUyO-JA~WGbyC4jo7&L4tQCgASx?C9odZ6WnEv3Zvnu@C}W?NGs_VUqhkmCkrww zOGLYvtYDBWN*O1YaI@#orEsO!R&vRC(Rdk^OAF8nWHf_KNEo7o6HQhkA@20Kk+8$- zy8`zf^2fxS7pkPOUf8fRz_bDeY9n@j67CLuX1DF;^f@R!?E&nLf>jpTGC1 z>=?G|ICLo84%K%J26h0oJF!l}RKzIL}?Ubyslw`fSU!llgh@#y~Lni!hr z6T79*!&2SG(QxQaOyAW*ucFUdy=ksHiI73m%bz#%fDrri&_AMY+e%V(P8&ZrOqqbp z)VE`g9A>J41sqC0VQnORNF~~4CaDgoyj`&;!KW{u$BMU{d~4(JXLB4WbY z;PQ6Aj7tP=H`1lyx5X)Yp_RsrhFW=5>8sv+ZXch$BG#*Roz9I}dusb!sh6331a*0- zDjpDLr+x9KU1Z}(PQ6i#ymq;{5BWB2Kz{VQ@q@{Y(%tRnhoj$O9~Snc;pAd4Ijy5r z+uwfE>_>E~T+n}Bp0Bz8Og*Hlu#zr7O=;re4e7XWE!QnDQ>5~+m3P{)k7LTwUk(bu z;IoRibzeZTUp--}p{_LPv`O=JV~?Kt$SeAlE8rs9ccq5X#&Yi+nJi~n#Abu)MllyC z;EPz4^WN*F#!h~sJqHlx*e(=v31nay+^&b}8=^9Oi};?M{+veRMcxWHBVEhNEqo@D zt(-dC>M6$k{tA0&Pfm1bqi6U7;f~lmh)!88TUobm*<(l0%UefJow6h&>p48eN@mXA z5iqcNZ*LWBOOSn(2Dpd+0+P4R!heF_fBg8z=KSl+KW@?gxJdtcBK~Klt*5mUxESkiUW|Q>^a8f)2b&m#ni_?hZI8ejM*?KFxhc^C zOSCd4T3ZrrtcZ5jQ4Y3|P7bjyPRVYrL@&=EAD_VgeMx3i6p=`bj*gCriHVJk{Zn*S z@~+(}$%SbtwDgqPj8uANYFk#y)$HUO*}EQQC(UIiy~<8n+`Vglck;8Gl!v)#jJ%8y za`qKU&RI(C>3q`30!njXKE0^0uB3SH|HD-L|4GqVo7$`*^ZXJ4RqrdmMQ3rfVtHo! z;YblBw>;Fnp=u?!+Nqw-J}Y2<)@@~KywAIRP%oFT_~EqE5fkq&8O>R(=CKkbn`A`s z*+mk&L$=+ax(GYo66C8x8QT_~?wf#wpVKwSxxL#p-RVV4zR z@tEMY;kv;1%uhyV`uWTUel`3U?lzH*+>~TqD z`}w+58Me#|U6Kt}-_Ii*-cw>Gg*`q7HV&#Rnr75u_7wM> zd<+&bH(q)zJ-p||vHtaUnp!4b3)^>`eUM{}YUDFD75EZ!Pg*XTlw?R#*jOF>a@I9U z$|ArZu|pzDK%fDd9m&e-3P+)mSs>!{JPh7wX--T)C6wRXYR%7v!H%vQ9I)cBTD{8( z7EzeB*Y=#L7u5CaGKa$}m!%!BIuY&y+2T}CsWS58Oohg6%(Pq9ast6z>5Pp`l|~z8 zundfLW6c32VvjkiuPRJRSP08_;eeRZV>m|x`Fx^G%-207VxHY{4!T8)u6y6?)(Fc= z>znA~y~8#pQ307e5l)AE?I`qeJvF=!%Ok<)Z7f61kq?{AYtZWVO&^HDD`SELC2bIv zpi-r9%&V4l;U~)rZZ_R>^Voes?61uX5|pfP`;@wrPt?CXN3LJpO@H0)T6<22U4)``Z4xF@$cWh~@@E>E8?WuWe?48Aox zJ#A0mzcby@*M|QVP2j-O=gl*2^?i$z^p=^6z&%G_>EjN+n(_R|hTD=lySRqtNkI!4 z{=Orh&}(;F*EJjNVJ!r^PG1#0ZPU~ww&sQFC*i|Cn6V<1Y3!fO^FVh4+IwOvl`DK6 z9T7?QZM*xrMp+7nB1E^}Q{*#7u{pPU;;#3b-u^f>Vyl{bPPsaIygr&wM{!(9dpFC& z^Se=>-bbBa54?tk;M8T$w}IVW2&^kaOi(l1K1;XJ%WO&W4e z((Ob^o`_Cu$v#D=`60zD==e7+?PrIC&G)X~Ud;J&l>d9MP`5)HMyuu|f<<=W*mE~~ zMf-ZY`Yl^U;*7&|(OXisrP$8KW_;u<|<`VAe9OL4Y`?0BSmEMW>AIuFZAYCu;fSa6aUa)qfA{l2UcF(yqfvo?Ci&T} z$k%DnAAp>TpShEpZ1C0q9-&QUIB|3S#t8%Oe@6@d$Vpnu0a{{`fR>oew2R$IA98lR z%Sm3$O_|;7iq5=4+1;0)w^bC~R9<>`&z{<mwiJP$=Uh z@eY^QU^NSv%at!I0iRLDM4nd5crK^mW8-h}q@E_vU8xDH)yGP?VQt=A2X$ZPb8B99 z=^ATjwW)FvFT<-{#SZLx3#M? z7#18fNkcU|U4yW!_VUnXY?mx&KG7xW&3Q zTvWeZ|GxEsYc2SujmJ1^LANASNd$ zUsGt&ox^=~{leGZH@p(QkTc301j<4RXmS^N^Rapf-PmjIW|6Nx)j`K1@vBp(*VgjrS*aM58@-xjq$qFEr0$S(n~( z>J=JCb0S=;D%a^_s($_0i;TKgnIqwR|8)*-h3#<({XMN_st1~Lrsob)r%++6m(y(Z zS^6yB{u|jnP{jjCe|%sqZ4HdTo*{^0YNgNhM3^OtFoPob>bR4cGL{E!?!>z_YS!P@ zM1933#2weM_k$<~;55MKQ94El7haeLF7dQH3YNsi+akXntYC>y>>ME!c<`{mGqsL0 zR_8JH#x|*HbW)j3he6lMosuS57LkfTNE=@@ew_!j7ty8=EWJPNMFhTMF~8!&$sLkU z`2J0J`zzQ2@4pMEM1FS#ZT{X8CvP2Zft~XYP4Yk7WVcSTo6@PRG|0^yDj>jl8!&P| zM_xu|YZPQ;6l7%;+mX?;TuCBhJp^>q%shJtp+}y&- z3jeR*?cbI6{?sIUdj)uVg?f2LdU?ipdBl5pBzd`~c)6!}xo3F0=lOUP_;{B2dG7P~ zq6d1n1bKG``&HCt+1&-x-|Z4 z5C$;$Cl3GY@6ApAn3wVn=-8lSKBMk_P>^@0h%!`KaJ9Uo>py0oe;?i|yVEhG*?en4}QcxcVgf??atyi{mcOJV%R$nKr7S24QLSc!5T}<5k^;&g` zzl`RGW&+t{kJ4^jUq6+GYd}AyxtzGgBbw~JTWKc-#?9Xr?A9W1bmEL2o9WJIsR0gp zFmy+<5|&B6Ox*B72}@fJ@N8R;?dZ4=Jx!8e4xNkq9BRqW%dO@AHJ&s>(tUnY#q&N0 zF`_QM&XN5ve334gT%*gDsTk50sViEq_&tJoGZmg`>OCDAOQvbk2XCZ5_n|@MV^BY` z=!2(Vn*4WH`z-v(2K{>SBm8OempSy-33ogNF0a0UUw#I;-g7pXqVQSJc+a}@;3uYh znOQB+DZo8GSx8G*%D*6qlM2NX@<2)a=ENn(ghy^L(j*;^VWxTHBFv!zFh2kEF?KI2 zo4zcuS5^m$M9Nua{P^rjvvBh2+y4%Cn1;(X~($;UEP2v2!)qk<%X1>2Bt5fqjY1 zg~!6ug7W$h2M!%L?rZkmmY1!mO?R5USS&JQ{=VEz;;8tU!d^?4=>fT89Ap9=$`;lt zd7Pv5;`1ZyHMXy?741Uz%GW_$wu>CwvTqXT;H%bA1x`<(vh3Gz`=pO4mk}&@EY=8B zkta0`B00^jNWmpy*68L|I}*EInJLgo!xz$9I23pPBfIf`)Eb zB%sYuUH5D{=M5oZg-vU4i3s6=`RuZFdI46^X^p}Otz;g|RcXjjkx-Nbl)O@x%T~|OWn#CbBCt!pb>fUzg&mFJ<(2Ydc9SiX;(sj@^2IZP_tTmS^oKqVzZH(d zj9X@4qH(p(1*jYBns}a&vQC)T__X*3JRIJrdPg?i)^@oo^>qA=8B$8O#{z6s75Fy- z{s~8d^LMdG+bnZ~!BU6=)_r4>tjI4Ee_wwT=$T3n=j%EQTSU645uJdrS2_q+Vd+R= zqfs4mm-`pQ5O6IUE(Zr^lJLZG56p-M8Dl^}<$Y#|5}1#@8r?Pu3*0#J23l~q|pE(7`}RaI3D4UH`cl%b)av9U3rg8DxS zT?WKZ|68lAuWwj@e?m||R*-*bSkQs6z~-=k(-DCeh#}XB!9&F0QDQJ7I(RZVcq%6N zNlY*^KJ-Om#GB-(4=KdYDZjUxrp0_uk6i~`f{_bl6H4fa?espZ3Wbp;=;z#lKS%U zn*WbWPX8y-xf;B3GPR8ZX2RUun@VKqUO_JFwQ)=@D=P>jzP6W+3*;z5skZuNbPi%G z*;PuaHTq<49Tc!94=AGY$S7pSdk3DrzUzlnDtVLXL6+_4%mhLlaYFhqSdcGyFvZM4^BiVm0q%;~c#y?RT70-`z4TMhl{3V* z=)>gwwX<6HbLSh*&bNF2$ShVhRybyFusw{-8<-}UeB#E7Dco1*Nxxk14mUCx%%<-g zuX*l1-4eaz!NjVHh12qc1o_>Q#E{kjMam><4Q#ZyrZ!(eVot=1*2|RenjLK6^`7JE zYOpo(b`xXeZFxX0g>(zaSm_PDKv@Qnx}H^OW!eyOBb_h0uzlcxSmcD4H_7f`k7NPw z2fe9&UJHxb{{kCPGkB;fCRJA6M#K16O<0OiOEtLdjb+3U4<&(vbdAqnr?cek6r~yx zGHGI*Q4isZ*tc(FcsXwjJ~-Y4J;oGqIn3MYo~JQ-VK21CUun^LU2@-mPs@H}H5t;u z+w-!Kg=`?V|KeLalnpZ3{k0i4OcZ44b0RXljXrOe2Y%%&e=LnLTlcy^F%N>{GDtx2 zG)dVUY>H6Sn1_l)RySBQy7e)g+mS5$1CX&Jn!{o-6WDgpJ=4~Dq4-hUaBtWYL%!o< zi8qQ9G9Cn%NN222u7|k56WUcIx+v&mf49TtRE2MG|`#lAM3C{r#ug`M*Azo z_#!^Ea;95pFaz;3X;(;iWTr*M8Kl9fK(%u_XK45l+vhXDwf=G7dpow7WeX8#KTiQ? z+=EB%$lxo^muAvvWBo{@38si0H|ZdSI{gEN(4~*XivaKna z{HNj|#dJi3r=jL@V2WEKjw^|!K)Z#+WxA^aJSw4p+CGIt#(VaQ^esarm@I`Mpz0(pAhwT zUGe6A`aAi%1)qRUX-lfKqNFo}Qjw|C)g|EG#xWG&v%S z92vGJD(nC;tdSVnN(}9Y4m}qgdMPIKT6D-jY}k#su-oxrn<Elnu)wmR=OKFjt-zZwZ7lT9xua;~2~8=G0vNbw8F292kz0Rs#&Q z%LB!Q{9*<+d5m6c9lwKV=#8_p1ss~O=xQ%b9E3|TOGyA>-fvCTI=a3MeU6BO3t>Zj zy;m%60y~}eIRp1oSftNI-m(@_%fpkdVR*Xjt`;8>k6zQx@7x3Vmq4uWoNs%;aBid_ z;);gQTP8==K75(Ts$}2+q0~#p3-`crUKo|L=WG0r0W|GU5A}>pYszrx9j_Dzd)Y={zDzTxb3WwW6`iE)I<9Z zlRJ-)g=Ia3pxo@MzSbz`mMRh~MW4YY!?I$@r)`6wWlHeQdE{=$bT{%PE;Lw+8euUZ zr5rhsDJtm3GE6disdE^OUKV|ksww_y|9vIrad+@oS11on604s(oPKV0-NQy)G3ciSy+DQ0!GaB z@nwrm!%9odC+<5cpGj1ZbQhthgr|mA-y7hZ9@&8 z?7U+qh+|7D54-BDt1s*M1+ro{6d#Hh~pTz{5$%%*K@YiOeeye#{er%bzAdXODddJPN)3p<|F^;lQSduR=T9 zg;S>22=86_A@uy5A3OPSZhpQ5am5E~lqkZZT^>gi4jPbYSVm6Dz3nD)w;g2+{V<%v zQRUs}<T!)>8>;MA8)o zX#a$(&iGn`NN77U)CA4EVapiC#5BbDT9(%?LKLx1b2Vio3NyV(3>+__y+xHJoU=J$ z!ipE*X~PDK*3k;*Y(LN8RFzNe*&d%a9v4PSZB*wV!)JejnEY+jo*|KMPPq|#C0O)SauK|wXO{;IfeN0(1zGp#^6g_`&FI5j=a@vIFpQ|Kn#K$z?m zYvN-Fodwgit##22tgtmF`W6bzc-3BtqHS9mLrOINHZJIixx}ke%&|ob8VR zmK_)S(=PV42kq-!9WEZiwYWK6b$9CYbiU(#aL~tf)c4T1-=Rr=_nANspj_a2nD+`$ z3mESEF~V;x((iMW|CeaMpcC*dCUE1Aa=_ppd;Nf0zk76&_e+=myvqK~J@(gmcK0v~ z@WA_2@P6s?Mn>${jM&eF_z%QgE$||c3zb8d$j=%q%I`c{(s<%T^?wo?|F;twQJKQ* zvTiGjo;{f`AQ8$%sfM1J2d))Kpz1aR(dt3#kSHUgd}#;v^+@k*Ms`MeD&9!SOC*R9 z1kUK3j-DiLfD0M7>3RP`3>0|e?aO*O;NFi#Isk1N;Tdf<^)+YS}R%676nkYRtPA3GVd0@h$ zr)8vGR*`X(xTg#z}CUry*?Y6@aj1Djv!A7SA_J;Adi-sHk&W@h}k$x=mj&AOjjFUl+6VNxF3qwjoLIR zv(K)N!Ov!ynj#`2K|HbZ4rwCXM%UBN6lY&Y?GU7c!*a)TT`*x4<+LavBtg|gQBs91 zrqwR1(yx!_=96C{4eLsl{KAl%7b-QG+s=Wv4^7z#!||}rHyGYRSqexh2tQ!h_60>( zdEH`)Vo$%=HE<#KT}dyv-v;wKs8NUwd?b@XZPdoerb%^K7-t6tygEndpigaR(lNtowiypCK+J?($zx&8w3V?mY$>HFr+8BzzI}0BDy=J% zKV==|!Y2*cmYH9r)1)waJ}t>{^sOIHY#W*Y5o&2`kaYah+8T0U zMYDbs@?#cE{Uj++D)yj-tsb5j_cOvkGKmrhZzVw1`t%QVcoLI8bH2k?6F}u2jJg|l z&d7IZ`Ln?%F;_0Zf6|h3O7cX^g6s94>tPUbEkG!1*^LJ)Sdy@~x0yU0HB_r#9watH zQ;oax?aML^`@#@x#}w9IW{0M?^DOR^A}Tyol5i_!rBhn%V}`CB_A(!RuuY_9Y>O%k z7`7DJi6KtBvw_FT4AF?g1QjhB5ZsCPO>|U_7Aeuuuy-L@zRke01*0e&f18~A@0e)! zvHLf?-hKTCX79cI6}SQT{+&VoMI!$?)c&~*|3NA5C0&TZ;bMCu4u=DPF7a!2V=lyi zE3LGogp8DwtPH>>%PJf=proRr3Q)=azMB@Hj{#hEu=jFw2z0_lIy)w~IHtSc$gWO# zhn$NKIhVRQ16hnU9xfL=4qo5%^`_xRVe9q&Ds* zDklTX@-DgjM{VCf8EXGp-uIh$DkFM(FS~KCvoG!|DPa|G)8=N(6l9GS=XaG-TL0sw zU0YlG^y$;*&!5-V*S~!E^7ZT2Z{NOcY;1i0{(W+l34E@klyU(xgPn%MfMk*~Iy{R#b|B6SXd_C)+5Ve8JvOMv2x;IN??uEmv zyTuuPKkWP1`tDYBlb^f(?8srQ)J|HOVVD|ZbsEd3|MHmQl_@=2i3G>f7Kt%KwVEB z=$Ej%(PC`%>Q!>z5Ugw=F7!(2i)C$2&2MK6G7{PPSiiZGt5}^Pm2(6 zC8y^C0|_OX!?@xrB+m*vzl-!YmMbkQG1iZr0DBcr5wi{_*q2JCNqIY$aAovu+!yxb z+u7pILXD~LX_Fi8jOBynC=6V(xf}Pq<5^Atkq(iFvTHcH;HduBE<5N}+9NddaU({BQ9R;h}W1Ct(pZYgPFNy2hY5 zB4py^_~kq~tsSu10|ocqXnjE2R6!)`_A)9@2TIDo9w^(U z%08keo{H)B`j#Sl%eR0cI&5=dt&>DJLRr+asKrgn;#04r=DkA zzAbn^X^NeYmJFit)mp7Y(jEPAIP*!#nX>O~F|VvOSO~p`FWgYQ|0dz3xRH`#Jbcuh zy3H+OJ1+l9irlx+%MQ09mSjkUn|%#(hco*sub6*aJARZo>0S>Dx%Y;oj#b?4qaYx&7Cv2q)P_K)tb8~F)aBlT->F{yw_H_mN z`G)=7?ge>Hhj`6~c|VKreIDh%5)<%Y@4EX9u+0Jh3>an;Lw9R*fhL2L{q};t###JY ziDQ1G$9&)2hvPmG;@=Y!R!B+DGgF>srBCJ(hYPZA78f+__VE2DwDG@3kSxBPg)KQV zz``SoHrvNwPP@^1wln7Zn&A)Iy*^9YRH*q>QF#&fdiabA@!c;@R~V#jfY|#Su+@ec zUsr0L4=|NW@Ze>yZV-(?%oZ!F-^J?3YZ_fxg|^N}6_txh9nb&yt)?dv#Nb*tF)2lH zY&u96{4?h&1*sq21-DcFDv`s$Ko5y;F<})!I==TfE8rYHhfG;cWSe;8oegECVHBo9 z6;@WHZBx%WNU>Dvh9z*jj%~D5X_(21j7G+PrW!jiaoBCkZ>a6v;P>0!z!|75s2y#M{mQJ>}cp1g{?csQCnYwYYY<~5{`{g{|I}+ zD(ef|u}_5v_zx|brsQz8f(6XV#vjo!&G;Xp<%sM$?IPaZOy-M&961I=8Xl+E3o5Nt zYFHmxnDAN?uPz$D4c48@6iIkxOkSHfFYHMP!qTg$L@w2EXGLPNUFbx?tRn2b%g4Ct z&4Y}^OIu7&XO!09QU2i%2{qeiJlbdkhg;0}l_ z?dn88rrTL0`smrO+p~6$`B3Ha@-*|mC-9d3X(xdVgj4@hys^%hC42Y z#Xd4W9ZGpEnFEWPzbJq^j$(M4yY|WTqYb5+{#IvmjXL9c*Ai{i_|=yO@7?XbQ|@ozHz6n=FOc#@gLx^8U5A-ozld}oa^&7_e2fkhNyV)SJktsBcbFI zKMOTmcfw>$154ccCCy6ea1^-vbG$Kn^~7ip#dT77@qROo*l}!F9yDATkKwIntnh=+ z#XL1!e{R5%icCtmc=r%J1H0~bV`LV$FBMrOvYf%Hng)wIPM5R6D!+DFQJ=Aj?$8O% zlR+#BxKOH-pxoOdgcdlH+id-4cKKQCS^;zW!&Z9UvfJXwLax=tJLq@}{mnJ_^&n*W z179_E50enjkgk4VyeNxON%X=IGY51ZW^H^`f|~ko+_Aq$Oa1j0{O?$Y_V?sJm*U-= zMfgR_rvbck@mg*iKg9CQwJJ?Q6l$m`#6$A$#QgoUO@gylwsQ(_{@V0yd`d|+6PHyInysT>lIW33tE*2G@rxe%xrBM|m}(jke639dF!uX|gK~?tp(X+PpIHXsTlMP%D!y;VEri^!=8nXjLEHEWWp=ZA2!p4Z((x3?2 zy5%mVTfeU7f+UVh%?YZyNs-buJOb-b(wvK8k!gC$V%hYMHO^YdS)oMorlUGM<2^k9 z$G_@{6fIBhy!3NQy<#ST`bExalv(U>y;ffem5 z{vy`WAipy=oIqY8;oEG>hR3;Y9D!(Wt%V3e`N$WpfZ2%hk))wTk^|l0{P!rO(7RH? zs@bmZ+c}2um*BDORHV+O)*B}nKR#R}K|H+UyBoi5$7BkJLsh`gB=g9yE>X_44}uDM z2VvpVJig>MmwPpo=#vP?H4mGzQ-0`+9+KEABA;{DPT9ISUhbs63kwoSoI6+U&v+%p z=(ZxJO$6NeVfO8fD6>9Jw8(Yj;7F6*rn0dLPhn0&%7iv- z-B${@30tPrGEF;uqw&GZ_`}uZbaXlg5*wNx&Tc>D9XkZ07t#r);kfW~Vz8S-f-H9> zoRyyjY^(ROj5AfN?tnj4Mmd&VMeo%Nk()R!JD0dAKF(mUU^mE#)~ei~FDMpT&(I!; zL*JLtXZTDXFEGscE<>j5I|{+1OQAoUaANDul^osBJ38Fwjt{4(M<|rON%l{R?v<^l z?zfDCHJpH-<=x0Tr`oVUHxyxLxAyjE#FQa|OgL6C?JdL+)+?ueyYt#20T2C54cj6g z{QLxP?7l)&!6V-ess0Y-Y+!*In9WrH_nxW~0(dERGE_f{8y%FCuk6 zxY|eNEUAvSXuV{mJgB6Ym&YV!&jkcHg1GrFu>J6`H&|X+PJQQXll(x8wCyMHcdBCm z8h=N}zg~C$WrN)Z#owTD7axD;jDgMemjZd8HvXMF-sg;eTXFy3jQ0=0K>q;183TPk zdo2Wjj%wfQ^ScsRLR?%zQc@C7A_Gy3^72ZG2eed_bv4wH+FC}sIv9OD6QrSuk&&sH znc08U)8pdo?(76Cu3^BX7iX6Uuh`Le0yt(gUvAqn{u2@rK4@F z6ZX7|U8Adgn;Y(ihf}xr!4W^V$smuXVcsud0zLuhP6;93cS+*i9d(x{-ld8G`SE@( z@~^Y)?=Qd6!+SnkAk+y+bONrpUkGt)#P~O)#OLIc+3fW3T++U$=SoRY{n3&$$BtF~ zr#k-su)DT9Q!RWPyLKM{Nm=&!4b4A77;o0}kdaLMO1KSYuevT4aX0MLQ0v+5EGA3Q zb}a`u3Ca(0iXHw8A7t4H{zRto!jDv$33O5gw@BNahruA~WuFG_)$v*fD&;u_qd+h< zN_+m*>H?U90!bnH=-Wrt_Gi&rt`9?VYxzvGHv)R-dNYL7lq&fXnzHZ2sW1IJk6yHC zq;Y?$gaUB4J?pu5pxcQ)@61z2PeKqXS6;T5^Q0fh?R@9UjInmkorzJ&o~Ct_+&1-z zrJKZ*f4a$(0HWe1ea+rJmxAIj17yFJJHu{B$KnhfI z;LDP+&?e-WyOzZlHye-_p|*sl119bw^lq7(<}vD^S1u&7+K9<&egU08iy%}S=S!mR z;|rls_c76wC^^#U*P2rpmD&-eLh(1*Kr93<+}TRr*HmPo_+?^_koUVt+R#mHvlXNo zq+~@nWxOOC{k>A{b(;5Ri>XN3a!WRgY%H`p`!qL>EV!L2NHb&@M78Eimbey-g~e~h z3>l`jc{QT0zmdhlVn*|a45Qyw3mrOgEx8vKDM%VZq;^r0OKDmh>sn|S?A~APrY{M; z&PECuhsC%szT-!Z=7v`u{h)-oc>5DTJQUZ;QEm>rp)wJ^$rgXRY@ zs)6}99-EdT`L01Rf;;k0a)jKhd}*TE`3h)Z8&GjDj054+dPzUGBw9EEw*IV#`GNpO zfUpG}5)8m$XdQSO<*+=_kaamh3`|X>6Sf-ojyYg?V(oG;6>5BZd;93yIvq$07@iBK z$rbXUyoe6xKhGxD5ee~v<u(3R`4OY3LQ0U!X%!p<+7Ok1`OV%a1@n^hR)6 z-t1~Ll>e|Obdk{*C(37!23S&{OjlMfc*=t|8nQuh3UQW z0#OkWF%c1Q5fKRy5lOg+6dW!Mhsz+~atMSx0-+#^I3OmfC?={TE(Q$H7NoM*IuB$& zsmn@h$jNFc$ZIPe&{a{=Q&llgS2NVoKmF4^v#fl#%Q#OF=iL9|4+O4@OUpT zFK_SNZd^aV@BqKm0KeQo-?BiT^MT&2LEfFg-rXTSfPQ%*D&TQ+;Ir7E7jYqPlVWH?p} z$#ImZg(FnX+f{NZTogYUSDnYonGzg%vII1IMd+~b&yBWsJ?HU^50)2Tjr|28pJtB* zdR_2f5wXHpn~AP=-Q?zUK9&lTe$fzjf;5dJy|c;W9%tdsC1u)l(C9vYm+ZRmqWh3~ zV0!2k(fqsk??pv{C(j~JUKTrErGO>Bnv*2jV-VIxIkd#Pp23RjT0k^XDY^CR3*3w8OvL8fOh{9G4^ z-XgBh9^z(Z{;A$XSjm8!|q*pgedpd{w^7B+@dB`DYiD`;CtC|@H|R#qrB^s z@Qc^8)qebM&SXWa=)f|=lj*DK#OSy=Y%Pio3ZHZO%8NHWVUbT$Vt!S6<|KMP{$=_0 zk&>%Zg_#y#-qf_5(;Po>RpVgY5yr=TN0X@^TmVuumM&DKUrb(+E2cY8_9_8p*Kw?d zA+e#}YfM<{>A9RLElSDUh!p841Jw;U6vuZhAX{q`hGB&dtRIN6xDarrNSb$TKq!(4 zVFVfok~re!;6G!;pQ3itRKQ?WhwX?OcigcYy)s0Oh~VcMQ`mtS?rMLAQ|Ej5(x|+L z5QKF^4x7x(!@6X)m4!?;0Dw=k20mrWMIdQwP5E{DLXSW+TF0*lCs!+jSSDV;G52#| z%Rp7|0-44(aHRz-lD4uI%__@uoWy9<&NgI-q@6S6*F+lkKm!shqv3>^nt^RrHQuJH zj2c@MdUy_RPyBc|6Wb^34lmoFFpwV_3y-by0>P%8mU~!H)f3<+G<@kmEiMT00V7RC z91u=3V_8Rd^+pZA^xqNCL&~qVZJ}wbUIYBeoGj}|;*|0Y=FAt7*#b@1=i=chfLxhB zfY%GdYV=g8kHw^dm@SyFvbcrJS)HKgH-w+)WsO)_%vrs6Sr8(!Uf`Z17^frz*{Wd# z4HR~mIKFzs|B%`%@ z`5tyW*W8c$copUV>2MaxxpAH0)`hi++<5&llU{O>TozXR!C_uqd( z(O)v>e_nh6rg&c|wb%RuFvTK(9tv1&fqSijgqRA@rzb4|NSF;|rO-fo9#Ea9AY*Yr z)@pC856J#8ihwC-cWe~pZIpmfuu)d9Q31jdm2A~iuo`L(S{jbpn$EgfE_yl#4fGBo z4P4MjCk)!f#MsWv)Xu`f&f3b(*7n~GGWPWJ#Q%n(K*Rh$iuHn`LW5JoL$f2pilf5I zVj^ndBJ1NK+u|c`$487Lgij@eKS>B%ObB}sAG#7B`Yt}?LtMyeT*#-mkk9cU>+vC9 z<3qkBgl;5;Z6t*QuG{Y^k>69JfY7LKf4GC;X^|x@WUp>gJF%DFj48y>!eRYJt2nUgVzL!XNSW)zb__ z9&Y(+t~-kE)QpPUF-O$_W*wfgCuJ26BmHuvqpv!2XhK0BN`G;e2XB$X%i zOMX0iLdU;c)$};|gY$J-_0ns(Ewmoh{c)M~2a_ZqnGGl2RzV(yMHYy6ZQpZ?OibzL zxL3khp>Nk3_*vJw&QwczG4Z-kZLi2m68RN}c!dUs-L3Zt9)b1l3sopcty49TbIl1B znXBL|M3#+n#<|JoIUUX5RdMVIdecI7JoGLr5s&)L=8KMFZE$%;qHRf_fy|9boiUze znDWMOz|K7@DvwJ*07>gFi5&p(=aNvRU<0dnYG3(RoiNE1g)B>>W!T{;?Pj5 zjkUo#tG4FA6!0+Bpa?PcjVYsy8~=(6O?fj~kO--55H`(C#xiV^X4j<~GN+)q?6U2% zh&*KZ2nL=BL+8S+mK)^UZQ1IkFOxa#&EOH_SEb1!W87$n-~p>2whVJZ5?ELY z(^4oReG1-mo#!@H4*b>jMD}qNnp{CU>B_D?k;m*RIj~MyCu|Z88?osMd5hTBd1BTa zoByHbt$f>n$H+W^Ba|!XPAn7ZGLhZD6bn^Z_PTT>vu}-5@4*s`Wei;{SQW9lNF`0+ zFVY@oj5c%2h40YtS6iviy*LQ9*@}urWZv|;aMG4dVY0aV>(k5di1x1Ld`)^8^=WoK zFVkkow;J-8?!5F>D~{2F6sW*y%OPR2YN1*NtxLD4wrAK&m`vf1gMWYp49U4?=lPfG z>|v+qZE{5pM(966OLS$oKj8?HRqe@KwtGFOzZmv?cIi_oi7lEc{nE9>HX@mc>oexN zgNJ3M)=F&0jqe>h3yUT&g}!tTBk{z#>sCDLfjVp%M-?;?nL{;wj7m4FNj9u;{^&Kh z&>f^%vDY;cdji$AErKTMK(1goyrqxLkk_lPN-h#)|Nfa}T6f86OLL!Km&LR1E(EYZ@Q zO~{R6o1Zl-8u%x4I@RqGRelH=7>T`TfnNGHf+d#FEAU2xW>EUxp&e{DqYHeHt9}98 zZApw&`d^xF{{>9{InZLaApqcyd3pKwXTKx>=+@hxy|w_LFkp8874n`Cc^_DRS0V3m z$a@4bAdvz{TQ^!@Hy-| z_PAYExra+mxKnSndO0WeK#Yf*7x2G*nukwNZ?)JT4C9P@L(Y2upP@=3OfF0J(a+{^{)m!4jbdd$E49nmMc=|`amN zh-A2_O^^tD<**r?aawZ)O5H7LATyAx+|R@r?29(1v!g6{*b!=;rTe(q86`;c@Hm6j zSbUARSw1*tb5%_bJ%HR}z)a=S-hvzR!bxjnM)b8q90Ow{PHitzv^-dFZ=OkvOA2oG{^v zV+j@s23?Ju&%|3H>d)l=RL9n6<4YuXjok8OP{C}=PYe~-VFLw$c(&#GZ9X>hacZHu zW)de}uWW!zv1^12BG;!x$JePrefBbMlhRrAjtlBtIvz<3HPN=mqnRA_3g~&&a&;84 zX&kj_kFy3N`mXc7{`!bot|Bt)n#&a7gRw;Ei%E!cx<&8JRj$_#P{q{^Jhw?=fjk7w z6-Z)qN_|6n2i)@g1ij2C*7&#|2-@NRX~ND`91qvSLW#!4QBYg)k!PIBxffyic8fEv zygPb<#w-VHIbRymOl{h-xlFmK@*42!ML4KgDZ}`KkP~kQD?xO4vr_#XUXD>GMzp; z_cu;nTDWW*%-Yt&*#T|pXEQNq?3pXy3Dsn4Yadp9L{M|Sej zuyrRvn(NuAmweM$A-;f(oGkhY=KI_Z_IF>L+5|V@d%3*u&KDR>%m-bdCp(@cTFT)` zTx|q8lahYvYp$LQ23Ypjc7Ey>Q7GnQJgop`fy#wALaT->=jvibNLClp-+aXZr2t`q z*lq~x5PDfWKzWWhY-qAdz5YE*Q*{e(X*JH%x<$@PVX8L=8z_~rYmsxs`SLuEo3*gZ zyv;Efg)=H|P%(M;r=%+nLu6mE3!~X&?JGnX&&T(ID=<09K||19=>eG!MY?565SOkQ z6U_$!;y#~_IR`?H=xjD?7EO-a49z;v5=fv~VKj%y;Cs#xY<!6y=(UzZXLN ze%}4H{Qd=${}D6wYrWkC=DlZMto*l!-F-Xn?_m7v!n^;nf8YJ<&p!{oySnE6`|e)G zloW8-m6iQRz?7z@CXg{RZqAh+E_I#<8}P2pK5p%P9$kU>kzlX!V6UkVug5^NRH*lIn9oX> z&l|wP8{zvga@WH9Y1hTOZ{!8My#8Nf0=~rtZo~y`#s>j)K6~xByA?jW?YMvR;)d^< zgwp=##r;RP<1a4xpR<*Jvj@d~BgTKuOa%J&UT3E*R^mFE%wb{eR!wqaD34vsOIF zEUW{XZ{Kh3VVoa|>IG8{_zsnt$Iut?DI4f)skVF)=`U3BVZYcy3pt?@{sG31smIo! z2;0ku-bE2=@Xi53*_!=12eLk)uA3G@5j8I0HqNhGfgzA-FSn#~+h`}x+4|VLQ}(wO zLFKfW)M66e)*5Bed?B9cCDLR<4~&}0eXcp7mcb%3>zdFwcggcdVP5^hlhgzoh73_Ia z&N5}Vl{ROx+x&tQK+2t+E(w1ecGgTNh)Q`P7LHRIkJ-UddAb@@AcnkS=KASj!~Iee zh84g85T-o6+RH}{JUfRq$PI)+UQf>)WbxlBsTL*1w$KKsY&%qk@{}pn8S4@dLx#6x zmP~j?=#pTTW7Zq21nxNsodC_m)gcjgjJTii@=r&b(NSeu~9ByxuWIM3g zkWX3y1{A;YuGOV~ywhO&7&(>IYOr*{NZOe${r zn?E$XJaT@Z$x67Vw`ADK7hRuAQd;IolNY6&sdNfqJDv-b!Ls_!IL{)y@(U&?V~&&n z)=2So`nnGu;%|{$Oxd(Bl05p6q5nEX(L@#d1_|bjYZ-Lgfp}+EgIRGaH8j+xdbzWd zl1}gpIk~}Z(tJsw<(rA>&*9$AONAxXu=tXi34$aZVOQ+C=&H4Q&q+Lc&ki&b;-xZ3b zttUEPQ+qke-znTXs`5d5J}lD}8>Trrm-Jlc)sMs~b=(5ab7!9e$pf_0&EJ-Yr(h{p zHPr+(PzPoh5=-#Us;N;dW|6+k8MFt8*GzwWcxzZErbxYdT;TL&26lD~@+8RV{(O(= z3A1rJQs=7v0t-Gv=?VA!gGu<}>(EmUw^iqs%p?x*=v{_?>=SJJ4NjFPPS<&QrFWG{BjBkFLSHg<6uQAOls`c0|GrTHF zP?=WF$Q(&4G-I`de01YjmsI#Nv9^?k=5IvI0ABwUseujp_u0Gj?(fn2tMo1*{i~gR z@4EYIcm6|)wMR|wgZ4f$?-tbm;WB~)nydW{8u01L{82Fqh ztGcUWcG{cWmHE%gJ(t~;`Onc*a{)%{&)r!^%UM_3Sx?7FU)RY%4=CPqL>l7INSqNG zXN++GOho2p4wjaHkH`UwbpRe54)@o@qLqZHowkE!>6 zJ8YvnQ_8gq8znkWzQ@cA#hGSN5VTuSAi&08=kxl^F^% z%BLRul!}IP#k2Y}k?MUn2lz0b656BBEjh}#STO)F^?om=)Mn(j20QxZ!fKEi+s!hx z^d=1F0y(~#MQ0yIqG>K~`(RF7s_iUnwH1(5b;4qPe4^u3CxG}mlczs8T`GS2 z=4UW?jE9%3+|Y~~C|c?$eChpO){KQ8nHKq>S=o=hm=aqMD=1olz zE8tS;sV@0E_{RMbak=n9%TG{&a>^DW*NMDJG~v~0C-j8zHLa4^eCpUBp-Bw2gM7+L zyps%wHmnKZR@zllK1`sg3mQeWanilD9AN|v%v$YY^jYXObxA2B_L)3k?(2z3={lDS z&!BWau!rm6slY}<#6he-XaZfVLam%F*vtp0iGrl*92nSn;gUyv$;w6y{Py2%p{%oO zClQz>L^fkkFpgN3h*s)`%GL+jLA`Dwgy0zqUfIlw#4f5TZxuWWlJ2pL<_%wH2lJOr z%fNCh_?zp?xC8lLBNgR|gGZxFmAefC9AkSbw+s2<0R3JhOMxOO%Jgi4kT&8u^MR4B z%h&vIG+_BuJOSA&jH9_&mE4JH?DvR$*y;_%p-xJqZe9RgbJdNV*+o^Rcg3) z-(qpbk?3fS-R;8XtBer9d;zg&h8OWSgCN_sEV`-g>TINc%~)XT z>1RW|oykwMn^o?1BZ2W1VPnxeb@kgQ-H=jElvF5o{9@?+)U{{Nqpe`~FEvh@FP7Xsw&k`oi{XBe}?zz+g2ou6@9#$ zFpp;!e|w7-IR5tfWa#T$QT%zct%(z0Ctvd_6hsZss=nP=S8Htg+IiRE;Hyq9RKqPK zEB@n$dmRGJO^wcCp1Pyg{S07hTwzL`U%C1e4nU6H*dc&lisjOgr5Zof7)OOWoO-Wh zukr2Y^T?$mT^mp1^~xZZkYyROS?e!3y#kidB;nQD&?*sGM8! z&h4j|=!!h7t1S_3rD$G${)iMc6}M&X<4^9z=@0w2K{lkS&q7ryqJ}50+F1vn;9h!X zP0K2cX;g0DQRxGw@qCdu&&d<#69=fO%&TeqmnUA?WS?UfoS>Y6LjD}ROUnu@Bx~%emr;`-ebES$@K zDN)kj-#;KAATTg6=+C}Az*iI!oE#EF2=dPj@GT1PIT7G}CeXVn*rz?zw?8rfkY+uK z3V0eFxVWp%3SLPF{Qz*^DG^`y;w1M%C8Gg5(bu$?we*9Mae;^&A-lbNagS%mi7 ztor=iQ-uY`ii(Pgi;Mpg(ENYva-6B?b~AVFet$j}gHIPeu^C9%;8hKNI@EGzuox~^ zD~%E*53`D>1u6}Tf?;q?Z!DAfm2+dKv|@xYQMDKdGdl??wAl@=)K7TBxmIH|U{#4d zV^KM)JOE`!<^&6MX4;%KNbg$em;{-zGz3mIjD26~&u168W`Wh_33L+i{JBNFUVK?Z z&m?=u&9c3Du~K{~cuZDPnxcpQ20h8NVtZQ0I#zIgw7j8!1Hm70wGrV5kxHVbJ}F=S zQN$oIKeo#H)XRLf7=cD6GJ zWwrlK7A?wq9q07oVV(SuTZ_U@4%-NjVQ$ ztXJ2>;c1)*+GD=qu{|`-+ygI!ZC$f5<&jP}_YyeE6y8f?dC0Xm?p?KC1z~`23?(fn zNt>1Obq(M&h1a_?PceJth?IWs_Bca$AcLyR;OC}gv$21e!=dgyyO=}1r;#a`h6^@L z***vTPCB+TegVZ$8O{w5B1iZ`D2l0sY9^1Cuckr)KXoK3vmSEy!fv{1^p%Z>ZuCHC zCcby$uf8Cd5{_xxDdc2u%TP0P#B0z7Q@gspX}=;<_MUj(&H>fFc)v!kxf@w=!AjAad@YF4*AQSVVh4h#d=D<+fZ>nQS z;&0o$IzGMiVA5^QQxVp6ODjufFO9^rO*}v~&5(_Ss!~*uH(ZNjFOJ4P(cLlX*&fSj z>3k%T-q-zYPOAgviV{y4X!am{o9J60Kf{n7!aJ=6TJYc5j>9OX9vsl5J2`94o{yEA zUxnPV!ZK8z`O*{b@uek)BmPX)!`mQzS$8Ip!UZF?I3~7h?}Pg*-ZM0v&pHd~(Klm{9?=@>jzTw8o;`<^LqZoN!Q*ob>)94mv3#h~XT z=%uSY;_EcIKCWA(3%_G}VFuyi45YvjW^T|L@5)S^RW{sf$o5U0I`uu6!uH3_uK36y zHl9$$L#0OZtPEn8^GmB!8MboXFnyx_sL(?C3?$@G!2S6YGt>_U^B`(+5Op8gK5YL`HX;ddr=9ibC;6%*AT}uC&IfrF zCK^hdPg+KNIAh^@q*3a+cW#fhC)Xtla1-pJeIWu}r zq9pZr|0Vs&2U(eSXi*XYFdNstl9?df{o~^T913O%gk+PV`cU`aL9jiCd9GNIeUOxk8zF=l* z@!-hG^*U+m3l`2J4~}=PpH(`1!79LF^5pFLIjyk^HVGq>Rh#SQk<1O)9E+)1{x9`r z)(!S2MyAf`e7S%<+<-f8G2P($rNL#a!Rh+Q^rhr4jde4@3vs_tp(Tc!LYQz z-3pO#ZSvSkI0O5?luC6|sZpPY{`oL5F|o3;0=Dg6I(Ois>G$uWy<5a?r0Bk49pEy4 zeINbpC(`dHhF{?+q6o3Q@~FM$C{ZbZ;t&^;16U5Aoe>yG3B}(=SxQm`sBDy$0!B?n zdT(S@Wo1-kWtD-ElU0(FQv?REq3sr8D60J4h+$x005oC%XA9t90f^fHZM%)lA9|Y)pTpJnE5FOeY72FXU))f~%kPtDN5b+=}@=;Rc zTyo@Ma@4DosCOxmpMa01WI$*a4oC?8aGwETqCiy2pR=?3vL7${i{*&=nGOul=@`A4 z9}m5JlhdZN(kF5VW4WZEd~#nw&Yi<~oyCP$j}$kT9=Ukp z*tznunu>~w%F4>Bs;bkcPghr0*VNSf^*qtgP&%T@eQV9iCBAiNH3mPP5x@bdvpDvS z1ZMY5uC%-!j$-47C;HxXmIigi(=vLP0)CIn|2fw%R3M0_>jz$4Vg zt*@eR&&Jd4=v%952Q{#^nmn85QtW4#3fZ3bxc3c3H~Vz*8RtajyDl&XW{GnVMf-iQ zY5MK;B(J1yP_jDLQPBV3?mUB~Gn8AB>HyeIk@i063& z$~3+S}o3_Uj$xoPl1r;Y8Rx`%>}aOn2sWo#vK4B^Rt z6~V46{pn^J_+TWvDC*P>&v|F;m6**<5oQ}7QmsIjT3CVeR{gCx8pO0;oDu#(}~fF`mP=-&sjt*=IFTQpi59VR9b4T4wktn#Qg6J)IKt)tkZ zX`@J)sFX3NwpY*5VD|3w=N$+!%F)^9f}bj1bIUE;XHabk6aWb;@mTb0cYD!&d%-bJ zHy;uHN`Iam{gZuje^ye_ihO2eb(sryKvONgYu3U@A0YTcY}_Fts{I`#PRI!@BU)MeWBt%uvbjwfxM2P{T9n2l-aEG zG~o=4-L~&ex_S`BqQ!=|t6HYEAm#Z8aEQDed40ddJNh*)mAV|+ilPvUnAN8_r&Rqd z;0$Km&~LjYjL4KOrC=Yq^||Mg1}NBvTh~IL_Aw@g^2?xwJBvoSZ7M_*Bu#~8(-?8bVBSK77EfAWK zBHbc$W_oHZvd`*0>T7;jDufDQ^GXETd&@&tW^CBPvhUL5zGS%u(14tyjkq8TZ zzb(0MRN?7x9Q=Xxy(dWKt)P5$h1Q4_~M-K!zA-ssR1_{5-Axg3kIZ z%(@f3Vm2=cH^kD_Q^mxEjfTicL?~E0g12s%vWlMDF|bnvb7@SP0RZ`e7%N#M;!l z_C+!MmRhAd@vc559p|_bcY`KBJ|2`CJ28aX80RLU2 z85sx!qM)FFKp>|l*#DX(@SpDQ-v;m> z)AzUC`>%(8woCqH`bbUOg8!PAk(xpO%AXYxxq9V_sHmuzxVSV4P(;cZs46??XrN8> zqb*HRtxQSX*#%a{r4~l7EDYY5=)O17t~AoFGSU5DcH@JELA8}pjg3jIo!Q5~uR1%k z|G3QSZvJ&O+_Y$LuxfU)`QmKbe&=SFo5R38)QH!eaUWNr@7+az4-zf08{~EH$ouG# zH)-GV?-ZTC);~#!I!7cQ7lPgoL2rlnu7^BW2=yBe4fq-s*b^4m75=a-Jg6n&Q6na} z4jcLb8}<$t@iGcq5{=7?jn2TwCjURR>Dkaw`RVhk&rKzbgy&6PQkq-w&27Y=U?`XuY*n0@e~A{%Lh|kT(j&V z>^j9K$tm^xW8WY?CEUJ1*Jx@60n4N$Xa0d=y=Pa_L?l6`Pnpz8Z1rniS!K(qy;73j zTZo47ypQKFs6`nv!)S}zAp0Kb%&zl2Mz1~)yKBfJ=-U*x%O+F#Zx3)72JuZ*lhwoa z$7h{lGepflm7W5 zMu=DSer^e=ZrPrn4;gV#(msf|Oziy`u|om*)osS4d4ur0?I)JS$}P#oMqSsG+=54V zHl&{^H8NPgYeoM#JN(535!do$Wa=Ot|0X&wVq`L)1x$U^QT~0c}J6Us)ZSpG{4<#3eKB$EYJ%( zxuHbgRp}82Ca|EOuiSzjf7XL`;;p#*O(JY5Zq`G<+y{@kc@l%^Yj5Wp2G`z>V?x|4 zxBo0tb}6W`v0~{4Lgmlphu&cy%Q8H#l#4hAX8ktF%WnikKDK(IU>kit6ZV4Pg^(+% zNp+$+G^^#2)4qnQtdTZ8>YzihD;!9tyDvPP1H)<>-W=|?!)RO za*X4r5t@|Rc5nO7&;zmfIeHrJ7nNU=$Z9S}O1YJ;LEt)8K#ZZ zX^^LrUU4Py?Jbqu>=6<**mC#-%~FW8a_LcKhC7D*g&nCw=nQ{i!&~r#gRK_CYeruOgV|&CQ;*KLf;95(`h{2-fyr9IbE)98o_0`u{!Q{7}?B_|h- zVk90{P=@YX(LJsJ1FF=MY&M+xQ%%)4`RR@2 z0AF~Y0iq=z&(gXIgIEWMQG%x5AZm43Dsg#EhC>3SiZGdI0sx%6k(^f7S9D|NnX@c7;hzjhy>O1U2zez~-{U&e~w(Zd!i$ z*=rThRol=%2VBjxUmcxxQ0=J!!%d^zq}!%3H+N@9Bsq8Qf%$U-t)TY=Nm6 z`7?<=59fPl!oGcM`u+L6>Y`%Oe{!sEz>UCOU=Xm3)XVxWXY=2F{%2vUfWTi_N&kqn zSxXWrH0l4KEB`x@`d&#Q`J-#3lzs^bNl8i4m`nO^k&4u1Wo3~_Bq_OHK|w)LQBhf0 znKbzN_r5M^_NDu;P2IoK9gK~P%nbCMZ)gYVsHJGg*Q&{Mt4fckN{^~upZLGJ)TAfX zWhV8Mrf#TA8K_Mes!yA0Pn+w`Sm@1=9!bwhuaI6R{q}~+cM}rtZi=_I^t7>dAT{Dy zTicMXf9s!yyuUV!92`j5h$H}(q<@km{t1&HVX*(xN#?zK_dGp4y}Z1-*rr13y1Me}DggzZLl3_3%Fw6cqI6Z-s<}keD43szV}lNREvJ=KOPdnUa!{ znwpxHmX@BLp7EFd33vh<>G<=xBG ziZ^RjZ`Z2ct$ujFQ1yPQs$#gRqPMbwP+9Tu{ksa%GB8PR-n@GArtIDO{J%$V`0Dzg z`WDO29V$)T;!WM6O+8}GJyOlxNJ5uIOJ`tfM`~+(dCQmTmX=Rnz7X2m+d4YhJ3Bi_ zMvdgsNZyR(%7%wYZtNd3HaRi=b8?b6HAS46o+JJwk*p+!b#-l()M~f6x%unY*7mPo zJKNj;&i6k&I5<8$B!&C`mG1u^`TqYE@K4J4|4;oZ@1L=YJ2DCmVYp)7RZ-X)`&SRo ze;BX7P9rtr*;h?9z!V^hb4_$oNpFV4o&PdkNO^s=f)w?Ed^H?3hkkXrS++1aFS4il zI&#CvN?T34$xtXU9)kSD9$#}gP|DaA&Rxa=tT(&mhmRzG|^I^Sb9uU;T&W!2-<$QaW(;>TtQm zYsdbEn)TQ#!TVi&dI)xQDaZ90u@97`KMB|)LRLr0&V1*vyNmi;4jE>PgsVk#$uUAs zO_9!#?<$^_DtuNwe~n=LeCnfKUre#r*%WqyVr<0emY3(M`t9A=MM*c#|9P0M)E0T= zus-975Ov)Apv-K5Anp;uJTfo%e1l<7k;P4zR-0N1kDzHR2mLfC9RU?Yoac-o{Em+O zp346$`S4VAw;;td7WyDP_7O648}%sCwEVUXa>8;hiS_IfO0#@qeh?YVU(zjqUQrCu z&|bnn_gP#_9(uCa0!&LmR1U?-{`4xQ4&ZW`qe+`TE{cb770l5@a@ogHL%;ZcFcKNE zGw+xCF8Uk+EiHIyB;vJJ&?9rybv;r1xo}&Y%umrCHx0KU`9w|^sghRY(Pkw=Xy2oCl{>p1FQ6?9Cq|QCw$Rk`BBdFCS{rth4a4B^oUEk|Q#Fr#NTp+{a zH#ezE$)ePGwelXV$}rv23`v^LQ(eq#$O}0RGhL7|2_K$O83E7phsX$~QYp-5X?9Zv zWM1FG`=GDi3Hc+qA0r2{xnUIFBDfHzbnI1!plLI1y(ha>n_*lEi8JR8If=SXsiA8= z%o}oa{KZ3D=o2!rnJ*mOqqsFaO!H95>lr#N+mekDMmJF__S7V-*Hl*I&uywJ8^^6s zn)_cwgmTv#x(1{hOXiD|ejb}ADlJ_3@m_UPc$22zM3MSsNmmsCnmFP$XE40j)k7xB z6wYUOF1~?DbkSI^X~k<%_sqj&nnJJh$w6Gd`769~kup-=PO&#BajgH;4D4g0vi^@+xdf%Scn2$cn*2nyn#y88qYKbmm_z>?#5U#eO@(;}L1$(uI7xWnsm6aI{SUCf+w-87u~>4XH9we1*5hHl*V_N69uC=Hu|V|2<~51 zz7@V)eT27C-j7AnOVws_bele2X_p&GZr}?irpWDfDoI5ZeltpOSS4dW#vfxnj_27O zb4v4M8=<2>4NzaCM+1;)?kUU-RZ zx~IG9F6qCgT9Fj8aDR9249#8FxX71Ds_sw~SdNh9p5>GDZa%l+5~_?ZsYzZpug5rA zLg2_k`G|s6OC^3G=0U19T3+A$YE6&wxo&lOg|@T`OFZ3sr0SB07UkSp2ah88f;$B6#eiTI(F(xQM_#6{h{RC=8v_&i*3j zb}7`M`x*{59c!XW0HuawC}NY`EF9LXp4;~-{n!^qTLR3jWtq5CHqXgb>UysDc=fzZ zb-6-+l<~=-(eH*pN-R>fAWr%=&L~H(xLq(LUyWOf#dvp4aAObVY#K}1h&J~D2J=1) zz$te3-*yQwNDQ08vHB6!B?wFAfi*Y=NFh*``7$I{MI!Q`g3{7J@mV6-a@P5o(RQu; zAT70Zz)y)zm6gui-EZ#fJuPAi0c<}2HI*Dc5wS{RzHp}LLG52-@5OI|;l7q5kz5F! zge@~zAn^|SZ+|_JF-65hv*b@e^Bt9u9q5Cx`GTZGUjyAXP*me&I&GO|7EHx zE~WkeA^9fwWzddlmK;0Ths>SORl&Yfj@v`m7!ps z8Rxb%c`JwkF^gAJSoXb4RsJtb8+~pb6JKCs(d{GM?=qK7UJvfw^U~C2m9e11YK9>+;k z)2$BhoX#Si*0l*4@5J9aonslS>yR7Rc@lCu&ke8dI@dMcP02o85H_jru^HG+|8%-2 z@wC40uJK;hy*5c(`7Yy!%(d8ei7T*ik?Zsw~T@P7m8=ArcWD2%8U~8sb%A%hRL(7putZw zM*~MqCuhGf@Xtg_xZf{!MV|K6e7%%2&ss<;JN>Y}U{`WtaERh)ujAKVjlxUhcF%d% zA1&zpNz<>MQnOz)m9sc}_8XpK!kL?CFt~r$H04j z@MR3gKtLqKH&VKQ`aS(s+QJAzBo3~AwbmT^s2ags2W2To+^CC+jij!Xf>P}Rd#a!& z->z!vMKo^TO(oK7;SfKtLJ%NzQ-wGyk}_*wXy-0=BIzpCtnjNOiWVZY8;5X*V6Ng3 zH5rjVw?(LTFep7tu$rhhOT-=D@bi}#iANO3=8wi(>ae`;2+n!VOES(&0Fg~IxMVAD zs<7drC42;R@5B_^AQiW{105&YywDRrDOLYoaeYn=`xwc){*`@m7M724*)Y2n3<(=e zlGq)J&l%&~CB|{=NlKG(-FX)G#WI`=;5}cEpmfJmLG$rlhA`^NcqWZ_uHE=8x`b&+ z!qG!AHJDgt}QLa`QSwu)Gj|BI^<=&apfnItKDy)UjcLv4IdjrvL8Nc3xNGOuovw}HKs}v3Cy(2%+z;- z9buq;1hT>cSVb$os1xD!C^h=`lUfSPRYFjTqE&Y!?s+^{9I}S5AgD#RJ;1S+RI716(9h8F z`53tEANylW5wy^nGo?Hs9#L`S%7R3ej~>jq=LLM$bR$XSqe7`4BW%bQ`e_v=`yHxS z&zXH7vCOaNS%O$DmO6`kiPC$fTZbs7R<)!UNX&`&q(rRwAxmC zHTDPQ?^-tVLv^DnE*Fi-S%6R7d)(Z{O`-pmy3KTG3D$W>X_gxTO9e%g!)EbE0Qh17^k7>r%Cioijd)EX^_DHG^yK5O3RrD=H%m1eF?6U&JNx;OzB;HBnpgAj`-esW-kN(IA`+vIe-Yl%B~!d2idU^x zbSgSOx%%oCs)-9hxx|euu7Yon2)rY45pLDLG4&~Q~@HaLqsMpV2VRfl0Fm0IF(rf*Avw=Dj zdHuZlnp!zDh=Em=QR&@Q?=`bi8{JU+ZajQ%r8^ltGTk0 zpxxsR%ekJfY1iib7|}NZ>nNj~$G{n^9LJNa54NFl0LleoX?a!c#nsNltCe)2Pqw;2 z@vVJB8)z3rvo2Aihr?;13C-LFUBDs`q`2HJOF@{r>FjdNnB~AkXYUS%Yr$&(3gx^a z2oq_edXcSZL``>e$}?O6KbzD#M#I1KbRJj09|ZSwg`687?K#%!z}m~(sU@MzJ)nh( z%3RNn8*`;D*)R*?cb_(bkGDfw5F+D5nvrc7?GhpYrMWaj(s2Mq$9WhNbKPyt0BzT^EM&u-4<_f8R70OAr!vjA>>y_@uROX#7)T0 zajf7wcMc+#2;CflO%_mYO=gM}!-~y_2Z<@Mv%>ucv`A{bHG?F>KM86FYpk7=~J8$JWCOJzY4RY&jzu(id%1 zJYzDwz6g1n88fuFJ%afzvsZpR4*)E`>X>aM*OD4wWZYoPQiIyW6u#_n`nBn;nLF)4 zAj={3!XyNwr-I1I|on}P&wMP7_~lUj!KrlI$BlxI8e9j3 zX8S{4Jxic>@+Q68*$ry@9aP^A94{^}%s}UFpx?VXe^B_48ZLwzrRu=YdmpO+Wz z+ddM@t>1fcA^{!Zaq5XWxYd~XXfrGP;wW2vOTn~e4LzE?8?8XWw?Tj{qmMYr2G7yI zD;=_u#eY9n-^$m9K8=A@ew5lsgXN+Q{{+uicFlFy{VMliZIE4NwS+X8(49zbd~!PN zh&b)aKkaEg?fZE;aDH(*#C7&f^=!oHY&7C*EdOkx`3#zJX)51LaOdnafPT*Drts|9 zqLUb^l798Qt`!~g=CA8FBoU%?7qgWNsy2ufpNkjH^m{%5fE^Q}S|mA?Q!CSSRwD+= zp%TSnHm4QOB<9$bX*RF(ghM$TeA#?KFGav8PwTn)qJFxVLsQgcizUM>8Sk04=N8Mx zdCFnuU{=c&(<1FePVFqqRr41{xhm1DR%@28tlm1dXIZUVzjJ5|Cug(Xu&r|K&(qGf z-n?1sJ>3+|X0v7A5U@GZ{+ag;+MnaNIidnyB$ETRMIE%X_9V?1F;RKIjhB zg%Vsh&;Iv=rGCEac%uCu|F!RLd!JOC{0ZEeZj9i1!*Lq4yV#$vo9}oQe7HH?9Lwc& zPC5kI{MniBbP;}jc6LE2p$4SnuTTTQwItNZFS%5xQ*uQ~Xiy22RA|tMw@GLokcj?R zB`_&?p50}rLW{w99ZSz-V^3P`cZ#BuW&%4`>M)V>R94cPt2s+BnsPfM8O()wDmg6F zq;7EH9)A^QRoZF4WEG_51$QnQaj6h0&UsKFZ5da^zzn|Q{7g9d`5g&PmP&qTYwf-O ziw@-EJf&BGtXMr+Hu+hLj;csYWhDzjo2o8 ztORd!x_q-04*{+_Wuxf)^Ux^^3jpG3vZqg?#vHq zDs-C(3EeSxdjCFox`ZVvO*hAJwlv_&@ga<)TQ{W7QXX?*Zn)0>W) z>#t;>cZtbIg&pr54_^v7b2jb7a%ijI=hp&*lOIhGzLnRp-M=$P|xw`I=^ zKHbrYy<5z5D#vs>RV&Ww-6vV8{;LZ|*L8N~&wF}z^n4;4@r*l~ZQrycmW|eXmg3TR z{47QBNlFXFn0yo;lm+mNqnnc$Gz%&{<5j1aCik4EVDJ}Kp%ApXI~_1~G0c})2vl^L zsXH@o&kNS4^UC_XykQXQdrEb;Z}&{T`ThQnUj{6p3%}c(irk(k(hYD;kA0^+ud9Wl zLJMF^?&DP9mO;hy{z;*Eq@Wm~Hj(vq?X&!3zc=3!|Tb}~e>frFD{ zl7>F}ZHll;^~47nOSaQO5COhIglBwuj$+w)eOmJ?3|p9~S`F-`I;4Q*fasuh3%u=? zPbn>{Z_`>KAX*CrVEzIi53KT2Q>v#2o(xQJ9pFUZKRb6Q(e9VeWZU!34Y_!87e`sH^DR?tIB7_qgT}B~FpPx&%Bf8S{w9 z2DFF|-tf)cAj~^W-ROjGFh~q(EKsi0cQ)JeB{8;5q5Lr)Lr|@Do3vvn*1NE>WCXGZ zJmM7m;sX=!7Y~6<5a0cwR;|lo&=)5(P?lMW=CNII4^yot4=@mUmdJFAD0Uj^9kJ$A zZrD?#18g4E-lXIcZ^hqNF#7#kpjZz$6rlC=^b1A7;bKYIdV;=P7MFp4YtF(7*qQcT zM>Elg9b4({q$LSIPdqSoJ?ONXe_7XTxa+na8Y=*>IEO|gr9F%4j(Txg2@iDFG!$!O zbpXxNM3l@YdmQxVhmU5MOqBZ-?YTR-@k5wGxdViVAQLRhO^1dNaRR?9`>`6%I`|MK zeyRo&t^^SPey`=(SDjJ=EsM@dk|!@QRe)3ilwYU|Ru3S#jF>ju=+>apC5i1-Gp zHV#hU<7VgnsI)|ci7X{V^qV%GF`+;5Op{6bCLBj&)+uRL;z7x16D;1 zbe+V*a}1O-8OOOIKNX*;&fdpi^yd89JH!J5PZ99CHfK(Oe|_#!1n5~SJ0gZKb7*3t z8}RhL%S#E*#eAo&A2cn*x8V`K`FB(?=tGfEN7@TQ^2MC0O#~{1Hq@itlw-sAuoRYV z`_YLdVG!OY#+d`5{@)A|WWUx4LTCN|~sU+1r0VNDT?xasjNJNWkZ9s#~R@PX$?G% z^_WIKq_L?$TH^yyTMaxp3)IL|ZU(4mKP%Gh!u{HzxkvVx*&IyQjaAxK529+J6K!Fb zf-85$1Oo_hzGWK;=drgWv*WU3aXrP|^|24fG+_D#a^)J2>NH+H`V3zIKdfL0!lYs3 zm6(TOZY5I&byY>#eQp6{x1>-?Ofd!qDKVE*BvEA>jmLT;m9ov!jBeCTR@AG$OkSK< zTeFj3iG0blikn}3$vMOuv`6E}TEuO6iTg27&6ZA+@Dcs&Bk@)iz3qpQ>rF5)EfYeL zsgQSZ_l<#NvLS7fJR)X&FF~FdcvC}8K9zCTN#vB zK|OjP1AJFpiJmM_XPJo5V{9xl>rOMIWg-BP<;?0UNpp9)v#PtZ+q!c`x^ox0^Y*** z!94|xJ%#)|MbbURT0JF}J*6%^FZ_GTqI$|xdtR3GysGYb-PZG_53w`U^G*v+g@?Uo z?A^m-=2?0_fZ?M={c0D3HQ^@_=)~GogS9T`d}i+_7uYB_zLC(|1b))523fH+Xy!K@ z0T?v)CA3-gwY&6n`1f^2^>wB8b(i$@RQL6^_4SSP^)K`d?Dq|V`-d3&zw-BglkOkZ z>OUW`?Emi4KkDEABdUKawST;%f1 zIk4z5u;f3m95t|#IkmKhnPg$AbD4p9U^ez2Itas!a4C?t{gGO1@6Z%B~|Qr8=b!~>L%LG;Iz zltdtF7ZsB*m;*heOWmii{j~@M;3jqQs$tl>fcyMZ9E)bLLuPUq2&3LPh!FunnSbqS z!)g(LI5d`ZpNh=Wya^>DIm5Hfe*R(b_{soa1J4ZNg=VHg`RmVtnSutsUvgEwDUO|6)cEVUQEbLwFu z^l&N?RyZV(bqu6l0lcg?q-_PH$OIaDLobbuuoryA64K!)0ITVD=S|wnNrU!c5OBq) zG+`7688P6%yEu%x8JXGy0B;0fP`NgdW25)aMq|#0ER7E=H6RvPTN@1~h|PB_^chf# z146kyD$Q-6O8V zE}&+?ScD!>T{udW3F0^hj5-D==-H(ifoNO-a%$tL{h-T;D0T#%QzGgTHy+XjQkJkH zLyqSuM=5n#lPBTi$FPL~g-^~X8OK1cpx_rAc($a{yhPj`Cj2ExRGti&T@R#UdMmOE z_(~aE!Z8jq7*9Eys0f%8OB>Uy!z!UC^En`1#S_XwUzloZW+I5d0R;%T z=|_$g6AIGZsrwdTI`R9>*E*=M}P5fX1q<;4UQsHR^EZ{XmT%T)Hw=0r6IpIQS;L{jdIdq zGUogcNL{N4BRyC6tp*PEPfA-SW*rNB$ ze)P|?$2f%B`5e-HoFW|cBax_}XL?D^+ec4Pcr>EQ7K?tlrxALzKEY_Fy_6M+FL zgnZ?C0cuQjR!N-CP9x53|J10!eog`?WrF&RaH<97*d%~5@fQ6UPOjVl9E4LLSY8jC zkAMJV3vlun(102S2^q%~Sc2~VP$5oI$IM~3XEXrz_36a0n(mn-{iZ+BGr>sIW(TkchLDbySAbH2PyR&nPc# zyJ9g|4HSr`W+~@vLUr2>>kecfIQf;jc~aPG!d&^h-7Fei?z-J&2$+_~FJZfYO6MJJ z-b-#8kmX2#Yd^=LzsiD^ql@9$l5{%evaS6d`9f&=yav&N9ph{kj&-f2;XDSRIZ#@% zGfKqC%Ls542mUfQSY;ZkQt*v&20M;5Wf;SSJL2iNU9jA%mxb}R4OnaiHi>ybvCBRR zzo3-lip<3QS^%cXK9Lu`7e%Pe5rlYY-eh)Ii+&3#)WO@--cvtxk3j*|&})~t!P%UU zjHO!{>9~3;{JX%lEMv%yIK!sB8XWJs4`}H z835+cfoM)+rMqyd?oQ)YQ;|ttW#^Pyg)_{6C{}Jf010GU!77a5)Cjm8_OAc|JX^VU zU!c=9Xq4Q_2F$l%C15KOf{{jUjmF?MneprAC>A1Ct_!3F*vy84N1HbKnDGE2Q0*9p z%mh{kI_wDg>;>Lia$LEwdEeQ1>&PElDfR=rJ_xY!*_MTz)o!YE`3&T34F;}}ZtF6$ zE$a$Ueh8;lzIo5sXMfb0DiZ`X0ogkA*`$Lgy0#QEZ&8+m*4o{b%5f|iI|>L-%1oRz z1jAmAt4alNLNJ`BJ5i>is>e7*G>9GLv-$lTch)qkbpMw$WS8?ey^`Xa>JSb&gq5q9 zi{Qq{1%YnVU>AOJGm%Og#`(9o)lakw;HMYd9?2282Fqdru&?TxXI7KxZW%MqW zwT}W91RMk6y}-#!xGM_nD*f~mS_Vq`c#B2sUAx$g$i&j*S?axaGbp=voy$$v$3}%~ zNfomrUFM6en_Yf_QUCZrVFjUkw3q$ezpfgq$i2^r*=VT4erv)ocm9la4ZuS7)VAgn zgn_avz*C1jdeniVuC;O|h#_y!>4K7t2zvi^Nd>)IvxvKd$GD1*-O2;H{Q@c!n2@1x z-hy}u6I03p5W6lO{9-8*_3+`jxaE!Ty&E+ToyxW^5kYdMlY-6TD#v~v7n?LgSY^U+ z1o2_Sg}+c)pl8HXsQ8#4<+e(N*R9%hPp%;2{KI?VcyQpcf(70JzRyVnu~(P|z=Jr9 zQ3v;Z7*V)xYeV`v5Jx8IkC5B&rtj)^T*BSM?8QBWI&&5RPGWg65`$GX^`YE#V*(s3 z&VYV8+RCqBS%yHP6g$fUTMV%-zfXU&5OC;sC~d8}D$VP9_u*gJ*^k zHD|t>TzE(ljzw-I_d7`8*dB+%=E3(lhCn{n0Ax7`H?XNN1Y#F}aFpY~A$}8ONB0JB zQG;6>azjf_w@9T#Ztt;z`tYG*~ajP_%MS3LeS!r*Yn0!z2kZB}) zvh>FXo9Al>SH~)Dccw6{^P1$b-(u?WDlZzyVG~2ubr*v~I+eU22(6bjS8;LyUe)Mi zL0Il{&@JL~i(>6Wd8HM-&^R)ai434Wadoyx`w6m$iT{k$Rh(PMKU{}y0S!9QKUiCF z&!v$47F*%nEN|FwHBrgOKk2yB+P9V7Z>cYHonj!j=gMw*`S@Xe6cR`CQ{|6|yx;QB z)r$~=*zL#2pqtXPDxZV&N~+cu(DyH`?yo_ghPZC9RJo+qlV{lbPwSdKl-rg8ae9SX z(N_oExl1+uK9y6t0oAr%_3QFh>Yd*{&@WUUr3F}fT64Y<1&&Wu(vI}7RH8~__ zT0n`k``nAk4?UP&AEQH2i$3<`7+flSWt~;>?On{5l*QRXCld`>f8gVw5nqtwBhLD} z`Ji0loyWfAT8P{ry;K25+7hgwU(n0#yGD`0rNSxtTVq2BssqO<;Ew^TNl@n=VG#8F zpO-(&{*V(R*;PAQ^5R;k6-6ssC@=srX?g{MJJYRD$&SmOpCvmvLQW;ScoLMPx&^XBrFukOf0pVM`*bSR zC)ulXy1|l;-MPaoxJ6vI{lu|Nv z`D(Fg&{}1$isEKXud&wh+cGb*joOoQ#qE|!WAJ)I27AMH_tj>ly(CKK^UvMF(yGb_ z-zoDI_jy6i%16^7stSnlr=o2~i`fxPa~gQ@2ftQ6U8o#rz2TBNJ(z4hJ>~w{ta?$i zeBpaRCQSHtHh2f5#7!n-LwF)kfrVL4k;xwts1zh3*^0R-;O^>)t`)emNmPfDu*L}% zafeT-@I*gIlCi2H^h&iY&7H2sOV)-lvN@bkk-%1tE8?*X^E?RbvSu84CH|a^w~Ydl za7)6M`L@K|QBtNBFtU})+KW=OU`1I(#Sl~B9?NuA`Sg~1Wr)3hCcr!Ssl=aRb_e0& zgMqOMK)f@%H9Mv9Dcw_BB^YyfXz~0hghoxum^MPo{u20xULV!DR01%Suayi!6LgH@ z{2&p_(v7dP8*Am-#*@n(I%|ibaY;G*{KDF+aPzFHXDdnC3UA80ueldLv!2qGXCIG# zU~9&Pe_hN}zteVwV4imFPAL}iNLBBeDCQ%gRK5WPz1raWEcY=b^6?{GwLJRliTzGw z-FUY@$~@f)(=I>8q7&5j1wFV=slfioSbw58*Q%~vd8A(7Q}{!8pQY_Zpog|6;`-Cw zq-Yr*yC-&iMeIfF#k0mD9nrG;g;}X9k~M`;A?wPNkC=ARG3WLmYaZsEa()eHnNCCr zUqV$<=aqUo8e3bw{Pd}xstlvewuDqp$fkxoRWLFxX80WKP{F74LC;c+GoVDj#?=fe zl%O=ahpt5H3cdyyMz~i|a~zbiG`;G37zrwqSGK*l@7(U*;P>|Jey8%r<*&w^)zoE= zJvG*Ydm1>6-=3q^XRCcXh2EvUb<$duZxM#8aKe~{yjP_L?@62k0}5h8L~bvy-FPH8 z%4MZ2po9z=8w`}H#;*&@(J$Mia0XTe_6yyT`~-hQD6ZX3iWN38(CB7<9AQzz>+Q(~ z58Z!IUdkk<&_{K1;mT1Ro=?}8LH}EYTN>L^^=q*M5AEqc&pv|Ze@fS|>2%$G_yN!6 zt(XzwD3LPyIac%Sz1(}qn{RyCEA-xZ#!(GF>?%q=Pqbe+`Ft{cGJUD8_N~}`WzWG+ zJvE<$H~AeC*Pl{;`uH}&p(LP1-q5zZ_1VW27a7HDCn&Wo>O`^Bgu%uxqNMh-x62jt z@he{uatB`)7w@Yxd3}HAa)2J~*A?Zthg|!k$<~ufuGmuu1(a2^0VkbefCFO_6y7Q&-;`m z>TC(#hJQE>(zk_fcxziUGj-~`b!FLc{@ETa$5nf7YcJXA{?ual^6=?yK`?`SR~z|B zQrh*BN^K!8Tdm-aP3HlWt$j$3;%flK(7t)FEX2fc|-oKeuju7gybb^pE!b z;<3Lw?p`a(nq*%@a@7xLw)yow zx@s`MMku%n@&sLa*M1&eE7X|Hbsn04@Nc zbQH`WHUKx^e`fjt|BFbJKS`u8OcLu)%EKflC;x}|Cq+4tQk+P^nEyckB*gz8p#L9& z|KEYrBu1aa=98#3607!i>%(7^8VODl78WMKX(R^iAKpw%OpJt_iHnQ>L!C)U{gtmo z;?87b)Z}Cgk+RkbawtVPcO~Ti;O(u0>R9_VZCn>F!QDN$LvRo7?hXkOJh%mScXxMp zcXto&E-SP4-se5@&diyqnfj`}uB*Bls`v+ZnjhWIb>9yB+%5t<9)dhRf;@ggyaB?z zfx>)&U-$#Q@cWAh{1g@P6a$sIeEBXRYAY#jCMBsSBdsPUCnqm2ukimK$@G7yNc{Jp z%l~x4{!1|oB!z)Quzv(F4-XHJ0OsZ8_5Xi+Q(;khacM$XMO0OtXML-AQ6pze=+{QLfJhIf~tF*rhA;eXPmiroTGn2dT>&A zWXcf~qBc33Iz3l0JKsA$KRv%NGrusqurRl<@R#NPp9e_y|K|Wn|No`;|4(MqKY>jk z=L{5pd2;fXb9Q-od2@4fcXxMxfB*3C@c8)n^z`(PZ1(#4`u6tr{{A1P*|LWLr5^&3oXqwawBaEbnOVPJ1T}OhhyW4n=J}hkL@c>1I)I0@P$pss z2ha9}wLmx)Rc)=Km9=;v69BLN?p|m3C1l8p4(b$RPccT^T}EDpoob{ICf$7FICf7l z3O<(XgKO?gG(hK%mKuFh*+i3ca}?H!dZ|{e?fjA+eDjrdt&GuYX8JPYc5h%TOjnrZ zl}dahES`c}bM?U>eWTUZgx1|87B-UW<-3-N-)uUxKai%4&3s-9)F}IJLALNPP>>X0 z6o0Sp|8@Do!oq?wJK*8rL5moa+yPq0NJvPar3{Mj0L9#bV%b1z`hQAh`==o0pFp;M z(%Alq;rRc&zW=gHLCr7!E|!8?VE%DSg@lAaxoZDrn952?sLDv`%1N6j$XYAPxhl!~ zsmO<`D#WQNq^K)osVn4bd@a%VTCVZ6N<*PWL!nMXp+Q5TQA43gL!nt)u~ApKL0`4b zK)uFDv&vMb+(N&^%COMdsKCY~&(<`@&NR#3EW_R`)!sbG-aO91BErEU$idRX(b~q* zM*o|w@^^bNCr5VY@1(9SNI!mn{|(rWAAjND4(H>I<>yNl50x6NzPd*&bjF>1=%jed9G!JKPpRp)Reo` zRl3zzxz$&@HPpB_f~a+Gs`Y59`v=daI*cbOg2(<8I9 zt@HDh3yXP6OKD5XaVx6Koe*Z_d-R+8M4S8goBKGM`=2)Vu{Zaz z{swb%{~tgfVsGt#+B(49KEU5OB-%Y9+droHea3luDSCaY{_te|^5XjX=KcQe|Nb8E z{vP=L9`rZCA0Hq>KmdXN!N1f|0x3ljY$mfgRBb65d0Zw<1duwa_)A0<6l7~#5|lUm zQxl~5NY5#!g%ZOW)2h@Rj(nyOh&m~_QK46_5NTa-o68saxxf;Y7kpLR?enN@1W>!O zn2E?NdP%orr=jhQL8Ts-xd8pAqQUE9&O||6_r?n{0R+G9h5K8?M$#aoduyEmC zyy;$+q-z={9fI)XQw3#z;8pO}!!*0CZ1~0Nht*q^hDYI7lL+xgE>q7qHj%0brTUZZ zhu1pmqqlFfJ;uL&KVo!YTiHis=D36)v|i}!P2J(DWhpJcMikc9VcDNx>i%3X6C3fy zMN(V%`mvCYDIF8ZH7CO7;;*8Rv|+TXfP(IyEAb<+FfdVwD#&8c zJ?&pNGz<(hY)mu)5ZG9t0p+h+$-jfP|LMX2-NQgb3aAU?|HR*+LVx8+l9Q3sl9Mu! zlhBisf#QWIC@3jGP*VNn-&0akQqWM6(NU1ngCPGKViGz65?T<1q;!O&^h9L;z(7RK zNDP942?PlRGYKUK77(PAEM!!lL6B3kQP6;3r=;beq~oNb4+g#-kI1%*Tegv12DNPH2I z5EYXI)q+V$Nz2O0fu=e|C1p^Bh?=@O$nMwH*3s3|H!{#SHa0Ocx3IDXnfoAV-_hxt zqlLMbl3cO?dz}DVn;`q35Zl~;iL&5^q0*9r@sOK+qsR9G4^S(jrYg{=DNDJmX?-|uKcdvgs$Fl(5iWv++UnZ+>iWj& z#@5RE-rC0g=GNZ!_U`V^!QSrgzx{epN%ZOI>Dl@D#pUG{$glr<;&}i~JfLw0H0J#G zTVKsiw*@Q`f*5zq?w7zRD2a%b3Q%0p1go`}`T0tn`IJaFfplHLXgrNdneJ#^;lEq+ zPNy5A^~KXklTow;cwY^bg0A5DFh-&_yNkYNroCBI>9#uV)LBD6RhBo~&SmLAT2z6o zc~FM;Ki0hC{@CBve7oD-f4And&g@G1@+Fa|u;3hM7mDRd(>mK+$~7ETa-{D#TmA=Y z{tAyNh5K{wU_`n|CS&8dT18^3&)v}a8k>!&3L>#WN6XFrNIZRYyNBUfZcV<-4+Qt` z+#89^cS%P89qy(*&_9v;5?%Z+cAEo=l2kZCMw*ASBy3dX%mD4A%g&SAA`mWLgx?qBs7moM<~oL?pMu@e6~sra%aiDS}o0MM|eC<17> zwsN|vK4LeC>@X82N9wggQ=IrwQGu>og9?co#aa$fnHa>e;GduyC;5cTT29cw4HT}+<9TGRTW(|?p<7fWdaktgK6kCE z2II(u{O!WXPsKktCum^k##u!{zH^}%KeIeyA24rud zma!cv9C#)ImhN~dI@y&RNSM}>b~2y}9XU*7%)wzIvANjoC-Q@z3^S19!I_^+&76Sd zq(gL<#mpXzCb-KnpSUx=4VY=}t1pKRaiz2XtYQxF;7r9?^UyMESoTAwE%n$db_dC2 z%5WtUB%mjABOtl=`F5@cK415=)phLI9Muecigs&+Ih|sdvm~?VsRgL2?uC|&=V%So zO4PF}$2zZ)+$O+^#Dv)fQe_DvNx?2F(ei3fM?3<N7=?gJk)l%U~O3RB_#%(x`w`+39|35tIoD<6nsN*#KG z#NW=cdFn{R)#OHTv{-U@6np(l zq{gsPg#+=bZ(5f!57Ena0Ib(66_5k=uH$eaoZ)B$#)c5u(3FUrEMFoBzd)9qh3#BX zq$MF1Q4%2D({Ql$g3>0F>bEF@B_p|{p8^AL;=qE~AWTxoN=xHuZGl!aS~zrRllKgw zov=Jq6eu{ob3_j{A&zIH(fCt}PDLz3Xj;7pQ-{B>2G~QmC_XpVDWYLjwMekN%|z&Y z%(cF!FMXy%Q#xWr#3~4_V#6U(*XYQ@xBeVVRda))(y@oXBozQ2|IL3T5gK2TVF=92 zENUPvA4k7sjb8DFa8y~H@y|*o56+9>UMzM&g6Y>$DWmYCkHW?@h7mr)ab-nUnFLmw zTswIyWTGNvuTnDmh_f&Ic(BQdoQoNxtY~YryVDGbDQTeBW)lo4BJD#s;!N@22-i&- z=@!y;u1YrumeP=!y{l%xx+8!cg>Yrr&ToIp!bmezNX$`yFObdE)KD!)1XtcxoYM7R z2SMe;TBFuUUvLZ?#axqTiAJ4WI5^^c7kYrk8!3!~avfuyvk0oKQj6h95N|ra<)Nja zjFYizU=ShM>gAgj-A%ZyWjWiS%bRLVLgEfrb<;KPgRAwUKQET zGBydexg7)AAA304pJB*`%%dz(4JV<8Hi@NogB0BM)|TySpdNIU+y&y+9d_@u-z$vb za~T4ubd6!XOwj!0ZMvvz}el7g^GEFa>G zE|B;`6LCsssq$25z!tCy7-j58p#r@4DR1ChZZ2_yY+dcO_TuQJ#*;Mzo5 zWHGc%8Y#g~>oV;%fecTKt!|&$E^S2VMKN-AEVLSG zVH69%wTldc3OaTXz=hX)MoPrkeSRQWMlK(11iw%2?oA8nTw~=Oy4T9RI?3XtF^M)W z!GmjL{!pRXY6OM)q8D@D9;T~RTnz@AX1V0scea5uKX6F-g`3boHcHwTm5;{(G}8n2 zhI8oXdP)IiEo7MJ$!}FBRfmlW7+@1EYjiL`lIJ=cQK%8iE~!ZSSt9W1PlOSP=$&8)w(yhtcQg>)z{$}v*8FF>*$VW>vFy)HL#Zz5vF(aj0>>~uHnh&0ePru7_bQ0!hktc1gIn*zVDwk`U9yn z0o}>~DjcQzckXh7kRtfEf}-N(t&G{h;C(RPk1yTvzf-q*7QyD~5Q zI*xqHFtmm{Vu1T+T?y#@m}L`OI870Ln^ZVTi`3Q(U8x)0MvT^AO5|FJ#ju<2=!*S# z=&$_yh(c~Av(H36w}_`H(5c39_!6xu5`GltdWQ{(WqIR==YWAAsplSl87go zsHu{W_Ty-{)R-O4=*L`Ch*8XDZXMdZXaucTY+5CN76r-)F_g57{Et`?+&I+uSY)ec z)Uap_tC$&@IEK}@V3D{7P2ev`+SqN8SSI&)?h|sBmq=FkIKok9;?#H%o`k#Fcp0NO z0_phHlDI>u1cjG`VWR}d+E{tNIF8YTH@HOY*2H}97;txI1yX$V)`S>rE6)KX%hV+6 z)+F22B>R^nN8IG^Jju>l$*%6nZmG#0t;t@i$v!X1zPKs+VG)w4zS&UJYmf;|Y6$u> zDN!#eF}SI5JgEs8Oa-v?llTmelmN*7T0m^sblm9^8!V)wKJO_?lM6&=<=*bgM?%jH#E58Qjb{ zp3DWU%%#=Tfz_DLK=+Is?sU1;jAh)cJ)W!st*j&Wtlrd2Ja=c*u#CFW3?`_oW1j4L zt?Wnl>}TA}Q?0n*lPvY!Of%{5+th3*?Hm}79JuhDx7JK1jPyV7*}qbA(0Ow)wR5r4 zvQni|R7SJrW;0RgR3JTa$$0Z9wDYLeQV^{(kWRA?!E(lFbExt1S$Xr>WwL2s)96og zOFrdHqULeD<_qH$h*+m{wdH=4<^!HHMcWGG)(RBLQgO?2C6q&`!vrQv$ZlQ=wA%`G z=?aui)0{_g5iIdF5Gc(?GxXAmtlNsPUkeAdoK>|wHk6CnLW^uYirvzR@2pVYYVckS zQD0+FAW2Jre|%9OzM=dvM1dgH{UdC0e_e9Vf^vt7lCXwzeT@uKvCj;V<_r;BuS;|A z%JO*23bf0LJjzPa%F5cxD%Q%XUdw9m%IkQ`8??)tJjz?r%G=t?I}pmfPK$kIO8y9! z1izw$mX(B+l|&(w#>tf47?!4#m1dllc4}8Hc~q{XRj##FZmd;qy;knvm3Ld?{M1JE z<1K+usu*r78Pi6I!7Gi|E{#O1OkXSA^{9SMtA1^(eqXBwzE%CjEt3xzm`nWRVU-s z&bI+;ncnJH@atLm>Va#u2sgEmXm$N*RTSkl)QHtn2$c*r)$BSA5}plG=?yZ7WiY!a z<+}~gxlEAYjf(ATe0M0q^K8+OJbq~?LW?T>gEfYJ2%d^f=AKQK=}p${O}6Vz_HRv& z_|4z>nw@o;9oie*(wjZr%H-b~l)J|nc6hR;J3!{ zwI=AaCfPK3rnjcGx4OF9KgWq1q*KRZ3 z+T__Tf!{a@-sXqcmM_~P?9`@%$W!*F@~gd~O16Ehy<=j%!|qr641OnGdApA+sxpwT z5kjf40KX%Sts{b5c4)jMCaq&ir|ZbGD`~wlqz7J33Z^|AHgE?%I|qJFr<+-}GaJ9L zE4?$Iy;Dn;XCNJA2eFA-w(Hol2QH(>cD*tQ3^3^nAgL+$MMcE@0(kW7#r@SS+S|T7 z-tD*Et^U@%Mc-4d(-T$RLzB@5zfqadg9HRaA+9O+-$4`>MZ)pw$13kd=s_~L z3r6hG1;3WHb3w0q3_du>!h5hxi{=ls^~Gj26y!ucC&?rvxRkw=~~l<1J)=4n7mM` zSpcQirEV;6H6(xuMdra6gap*GAYX*O7yy(9b( zv#RJMB^V%=8`!fMh~^uPe}h)kZO+yncFP!d1(f|pgfQP3UR~=ut7GCkhYg4!?>|R5 z5eCHC!UmxtZp1L1`J*h5AovR-&hbwUDV8P1Ae7_`=6b+o&miQ-G@JRt9A`|Oc1)e= z!W8hA7gh8Vp7)ml1~%7+C>z@OBV@$;v+6LDwDFJ~@=Z9QYvs;AID8 zK^T5HgK5!rb|wRP0kzj?1BKJ8OtA!I+i{+U5MgqsVLhXg!f-)WuTpvw{M>8xSa+cf zVKD<~(IBQ$Om8*Lu3W`#QSGAlVWLyyeCQQ0{C#85`EB|;{mc(J7*FAG13TD;is1&k z;ik?G^J{Q;BnUI%R+aa@&$h5^6HE(+Fgd(%OmZldKo+>p9Hs@(OkxdRmeAX7)LsMiW8MS$9y``v zj;}$-oar$nmRug>+zTR1U7~ymsB%07A{cUgpo$b0JQQ*eyE6#J19@W zNc}Sig)<@oraN|tuyb1i_C?qP4E_vZ8Bj9VWI;O!2|J&F3It2 z!Sn6zUyDx!Jvw?j?_N7j={t^Z&?cR*t~CSZV7ms_1DZa=9u*x80vlcYt-}{fGnGsc zIwrWCyRJ3x-HIrub0~L;NW(PAooNSVZBN;(E2!X6?nMQ{cSee6L%3eawNs3x?@X1$h^_YuxM&y1{Oyl<25sW2esM z&_w>o2)WfFYM1E)X*K4oEemO>W^#xCFgt^EoX2#+0+_1&&B(NMVAs1Wa~x!U+*Wp6 zHg??Tu|3VScB$K->U|`%Z^^^A$*c>OL>T7E z2lQg9y;J_^M&S%QY9l-Ch|UfHLg*SIdNbR4q9#Xo_8et#27XMwKX9@vR2U&8qjEWF zzm@KyROX_=W1GTvmE`L}f?)l67qHjTb}_AMXjh?QpQx+a>++=P(qa74UUt3PuF3p* zT_>uk_XC`ZxE)b&*Hq!uN#~4Se={)iVk$zfGzUIN5#a$6A^R1U!VU#H;vDF4BSCn< z+jY$EQ~p%BU5U49%v?{|-A^68=2w0zPgKH)(!?Bnsl;?=FMDU#zQaYl)EF^iv3~bi zt{pmZ#+0aaSRSP(0bZ5)_X*hO6abM^3}ha|b&#N3$1Fz@Z&v4QtVAs5<-l`yR%=h+ zG?v|z(7o2-J(j#e|E`!at-eUIzfH*+vzb1zW9~W7A7BxBa-ME-?e1~Y9e0^H{n-uc z^9Q^^=iQue#xx81y{pm+ICVW@*qgkA_?|QIL_Om50q@U(h>Cd@?g0wf{5ft*9iQxtI?LWbA}ADv_ST`*(CoF*Xw0wShb3Ji>oj^IwJQ zT3$qDCL^+C$B#&Z%A&RD`P?`^%3!fhx~!``^an%kvubnyvgU0<#9;rj<~d>?&vlx< zpN(<+DuPVQHCu@TBhVbs?{Jf!Da3DfocS5~=f#OYi}hecik>U@927-5`SE%K+;4Ws z7My#5LT9%`$rTAkcIgTxTqhe|CJ}cH#K8#645bn;O30jb9Z5pH*=Vq$dNe)~q93$& zy}+y6^nrnP3YPceFfH}a9wgG;7i# zTy9&al;bEw?1mCTlBq_9z+h0d$Y*GjV<(nXlUHZ-V(aHIYrGRR-u9-|NRFUH9@@Yp zJW&@C_gBr+w`1LHbbzJeX6(sxp&yf<9Ag!-4d9g%WI>!_-hiQ|=bGf;6Ma(SQQD8; z__0fgOYSa!zNF|0pLhakd?MhSCmc&JN*(SnluG@QQ;9tm#0b2&*LDba%>%GU39fZ# z&?n6-z%h^G(5ZhxM4Ivv+(ONDwP9?vNl92NJ@k6wj-~WAV|54F2Y(7kyR}`xB~Y+efJ?}N z@O-W!W<_&Gn}{duh=FEqn2mG@G$B|%4$81B2>&r)LiCW5L_fvy>njGyC(7R)%$F0PYfxq=wNtB{dD>j^bf7u= zID{OSwQb78I4LVLSDm@*d^%^mIrrd;oHg+3+W>_jCy&;+sLy=nRl^APAS zfuc{#sd5v&^V!!07Q)cslAaLg)>1bUNU-i4giF$-WA7GX?L3O%>InhR-iKdS2dK(8 zqI1s>QtuT=mEw-(@~FkFrU>d$hBzdMW8F`LZqZUxkq?NUEF%O6`lsFR*@GX_ebli#Qic2Wl7Ina_KkG%e~jiUT_1=IGKaqgAONFtv0Vry<;%38`84~Y;wx2xtaNL6H7bvs zi<8f+^!vw_Yk`dwL4&sD9QdRCte2IaJFRt3PBp7Vuq!+-=(Ql*wU(Ne8f(rf<^{_& zXE~F~qZ?IBAL!J(A+WKc!R#G__;mNMms^I#?Y}3s>mG3~w@wGyI~VflovJUlEf3ne zHn!_sx^lJEaxB`K(JjwzH8r#fFgmFH3YThF?z{?e@H*r(cwJiVdKz@_d1yBPJ}!6v zfp+wT<~M}+w9*4B;pmTbZg8C>-H}V^;C>Olys6yOoa}8E%+X<_EZ$g&LRD=?ZL2++ z*Hq`rK_8;lVT{dI+zWuXF{T8)AX++htt)Ljx7O(}A$n?|W=@iesN^k92klJ7?E2;~ z?`K5JwK|Fi^WB&bQaf#}VMJHp)|%{WzVlXXRL8LSdF>z0yf&e(H0}s8`DTP zPdU4_OKPiJYJvo$QOL2Ez4RZd@~KZ0G1}((gIyaOT+jIVcvrKIIC5Op&%3d;*S2Av zdP*iOZO-u4#~&YZ+CR=6fz9ii@OWH_v3B+WULNZ;u8$?#oenY0)FUS z*bVcQZeLo~Coi4o4nJ?+3A%}0d7o%K@oh3+YE)NeUPu3^+a;g6AISe$reWqi;J7l$ zQc1i@aCq28iZXG51Nz(*|Ni#-6QBD)h|k%lXs073p*N)Rtn;Fi_OnJLPs;JE$8Lwp zi(P%!8IAW7Smw?vzizJygg< z3b?$V7k@6@414dbC;MELcKf{2zwYlY-d%q)cuyVPe!Hvg2FoaZBo{nB>uwY6zQX8% zX0Ld2s(JV9x}ER5OYf>S=|P-ehYkD;H_`RPCiLfw6MCQr?SK*j6D~|P5=E@1Rz?tw zqW4n;H4=ao*%{!)!o{o9yNO4KEywK)CX55sC&1c^FV_n%S50^?NZimvVk#nlCxV&L zzKKXr0r*1c4D6s95b=-uLTl2nTMtrRyJux959<3E*hNV<`rhw4MxOiB==+W_M2X}= zSUY-HS->$!z)?kV1rGWJ3y9Ic02smn=-S=X&iyp}f^-!9#P0&{TE75>V9-*&(gg!D z4Fj?R19A%k@&^M76=KkaV6Z!2Xe{7#bOY=Y^-O^^oT~L){KA9;{Y0i>3-zMNj$qRF z1G)=?dI#cqs-Wiv;v%|&!z>|5bg;v4uqxmoLz+WBpMx#lVH{#49A<*88-{FqByM7& z>>6Nf9D~hBprcTSzflZ-XCHPF8+KM5b}=1xbsqi^IP8`n=_Uq==I9G0?CZ5K?0qoo zb3gnO2sPr1IpRklQdIi$c**EfFBG>&~VUTic$bu`gbI^GlvirW_))i<@^f3oJKGv7nNxqYFYLz4c@nvZW7 zDGrnw>XnML{g*YbI|>y#nteZ34K-eaDVzQd3&9NrJu}vzI^Jk1n;$XO960_nWvr=S zysbgDO$-bIXT0-Zyz4+VSI)N`bE21GB0plhzhR`6;csjHek3_Ty8AC{UM}N31f(tw zgRJ=u*@63sCS|!PkTpLb19Ln!_Lnt(KVCN>HwUuj#m1%+>|jT z$CQPzl-~eZ^9LiV>{BBp@_VWZ>-@f(_mjT^6|$hF4hyE1`KQk0rcM_WhQ)kGBBrjO zrc*m6dN!tRO()Lyr_R}@A1cOk0Mk!U)8k^Yj|E@b#J=vUPQNZpm#czx22TG8RLEr* z`=FR9@0ebln1)cB$rl3ybD8-~0CuZ81J5x5`7r@iI0Imme)5_@mY087m_ZenM(mu4 zz?{Y47=^r^!4jVYhf}}|nvJ4RnjV+eT;v? zQbzlj?FY^^{v|=ja!|{?3?VevpBPQDiEdVOUhgpq$5t zp67Uw{vk9Q$haRq8<&g2Wd>aZ$}|QQc)x zBWO`GaZ#&qQ9Dx&QrH)BW>N2OQU77l0D8#~YsrXm$(UowM109~Q4MnjtOBqYZmX&s zB+pkkq1w1;Gq_~CxMT;4!&X~zfL?aQTK-0Ae&dp>E|O55uz9*`RKpxa?l2 zVK=$>eQ?=paoHP)wd_N^^->><7qsHUmbso~?Y5)z~tVz*QTr8$GS z;#WE4pEwbqw-WWBX=}FQxK9v!rrQn(nyxSH0un)b1r z;F6YTrZwrj+Lf@HgSDnsxSGzfmcO~2vAFuHV$=eWqmzR zr#54~Cvmy0bG@%~twV3UsZf^P7ryvoy#{k*WKzA4V`HpSYhY7*&`x$JF_hVHV>Dr7 zrc!OJaRWFO%HxL(Xh}3>rYf={>q^g8|i^W^^D4GjaJ%%QuQnfwGq%Eq)d20JH8mdLwBk9`3J(%E8NGTI~>~*F` z<2~qoZY+}`iv6z~`THGmvQ|m?=wKNCg(AItV z9Zx}-cs%kAn>hSACjsy~`rNm76%IW`(WOh;waHj&OB^cH!j8jN*7>)z7+A2pA1_^i zL1n)2kVWY6B4v1}ekD0;&$9m(B)?_8Q4xH|p&5t&X@H>KjkjfZAVAeJLL&t=s10?_ z7gobCMqMgI-;>R)1;%RSSU?dmItz|)UakOM!i23~dH(&w&xi?LpYa&@b89(w%2sdF zVw7q%WAZd?io`$)mNM-9)ablBbHE6#m<7_+EbUu7!p@(#;M`;&oc#KJ7>Gfb?2y?Nu zqLF`TpRHh5;WNIpgk#$mQ|=Bsj1#;*bWt;BmwICp`)=2YZNEZdzi+P_{~pq|m2+f1 z{kv%NxM@#@-z;-#Sf1UMt4TwKK<_%rS|7W?ySg#Vc$syAf=y#jLBJG%)a^uvReun;u}u3TI@vLXb;I;SbAT z6-$634vcwd@Mdr*>-9xT6MjmGWC!w4>=q=u@b#41bz2i8pV)6ZB`e&QBiLqx)JQ8C zr~|${5kTIJ^H6BUn1w`twr83e_n_qZ^2`4Y-cp;dqYY)Q~Bd?8i%`~ zbA1?d;;R#>Xid^+nGr=;_}oBNcxZa;aqKS!e>BE@4^=6 z$G!gM`KLb?5>MB2RCW)X)`i$hxeDLrqw;UFtO+d~^ne_v0y+7hpU-^L>Ad}qP-vGD z=fb4EVEH!sfE-x!oJj#Us2gcl@Z?nN&wg1{T&92wHnRh9T z#y`58PLp=!3m*HI)cGvbQj4yG?QSNI)SlFD1Y!ZSgcTSRqe zXtNtT@u)&gdqm0EU&9@~qcId-`&V4D*p! zq!*a4#~x@SV6(L@Awr(aSSKEe!dBG8g;g#bzl=ItQK<>Rw_q+P`p2G&rjxm`=yJRkgZs; z6;DCJDYMA?1(BrUd%&exS!1E}(yMf{djs2s0ZY~DDsH)SiKi`XT&Fwd=dbq<<3aqri_Mdt!XxxO<=cc#%Xb=X+Mm`97-vy}EeXyL@9_r$6jh z1Nluj81fm`w;pSw zq;8Nm;1W|i%pYv#it<@ccIn5h zv$^gpqA;+3ta%_OlH*r6s6q1Hk-4&^Dx_knl?n}GtB@q!s6r9!dWcYnpRjx!<)6&i z3L&ru)*`t!UE>LgN8Rf(GzA&jGf*a2=g-0N6cg#$9mViX8^jX*6RL(&ZG7+#r97iz z=VZH`8>7Cec)u>d#8l;%{cH#Fp4W~e+wBA}AE5{acW0#TA(^Kr?sEz0qfT9aCvwi` zap>weD)R;cJH&E-MeU#Rq(ylwF4hb3fvovI0z0W$wtSau>x#+H)b^!X8DZ1 zfDJv{+=ATp)h(89>pf1R8-w+85ZyucpHQ}b65JiIze0A4Q}XeSYJTZMZ6kYXcEMjV znPX=FV8WhBkzgdhzlair%dB)!&wc*FfSHL6(m9xXYNLIe^>9eJB}kHLe|*x-#!Hm! z*trLu>yks^NuX;DOXD3y$@M%pW0FQ$aylVcN<4b#TSetUP`TuhaMTqZ$=S2nzl1b74~glgid9COiLNV zS;-WSseYAR57ZFzlO31U->M5CEiTd~LmtLw9vnFqF)C&(6hBjQ(w(j#DPxXG@ZoUM z`*zNB36&amT0`a`NH(tKJd|91Z%82YI`%$3)Dl5_I*e){i))NpqIq~a(nrNhfPk2k zo_$6XTQwC8o=8;fh3N;U3fUPut+<)htb$oX(a0{9q*I!3ytk@jeutd-xsu#y0UEFf z;Y%s3BpGc$VSJ%@f`y!!$7Iqc2B>JQP z&RFVIAa!UOo?5Ab3#EGJnOsfTVkaky3JT`FhF@7~E^kqZxjdCMgBd!iplMo_SBdOJ z@=~kdx1yn5dUM1ajjr#U+Vi)xXnr4<_;D-dfn?38wh~e-F$G6W zaW0KE4wbL#J8{d*{m{1GWcil*k~kVIu#$k7aekrtKPVQ0=$$a|VqaLp+ku;mqxOY3 zTV+wr9WY7iMMqzBS@C{!7TZ;SN0H%A_XbCzXiGd{q|ypFXBssurja1%}5NLRFDo?Dq>ehnus zS3$qqDc&x*2EOcF{se9NZ59+BVC(7*+HT(+OsX3a75w%qzT+UT-)%&t$}vh~eV^RD zWsF?#d;EOI5#ty42`47?rs?vMekQhe&AA?(4Rt0h#g|^y)+0Y!#^+EnP4OkbVT5o zByUJPzd3daX?Gy9h@tKA@4xIkAqhj6l5}h3l=$tm0cm|-zvbMt62sf4!-=dS)UCth z8Q!?>AlBtH5_~b)$uY(06~gpGA(KES8A1p23W1(=zKde8`=K)I3WO7a^pklHH~@@bD3@T0lyE7R zaEp}aD3|Dxl=v~1038gXCYJ=6j1)VMl!%PXHMi+_$C$;~kaMV$6A<}AaOZQ{lXK@g|tG3)2Cpzl)=+K3vBHZKp691k_&O}b8(U} zJ?1do<}qsPj zAg4mkr@}L#rplM7qL3}ig+K)pA1aVLA_ea-mffOI@F0~021t^@NG0V*IT$wYg}Oq3PaqnT8wuaGakR%p<*uYH*#97nE>U?yEgF2hv7 z2c$Hy&W9A+*Oxe=I~ow@EHYyvmsBrQLoU)$Co@i*F&VWBx-qX+q+=P?HxV-z*J2X7V#6j%MeG8nAv2LvDm{;4k2)h>S}<4hVih`Q zNSxmuOBRel4#Xs%M>}84rU5|0heRYAKeM6&Y!jekDvS`AKO2VsXevN$!^q`6O4(7%?WD8?v z=TGGfQ=&0M6a82ceR~ukxaWg?6e(D&dwT2)EQw>Hjh8Ts3Ez(~rimh=4dEo6n zoBddt9lR@KU8IKhMThDODzec}B6AD~a9{P4Y(ct$A*&qDP&Cw26udGiDr;UQ>-=!5 z0w1~(&Xa<%qCy$6A~I_B$Tx7o@R?=eolH#GVYG9ei z)G6}PY3ZJInfY-UD;==9jjo2XyuPcbW{#$I%eo4AzpAa&SFpUv{>(t)j9kH{h^RcT z?zGOFzB!A&jjFIYoV+E^I`)*V)%Yx`h`w{lMxyFWvZ=hbtGsdOENhLv2Zljtul(z& zO(T^}d0Kf76GML%ZO|=6Aznp`eOWiJb-zBtP!w4&vURTV*+5@;-Iz_BIm2iY1HQd& zp{s4tQqfN)nDQyg`m~CPDF)m;1`F&n)EWk=HirDZioQ998JJ4!wTdyavZ+(L;@9&I z1jhL(hFN{OMxx3_Dn`B`+j)JvA;HR0i3{U%hCaHB5#!1gri!Jt(=k`Zxh~s9;Q2~Z zWoHuOlnmoE1Q2|st#T8AVdJ}<`;^`0R^|4b%~saMme0i+)5SKCeLYOoY~IB}nH{w@ z7~`%W)4EL6kp$i05ySqi-EQ#3QB+m7PkxSinJ|PAIzw+7(Louu8TF~~ zQ5@5S3|&x`JyRLe8CBV`M6Xcj5z0u_?h?~YTIq>|?djU-Ww^~1(B2s4>KwcJUi;)G z&iWSb^mfbg4x;)x{PN!CDo&lbQvd3->GDy~;mN=H)wuK-nf}H6$|CDZx9IA1$>Dj6 z=@!}a<(8>~_v&4u`U9rMyQ#XNtNP`U`3a&1jM?!A`gJoN%b&;p2DLy+zpMYUBmFY) z_o4wRG($E-!z%vZfrL6RyFxJYA~5@B*Q@c#~PKN`b4kTDtWgEeG=6)S^2&@mtP zu^-cMJ%I76X2LKagEA;XF@VAsiZLJ~116*~5s$ACAFu=`FdXk=B}fB4^zl2a0vj}} zA?WcRkFp;JGOUtT)mgGD-e&Xa+MAZ{so0!yjJ*9y4qQq(SC@LOPJKK7a!&WX>9N z^EZ=mIDerD;K3o_feCb|8W(IXPvY+OvOKFJJzp|BdV(gCF+8NhCi6o)yn+YMY$l+C zK!1ZPYpXYdvk+5nB)cy;mg7aoGcYf!FgxTcsKY*xu{AUUHS5DNOadEz!YZ%=Dts~< zmI5oVf+&yx8=k^btHK_HVJ9T@Ds%!fb^s!%0xPV7D2QT8uXIbJ;TnWOQmX=2gJB;~ z{+XFqU zgEVk6B9=8j=mSfKAtDgNJGeGD5JMlh0yfOUZL5P0b0Hg)0yBKWJX|+DyaP7=7=vna z;UpA8fzN|C3_}`_f-`(~c&o!Rl(!gSLNQ``QI5Yz) zoU|93wri_HF;GG%1i6mCgEY7TBsAni4{Al*G(2BoMr-0md+$4n!ZjH4I;esqJi|!S z12G&z7!CtG{IotO!zoBZJt(xbr(j1 zF~b8ZNP|6iIzPYzDr`3gbiy;xgFdi&9qR)Ij-c*1YzL$iarJzxWW zb73VIL$>q7I~c<-fJ3eG@jm1OI1~e3ccCG?LN?q(v;Q|fd_yrH!WU8kF?a*O+q%H3 z!!c+ARv&{p_;4SC`aD2Gk8fcss5B|(!!rcCDI_#MWP^%#;V3+Jz1w>}IC-#l;V`^I z85;vJV8cDwI;g_~GC=&mV)g@T_B(U7o#(Wh?sPv613Ub*9cw}d6vI$A0~)V(qW`xt zI6A}Au|8x2DO9=^UOGr8e8AW7JuHJ4c%i9-^fSCW9lQE=lm0@Vld?cx!&q;j7kC38 z55pIBfFxu?9sdc0-*eUTaXxqhD;VOm2RImB`@7SFG`xeYgS!@rKq&O^-&;L6*gd13gSWXF>jO5#{yx+LIC#T5D8JQ9115BUrH^zxc!TnX`ZrKGq)+j_Yhl?N zKS0de$B$n=d->p@62YOdWS7 zBpYKE3GTc1O`5fLATeSiMUrPvpByuxOZiRJPY#BP-6M!^9Y}rm@Wm?z^jSWL`sQJK z7R{Sdg88hSB3a3p*LvU{>WhbN9!`wcQ1K*{Z6LpW^|C>GW(}UxY^_L2Di*IUzkA-I zLAw?Y#14ydGg%Urh}I&a>x9oxvklr@mqQt>n;4IjjP z^T3IwR~ecpp2OY|wD-;;)^zZ!+Wxl6gi+_up&R`-oqBcaN2X)9Ufqb1e?_P#`L|@r z5GG9iHEHrsh>(9#q5uK%kIM8PKXhF3)F*oWfB*hZ$p$2KNFjj(6Q1$vo?;C7X&89w z(q|ufkjbQvJ`PF6n%aajW)G5_;cy=bzj;NH3lAygox;E|#lVrGX>6Z;ycwnuL=f== z5ssAMkRN=OspP^wDp|%ye2^JQgjGzhz|N<$ft@KI)=15r_DGigle0}nhTc?F%i z?qTM?pMn~ysGpGX$}WA>IR+F&8o{Iz4h|V6o|xuQMw30fz+)0uys0Z5W5y~grl+h~ z<&ZukS;aMo4jt?!F6eyz3i*LUA{<$x|{n#yd-N9m# zMpTZ7fzU2#xb5k|!s;_@QK$2`?f(I~;@Ms34dz8WBMGiV( zReS>^^%#a1Mk2C^5CacAF@Z5KMG$XL;$$!*2sSVQz>!P|BGy1)PuO6Mt0bu-#^8`X zoWT>5G)W)UKto4Np{1OB!Y6%5O6f=lHlc`ZO+G0bM!?~UtC2(mY^cO4l(CFaXs`pK z;95bfF^at@3M1KA{)O*2(gFAfNGL>z5pRT!Cx%c(F;F21JOr)-XfVVmjL{5N zXpSSGXhw3t@rsPSA~-ow1s1VJ3exf88(-r<>})r?p45&Xw*$&#mhy~HFtHT0A;>(6 zA&GAFkss+`#Sl05if`1#8*yPD`>J=HcxBH!+xtiN@CCkojn7}^3mEzcc1m4xWEI{3 z2{=Y^H4-$#EBH7DBz!WlOTOZRDs)>+n9-n+`RE#x&>%-VVLyJ*;}tLDhz0d=44U-> z51um&F|LUC=A7f+F4SxiU zLpY}cCSU{p8$kI*rsYIv9N?R9nDHT=bYLzi@rEKf0LHqg18GS!K^jPqP7$nu4c_EQ zCwfGXca#*S9MV<;d(sG3FvA(nK!zz`S1K#gPN>Y{z$r?lj#uz=a}E27BsYmXDfVP^ z$-&<)rexC#c{gIR5IBPox7P>;Ni9)*uat%tMa>Tv|-j zVM-3*0UDq+YEKNISuy%XhiW1lLhGRny+%iid!pzRy`rsjg3+U2bJhvbVGO;o&jhG& zh)n*8F{(j+!xial=tJ4Ch9M%dksu`rBOS?s+@++8Mp=b9i^q}U0ZCmX@dPmm0uSr5 z^-Nl&4p*!9)p}J&tg;kezy5_*{HQgT?3G?8ED1jb@uU>mgoi7d*)9G-V-iN$+Ak@Q zKn~r582a-G75Tvo3tP}0ub`uN@7C9dj)VkZ+~(Ivu+Eg2sUxjmp){`62W&*E8OpHn zjc>e+8QWzY>pc@e4eCSKD#Je{s01sD(F|*NBOdsOP62ods~HwmTfX$IZJn>EX zaQ3sI-I%MkmWQu33z45=h*v~I9reHmKAwG%+j8Wh*}7*>s;m!Uk;GXMT+~zMkqu>d z(I;#$g)+P`52!r5FvuOr0FlSqGtt?{thqD8np6*D*!3r#2z7d00qA9vcO-*OZ^1F` z97O*EzVc#pSYrw4vc~7Ex2*J9GtRDKgjgT;sK?7;UXOef1{-lTHAduS{**nG3LdH$ zrvl@#idgr=6}##yPC39~T=yiO1lhGwIXJZp9ze~5&P{qtI?b5V;QRU$tbi5j)*C69<__mPkOd3eL8-jI7m=}vW$ z+})5^Lqo26tIY|upwfI z4rllQ8zM`A@&OriuP0&(Bai{HnvnUPaQkeB4LM*BwlG^(u_QiXnbrW#vVr1uE+*1J z&M?glg$xdB=oM^B-Cm)kuqYJv5dZp+%ECz9`fsC1APv}n5?%ot8lyxwVic^wP>?|r zP>LjK%HQbc8U|t?>TKX5PZS%;s46EVCh#YW3naXuhsMhl&5HzO5g2Px(X8X+=qu!Q zQPL<)_JGkjN&z7Wf*y#05-Ra0fl?H%Avx@!82%Q@2j4*zu(2nQ0Vek08Kj8=6o?3%lz2rI^okXR2OL;}h*qHbn59@?xY z(BKnRp%q#|6>P2o?d$?MA{DTqF0$eLNa7VJ3nQRM;wTQARPrW&q9tz;tYT6ZXNeal zE%ttqHhE&MZ08eZO9X^*A0Wnf_-E97k0d}LD;Grfrjql9u3H3xAk;w=e5We|5uBc` zCptiCV!|2tiD-!J3*liLIU)^)0sEvO{=rBB4~n4}E^DB6sGwAHBz`EienJwcNGj$L z9{!Tt`qAzP(~uzHjE>0IVv7?|i4uq8}=f&`kb zG*aRkE^Qws)CVQ0RdQ%30)K))3o5HkBdjb@!Avx~B7^1RC_W>Q4 zX(S}!St4W^ta2(_#}j;~6pm||RMkrzNE+&5ACwA!kQ8}FOa$P`HmEP1)&QaQ;ZPDR z4O-y_BjOnHwA%I*e%OyE@vY>>H1(8hOkWb z%=21NR%z8nX%JUcP*?sPjaMVhS8MV&ZFTP;;u<_*wgSizJBVcYiZNs&8=7Gmq=6mW z;v1$EL^uQ=5D_b^ff<pv$nKI)eWC+EVWKbs9h6}eLV*>O0WA_QQ2B9C z5!T8E4{-TJ8j7J6T%j1Ofii@n8CC|sXgqGLH~koEx|z#$rz zp&86}T&)Oz$b#i?BO3=qyCok%NK(+NGl;4yrM0Q)F)a29YEq8@<+V*M;ZvI+1`#)qSb3l=UPrJ z+-#$+GzeS=i%!Rm-!39dqc6qWq;;qe6E5`K@*#jRqFnP8Kh=+4jY2QaWkm7;A2xVI z-eDgB)7(NAAV&fXII%FCEgv=*C&1zqKqgbo2_y6Yh2Jh7yy0#-_IFGZCq@K;31S^8 zY@<-&G{+8S>F40)RLgwW*$M+yAC?t=1SKnOHo=zzfOgTm!(GldeaUKl%cp%$?tOu? zmp}p@UIFQxBNGA)NmPxmo`D$tSM21NjseRs=Js6R&l)}212Ey4#10aXLA5-$h3gL840R;D;JY&UB5Fk; zNCFXt0UU7fl9&M*h&VHq1gT;f{;1zIL2fNF8Pn0LvK$LPhC9G(Rxft|b z5sblij9;>h&36dUcRJGeJ=XY^+}BuvbLBdyX``b9(D{NEMvo~$kSbU!qahSj)zt)f z4~8Kf++rU@whz)Nkrg=;3>g06K^ZcElTqgC!;?v3Kl>Ft zA>oz}?;cL&6HwV;UD!YqmWVt78MHR+LX;RJ0gyUi4NgHC=DDDV0Thg(mjh7~jA7IM zY-1jpp+Jm+4OGDz68Ce~#AOwE6qteUQX)>YHJL(?XR%pWwV6A(Ijp=HjrT>3|Am~} z*qmvT1kfN2%vyPh%&gBEWc2uAOdu4Dff<^C8HNE9(Ap;y=pKk!5H+_MYD^W@P_Ir( ztu5M}P6`!}!LOU)7*GKXOu%VLVzAe`KUT^UhC#09x)?+O4N~fq+DNU@fC>jvt)DPy zNPt}8Xs(Tc6ih$_8Va<1=P=beA|qF_LmNCv01{9kwQGzR?76c8(F8hy7>2hQkbxB> zA*Dt;4LCcLNx%?HA+G%z8Cszd9@~Nhrh!*#<2>(*CnqJ+{cN$$c_BSkvz$-nmWq2o4;9o^?S#G zRjiY|KY;v9guIxme9O7K%f0-|P0zhjkc{p7#-W^j!P+LlyaxFP2-zje*F4VUe9q}S zjF)^mnp~@&Je<*-$JM;f_opu0Jjf4R%K`n+5k1irJT?i?mx$$wp$(`2SL%-3z$K5^O^?l#>9o}_y z-0%C$qy5%To!<@q;1Pb){axIho!-6r-f=zQC4S;5e$5x&l>oln>;2pb-i<5%<3T>; z?Ht^Lmf`1}tId7j)4bqCzU5v1N{&jxmd0xiFe0)nD;~O63 zZ5{|9p5=Q!>6L!zWuAM6zUCjkhMn z2KZkR?uWluBmej(AO0CC6J9}JO^^ft!jr2}95}E!)v8j#g$x@yd#}TIifPuutTF$9XY0w)PZ3KNF+<5La9;`s*VcJt^CaS^<51D$E>N2L8 zrw%bh^cj_C(rW>`ehoXe&ZV@8Caq1h>C^tGQ~y=HnssZ}uVKgjD|_}|+San0JAV$B zu3hL1^$sj}Frjn7gfDh5l!}$6h2K%J>a_5%D^#WnPHq*7L_sv49=GS<8NPfDY3iS1 zZU{o4>_=UJ1|HZDZcE*Un{NL=^^a6kS%uXmn1%=`nV3e3Y{{po>YekE1MOB$SG!4mx-F~1-J@&Icma6X(H~) zCteC7rBs7XJ;>XHz*#64MnfVl&n(H zDm@mYBX$U7QeQ`@Gy-aeAJLkt6&mox#r^Zr%?>n<{*R;`bJ@J7!tSPaUCl6 z;ko+mThOGahVsgKq##sNrdd{^>nfy_LMkhgpeoQS3YU_~E82y+m#VIq(n=}=>#7QK zCTQY{E2@xU3M-X0(r+I#DI5wau87yc9-*A#N-L(2@`(u@KndD?b4e>6s&SekEJJLF z(h4Y{;#o@43lYo8Cmfj2{s}9j7`zZ3qg2gr*yW~M)Vj2_TPVDTUO1eF#v$h+b7IfE zr@zuUJaxsRq;%^lu7EOQ8kCvh^B$@+&7uimnj&ASeZ9iUUmYOgnA28D!it$QvN6hI z!j8P2msjIyN~YX#R?r?Ck77cLCO~3}E2W4|Un``v&QKblv?2-#{k6h+Lu>3FpYDm_ zj!`JA#7B4YAd+ocpl9b+gu7E!HAIC?u&rplaQEP-^Wq!mZyGa=N1i0Dtg@B}p4e4o z2QH(sM?oe`NggDusN$vL2e}dohM)lyt{{bc(jba~#19eSA=d!K1S%2Ss9%s64C?yj zGlz^!Wfl{K=r}LOtujD|=bt z9=+byA@JpEhD3zTq$bCTRd}HxCLqap&>%B%<-}K4LPI55!9R>$r!TFjR*o{EGx^}b zJbzh88p5 z8s5+-O>s)~3WYuG`Os~Q`iBtZhR95|<%pD65Ay!?3a7C_6|7*HcT9kYPLLuMmdc|4 z`~s&iPEHl8$kswe){0UvX%8(?MJOb(qWoFVC-P$&uTpXtR*b@hC-j{knOR5`x)4l* z)TA|mqDcPfEv1o0cw~gGHv}G9Xp)Pv*I6!k&2$3gh?q<6;>@1xChgiWRB&p#4aO3So5s4@~O_e9%C_Vg5uts8|cubS5?IgaSTDs#Gbs zRuE!ww02u-2-S|I&XmpudW$RyH@zvLNcJ#MKddA=Rf<#Z)a5Q6n1mUSDb@G7T#bx1Y^89SvzeOB9a&x zhW<3s6;H&O6v;yZCh6rBjLV->wYVc#eld(37-Qs8NI+5W%}69j(<&Yo)`*ax5t@Jr zL%>6=f;1u(ri#g6C{Ykj^_D!77z|o_I+%ZU;93t`Y+wJ%t{g%#oRTbTIlq@!=jPO3 zP<%xvY^A_Vlwq&Kr@m;|X@+0Uqs{# z)}%`TRiX*Mm5g_vd}Er|9oK#x0%z+cg^?2)Dmvcyg?jyGgAFJVN;qcz-KB_ZmSj@0 zl7%K#%4)@WOtXhl98V&Wpm)hu@d=1Bu`vl>g(nPY0*;qV6`e378q%F`RcHcPD1=HNszIc<*Eaf5yBY;U{Uhr&_?z0`V3_>CknUxcqbOp|c5B%W6h4v-3 zJa2HHdEGCb^Nkn2^PdlWpAetWwnshY6R-TukEQcz_kHxg4}RfKf7{0YCi1aQl;v-~ z`QdNB`++}xm{mT&-AN%~TUw_%hd)>Ex1!#bO*MGTTcmTM10(gJD zcYqNnf#jBegYtif7l7%fefENX6X<~-$X6BENY!(B7}$Us2n1BHejNycE$D)oB!Wai zg2%^ztfzt;2!SuCgF84rG58>-M}H@{dpF2^H^qZTh=ls$gEMG;H7I~Y$bLyEg;TgE zO9+Hch=Neaf>g+bT}VTeS9?r&dssMxE0}{`h=yqh82(mRf~seOW=Mc)D2H>%7Hmj^ zCisRp7>9Johkck6cG!e?_=Iq1gnnpui|6Q$u$PXjw~o8`dGBbCqZg0Lhl=#*efQ{(ke7~I zF^|mHj{j(o2uL<9HFlQgE^4zj0-1|8)r<#8{*i9SQrbjl3>g&;sXY)`Q-{?96IqcX znR6Fecp4cY94RjY8IlD_k}v6ECMhT=2~I@Ok@^^mmL!re$&=0{lhH+!Dv2mKiFPen zkI~^PNvV`e$&^j$lurqjQ7M&ENtIP;l~;+CS*ev<$(3E{m0t;#VJVhlIhC;SlhYHF zzwwYnxr|2HkDEjSXpjaw$8&XQmv@Pmd8wCs$(McUmwySEfhm}SNtlIcn1_j&iK&>2 z$(W7ln2(86^a^oWUuas2NPLnUEMco0+MWH+h>!DJf|% zoY5(r(@CAxX`R*<=;CKR#>bF^ub zD;b{OGoC%6o9wBd`^lgE>7TpFYjFXe3+bKnIh4)$mOo(vq4}Q;>Yxt_p%HqQF(RPc zIg{R$lFLb-A8DVs*%Rd{p&=@wBTAyvxdtp(hZYKy7-}fM@ogyhfI8`+JOQ00YNI!b zqd6*??ukt*ik2*@k}tY@G3u6hQKLGFq)DozOL~_)`V#}HfaO;d8Y-mfcZv5&qfDx$ zTgs&&>ZH==qnHUHQ~I5R<$(T#h^0Gmq+QCUZR)1x`K3JprGp}+Es7OYx`9QQraG~v zZ|bLi3aGmor#vyIx&fqAx|u_YrZcLhf$FG_3aL9Zr2% zhhdtWV``^n3ZskaoIug4!0N2enxw*tF2ri9#u}u#nx`GQtUuAL(CV$X=?|2!;R&k}wI9fCzoy1*0jh5mBg5VXl?9cv^T)Jzxpj z>J#k>uM5ktgV_g_5dI3KU>;aR3ZPI4dmyR9N3AXeut!0L1B<2yo1h8Xn210Lm4LD- zi?WcguY`#QogfOIa0uAh2$etyebASEfC-(zvz34ccPR;#00|AduwKvzpg<}#!4V{9 z2rb)~{R$EP`hy-TuzE+ZIw`V7+L)$L494KKU+cB4APIjNw35)WnE(y*a1EmHvyf@B zl`yl2sS3tW456@>FRKd5APv$G4aQIkm{6B{Fbu}v3Pk&^cu)x~p|rF@3Y6fqiwU(4 zA+@)fdyROdS<9)7X$zC4y57;oeY+wk*APvW$RH9i7 z^Kbpbz-)4bt!o*02uxa1Y8r32bn@$-BJY+6M_l6QlqMBS8~? zgR#~-see+bPO-hGTDg{}r3IChBc!>zhpbzMi%8(7<;0?_%E?y7{ z%YY5}kPp`&4aG3CM|%v|fDYck465+LkU$E^kPYZy4aCq4x4Xu7Sqkc~58hx3c8UH6 zuMiLS&!NVX8&EN{hP|ns+4DrhbhY$+C z3=Y^}46D!#(C`YI{0YP$4Hqp9!_Wyo>jjcf3jTc0%@8@DES&+Ov;ZUtLcO@85Xg}G z!3q+>MliyLQo)fXwuu4)dT7XblOafDQDp5BpFL^Pmid zfCqJ~5B0zfjE&Zlzy^503dnob^gs{SK+pkf4ET@_$bgrUfDF%Y3=&<=mHy4v@lXtN ztO?9;5BU%e>oC~fzzS^82*{8R^?(ibAlMAt3=bS}*6_yju-Dcw5B4zIcn}KDa1ZwY z5Abjg_23MjK-{l@4voDI@qiENKn$OZ)WV4gz_P)#q$^5m3Yv_Vt;`UU8?bITh+A#T zUA>r_ix0|R3Nt*zpy0TWpxyDH46QH>*H91HFbb(q4Bns*;D8Kuy9aY!*LSTC=%5Vs z47~MFzsisf$;=A#h7I=s4#&U>#sCib@C`If4AFoO_}~o2zzTif33kj5%HRsdV8`&l z3V7fN1Y8f$Pz)$-5BvbYc-aj6Fb}QJm&fbm-k=P|5DoUA57;mX{(V3U@L&(uKn$&* z4E2x?(a;FRoe#Y(ElP7l)HLG2x!e5ADBf(pu}w5hPm_dV6PQPo$iHd*bx{;joM&Dije4yS(V*w6}% zKnetG4YbP&SuP4VJJ&4D;dYG=_FxQS>k8_i57|Hp7<&x*yWXW>4A1ZiR}AR&z`tye zzxx}v#-P8&fU|7C3dr0HeUQKU01cqc2C1M9PF~P?twFx+fV3D&Ug ztFQ;Lp3OWb3D}?y-T>9eP{7Ub$&hdi_;3%%&K*Szzlc%3T?{<(2&}AS?=ea?p-TI94~5&(t>E3r01%Rt<(pTG z&A~>*>e)M1Ntr%<`0h=-hi_jzVw8%l%cqZCHfF0d9VA)O&(&bB-F=fuA z35wM#oHN&gY6bz+GRw+i6Mh+q^9|fJv<`datPw>LNl3Xy&tnj2<(+$)8O#exSQ$nXN-|-k zm{T6BWXySP7Itm6+jbkJK1gxJLS#Kz#X?s=*~3|Nqpj8{YNbsP+kdp>*2QmS9Jj`D zaYVQ85ZQI`FMO6!#T3jj2jvh|KEq}eQATN|o_UyLBN}|z8HSWfyzm#`DnBE5G=mLc z<{pel5rvp^YKC|;dh%)J6i@J2#X4_V8D$h?=&8JqQa&q)6jGq6M`b=qYQ?&HpjoAq zSJceMn(3;`c~SoEAi>R>Q=(I*9-%Yc)aXu;VS|!pDzavnVXQ%rp^l*r9>$>FE4+b^ zYn;Lr@4$yNOd*O?LfQg=i{~3JaMcRu6g>ww2%5=fklKm;E3pa(XNv$B(T zVHn=H$3FI<4}N&W8ml;n`4nX|MjhfW9!bYLz!*QGaSCZ{*uyBKF^`Vq;~m!M(lMyB z3T)gXAO7)JM@7CtjE*q_lkq^JKH{Ma&R|fMv!ta;`T&Z%;lvf9s6;O-VG5v#L_#IZ zAyQD7LKBT>a4kF>3}Y0o8IkKo=h9IznX*F$y+RuQ`Oh%~r3qtL;~VGz2R4*JiZHQ3 z6UVqlIU9uxYb;|h;e>{u*dU5#T*DZ#(xx?BA)Ee<^Bd48hBd6gigar88{kkzoY*i7 zX^ayb*%+Rk*gy<%qQe`?z~~@Xl8RM= zy|D~qT;my{K*UQ?ky2Dh!y2f(lP8Q34QoWh7$XCq(NN)xnu5a{(HKUYywC|`h?Jz( z{x}9oYxz~M&aw}pXoazi)rwG9jBnOV$}t0XqGe`_McsPQGiNAG8$OP$d%0jGPN9kp zW>1}{5QSPBR0&k5;uPsbNhwetNMWUIZQ0g`P^@BZW_1N+4NJnk8WV+YRVEAN>O#6E4w{Rr zq2sC<+@oOAw$r7qOiJ|)X_TT9oj3(>)_a9@v5Hpg))lN+1t}mKA!1t7 ztty18aSJzB#Kll?G;AC-aR^=Mj#t3rodh!w^o?dPLrL^_Ml1*XU#XIJ) zfIFPS4_8aXhI?UMWq9J|`gg_A?QxU8dWcgLLmA2-o0F}4*UR_)N|<4U7BVMU#Y=8+oBjM}KnEIwZ|+;1i#zA8 z)H%6#4p*N0yXO`6S^;OqQSgq89F+}dX4m@O?_%qr}`k7hSsK| zGGrIpIn+pgG^x?7YFy`9*H~sXk6e9~PRAP5c&7EJ&m3Gy?^@Z*X7>J9d%dGyKLyr` zE-|s0TkB)*HQCMPcDKFF;T1>QDbxORwHsY*GyfOa-)48a-3{Mx50}1&CY+~bZEgM< zTix1zcfbApZefUI0M_uYZj(5f99pa)NJ?T1U3)5NN^Qnhj>@OBNQ-}@~qq`94 zh*P@CyRK(juY2rsr+awIenP8*_|;ig`_`8Z_iTT>?t>>hSpM%WB6;imDt!OS+P&5G zgh$isJYTU1(r|gqXI}H0=X~cq|9Q}dUi70Ued$eqdeo<0^{Z!n>s|kP*vDS>s~17l zt7Y-Mqh0H4=Q`t>&TtU~U--i(e({ZeeB>uz`O9a1^PT^E=tp1r)2Dv*t$%&&XJ7l< z=f3qjV0&rde(}2RJMaJgd$1Q?{p)wz;oF*cAv1mmj>mcLC*SdwvtR%F2RC%j&XwJJ zJo^JYrz<9?<39vUK$CDk;mW)CBfrM;JGb+_uPZeLyg&?W2?jih|I3yDtiSWCz+1~e z5-h=01HTgyKWURc`fCEnyQ}+Cvh*`S8dSgylZuCZVlsFVbMQU8dExbk- zT*hB)92^M5Ib275R5fr^A#ohCB-lkJ%()|5i?>TLd`!oETu4*v$77VUdJ9NCB*^_b zNE=E>!DC2`B)N9H#Vj1RPLoJ^q{!v^MT8W^jNC|-6f}o?$AXJUfgB5xoFR+E5sZAg zwW)+os05252}#fdOxUnq*@H~bgx~5hJQxL45UmG0gw`Sjjv>Pd(}ZS0i5NqLQkX3Z zYRQj$$#^WsMl48^yhxP9NnsfVWFUr4=t(wEg<~iNt#lAgCN4u&l^3v&phF zz_k$|VwePzFortvgkL!YZ+M4RILa6E0#C4pd5{Juu`Nkx1!UkAHpm2KhzH7KGfyCf zV~8m~8--|i2i-IYtXcd5Q4j@tk||LL1xk>F zPzVK0SkV$aQIlX*5+wypu#-(a)Fed(P>7R8z|~U#1&;C0VSrH&RaTO~1W^dpj+xd> zcvLqPEMK|IE`v!0{uRsXyvGMMp$LtMXt0O!NSg)8(1U;kQ^+cH00(J!1y2yllK_Qb zhz4*_2W&V7QwWptEQV$9hIQDeQ`oRQChjq}WQLvL^u!drwsdWH{X82B$2!(?3 zB5QaBc+$;Kz$lJ2hSvhBfn^79hz3{C%0nn9R6>M;GKM5!PGblKSC9sDNQZe9ltW+z zX;6k%z}a+=Sg(QvRZs?OSO;{F21&^dQrOs~C5BKy1XaM<;IIbokpykJ8LjU25A6?IW2`fP)+fWS7~4%@_CHZxCiXg*Y5EI;*bV>Kn(ju zhczh$;^>6Yso!YuhICMpV<3)Ca0YvL2WgOobhrm;m=rHiO?$uwXpqfaK?y@}7-e9C zMwtGSY#3VEqzCBDh6?T?3Ni$RC|K;$PkLwu)a+buu!pIVhIRPV!GIoVs0W?326mW- zW*F3F=$&_X24zr%$eaggkSWt-hi||JX(-}!AcnoEgpHU7Y={PINQZ0)ViryX|MA~% zm6sLPX( z1Xs8Q@sNgVfCqKJ-F1owXn3tj$dYA1O;13Ec-Sdbz=nAE25%55c%TPnm<~J;1!aH- zcCcS?5M@)4Qe|jgel1*l^#*vj1~ydP^;eVsA2)ECZPE7nz;txBjlj5Aq2x0M|b`%CvrXi;fg$H!h7_}PbzBHYU_egxSlQsM3 z?$Ec!8bnU+UK&pnLuP=$g+M3_?j<@z#|Kt_)DDUBY`eWS*?ggs147#|xBPamX21y6 zEQ1UQp$NLgJ^_sD36zdU7;VU{drj%I#G1IVrzeUr9ifOAiKlXjb>y;hAR1Tfi@!TW z>gskoj(|qlQTVvk?E2V4ys(iW@s32~5q*>qr8*a=@3(LK9Pi@EpOb?musqU$cvQTK zIGN7n9Ur?%ZF6kc2$uLaMsj5`Ep+lyA>rQ7&5=$@0T*V|Mr>FDMfo9{0Cw#5c@*ci zpVfnLxWsy7JXNNMCj=_<8e~jZU@<0kTc$AbWn(M~<#{``1wGXryCHLITy=1J`B(BF zo9osMqc9yIGgQVVvFn<-QJ+)AO{*-H2$H))xU}4y$ylaPw}0U-DL^L&w}(w@8e@N( zv&vv~jxZN7@y^O|`l1bLE)-mfaT$UXI-+_*KLmBTD7qdptEl0?l$L^0cfKr!ZWbiGENRY zdQWam(VhfFt~l=_&pbh_iyPAgMnBWsLxjd-6Hn%lOZjUYvr{&Et{I2kIoQqcHEqmA zweje~<2>!+9o!hSmP)^il9RTdK3L}JGKllMr1-4!Ei?hExTsHPt+(I%VLD=NvQl&V zYZu5xp`aY+fr|H@dM0g7?tMgY?&h4vrz@>Yexp{Q_1>RW5UZ9sGwnQMF+4F0Btccb7iG zOxvGkDPwplf*snt^^^R=AhpIsteJFiVJ=}+QH(wpKjK`;oluUuhllDSK%_U;I^I5+ zz=j%ec3z(wjlk+_SkeBhH{Cgl<%)9?J@`RP>1ZB;T?{Z2^$I~zC@KO720qx(Hf-ny zue{i&8?ecYPpR#NS5OajOd-KO7qO`pVoNv=T=*39F5Y<^hzh}0 zm@VCK6h%yP1lq;>KS(sQqYO~C%hoh_>lYmI3u9_WF_0S{T21-l%Ta`xkjeL8lfBCg z1keLE0#o>JquJQQ>-l*NG2wi&F%| z*@sYgCv492Bp5fj20ci;r|%)Mvw8Dtv+6&)XcYOFMW=%&P4g(m(?$YAa}nS-D9rjH z^mKnheyDP$(c^Bfx=>K<%upI9G9Q;cx}*@cZ_^#&Dq<-lT}i0#mDr<$AzY5re*3oV z7d$Y_OsHu&2j$5*4fd#n&r@+U>v$U53nhup8OJuv%{x*Wef|)(XA^38u9wG;$+Xf+ zcGWLxb*R=%OFH+;?RPlE=Q+e0TL|i5tI2*`ae=KFq;OonNv;}hl{G15L+7tgP@I;`D#MPE?F=G@Bps<`E*g!-Intmr zI!a@W)0z^OjUyVI^*yBNLX=wQ@fc5tDwX0Q3Qfm>>zvc(U+i_%l^92C=_(AM9CQ>H zbV#6lAD0-ZRdX82CN!+&c(mod0GuWihGg(`$aH%{9rZwazip{f2fNfwup6fyh~CQC2PSBh3V6+oV5T4Q&bDn1h-L1nsx@TZoE z(5;$RvHCVJBy>1X&Qm_Y<*#kw@is04Rt4Egk+QQtP2vgtF~4XVLv0EXJ1}R2sJ<3n zF!!I;#umQKPuzjJ{qroi=U!P>Nnr7K)62*D?BCMu0B+|MMWN4tHEVvZd;!zB-C;X_|t0@^O`Y=I*PZOy3+MB_$!t7%}feB50X_= zq|Vfkpr&e$?Ynm9>54=7<~v z{@eMaSJw^mn$KV=r%2cO;(_e6iY9-qN_xoNmhC_YrHmXJdAq-D z1~tSZyu*QU(qX7kj_*g~Jwop_NWqeG0T5t>LajbVbK-8nD~O6n?2&%`6zl;n`0 z8s1+$ERX+|0e)SrE|Nq)pm8`)Z#zy;a*JbzXi#XA_-!nkD$_xTA?Jb- zofaDz<52Y-R)Q$KsJq?%V~;HERhms{lj?h{Z*nnr5ywdZ0f%DvBMmuJ96--`o37M{ z+=AvrHq1ONIn@biu?M3ztfyofQ08Vu#3Y&J;@r&Db^C5+N%AT;qhNxiyTi18<_one8RzJA!{@sqhfBpJS)X$X? zxrX2W`Aa{FX6ytiT^@@VtWB`I79|%3_pW>^O| zjc%ew7JX`AnBl?V(X+1h#OvgUSRC9|%e?_yWS&Yi)wnn}lLMhg* zM(a(r181G-;pAGg8UZfC-CO zbh+9WVmJSpWqr@4EX&j>F+Mf4h>ScBMW&9A$;ZWKyyL$4!J@ z#?yGJrLmhBEa@qiQH6|ivo3|i^XeODoJY_paoj^aY4*LX-}A)rJQhGNMFSjoKB*oj zXkhrj<9|Xz*e^bZW6ObX&;F)-P$t|W)9*wcLk3i0da+idV zxN>|#k=gclmcXk4m25>PIXJETK@u4Cn z#W*)3^Y^=kBn|NY9IHV0Y)Q@#|TMmr&P>> zfkGvN8?XB4Yj1y#5MoA~AK&!OiIR-6N&d+WaU|FZ&`~83Qb>;G@4zu60`<(iyv!16 z8k}t<0_MfYGZp?2CIs1+X}3}VpHfG*K1%Gm-nt53N*}SR26r@CAcaJHxx~>+;Y>Kr@9HZA%5mG>2Lqw=>GCuZHWgDo!ja&cAxMardDv=Wn1rlf{N? z4O&XMU-OI@ajC9=Sz&svpRSw<$u#54Ad%4Q7YZPO2lNT~Q0M1vu+7-BC#~AM*|0Ng zG($JSdX2(IjUr466zwgQo>@NEg)yycz-=}}tEr?Rq+^4mUv%iWl_;PZFL?EmVNNi` z5YTQYGR}PykqHm|&Bgt5<2e(jtHP=q(dPBve!>Yg+!c(Ayy<~y+r#~c+HxF3R_?&5 zkdhIk7;6^so)Qr`GI+E}3Rk(KGFnh)Kz>|DS~QkkYD>z-QAn9|p%iyt+VXuX+?B_k z!4u21VDt>U>2*kPU)vUb0+;UF(hKPm0>_HcA?F4h2|0aD-^yv}V-?e$D1e+qw5bpZ zr5s_7VKLkc-J9V#+;5AxJMiUl&E?PAx0D^6G@fp2_&GiLWG`5}_@Eh%BRV|U3TUz4wf2;8wjZW(OaOZ(-UBPdL z;?72L-&(ivazD0@Z|t=Qc-cz4+8Y9odIw&;Z`%l6A>uVB)QJ{4a%AVY^*Q@gu+Ek% z_QvOv#@H>Flr1F1x3{|6azWn=e&Q^zE7)07h3sM#6;j8Z;Fg`g*a}uc`@UU{@M?7| zn&9xLr@RJ!&S#;BPh@70*Df0sBQl^|2L& z=)E%ofqD|5LNw84FI6qGDkP2eWCTIRg}CMU@FbFi z?uz2FjPAl_lY|p71v`Q&=seosEYj^ld~fg&+SX}!AS-{RYOQ5 z)ku%PQ!`@y4$T;;cQof?AA}$!HA&OdkqeNOlMvGQ zFjAR0Xe3EZz(k@WwQIJobUG4R2?k)KtHO8+x%5 zne9cMb3%@AB2}t3B{+QfZoZ*{IGO+%%nEhJ%5{>IvFvA?x^GYID?1HvGs6y2WI zfn2NJ%%+^+WeBnKV3mT*WWT-|XVnq{Ua&~8E};9VB@8_ujf5CxK7z!)(XRQ)Ra>HK zzR*j3t5xzW)n2fvwY_wIug%}WGF+uv*J^m+VeVnGpY^VGzqv`U8~g3OlDmRaY>V5( z=K-Nx?iNumr1_fk3_Nwq+v4$^qG0^L-&0Tmm?u-je}O4hOB8_6iE2K*Fkie zu$N%{qGVU2zAA*923xo94b1;NT0 zo1sySgV{Ir)g<+E4np%5s^k0cg_R$=f`>l$(#1804MGfrFbA(``Z?BP_?L_)3H97f zuYcMh6}V!9LsTr*ke@l;SZ>}smK8Edqxjl~`>OHG)TS=Y#be&j<9ml-F~e`EfqhlUSj_{|H05I zeAw*?X85UY`pcH@&18)_#yM6}gH#Fh{iE=*JQ4E=$?Fr`hJ?AAbV#gRiooxe-bMr) z5$C-h=e3>(VZXkjf6evP&lkViAb3CW1B$OZrUt5tT_!QJ#O{RlR@A~IA*4cfHcPFe zVk5;R@YoqH5&;NO(!8I78mTCENNOqaT>M_D+`S8yql<3$%b&BC&nu`(c7iiW{1vfx zb;%>qqcLlu8FpE} z@ACtF%+hkKo8)_rqh+%Fc0uTeetffj-RSb}nB%nRQMd2&71373*WrphB#Xy?iHMmL zO4hsa92dvjNO1*%FZDyAv1=h%2_9z4O2=~oXRR35@Ixdw^Xd7$lYGr(+e~n6#PV@B z!&!0u%s&wyPlTg*s0;kK8oUI9hXnuo3Hxfq|6g74+`*|*fAu~7Q+Z22gXO>eE<6C+FE7$&onQ5q%LS#<^l{Zj#(0-ANsfK@3bmh1TdyZh}IFfIqv+v%2mc3*K32)U^;h90r@WM20giWk4?Tz$O=g; zxJ)b$!8SOwP``6Kc%c4JrnmAkWi}*r^)hwqGO_ADgBQhP{;GI+7)yLe8e`}S)~grX zp_#vgxLQKe7td3>FP{NqF+!m^mRC8Bp)dI_(}tVe723H-LOXQYQ#?ZR3a;|XL-PxS zv#QM8Lqe@)kNLbcQVQPXuU-{xg%(fBy!v`k@X^0;b}@Icy_hkqjP<&VR;EP$bqTFx zDWz=Dfi&*%HQp$!LY}YSRHpoWYk9IPez&P2Hmo{X?pB>9aCuy({|P7!zxGNGtNU@UsRPn)~>wwmHSw<0_KBD-MJ6xU)?vvEF7)PjHyn&2M!)Vj+Wx)wK(^dJVlFH~GFGAO;oq}BB7=gz z6Tv$y;J=ofoi+RsjsGd|4|k5xa*l5Oo&Lu=79Kb`c|9pl2%pk_-T&y?z)O0@GSbpQ zVbU?8QvT*0QVIsT>5l(9PFpfzd$TOhYxwcpN;;DGy~6w0$hq{JxpIk>)hKyCm#}Z_u`)acD2!|w5q_qD|vvB*a*T?csCrCvvqi3i7VrTwQ5ANSA1k3); zD*rvKc+QDCxAecLd&sUGb;-?tB@%V++Rfb%bz^4#hj7t;IlMXh>c6zHsPCj?lrf}0 zX31Qvu4>#JsC2+3or78;qkw5^2)(05DywYJ*(JS`<_m7EARc=t5LC6%t{l|FhOu!hS zpTn~u5X$__;;qN>yTCupUMpEozSCr1op|Zw|MT3O8=d7xm8t!Ms@G=M7*!kASiJsY zzP^x=qfucvIF=)1db<{7h4F5H+jP0sE9uCvO{)>}(`L+ahs#8Pu>a4)t5e&lGWB#m z>ycGn5F&JuVO5#A6a7B#n1a6OiQ!ZGe>{Q2#~I~7TdrO&voSlMiE5-UZAf1 z$(eLGaCoH&%{&YY$wfxa(4OM>`t73KYMsamp+mRvGw6U?Y@M0)QxoG`l2JMX^B5Y< zT`So*xfB+9XRvl3k`8R3UBCB%_wx)Uo1dSdF}wMnQLF65+@p3ktg2uq7q`j+{c~m@Z~RGfs4(wQ<=8;6AD(DX*TjMMUrP4 zEKZs+2(Ux(=#Y*_wl8m19Kzrm#DmZ&W|Z%U%A*56cmW(#V>dwS4lbA%{wP@?>eqeH zM|FCyX&u6?XPT3-1;{py)=>u==7)QYXo%K2<(O%TVagOyWkzEO3Q*@vuSJHz96A0z zwHBi}>sMfr-iTK`+BUruC1DFO{3RhTk7vtJFY_olL*|+&IX!KN8#C>jYs`v5PGTNG z%^69^^MX%Is){2zVH!wjp3rak;fL)HN$;UD z1|7-|JF9W!C^={vV$x<1RA-5NBYV5A6o_Mbw{*Kc*bL&&SX*K1VXV_Ol;q!0>L^vK z#>8d$os3ouMLd&(x^7EYA(&YZe^Y+e{<^wbXTT)c%AZ&DZjKfir&VUxhN2a>A-x@+3wtY7a_wrhzaxtgbpdWQLn#C;UT zqTX&$P_&8XgNcKdO$LTf&H#9J7Q;~GLyizMfUBWYEkH43ylXib^c+WYd3zW>)#{8l zY&hDyBTVb{J31|bF^MI$%Bwy245dzeV_XzYjbBbBkre($l0;Sg+fq+w$P^MwN4-Z}#c_eLh3`HTzIS#poI0Ow+LdQv=37G?;ox~l6jWOWqo@G&dMWW+4H%E3B znb@rt=^TNk#`=(V)yIJJ5w|0yhd?d0t|~_hK{*I&}@l z65=^kda=j%Uc2uZeNA$j?Y_9-d45{=)w@l)p6$DcI7cGuswVMEPV&)b%w^1i5l$c> zMNtJTU{Juc31rNZD4!!Um~O11qk!rImsQhnsKq4dV_a$R2y*z+I=Sxc{AC?#P(aDI zM;k)O1b?S8p=QiXG)jQSQ!T^PIx~QVcwAoP<-jT!p6Df=m20Z%;KmaJdZ0f3VnXz@ z5SRqyvPR0*ZwG+e#E3a#lBnZ-$Ylo>J|ZvV_S6CS$%)_#8v!0Ax56Ou-8L_UjyPkWQ=(T24|q*186Bmm~{TiA)+zk{;fNuH~&?7+yK_YYP13 z=P`&T8F0SCAc#i1uxCLt5IG_sm9S z;GNP2uY#KcQ-C(W&8#d@F(gJ_O6~PiPLeiltE;i>kX2aF9gyEo;ub<35j{sH`F+G} z6;t%tYfB9i!LW5wwvTlFNIiNJDFG*@U!}uhkWHY|U*mF+fQa;*fKejvHq*a*LqX*S z)^V7=ih_0xCH%2QTqm6Uc{cpFP+Bz6&P^)=^Oh9JmEU-1B4caDZY z#Nvo?c#=uNrYCAaj8%Li$*^?zPH9NofU*!s;Pj#x2xd&*~4UjSm z2~%Be#$8eRE$%m0!gHz=(tEz?o(S#*>*7cwz2yb1+nOxw^%0iywEug#+_v77d7jeVMyd-HGO5H4 ztJpIQitpTHy|~<}pX@WKTE4#D_Pp^8uT^%7#nQ{(g%YfYcn|%z^>LXf$$6xcskWMMHIe#{x>&z^mdd)`7MB$7st1hZjg+Hk@0+TK>kQg-H7OG|5iAvY6vY+&V+ zXW_DGZjuQY$aD8cu$?>J}*qB z)+HqdX6`l5_QMSiV{nwZk;?K?M^L}Pls*h9iZVQY7K1PNs~ntl68eli z3d0$n1LaV}KS-u5OdE&{VDaPbOoqga7UOrg%JNh<81?9x6nm|kU*oLGZudR^nn~3g ziTkD2K&=aC9PcB8s)Bihew)T5GNa!@;I|kl7)1|dt!BW{f-{c6(?gV#sy29gj>BHo zm-Y}nnwn}lR=;7tl-`ia#~5rGaGI1UBLl1hYp>^rW$Uv`jxo*ALC50)PRcSiH7`N6 zkWCmz60BtJV7K^=mN>EE(GmMTYyoS}ez=idjDjAju-k0Vk@)gZ7?^?#M7Gljc3Sk` zDgX6+qQ4Mf5b9eY=u?SJD-)K|7@1TJ*SEyE+(wL5mRZnDj1JIQUnXrQD3Z8Tb%b$2 zS9?qs82qBfhWJ_LH!uJNv5tvPFkoDvfY(zq0R&lART*@M{fH>oZ;e2W7{R-n8K&_N zfHv50jD}T}3HKAqgAJwe;|LTi_Z+W%sm+wp7{LO&(Y_BZMWsyrg#O%MwV0qL^@HiD zKrgq+{!7La5KP+f$rf(3)gv70@o@D%cpw?K^(Nf|zePSO0l|9u(?>jt@IsO)21YnI zn_SLVMa#IEl63=oSkA;Xawh`grKSlsWJt4$83S+95eW|6LXp?8;O6pXrhGqk zr$g=uqg6^pVfnkx=s!00#|YG!jtXO^DvdrYK9`Z`0AIGUvo7o^_m*4gVFQC`uj)>H z$s7R)t`3kjS2-Cv6&}li;D|X6i7(jPp>m@v88Oi6Vb;Bo$sKz?L3;+9URIrWXod>Q zUJS>}-Zl%6n_vahlb_Xw*pkIQL$nquBgK*M82FGFx)Z~p5C;|i&B~Wp^Cbf&zM<^v zVnllyo}En147TeoGbt!b)xp{hQF4^3KyfC}40}k&DfiPk8873f7ET94wFk`f0D_7@ z*je8IO(Z%Seoi!0x&_wkwWcJK(~hCd3*fyA|Lik0IPPvqB{E7VFLjW3Hx)aaUC%Cs zT;{O{GXt26dymKCboFPfL^s6i0|g42VQKh0L*jQw+zQ#G?_Rf%)Wv|zHGy}5Y0Q<>p>sq$>zlru9! zG2Yatwb#XwAY;^*(8oQAKeTqnk|;pmk&m{~XJ+EhPrYKMlz(gJ#=9G|C8=rD#+REX1`TkoO%V z+YFje2F{+K(@+V^FN0#=!>Z$gNZw9b^g><|N4&TNV#_DZ%OLnybLPY>2Z>Ax#8Ibr zqo8}weBE<)f-L{_deKi?e$@6(MSG8${L_%|QB;WqnK7xB`K)Zpopb4RosPGHMD@($l z@G9`XOc+ZUqnAwlXA(=Zt*Dm!(i9MHYKRr1%s*8IAEW~<0(SebEV9{9LdAdqewcpq zl;PYI74AfsV0A`LmS%50b&TnZn7P zD$(qzHBe!QHm zp9iC8zYlsMv6!31c$Hew_Co#Yg~9SmZ|JL!<~iTdIp1IM6+&K?L$YsPzMPbLl@86z z3Y`d&6$+D$j%knnY@YjP;gMMV%N%Gy%aejfv3UkOUY78zCu-63viXY8w3>D+PI~M2 zc}1(sMN+r|lfFEut5>74eWf8UrbA=uE{pywm;B3vZ_4sQ#-*Cm`1Y@QZSc2WvOt85 zLZ;lLN6=FKeB8e$rLNx!dao9wLkZw~Zs;|FaQRZeWjQ~!9jDJy@%{>D1~0#ppGe

    wis{eFU5`Qq)v}>eh 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 P-N&QP?t0& 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

    _erqN`onla&)@vBiakkk4{c(RWY5uf}?7V~g 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

    Z2jZu+Kh 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 z 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

    (FWIICkr_X6t+ktYzAQA=`%I-~Q)U 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 >1+*4%W7{@})p}}!!_XSikC6cP6 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

    X;(|yo)Qm{!+X) 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 z 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 MWo}e&M`>mNJNFZVXaE2J diff --git a/public/assets/courses/unboxed/anchor-frontend-increment.png b/public/assets/courses/unboxed/anchor-frontend-increment.png index 429d9495e3b068cb48f14dabcb49249db346e525..4950519a37999acaf32677df2c32c3b443c3358f 100644 GIT binary patch literal 205368 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�G{ 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%0Dr0@&WH(!RshDt4$>x-fZe#AGv#C@K4b8^09 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 -FsoU-gh$Fp?jX_YCSuK| zdK#PDfeH?qVCW-z^_IdFDlx@Rhw-axU?Ugq!Zty?;YLZ~jd-)e?^>FY2o0G!B85TR zP+~5-HaIER=u`aQAqP522?__-Ot_U876zE3xiwxtsLz{)IPDglW4IJCOksMdT>dM{ zno#-krLu^!Qkc<#pHTR%2qPv;`H(mGPLQu;b|+isOV45w9aUmC?!oTosj2eG2B7AO ze0h|t5a)01yNYScJ6Z}QFs}0&KKlb58 z@7jPvI?fw?JcP5Z+sKZ*_ zM3Yq~lcz`rL>JWdrH$URmFqSrN~Ph4X^_QegpeC{c{Cv?EB^kAzPH$wAj?@amBgtb ze^7C92}vZ7KKTh`@4TO!A;L=7ax>xVtR-gIdEq@%ZO+)s*3OAvxL(p44BuAn{-VS} z++Bj7HyIa<0&oM#PyWu&8vEs(*O%k3VZiE@l3qmIX`xKdAZ02r%mf4Fo7tFg7_Q`VgvwW61|JaL)##TDQqT_OxR76t1~Po zEn2HhNAWVFcho1{4&n=2%cfbTs^1K}!7-_BPY{PI(hOExTv*a=}Ha5cU;ts_{}Mxwt&1 z-Z;Q#%T((+%)4occ?M;bTXhYR!CKQvoVJG~jJ)k$$L#55%4vZ=Hdy?1Du;mNDqR1WaTJcqsDW|Ro2UWzpU5ZeeLFA^pqf)E3=69aI%JU~ns z4azR_$88eK>a>daF(BcDv|UvK2km@rLA?$@=9iT!zRQf7uL2fq;zY3qGr6Y~8>t(v zor=4Fl+X~_t1MJFN9UWHe%L4=-b;3x;UWZ;t_KG^IVeoJAAKqF>5+=ib#l~&EcMvp zsj^+`6BS2a&Y`)E6R`z3Dn4L5A55!3WHV_MZDxi&8J`qq3fO~xPK+gu1R-$Z%5NgcAS1AWL2xDr<3Udy+G-oj?ZArx4B|)Ipr9>@8J@)Q{X&{4) zbr9Pp41nD9EBJj*l-sV$K*oeDt?fYl$7o^Ao&w{(&l9uUuepWq?)FVP?EpPE)n6)>yX5ux#zr z-+KYboV;lIT(m3J2z1K=kbYv72==8|5V`ONToEddq&r3FfEO}$no)%JmQrcr^g z=aj=$IZ%)t1k4kTi~+lq(AdWU5)Kmu1tLwhCX+g#W#R^#@<4mVyMkoh>QmCGDJ_O8 zt7Lt7`kKLLWu#@oj{J=aJ2Ot&)b&tqH`Z zhkwY@IaM^BQWnNTq>5fsEC2b&_wpG~RQdJY?zsz4fqCHmDoJh;jO)tCN4m(gm^GHG z&83m=Xn~;O?0mj<+n+WHw^w74GUXkL&rgb2X2lDraY%Y`oGFkSj*JVueUJF~xyU|6 zhIc53`HAeNoAR+|Psh^nsiNd*tb=R1gKNi1_hu%#^rQj^jLDx}*A;?~nnSrE?m(sK z=n~F4*J*tRk<}ZciPGV!cA9gq^8D#p@!;g%;auy*eX^~ZfSUr1fh2vb3X4#VT|E+* zDI=$oxIU;Hrc&`<{i;J@wr)uw0f2Lv{TCuk>zF*h3wY}_o}5#{+S#?sGvQQC9UrHW zz8NwF51lN*-S@sFw65&c^pP&kkgZt_zJ_l10~9@11VtkMDy!4c54wsC7DmrVwbhFxI`;6AJM890U$gnK^N8=3GzAoY=r2MtP7{<};R`BJUKJV;Fk?R6@o@!Ro z<1)c61!1w?2%+Q4bOEaBvR8xai18fa+ko64#t2o${s|SnK`GDR6ixW(HLbs+uukzE z#20=nm7|BxCFvaN%W|7|OHle8C&k^*HdP1qLGKr&lvC`z=S%CdI4AMb(!*~D2<-hW z2#S_(Jll3C&dGyvwUAD|GZ7uRfXK^oJlnI_4;1K}I=CwJYL%{X+|`3*8~3JsGy=A1 z2G4?*ayck{l4;@%i)4UEsDI3>y+|1)Pc+o_y3ic_G#T-H4DQ0z8+h;zXhdcTUg}J^ z_y@N3ch15`U>6{G*Gex76i8KBaqjUNlOmU<4i&%TS6Oz*_AGz=u%q&bfWJV7fJ&LN z(uLQ*&`P@)4^iZJx<~Nn@?5UVMJ~R$5&_t$v z)bS1iMJ9o)D=WS5C*n9y@erg=tbWN95S~u5sW&bmXl5I1TBj%Dj{h+8p(UZN360{n z^azlE70=ug|E{5v`K@oe&EDBBSu$>kvUpwukl!a;Y5zm?LzN7Qh z;xS;eB(~4zg@`5(hdzBl-Tg^ng~4vl)!xAd+I5d2@BsC$KwfO}d%Iv)h|mV4FKR2$uFn@7)ZKSSi4tI#eu>=Y-SvyoTyoX?t{LM zFmq>Y57Rq14eVrCd&@({16gh66p**xDKN5(nrDApz`Af2a1u}|Xb&{>;5gbKgQ*xW zYC^Q3njW4$VRHd}WUEolWUovOq+XrIg0{;9Gw;R&=?_t;3Nq|=f25^{#-qk7`7)(X zdXw|DmR~=fSh6q!dJ-{e7nsKmKw6C^*+M`YKkd+WRE(=>;V;N*(%k*WJd$? zj!067#>7HDc8Rcw80ZM+N%-gC4q8#q7d!e+<_K>yasln3A$F;IR9*fk)-7D`3@%3o zJuu6Q2E^i`RU+#bGL1#3T8Y6x%#F35v>is&?;T@;w1GV4!7kNFsm}!4GfWXdb))LI zlnS+9CL(GTG{)R*<|a6yP4%*c1B+TMf6@Rl9+juF34d5x8-W*9ffhc zLvcdbG1=g;?PqumQ(LCW;hN6u_HMbvx-D4XHYQcm3HzE2Z~BjSLhGic&8g)6PxpYD zmq+-?Q&=$vMHdfFV=b9r?2y6v1M%buh`m#U3zZ>hR4;4=Qp1)gt$vvt?#bX{z(VVrLgCTBJ#9b^Zv ze-ypaFBMUf2%OAwtnjM<2mu-48c`IwfVR%gt>t?+(>jNwajGBJ>-fD zF$^ditKR7;C)N19E`=*HcY{XXUF6;AD4jdK7;T z8E)PSRs`(AQL~-%$+cZLHAS2-NEziGGQ{BJh~+vs&RZKacGMhJpdNffMEAmhZsLRj zL{1UZg6qLpL={;?!OQDyBI%JA-*%3}U#!Q&(tq(LPoUiZD7|EBynlcF>qN(m5Uw0W z{u3>UK@|d{`9Z6w%3Pqky3wp%6VZLgR4e58i4`IZY4&}&FwqCt*GBWTw2o=CIVRyT z59k5`9mtk@T*B2m3&2DWWEZ70o{CgL=|Z-V1;eJjeAIPc^VRnySy6|9$IH&>BMYaM zW-*OwPkyrjJFcACI^o!M{nL&QA5;9W%N zC=sE>30P6~B+xHcf<-2U;)rhNs5?4>BkZzZtZ=c<&~Q`jCJEh=2`+-6GuNYo*>#$- zwYlIBIk@qhyzg71=e(zr?Vdq&o4#hQy2^3wzO>6sp{RNEUO+|=-kqaUp_0oH-_3l}w?x|umh?DC7@f9y4fMWj2 z>FUMQb$bPWAYsP!Brw#(ds0WTIZF$b_V`KLR)ZU5iJp-g-5Cod+aNl4zb&!L;~ym4 zYNJX-Jme!c%0h>bmvq3eClRQDy}cjw4QzzB90nbUTSGQg*f!0VVh6 z7HLkwgs6wS(u>eMGT5Ea&w)xm?Dw~)ERk#Ql$H$=m|u@E+K@C4F>GwNScg=2=wadE zHPczfn)4b3PGMRE%U-n$&h0=Q?Pg+L(^bF`puWD}w*GbJw>BO7}WW<~f33c9NfkR%UU ziE7yaun;e5^PKtiR_Y04p+6LZ$eNR=(jY_H7;Dvq3FqFa9-} z2fViL3J~HbrWgq$fw*2yDei9+wX6v$L1Bc~>R3#SW}sUj`Hak-q8y*0YYtpa!5yQ! z??)ZJ7+d~_5yhZ9>*0og{MT9K^uY@*H%q$ob!!CZK0>@vHz&Z5xnWbwxr5aM`+)J) z*(_#qHb=qBJ5N59VHm^%)C|pd_Q^q7QI;frHH`w55qiz(M|mv0Kyf2eNN5l|)y=QF zh5JZheRI*!n?4+JT}80x7M0Vdr(U|+;4L`?@a2s z{Mwzf3?WzzkB8yr4S|T=-J%)14a59%QXl_R_B@PU*ruIA=H+ z2b$)clQIh$%sdZoj6gihrpZ--Mhw)bry+K~L<-w`m!RFscd8@Xr={DzrMlIC9h=0I zYHY33>}i!Q4Ty_rj6LIzVHUZ}?>Z7rgyxX|_u=Jei^UgmEc|PlVUFR7KSDR21|BDO*N&^8L zMw>#(?t7cD*fcK^2a@{Yqq)@r2S$J-t-$iT`xNyk-Jo40PPkmC0`0_BFm8qw*5ieU z`s2MEY{5!L8@BnDXJ7L*Rk*7@YZhrL$Vdu$9r)j$f9NN=l*e@n5`9^sSCmgyeZn{j zeSKKa>HSbXiuG2ojY@?LNFz^HLnF=p2}q|Y?BfZ$zp{UE>@mBpsr;DJ9HJpb=f;TU z_L$nE1z|NKqIJ|jo(i;@DGU2qvVb=n_s%Z4rXcA=uQWA9yq}BZ*uyc94bfKSLVWo1 z{e(Qa&jrWi7+3id`8$`zJz9keo_@*0JNL79_&laX>P0Ps+XkM*^^!r4Gm3>Ncg+|2q2d;m)`v#}u&{AOEj z(PU@vm-+bT>G{M6P%hh#T4Wlm@essfSpp9N_SEm2dP{}e5X4|Ngpq9GdMx*w%$?~k z?w_w!4DuTph7Nm`7lzz_=>+l(a*20gZMeXWpxz;)FghkS`2L?IRiD8CdWsyV=xYCR ztwU4;$eB-24OWUoqAxc(+->%Rz|{re1)6y#K?KlM@s~fSc?nd3+Pm$^b#3I^;mlmi z*M?`GHwEmsS_v8Z24O&cYc??$mq`5El4Bkkwh5OzgGM&ck-X) zY;|Hl%wi)Lq{n*u+Atpg4Mc7Y_O4;xoj07-&t?|l){5}nf8y@pk-PFs zI)4ktA7T-AOw|_e0af2nbx&~@QfVwTbwK7>Q}P50>HWrO{TFEE=Dn`l*F^6{#ub|f z*F^8BYXI5Rfae*`X-I3UFGfB5j+N zXJ!7=m>z%D2fm=9S7f5(8qib<{?k(U#Zs@ysX&CAf6X?QJ>JASza$#8zK^c^3`BWaJz#!u zt@J}11jB3MuxtL=djIWX+AtvWxK{W9U*`mT%=K#d&zJeRcn_P-Gr()w}$vwbZo1io$z_?T-0{!@GYpX3vOGW`|szR(qu-q&eBScYG9 zB7QC9td;tYruFxEHM%Z=3@ri-P3?RPz}PTT;{LPI|G5Sjz5wqd@9vB(6IZ*|GVTR1 zczU?mhW@@?{Phk2&%gmIy4ElPU#E@@tQ=fHcDeuJVwE2Qp%2@aNLG^o0BPeKoxh_3 zXh#>w{(?XJe>3WTEvb+W>bz#B5d67NWB-ebO??S;fYyIZquYT8fKn#8jpXU5oz)hg zboy5#|I0Ht*Lx+Ph`k1*K!AD^aE~ni#l?z7Jq83ZFNLeaNP(st9m*c;l7C2a{~Mcs z{3q-Jx<*~H1g=BGKNo16XaLZH;|z~<&e~&jWq%nUmxrQlY|KJL>kd}un7@m-4Co{A z{?o;gTyrNvd!rS%g&94cb+B$!0Ec9UbL>55(9aHI(#Tg|@Y3h=F?gZ_xy7~WYpn35 zIX5c*-CVsdz9ySqE>DTUeb*%H=Q20aPrCM(XYULo^XP*nD>~=c@R&_#Y7M`#Xb&?o zO_z7yPdO%mnndpAOI@IMVNSiVdB?q4wE!VsGUOgW$hWtTGrKxi?WL+*q`T*l0dP_C z6LBND8Egl?~)AQb@n~h_GdW*_FT=gIIPoetpU8> zWL5Pd4X%JJBh5O|H%E;pxz9~|1IbpG0`6?~<*8Xtj2Bss$r--m| zM^mFthuh^>!^ymhze7ca*hqFha)GixTfl8Q-u+kjt6d(gzb@)eG=RTq-}~0-&9`L?!`PyeSxa!3^8h0D7cxpaZAX4%P-tQ;I zKDb57tflD(sne!2R*APpl&Y{MgLye{1NKB;2>#v0{bSt_T{j86L9y!$IG_PlsXvw^ zzo$0PKi;Vgoz7X~`(nf}aoyE7(M#`(=yOaPw{@|J_kbGh`C~N?HemBm5&<&A#5#`| zo+^MaHs4pfO7t0ivQIBFiXDx3{NP^Kb!Uc(6W4_ep(FH6)w=#PE9UeYR}+(mpMY}} z>MzRfJ@r;QMW-%d{bi+zVghfa7iH>rbsb79_7a@Ceri@m?*CxYvB*Ms?QUxy5A^=B zhuk<^dKC8d(Ak<4lg8qY)bp8Q3>2W_;R3vsWRCjEl$VP$p%Y{<^8Tb%`I|=*pkcp#b@XL_7$X9jxv z!$Nq=^QWVp$yj%jh}P{F)~+)>wxlKj(`b)$gESPYg>CX*TqrFbUFuqb$7sUiw+(xd7aJvDN5Q|rIb63&4VR;A3(#KbZ+!x0l-mHt0LBEVL}YC+dTM^SbRjcB;;?bfBem z`NZdzeDCO|HoJ0beJWrcYv-C(S-^ifO?Dp)6dz7UQ_Zh%_~%&-=V#^T3w8I#uof)v zd#@~r1t>QgVeKX7b6Z}o#=M7B@A+Rvf`qsG3PMn|-}TNOZ#xchu4w2ZRZ3LoH5xTp z13VW(EK=^nO=Fq#d-##?xT1_IyN~hh)ekdsvM&d}}qE zs4m+4G4F-f323-V9&*3W-h5%TfN#(&*tYgl=)pU4deT2AC8*+=+_e0e(liOjU%Nt< zO~nq^3dP_;A)s>x^+>UHOJ2A$B@ZjxjA=4#4L=wB8q z!(=t`^Cd1$^1Q&#`M@YP?KS@JdGEL(=N^_o?!H@%z!P-k#4f00)?x!UIn}YNZPf^0 zenzT71h2x(pzoW!Wd}H$ERG*mSuTnzJ**%GRe{i(LF4{QLL3boc$j>`}>l$^)|u*pLz zl#uTw0nKDd1kE^t_dFTYK0FlhK}-9psWNohW7>11`)b3Wb1!$WG;y}qN*k(J^t!Zp zt^*H-kdC0tX@9^mWK&dmc8{(Q38t@ zt0@WU`#1=IzyXx^09_vLlZUTXJp8MPUmdJO%eDT*V9a*2WO0Jy_tO^WgL1>&5 zw#H%W)z*^>IOEA4C(e;G@IsG;5mKDTUQWm+p}4$PLGD#nyMk3-%hDChwo{p=a${A7 zhFU8zxGJ4%iiyR6b8bOU;LMUa^!b*?MX~;@L+Quo3hwVdni*#EtUzu}RGwu6oinT6 zUTnHpZ~KX%HhGQP#_nG2T|)u$Afe+o^f>(9fnqWgo-1bEqr~|B6c^1`Hq|O?&pP={ zcAEx^WISB9ZKvPzMk{Gqj^-6%MNnJsIoAyR%(xq2d3yIvge{}=46^udCA|5aDQX9V z*Dl!TaJtHJ^<$(^XMZ5V0naj2rJBvly};d_RxO?mlWWaKq}B!Uy1bIAb)nGUe9jWn zxG7XL(-0s|FVONPMSnsn|6LmM$n$8oQuHav!%>U1q;dRJ=m|P;P-rj3O!J(8at(hQ z&Vv=&mvj&-PJ-1`|Iyds&bvOGq)%@Oi)Y>`2X%||+(U2!Ili&ED!%AewonY`jh?~J zoiZcYQV%~YXo=A2J)4e56~vGZSLZ(daL-~P1QIWwD0FI%9?d(yIQWo5LDbQIgUhX% zU7R=o@+x@icdsvcOXWIi70)}(1|W(oGxmUL*H1uXOs#Xe;F`uq$}HooeQ6J)6t+T?nZy=(tV6?RsQBSf2Wgqvh6x=!f{{E;gSQm?NvIpE6@q?YR+WqbO^IJ@|uTUySM1 z{Eg3YKjVZ6e@}o#n!@uw^;1PlN-@fW{WVI986m-2SrjIBD$3cgA}G=V!)cJZKK9^C zf_pUm&aKbFwD=6-jebOsOfq^Bs+v^BTl5X=TgN8mc^Q^mp1(JQ80(h8-%#Q|KY%Lr zm#Of+_dXr!s~_Q;?%Hk-rP?#3IyyTrVNdVx50se5#XN}NvG0}L4leG`Ml5`eP!OS^NK4Ngt&&JNDJ*(cIxw6v2P^#H#ytry zpi)(hR(?NJ|CPWG(K`{!@$xj#EET^b6eA;f!CRC8!Lvi8(-b%Jv-D>wTCd%qgGc1% zJvtv1VSl3Cbcv%@wI4h{kr@|JuAlMKuVLQ0rRR`pXpqF8(kFF2KrB>^>8Pm>AhcQt^E-1=Tw`H5O&yA!>gHeD_|mZRULAn)4|A z_OM!|4MNdrdwPt^_6D&Qfz3&vRPhX#H^72>^ucBRHb^034ajjp{$2D70Z8(~A8_6j zIalFV5|pi63-deR0q_IURxq(2`$zvhzAd`%0Jlxize#4ANK*B~I*U+UL5aSa?)c>+ zUKelrkGFS)Ok8@&PWFxpng8v|R_AHw_dp9J)c#Dr{1T=V5P-xQJ$zZ{IMG*hM9CS54DkL z)ZTsOX~NMCj}&pPk%9sen;=(Ah(5iJ$%ocKgm>KYT50#Ar3Rdxus;+wR(>98Is!LI zW}dQ+@)xJ6XzNofk`EeYW~$vN_(bO92T}eRbn^a|gU(D!zY#UUb$+4Fgk^oo|G4^% zDOxOkUnr5sBV8hu6`z`WdP?S#qg^#|C89?7*DOfV*Yjw`Ti5K<>Njz7xJMhs@Do~V zadnAY`xRuM6wo|_fsn|m<<`y|#eo;SX9Jk%6~eCocEz)5(2Tb8@bs83IIn}D4S%6y z`eTTPNCG!c2n1D1EII->ny9*D(7PJX2&iTGg?fS*82gVF3b+x!K9>s*xOdf{!p+tO z5R1niLyZKbt~-!D=%7ZS=%ge5JPsGWd0VrzNutjN8SaI7KtL$1Ktpm(i{UsYu9 zreC=K2=WYE;GfK&>vf^U8ausfYfIQn^Vj|LI0eY7+zs3L^=Sk4l2E2i6(ncR`SAkw z#4rzvG5Y~#lT}!*4fBU z_Hx?yyYhWaG~W!)0R8s@irTVExnD1E&v4*Wb!bwAUD*Lz>pFlPr{erU3f>c{&Nu zG=xNUsK&R3(4W{p>nru>0S-~dg0GW45_2%;)gt9m$JaYf;*0}RnXlA9nl)J^$}}r< z?|LlnbakR>lsnOTyagkQEoP^uaqu(}yPag>1J5}j z%Uc^U=T_+LK94|Oy)ZrWSjh|#sM+8!)0!Q0UVl5q$F`y_fSnR!yM`?m zghKFi@!S8g_g+y=sB62n6zNSxigZx{=^YY!SCJy3AWftxE%aWcDqT=Ony3gURir~e z5JE4~2@sH8LIMZ@LfJ2Kt~uAYzct4i`}iOKNe(<ub?;s`f72edX;tw$t^$ZD(L5+8OzauQ>&#-B@h5@8^?AAu6JG#hVPD1S zl$t(Yz;bB|U65Z0O+Hw_X@ef93o|E>v+p{R({ehG%Zry9ED<8@)oFO8u z%Q$!ux_SGUh^=!)FOsW&ea~|}3$>46aCyERVr2q#gnep}cJn(q#N@aX6j9ecGkI1z zwd6OTY!maQ#EzRLdTK!9Tw6o0It7aCARgN#vOpF^%G1NpW5cxn#N+7)?R&g0ZwBzx z#yx&_UQN%)DB7W@T3!SVX_LCQ9}*of|FS=X>00D*cVY&kWq_rZ^|=M3$PkAfOn@!h z)%%>`ML_LQJyE5g<1`2Dl6()Ba-dc7;UxiIL(_M29PzRuF3qZGw{3ZI2O)gwYQR>) z!6y>S^@w~Er7Zwru~k*N&>z5wh85XScCy#_IQ~L4R?z*zJgW~6+jO-ex2}&tl}tYN zm1fozRX?JSvK{TeN=QvY_F|@pGKwTXh{|*W(vRupOjLI^b7AY%Z{&%TIFO4GK2hSNavsTW7AGE+w!}c@9Z>TZJLlfc6gr=Dj+(>f7$? z)>i|#hgVOEkym|l@6557+wfQ7p4_<6miR8-$yYA?n}lziQ>g-y=<-2j5<VW%qVb`Z#TiF^+qfk}NUky^2h29s zZ7QBhexZId9*`T>$KF_DiB}%$5cUF_KmsjEGfueEsV9j*XB=795jE$wY?T)Vs zM#eH1=NMb{Ea?cXYrD^O;m3o#>PZaVGnlil#BHm)3vC zxYKBFZK!Lln~cGpVh$?$?w9oAFj8zDSHjzbhd4J-Rd=(XL07*FogG=w;P;*G#_5hY zqxA##U3imC!!hPWqy?@+`BChOj(J(gN6s1R?rQA(FPau{y=?ME=LT=j9AQldcd#0xLxQ0_;=;Cl$z0<91k1 zp3~|ry4U^;zzZo~F8m6(XGnL#>T$z?)5fsneF@~jT>xdorQMXb{SfYzUD}F%%evrI zW9C!T;yz*o!MLx=rWazfib>gis7J@9zZHDd6>k~NNl_jNx7)g09 zZlujC-t&q6O2=RTfN;Jw3*O_}(ayv`9883;MdH`r$s@z2eby zy*qODUa&&p2yVcPr%8bL=9GhePszLp>|xXV1Rn2{?40h%ZEIq}JB>$hthIEeVxq?s z_cJmmxRFm8(*XHcZ(pGUmasZ6*knPm!>V6d&~a|1=N zKF0<0kAVb(P$}MrBAlG9KsB>^D7yx`S4qwGi%~a6U(?fkV-k^o9x3m=lYrqRbRWKS zXAZfU80$urUNOk<^>{D!Np|CL+1C8E~{NZ>hmG(7FwKJC8I#Lg{dPE$Q!1 z=Hw6d2f1r*Lh8SZ`(RfFH@O_kZ&Q@)n(s6C$^&64!3&NENA9oG5fPu%w<6xoW^tmsr69?J3>x$&I2GVUkqW zygx7~5nBwZ2GaCjjo;9Mg^J{jx_=|>?S0mzOt(7k73?vef- zilZfl(xs-J%i;$YyyeHyeA?f7C5C-pg~QbLm_-6=Vy<}Vxi6PMb2bs;$4=3_kf1l~ z?msYTw;tW##&@`JW&L=|5&S!VzZx@TJU8)#DoGlA(pC||kA&mt4Da(k80{O$}IE{f+VqV+o6EUElt?(Kc-&=ML)l(VgPwoaB}f2V%} z+t9R$7rO-osuOhDoVma1#|^U&9iMKewM+l_41>FdTbVTP?0kHKAU_0gr4uc^iaiNg zhH_-U>{En@oJFdj+1sy$^zi@GT zbzE#(Rj8-iMwU(JP=Oj9Q)?Yz)flpHH%rMhpsT+Fo1xc0jydMdw|H0dbW^e zW4&cK$FAA_o3N^D@v2a72vN&|n3}KBH&QETFzQ`NrXuYBWf34q9m7aSKfEQ;|FUHj zo`${X=1u-UT4GGr4kSRJLFTTGEsA=lOpl@+q%uySj8D$1#c(FGSFKE`@#L3#u|YqB zI@4R@%S&c}M@r^kPYq_z6 zrb?*YFoKk>8AEW8tBOn&>-60=(PJL$3rjM}27J~}GHgzVaibO&&Tj--GX)fZkqF#@ zVdQzv@uZf*+L;o_>w%MYdSVeUmzavU4nHLdnva)7Y=7Ka4SYr`C5F^U@3MQ8!iw^m z@m)A*^jf_)TWB7L7aXZGgW3fSH1d*uHifvilPhj|H!FY8xcTvh$eS0SNco-qs_;Es z38&E>vxd#4ZbDMIT9(EAR`zkvlOMM#Ve6ws@mIhp@m;fl+t!C{r@yf4epw2ylGZFw|9*!nK>AC8Uhi9JTqXrh|3)E94!SHNZZjh%ADtJq zOs1TRvTHbqTpP%XsdwVq6vkN}{il#k4+g3dCDn#3-4Xix@#n3UNXais|6~J)2%>Vb zKF3T#Th3V@I3EegZLH_AzTExlW&kadf_7Y*%wXGBOhU1rOY<#n^OLg1d%7zG#F~2> zp3>#e;a0UPCfdDV#pZ|zUzL}whrg>?N!F$RL1_h)!k=5J9is~DT(s=KnehrjQS*DI zgsu(q5@CnUey`?ddysl%Jr9eeI7f@f@yvdrT_K9RB|7@rh z88RM={)ycTZ8l$fV?77$lX^0iEGPA2)eQ0j+8`VkAz$4ir97k^0Yi%KuSLYzBMx`r zQQq01-d?x9hM(*c|}5>b6T)Aw<6N)S@alDOB3bL%stU=wI1hn}e!z z>=KbUimM8osA?xSPQ8H;Mt_dJKL_srUqT=y2zXq< zDG1{wqOVaZ91dKHR6w;z_X$Jstt}gq@8$L?)$jQh-Rs&CR87-Bf7Ah|#3)wEPC!dL z49DA`l{ew}(o-u*B;d%$yCOM?mY+;@wWx4!^h@B;cm=cE{>(6X$|#ZPDJ%*Nq$6YV zXTSDjWI7FdF{yZLplljJp-j&^p@4@)!|c@)(fKk#AOYAjKAOm<=yynS4~njy+!?Fl zveNj%Wz}92lN82U+u@XK)9k5470D|={e)+eh5NmgnNUl$;IF(L(^Q+zMcnx6(0xoO z(X=WjMs%Aa$~a>W9XJ&B!;BUdc#@7kd3~^8Gf{^dnOm}JqLQ|t0{)K59~p)ibRIs7 ztZ!lNa!4!u5YXX*%i#8lolj?FxLg3IL_Ovub)KC$U5w%|NE;8Ur&A_LvVQuX)sSn6 z{GbJ1d$9RxylqLDwB&f}GF;y=y_I=~&Scj3x>L_^ z;phHY<<0k;7ie=o&ed8|Sq_~V;bT6-y{3(c^@+G#(TUj+fCGhom#<^zf)!_0VuPZh zDxCf}6Sx&VgG>O`9MU~!^euAQ>MW8Tx>kLL)hsraw2E>QH(ek@i~L%8y8)5x=BiWP z7l|y}kMctQzDp2d+7hOj@PMx9$ZZmt{iSL@;%LFWQnOT!qYsdxwJp+XJbhBn=b2Ug zm1JBL>wOnL2fZoTHM#sOoj&VBI0T`LKKhx!E~nQdY>_Kc*26^nlf1&V_Lp^<_fE$x zNWwu`uI)pf-x4Z%EUkEgRWZ6fU?Yf)Bjcu2JTWqB3NUWkq5VkJ(sDwF7A@ZJ#`&x1u7LonS4>G zu=vk6+GAWr-CbQhH~Mxw&e{$;OPUI*S@W#hNOC8K?lsA^z21za-?>9CyOtm?5v18w zwZTX!Pv!iE@?!lD8i&&|YSgTvrcv#s*j|0u-ZQe6>f_!h<)nREF%$)phm`-|)l|Xp z4&{)@%lZGb=+t1*C-fX-@Mlc{Gi26V{h051%lfx`t5pl!$MA%|Vsa*~J}aa^>1aLSkA;@tCJcOBM;E=C+)kb|*j4$6T&s=yhMBtM zUjb)zw4^w(b1JrlsMfo=Y8g# zOYq|wF1vL!i?m^~?cFT@J1_4n83Df$!2raBhIUp)p?qSi01ECL_|b#S%zyXx3+E6k z&Qqx$@=PSxrW>=~UOX2j$Juu!EMIWOtbLuOdrJUOKeyGY2_e+-A5kGIFya6{xt>0K zUA$yQdkcfyIJo^#Nh9WXjVAyZMhrBuP#~_?+?uhUd4JDyZDyLg$IznwQ&rKy`Fz3X z@AE9#sGpg3ozu|Ipqf9TO<7S4nBL2;U-#WmMv=IVsrH{75AUao+mvT^2*?CS^ohqE zjaOanp7;OpgWOMK(nZ%*#DxIGyJW(0knbA2pN@JgWy-U!+M^DAHu$+RnRe!*^!MX( z$7e2G(UF`1Rs+pPI24X5=p5#4y?53!feQ9cy~k3~WaG1B(;ujR+6R(g9~ggdpo4;Q ze@`-_uSQ!J=wuC^(eH2Ig&#|tFY1YcaOtij_W)@6NnoB^*8g9&Tjzi zT!oGEJF8~+A?TANXPx*2wLDUgX@J5y?yd7M_(&S6StQ}()#o!$ov<%B){T1Dm-DdR z)7)+T^35>-ewk;@mx=G}(PPp+;P?1Uqy8wHNIj*<{XG_ZdY=vkGbRZSV=v@>!K80k zQV~o_jv5!*^h>;;x8e4fJ&df>tf9bf4}&Svh{j)r48xrc_V(K!Q&YWZR*K?OHJGzvWeEWv(Tzx$8&rD901lCy_rq0#H3drpN4Oj|iZMMxhF4ezg0W|%CK$r8( zwMqQ?Xjv72i$5NI0$NTixkB-VbtGb0Sn-7a&ClDI=8T7)yi*omX(K2x_rt$cwI*gf zSCI+fBux@}NzDw^*xf+tO2Q^uR$bZy31GQ*?D`?*p)lctmR%*eDp(WbQ|m}%de80) zxg0FEf4GY!^~<2ar?tMLAb7n(QK2iu#iZJ4d26^r{hslgoTg))?_erO>1_}CR>$0T zn8fdgQwEuy`l{4WmgPB)VM!9mH+$qLTfk$TOQZ3xrZn`b1`YCM2)}OWMQ{>wHQD!@ zkC??wJWUoMbMHD`=(8`hyKsD9Z*iO@%Ss4n=?+*JXIM1e>wm1j%&$nVKmXP$bJL)(90L6fE)Ghamd%`ChL z0d1C2Qx3J0n=$t3YZmc&x;R$Yf*T%N`qDR9!5)djL)d7b9Si>A$=))XFLEC>Y>w8a z?rD{3GpmK*glAeUNrd#C@!N0R=sIi+wMMb1kq zS1(%gJ%NQ}fzzz(I~!Cx=^wL4qceHId8G zZ9ox5?S&(CR{n~%Gzq5K`;CBTg^rG`4<$p_no5SZUa_aM?f6}`ZPqa|UExQ5gtuVa z?a%=#t>(*dIkK(0<~<%*a>y~#bEN=z2da6_&&VA`o*bjhnf{G=ij?lB$v5Y`^Cb>C z^^_O8hsFr2wJwI%OlrL<=@g>;VLL^HPC8MEsrCK>D>RWVfm-&XorZennW?xMoe(r@ z-y893pZA1HMz{(pM5Akb>?{)vce)rL&stA2@s}+7G1G8#xLyBJjVmVXI~5sq!q+N$ zkj5k;y+41+8kpAaXS9=l+)TGdFk~X_EYl)PJbP%rzt`L>^$i*>6TH2jrJ$h$Ok3VR-J@)0@2RT;ufIOHNAH42>Y`6}l{MM8 ztlP25#G9VBvUk2*blxn=?EcZvvUe_nr2$Oy3{K_^GX1v~;Rq1*y8RP3ev@S`sBq0DH?$6VVwoSRaFw6N7_CyR3pcw6B| z3ql%3f#GBM{~aT^76oeM3&ZLc@2CJNcjei~tnZ}S85_e6sm8sgTpsBJ?4?W1r^jTs zpsORYIyKrA8yz!^I(;zl{%6NL;H&xKPET?ZbB=okt=5h@lOe1J28>T|@Ia5Wopfgf z-|#K7-QMcZgPLi!gRuYl#oxU<6YJA^cV+>cA?fqkNAu3N7o42#d>Mr4nYlKLi?&JP z>N8kyJH^k;u;1Jbz5%}VoXI2rQ?sIpY!+=Gx{W&bg&j{voz|vaTzWzt{NKTZYoXxl zUmI3&>poMmd#e8R^|6;Ek14#CZ7V0?L5-h5dH|D59kC*Gt-fHgzo&|8Vmvj#S39}O zwH%MSGyjM1;(zM;m0ZtY0HM>5Ibdi(l086U{`^jQ`V*#}8016G)j`!t#~}@_9Cu^m z^!ZTy!WOroJ0`o%=P>r<)Z=Pbw+el>(v%aiQ}LbB?9W!IC7++Ei$`=2Vt;F>g=*5W z7x-7hzI>kczmHDliD)v)PWrDu@jvdZ|0k&745Uc4uDpB(j8Fn#jdG22JA281Hf6BW5;a~m*gqvxHGsYaGXx~WKFv8w~Y`y!HVztrqr|G zO$lPFEP@Tjge|<5@5~|UPjR%mqNn)Nlht$%X{*RJ$#+fl8!7A_u12)*=qG5X_k(#` z?T4=gO-P(iK(gt%1e`K{&E_^cU74h4aDP<&1)uG6vXNeAU^YEKw-C@sq#3W*ib(K| z5A)vs8hmfRkNGBTqRKnp7zT>dR;+-(%V|)T)GbpH&l9DF9Fm-Vni-D`?(s@ty)*O!{oycI@5iUtfL`O710x>GWsG9W!B=k=9!%DptK zx#~!AdMEcn4^W~Sn1}0=_n2Zo@!L-|xoZ|%RLQNCs85$DkfQ>|=qvda(F*~zOVm#K zv`3@MIfY-h-SVk`^z^q<*R;Bzu7b`C+?_`f^sLV(p`<>(G1^*uxc4i?7kE8r)%`q!s~}8FNJMib0C}jNz7*@E=GqnLr;y~ zYx@I_8qz_Zc+ii|;coeWF>|>D*eVY-P?1}%NNwpXB|tsw%0q$Bb#vGHnv~Y=?}vKr3<2N$_Qa}AfC42N+VflF zEd70OS`Fs9FOF~*P4t|nT)0{ZTJ475zVm(K8cF>1%yx&x{s0ARcW%z}0jgL?-oK9j zX!~Lv|1K?AN+T)N{qgt*njvf_j^x+$uAIe^rP=!>eC&9Y%yi6m6+NLN*()!x$BJyv zmW~RO*E+Hr?GIT>`4{k!;KdHem}mYwF{jW4m*ZS|>Q82{849bwUt$P2%~c&K&X69S zUNec1cO|il0X8RzUOZDXf+oWe2Kj;g4?svK`E0Vs_~94%&bhlZ4iEHm{b*K7A3f7` z^HFYbKLUllwe4E>zQcFHB5xZ&=TfJnvx;ra?d93MH(lqdI$a-VGDnLoh_tF4M666T z)+gssA!t;VsWgo|uCBk{4uG0SggX-hfxA?V*A-le%jzE%x zeg?l|{==rXc--)AOlsyjHH1CQ1H_nyYa(vodXb5xgB|Z1r|Ifp9E^gk`gYB zjW@zLqWbgP?F@HE9CW(EJ^=%s&A`Kg_~|-G7~^cYeTm}A_<<=qn9{N!ML3gH=WPHg zI_@IoO#$j=V@@>YZ=;I_zP;Zx_svC$Zl>}^`WFQPKXEfeJmi~Kp4(>Bx^(8=?vb$> zORQU_*t8eYdvhbD^s5cOVc_xGIQqi*$00hvS*i z{@L|Zp)Zp>y7%HO8PaI<#bKHk4gwD-D!Rl2w^#I6TzlJVq9(mo-c7C&JW6|S>LWc> z7bO3|D@vIH6!#>fJZA)LNyeti?=T)aIk<9ovfbr-M^qXNN7$T2_8q=`}3^plWj51 zPzos3OxP0hbGwN!JT9wOzc2e355=Hudo$K?bKLpyShiQ2>8VaENlw2ehVuKMH71yu z&tGgK+`ua}>O1y6q-Jw75Dy_dw@F!~dKktVxdH(SWv}ez{p_0J_1V$5^|cwnH7 zWy?q@WAmBu31Ysdu{g!GItPsT=fHd&9b;F;sR0Z-*`=V!Wx^SPpEr8muBx4U7c=b! z!l*@i9F8bZk(h04TI;lNAG|0#8m{`m>$k4*kaf{nWy^AJ=DKlY_hM5LarNzi< z12kkz7qZa_yY+1ST5`!PaJHTk*J_J{ zyKbkOY&e)!3T?l(94Yu!9*m5YKy4%z%kuX%R9KSEx@~sN+;8S!$V;TOog;m)9qC71 z6b{Ni;rVl0aeFR%;4St*1s${cuBGgcRHMLD@)0(>zwe4Q>9eb>KFGZh;Ci(ed)!Vv zvh0+jYzlTb#pb#h1CEkZ>?9!=U7%m+TT!GR^6ZP`5Iw0(CqvQkYv`u`V)%8IIM2qj zZ8jWK#$dRagRLaBt{iRE6=Yk@2`q=;ur-t@puM%EcOIo7`28GWMZ(thZU&@DJdR!wC1E#*Bm0b08{m+chsL$>8@ zagS>)Cgw8g2N14(K3JY){hF$BaW68Z1?wD`7_YeZDO$TEbJE(~O!Zu&bTVvVcq zb{IUjzMU$ORNRGsdSxjkd#1N<*U9?|V1~h0OHR@G zr!p99=VUhr8!m`s@N!u5wi8Cc_|hD0J!g(Y5a7Lhdm4mq?z%r{WRxt+Vw%A<{ymzw058B*?V zFr6eLiJCJHQ5N{YNypulu|4k_LvYPUL94a86LXl+LM4*8-UFjjVkvF2A=3_ugna-q z6l%7#s{M-oDcIW~%>)Q$E4_{lA1JPDJ^5|T&hBw?ph7@Y>_BXVsE8Kh$kkN8M4RXP zpj)JZV=*Xc#mHw!Ls4(Db~#m;NC=LBrZE$hx2-#cxl$j;I$1u%7=aQOS@FL_8jUki zoLPpkqHgDHv;QvcVP$x7jySvZ`1iR@&Q|Ec8eqz2_t-+i+_p@?1QR9!dh2}?n<#d@ zOHwX3`u5gw#o^z_xqt8es&i^ZmF+X^@uOm;Q7(YE!KZczAb?3AFKIY_0 zQ36EQJ`?$OH+h%`#GC5|PVK>hXBJ&oR-^a1CI7$+B=cf{`het=WzuB3W>dRe3wO=v zMvHes&@p{OaIBfEw>f&M?0b*jCoelD$R&|UMPT9cC(blsy)rIp57bE6Hp=2FSn9Q& zR)rPfEI>59^9gYh@nf5L@aYo7jLB+)TODa&Xc*r?o=_?BM{c7qD_!}pc&mg8NxMD} zzo+t1!TpAffyu(1iP_TQV~DqlX$n7bIUH5{UMQIgAPC8m8Uv97d~ZsoKNy(5d{HIB z&wN#43CN}bpvwzh`*Ae4sL05_&RuHfXB7q$@HHtmsLl4XPiN|Nh)G)=cX5hpdjrz= z@u8YY;U6;T{&J@K*$ZSZc<<29u{hD+Ko(XsAKJBcz2+liYY?;WR}2Eg&6xO%PwQ55 z)ypKY7@bF0E!<3{I!AON)5apML4xPI{MV%@j$X%^PutATa)|pkc!};D(y}Z?GmmrN zAHOpIRrZZm-=zdJs`RYfZEV~BSnnLMhgy8}6QBP1Ko09FY~a0Maq2-7A>fJe(-~5} zQZGKl0kYd28!e8FHN~N9_)Ih}gfHm)$uo7?ELGD-h!_#i;Fnn19l7&sI35HZ$1SrE zuiLEH)CQ)YEL(uv*yFAcyF}K^r*Du3R7@f$OQ2Xs9G4_HUE45W4lBb>KcNZ>7P|ni zI37hD{0cZ}-z~ld%6M?nyYg+a5z@awfnDh7jUcAuJPZJE_*1oCIek%+&bC<1zC9+|j zj7Nz2!}gr~V-}T}iF3G`Q7DoPcg^`wXRW^!x**@=xQY`n(!V z{f8%#j~ehq;?zjf0G>!oss_+CL#f~%tB+0Pz&t{AH6H9wB)ldtoiY4X7w9Zh>XYZ>&vIC)zh!PviJ z+JvCfI1JUX)6Y#v@Syi8rN6zeVg3BZT??856}1b)vQ+(Vv?DN0LKEpq1Ikxomm${) zRD3eL#U8YD`+^qD1%ic>3I-u9=Gid6kcZM~mG;PX--oRxR6yb+*dK=CrB%u2zApsl zz$*Tb0;3kr z{%zt+!QPeY!-Kb=mZO$yxFdC9PJDWp)@|D|)|udap|8}K2qI)vegoqM`qk2wQ)+)t z_p;a;Gp4~K5~ISb-;BXH;bD`!DB0D%?%jXaXz55nT;-}))Pw+s?_*sX$D;`_amcY? z1Rd7kLFBowAL$cn+VnM?o8O=fvaAduCDri0r2o725^6 z$OU;(>mDXa>)5gSDGaTvyO8+n_r=DM0jXrA4sID4i*zqVLe9OHge1rI1};10bDyrj z1NqpKZCTDxGJGEP1MVKuhLqWVC8b&j6oE;pQ;t6uC49Ep#HD z@nU)!s-woVb_Ex+aW0IpM-Hv*sCK?}M0dZvIVqw}{HJ4#*ZT5q0!`yY3}fwk$scD8 z+P>8y2?T;3`KMb`pNkc*bX9rlZt8n%oP$VhQWE6^gB>UK;R@?&JNrzjtNX%R8{3;m zK8VEF$vVo`@B!dHN~hCV0Ieley@Nwlc6banK8QwjkVKM7p@EMOR@jyjhw(;3*3%cq;?b3ZucA6 z_g`gc;EkMVR|wd;!$?r=6G3R$^-MPRD=4jy+h=eaglkV*&^ZhWq%p2gYV)C@ViVuQ#Mmd)oRkg6( zX5D2?iK3$#;1huI_ErTM9F@n=T(AOtSy{GPTXUWK)c}N8YGuwWH}vX2dHKB<@gQ87 znKK`Iw|f`rYuLr^idEJ(2ui$Qgjks==>28)0@tXvmnRTil-8UlpQ;2fi;|;%49ueB zd0zTzh{gV)$scF4Wg0jqtc*N@_yHXV(*LM=552ZgKEF4Y>1)DTMjG3^ei1#zw9WY5 zYDh}10vnJ>r~=k!&(j8qx=(w*d6vUUIaj#%&||3PY-6wESS4&g>P5_Fl%lshF0^7y zmcX_;NNw52ZW?l&*NG?UpVJPp_HG$n|{;Ml7;*w9ImD2K`!R;MA~Umz(y}^$~+Px-MtmtQgQQT z+k}SW91BWbgEa}ozK1vRlT{T6efmV(50QI3pH2QGvVhCygk|Rr52repBjfMPH;Zk@ z&pX6d1sH+A(@#m(##n@dKGJ{V_cNU?W=A4Q`(;muWE>0xLPHz+e6`(lV#kIy17=PReP))OYZ>;E_#BMsVWkX*~ z&F^uAUS6qJ3S{BRtxc;P3{`DlKf3>7j%~`D?RCzGZJ^uD&^>7cKcH$L1Kepe^WXN~ zq4%zWMrn%u7px5+>wK2_n2*EZyz04FwupPboo3NtIu7CU$!Bcc%B;LAHnFb6{rU3H zM=Z7eY*$38x!K*f5}qxCxyj8{-2OPoVnu3(uZfaIyq-t4rsPCnLg2?}2M!{0YjH*a z7e*u-HCe>VK31z`Ft`?9u|LDSAAykqf9^4@gw8S@NtZV`&Lx}a$LxFUC`Ff6 zTJD$U!r{P%^o*&~zgXo!+wK54`k2$X-h9ZZtiI{M!Lk06Jl^f}<4F~C@k|gTZ!%_Q zHYI};rmzID42a*{LQo+B_=XPtgn?GeH!)Zz#qQ@VMQ?YI*>=iLn5(MSnX(RoY7=|Q zV`N{W5g4=Chf>IS|I)o-5aHx;^5c?Jh^oF7e*d zWh-on#x+K(=wDB++Hzix-MX(SkyxD?U@3KnWsi*oUSa)WefPniK%IQZ3D-KsGY^rD zf&Ps{1Sg%TLE5cy*&*dX*HNM_-t&27(JV|wFYc?h-@dzFm7`hrE} z)jv}nDW}JQ(FBo?z6B;Kx&lOR#ym;|SD^~^BzuxYDraFEudMd>3$c>%IwWBci&MEgQyV$ka^P_xfL>~UPYAf48c;yD$&`gtsbpie-qr}xmzs{ zz|1Y9h%%YKA35JMlNe0&okL>KcDf%3K8O`so^jP&#km6!wY&+(OruE_#B|Y^VL5h# zRomM%)+_2MT^l9v6}X4mf07CKK$U( zaBEOXi?giXvj4+}g3`X!DAsw6vTxN}8P)1{jJ+lbM9i85>6(8E_|hfxJ;I!l}tJ2=~$ zO6S?C=~EGGK~jBtl-XW(&S_-n&kEcZewyvHCWMaMz@R=)Pjc^K=bD|$uQJa0Z%;kk zRZ23?MbMh~-p;=$+u)Fjxlx6^sQv>duSdYp&J_^#;(mv6+=@imJG=1#S1Zr#9sSLb zx2$8E&jo_VTdD(6)n%>!+#1zX@Cgzsj!pVi&!o}79^J-1Bm8>klR^QM-Uh0@xx9AtiNDn8>5WY)h2!Snq4I=&_3h1WZ=36UAYjLh_8j^L>rNucN z`hwXI^O5PEpIoaf@WvMz^aZ-AU**5^(+E0UUfXiwfEMlmUGF1t0mi@jwMy_a5Q=f) z(AD(p0?|B^lyJB`S{Ou&`y?ixB7LH}dMVFbv>HJI>F?L`p%wdm+J6n)Y!O(t5#YQ9 zfI_I?A3z~=^)8JYbU6Qam&!pa1Yd6M7i)bpAj*^X*SNCOZsoykzw0DUcEZ)__xJ+t zTp(m`u3!{)^Qvxqkhsp61ub)2>zWWn1b=j4Fx&^YLDH_v!G>(5!+g7vikHsqdL4A% zY%@_rQ6fT(%qaYM#Kg?(9@j>|EVc1I3Cn~|s|tFO^>}ICu}KCFBJq4|)@Chd?Z@>6 z4P*BUz;?i+uLI!qDfURcZhitmn*k=Q zOCjR^d@;bFtil>LOHlQTwEd{}Mi=bx zad?wX!F>xw-T?98+UXlIx_>v4PtSUq!Jb!^F9Sj+*_H$W2KN#a$-yS`>~yCO6iqAt z1tgmH{RJdG${LckxFHY!K-Qz*%>`|J-q6+(zdMPC-2XAr7fjLd2-Gxy zkEL{zh##Q2xxu|AV4W=&bu|4ib%FPVO@r_%wc`)1JLP*-!&{wMyI3lAftI7mERTCG z#kdyl=g4SB)zy}iN%Lf{tlO|a2|^#*Y&nk(C*jqgck*-DA~!I1@#dn)G(NZCs}GCI z&x#%=8wL^IZ87(cZLqS{jppIVNa`|=P>$2(WyBQ;G;&z1IwAFQ$yRSMZ%YID%UJeqEbNsX!R~>mFUy>Lr ziW;VHR2}63+XI%K2UD`BT~}f4&)B%ZQ!HVK`s)6hF;~o<(=LAdvd~TFH(ocRu!@|< zpIXab%(lfWoIbImCcr*Vy&0al+nvfEF1}mgagfgP>a1dQRo?FB;$02^V)lI*M-@Ap z$lZjQZhAb*p#C2~;#HKqoZI8oO+l)GbTN#L&Nx_~ZUU*<)MsS28&;qo6=P-lGaVE! zv`0QzmIep=73&rTQ4#F*ZwjDp!QV36EiX#JGaRzXYLAGUBRAmCfiTXy| zF2m>lSelO97}L7;s*+>F=^D4T9$U$?!$z4HgJrXm2RNLza+ReO`4-(Bj~va)mhB?&fJ-&bpj9tHJ& z6N`B%((WQEd_Aif45L6K$GZZFpBbP`0mb zfl_;z%;8!zq>4?^MNgSm=v&)CiSoqau}*RZj%n{sl&c2)-Vg0aJtkew>j~z~EYiYN0@B z4$qlQ1ad#uEDX>!*q16!{d?X;Xru~|D5w^$Zj>aqczaE`&G2hYX?f4)Cpcu?eN+ic zbv7trBzA-`mUkVz$V}w^sAV?)DRN<>#Y0NM~xMPBg zx9V{#!-t=qB~L6Sm@^6y)#x^QudJ1G#=kpxD9l&e9h2^RNxi;T;66cuolhcM!?0b8;yRfro`W)1hYhvz(1%v$^;kX_W0W*Mx4&%!hCLP67f{ibBT5CsjWmvdXw zc4d3mw}(Gl9S(j9j{uEIk4?Bv{mRqx1|GwNRtR8}hS)<(SIFMw3uyYms16_vxb(?M zXuZLB{m3+LOM+?ih3A)Kc<4+MThwW>Zo)E z;f-WgGt{@mf}tuZ6%)*b>NM!7XSS45aXV&VDtBnN%Mus9!pkiR$x$FtnmgP9<3+aF z)h2#P`M=}7db8OC%91<>KP@UYWO~P7{k2b|nVBfdDW>9h38;xs4=uyAHynOv2*1WW z18zc<2%EnH+}(5_3pzBdueD%_z)UgQdJ+Rj$FkdxCtbLgl~|>-cAf_ScsF%t%qrjm z1_z{mujJr!qA%lVtSk?ftc5fkF^o6*8L*?mCMBDwS}PiiHkW|#{)(zD(_sK5N~WCt zON)x$zd^~1aGRQ*G8!k-igJ+hM7KS42Tt{G=Zvq*o0T=1>|ito<-)NIe(U*)j6_+E{;E3(<) z`CsCFbS``2+rHb_iK|5XGJa};gF{l#8>zXDF}1WYL%(2$%Q<>kF!9#fqYshviPrEFn!KrFG0)srAz4L-;ASmZU@qrYqTDEva63looh{T9mxjxo~$xE>be zp90RX(BPC~?eNsWMR1bzB)%C{tW0u&c^&O^O?m?lUgx!?*I)Reo=ulzJ%4I1u;MS# zx0eBCH^8Cdajz_8(w_Z!mL=Qy{tjnVfwZYUci6*g?A9C<>MV-^%_X~VW;P`X)XK1C z#}89?S=;*|WGp2I<9dBGQqYc{n)-~=axH=kw zSh}MXkI0D`$v&0i1i<3SLOyZ@FsT|Hsn&ZPemb`T5d14es?{w!y~6p8=n;xQhXi0w}KpdaWzy~GHCaT9bR48I*Na3 za3=BaJJU}E?cg11X-9=Oj9?OC2o;r>*xt%_qRM9@{qXnM6B;`HYex(7p4o0zbVSvq zCd({_1j{Y6uM{BR{4MDDAhJI;NkF->$o;QT3kVy6@||}aYxB7q zd)0#Q(4>oG%P9}+!85?VT>XmPW$VNUmveesE*q7-qU-ngDhY3-aS7&onU!6=b4Qw} zeMj2h=4K6o^AW0cwYN5oIx?Q^1FHDLaCWarCPB!i&Y@=aXmJ+iLIo9y*#|KXldxhs zl3p&Zo>F!+g1f%%!=T+u&eCeu7f?WN2gc#%Cae&>Hg*zsK}Ue#uFaw+5p8eVV-dzR z)=1pMTTHOXmy<_(rctH3iZX*0m;Noz)8hPoR-mbIyQn8|mS2HODB^sA-tr1>Xnv0T z6?oZoas?9r3D(aOKO}%PLZxAl|HIyUzBRRO``;=8f;0=DbZkgRkzN%Q5vBJkBE5tj zYEY_*6j4B_(rf4tdgzhf2@pak(o1L|KoWQ+YoERLI_LLX=Px*KVqS2m+;hy)?(zAK zKm(=T_$OTBnU;&yW>}kQq(t>&n_hqnZA~ZqL`$u}B6BMoqPI4N=hj8b<`xh#9F12G zS^2!tc$c_&GUVxpLuD`AwP|ZPKWB-!E0reSPdAJSy+A@#m*9qK>WC10PSv zZ~C@X;_0wTNt3XPQk?L`8mSlt;^L=kW6=?`(wM47W}yk z%EABi3V$`7&8nK)KU6?Io|9298R3X)1sgr3bq>CB8I$*AW=fTwyUA+h8T{oFRPj`! zad-?q>{>i3W5H``y~IcQ^`bBFIb^#jn6mzfH+Kjq8A-<+VFjTm!2{!sHHD53pukQy z6OEGdq%i=+CtH{Py)M$_l%)-GwqGM2rS{9gcK7K$d{YXfi{u;usDD%1Q-6i?5{6n` zUqREznJ17yg)yLaw#-%kmXt#b)3{XP3aksErCR)>qTIBf$D~sNG&R0IdmgjR&)UA| zz${#FHn&%J<(7YkzIm==B9`t{&j}^1Dc+j8xlI$s150}x(>7b)kFF;`4@~twx584y zTkx$HnB*JGGa;l^9Y23(pUOy%zZQ?FN8Q zz%sTZ&HXlydh9cmqsFr~VuYkss2PK@+>eE~F}FgPY3!*Uy7&@T(nW30p}v=INA5-s zZ!CBtC%9)_9qkUI@B(45 z*fc6UaD`5u|0~{O|9igCm$l`J>f!|^4mT*OdhcUg^^bc!yL&JUuZMW^I}SPHmDu!G zbCDkg(>orX;jX_jdkBH^kdBEsT zlA+D#-4LGyUvZ)In@>}kXU~ti#-uCZ_rGSY^$uk|PLd=ba9@-Nit?}E{np-?Ta=<( zKBL!Yf`wyX$m;x(KJc?e4gH1p%IW#zhqo0TP)U0`CZmvs`?PWA zACh}P!Atg;Dpb+#t1F=v-P5&AsomB}XDI9QLvOf;l-s%66sPRt7;Z?sDxtIf!m8-3 zuBo0`{O;Byps3Z9K4m54mQU%!=KV_mDyn};yZo5Cs%9sqaACP z^;B^x`PCN=%+JC3>c6c&`)thz@2J*J_X_|v*w~@87C+c`P4ONt2&f#wOeO~tVgT(F z2HG8jxHQ7!k^EoF>O3Z_9Bv#5?mSc%aYZ%-N#4 zNCq0)RjNCUkw3P-S}R^Cwk7u7EXF(K1gkTQSEVrBGFrD0mFDIgp9Z)7dCTzPo)ZQB ze8@f%)OgjU3VD6XG{zvciHT)~DGv#Z*%U6t3F>_NY#oIh4)(*NH3l?4wNFC0JC!Qi z_QxYxqg*J?Lz`GA=&S57EnQORBA?JblfYkcsb8sQciP?vmmha${y>JRK^od(PFcC@ zImcyPDA=aQHwQy}1)m=Q^!WDXhYwEPr?=aWz9FKo%N{)N=5{Q7{y=icx4&lX{8x(Y zFYAL<5u*3!ra~jq$@ts^!B-EW7fge(uUwRj+x*rFqRwd*wrwD7BG!%b*Fin8Nbt^byGUa zq`b~L)rcH5+J9>S42;|hI@iFPrVz-qMnzadfogp=XLsu6drFcu{6E#4W4eXCIPZLW zyFYdYeL&v4U=LswTW>?gl)VF3{#`!&6F2?)yP_M=QB_kjy;FAQ?5>3W?5-p=_w~i| zA>X&s-TiJORsgOSkb+N;YPr%48ZLC#K@^*!%Q+_NkzGfdLbK7n>cH=~dp2%Q)#wYf zczB}IdxOt70rn;ToFsJ)i#+{+Jwc@}NP=GH<^OkQ^WSvjeKDXps0!_*HZ}u}b#XH_ zvK1B)q`<;;{-^4sNmG}Pv7VVTla%%!+S4Nxc4c!jUF*~a_>~!&vbo`cZlHv?gjHFb zG_dZDWDLu9=TZB3m#FgZzVZKqZ=StdF=s1kzG+9B=c#94~Or zAD;pycIOqX*X=VC^F1@M|Kn@_@pAkhU;CeQ`k!|E&+q?-OaHGfMdN>?-|w4VSd3&X zEH8h!d?EGZDA#vq{@JP-jq1#=OONbFUjWc(d*jmbKw2R{?bhx6|LD{G%ZtUFtzP@4 z%c;VD=CQ`kL^?jGZ`)tLGcSK@FYh z;DTZUXr!speh8q#CUYYBgoX9-*cn~CGiLY{)1|`Tgh~&#N9Jex9xrR3A(>~sWy+!A z*<_{6N7{@_H4OfmLPYbS3@vo6A=KHdv4BI)n=4A^6f*CN07wr$<0>~w#~+35^#{u! zxM;;)DW`lC2o=TdY3!Vf+5pz1gD^GegZCa*nM}QCLY36UcgG9r=5C>rCzJGx3n=l} zB;A|pJ2WeRQlI@;H571&0~UDVWW|^0Hg>>1ch%3})ioUb$x^BUV}afDCA%8hddD z1INYBJpimj{ZdgL-v2L{Rc~-_*|%Is&NuI*EnF%H$zRei?2z}+_IjaZ^$(G!S;$J z_EvKMeJZVM)_powzRh82a*#s}r=vw?+%_ZKt<2 zb}`S|ZY87@I;B$z_XVEH;b)T|W>AseJlEQ0Q^z;gPKrD0Not;+_v+n^|GVJ9hg-l} zNZ28N5aB;I{w5wmi8 z_h>s2UHUe=U?_Fgg2MG3AlK>_@(R8=kS3Xb;Dla-y^Kr|2d+jQ4T4SULbvaqVIaIo zRjY$$eg1oWimp0aF1S|mDoYa9O;hDG>_`3fw`j%?YfA>{cTX9;kDLiOi3;hGk=@Qk z`@uZT0-(LZJ1?l_4~+GC5@%apST!q#0mXh6nki%3T97XElZYIS~++cwege zM@LKY$yX~@sjX!of1QPXs{i0CE9%11n&#(!pFmE#@0YsT&$uQTB-~M;rGxRsrT{)!| z7=xIqUyT0VhaqlbQ}>iEg@&`WD&1}nZGGPZ?gy?_FW=`VZJk(F%8j7e0zFv*z$uNEbW zJ1i9|8@JC!0-_}KJ%6GBaUc09;qFi8@7fj)Gtg27YjK5i9S}-$I*-(1QQer2z9PVk zh1*wmw&_C2`2A+Y^LlYdorHmuJ;#BcVP~4rC=C(pff&5arZ3WHA}gZ|MV>1Wz`z(&AJ4z)>P2pDLrcCONF&d1kUNp@4?r0`<|RD zYn#b%CjhzuZm>oAGgH6+==>3p4^S?{F7hw;%cLW?<5kvy7I&hEUp0bX;)Ovc;%wAbcZh+@J8_T86ldy>XV{q~pgJI6`OaJ8tnqS3rF+zhuPx%Y7Z zewM7!Z+-J(2Y~5$UsU)m_u`HiA+Gg08Jo!9`LJmuKm4Tbeg}o+M_Bdan$Y{s0-u3- z?2E!)A?spZ2H|-Mx}NR5(%Lc`lDoA^cgmp#PIq1so*BAgUj;6B!Y1B?oqvBxhBmnQ zbP6M~l2um!`iFtsX(L$oa>_OIjbVDW>9V%of^f!=st#0CCMzzj_0{eiEtA`iUfTOJ57K}ij5%umZ z7iwP|QL&}c{!0${ zH*kMHmoX;ixlVr#xhV*alQ+sZ zy6ylVtbKidg2@`ifY~=>!;j!jV9eI)u{>^yCwgq-S%gWiW(XF5!V7q%U%|?ZktKzF zg~%U<10JbNKE~8vnaMV`8@d1M1f_BtPZHNgp-IMn6d;D{fA+kXS2)G5g?J*)(W7Fb z&LJHH?t4^io;NqA2>P+U^hg>AJVSVaL7)SN@+H>H48k=X!4&KnkmM@fKkXy>S~4?U)CBP@(l_?f)$5;oYIiTu&}4 zi?LmT>u{z-ASdaIH+@w>ev^&C+W_my%3T z_WuEiOZs^ia0xpgoK4xWy};s7<-+3^d;bi=VY;bVu@+Eh4QATaWDxmr_x)AQk@yQzVr1Hx2DbS^IU90qo z=&tj_9nv*G~OOkP8C6}rV^ICA=cj^10&1g8|kMYSt49AuQccFzwx z>*oghO^aPn)t2F3Lb1SWX;<>6%-L0<#0=`Z>Nh5fidEia9EFaLme$(uW_|+=X zJbUTk-oUiR(xrh@l=`Vktqv-JmG$tM&J8guV9@a0$NE!FhpLZ|#R8dV&I8gHtAv46 z?Rs(N_JJT{HmvP+mJEfag(>jbADZEo3TBM!AsvmM#4PF(q1AmyoHfF|Z(yS;>k&pUF zN363)g1xPJ60m;B%w+Ms^_MZUkI90XuMJ%qzUf^(;`!d!cC0#bPcX{288;Q2JajH`9-Y@5TQ>}&!ZU%Z$)Qzx&;yU(s4%q`9*IgG z`=TK`XrR?9$YHi?ylEH~bqcutH9F*|W%`IGpkHhc^uy8H(B-H!4dBXgkF71$XPHxV znr^2+&TlmITW)epo@7E=dIcRv^e%)A$QRcDrOjOJ0g(CV5K|v-UKS*-AWdd<0{y!f#K%1e3d-grMzUK$H0)qy{N`o0cOOXewzo;) ztI0jmr-Hp7Bfc#+6;KNAyTwnQCQEw%-Wjh-KgJ6m_&}!fN?qY zGveLb*(AEJW1Dp`{;XCbMX<-mS3ll5@Dpd9VL@J$2&ruA#ap97@Nru4r zD)!Aj$kc8U-61xM_A`Z8^?T6>J>9?TAFcSNiZ+A00Uw;<-hLF-iJ$#Qb#3F;(?kS; z5!=cY{5}F}MK5Hw054% zNqGf(3+~&2;W0*@Bo2#DeB{&8FW+nj(gstpn{%iQ+7kv? zltar#^+C~#pf0)z4`3(YLhE|_josm`f1%cZa4Q{;cS6Wb*`KpRcl!F>d6ARwHtF6{ zLFv$(-jt+UhusT+*yiZYj5vFNX8R*v|FnVvH|efTItL#*;&WwKSAE2hgu=0i4zWYL z^S=P=P64-Etx*qVBZX49IVD#-ihX;$xU9ds0k%rVHZHzkf14qKo29M!Lhw0X+8Yc; zl^zxuqN~kx*TgmkYvx*E{X9j_{0*e%WLD z3E3Ro2zF4)BCmM;-LDF`AUsN@v*+3U8FA@GPrQ&=UNUcn0@t7Fv~(d2o}V`;3TJDr zXi`>f6RICe1~=Q%+~R6)=2BuktMckuQX_AaegpL&-0ysQ2x#Tf@u`ag`rj;sXWTK% zem0*txN;ipEWBP2-&TIj+hks3f8d(IBGTY2a%JgkFXX4E^UNyeQ7sINltZprT_B35 z#8Npqr)Za2VabIflS^l=7bGk@&qo?Yrnpmdh1_|5JVX1So$9?sLOuYVZ-GSIajAfV9&z^sEq-@F)+s=y5M)D3x~m zqOy%q*(+*3i}_pKlqF;5+rsOgJA@GuH5|^toY|n#x=>=QaVgd{ZP^#y50|rOd6>|9uzw{ z2A#K5{Fwass>=Oe9~G$bJl87DYfR>VZWUMiFG z>d5EQ+tn9%z(vOm`Gj7yj8`IEbw^U&4=)9^Y;w$$FzH6IQ2$s!MqQ*{&t_>-doHK% z{k7C#jD*7B_yOZXUbg+fN+hw|+}>Ef3quc%I66Z8UO4KqNwrW*d6@l1_c&db@rjo+ zio^7p^eKsg?hE9jkeAbvPvl_>3~p(^nk_UR%_eu%GjOd~zwg^PV+AB;^hXawb3J1v zu_7&yq*y5Q+|yYMRHmri6Rxnd#OS~58JUOjuLAUgiY)^4=%)tsF(+#WfjY#=LH|9c zLLoF+TkO8!SXCJ?#KU^X7FmY{n>HQyj5};YH8#TlK7(FY@S1t@koWW(`0kf2ZuRNY z5$~I5Jdr7jK)<7&Hxi<;##ustwTSGeX$#U{j3-As7Xr6meF*l?*n z#2GT1FnFF{zgO8#kMo&P{J05EZfueNt+d0iTuquyDUl)p%U)Er)a)x0L zEc(-NV*E3(MrZ@D%SdkVuu*G8ek~BMa5O@hu@$jE&bNQ31Z#^P03B|m48?Fe>*Mex zd=<9$f69{`vyzwhtM282vyLj3YbG-hB8TIc82g{HonALNt8eKemsy&gGunEb>S*@N zmiisPwa978l|XrVR0!IIr+L36P6}3YydKz-F~Z-5^ZP>;dgPw&@y^owc?^2!?$;cQ zr17~#^#_y8#zbU~36Es;NPsb-Vm~;*9?5poUWAj}R|!&f5C&<3{}SNRTpZ=(qip^q)B1=Ubu+y^nL3tEf9oF=2A7KZ2{-M z?MpKkWJaJkU+t59I&DieuIT^tq{`|tQ{_v%yJ0YhWb5AOgkFYSS7AvQW>4VsueYP7 zvXR?+mH7a--}a?b(e$u0iJSrw@erz%{vJ}f6LG<`s?+W6D&lpc#9UEDZ%Eg-X-7?1 zCpA53pglz8Tkl2G>m2j)5Ie~BX8c$*W=-Dk1Jr!KErXBYe&s=+B$B?A;AD_3)EE(I zC-?T%oOj(Z_bW8haR)s!F+kseAKtT7Thhb?me`C|O&kwsgr_XYs@t=}RyJXgb#(L* zbuPf%O0hUGaK4Gq2Fr}kg1kp2JKW(t)VmBZO@L@d-1hvm(Y-zZfAi?MuR&}2`Qf@) zWG%b=T6@L9&v)7d!R{*gYd}XU`l57LPY&irbbdiM^IEw~(cv`+-M6|U z8YPBF0@BZ0XnNhqaR(|CKQ>m*U#BdPf|TUa1EPu((Q7Y zVzLuoO0~eAuz6xPKW`1p;ZyvC8v^ZoZ+wUCi)nS^3We%Sk%M*cBPfcLdVN2&f0NNm zl3c$_jXNt$!}ZyMVxd+RzXkadcx%>H01D%bjcl{cM zCVJLdrHdcg@-y_;ET;xxDNa*`mk}Eb90iK$0XTk&)sq}7BV)kQ{-pcehNajbEX>?z zta@01L$ToURu8CdQqOv2QO`2=N&hwrNNuswTWRLnDGN;rFQ__0{o7VyK@Fd(zK+V{ zILYa%;#HQQ7mVlm4Efmo3!lNlE)C=6UrrR5$q`pTl|^@nY&@pdUPF5@;oD8aqvczq zpuo1tKqXsShSQ40r4h{VwN1F|Xhj5Hs0M@Lx$_tQ>*JUI`5^4>=2UC!MGVvYi5t~524U~$S{2rd_U7} zc$s?|D`1g$8r)cI-X9%nB&51SmY7xSO41mie}|ZS{{$Uh_i!Zax_xAE#!JfE2zG}D zv4Hs+SJy@_qqzJg^1klaGc_IM_<-i>ch<9b?62gNHIZWRVpl0J_N%1*VEUt^FR9@Q zF3js&{;}-tL)f>X#G%Ha&)WAwP_ODb(en`1&YU{wfdv-Lo`5Pkk7rPyu>y(wyx5>( z3;kF=zU%&a*E;Wmd(8H_)UQvgR`}~V2p;N1Qx*u!e&(Z>b0$mAA{3ua>epm(&g-^X zLKZ*qWSHF_y)Ye@(~0)lt3{;qOjz9BkSr^Hq-)W6nmQzwA0xYZQi$zh#Wsl2HCLWw z6=wiH=-o?@kF8Y4-SCf=UwkLJ+Io4R?KMl!RO2e<+jQkNWFi*%A|F{|F4YTyavWrp z`loMpp7z1M1PWMy?poYfhc)ZaQNzy zW(~T%!4!yE>U(Y}O}IONwGC|C@^KFW=?eVtZNoY1Y7Ve<@Nsr+_!@uhi>!stJT~)w zbOgeBhxYkvb3> z1$^Y?WT6s-)syZ~QFvrC$rywccsaSOiS$|+kVNPCy+J+^HZc+u7`>neUEnh$a@vkv z@IkLF22le|>CSjNs>Q#{t<_X20IUoo{{@wyp$c{HOpZd-Ch zzR&_hZzx~b(K)H}Fs`%V?KvN6w%%UpS|mnS_{yZ~YR-{@EThBSjq!vZ!ipP|jD%^gyhR9%ZC@^acT`m8Q%KTmsSIKY6xhph1)*I- z@Pf?#1Z3rfnxA+yGt7IxBv>m5Tk0?;Uu+6*dz&a zU#a9|)L(`rqZi!*i_(^Bv6W=jAJvXDy0h+UZxh^WanRT${>KvysXyAkaq@al3;99{ zSyDGlhc&cNrxxxnOlV)+4AoP9h_W&oz6v1)Pc*suTB! ztcg8N@|uYw5e_ zz!#p-g@$k>NQ@jalA|7t@E$+ELf|g*C(5DG2c-*v_&nG>-Hkk*{CC?a<5xWso?R+wM$LLt07nY zVORab`uJ)F=}%7#ij4$RB?fQmnR~=*1%awQdM{TQ{xnJ_0C}XseLEY{xZoT;LWObx z_M6(6I#f_etm$CJwEmmkwby%O=|FJg^k=^OIKp{jLE^ec#PMXI0QC}QCsD3PO znIdjm*;_(=g0?uRSef*(0bMPkcbPEe<=9m@uAitdz&S=*udhYExKU$ouF7k1_sce0 zmahDu7tyk7*HF+3W8`k8aB&23Xqv!`62?4fnRG;hjrpmQkU zJWM=!1fLI6kXzqNu$gjQl+bfFIeJNfv6I_8R1$f21P;UM3bx>DM%2V?lKqO|4nywf zTrcdzl@u7gK15?^4{5vb>Yv$HKl!Dmb>c;dz3od)NmK?~^A|CT-MY?Fo|=Wl55-Pk zb${qoRVgsX=})1Wrb7-@Z)Peib0@6=6{!#gUVC@tj$6P|76ouk&*?q`a+A%J*rWzs6)=x9_GMfeHzI9NB4Rmmf1cBgjQ3`r46Q0=$#kNw* z1rtqoU+Z_!Rh4?&C2~)_9@zb{ES9l(lB>x_&6d3?ij+@T4%%p;8$+CE_DD}-#}0@?lR(OOGB@Om}o7cni5E_vCI-a{5cwx-e58 zEc%)C94n|MAwL@OG2@)J<-uD0E!CZH`xlAk>mv-bYjl`6AhWKT_3L^)u>Jr`crgqa z1B!D?U6;HCche6%?C?%Cy-*6UX*g!+%9wpw@-HN+f4Hz}81lQyq;NtJwl#@Y}+0@M!m3%i^ohtknm z)G6zjxy|@;y7Bm8dH-@+W+gnmXLU{13A4_97{B8);u!jM2*LN|x~P6>$xG2XX6^r$ zwEF-qr*E$ipG^h09GYuqE~nLcjQo!`s-rfjENfir`0EqsM<&#`A}s;WQ^cL7Vkh`5 zv4ULTkWMK#?yolSbNHNFVAon-~w2Jg}z(SDbTL9G@Tu}ccCD48lc)Qgn^{7i!4 zJu69hPRGCFICS)FW<|j^MrzXQ=5)Qe z`3Tf6IxopT0ON$N>p+{e2X?kp zu%?&#cid5PSN<;Q&VBG@;yNr|u0RnjZy!20Sr|GDMtd$^?>rPzhVDGHw~{#dGLp%u z5m9w+>@XNO_%HQYP7U$?xjGKpo0Q}hmlyAxKb3q`joyovWf>6XyP+-0w)`MDT(?Srn(R5%-vTwCq)KGG|UAqLf@0N{+E-&(qT@?oHdPV_yfC`56vd zrXoLzo8-@;6z+#|PzR1mD?k3cevIt9R;}kgqDs{yR$SA`tgmvs@#m(0p{hN}cC(vO zHJ-&Yz|>h2%lu8KLBxzWnI`8rdbPx0C;D!WP1S^Nfralxxwfei|HmDEimc6C^U2?7 zpqBL#<+)6S*HFH(y5YFWtv6^{--h1@W+L8)+umAtpR8^}Ho*u^kR*Z!c+#<6eVFIk zf~w!*OZF=v!4!!-&J7P{dgo!wiP?M0h>|_;c~~V~eSwfCY0>QVq8Z%caN|INrb?{Q zIC^VoNW-}`>j=Pi1wEtfBnRfF&}NrkTdIvrMrbsOaJ@D%&Oum5wb}vQEd>v%rXB@G>gxUApLGv~$EUO{-;@}gn2l;H&|2u;{qpxhIXULb9;i#8dg0-JUX2y@;7} zef{GRFAEa=T39^3V(a#CQQdqrawDe}p$e*zUsHKfg1fz(2|k@@WRyF$aCNVjMpBcU z1IBhW1-W_z?V(vQgK>t{GKQWGNje@1jR)FkUohRfhGV?}$M|Sthq_R(Glr?^i&u&9 z@dFxNkD2R1`H1kM#UTEYM@q`68X^P^W4qa##y(sE_5p?CCB=8howwxhd8wB@XzSvO zsh7qWU1vHtpL5Z`cW2_q6Yv3d>^M=r+w73ygg)~(I$gQbTK!_f$?Fnq7()Vdi=@kY zdqeIyR7hQ6Ir(rfmhZ}8Ah`Bs1Ucm7#+VA@&*@zsxuqj^xp(cCGA&F@sEk$WSGR_+ z<+2;Kxj=TSjZYlumzOE1SvwFTCOraT42<@4=oD3w&vA{oxIcZG^h*oB>5`P)aKPVT zOZ4^ZO3`WUwz!B~)ESh1zuX_gTpX(Z&$4>AHzpufo#GF_Iw+4NTsIK0Jgy7~$ek0Vd*6khJgdJ7c)fOAU)Az=6VBId5En4dM= z?=kFQRkZ<7%RgGO8W(azm&bV*jnCHGU}v5ygw@81pJW(`?z2h`_Su{HJBCd*S*a3@ z)N@{^IUm!pF{u0XQ>e164+?TvHrKLL@IdfS_)zlxcfSlYz$4+T#>0@kJJdp z<{#{d0+T21lQjl59;JVgS2`BR59x`N@yyVK{o=FG?_+6t44pI4UUMo%p<_5rv(;h z9{1Yl@aMZ_bqBy1Os^vq!l!bx${NRB*A!bI`GcA&9#y_H@ZI0i6^SC9H2U>@QwZQn zh7Jv05M(p}>;g)bcv3sSLUPK^@QbZ8)Qe`a_$jg~fFg8ddAm*UD*}GfSlm(MSm=_f zcl3R6b2H4)+yQP18*dC95j*i2r?y^Oe2UEGKSt>Xl1b?5%(c;-dpF9jdpE-T!E;1b zcg!5PNuB^yumfltRf0BP(7vXcSpMP$**&VvSq1FXlawKyfy+LiG#vMTDq0N?5IAsN z0LsM?g!PvbEs30!5!DqEJ#P5|={1lBL59Zf)H;@ai373)s1jA6t(rY4f9L&}eQR84 zTujmoCdxfG-k^9TyiGsNci3^#WkWe93)r6tiWh;_0*98eB6^(Mc|>F6SAeTGx)+ws z1cXF^nwDxeJpYY6tK7O@^jJ-MH28zlYL?F!)X`uU$P(W_C+zHT5=Ev>h*O|!)1uH} zpOKtNAq3^K1%5dEoyvSP$&%-lh>e*Gq+w6qkv zame}VoMm=@hm_;Tb%nI$rkV+)%QN1MnwOt9mXz_RmkCzs{(PLSVUW)4NS-}V`2=zr z?&6tN=+(9d$Vn+X04t9wVE5vtcessOPo%dVh zmMcVsx^S8hSND9k2GZtSkNfF++(OxR(um-*UYQyjyj%>UWgjuF?pYG6USG;`!);cR zm(ezxQen+45>^fUtXZlf9nE5@UYyrDE|p-$f=PJCdT?>%Y76YZ zrmMlnx@#IdUHlB=pg%DOA`ZOL>QE7k0s4Fmu2>aGwlJep_|d%TP9r)=Y{zbbY)lWe zFuFb<2a4sJEx3Sa@A{URE*hWz_WSbJnq6zPeWd^>A5mZh>rSix$7s5~?=D)k)r`U{ zV3)VThvW-;(UJ*AXIWTKThp0^#BrPX`sZj0n`K|uJ<+x@*59A>w(DGoF(goXgVRM$=w48e%&fJ$?Lm;`D3DPBK&?J24nrs;bSqs$933B%!Qu zz}xGkuq64IWLw$Sl%~_Fhe=d!nbjl&o+9i6C$}jjfid%j+7_^+SJrspmN@SAk0|x@ z5Xhk_U)2qutQeg)hISL(4hJnN91va=egwLaDrN8pDhgKYnymZTvn_2|EEc>C-NKL2 z!ar{{Qge$f?LtsNx^tCvX`|7V5EWKG*FV7ah>d(iefzkZeeK;O=jyw~Ptc{6I@|2k zCc}`Y%Og=KjeZEVkurClO!sWgViGmI3UDE2=*jP2R5e+4dpNq1I)w2f&5egyTp=!q zZgQYcS6pL{UtwixNGwIk5;bTvt zw6i}zs)zM@dzygej2E}Qm>1NK8`w2f{+))(KRg=b-M%q0R(At5O(@L zh#NBP5B&XwS{loF47#3`7V~SsU5oyL^C`}|Lr{WM_tCbh2WJ%~x_G5t zk1@9`V=v30m67)6uR!;$vOxD$e=qE08%;IiMG`?vRqwt#q2u;HZT22uvml#Cm<7OQ zk)nH3pGoJCqtrm#=xPBPUnq4LUjXsfWyYM)OQ=lMRbvA7UZX;Z8CkGQyWnLe=l!tyMnX?PN{Kx0dk0RkMv=!{ywsw^I1X7ZK}cEP~z?Wig&ybZIkD@HMb)g zR4kgaLRP+XR;6s#xMI;WQs?0z9UafkB2lV@)zdRgk2rHac4>q@hjqN@!EHoj#EhDK zht4M^%+$p8HT6d}sImgmpqL#e$qul;8GXrI4i;j}w7J>Z@5;kJ_ZXQu)Iv7BMlI(T!v2MCCjs?8|II#-*qum_q9uf(# zlCk-dScek9OYn$I$FlfdzzlE_VL?w74CwHh7DYg$2bIMlz#e6u(Ic2w%W3)>o3_4X zWy`o6zQa7&_tFbGQ`E+{fB~0*dViyRiKk@&Lzu&e<$keTwVzi9hP7JoXTAHt(+<{w z!#hM)ITHak4sL(*5{V*1hj2ab>LFu`ZM1FJo1hbGz{7_pHVBhP>|Fg%#ee?d1>hq0 zTu1^r5WLCR1o1($^@~LgR;nk_9vz)O1(pqndNga+8fe;h<9*ANAhN&>{Xo;>2R7p) z1CQ1oPNpFO0&d=vN~=FkRZS z9;g;fOxn7q4Lv8uVLkEW1qHS7Xx$6MgOmLcF#U+-X$2g(G3JFIi+0Wc(t3sz0lIJ+w%zsH%ARD9Cx}}0{5Jow_9K$)N zGF8n8ANYXm6+GbD_?(W1|tt3i}jEjw`r;YktziDx*-;f#iQu1%e{gB1Y zqou#SlXNWms`k%((0Is+Tb=OgkC&@WNOSq7~B0L*gHg~czlTOgjUxX$& z!O;9HU=$QeKIBsoNp;IOIh@bPYHJQ7^V$D6-c?|4(#Gr6dz%VRSNBQH5HLw4(& zk{&M}>AZk{2zFe|p^KCUcktyMuIqRg74MIn2x<0Mn1cBegj6@^(B|f51G-(F`(21| zA-DChWkor)M{KtDZEosHrV zIVZsCZH+-p>+h$Ol+}LRUiE?kn%HvbR(y6J{~5?A6SL;|E%nEd}c; zDAsazb&&h@U#rSxZV?x5h1wS9>1G;%YpzCRZsh2%X(~+NSRW1UA4y)CacsK~8nQNA zo*MDwnkQ@i9;)6PllLsHP8I`{Jt_)ydh;w@ZKjO$qc1f~)$L6XWYrP+q|zdWUieA5 zv+DVj3m4`1N_F4l&6Xy9?kw2^1tw!fe+6D|#-g3-ePQSe4zI9U#Wv(rYfNTo1k>tu zk1B{(LhAP%^8L2MbFANgW1E{unxJ!wCZN|KUIN>Y=L6eP=-}W8#jBJ|q3AJE0iTGj zYW_IkMb%*lA$|Q7@&{kMM+N5pYwx|In#{U4P#cP;@y5)hHz zL`o=u2r8%u*yv4~AP|al0*QctD7`}np$MTTv?P#(+{1j|%s3+-bMK#bt)FX+lf=Al z&e`XjefD|w^X&Jd9RlrD<6Yo7U7QT@4VosJ^;C-|)4P0qzwSP*PW6~=3S{evc`)P6 zh>G#fp$-fksB!GUJ#ZQo)LDx)NL=>#8%ETdqlk1ecDS zBAMU|I;TsHghu;b`-!Vkv;(Br)KC(|YDBCm{`n9xe5lW%iTQ~IJD+>n9noDip?@Xj z#15W60+Wn+z5D0cvVO>c{iaB4N_z#i)A$d%Rb*zAz_ag}S*D5zO6Uoxxc>gz7NeQ$ zk*Z=5vtcuLiY-a+w3m5jc>mamTXzB|1v7LL|LP~GO>v9A6*yZ<9?EOx-~*}ULncm- zR1EM4x9VPpoNd-xm0#lS){{(2yu;Uljw>apQ|E{k-_x&Si^@ZUys5J`jn3p4l|Lvs zTm1Vu0D4Pz{d(XhE*faMpr9fV+dfiMB)86yFaw009W7Q_R~13=A(v4WQf)}^0MI=J zOmgCg^FDKFMNoeh;Xl#_{~zzkdx4_apFbO064lotXU$0>XnDul{$)vVU_(d^Ul>H? zuh9XojBY+!9~1lg1?yy@WH4B}6Pom&Dwc3#o1R^?Xly;CDN?yg66ah*Dh08&Md5al z2%<>noS40Sg);-4%ukAp{|mtUYIgVAS&mrX)Kvsb*WnXMACI-;<{^JIE!dK6rP*O&L&$*AY|fuI?LUU+&(Ge^ zfjK@s_io%Lo!Hq*S~zhKf3Xsx4;XC|HBLXZAt&sp#OAo zN)ycPIZfM~UDt^50@kGP12F57dzzbCU@I8SvYqYV?+!P93U?Kh$;I&Jljtvfd8CL1 z2JXRLXj%pj6LuYIL|qCX%;+~h-_!z+wp2;>D8_&>jnQNRkN?Wy70OcnX&`>-%l-@* zVBm6@v@-7fRnVNcJ_BW9Jobgu?-s~3es2-h{6PuN+NR0f-*GpTTiOUK(>VAOM)cF< zQq)+76@S>;=f?wD&BdweeFtD1-o$T56)vkTTrORFv@$WFa?|`hg!6XPSnGapV;gbrlyYn3QT!twZ?H)OXPPxp5>o_+!858GqOF>?0M?ymW+nkx0gm9rfU z#jE;;D_`%4l8uFXYRp~s{yG5bhSs(OGfL0nYNiA9cT&gx^$aV!vxFLPmavwD-8bIE zpjY&X_!KEbdlDD?#9kELsR`sB!Bfg&@E>Ie;?!<}CM@webLV3)yvvE#0|-+JDl;cH z^gGMEz(=uJ=Rd3m|ChpaiXVcdFBCRN(ub&@i+!!e5zu{3umdWmng4$ zvJfqjU#S2Kde6CqZT`~0G3Knjy-9@7@z3NobUW|4*Im@`Z~Ajb!RBclTW%FVxSb%e zVr4{}eZ2RwYev};&WXeqZH;<>?yIy@sS-2g)fNT@?Sh}%jml!2$Pe1k>c4kTF0S?) z*Y+ytn1gPQIx+s+TWaj+IZZKRN#{#4#STrrSTBSKfE{Nc#GalQbB@HL&Z`KtcU89E zJwsYQyxmcots~93#O96B8=l^BVedhAMX2ah`CEe%HT%n@Syd-&FUNh7IK-tE)XbIQMast7vJw;y%k`88 zX>d7uhfLYOoE7(LnTofn$<`xzO0q-D(z)ZCT7#9N6Zn=cVuO}ny!1c}I28-_-!H~6 zWa{q;yvibtrKG4dHM3)qEo6sZxQu5kuMo@FtrjuUGd?`gLiFT`m(8y_5^&i8bqqiA4inVUaB%l{Yr41G!qjBON%&BV=^lV03zCCPdEuHNmHgM^s zyoE6y5tcLh!0c9!t%4+7^Vt2Ji9P|7k}j|Mma9Ap*248jMn#Dy?YsJ`pyVXErlCdU z7}L|#Yk1m)i-QRjs6F67KvtNJ&B zRyA>5AIT87T$`(pyqiLBw>2RN8?eT!*q!`V4X>QKA$zI zkOCLd)K?KN^A8*CPMuj`iB~4{!9s(FWO(Y|^jsxEE*TaaDP0R~i4uY!W42RC(d@xT zV#$%eT~uM^*s0yrugJP5@*pg%a`v`sx3kGX=Vf}(p!nk2WEZ7~@gtMRkDqlPyDVxc zD=f;D@k7`H8*3+sdrbv`1w$WQoew%t6M`>)P>n=gJe!M#R-_4wTh^=LErz z>Rw=1chI##K|``%|CWySN+X^Sw#|mTMv-Y2vv86VXBERP5p}|uP1m|q9Ph-R2puG~ z_l#bbs4VN=E02FdDN4vL8SV^#$6Dr~s2v|5K_n(ZN1m7K|>d zEqM>6np;hw2M(jjOV)(oniHEyhi?j0Y)|63W+v*$2?Xkf0`Z98zw6wPT@x@!1dM@CtK#(lJQ6 zltOS8gY5Fqiqi`ha$|K9is9Gr)lXzhDUE+}#&N>+-N9!@$>$5>mzqB6D8>|5K1Q-e z^)P-!XH?&8hXFXhP*88EY$!MP`L^LyNBbCl&99DC@J6RgTMVA2HQ*}5<~d!baVXEX z(d3rg>)~#ICVsKS{+c=Yz7MwvQ}_epxuU>v&*9?=qM2Xc>1$TF1W1iWHcQ4kq-Ec` z-b1YG0aXIfi`ViEqe3?bEVP5x11is3uCiwW2q!M88M0SFFBml?_Aud`G!}46!$DS) zG$t#|hY^GymL@oVN0lhIkomSz3jXkVg|S^4LYwd7lcWy;=0$7j0?wf1jTOQ%d?xZa z`ax(kvG&4RYH~|Q^>x8ieHcqX_2(Y5;bGq(hrEuHtkB<8E|oOYiq+E6ZkMC@Tnv0| zQ2=G!YDZiRQgALOX|e91k1d&01z(*K*FtlkECI8vEtW^CbwMbDjBj(BjpQ~?{^1_7 zH|Ekn;9#wQGNnE_qEr}0w+;an3(uoz{KX6u3fLgjT?WTS2o7ITrlLZ` znp9niGm0`2M2d5}g-vVd6ZDk%K=9dLg;;49li z*F>%BsLO*|98pXRX#u}kg?S~7qNB?-<4VZm$vG}zC#3Ir_X{O-i6c~x!m_CSwz#q; zGeqC=8pzA18d1xfTCnQ5Yu%$(9mnml-zhp+MXkh@u>js1Sgl;RW4M$J@-sJVjv2#F z9P;!dpHYh%--TPt=U3G4`N6rX(xN0(r=%?Btho^p;gsHWec1_vC@9yMlPFc`e28qJ zY;`J0u1}wjZIH--A@{vSq(nBs}JbOQ_R6of9vA1xRX-d2w2$7aH)jT;J z)Pk9#9D2boGf}=*E$ylXx)xfhQ8a`_Izc;|%F4A2q7ZjQ04ujA$$VEQ0%f!(tkgmM zitrxe@f=ZMM!&_{%>3ek$S`p{eMN8HUQVZ^H5RwlDmEj#-yJOvo0Z(5se$J9f!#e*=Jv)sQPsr-vi z0~o`j*ZmIQH1cNkq#mi9D&ccu#$XD(5>Vm_itN%|0bB`K~vNbmg+2NMgPHauokg>HGF z%DM5p4OVvkyLIet z62otu!e3Qlte=#1wfcej+^~eY>}aI07z={^4f0_v9NvB+&!0R(KpPh7A?l{&$t^i< z!PlpW-ke4a3dZ(W z0OT9@(2$zOs~3KeraujyHzmg5JG~m<)Y=7sd2$8Ti!YlwzlhYyqt8TgGh5&E#l8Xb zdgw5^MI!U%2nSQ|Tfgap#{&tMrUG%{ts383R#MU(ODo!&?$r>4#$$Zu&fE0SzKY|V z#Y{{2iv}pY5SO!C5dt4owuKlf%wkHSg(TkH))@;vCQ1K%{@t<~Md~)?@-&$R87@EF zBP?OzES#P3YOG+&Ieh@XRyvX?yZFP}?;w|2sl0no4z*!5(%{JKIn=?PXU&GPRu$L_ zA(aT~wccc7?1%&&*eWfO#)FgA_F#$x=bNtD7+W0ErYn4Sl- zF%0h;@>QSR)a2&0?=|-Q=U|f#izHmd9k=Y&2S>vS&3W8-^wXksWHqK~0TiRWpk;n%`n1Wmf`EwALt{b*^Q@DgOg83w=@ zTWW@oz3%dJhe+isMWa1Uu4aCpNy^&2<@CbbL~G48TB_&r;@Uj>;#$j*b-9z>Zr>GX zSc$UJ?dY?#?EVN63+C;&qGF^=PmBS9LnbiQGFG&S@zR$_Jhj-YP;rYiwZMuJS6+UH zs}vhdEYx3hI`{PJlx4C`K7OQ5h48|Nfh4yZY1nf!4P^H2*QYcrbLL}?J@nuAgF*7- z#SJ9zpJR}2i>{78pA%_n5u$6-;`lb&ub6KDIBWWEa8}6^J@QmX{Y!;WH_>}bHXQ)w z{BpL$X}~6;FaNV-|HUc+L)wtB;45)bj=)reaS}KTggjoo&akXU&~+9{i;U#=ibvAO z##Z@sc=y8v{JHC+OvsfkPIs(Y{Z$jmCb`VC;WUPa>=wPA4mO`CZ{H9|yiFDjOEPagsqr-F{PXCkv{QF8;jC`oZ>o*H2;3u6mYu9oRt zGMtfygZy?4A0udjIx#*WPav8K9&|>ke)i>Mdwh&8N<>OpOwUidHl*;DKvhY39C&m+ zTRN9&3b}g7r*4TS2E>D6FRhn-m9+U zXgPb2h$8r~Z-Ep!5GX~s)ID3w=sy-RBK<$Hb_%7MD$#~{X{t(NId8{)!710l88rZ4 zpqi}*Rg{SFB{p@-01ta&SJf97!fC1b36jK?2T9@!2b65?knIUerrbb;ATzxxQE6L$ zW38$B;+q=F8g0=N9nx_MFu5_PaB%sMdk6h}x5grmvll6Ao`U7Xd65VT$Ix=%Fg0F{ zt`zc%@0QNfZE3bz9W{G_ZvtNWN>uqfzo}54(XsDdmu$WfZDb8YTCy1>C8KYV?e@15 z16&-HI20%(CE*Z_tUp9niD_pGF_Gi)5@gOc3c=}wQ%GTbn(sOORg;!`9gWj z@>ZWZqihF_?;I6lZ)|PkNZWy12Mt`&%MU-iYGM;-KPBspg+~^q`%QSBNkdwcv>)d# z6X2G)y!S#)L=vZ&44c7fyx&Z11NoXNmBn%j>+*z3GSc#mPH+gU zi61r9t&NyZ$8*`0y9WWLSprs8V_hPni-@34`wTN;Eg~5AO)FOOl5fzI>-d1S>8-qb zVB37z!jiRP@K{l;@o$lVZWdU6{=EinrsP!jF9MQ(bLa#Ltp zY|{~HpDF#zr%swK&t|8auO z*W-xyYr{dD1LG7vO;BqGZ|p(Q-)G{!R9W?xIEUyTDkd)1GlcLa?3j`dA0)|~^V|DA z6o)VQ=?dPlKS^PIJeoSH9s|OAjd)j_)LzssO-`#1Yu`0)#(tG;LI<|2E(bUDVzh!I zeSb_5Vo&c28toZAgia3vG?51@56u$E90u!v*9V~-78z$60nh2ak0AWcn#i@YacnSn zU=2bv=!r6qd>LvQ;S+B=T#@_QCTIqJd-6J2%)KE&pXAu<*!f*W7lI-y_&zK9!Q=GO z=xsVe3xaCNhph1o!p}QO3@UAan`elE)gdjDB*nv81#NzBXrMxj*UMa3+{Y!={;~uT zM+X0u*h8}gtl(KHtUMCy`K%-8#ZcQ`G!8D%gZB$2{I=D#JA|5Kbve{I!reyQiNhwN zHvZ~B;lpJu`9mQpIbPK(^o!ZcYcD4i@x3enOSoZ6nHJtX8(xC0>rh!Y+3&r1Y#o z?LPM!foM|?5mJxyits&gfUV&Dq`B90u9--dHFvJ|4|Jk65u5MB=h|_|EYyIprbLMG zVl3Iw$~*bYOL+$EKjjD$>{IU|Nm+|uj-QKiDgJbg;6e}aZoa`^o}QV`hSlm&Rl$t- z(5#yar)A6T-gy4t7*-~slwRMKcVO73Vx#;;h87ryRoPrGE`UgwzB!u{G=#jC7iUfA zN)I~*ubZ^`GST)ysXp|%Jucrp%Mf)pY30G#w=d+yggc0;5?qL5#Df-v(D?5qF?he> zs;H?i$2BkN`Vl@+mKV)@zs}r=kmYtpvd)GCI2(K_Jhi;N_hA6Ro`CKMRq)L&LI-@t zqZZz;BabC}n8Mzoy*?iE?Res8bX2)0ZOC|3#y-xP-5rv9SD@vMJ<+kACxOw@Ah-32 z#RaNG0UuWwuFET;MY&yifdwVwQD8p(w!WsDjobA8;7X9e8;NM!{-{{Kn44%h@dR?T z@PKpY=(T(K$MBBAesX>SfWDj{h35kx@ueCe`L+oY{)y#aBR~6$T~Bk(FMvc*sWR=w zme`p)({__4PSM1)3%{co9PssB-<~!DR)S|xH6O`)0{V?t)M093LUu_uNvrCFF^2;P z9TrYAb+nthO$=1+y=;G{^Ar3_;l&TSxk5|@XeyU+!{l5$zZ84+BaV&2HSzWQt8RK$ zEi_^XS=$ii_zEzOhQ&R|An?8hiH1(Mop#y9$|HSWUl881b8t_iKTGkPW`8NqQ3Ksz zLW2a2(@{ypfEz_aDknY2A1P@!C6DX^xQYT-OFuZWj(=jvb~lxr`%v_GM(#sm*}|^G z7m;A=7v}@@Nv;bLRCN(zbP@gUg=0h1PmI#q44-@90GDXAkX+;SPUwNd?DejBl7bZk zZM)Wv{;*H*YN=S^XgMnc|Hg4HRu}EzL^IVLH8Rj8BH~di(PknnyY(b0%D*+P()m*G zV>A^+hTdc?dx#DqKl80B`J`M^kpkU;rXSH_C+o_Tcz#DBX%?d%iK?$p>?wK+B58vC zkAA9xy+GU2%TP@SOkrix=bQX3rWFp_a?$)kfnQHTuweuKRKmxvZ)I~|pNh2+GgMMB zp-A@BB0hgdoH>Z-4V*fJb}No1juni~IvAI>RZ!Fv!ps(TY>*;*k6PD{QfU(82|xrC zxHG=617}$sUe;UIArx!`sUz%W{Y(sII&2^PP*U8=bgEE zxbu#56|~T$QF$+*18d2pCs*cWTYOix zrnn^0lkctsCi)J#O?X!vU;WM82$b45?k zlUM}6z%w%rpX8j#F+WdS(!GLf9rRZ9%6&E!lee}((6yxzK8+qw-=zoU6CYl%^sD2VWt9G+vw&<;dL`8QR%c0EHA=Uiub`a^93(T%Z7}j&DgpcnD4cmiR=|j7^ zr6VHYAfseCCk?$5!oA#gYwRgDYY#HLh06I{B5qjr343%k)e^SlSa+INZW)=i!@`qb zlRsXZ5mwT)Vf+)bALJ&VcXZmx+ywler5!lIJ%n92V@W45HGGp~Y&SdGJ|ho8s3XGY zvGZ)aLUV~JU(s5p=Vwli-tc>fgI#Bf%j-O@Ul|ubU#xNPvi23bd2(P3S1HHhI3VlY z2waK)r5HopE*r8v+v#PwZ5XF9bwB}Coel6>uhEu-kaQKThbU!bh|Hk+D&nKn z@}cj^EemT+K6^^6&6c?oTEXN-xUe0gO3dU#(2UeJSj>Y#GZV|5aq^uNn@~Dq ze#{4BJD!azy_`_tJ^sn2_oe4Htqo6_M&P8Gqvc${7CMCNdoqRqZ)Hm!M&2^Oud{~) z1|f%wz{5o3!cB5w9y_~V$jY•#Mnk|P~9L~7VNUD)&itH|O?wvAT%sM;Q7Fe^s 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 JuHFs!e*l(0yzu}4 literal 73287 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

  • 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 diff --git a/public/assets/courses/unboxed/anchor-frontend-initialize.png b/public/assets/courses/unboxed/anchor-frontend-initialize.png index 4219a46b6a5c91a8f3eb36a198304b6d64c20f45..a6ce83918cf1406252da791c8fe48958c5e12440 100644 GIT binary patch literal 152862 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

    ^RGb={j3K`-Ah|TKyc0b`B1X{EYQ` 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 literal 81074 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 hDE{9c5~igaG!)~mpOg Date: Thu, 12 Sep 2024 17:47:05 -0400 Subject: [PATCH 040/206] feat: added avm install (#468) * feat: added avm install * fix: corrected version --- docs/intro/installation.md | 56 +++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/docs/intro/installation.md b/docs/intro/installation.md index ba49b6ea4..698367e55 100644 --- a/docs/intro/installation.md +++ b/docs/intro/installation.md @@ -259,12 +259,66 @@ agave-install update programs. The Anchor framework leverages Rust macros to simplify the process of writing Solana programs. -Install the Anchor CLI with the following command: +There are two ways to install the Anchor CLI and tooling: + +1. Using Anchor Version Manager (AVM) - the is the **recommended installation** + method since it simplifies updating Anchor versions in the future +2. Without AVM - this requires more a manual process to update Anchor versions + later + + + + +The Anchor version manager (AVM) allows you to install and manage different +Anchor versions on your system, including more easily updating Anchor versions +in the future. + +Install AVM with the following command: + +```shell +cargo install --git https://github.com/coral-xyz/anchor avm --force +``` + +Test to ensure AVM was installed and is accessible: + +```shell +avm --version +``` + +Install the latest version of Anchor CLI using AVM: + +```shell +avm install latest +avm use latest +``` + +Or install a specific version of the Anchor CLI by declaring which version you +want to install: + +```shell +avm install 0.30.1 +avm use 0.30.1 +``` + +> Don't forget to run the `avm use` command to declare which Anchor CLI version +> should be used on your system. +> +> - If you installed the `latest` version, run `avm use latest`. +> - If you installed the version `0.30.1`, run `avm use 0.30.1`. + + + + + +Install a specific version of the Anchor CLI with the following command: ```shell cargo install --git https://github.com/coral-xyz/anchor --tag v0.30.1 anchor-cli ``` + + + You may see the following warning during installation. However, it does not affect the installation process. From 8e88041f79da98b40282fa3ee8145e070ea83d9f Mon Sep 17 00:00:00 2001 From: nickfrosty <75431177+nickfrosty@users.noreply.github.com> Date: Fri, 13 Sep 2024 09:51:16 -0400 Subject: [PATCH 041/206] feat: update seo title --- docs/intro/installation.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/intro/installation.md b/docs/intro/installation.md index 698367e55..68c8e98e0 100644 --- a/docs/intro/installation.md +++ b/docs/intro/installation.md @@ -1,11 +1,15 @@ --- title: Installation +seoTitle: Install the Solana CLI and Anchor sidebarSortOrder: 1 description: "Easily setup your local development environment for Solana development on Linux, Mac or Windows. Including installing Rust, the Solana CLI, and Anchor." altRoutes: - /developers/guides/getstarted/setup-local-development + - /docs/install + - /install + - /setup --- This section covers the steps to set up your local environment for Solana From 411f49c781ae4343fc73eece31b297bf4063aa0e Mon Sep 17 00:00:00 2001 From: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> Date: Fri, 13 Sep 2024 11:26:36 -0400 Subject: [PATCH 042/206] feat: assorted fixes (#482) --- content/cookbook/index.md | 6 +- .../cookbook/tokens/create-mint-account.md | 2 + .../getstarted/hello-world-in-your-browser.md | 2 + .../guides/javascript/get-program-accounts.md | 17 +- content/guides/solang/getting-started.md | 329 ------------------ content/guides/solang/index.md | 4 - 6 files changed, 16 insertions(+), 344 deletions(-) delete mode 100644 content/guides/solang/getting-started.md delete mode 100644 content/guides/solang/index.md diff --git a/content/cookbook/index.md b/content/cookbook/index.md index 284cbb903..bb214fbb6 100644 --- a/content/cookbook/index.md +++ b/content/cookbook/index.md @@ -1,10 +1,10 @@ --- sidebarSortOrder: 0 title: Solana Cookbook -seoTitle: Code examples for Solana development +seoTitle: Solana Cookbook - Code examples for Solana development description: - "The Solana cookbook is a collection of useful examples and references for - building on Solana" + "The Solana Cookbook is a collection of code snippets, useful examples, and + references for building on Solana." --- The _Solana Cookbook_ is a developer resource that provides examples and diff --git a/content/cookbook/tokens/create-mint-account.md b/content/cookbook/tokens/create-mint-account.md index fe9e8156e..bf12c0ce1 100644 --- a/content/cookbook/tokens/create-mint-account.md +++ b/content/cookbook/tokens/create-mint-account.md @@ -2,6 +2,8 @@ title: How to Create a Token sidebarSortOrder: 1 description: "Learn how to create tokens on Solana." +altRoutes: + - /developers/cookbook/tokens --- Creating tokens is done by creating what is called a "mint account". This mint diff --git a/content/guides/getstarted/hello-world-in-your-browser.md b/content/guides/getstarted/hello-world-in-your-browser.md index 6c3d94d32..23e78f8fc 100644 --- a/content/guides/getstarted/hello-world-in-your-browser.md +++ b/content/guides/getstarted/hello-world-in-your-browser.md @@ -28,6 +28,8 @@ keywords: altRoutes: - /developers/guides/hello-world-in-your-browser - /developers/guides/solana-playground + - /developers/guides/solang/solang-getting-started + - /developers/guides/solang-getting-started --- For this "hello world" quickstart guide, we will use diff --git a/content/guides/javascript/get-program-accounts.md b/content/guides/javascript/get-program-accounts.md index d38050295..090e0ff0c 100644 --- a/content/guides/javascript/get-program-accounts.md +++ b/content/guides/javascript/get-program-accounts.md @@ -17,13 +17,15 @@ altRoutes: --- An RPC method that returns all accounts owned by a program. Currently pagination -is not supported. Requests to `getProgramAccounts` should include the -`dataSlice` and/or `filters` parameters to improve response time and return only -intended results. +is not supported. Requests to +[`getProgramAccounts`](/docs/rpc//http/getProgramAccounts.mdx) should include +the `dataSlice` and/or `filters` parameters to improve response time and return +only intended results. -## getProgramAccounts has the following syntax: +## getProgramAccounts RPC Method + +The `getProgramAccounts` RPC method has the following syntax: -```md - `programId`: `string` - Pubkey of the program to query, provided as a base58 encoded string - (optional) `configOrCommitment`: `object` - Configuration parameters @@ -47,7 +49,6 @@ intended results. data size - (optional) `withContext`: `boolean` - Wrap the result in an [RpcResponse JSON object](https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure) -``` ### Response @@ -192,7 +193,7 @@ import { clusterApiUrl, Connection } from "@solana/web3.js"; The output should look like: -```text +```shell Found 2 token account(s) for wallet FriELggez2Dy3phZeHHAdpcoEXkKQVkv6tx3zDtCVP8T: -- Token Account Address 0: H12yCcKLHFJFfohkeKiN8v3zgaLnUMwRcnJTyB4igAsy -- Mint: CKKDsBT6KiT4GDKs3e39Ue9tDkhuGUKM3cC2a7pmV9YK @@ -255,7 +256,7 @@ import { clusterApiUrl, Connection } from "@solana/web3.js"; })(); ``` -The output should look like (notice the empty at acccount.data): +The output should look like (notice the empty `` at `account.data`): ```text Found 3 token account(s) for mint BUGuuhPsHpk8YZrL2GctsCtXGneL1gmT5zYb7eMHZDWf diff --git a/content/guides/solang/getting-started.md b/content/guides/solang/getting-started.md deleted file mode 100644 index 44b716680..000000000 --- a/content/guides/solang/getting-started.md +++ /dev/null @@ -1,329 +0,0 @@ ---- -featured: false -date: 2023-07-17T00:00:00Z -difficulty: intro -title: "Getting started with Solang" -description: - "Quickstart guide on how to build your first Solana program with Solidity - using Solang" -tags: - - quickstart - - solang - - solidity -keywords: - - solang - - solidity - - tutorial - - intro to solana development - - blockchain developer - - blockchain tutorial -altRoutes: - - /developers/guides/solang/solang-getting-started - - /developers/guides/solang-getting-started ---- - -# Getting Started with Solang - -Welcome to this beginner’s guide on getting started with Solang! -[Solang](https://solang.readthedocs.io/) is a Solidity Compiler that allows you -to write Solana programs - referred to in other blockchains as 'smart -contracts' - using the Solidity programming language. - -If you’re an EVM developer that’s interested in leveraging the high speed and -low fees of the Solana network, then Solang is the perfect tool for you. With -Solang, you can leverage your existing knowledge of Solidity to start building -on Solana! - -## Installation - -In this section, we'll help you set up your development environment for Solang. -Just follow the steps outlined below: - -1. **Check Your Prerequisites**: Before diving in, ensure that you have - [Rust](https://www.rust-lang.org/tools/install) and - [Node.js](https://nodejs.org/en) installed on your system. Windows users will - also need to have [Windows Subsystem for Linux](/docs/intro/installation) set - up. -2. **Solana Tool Suite Installation**: Begin by installing the - [Solana Tool Suite](https://docs.solana.com/cli/install-solana-cli-tools), - which includes the Solana Command Line Interface (CLI) and the latest version - of Solang. -3. **Anchor Framework Installation**: Next, install the - [Anchor Framework](https://www.anchor-lang.com/docs/installation). Anchor is - a widely used framework in the Solana ecosystem and simplifies the process of - building Solana programs. With version 0.28, you can start building with - Solang directly through Anchor. - - As of the time of this writing, please install Anchor using the following - command for compatibility with Solang version 0.3.1: - - ``` - cargo install --git https://github.com/coral-xyz/anchor anchor-cli --locked --force - ``` - -4. **Solang Extension for VSCode**: If you're a Visual Studio Code (VSCode) - user, it's recommended to install the Solang - [extension](https://marketplace.visualstudio.com/items?itemName=solang.solang) - to assist with syntax highlighting. Remember to disable any active Solidity - extensions to ensure that the Solang extension works correctly. - -## Creating a new project - -Once you’ve installed the Solana CLI and Anchor, you can create a new project -with the following command: - -``` -anchor init project_name --solidity -``` - -This command generates a new project with a basic Solang on-chain program -(equivalent to a smart contract on EVM) and a test file that demonstrate how to -interact with the program from the client. - -## On-chain program Overview - -Next, let’s go over the starter code beginning with the on-chain program itself. -Within your project's `./solidity` directory, you’ll find the following contract -below, which includes: - -- A `constructor` to initialize a state variable -- A `print` function to print messages to the program logs -- A `flip` function to update the state variable -- A `get` function to return the current value of the state variable - -```solidity -@program_id("F1ipperKF9EfD821ZbbYjS319LXYiBmjhzkkf5a26rC") -contract starter { - bool private value = true; - - @payer(payer) - constructor(address payer) { - print("Hello, World!"); - } - - /// A message that can be called on instantiated contracts. - /// This one flips the value of the stored `bool` from `true` - /// to `false` and vice versa. - function flip() public { - value = !value; - } - - /// Simply returns the current value of our `bool`. - function get() public view returns (bool) { - return value; - } -} -``` - -### Important Differences - -Compared to an EVM smart contract, there are two important differences you might -notice: - -1. The `@program_id` annotation: - - On Solana, smart contracts are referred to as “programs”. The `@program_id` - annotation is used to specify the on-chain address of the program. - -```solidity -@program_id("F1ipperKF9EfD821ZbbYjS319LXYiBmjhzkkf5a26rC") // on-chain program address -``` - -2. The `@payer` annotation: - - When storing data on-chain, a certain amount of SOL needs to be allocated to - cover the storage costs. The `@payer` annotation specifies the user that will - pay the SOL required to create the account for storing the state variable. - -```solidity -@payer(payer) // payer for the "data account" -constructor(address payer) { - print("Hello, World!"); -} -``` - -### Storing of state data - -An important distinction between EVM smart contracts and Solana programs is how -each stores "state" variables/data: - -- EVM smart contracts can directly store state variables. -- Solana onchain programs, on the other hand, create separate accounts to hold - state data. These are often referred to as "data accounts" and are "owned" by - a program. - -In this example, when the contract is deployed, it is deployed to the address -specified in `@program_id`. When the `constructor` is called after the program -is deployed, a separate account with its own address is created to store the -state variable, instead of being stored within the contract itself. - -This may sound a bit different than what you’re used to, but don't worry! Let’s -go over the test file to shed more light on this concept. - -## Test File Overview - -The starter test file can be found in the `./tests` directory. This file -provides an example of how to interact with the program from the client. - -Anchor sets up the `provider` and `program` to help us connect to the contract -from the client. This is done using an IDL file which lays out the program's -public interface, similar to the ABI files used in EVM smart contracts. If you -run `anchor build`, the IDL file is generated and can be found at -`./target/idl`. - -```jsx -import * as anchor from "@coral-xyz/anchor" -import { Program } from "@coral-xyz/anchor" -import { Starter } from "../target/types/starter" - -describe("starter", () => { - // Configure the client to use the local cluster. - const provider = anchor.AnchorProvider.env() - anchor.setProvider(provider) - - const dataAccount = anchor.web3.Keypair.generate() - const wallet = provider.wallet - - const program = anchor.workspace.Starter as Program - - it("Is initialized!", async () => { - // Add your test here. - const tx = await program.methods - .new(wallet.publicKey) - .accounts({ dataAccount: dataAccount.publicKey }) - .signers([dataAccount]) - .rpc() - console.log("Your transaction signature", tx) - - const val1 = await program.methods - .get() - .accounts({ dataAccount: dataAccount.publicKey }) - .view() - - console.log("state", val1) - - await program.methods - .flip() - .accounts({ dataAccount: dataAccount.publicKey }) - .rpc() - - const val2 = await program.methods - .get() - .accounts({ dataAccount: dataAccount.publicKey }) - .view() - - console.log("state", val2) - }) -}) -``` - -In the test file, we first generate a new Keypair which will be used to create -the “data account” that stores the contract’s state. - -```jsx -const dataAccount = anchor.web3.Keypair.generate(); -``` - -Next, we use the `new` instruction to create a new data account. This -instruction corresponds with the contract's `constructor`. The newly created -data account will be initialized to store the state variable defined in the -contract. - -Here, the `payer` is specified as `wallet.publicKey`, and the address of the -`dataAccount` that we plan to create is provided. The generated `dataAccount` -Keypair is included as an additional signer on the transaction, as it's being -used to create a new account. Essentially, this verifies that we hold the secret -key corresponding to the address of the new account we're creating. - -```jsx -// Client -const tx = await program.methods - .new(wallet.publicKey) - .accounts({ dataAccount: dataAccount.publicKey }) - .signers([dataAccount]) - .rpc() - -// on-chain program -@payer(payer) -constructor(address payer) { - print("Hello, World!"); -} -``` - -The contract's `get` function is then invoked to fetch the value stored in the -specified `dataAccount`. - -```jsx -// Client -const val1 = await program.methods - .get() - .accounts({ dataAccount: dataAccount.publicKey }) - .view() - -// on-chain program -function get() public view returns (bool) { - return value; -} -``` - -Next, the contract’s `flip` function is used to modify the state of the -specified `dataAccount`. - -```jsx -// Client -await program.methods - .flip() - .accounts({ dataAccount: dataAccount.publicKey }) - .rpc() - -// on-chain program -function flip() public { - value = !value; -} -``` - -To run the test, use the `anchor test` command in the terminal. - -The `anchor test` command performs the following tasks: - -- Start a local Solana validator -- Build and deploy your on-chain program to the local validator -- Run the test file - -The following output should then be displayed in the console: - -``` -Your transaction signature 2x7jh3yka9LU6ZeJLUZNNDJSzq6vdUAXk3mUKuP1MYwr6ArYMHDGw6i15jJnMtnC7BP7zKactStHhTekjq2vh6hP -state true -state false - ✔ Is initialized! (782ms) -``` - -You can then inspect the program logs in `./.anchor/program-logs` where you'll -find the "Hello, World!" message: - -``` -Program F1ipperKF9EfD821ZbbYjS319LXYiBmjhzkkf5a26rC invoke [1] -Program 11111111111111111111111111111111 invoke [2] -Program 11111111111111111111111111111111 success -Program log: Hello, World! -``` - -Congratulations! You've successfully built your first Solana program with -Solang! While there might be differences compared to what you're accustomed to -with standard Solidity smart contracts, Solang provides an excellent bridge to -help leverage your existing Solidity skills and experience to build on Solana. - -## Next Steps - -Interested in diving deeper? Check out the `solana-developers/program-examples` -[repository](https://github.com/solana-developers/program-examples). You'll find -Solang implementations for common Solana use cases in the `basics` and `tokens` -sections. - -If you have question feel free to post them on -[Solana Stack exchange](https://solana.stackexchange.com/). If you have -questions for the Solang maintainers directly, you reach out to them directly in -the [Hyperledger Foundation discord.](https://discord.com/invite/hyperledger) - -Have fun building! diff --git a/content/guides/solang/index.md b/content/guides/solang/index.md deleted file mode 100644 index fb281e0f3..000000000 --- a/content/guides/solang/index.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -metaOnly: true -title: Solang ---- From 19b2489ed5e66a815350d173431edddd05b7ca9c Mon Sep 17 00:00:00 2001 From: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> Date: Fri, 13 Sep 2024 13:33:35 -0400 Subject: [PATCH 043/206] fix: assorted links (#483) * fix: links * fix: more --- .../development/start-local-validator.md | 3 +- content/cookbook/tokens/manage-wrapped-sol.md | 6 +-- .../transactions/add-priority-fees.md | 2 +- .../cookbook/transactions/calculate-cost.md | 3 +- .../cookbook/transactions/optimize-compute.md | 6 +-- .../cookbook/wallets/connect-wallet-react.md | 2 +- .../wallets/generate-vanity-address.md | 2 +- .../courses/mobile/intro-to-solana-mobile.md | 2 +- .../mobile/solana-mobile-dapps-with-expo.md | 2 +- .../offline-transactions/durable-nonces.md | 3 +- .../onchain-development/local-setup.md | 2 +- .../token-extensions-onchain.md | 9 ++-- .../introduction-to-durable-nonces.md | 8 ++-- content/guides/dapps/journal.md | 7 ++- content/guides/games/nfts-in-games.md | 7 ++- .../getstarted/how-to-create-a-token.md | 2 +- .../getstarted/local-rust-hello-world.md | 29 ++++++------- .../solana-token-airdrop-and-faucets.md | 3 +- content/guides/intro/wallets-explained.md | 4 +- content/guides/javascript/compressed-nfts.md | 43 ++++++++----------- .../guides/javascript/get-program-accounts.md | 6 +-- .../token-extensions/getting-started.md | 7 ++- content/resources/info/docs.md | 6 +-- docs/advanced/retry.md | 8 ++-- docs/intro/dev.md | 9 ++-- docs/more/exchange.md | 2 +- docs/programs/lang-c.md | 3 +- docs/programs/lang-rust.md | 3 +- docs/programs/overview.md | 14 +++--- redirects.json | 18 +++++--- src/components/HomeComponent.tsx | 2 +- 31 files changed, 107 insertions(+), 116 deletions(-) diff --git a/content/cookbook/development/start-local-validator.md b/content/cookbook/development/start-local-validator.md index bbd504a69..fbe780e71 100644 --- a/content/cookbook/development/start-local-validator.md +++ b/content/cookbook/development/start-local-validator.md @@ -8,7 +8,8 @@ Testing your program code locally can be a lot more reliable than testing on devnet, and can help you test before trying it out on devnet. You can setup your local-test-validator by installing the -[solana tool suite](/getting-started/installation.md#install-cli) and running +[Solana CLI tool suite](/docs/intro/installation.md) and running the following +command: ```shell solana-test-validator diff --git a/content/cookbook/tokens/manage-wrapped-sol.md b/content/cookbook/tokens/manage-wrapped-sol.md index acb5fc944..b1dc14fb1 100644 --- a/content/cookbook/tokens/manage-wrapped-sol.md +++ b/content/cookbook/tokens/manage-wrapped-sol.md @@ -11,9 +11,9 @@ and creating token accounts specifically on the `NATIVE_MINT` address. ## Create Token Account -Like -[Create Token Account](#https://solana.com/developers/cookbook/tokens/create-token-accounts) -but replace mint with `NATIVE_MINT` +Like creating +[SPL token accounts](/content/cookbook/tokens/create-token-account.md) but +replace mint with `NATIVE_MINT` ```js import { NATIVE_MINT } from "@solana/spl-token"; diff --git a/content/cookbook/transactions/add-priority-fees.md b/content/cookbook/transactions/add-priority-fees.md index b2cd17646..a10b49b42 100644 --- a/content/cookbook/transactions/add-priority-fees.md +++ b/content/cookbook/transactions/add-priority-fees.md @@ -12,7 +12,7 @@ Units (CU) \* number of instructions, with a max of 1.4M CU. The Base Fee is 5,000 Lamports per signature. A microLamport is 0.000001 Lamports. > You can find a detailed guide here on -> [how to use priority fees](https://solana.com/developers/guides/advanced/how-to-use-priority-fees). +> [how to use priority fees](/content/guides/advanced/how-to-use-priority-fees.md). The total compute budget or Prioritization Fee for a single TX can be changed by adding instructions from the ComputeBudgetProgram. diff --git a/content/cookbook/transactions/calculate-cost.md b/content/cookbook/transactions/calculate-cost.md index d38739147..015a5824e 100644 --- a/content/cookbook/transactions/calculate-cost.md +++ b/content/cookbook/transactions/calculate-cost.md @@ -9,8 +9,7 @@ description: The number of signatures a transaction requires are used to calculate the transaction cost. As long as you are not creating an account, this will be the base transaction cost. To find out more about costs to create an account, check -out -[calculating rent costs](https://solana.com/developers/cookbook/accounts/calculate-rent). +out [calculating rent costs](/content/cookbook/accounts/calculate-rent.md). ```typescript filename="calculate-cost.ts" import { diff --git a/content/cookbook/transactions/optimize-compute.md b/content/cookbook/transactions/optimize-compute.md index 033cab552..969e890db 100644 --- a/content/cookbook/transactions/optimize-compute.md +++ b/content/cookbook/transactions/optimize-compute.md @@ -8,10 +8,10 @@ the transaction is both processed in a timely manner as well as to avoid paying too much in priority fees. For more information about requesting optimal compute, -[check out the full guide](https://solana.com/developers/guides/advanced/how-to-request-optimal-compute). +[check out the full guide](/content/guides/advanced/how-to-request-optimal-compute.md). You can also find more information about -[using priority fees](https://solana.com/developers/guides/advanced/how-to-use-priority-fees) -in this detailed guide. +[using priority fees](/content/guides/advanced/how-to-use-priority-fees.md) in +this detailed guide. ```typescript filename="optimize-compute.ts" // import { ... } from "@solana/web3.js" diff --git a/content/cookbook/wallets/connect-wallet-react.md b/content/cookbook/wallets/connect-wallet-react.md index d1d73e2d4..39714d811 100644 --- a/content/cookbook/wallets/connect-wallet-react.md +++ b/content/cookbook/wallets/connect-wallet-react.md @@ -9,7 +9,7 @@ description: Solana's [wallet-adapter](https://github.com/anza-xyz/wallet-adapter) library make it easy to manage wallet connections client-side. For a full length guide, check out -[how to add wallet-adapter to nextjs](https://solana.com/developers/guides/wallets/add-solana-wallet-adapter-to-nextjs). +[how to add wallet-adapter to nextjs](/content/guides/wallets/add-solana-wallet-adapter-to-nextjs.md). ## How to Connect to a Wallet with React diff --git a/content/cookbook/wallets/generate-vanity-address.md b/content/cookbook/wallets/generate-vanity-address.md index e6e56c93e..c8663ec22 100644 --- a/content/cookbook/wallets/generate-vanity-address.md +++ b/content/cookbook/wallets/generate-vanity-address.md @@ -16,7 +16,7 @@ key more easily identifiable. **Note**: The more characters in your vanity address, the longer it will take. You can generate a vanity address using the -[Solana CLI](https://docs.solanalabs.com/cli): +[Solana CLI](/docs/intro/installation.md): ```bash solana-keygen grind --starts-with e1v1s:1 diff --git a/content/courses/mobile/intro-to-solana-mobile.md b/content/courses/mobile/intro-to-solana-mobile.md index 0f8b33b21..956e139b1 100644 --- a/content/courses/mobile/intro-to-solana-mobile.md +++ b/content/courses/mobile/intro-to-solana-mobile.md @@ -473,7 +473,7 @@ and explanations for why we need them: from [@solana/web3.js](https://github.com/solana-labs/solana-web3.js), such as `Transaction` and `Uint8Array` - `@solana/web3.js`: Solana Web Library for interacting with the Solana network - through the [JSON RPC API](https://docs.solana.com/api/http) + through the [JSON RPC API](/docs/rpc/http/index.mdx) - `react-native-get-random-values` Secure random number generator polyfill for `web3.js` underlying Crypto library on React Native - `buffer`: Buffer polyfill; also needed for `web3.js` on React Native diff --git a/content/courses/mobile/solana-mobile-dapps-with-expo.md b/content/courses/mobile/solana-mobile-dapps-with-expo.md index d6707b4b8..bf876a873 100644 --- a/content/courses/mobile/solana-mobile-dapps-with-expo.md +++ b/content/courses/mobile/solana-mobile-dapps-with-expo.md @@ -203,7 +203,7 @@ For a Solana + Expo app, you'll need the following: from [@solana/web3.js](https://github.com/solana-labs/solana-web3.js) – such as `Transaction` and `Uint8Array`. - `@solana/web3.js`: Solana Web Library for interacting with the Solana network - through the [JSON RPC API](https://docs.solana.com/api/http). + through the [JSON RPC API](/docs/rpc/http/index.mdx). - `react-native-get-random-values`: Secure random number generator polyfill for `web3.js` underlying Crypto library on React Native. - `buffer`: Buffer polyfill needed for `web3.js` on React Native. diff --git a/content/courses/offline-transactions/durable-nonces.md b/content/courses/offline-transactions/durable-nonces.md index a17a92b82..d51dcf2fa 100644 --- a/content/courses/offline-transactions/durable-nonces.md +++ b/content/courses/offline-transactions/durable-nonces.md @@ -432,8 +432,7 @@ devnet if you'd like. ( If you have issues airdropping on devnet, check out [Solana's Faucet](https://faucet.solana.com/) ) To run the local validator, you'll need to have it installed, if you don't you -can refer to -[installing the Solana CLI](https://docs.solanalabs.com/cli/install), once you +can refer to [installing the Solana CLI](/docs/intro/installation.md), once you install the CLI you'll have access to the `solana-test-validator`. In a separate terminal run: diff --git a/content/courses/onchain-development/local-setup.md b/content/courses/onchain-development/local-setup.md index 187ee5ac5..0d89fb0af 100644 --- a/content/courses/onchain-development/local-setup.md +++ b/content/courses/onchain-development/local-setup.md @@ -49,7 +49,7 @@ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ### Download the Solana CLI tools Next, -[download the Solana CLI tools](https://docs.solana.com/cli/install-solana-cli-tools): +[download the Solana CLI tools](/docs/intro/installation.md#install-the-solana-cli): ```bash sh -c "$(curl -sSfL https://release.anza.xyz/stable/install)" diff --git a/content/courses/token-extensions/token-extensions-onchain.md b/content/courses/token-extensions/token-extensions-onchain.md index 4d46e33bf..1cbf6c2ce 100644 --- a/content/courses/token-extensions/token-extensions-onchain.md +++ b/content/courses/token-extensions/token-extensions-onchain.md @@ -328,11 +328,10 @@ solana --version If the version printed out after running `solana --version` is less than `1.18.0` then you can update the -[cli version manually](https://docs.solanalabs.com/cli/install). Note, at the -time of writing this, you cannot simply run the `solana-install update` command. -This command will not update the CLI to the correct version for us, so we have -to explicitly download version `1.18.0`. You can do so with the following -command: +[cli version manually](/docs/intro/installation.md). Note, at the time of +writing this, you cannot simply run the `solana-install update` command. This +command will not update the CLI to the correct version for us, so we have to +explicitly download version `1.18.0`. You can do so with the following command: ```bash solana-install init 1.18.0 diff --git a/content/guides/advanced/introduction-to-durable-nonces.md b/content/guides/advanced/introduction-to-durable-nonces.md index b8a604e4d..536e1d440 100644 --- a/content/guides/advanced/introduction-to-durable-nonces.md +++ b/content/guides/advanced/introduction-to-durable-nonces.md @@ -156,8 +156,8 @@ Now that we know what Durable Nonces are, it's time to use them to send durable transactions. > If you do not have the Solana CLI installed, please go through -> [this](https://docs.solana.com/cli/install-solana-cli-tools) tutorial and set -> up the CLI and a keypair with some airdropped SOL on devnet +> [this tutorial](/docs/intro/installation.md) and set up the Solana CLI and +> create a keypair with some airdropped SOL on devnet ### Create Nonce Authority @@ -617,5 +617,5 @@ change will happen on-chain, and the winner can be decided. ## References - [Neodyme Blog: Nonce Upon a Time, or a Total Loss of Funds](https://neodyme.io/blog/nonce-upon-a-time/) -- [Solana Durable Nonces CLI](https://docs.solana.com/offline-signing/durable-nonce) -- [Solana Durable Transaction Nonces Proposal](https://docs.solana.com/implemented-proposals/durable-tx-nonces) +- [Solana Durable Nonces CLI](https://docs.solanalabs.com/cli/examples/durable-nonce) +- [Solana Durable Transaction Nonces Proposal](https://docs.solanalabs.com/implemented-proposals/durable-tx-nonces) diff --git a/content/guides/dapps/journal.md b/content/guides/dapps/journal.md index 63275e353..4ddde0ede 100644 --- a/content/guides/dapps/journal.md +++ b/content/guides/dapps/journal.md @@ -212,10 +212,9 @@ In the above code, we used the following macros: - `#[account(...)]` attribute macro then specifies additional constraints on the accounts -Each journal entry is a Program Derived Address ( -[PDA](https://solanacookbook.com/core-concepts/pdas.html#facts)) that stores the -entries state on-chain. Since we are creating a new journal entry here, it needs -to be initialized using the `init_if_needed` constraint. +Each journal entry is a Program Derived Address ( [PDA](/docs/core/pda.md)) that +stores the entries state on-chain. Since we are creating a new journal entry +here, it needs to be initialized using the `init_if_needed` constraint. With Anchor, a PDA is initialized with the `seeds`, `bumps`, and `init_if_needed` constraints. The `init_if_needed` constraint also requires the diff --git a/content/guides/games/nfts-in-games.md b/content/guides/games/nfts-in-games.md index 5aa0ab570..db657913e 100644 --- a/content/guides/games/nfts-in-games.md +++ b/content/guides/games/nfts-in-games.md @@ -56,10 +56,9 @@ other assets for your game. GameShift offers these features: Using NFTs, you can conditionally gate access to a particular part of a game based on owning the NFT. This can form a more tight-knit community within your -game. In -[JavaScript](https://docs.solana.com/de/developing/clients/javascript-api) using -the [Metaplex SDK](https://github.com/metaplex-foundation/js#readme) this would -look like this: +game. In [JavaScript](/docs/clients/javascript.md) using the +[Metaplex SDK](https://github.com/metaplex-foundation/js#readme) this would look +like this: ```js JSON.parse( diff --git a/content/guides/getstarted/how-to-create-a-token.md b/content/guides/getstarted/how-to-create-a-token.md index f26f7dbe9..5a6b2543d 100644 --- a/content/guides/getstarted/how-to-create-a-token.md +++ b/content/guides/getstarted/how-to-create-a-token.md @@ -49,7 +49,7 @@ instead. ## Installing Solana Tools First we need to download Solana tools to our system. Follow this guide to -[install the Solana CLI](https://docs.solanalabs.com/cli/install). +[install the Solana CLI](/docs/intro/installation.md). ## Create folder diff --git a/content/guides/getstarted/local-rust-hello-world.md b/content/guides/getstarted/local-rust-hello-world.md index 7b065d4a9..864c80399 100644 --- a/content/guides/getstarted/local-rust-hello-world.md +++ b/content/guides/getstarted/local-rust-hello-world.md @@ -57,9 +57,9 @@ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ## Run your localhost validator The Solana CLI comes with the -[test validator](https://docs.solana.com/developing/test-validator) built in. -This command line tool will allow you to run a full blockchain cluster on your -machine. +[test validator](https://docs.solanalabs.com/cli/examples/test-validator) built +in. This command line tool will allow you to run a full blockchain cluster on +your machine. ```shell solana-test-validator @@ -81,8 +81,8 @@ solana config set --url localhost ## Create a new Rust library with Cargo Solana programs written in Rust are _libraries_ which are compiled to -[BPF bytecode](https://docs.solana.com/developing/on-chain-programs/faq#berkeley-packet-filter-bpf) -and saved in the `.so` format. +[BPF bytecode](/docs/programs/faq.md#berkeley-packet-filter-bpf) and saved in +the `.so` format. Initialize a new Rust library named `hello_world` via the Cargo command line: @@ -143,8 +143,8 @@ use solana_program::{ Every Solana program must define an `entrypoint` that tells the Solana runtime where to start executing your onchain code. Your program's -[entrypoint](https://docs.solana.com/developing/on-chain-programs/developing-rust#program-entrypoint) -should provide a public function named `process_instruction`: +[entrypoint](/docs/programs/lang-rust.md#program-entrypoint) should provide a +public function named `process_instruction`: ```rust // declare and export the program's entrypoint @@ -169,9 +169,8 @@ Every onchain program should return the `Ok` tells the Solana runtime that your program executed successfully without errors. This program above will simply -[log a message](https://docs.solana.com/developing/on-chain-programs/debugging#logging) -of "_Hello, world!_" to the blockchain cluster, then gracefully exit with -`Ok(())`. +[log a message](/docs/programs/debugging.md#logging) of "_Hello, world!_" to the +blockchain cluster, then gracefully exit with `Ok(())`. ## Build your Rust program @@ -202,8 +201,8 @@ solana program deploy ./target/deploy/hello_world.so ``` Once your Solana program has been deployed (and the transaction -[finalized](https://docs.solana.com/cluster/commitments)), the above command -will output your program's public address (aka its "program id"). +[finalized](https://docs.solanalabs.com/consensus/commitments)), the above +command will output your program's public address (aka its "program id"). ```shell # example output @@ -363,7 +362,7 @@ transaction on the Solana blockchain. See the links below to learn more about writing Rust based Solana programs: -- [Overview of writing Solana programs](https://docs.solana.com/developing/on-chain-programs/overview) +- [Overview of writing Solana programs](/docs/programs/overview.md) - [Solana Quick Start Guide](https://solana.com/docs/intro/quick-start) -- [Learn more about developing Solana programs with Rust](https://docs.solana.com/developing/on-chain-programs/developing-rust) -- [Debugging onchain programs](https://docs.solana.com/developing/on-chain-programs/debugging) +- [Learn more about developing Solana programs with Rust](/docs/programs/lang-rust.md) +- [Debugging onchain programs](/docs/programs/debugging.md) diff --git a/content/guides/getstarted/solana-token-airdrop-and-faucets.md b/content/guides/getstarted/solana-token-airdrop-and-faucets.md index ee5dbf884..3ae24e1ca 100644 --- a/content/guides/getstarted/solana-token-airdrop-and-faucets.md +++ b/content/guides/getstarted/solana-token-airdrop-and-faucets.md @@ -86,8 +86,7 @@ Currently supported: ### Using the Solana CLI -Specify your [Cluster](https://docs.solana.com/clusters) to be your RPC -provider's URL: +Specify your [Cluster](/docs/core/clusters.md) to be your RPC provider's URL: ```shell solana config set --url diff --git a/content/guides/intro/wallets-explained.md b/content/guides/intro/wallets-explained.md index f837ea241..acd9af700 100644 --- a/content/guides/intro/wallets-explained.md +++ b/content/guides/intro/wallets-explained.md @@ -270,8 +270,8 @@ signature pens! ✍️.** Do you want to start building on Solana? - A gentle introduction to Solana: - [https://solana.com/news/solana-scaffold-part-1-wallet-adapter](https://solana.com/news/solana-scaffold-part-1-wallet-adapter) -- Tutorials: [https://soldev.app/](https://soldev.app/) + [Quick Start guides](/docs/intro/quick-start/index.md) +- [Install the Solana CLI](/docs/intro/installation.md) ### Blockchain and blockchain diff --git a/content/guides/javascript/compressed-nfts.md b/content/guides/javascript/compressed-nfts.md index 18c5eb1de..65f1cc431 100644 --- a/content/guides/javascript/compressed-nfts.md +++ b/content/guides/javascript/compressed-nfts.md @@ -18,7 +18,7 @@ altRoutes: Compressed NFTs on Solana use the [Bubblegum](https://docs.metaplex.com/programs/compression/) program from Metaplex to cheaply and securely store NFT metadata using -[State Compression](https://docs.solana.com/learn/state-compression). +[State Compression](/docs/advanced/state-compression.md). This developer guide will use JavaScript/TypeScript to demonstrate: @@ -30,10 +30,9 @@ This developer guide will use JavaScript/TypeScript to demonstrate: ## Intro to Compressed NFTs -Compressed NFTs use -[State Compression](https://docs.solana.com/learn/state-compression) and -[merkle trees](https://docs.solana.com/learn/state-compression#what-is-a-merkle-tree) -to drastically reduce the storage cost for NFTs. Instead of storing an NFT's +Compressed NFTs use [State Compression](/docs/advanced/state-compression.md) and +[merkle trees](/docs/advanced/state-compression.md#what-is-a-merkle-tree) to +drastically reduce the storage cost for NFTs. Instead of storing an NFT's metadata in a typical Solana account, compressed NFTs store the metadata within the ledger. This allows compressed NFTs to still inherit the security and speed of the Solana blockchain, while at the same time reducing the overall storage @@ -53,10 +52,9 @@ transfer. More on this below. ### Compressed NFTs and indexers Since compressed NFTs store all of their metadata in the -[ledger](https://docs.solana.com/terminology#ledger), instead of in traditional -[accounts](https://docs.solana.com/terminology#account) like uncompressed NFTs, -we will need to help of indexing services to quickly fetch our compressed NFT's -metadata. +[ledger](/docs/terminology.md#ledger), instead of in traditional +[accounts](/docs/terminology.md#account) like uncompressed NFTs, we will need to +help of indexing services to quickly fetch our compressed NFT's metadata. Supporting RPC providers are using the Digital Asset Standard Read API (or "Read API" for short) to add additional RPC methods that developers can call. These @@ -90,7 +88,7 @@ happen in 3 primary steps: - create an NFT collection (or use an existing one) - create a - [concurrent merkle tree](https://docs.solana.com/learn/state-compression#what-is-a-concurrent-merkle-tree) + [concurrent merkle tree](/docs/advanced/state-compression.md#what-is-a-concurrent-merkle-tree) (using the `@solana/spl-account-compression` SDK) - mint compressed NFTs into your tree (to any owner's address you want) @@ -168,7 +166,7 @@ actually create them following the same process of creating an - store the collection's metadata in an Account on-chain Since NFT Collections having nothing special to do with -[State Compression](https://docs.solana.com/learn/state-compression) or +[State Compression](/docs/advanced/state-compression.md) or [compressed NFTs](/content/guides/javascript/compressed-nfts.md), we will not cover creating one in this guide. @@ -186,7 +184,7 @@ various addresses for your Collection, including: ## Create a tree One of the most important decisions to make when creating compressed NFTs is -[how to setup your tree](https://docs.solana.com/learn/state-compression#sizing-a-concurrent-merkle-tree). +[how to setup your tree](/docs/advanced/state-compression.md#sizing-a-concurrent-merkle-tree). Especially since the values used to size your tree will determine the overall cost of creation, and **CANNOT** be changed after creation. @@ -218,9 +216,8 @@ Your tree size is set by 3 values, each serving a very specific purpose: a large of cost and composability of your compressed NFT collection > Read more about the details about -> [State Compression](https://docs.solana.com/learn/state-compression), -> including -> [how to size a tree](https://docs.solana.com/learn/state-compression#sizing-a-concurrent-merkle-tree) +> [State Compression](/docs/advanced/state-compression.md), including +> [how to size a tree](/docs/advanced/state-compression.md#sizing-a-concurrent-merkle-tree) > and potential composability concerns. Let's assume we are going to create a compressed NFT collection with 10k NFTs in @@ -254,8 +251,7 @@ node hashes" on-chain. Thus requiring us to always include `4` proof node values ### Generate addresses for the tree When creating a new tree, we need to generate a new -[Keypair](https://docs.solana.com/terminology#keypair) address for the tree to -have: +[Keypair](/docs/terminology.md#keypair) address for the tree to have: ```ts const treeKeypair = Keypair.generate(); @@ -363,7 +359,7 @@ Allowing us to cryptographically verify that our original metadata has not changed (unless we want it to). > Learn more about how State Compression uses -> [concurrent merkle trees](https://docs.solana.com/learn/state-compression#what-is-a-concurrent-merkle-tree) +> [concurrent merkle trees](/docs/advanced/state-compression.md#what-is-a-concurrent-merkle-tree) > to cryptographically secure offchain data using the Solana ledger. ### Define our NFT's metadata @@ -401,8 +397,8 @@ In this demo, the key pieces of our NFT's metadata to note are: ### Derive the Bubblegum signer When minting new compressed NFTs, the Bubblegum program needs a PDA to perform a -[cross-program invocation](https://docs.solana.com/developing/programming-model/calling-between-programs#cross-program-invocations) -(`cpi`) to the SPL compression program. +[cross-program invocation](/docs/core/cpi.md) (`cpi`) to the SPL compression +program. > This `bubblegumSigner` PDA is derived using a hard coded seed string of > `collection_cpi` and owned by the Bubblegum program. If this hard coded value @@ -626,8 +622,8 @@ together in a deterministic way to compute the "root hash". Therefore, allowing for cryptographic validation of an asset within the merkle tree. > **NOTE:** While each of these hash values resemble a Solana Account's -> [address/public key](https://docs.solana.com/terminology#public-key-pubkey), -> they are not addresses. +> [address/public key](/docs/terminology.md#public-key-pubkey), they are not +> addresses. Transferring ownership of a compressed NFT happens in 5 broad steps: @@ -745,8 +741,7 @@ Since we will use the `createTransferInstruction` helper function from the Bubblegum SDK to actually build our transfer instruction, we need to: - remove the proof values that are already stored on-chain in the - [tree's canopy](https://docs.solana.com/learn/state-compression#canopy-depth), - and + [tree's canopy](/docs/advanced/state-compression.md#canopy-depth), and - convert the remaining proof values into the valid `AccountMeta` structure that the instruction builder function accepts diff --git a/content/guides/javascript/get-program-accounts.md b/content/guides/javascript/get-program-accounts.md index 090e0ff0c..3b750e21d 100644 --- a/content/guides/javascript/get-program-accounts.md +++ b/content/guides/javascript/get-program-accounts.md @@ -31,10 +31,10 @@ The `getProgramAccounts` RPC method has the following syntax: - (optional) `configOrCommitment`: `object` - Configuration parameters containing the following optional fields: - (optional) `commitment`: `string` - - [State commitment](https://docs.solana.com/developing/clients/jsonrpc-api#configuring-state-commitment) + [State commitment](/docs/rpc/index.mdx#configuring-state-commitment) - (optional) `encoding`: `string` - Encoding for account data, either: `base58`, `base64`, or `jsonParsed`. Note, web3js users should instead use - [getParsedProgramAccounts](https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts) + [`getParsedProgramAccounts`](https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts) - (optional) `dataSlice`: `object` - Limit the returned account data based on: - `offset`: `number` - Number of bytes into account data to begin returning - `length`: `number` - Number of bytes of account data to return @@ -48,7 +48,7 @@ The `getProgramAccounts` RPC method has the following syntax: - `dataSize`: `number` - Compares the account data length with the provided data size - (optional) `withContext`: `boolean` - Wrap the result in an - [RpcResponse JSON object](https://docs.solana.com/developing/clients/jsonrpc-api#rpcresponse-structure) + [RpcResponse JSON object](/docs/rpc/index.mdx#rpcresponse-structure) ### Response diff --git a/content/guides/token-extensions/getting-started.md b/content/guides/token-extensions/getting-started.md index a843fcd9d..67c2ac233 100644 --- a/content/guides/token-extensions/getting-started.md +++ b/content/guides/token-extensions/getting-started.md @@ -41,10 +41,9 @@ You can find a dedicated video tutorial for each Token Extension on this ## How do I create a token with token extensions? To get started creating tokens with token extensions, you can use the -[Solana Tool Suite](https://solana.com/docs/intro/installation) to create tokens -with a CLI. Based on the extension you want to create, your command flags may be -different. Below are the flags to add to create tokens with each type of -extension. +[Solana Tool Suite](/docs/intro/installation.md) to create tokens with a CLI. +Based on the extension you want to create, your command flags may be different. +Below are the flags to add to create tokens with each type of extension. | Extension | CLI Flag | | -------------------------------------------------------------------------------------------------- | ----------------------------------------- | diff --git a/content/resources/info/docs.md b/content/resources/info/docs.md index 14e5fd94f..2f491a254 100644 --- a/content/resources/info/docs.md +++ b/content/resources/info/docs.md @@ -1,12 +1,12 @@ --- category: documentation -title: Core Documentation +title: Solana Documentation description: "The official Solana documentation on developing, validators, SPL tokens, wallets and more." tags: - docs isExternal: true -href: https://docs.solana.com/ -repoUrl: https://github.com/solana-labs/solana/tree/master/docs +href: https://solana.com/docs +repoUrl: https://github.com/solana-foundation/developer-content/tree/main/docs --- diff --git a/docs/advanced/retry.md b/docs/advanced/retry.md index 6949e2ad2..f69bddb8e 100644 --- a/docs/advanced/retry.md +++ b/docs/advanced/retry.md @@ -285,10 +285,10 @@ fork. If an application has access to RPC nodes behind a load balancer, it can also choose to divide its workload amongst specific nodes. RPC nodes that serve data-intensive requests such as -[getProgramAccounts](https://solanacookbook.com/guides/get-program-accounts.html) -may be prone to falling behind and can be ill-suited for also forwarding -transactions. For applications that handle time-sensitive transactions, it may -be prudent to have dedicated nodes that only handle `sendTransaction`. +[getProgramAccounts](/content//guides/javascript/get-program-accounts.md) may be +prone to falling behind and can be ill-suited for also forwarding transactions. +For applications that handle time-sensitive transactions, it may be prudent to +have dedicated nodes that only handle `sendTransaction`. ### The Cost of Skipping Preflight diff --git a/docs/intro/dev.md b/docs/intro/dev.md index ff65650cf..1d9d5caab 100644 --- a/docs/intro/dev.md +++ b/docs/intro/dev.md @@ -107,10 +107,9 @@ can do this with the following command: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ``` -You'll then need to have the -[Solana CLI installed](https://docs.solanalabs.com/cli/install) to compile and -deploy your programs. You can install the Solana CLI by running the following -command: +You'll then need to have the [Solana CLI installed](/docs/intro/installation.md) +to compile and deploy your programs. You can install the Solana CLI by running +the following command: ```bash sh -c "$(curl -sSfL https://release.anza.xyz/stable/install)" @@ -126,7 +125,7 @@ solana-test-validator This will start a local validator on your machine that you can use to test your programs. You can -[read more about local development in this guide](https://solana.com/docs/intro/installation). +[read more about local development in this guide](/docs/intro/installation.md). When building onchain programs, you have a choice to either build with native Rust (ie, without a framework) or use the Anchor framework. Anchor is a diff --git a/docs/more/exchange.md b/docs/more/exchange.md index 6db344ca8..a85268db4 100644 --- a/docs/more/exchange.md +++ b/docs/more/exchange.md @@ -24,7 +24,7 @@ and high TPS. For specific requirements, please see To run an api node: -1. [Install the Solana command-line tool suite](https://docs.solanalabs.com/cli/install) +1. [Install the Solana command-line tool suite](/docs/intro/installation.md) 2. Start the validator with at least the following parameters: ```shell diff --git a/docs/programs/lang-c.md b/docs/programs/lang-c.md index b5bad22c9..213cdce4c 100644 --- a/docs/programs/lang-c.md +++ b/docs/programs/lang-c.md @@ -29,8 +29,7 @@ environment per [How to Build](#how-to-build) then it should be. First setup the environment: - Install the latest Rust stable from https://rustup.rs -- Install the latest - [Solana command-line tools](https://docs.solanalabs.com/cli/install) +- Install the latest [Solana command-line tools](/docs/intro/installation.md) Then build using make: diff --git a/docs/programs/lang-rust.md b/docs/programs/lang-rust.md index 22edde649..9a6a8cefa 100644 --- a/docs/programs/lang-rust.md +++ b/docs/programs/lang-rust.md @@ -68,8 +68,7 @@ For example: First setup the environment: - Install the latest Rust stable from https://rustup.rs/ -- Install the latest - [Solana command-line tools](https://docs.solanalabs.com/cli/install) +- Install the latest [Solana command-line tools](/docs/intro/installation.md) The normal cargo build is available for building programs against your host machine which can be used for unit testing: diff --git a/docs/programs/overview.md b/docs/programs/overview.md index 524e6bddc..3e937a2c1 100644 --- a/docs/programs/overview.md +++ b/docs/programs/overview.md @@ -32,9 +32,8 @@ program, take a look at these detailed quick start guides: ### 1. Setup your development environment The most robust way of getting started with Solana development, is -[installing the Solana CLI](https://docs.solanalabs.com/cli/install) tools on -your local computer. This will allow you to have the most powerful development -environment. +[installing the Solana CLI](/docs/intro/installation.md) tools on your local +computer. This will allow you to have the most powerful development environment. Some developers may also opt for using [Solana Playground](https://beta.solpg.io/), a browser based IDE. It will let @@ -57,11 +56,10 @@ byte-code that will then be deployed to the blockchain. ### 4. Generate the program's public address -Using the [Solana CLI](https://docs.solanalabs.com/cli/install), the developer -will generate a new unique [Keypair](/docs/terminology.md#keypair) for the new -program. The public address (aka -[Pubkey](/docs/terminology.md#public-key-pubkey)) from this Keypair will be used -on-chain as the program's public address (aka +Using the [Solana CLI](/docs/intro/installation.md), the developer will generate +a new unique [Keypair](/docs/terminology.md#keypair) for the new program. The +public address (aka [Pubkey](/docs/terminology.md#public-key-pubkey)) from this +Keypair will be used on-chain as the program's public address (aka [`programId`](/docs/terminology.md#program-id)). ### 5. Deploying the program diff --git a/redirects.json b/redirects.json index a480657df..12e411839 100644 --- a/redirects.json +++ b/redirects.json @@ -1,5 +1,17 @@ { "common-docs": [ + { + "source": "/install", + "destination": "/docs/intro/installation" + }, + { + "source": "/cli/install", + "destination": "/docs/intro/installation" + }, + { + "source": "/cli/install-solana-cli-tools", + "destination": "/docs/intro/installation" + }, { "source": "/apps", "destination": "/developers" }, { "source": "/developing/programming-model/overview", @@ -138,7 +150,7 @@ "source": "/getstarted/hello-world" }, { - "destination": "docs/intro/installation", + "destination": "/docs/intro/installation", "source": "/getstarted/local" }, { @@ -207,10 +219,6 @@ "source": "/implemented-proposals", "destination": "/implemented-proposals" }, - { - "source": "/cli/install-solana-cli-tools", - "destination": "/cli/install" - }, { "source": "/cli/conventions", "destination": "/cli/intro" }, { "source": "/cli/choose-a-cluster", diff --git a/src/components/HomeComponent.tsx b/src/components/HomeComponent.tsx index a2178cd80..61e57d7c4 100644 --- a/src/components/HomeComponent.tsx +++ b/src/components/HomeComponent.tsx @@ -116,7 +116,7 @@ export const HomeViewComponent = () => { , which contains all the information specific to that validator client's implementation and inner workings. Including{" "} - + installing the Solana CLI tool-suite , this{" "} From d7c47861b3ab30a9ec8f740999abfdade7aaffe6 Mon Sep 17 00:00:00 2001 From: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> Date: Fri, 13 Sep 2024 14:40:05 -0400 Subject: [PATCH 044/206] feat: added core concepts page (#484) --- docs/core/accounts.md | 2 - docs/core/index.md | 113 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 112 insertions(+), 3 deletions(-) diff --git a/docs/core/accounts.md b/docs/core/accounts.md index eb689c6b0..7a05be137 100644 --- a/docs/core/accounts.md +++ b/docs/core/accounts.md @@ -2,8 +2,6 @@ sidebarSortOrder: 1 sidebarLabel: Solana Account Model title: Solana Account Model -altRoutes: - - /docs/core --- On Solana, all data is stored in what are referred to as "accounts”. The way diff --git a/docs/core/index.md b/docs/core/index.md index 519926a25..549e9074d 100644 --- a/docs/core/index.md +++ b/docs/core/index.md @@ -1,5 +1,116 @@ --- -metaOnly: true title: Core Concepts sidebarSortOrder: 2 +description: + "Understanding these core concepts are very important to maximize your success + as a Solana blockchain developer." --- + +Build a strong understanding of the core concepts that make Solana different +from other blockchains. Understanding the "Solana programming model" through +these core concepts is very important to maximize your success as a Solana +blockchain developer. + +## Solana Account Model + +On Solana, all data is stored in what are referred to as "accounts”. The way +data is organized on the Solana blockchain resembles a +[key-value store](https://en.wikipedia.org/wiki/Key%E2%80%93value_database), +where each entry in the database is called an "account". + +Learn more about [Accounts](/docs/core/accounts.md) here. + +## Transactions and Instructions + +On Solana, we send [transactions](/docs/core/transactions#transaction) to +interact with the network. Transactions include one or more +[instructions](/docs/core/transactions#instruction), each representing a +specific operation to be processed. The execution logic for instructions is +stored on [programs](/docs/core/programs) deployed to the Solana network, where +each program stores its own set of instructions. + +Learn more about [Transactions](/docs/core/transactions.md) and +[Instructions](/docs/core/transactions.md#instruction) here. + +## Fees on Solana + +The Solana blockchain has a few different types of fees and costs that are +incurred to use the permissionless network. These can be segmented into a few +specific types: + +- [Transaction Fees](/docs/core/fees.md#transaction-fees) - A fee to have + validators process transactions/instructions +- [Prioritization Fees](/docs/core/fees.md#prioritization-fees) - An optional + fee to boost transactions processing order +- [Rent](/docs/core/fees.md#rent) - A withheld balance to keep data stored + on-chain + +Learn more about [Fees on Solana](/docs/core/fees.md) here. + +## Programs on Solana + +In the Solana ecosystem, "smart contracts" are called programs. Each program is +an on-chain account that stores executable logic, organized into specific +functions referred to as _instructions_ and called via _instruction handler_ +functions within the respective deployed program. + +Learn more about [Programs on Solana](/docs/core/programs.md) here. + +## Program Derived Address + +Program Derived Addresses (PDAs) provide developers on Solana with two main use +cases: + +- **Deterministic Account Addresses**: PDAs provide a mechanism to + deterministically derive an address using a combination of optional "seeds" + (predefined inputs) and a specific program ID. +- **Enable Program Signing**: The Solana runtime enables programs to "sign" for + PDAs which are derived from its program ID. + +You can think of PDAs as a way to create hashmap-like structures on-chain from a +predefined set of inputs (e.g. strings, numbers, and other account addresses). + +Learn more about [Program Derived Address](/docs/core/pda.md) here. + +## Cross Program Invocation + +A Cross Program Invocation (CPI) refers to when one program invokes the +instructions of another program. This mechanism allows for the composability of +Solana programs. + +You can think of instructions as API endpoints that a program exposes to the +network and a CPI as one API internally invoking another API. + +Learn more about [Cross Program Invocation](/docs/core/cpi.md) here. + +## Tokens on Solana + +Tokens are digital assets that represent ownership over diverse categories of +assets. Tokenization enables the digitalization of property rights, serving as a +fundamental component for managing both fungible and non-fungible assets. + +- Fungible Tokens represent interchangeable and divisible assets of the same + type and value (ex. USDC). +- Non-fungible Tokens (NFT) represent ownership of indivisible assets (e.g. + artwork). + +Learn more about [Tokens on Solana](/docs/core/tokens.md) here. + +## Clusters and Endpoints + +The Solana blockchain has several different groups of validators, known as +[Clusters](/docs/core/clusters.md). Each serving different purposes within the +overall ecosystem and containing dedicated api nodes to fulfill +[JSON-RPC](/docs/rpc/index.mdx) requests for their respective Cluster. + +The individual nodes within a Cluster are owned and operated by third parties, +with a public endpoint available for each. + +There are three primary clusters on the Solana network, each with a different +public endpoint: + +- Mainnet - `https://api.mainnet-beta.solana.com` +- Devnet - `https://api.devnet.solana.com` +- Testnet - `https://api.testnet.solana.com` + +Learn more about [Clusters and Endpoints](/docs/core/clusters.md) here. From 00517d7a1d2f1dae8d866297275fc71af7e1cd10 Mon Sep 17 00:00:00 2001 From: 0xCipherCoder Date: Tue, 17 Sep 2024 05:21:57 +0530 Subject: [PATCH 045/206] Native onchain development - Updated deserialize instruction data lesson (#404) * Added fixes for grammar, style and code practices * Fixed highlighting and links * Added updated content and links * Updated uses of error handling --- .../deserialize-instruction-data.md | 362 +++++++++--------- 1 file changed, 183 insertions(+), 179 deletions(-) diff --git a/content/courses/native-onchain-development/deserialize-instruction-data.md b/content/courses/native-onchain-development/deserialize-instruction-data.md index 1c88e4e17..3a18f4a0a 100644 --- a/content/courses/native-onchain-development/deserialize-instruction-data.md +++ b/content/courses/native-onchain-development/deserialize-instruction-data.md @@ -5,7 +5,7 @@ objectives: - Create and use Rust structs and enums - Use Rust match statements - Add implementations to Rust types - - Deserialize instruction data into Rust data types + - Deserialize instruction data into native Rust data types - Execute different program logic for different types of instructions - Explain the structure of a smart contract on Solana description: @@ -15,16 +15,16 @@ description: ## Summary - Most programs support **multiple discrete instruction handlers** (sometimes - just referred to as 'instructions') - these are functions inside your program -- Rust **enums** are often used to represent each instruction handler -- You can use the `borsh` crate and the `derive` attribute to provide Borsh - deserialization and serialization functionality to Rust structs + referred to as 'instructions') - these are functions within your program. +- Rust **enums** are often used to represent each instruction handler. +- You can use the `borsh` crate and the `derive` attribute to enable Borsh + deserialization and serialization functionality in Rust structs. - Rust `match` expressions help create conditional code paths based on the - provided instruction + provided instruction. ## Lesson -One of the most basic elements of a Solana program is the logic for handling +One of the fundamental elements of a Solana program is the logic for handling instruction data. Most programs support multiple functions, also called instruction handlers. For example, a program may have different instruction handlers for creating a new piece of data versus deleting the same piece of @@ -32,51 +32,51 @@ data. Programs use differences in instruction data to determine which instruction handler to execute. Since instruction data is provided to your program's entry point as a byte -array, it's common to create a Rust data type to represent instructions in a way -that's more usable throughout your code. This lesson will walk through how to -set up such a type, how to deserialize the instruction data into this format, -and how to execute the proper instruction handler based on the instruction -passed into the program's entry point. +array, it's common to create a Rust data type to represent instructions in a +more usable format throughout your code. This lesson will guide you through +setting up such a type, deserializing the instruction data into this format, and +executing the appropriate instruction handler based on the instruction passed +into the program's entry point. -### Rust basics +### Rust Basics -Before we dive into the specifics of a basic Solana program, let's talk about -the Rust basics we'll be using throughout this lesson. +Before diving into the specifics of a basic Solana program, let's cover the Rust +basics that will be used throughout this lesson. #### Variables -Variable assignment in Rust happens with the `let` keyword. +Variable assignment in Rust is done using the `let` keyword. ```rust let age = 33; ``` -By default, variables in Rust are immutable, meaning a variable's value cannot -be changed once it has been set. To create a variable that we'd like to change -at some point in the future, we use the `mut` keyword. Defining a variable with -this keyword means that its stored value can change. +By default, variables in Rust are immutable, meaning their value cannot be +changed once set. To create a variable that can be changed later, use the `mut` +keyword. Defining a variable with this keyword allows its stored value to +change. ```rust -// compiler will throw error +// Compiler will throw an error let age = 33; age = 34; -// this is allowed +// This is allowed let mut mutable_age = 33; mutable_age = 34; ``` -The Rust compiler guarantees that immutable variables cannot change, so you -don’t have to keep track of it yourself. This makes your code easier to reason -through and simplifies debugging. +The Rust compiler ensures that immutable variables cannot change, so you don’t +have to track it yourself. This makes your code easier to reason through and +simplifies debugging. #### Structs -A struct, or structure, is a custom data type that lets you package together and -name multiple related values that make up a meaningful group. Each piece of data -in a struct can be of different types, and each has a name associated with it. -These pieces of data are called **fields**. They behave similarly to properties -in other languages. +A struct (short for structure) is a custom data type that lets you package +together and name multiple related values that make up a meaningful group. Each +piece of data in a struct can be of different types, and each has a name +associated with it. These pieces of data are called fields and behave similarly +to properties in other languages. ```rust struct User { @@ -86,7 +86,7 @@ struct User { } ``` -To use a struct after we’ve defined it, we create an instance of that struct by +To use a struct after it’s defined, create an instance of the struct by specifying concrete values for each of the fields. ```rust @@ -97,16 +97,20 @@ let mut user1 = User { }; ``` -To get or set a specific value from a struct, we use dot notation. +To get or set a specific value from a struct, use dot notation. ```rust user1.age = 37; ``` +You can check out the +[struct examples](https://doc.rust-lang.org/rust-by-example/custom_types/structs.html) +for in depth understanding. + #### Enumerations -Enumerations (or Enums) are a data struct that allow you to define a type by -enumerating its possible variants. An example of an enum may look like: +Enumerations (or Enums) are a data struct that allows you to define a type by +enumerating its possible variants. An example of an enum might look like: ```rust enum LightStatus { @@ -115,8 +119,7 @@ enum LightStatus { } ``` -The `LightStatus` enum has two possible variants in this situation: it's -either`On` or `Off`. +The `LightStatus` enum has two possible variants in this example: `On` or `Off`. You can also embed values into enum variants, similar to adding fields to a struct. @@ -133,15 +136,18 @@ let light_status = LightStatus::On { color: String::from("red") }; ``` In this example, setting a variable to the `On` variant of `LightStatus` -requires also setting the value of `color`. +requires also setting the value of `color`. You can check out more examples of +using enums in Rust by visiting +[this Rust by Example page on enums](https://doc.rust-lang.org/rust-by-example/custom_types/enum.html). #### Match statements Match statements are very similar to `switch` statements in other languages. The -`match` statement allows you to compare a value against a series of patterns and -then execute code based on which pattern matches the value. Patterns can be made -of literal values, variable names, wildcards, and more. The match statement must -include all possible scenarios, otherwise the code will not compile. +[`match`](https://doc.rust-lang.org/rust-by-example/flow_control/match.html) +statement allows you to compare a value against a series of patterns and then +execute code based on which pattern matches the value. Patterns can be made of +literal values, variable names, wildcards, and more. The match statement must +include all possible scenarios; otherwise, the code will not compile. ```rust enum Coin { @@ -163,8 +169,9 @@ fn value_in_cents(coin: Coin) -> u8 { #### Implementations -The `impl` keyword is used in Rust to define a type's implementations. Functions -and constants can both be defined in an implementation. +The [`impl`](https://doc.rust-lang.org/rust-by-example/trait/impl_trait.html) +keyword is used in Rust to define a type's implementations. Functions and +constants can both be defined in an implementation. ```rust struct Example { @@ -186,7 +193,7 @@ impl Example { } ``` -The function `boo` here can only be called on the type itself rather than an +The `boo` function here can only be called on the type itself rather than an instance of the type, like so: ```rust @@ -203,14 +210,15 @@ example.answer(); #### Traits and attributes -You won't be creating your own traits or attributes at this stage, so we won't -provide an in-depth explanation of either. However, you will be using the -`derive` attribute macro and some traits provided by the `borsh` crate, so it's -important you have a high-level understanding of each. +You won't be creating your own traits or attributes at this stage, so an +in-depth explanation isn't necessary. However, you will be using the `derive` +attribute macro and some traits provided by the `borsh` crate, so it's important +to have a high-level understanding of each. -Traits describe an abstract interface that types can implement. If a trait -defines a function `bark()` and a type then adopts that trait, the type must -then implement the `bark()` function. +[Traits](https://doc.rust-lang.org/rust-by-example/trait.html) describe an +abstract interface that types can implement. If a trait defines a function +`bark()` and a type adopts that trait, the type must implement the `bark()` +function. [Attributes](https://doc.rust-lang.org/rust-by-example/attribute.html) add metadata to a type and can be used for many different purposes. @@ -221,7 +229,7 @@ to a type and provide one or more supported traits, code is generated under the hood to automatically implement the traits for that type. We'll provide a concrete example of this shortly. -### Representing instructions as a Rust data type +### Representing Instructions as a Rust Data Type Now that we've covered the Rust basics, let's apply them to Solana programs. @@ -255,7 +263,7 @@ Notice that each variant of the `NoteInstruction` enum comes with embedded data that will be used by the program to accomplish the tasks of creating, updating, and deleting a note, respectively. -### Deserialize instruction data +### Deserialize Instruction Data Instruction data is passed to the program as a byte array, so you need a way to deterministically convert that array into an instance of the instruction enum @@ -305,25 +313,24 @@ impl NoteInstruction { // determine which instruction handler to execute let (&variant, rest) = input.split_first().ok_or(ProgramError::InvalidInstructionData)?; // Use the temporary payload struct to deserialize - let payload = NoteInstructionPayload::try_from_slice(rest).unwrap(); + let payload = NoteInstructionPayload::try_from_slice(rest) + .map_err(|_| ProgramError::InvalidInstructionData)?; // Match the variant to determine which data struct is expected by // the function and return the TestStruct or an error - Ok(match variant { - 0 => Self::CreateNote { + match variant { + 0 => Ok(Self::CreateNote { title: payload.title, body: payload.body, - id: payload.id - }, - 1 => Self::UpdateNote { + id: payload.id, + }), + 1 => Ok(Self::UpdateNote { title: payload.title, body: payload.body, - id: payload.id - }, - 2 => Self::DeleteNote { - id: payload.id - }, - _ => return Err(ProgramError::InvalidInstructionData) - }) + id: payload.id, + }), + 2 => Ok(Self::DeleteNote { id: payload.id }), + _ => Err(ProgramError::InvalidInstructionData), + } } } ``` @@ -338,17 +345,33 @@ There's a lot in this example so let's take it one step at a time: `NoteInstructionPayload` to deserialize the rest of the byte array into an instance of `NoteInstructionPayload` called `payload` 3. Finally, the function uses a `match` statement on `variant` to create and - return the appropriate enum instance using information from `payload` + return the appropriate enum instance using information from `payload`. Each + valid variant (0, 1, 2) corresponds to a specific NoteInstruction variant, + while any other value results in an error. + + + +There is Rust syntax in this function that we haven't explained yet. The +`ok_or`, `map_err`, and `?` operators are used for error handling: + +- [`ok_or`](https://doc.rust-lang.org/std/option/enum.Option.html#method.ok_or): + Converts an `Option` to a `Result`. If the `Option` is `None`, it returns the + provided error. Otherwise, it returns the `Some` value as `Ok`. -Note that there is Rust syntax in this function that we haven't explained yet. -The `ok_or` and `unwrap` functions are used for error handling and will be -discussed in detail in another lesson. +- [`map_err`](https://doc.rust-lang.org/std/result/enum.Result.html#method.map_err): + Transforms the error of a `Result` by applying a function to the error. It + leaves the `Ok` value unchanged. + +- [`?` operator](https://doc.rust-lang.org/rust-by-example/error/result/enter_question_mark.html): + Unwraps a `Result` or `Option`. If it’s `Ok` or `Some`, it returns the value. + If it’s an `Err` or `None`, it propagates the error up to the calling + function. ### Program logic -With a way to deserialize instruction data into a custom Rust type, you can then +With a method to deserialize instruction data into a custom Rust type, you can use appropriate control flow to execute different code paths in your program -based on which instruction is passed into your program's entry point. +based on the instruction passed into the program's entry point. ```rust entrypoint!(process_instruction); @@ -356,59 +379,60 @@ entrypoint!(process_instruction); pub fn process_instruction( program_id: &Pubkey, accounts: &[AccountInfo], - instruction_data: &[u8] + instruction_data: &[u8], ) -> ProgramResult { + msg!("Note program entrypoint"); // Call unpack to deserialize instruction_data let instruction = NoteInstruction::unpack(instruction_data)?; // Match the returned data struct to what you expect match instruction { NoteInstruction::CreateNote { title, body, id } => { + msg!("Instruction: Create Note"); // Execute program code to create a note }, NoteInstruction::UpdateNote { title, body, id } => { + msg!("Instruction: Update Note"); // Execute program code to update a note }, NoteInstruction::DeleteNote { id } => { + msg!("Instruction: Delete Note"); // Execute program code to delete a note } } } ``` -For simple programs where there are only one or two instructions to execute, it -may be fine to write the logic inside the match statement. For programs with -many different possible instructions to match against, your code will be much -more readable if the logic for each instruction handler is written in a separate -function and simply called from inside the `match` statement. +For simple programs with one or two instructions, placing logic inside the +`match` statement may suffice. However, for programs with many instructions, it +is advisable to write the logic for each instruction handler in a separate +function and call it from within the `match` statement. -### Program file structure +### Program File Structure -The [Hello World lesson’s](hello-world-program) program was simple enough that -it could be confined to one file. But as the complexity of a program grows, it's -important to maintain a project structure that remains readable and extensible. -This involves encapsulating code into functions and data structures as we've -done so far. But it also involves grouping related code into separate files. +The +[Hello World lesson](/content/courses/native-onchain-development/hello-world-program.md) +demonstrated a program simple enough to be confined to one file. As program +complexity grows, maintaining a readable and extensible project structure +becomes crucial. This involves encapsulating code into functions and data +structures, and grouping related code into separate files. -For example, a good portion of the code we've worked through so far involves -defining and deserializing instructions. That code should live in its own file -rather than be written in the same file as the entry point. By doing so, we -would then have two files, one with the program entry point and the other with -the instruction handler: +For instance, instruction definition and deserialization code should reside in +its own file, separate from the entry point. This approach might result in two +files: one for the program entry point and another for the instruction handler. - **lib.rs** - **instruction.rs** -Once you start splitting your program up like this you will need to make sure -you register all of the files in one central location. We’ll be doing this in -`lib.rs`. **You must register every file in your program like this.** +When splitting your program into multiple files, register all files in a central +location, typically in `lib.rs`. Each file must be registered this way. -```rust -// This would be inside lib.rs +```rust filename="lib.rs" +// Inside lib.rs pub mod instruction; ``` -Additionally, any declarations that you would like to be available through `use` -statements in other files will need to be prefaced with the `pub` keyword: +Additionally, use the `pub` keyword to make declarations available for `use` +statements in other files. ```rust pub enum NoteInstruction { ... } @@ -416,24 +440,18 @@ pub enum NoteInstruction { ... } ## Lab -For this lesson’s lab, we’ll be building out the first half of the Movie Review -program that we worked with in Module 1. This program stores movie reviews -submitted by users. - -For now, we'll focus on deserializing the instruction data. The following lesson -will focus on the second half of this program. +For this lesson’s lab, you'll build the first half of the Movie Review program +from Module 1, focusing on deserializing instruction data. The next lesson will +cover the remaining implementation. -#### 1. Entry point +### 1. Entry point -We’ll be using [Solana Playground](https://beta.solpg.io/) again to build out -this program. Solana Playground saves state in your browser, so everything you -did in the previous lesson may still be there. If it is, let's clear everything -out from the current `lib.rs` file. +Using [Solana Playground](https://beta.solpg.io/), clear everything in the +current `lib.rs` file if it's still populated from the previous lesson. Then, +bring in the following crates and define the program's entry point using the +entrypoint macro. -Inside lib.rs, we’re going to bring in the following crates and define where -we’d like our entry point to the program to be with the `entrypoint` macro. - -```rust +```rust filename="lib.rs" use solana_program::{ entrypoint, entrypoint::ProgramResult, @@ -458,17 +476,15 @@ pub fn process_instruction( #### 2. Deserialize instruction data -Before we continue with the processor logic, we should define our supported -instructions and implement our deserialization function. - -For readability, let's create a new file called `instruction.rs`. Inside this -new file, add `use` statements for `BorshDeserialize` and `ProgramError`, then -create a `MovieInstruction` enum with an `AddMovieReview` variant. This variant -should have embedded values for `title,` `rating`, and `description`. +Define your supported instructions and implement a deserialization function. +Create a new file called `instruction.rs`, and add `use` statements for +`BorshDeserialize` and `ProgramError`, and create a `MovieInstruction` enum with +an `AddMovieReview` variant that includes `title`, `rating`, and `description` +values. -```rust +```rust filename="instruction.rs" use borsh::{BorshDeserialize}; -use solana_program::{program_error::ProgramError}; +use solana_program::program_error::ProgramError; pub enum MovieInstruction { AddMovieReview { @@ -479,9 +495,9 @@ pub enum MovieInstruction { } ``` -Next, define a `MovieReviewPayload` struct. This will act as an intermediary -type for deserialization so it should use the `derive` attribute macro to -provide a default implementation for the `BorshDeserialize` trait. +Next, define a `MovieReviewPayload` struct as an intermediary type for +deserialization. Use the derive attribute macro to provide a default +implementation for the `BorshDeserialize` trait. ```rust #[derive(BorshDeserialize)] @@ -492,46 +508,43 @@ struct MovieReviewPayload { } ``` -Finally, create an implementation for the `MovieInstruction` enum that defines -and implements a function called `unpack` that takes a byte array as an argument -and returns a `Result` type. This function should: +Finally, implement the `MovieInstruction` enum by defining a `unpack` function +that takes a byte array and returns a `Result` type. This function should: -1. Use the `split_first` function to split the first byte of the array from the - rest of the array -2. Deserialize the rest of the array into an instance of `MovieReviewPayload` +1. Split the first byte from the array using `split_first`. +2. Deserialize the remaining array into a `MovieReviewPayload` instance. 3. Use a `match` statement to return the `AddMovieReview` variant of - `MovieInstruction` if the first byte of the array was a 0 or return a program - error otherwise + `MovieInstruction` if the first byte is 0, otherwise return a program error. ```rust impl MovieInstruction { // Unpack inbound buffer to associated Instruction // The expected format for input is a Borsh serialized vector pub fn unpack(input: &[u8]) -> Result { - // Split the first byte of data - let (&variant, rest) = input.split_first().ok_or(ProgramError::InvalidInstructionData)?; - // `try_from_slice` is one of the implementations from the BorshDeserialization trait - // Deserializes instruction byte data into the payload struct - let payload = MovieReviewPayload::try_from_slice(rest).unwrap(); - // Match the first byte and return the AddMovieReview struct - Ok(match variant { - 0 => Self::AddMovieReview { + // Ensure the input is not empty and split off the first byte (instruction variant) + let (&variant, rest) = input.split_first() + .ok_or(ProgramError::InvalidInstructionData)?; + // Attempt to deserialize the remaining input into a MovieReviewPayload + let payload = MovieReviewPayload::try_from_slice(rest) + .map_err(|_| ProgramError::InvalidInstructionData)?; + // Match on the instruction variant to construct the appropriate MovieInstruction + match variant { + 0 => Ok(Self::AddMovieReview { title: payload.title, rating: payload.rating, - description: payload.description }, - _ => return Err(ProgramError::InvalidInstructionData) - }) + description: payload.description, + }), + // If the variant doesn't match any known instruction, return an error + _ => Err(ProgramError::InvalidInstructionData), + } } } ``` #### 3. Program logic -With the instruction deserialization handled, we can return to the `lib.rs` file -to handle some of our program logic. - -Remember, since we added code to a different file, we need to register it in the -`lib.rs` file using `pub mod instruction;`. Then we can add a `use` statement to +Return to `lib.rs` to handle the program logic now that instruction +deserialization is set up. Register the `instruction.rs` file in `lib.rs` and bring the `MovieInstruction` type into scope. ```rust @@ -539,11 +552,10 @@ pub mod instruction; use instruction::{MovieInstruction}; ``` -Next, let's define a new function `add_movie_review` that takes the arguments -`program_id`, `accounts`, `title`, `rating`, and `description`. It should also -return an instance of `ProgramResult`. Inside this function, let's simply log -our values for now and we'll revisit the rest of the implementation of the -function in the next lesson. +Next, define an `add_movie_review` function that takes `program_id`, `accounts`, +`title`, `rating`, and `description` as arguments, and returns a +`ProgramResult`. For now, log these values, and we'll revisit the function +implementation in the next lesson. ```rust pub fn add_movie_review( @@ -564,11 +576,9 @@ pub fn add_movie_review( } ``` -With that done, we can call `add_movie_review` from `process_instruction` (the -function we set as our entry point). To pass all the required arguments to the -function, we'll first need to call the `unpack` we created on -`MovieInstruction`, then use a `match` statement to ensure that the instruction -we've received is the `AddMovieReview` variant. +Finally, call `add_movie_review` from `process_instruction`, unpack the +instruction using the `unpack` method, and use a `match` statement to ensure the +instruction is the `AddMovieReview` variant. ```rust pub fn process_instruction( @@ -588,51 +598,45 @@ pub fn process_instruction( } ``` -And just like that, your program should be functional enough to log the -instruction data passed in when a transaction is submitted! +With this, your program should now log the instruction data when a transaction +is submitted. Build and deploy your program from Solana Playground as in the +last lesson. If your program ID hasn't changed, it will deploy to the same ID. +To deploy to a different address, generate a new program ID before deploying. -Build and deploy your program from Solana Program just like in the last lesson. -If you haven't changed the program ID since going through the last lesson, it -will automatically deploy to the same ID. If you'd like it to have a separate -address, you can generate a new program ID from the playground before deploying. - -You can test your program by submitting a transaction with the right instruction -data. For that, feel free to use +Test your program by submitting a transaction with the correct instruction data. +You can use [this script](https://github.com/Unboxed-Software/solana-movie-client) or [the frontend](https://github.com/Unboxed-Software/solana-movie-frontend) we built in the [Serialize Custom Instruction Data lesson](/content/courses/native-onchain-development/serialize-instruction-data-frontend.md). -In both cases, make sure you copy and paste the program ID for your program into -the appropriate area of the source code to make sure you're testing the right +Ensure you update the program ID in the source code to match your deployed program. -If you need to spend some more time with this lab before moving on, please do! -You can also have a look at the program +Take your time with this lab before moving on, and feel free to reference the [solution code](https://beta.solpg.io/62aa9ba3b5e36a8f6716d45b) if you get stuck. ## Challenge -For this lesson's challenge, try replicating the Student Intro program from -Module 1. Recall that we created a frontend application that lets students -introduce themselves! The program takes a user's name and a short message as the -`instruction_data` and creates an account to store the data onchain. +Replicate the Student Intro program from Module 1 for this lesson's challenge. +The program takes a user's name and a short message as `instruction_data` and +creates an account to store the data on-chain. -Using what you've learned in this lesson, build the Student Intro program to the -point where you can print the `name` and `message` provided by the user to the -program logs when the program is invoked. +Using what you've learned, build the Student Intro program to the point where it +prints the `name` and `message` to the program logs when invoked. You can test your program by building the [frontend](https://github.com/Unboxed-Software/solana-student-intros-frontend/tree/solution-serialize-instruction-data) we created in the [Serialize Custom Instruction Data lesson](/content/courses/native-onchain-development/serialize-instruction-data-frontend.md) -and then checking the program logs on Solana Explorer. Remember to replace the -program ID in the frontend code with the one you've deployed. +and checking the program logs on Solana Explorer. Replace the program ID in the +frontend code with your deployed program ID. Try to do this independently if you can! But if you get stuck, feel free to reference the [solution code](https://beta.solpg.io/62b0ce53f6273245aca4f5b0). + Push your code to GitHub and [tell us what you thought of this lesson](https://form.typeform.com/to/IPH0UGz7#answers-lesson=74a157dc-01a7-4b08-9a5f-27aa51a4346c)! From 0d1ce87e54723cb9c72e65d66da2ff05c44ff4fe Mon Sep 17 00:00:00 2001 From: 0xCipherCoder Date: Tue, 17 Sep 2024 05:24:11 +0530 Subject: [PATCH 046/206] Added fixes for code snippet adhering guidelines (#443) --- .../courses/program-security/arbitrary-cpi.md | 227 +++++++++--------- 1 file changed, 120 insertions(+), 107 deletions(-) diff --git a/content/courses/program-security/arbitrary-cpi.md b/content/courses/program-security/arbitrary-cpi.md index 737cf8cb6..b5302e7d8 100644 --- a/content/courses/program-security/arbitrary-cpi.md +++ b/content/courses/program-security/arbitrary-cpi.md @@ -13,9 +13,9 @@ description: "How to safely invoke Solana programs from other Solana programs." ## Summary - To generate a CPI, the target program must be passed into the invoking - instruction as an account. This means that any target program could be passed - into the instruction. Your program should check for incorrect or unexpected - programs. + instruction handler as an account. This means that any target program could be + passed into the instruction handler. Your program should check for incorrect + or unexpected programs. - Perform program checks in native programs by simply comparing the public key of the passed-in program to the progam you expected. - If a program is written in Anchor, then it may have a publicly available CPI @@ -25,27 +25,27 @@ description: "How to safely invoke Solana programs from other Solana programs." ## Lesson -A cross program invocation (CPI) is when one program invokes an instruction on -another program. An “arbitrary CPI” is when a program is structured to issue a -CPI to whatever program is passed into the instruction rather than expecting to -perform a CPI to one specific program. Given that the callers of your program's -instruction can pass any program they'd like into the instruction's list of -accounts, failing to verify the address of a passed-in program results in your -program performing CPIs to arbitrary programs. +A cross program invocation (CPI) is when one program invokes an instruction +handler on another program. An “arbitrary CPI” is when a program is structured +to issue a CPI to whatever program is passed into the instruction handler rather +than expecting to perform a CPI to one specific program. Given that the callers +of your program's instruction handler can pass any program they'd like into the +instruction's list of accounts, failing to verify the address of a passed-in +program results in your program performing CPIs to arbitrary programs. This lack of program checks creates an opportunity for a malicious user to pass in a different program than expected, causing the original program to call an -instruction on this mystery program. There’s no telling what the consequences of -this CPI could be. It depends on the program logic (both that of the original -program and the unexpected program), as well as what other accounts are passed -into the original instruction. +instruction handler on this mystery program. There’s no telling what the +consequences of this CPI could be. It depends on the program logic (both that of +the original program and the unexpected program), as well as what other accounts +are passed into the original instruction handler. -### Missing program checks +### Missing Program Checks -Take the following program as an example. The `cpi` instruction invokes the -`transfer` instruction on `token_program`, but there is no code that checks -whether or not the `token_program` account passed into the instruction is, in -fact, the SPL Token Program. +Take the following program as an example. The `cpi` instruction handler invokes +the `transfer` instruction handler on `token_program`, but there is no code that +checks whether or not the `token_program` account passed into the instruction +handler is, in fact, the SPL Token Program. ```rust use anchor_lang::prelude::*; @@ -85,14 +85,14 @@ pub struct Cpi<'info> { } ``` -An attacker could easily call this instruction and pass in a duplicate token -program that they created and control. +An attacker could easily call this instruction handler and pass in a duplicate +token program that they created and control. -### Add program checks +### Add Program Checks It's possible to fix this vulnerabilty by simply adding a few lines to the `cpi` -instruction to check whether or not `token_program`'s public key is that of the -SPL Token Program. +instruction handler to check whether or not `token_program`'s public key is that +of the SPL Token Program. ```rust pub fn cpi_secure(ctx: Context, amount: u64) -> ProgramResult { @@ -117,19 +117,20 @@ pub fn cpi_secure(ctx: Context, amount: u64) -> ProgramResult { } ``` -Now, if an attacker passes in a different token program, the instruction will -return the `ProgramError::IncorrectProgramId` error. +Now, if an attacker passes in a different token program, the instruction handler +will return the `ProgramError::IncorrectProgramId` error. Depending on the program you’re invoking with your CPI, you can either hard code the address of the expected program ID or use the program’s Rust crate to get the address of the program, if available. In the example above, the `spl_token` crate provides the address of the SPL Token Program. -### Use an Anchor CPI module +### Use an Anchor CPI Module -A simpler way to manage program checks is to use Anchor CPI modules. We learned -in a -[previous lesson](https://github.com/Unboxed-Software/solana-course/blob/main/content/anchor-cpi) +A simpler way to manage program checks is to use +[Anchor CPI](https://book.anchor-lang.com/anchor_in_depth/CPIs.html) module. We +learned in a +[previous lesson of Anchor CPI](/content/courses/onchain-development/anchor-cpi.md) that Anchor can automatically generate CPI modules to make CPIs into the program simpler. These modules also enhance security by verifying the public key of the program that’s passed into one of its public instructions. @@ -182,9 +183,12 @@ impl<'info> Cpi<'info> { } ``` -Note that, like the example above, Anchor has created a few + + +Like the example above, Anchor has created a few [wrappers for popular native programs](https://github.com/coral-xyz/anchor/tree/master/spl/src) that allow you to issue CPIs into them as if they were Anchor programs. + Additionally and depending on the program you’re making the CPI to, you may be able to use Anchor’s @@ -218,10 +222,10 @@ mints, distribution, and transfers, and a separate metadata program is used to assign metadata to tokens. So the vulnerability we go through here could also be applied to real tokens. -#### 1. Setup +### 1. Setup -We'll start with the `starter` branch of -[this repository](https://github.com/Unboxed-Software/solana-arbitrary-cpi/tree/starter). +We'll start with the +[`starter` branch of this repository](https://github.com/solana-developers/arbitrary-cpi/tree/starter). Clone the repository and then open it on the `starter` branch. Notice that there are three programs: @@ -242,7 +246,7 @@ look at the program. It has two instructions: The second program, `character-metadata`, is meant to be the "approved" program for handling character metadata. Have a look at this program. It has a single -instruction for `create_metadata` that creates a new PDA and assigns a +instruction handler for `create_metadata` that creates a new PDA and assigns a pseudo-random value between 0 and 20 for the character's health and power. The last program, `fake-metadata` is a "fake" metadata program meant to @@ -250,59 +254,63 @@ illustrate what an attacker might make to exploit our `gameplay` program. This program is almost identical to the `character-metadata` program, only it assigns a character's initial health and power to be the max allowed: 255. -#### 2. Test `create_character_insecure` instruction +### 2. Test create_character_insecure Instruction Handler There is already a test in the `tests` directory for this. It's long, but take a minute to look at it before we talk through it together: ```typescript -it("Insecure instructions allow attacker to win every time", async () => { - // Initialize player one with real metadata program - await gameplayProgram.methods - .createCharacterInsecure() - .accounts({ - metadataProgram: metadataProgram.programId, - authority: playerOne.publicKey, - }) - .signers([playerOne]) - .rpc(); - - // Initialize attacker with fake metadata program - await gameplayProgram.methods - .createCharacterInsecure() - .accounts({ - metadataProgram: fakeMetadataProgram.programId, - authority: attacker.publicKey, - }) - .signers([attacker]) - .rpc(); - - // Fetch both player's metadata accounts - const [playerOneMetadataKey] = getMetadataKey( - playerOne.publicKey, - gameplayProgram.programId, - metadataProgram.programId, - ); - - const [attackerMetadataKey] = getMetadataKey( - attacker.publicKey, - gameplayProgram.programId, - fakeMetadataProgram.programId, - ); - - const playerOneMetadata = - await metadataProgram.account.metadata.fetch(playerOneMetadataKey); - - const attackerMetadata = - await fakeMetadataProgram.account.metadata.fetch(attackerMetadataKey); - - // The regular player should have health and power between 0 and 20 - expect(playerOneMetadata.health).to.be.lessThan(20); - expect(playerOneMetadata.power).to.be.lessThan(20); - - // The attacker will have health and power of 255 - expect(attackerMetadata.health).to.equal(255); - expect(attackerMetadata.power).to.equal(255); +it("Insecure instructions allow attacker to win every time successfully", async () => { + try { + // Initialize player one with real metadata program + await gameplayProgram.methods + .createCharacterInsecure() + .accounts({ + metadataProgram: metadataProgram.programId, + authority: playerOne.publicKey, + }) + .signers([playerOne]) + .rpc(); + + // Initialize attacker with fake metadata program + await gameplayProgram.methods + .createCharacterInsecure() + .accounts({ + metadataProgram: fakeMetadataProgram.programId, + authority: attacker.publicKey, + }) + .signers([attacker]) + .rpc(); + + // Fetch both player's metadata accounts + const [playerOneMetadataKey] = getMetadataKey( + playerOne.publicKey, + gameplayProgram.programId, + metadataProgram.programId, + ); + + const [attackerMetadataKey] = getMetadataKey( + attacker.publicKey, + gameplayProgram.programId, + fakeMetadataProgram.programId, + ); + + const playerOneMetadata = + await metadataProgram.account.metadata.fetch(playerOneMetadataKey); + + const attackerMetadata = + await fakeMetadataProgram.account.metadata.fetch(attackerMetadataKey); + // The regular player should have health and power between 0 and 20 + expect(playerOneMetadata.health).to.be.lessThan(20); + expect(playerOneMetadata.power).to.be.lessThan(20); + + // The attacker will have health and power of 255 + expect(attackerMetadata.health).to.equal(255); + expect(attackerMetadata.power).to.equal(255); + } catch (error) { + console.error("Test failed:", error); + throw error; + } }); ``` @@ -319,12 +327,12 @@ are each 255, making the attacker unbeatable. If you haven't already, run `anchor test` to see that this test in fact behaves as described. -#### 3. Create a `create_character_secure` instruction +### 3. Create a create_character_secure Instruction Handler -Let's fix this by creating a secure instruction for creating a new character. -This instruction should implement proper program checks and use the -`character-metadata` program's `cpi` crate to do the CPI rather than just using -`invoke`. +Let's fix this by creating a secure instruction handler for creating a new +character. This instruction handler should implement proper program checks and +use the `character-metadata` program's `cpi` crate to do the CPI rather than +just using `invoke`. If you want to test out your skills, try this on your own before moving ahead. @@ -352,7 +360,7 @@ pub struct CreateCharacterSecure<'info> { #[account( init, payer = authority, - space = 8 + 32 + 32 + 64, + space = DISCRIMINATOR_SIZE + Character::INIT_SPACE, seeds = [authority.key().as_ref()], bump )] @@ -363,25 +371,27 @@ pub struct CreateCharacterSecure<'info> { seeds::program = metadata_program.key(), bump, )] - /// CHECK: manual checks + /// CHECK: This account will not be checked by anchor pub metadata_account: AccountInfo<'info>, pub metadata_program: Program<'info, CharacterMetadata>, pub system_program: Program<'info, System>, } ``` -Lastly, we add the `create_character_secure` instruction. It will be the same as -before but will use the full functionality of Anchor CPIs rather than using -`invoke` directly: +Lastly, we add the `create_character_secure` instruction handler. It will be the +same as before but will use the full functionality of Anchor CPIs rather than +using `invoke` directly: ```rust pub fn create_character_secure(ctx: Context) -> Result<()> { + // Initialize character data let character = &mut ctx.accounts.character; character.metadata = ctx.accounts.metadata_account.key(); - character.auth = ctx.accounts.authority.key(); + character.authority = ctx.accounts.authority.key(); character.wins = 0; - let context = CpiContext::new( + // Prepare CPI context + let cpi_context = CpiContext::new( ctx.accounts.metadata_program.to_account_info(), CreateMetadata { character: ctx.accounts.character.to_account_info(), @@ -391,20 +401,21 @@ pub fn create_character_secure(ctx: Context) -> Result<() }, ); - create_metadata(context)?; + // Perform CPI to create metadata + create_metadata(cpi_context)?; Ok(()) } ``` -#### 4. Test `create_character_secure` +### 4. Test create_character_secure Instruction Handler Now that we have a secure way of initializing a new character, let's create a new test. This test just needs to attempt to initialize the attacker's character and expect an error to be thrown. ```typescript -it("Secure character creation doesn't allow fake program", async () => { +it("prevents secure character creation with fake program", async () => { try { await gameplayProgram.methods .createCharacterSecure() @@ -414,23 +425,25 @@ it("Secure character creation doesn't allow fake program", async () => { }) .signers([attacker]) .rpc(); + + throw new Error("Expected createCharacterSecure to throw an error"); } catch (error) { - expect(error); + expect(error).to.be.instanceOf(Error); console.log(error); } }); ``` Run `anchor test` if you haven't already. Notice that an error was thrown as -expected, detailing that the program ID passed into the instruction is not the -expected program ID: +expected, detailing that the program ID passed into the instruction handler is +not the expected program ID: ```bash 'Program log: AnchorError caused by account: metadata_program. Error Code: InvalidProgramId. Error Number: 3008. Error Message: Program ID was not as expected.', 'Program log: Left:', -'Program log: FKBWhshzcQa29cCyaXc1vfkZ5U985gD5YsqfCzJYUBr', +'Program log: HQqG7PxftCD5BB9WUWcYksrjDLUwCmbV8Smh1W8CEgQm', 'Program log: Right:', -'Program log: D4hPnYEsAx4u3EQMrKEXsY3MkfLndXbBKTEYTwwm25TE' +'Program log: 4FgVd2dgsFnXbSHz8fj9twNbfx8KWcBJkHa6APicU6KS' ``` That's all you need to do to protect against arbitrary CPIs! @@ -440,8 +453,7 @@ certainly won't stop you from architecting the program you need, but please take every precaution possible to ensure no vulnerabilities in your program. If you want to take a look at the final solution code you can find it on the -`solution` branch of -[the same repository](https://github.com/Unboxed-Software/solana-arbitrary-cpi/tree/solution). +[`solution` branch of the same repository](https://github.com/solana-developers/arbitrary-cpi/tree/solution). ## Challenge @@ -449,13 +461,14 @@ Just as with other lessons in this unit, your opportunity to practice avoiding this security exploit lies in auditing your own or other programs. Take some time to review at least one program and ensure that program checks are -in place for every program passed into the instructions, particularly those that -are invoked via CPI. +in place for every program passed into the instruction handlers, particularly +those that are invoked via CPI. Remember, if you find a bug or exploit in somebody else's program, please alert them! If you find one in your own program, be sure to patch it right away. + Push your code to GitHub and [tell us what you thought of this lesson](https://form.typeform.com/to/IPH0UGz7#answers-lesson=5bcaf062-c356-4b58-80a0-12cca99c29b0)! From 92d59602a1a1d4434220e846422dd83ef776a49a Mon Sep 17 00:00:00 2001 From: Abhi <40645221+AbhisekBasu1@users.noreply.github.com> Date: Tue, 17 Sep 2024 05:36:53 +0530 Subject: [PATCH 047/206] Fix a typo in anchor-pdas.md (#486) PDAs store data, at addressed specified by the onchain programmer, using a list of seeds, a bump seed, and a program ID. Addressed should instead be "addresses". --- content/courses/onchain-development/anchor-pdas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/courses/onchain-development/anchor-pdas.md b/content/courses/onchain-development/anchor-pdas.md index a20e1e8ed..9f7d80ecb 100644 --- a/content/courses/onchain-development/anchor-pdas.md +++ b/content/courses/onchain-development/anchor-pdas.md @@ -35,7 +35,7 @@ handle PDAs, reallocate space, and close accounts. ### PDAs with Anchor -PDAs store data, at addressed specified by the onchain programmer, using a list +PDAs store data, at addresses specified by the onchain programmer, using a list of seeds, a bump seed, and a program ID. Anchor provides a convenient way to validate a PDA with the `seeds` and `bump` From 71dbc9a68362e5769b72da84b3ffd139719ad950 Mon Sep 17 00:00:00 2001 From: 0xCipherCoder Date: Tue, 17 Sep 2024 06:18:20 +0530 Subject: [PATCH 048/206] Program security - Signer auth lesson updated (#432) * Added init changes * Added content and updated style with grammar * Updated content and snippet to follow guidelines * Added test cases and code snippets * Fixed updated test case structure * Fixed updated test case structure * Resolved comments for content and updated links --- .../courses/program-security/signer-auth.md | 463 ++++++++++-------- 1 file changed, 251 insertions(+), 212 deletions(-) diff --git a/content/courses/program-security/signer-auth.md b/content/courses/program-security/signer-auth.md index ab0d6a7be..897291264 100644 --- a/content/courses/program-security/signer-auth.md +++ b/content/courses/program-security/signer-auth.md @@ -1,61 +1,61 @@ --- title: Signer Authorization objectives: - - Explain the security risks associated with not performing appropriate signer - checks - - Implement signer checks using long-form Rust + - Explain the security risks of not performing appropriate signer checks. + - Implement signer checks using native Rust - Implement signer checks using Anchor’s `Signer` type - Implement signer checks using Anchor’s `#[account(signer)]` constraint description: - "Ensure instructions are only ran by authorized accounts by implmementing - Signer checks." + "Ensure instructions are only executed by authorized accounts by implementing + signer checks." --- ## Summary -- Use **Signer Checks** to verify that specific accounts have signed a - transaction. Without appropriate signer checks, accounts may be able to - execute instructions they shouldn’t be authorized to perform. -- To implement a signer check in Rust, simply check that an account’s - `is_signer` property is `true` +- **Signer Checks** are essential to verify that specific accounts have signed a + transaction. Without proper signer checks, unauthorized accounts may execute + instructions they shouldn't be allowed to perform. +- In Anchor, you can use the `Signer` account type in your account validation + struct to automatically perform a signer check on a given account. +- Anchor also provides the + [`#[account(signer)]`](https://www.anchor-lang.com/docs/account-constraints) + constraint, which automatically verifies that a specified account has signed + the transaction. +- In native Rust, implement a signer check by verifying that an account's + `is_signer` property is `true`: + ```rust if !ctx.accounts.authority.is_signer { - return Err(ProgramError::MissingRequiredSignature.into()); + return Err(ProgramError::MissingRequiredSignature.into()); } ``` -- In Anchor, you can use the **`Signer`** account type in your account - validation struct to have Anchor automatically perform a signer check on a - given account -- Anchor also has an account constraint that will automatically verify that a - given account has signed a transaction ## Lesson -Signer checks are used to verify that a given account’s owner has authorized a -transaction. Without a signer check, operations whose execution should be -limited to only specific accounts can potentially be performed by any account. -In the worst case scenario, this could result in wallets being completely -drained by attackers passing in whatever account they want to an instruction. - -#### Missing Signer Check +**Signer checks** ensure that only authorized accounts can execute specific +instructions. Without these checks, any account might perform operations that +should be restricted, potentially leading to severe security vulnerabilities, +such as unauthorized access and control over program accounts. -The example below shows an oversimplified version of an instruction that updates -the `authority` field stored on a program account. +### Missing Signer Check -Notice that the `authority` field on the `UpdateAuthority` account validation -struct is of type `AccountInfo`. In Anchor, the `AccountInfo` account type -indicates that no checks are performed on the account prior to instruction -execution. +Below is an oversimplified instruction handler that updates the `authority` +field on a program account. Notice that the `authority` field in the +`UpdateAuthority` account validation struct is of type `UncheckedAccount`. In +Anchor, the +[`UncheckedAccount`](https://docs.rs/anchor-lang/latest/anchor_lang/accounts/unchecked_account/struct.UncheckedAccount.html) +type indicates that no checks are performed on the account before executing the +instruction handler. -Although the `has_one` constraint is used to validate the `authority` account -passed into the instruction matches the `authority` field stored on the `vault` -account, there is no check to verify the `authority` account authorized the +Although the `has_one` constraint ensures that the `authority` account passed to +the instruction handler matches the `authority` field on the `vault` account, +there is no verification that the `authority` account actually authorized the transaction. -This means an attacker can simply pass in the public key of the `authority` -account and their own public key as the `new_authority` account to reassign -themselves as the new authority of the `vault` account. At that point, they can -interact with the program as the new authority. +This omission allows an attacker to pass in the `authority` account’s public key +and their own public key as the `new_authority` account, effectively reassigning +themselves as the new authority of the `vault` account. Once they have control, +they can interact with the program as the new authority. ```rust use anchor_lang::prelude::*; @@ -79,8 +79,10 @@ pub struct UpdateAuthority<'info> { has_one = authority )] pub vault: Account<'info, Vault>, - pub new_authority: AccountInfo<'info>, - pub authority: AccountInfo<'info>, + /// CHECK: This account will not be checked by Anchor + pub new_authority: UncheckedAccount<'info>, + /// CHECK: This account will not be checked by Anchor + pub authority: UncheckedAccount<'info>, } #[account] @@ -90,23 +92,20 @@ pub struct Vault { } ``` -#### Add signer authorization checks +### Adding Signer Authorization Checks -All you need to do to validate that the `authority` account signed is to add a -signer check within the instruction. That simply means checking that -`authority.is_signer` is `true`, and returning a `MissingRequiredSignature` -error if `false`. +To validate that the `authority` account signed the transaction, add a signer +check within the instruction handler: -```typescript +```rust if !ctx.accounts.authority.is_signer { return Err(ProgramError::MissingRequiredSignature.into()); } ``` -By adding a signer check, the instruction would only process if the account -passed in as the `authority` account also signed the transaction. If the -transaction was not signed by the account passed in as the `authority` account, -then the transaction would fail. +By adding this check, the instruction handler will only proceed if the +`authority` account has signed the transaction. If the account is not signed, +the transaction will fail. ```rust use anchor_lang::prelude::*; @@ -134,8 +133,10 @@ pub struct UpdateAuthority<'info> { has_one = authority )] pub vault: Account<'info, Vault>, - pub new_authority: AccountInfo<'info>, - pub authority: AccountInfo<'info>, + /// CHECK: This account will not be checked by Anchor + pub new_authority: UncheckedAccount<'info>, + /// CHECK: This account will not be checked by Anchor + pub authority: UncheckedAccount<'info>, } #[account] @@ -145,20 +146,15 @@ pub struct Vault { } ``` -#### Use Anchor’s `Signer` account type - -However, putting this check into the instruction function muddles the separation -between account validation and instruction logic. +### Use Anchor’s Signer Account Type -Fortunately, Anchor makes it easy to perform signer checks by providing the -`Signer` account type. Simply change the `authority` account’s type in the -account validation struct to be of type `Signer`, and Anchor will check at -runtime that the specified account is a signer on the transaction. This is the -approach we generally recommend since it allows you to separate the signer check -from instruction logic. - -In the example below, if the `authority` account does not sign the transaction, -then the transaction will fail before even reaching the instruction logic. +Incorporating the +[`signer`](https://docs.rs/anchor-lang/latest/anchor_lang/accounts/signer/struct.Signer.html) +check directly within the instruction handler logic can blur the separation +between account validation and instruction handler execution. To maintain this +separation, use Anchor's `Signer` account type. By changing the `authority` +account's type to `Signer` in the validation struct, Anchor automatically checks +at runtime that the specified account signed the transaction. ```rust use anchor_lang::prelude::*; @@ -182,7 +178,8 @@ pub struct UpdateAuthority<'info> { has_one = authority )] pub vault: Account<'info, Vault>, - pub new_authority: AccountInfo<'info>, + /// CHECK: This account will not be checked by Anchor + pub new_authority: UncheckedAccount<'info>, pub authority: Signer<'info>, } @@ -193,33 +190,27 @@ pub struct Vault { } ``` -Note that when you use the `Signer` type, no other ownership or type checks are + +When you use the `Signer` type, no other ownership or type checks are performed. + -#### Use Anchor’s `#[account(signer)]` constraint - -While in most cases, the `Signer` account type will suffice to ensure an account -has signed a transaction, the fact that no other ownership or type checks are -performed means that this account can’t really be used for anything else in the -instruction. - -This is where the `signer` _constraint_ comes in handy. The `#[account(signer)]` -constraint allows you to verify the account signed the transaction, while also -getting the benefits of using the `Account` type if you wanted access to it’s -underlying data as well. - -As an example of when this would be useful, imagine writing an instruction that -you expect to be invoked via CPI that expects one of the passed in accounts to -be both a **\*\***signer**\*\*** on the transaciton and a \***\*\*\*\*\*\***data -source\***\*\*\*\*\*\***. Using the `Signer` account type here removes the -automatic deserialization and type checking you would get with the `Account` -type. This is both inconvenient, as you need to manually deserialize the account -data in the instruction logic, and may make your program vulnerable by not -getting the ownership and type checking performed by the `Account` type. - -In the example below, you can safely write logic to interact with the data -stored in the `authority` account while also verifying that it signed the -transaction. +### Using Anchor’s `#[account(signer)]` Constraint + +While the `Signer` account type is useful, it doesn't perform other ownership or +type checks, limiting its use in instruction handler logic. The +[anchor's `#[account(signer)]`](https://www.anchor-lang.com/docs/account-constraints) +constraint addresses this by verifying that the account signed the transaction +while allowing access to its underlying data. + +For example, if you expect an account to be both a signer and a data source, +using the `Signer` type would require manual deserialization, and you wouldn't +benefit from automatic ownership and type checking. Instead, the +`#[account(signer)]` constraint allows you to access the data and ensure the +account signed the transaction. + +In this example, you can safely interact with the data stored in the `authority` +account while ensuring that it signed the transaction. ```rust use anchor_lang::prelude::*; @@ -246,7 +237,8 @@ pub struct UpdateAuthority<'info> { has_one = authority )] pub vault: Account<'info, Vault>, - pub new_authority: AccountInfo<'info>, + /// CHECK: This account will not be checked by Anchor + pub new_authority: UncheckedAccount<'info>, #[account(signer)] pub authority: Account<'info, AuthState> } @@ -258,52 +250,53 @@ pub struct Vault { } #[account] pub struct AuthState{ - amount: u64, - num_depositors: u64, - num_vaults: u64 + amount: u64, + num_depositors: u64, + num_vaults: u64 } ``` ## Lab -Let’s practice by creating a simple program to demonstrate how a missing signer -check can allow an attacker to withdraw tokens that don’t belong to them. +In this lab, we'll create a simple program to demonstrate how a missing signer +check can allow an attacker to withdraw tokens that don't belong to them. This +program initializes a simplified token `vault` account and shows how the absence +of a signer check could result in the vault being drained. -This program initializes a simplified token “vault” account and demonstrates how -a missing signer check could allow the vault to be drained. +### 1. Starter -#### 1. Starter +To get started, download the starter code from the +[`starter` branch of this repository](https://github.com/solana-developers/signer-auth/tree/starter). +The starter code includes a program with two instruction handlers and the +boilerplate setup for the test file. -To get started, download the starter code from the `starter` branch of -[this repository](https://github.com/Unboxed-Software/solana-signer-auth/tree/starter). The -starter code includes a program with two instructions and the boilerplate setup -for the test file. +The `initialize_vault` instruction handler sets up two new accounts: `Vault` and +`TokenAccount`. The `Vault` account is initialized using a Program Derived +Address (PDA) and stores the address of a token account and the vault's +authority. The `vault` PDA will be the authority of the token account, enabling +the program to sign off on token transfers. -The `initialize_vault` instruction initializes two new accounts: `Vault` and -`TokenAccount`. The `Vault` account will be initialized using a Program Derived -Address (PDA) and store the address of a token account and the authority of the -vault. The authority of the token account will be the `vault` PDA which enables -the program to sign for the transfer of tokens. - -The `insecure_withdraw` instruction will transfer tokens in the `vault` +The `insecure_withdraw` instruction handler transfers tokens from the `vault` account’s token account to a `withdraw_destination` token account. However, the -`authority` account in the `InsecureWithdraw` struct has a type of -`UncheckedAccount`. This is a wrapper around `AccountInfo` to explicitly -indicate the account is unchecked. +`authority` account in the `InsecureWithdraw` struct is of type +`UncheckedAccount`, a wrapper around `AccountInfo` that explicitly indicates the +account is unchecked. -Without a signer check, anyone can simply provide the public key of the -`authority` account that matches `authority` stored on the `vault` account and -the `insecure_withdraw` instruction would continue to process. +Without a signer check, anyone can provide the public key of the `authority` +account that matches the `authority` stored on the `vault` account, and the +`insecure_withdraw` instruction handler will continue processing. -While this is somewhat contrived in that any DeFi program with a vault would be -more sophisticated than this, it will show how the lack of a signer check can -result in tokens being withdrawn by the wrong party. +Although this example is somewhat contrived, as any DeFi program with a vault +would be more sophisticated, it effectively illustrates how the lack of a signer +check can lead to unauthorized token withdrawals. ```rust use anchor_lang::prelude::*; use anchor_spl::token::{self, Mint, Token, TokenAccount}; -declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"); +declare_id!("FeKh59XMh6BcN6UdekHnaFHsNH9NVE121GgDzSyYPKKS"); + +pub const DISCRIMINATOR_SIZE: usize = 8; #[program] pub mod signer_authorization { @@ -318,7 +311,7 @@ pub mod signer_authorization { pub fn insecure_withdraw(ctx: Context) -> Result<()> { let amount = ctx.accounts.token_account.amount; - let seeds = &[b"vault".as_ref(), &[*ctx.bumps.get("vault").unwrap()]]; + let seeds = &[b"vault".as_ref(), &[ctx.bumps.vault]]; let signer = [&seeds[..]]; let cpi_ctx = CpiContext::new_with_signer( @@ -341,7 +334,7 @@ pub struct InitializeVault<'info> { #[account( init, payer = authority, - space = 8 + 32 + 32, + space = DISCRIMINATOR_SIZE + Vault::INIT_SPACE, seeds = [b"vault"], bump )] @@ -380,73 +373,91 @@ pub struct InsecureWithdraw<'info> { } #[account] +#[derive(Default, InitSpace)] pub struct Vault { token_account: Pubkey, authority: Pubkey, } ``` -#### 2. Test `insecure_withdraw` instruction +### 2. Test insecure_withdraw Instruction Handler -The test file includes the code to invoke the `initialize_vault` instruction -using `wallet` as the `authority` on the vault. The code then mints 100 tokens -to the `vault` token account. Theoretically, the `wallet` key should be the only -one that can withdraw the 100 tokens from the vault. +The test file includes code to invoke the `initialize_vault` instruction +handler, using `walletAuthority` as the `authority` on the vault. The code then +mints 100 tokens to the `vaultTokenAccount` token account. Ideally, only the +`walletAuthority` key should be able to withdraw these 100 tokens from the +vault. -Now, let’s add a test to invoke `insecure_withdraw` on the program to show that -the current version of the program allows a third party to in fact withdraw -those 100 tokens. +Next, we'll add a test to invoke `insecure_withdraw` on the program to +demonstrate that the current version allows a third party to withdraw those 100 +tokens. -In the test, we’ll still use the public key of `wallet` as the `authority` -account, but we’ll use a different keypair to sign and send the transaction. +In the test, we'll use the `walletAuthority` public key as the `authority` +account but sign and send the transaction with a different keypair. ```typescript -describe("signer-authorization", () => { +describe("Signer Authorization", () => { ... - it("Insecure withdraw", async () => { - const tx = await program.methods - .insecureWithdraw() - .accounts({ - vault: vaultPDA, - tokenAccount: tokenAccount.publicKey, - withdrawDestination: withdrawDestinationFake, - authority: wallet.publicKey, - }) - .transaction() - - await anchor.web3.sendAndConfirmTransaction(connection, tx, [walletFake]) - - const balance = await connection.getTokenAccountBalance( - tokenAccount.publicKey - ) - expect(balance.value.uiAmount).to.eq(0) - }) + it("performs insecure withdraw", async () => { + try { + const transaction = await program.methods + .insecureWithdraw() + .accounts({ + vault: vaultPDA, + tokenAccount: vaultTokenAccount.publicKey, + withdrawDestination: unauthorizedWithdrawDestination, + authority: walletAuthority.publicKey, + }) + .transaction(); + + await anchor.web3.sendAndConfirmTransaction(connection, transaction, [ + unauthorizedWallet, + ]); + + const tokenAccountInfo = await getAccount( + connection, + vaultTokenAccount.publicKey + ); + expect(Number(tokenAccountInfo.amount)).to.equal(0); + } catch (error) { + console.error("Insecure withdraw failed:", error); + throw error; + } + }); }) ``` -Run `anchor test` to see that both transactions will complete successfully. +Run `anchor test` to confirm that both transactions will be completed +successfully. ```bash -signer-authorization - ✔ Initialize Vault (810ms) - ✔ Insecure withdraw (405ms) +Signer Authorization + ✔ initializes vault and mints tokens (882ms) + ✔ performs insecure withdraw (435ms) ``` -Since there is no signer check for the `authority` account, the -`insecure_withdraw` instruction will transfer tokens from the `vault` token -account to the `withdrawDestinationFake` token account as long as the public key -of the`authority` account matches the public key stored on the authority field -of the `vault` account. Clearly, the `insecure_withdraw` instruction is as -insecure as the name suggests. - -#### 3. Add `secure_withdraw` instruction - -Let’s fix the problem in a new instruction called `secure_withdraw`. This -instruction will be identical to the `insecure_withdraw` instruction, except -we’ll use the `Signer` type in the Accounts struct to validate the `authority` -account in the `SecureWithdraw` struct. If the `authority` account is not a -signer on the transaction, then we expect the transaction to fail and return an -error. +The `insecure_withdraw` instruction handler demonstrates a security +vulnerability. Since there is no signer check for the `authority` account, this +handler will transfer tokens from the `vaultTokenAccount` to the +`unauthorizedWithdrawDestination`, as long as the public key of the `authority` +account matches the `walletAuthority.publicKey` stored in the `vault` account's +`authority` field. + +In the test, we use the `unauthorizedWallet` to sign the transaction, while +still specifying the `walletAuthority.publicKey` as the authority in the +instruction accounts. This mismatch between the signer and the specified +`authority` would normally cause a transaction to fail. However, due to the lack +of a proper signer check in the `insecure_withdraw` handler, the transaction +succeeds. + +### 3. Add secure_withdraw Instruction Handler + +To fix this issue, we'll create a new instruction handler called +`secure_withdraw`. This instruction handler will be identical to +`insecure_withdraw`, but we'll use the `Signer` type in the Accounts struct to +validate the authority account in the `SecureWithdraw` struct. If the +`authority` account isn't a signer on the transaction, the transaction should +fail with an error. ```rust use anchor_lang::prelude::*; @@ -461,7 +472,7 @@ pub mod signer_authorization { pub fn secure_withdraw(ctx: Context) -> Result<()> { let amount = ctx.accounts.token_account.amount; - let seeds = &[b"vault".as_ref(), &[*ctx.bumps.get("vault").unwrap()]]; + let seeds = &[b"vault".as_ref(), &[ctx.bumps.vault]]; let signer = [&seeds[..]]; let cpi_ctx = CpiContext::new_with_signer( @@ -497,73 +508,101 @@ pub struct SecureWithdraw<'info> { } ``` -#### 4. Test `secure_withdraw` instruction +### 4. Test secure_withdraw Instruction Handler + +With the new instruction handler in place, return to the test file to test the +`secureWithdraw` instruction handler. Invoke the `secureWithdraw` instruction +handler, using the `walletAuthority.publicKey` as the `authority` account, and +use the `unauthorizedWallet` keypair as the signer. Set the +`unauthorizedWithdrawDestination` as the withdraw destination. -With the instruction in place, return to the test file to test the -`secure_withdraw` instruction. Invoke the `secure_withdraw` instruction, again -using the public key of `wallet` as the `authority` account and the -`withdrawDestinationFake` keypair as the signer and withdraw destination. Since -the `authority` account is validated using the `Signer` type, we expect the -transaction to fail the signer check and return an error. +Since the `authority` account is validated using the `Signer` type, the +transaction should fail with a signature verification error. This is because the +`unauthorizedWallet` is attempting to sign the transaction, but it doesn't match +the `authority` specified in the instruction (which is +`walletAuthority.publicKey`). + +The test expects this transaction to fail, demonstrating that the secure +withdraw function properly validates the signer. If the transaction unexpectedly +succeeds, the test will throw an error indicating that the expected security +check did not occur. ```typescript -describe("signer-authorization", () => { +describe("Signer Authorization", () => { ... - it("Secure withdraw", async () => { + it("fails to perform secure withdraw with incorrect signer", async () => { try { - const tx = await program.methods + const transaction = await program.methods .secureWithdraw() .accounts({ vault: vaultPDA, - tokenAccount: tokenAccount.publicKey, - withdrawDestination: withdrawDestinationFake, - authority: wallet.publicKey, + tokenAccount: vaultTokenAccount.publicKey, + withdrawDestination: unauthorizedWithdrawDestination, + authority: walletAuthority.publicKey, }) - .transaction() - - await anchor.web3.sendAndConfirmTransaction(connection, tx, [walletFake]) - } catch (err) { - expect(err) - console.log(err) + .transaction(); + + await anchor.web3.sendAndConfirmTransaction(connection, transaction, [ + unauthorizedWallet, + ]); + throw new Error("Expected transaction to fail, but it succeeded"); + } catch (error) { + expect(error).to.be.an("error"); + console.log("Error message:", error.message); } - }) + }); }) ``` -Run `anchor test` to see that the transaction will now return a signature +Run `anchor test` to see that the transaction now returns a signature verification error. ```bash -Error: Signature verification failed +signer-authorization +Error message: Signature verification failed. +Missing signature for public key [`GprrWv9r8BMxQiWea9MrbCyK7ig7Mj8CcseEbJhDDZXM`]. + ✔ fails to perform secure withdraw with incorrect signer ``` -That’s it! This is a fairly simple thing to avoid, but incredibly important. -Make sure to always think through who should who should be authorizing -instructions and make sure that each is a signer on the transaction. +This example shows how important it is to think through who should authorize +instructions and ensure that each is a signer on the transaction. -If you want to take a look at the final solution code you can find it on the -`solution` branch of -[the repository](https://github.com/Unboxed-Software/solana-signer-auth/tree/solution). +To review the final solution code, you can find it on the +[`solution` branch of the repository](https://github.com/solana-developers/signer-auth/tree/solution). ## Challenge -At this point in the course, we hope you've started to work on programs and -projects outside the labs and Challenges provided in these lessons. For this and -the remainder of the lessons on security vulnerabilities, the Challenge for each -lesson will be to audit your own code for the security vulnerability discussed -in the lesson. +Now that you've worked through the labs and challenges in this course, it's time +to apply your knowledge in a practical setting. For this challenge and those +that follow on security vulnerabilities, audit your own programs for the +specific vulnerability discussed in each lesson. + +### Steps -Alternatively, you can find open source programs to audit. There are plenty of -programs you can look at. A good start if you don't mind diving into native Rust -would be the -[SPL programs](https://github.com/solana-labs/solana-program-library). +1. **Audit Your Program or Find an Open Source Project**: -So for this lesson, take a look at a program (whether yours or one you've found -online) and audit it for signer checks. If you find a bug in somebody else's -program, please alert them! If you find a bug in your own program, be sure to -patch it right away. + - Begin by auditing your own code for missing signer checks, or find an open + source Solana program to audit. A great place to start is with the + [program examples](https://github.com/solana-developers/program-examples) + repository. + +2. **Look for Signer Check Issues**: + + - Focus on instruction handlers where signer authorization is crucial, + especially those that transfer tokens or modify sensitive account data. + - Review the program for any `UncheckedAccount` types where signer validation + should be enforced. + - Ensure that any accounts that should require user authorization are defined + as `Signer` in the instruction handler. + +3. **Patch or Report**: + - If you find a bug in your own code, fix it by using the `Signer` type for + accounts that require signer validation. + - If the issue exists in an open source project, notify the project + maintainers or submit a pull request. -Push your code to GitHub and + +After completing the challenge, push your code to GitHub and [tell us what you thought of this lesson](https://form.typeform.com/to/IPH0UGz7#answers-lesson=26b3f41e-8241-416b-9cfa-05c5ab519d80)! From 8acc91a32ab8a777991197b927cc54edbaa741ef Mon Sep 17 00:00:00 2001 From: 0xCipherCoder Date: Tue, 17 Sep 2024 06:23:51 +0530 Subject: [PATCH 049/206] Program security - Updated reinitialization-attacks lesson (#406) * Added updated readme with code, content, grammar and style * Fixed grammars * Fixed missing keywords and links * Update content/courses/program-security/reinitialization-attacks.md Co-authored-by: Mike MacCana * Update content/courses/program-security/reinitialization-attacks.md Co-authored-by: Mike MacCana * Update content/courses/program-security/reinitialization-attacks.md Co-authored-by: Mike MacCana * Updated new repository urls * Updated content as per starter and solution and guidelines --------- Co-authored-by: Mike MacCana --- .../reinitialization-attacks.md | 539 ++++++++++-------- 1 file changed, 292 insertions(+), 247 deletions(-) diff --git a/content/courses/program-security/reinitialization-attacks.md b/content/courses/program-security/reinitialization-attacks.md index ae148a74a..715e6cfe8 100644 --- a/content/courses/program-security/reinitialization-attacks.md +++ b/content/courses/program-security/reinitialization-attacks.md @@ -2,10 +2,10 @@ title: Reinitialization Attacks objectives: - Explain security risks associated with a reinitialization vulnerability - - Use long-form Rust check if an account has already been initialized - - Using Anchor’s `init` constraint to initialize accounts, which automatically + - Using Anchor's `init` constraint to initialize accounts, which automatically sets an account discriminator that is checked to prevent the reinitialization of an account + - Use native Rust to check if an account has already been initialized description: "Understand the security risks of account reinitialized attacks being used to override data, and how to prevent them." @@ -13,83 +13,73 @@ description: ## Summary -- Use an account discriminator or initialization flag to check whether an - account has already been initialized to prevent an account from being - reinitialized and overriding existing account data. -- To prevent account reinitialization in plain Rust, initialize accounts with an - `is_initialized` flag and check if it has already been set to true when - initializing an account +- **Prevent Account Reinitialization:** Use an account discriminator or + initialization flag to prevent an account from being reinitialized and + overwriting existing data. +- **Anchor Approach:** Simplify this by using Anchor's `init` constraint to + create an account via a CPI to the system program, automatically setting its + discriminator. +- **Native Rust Approach:** In native Rust, set an is_initialized flag during + account initialization and check it before reinitializing: + ```rust if account.is_initialized { return Err(ProgramError::AccountAlreadyInitialized.into()); } ``` -- To simplify this, use Anchor’s `init` constraint to create an account via a - CPI to the system program and sets its discriminator ## Lesson -Initialization refers to setting the data of a new account for the first time. -When initializing a new account, you should implement a way to check if the -account has already been initialized. Without an appropriate check, an existing -account could be reinitialized and have existing data overwritten. - -Note that initializing an account and creating an account are two separate -instructions. Creating an account requires invoking the `create_account` -instruction on the System Program which specifies the space required for the -account, the rent in lamports allocated to the account, and the program owner of -the account. Initialization is an instruction that sets the data of a newly -created account. Creating and initializing an account can be combined into a -single transaction. +Initialization sets the data of a new account for the first time. It's essential +to check if an account has already been initialized to prevent overwriting +existing data. Note that creating and initializing an account are separate +actions. Creating an account involves invoking the `create_account` instruction +handler on the System Program, which allocates space, rent in lamports, and +assigns the program owner. Initialization sets the account data. These steps can +be combined into a single transaction. -#### Missing Initialization Check +### Missing Initialization Check -In the example below, there are no checks on the `user` account. The -`initialize` instruction deserializes the data of the `user` account as a `User` -account type, sets the `authority` field, and serializes the updated account -data to the `user` account. - -Without checks on the `user` account, the same account could be passed into the -`initialize` instruction a second time by another party to overwrite the -existing `authority` stored on the account data. +In the example below, there's no check on the `user` account. The `initialize` +instruction handler sets the `authority` field on the `User` account type and +serializes the data. Without checks, an attacker could reinitialize the account, +overwriting the existing `authority`. ```rust use anchor_lang::prelude::*; -use borsh::{BorshDeserialize, BorshSerialize}; declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"); #[program] -pub mod initialization_insecure { +pub mod initialization_insecure { use super::*; pub fn initialize(ctx: Context) -> Result<()> { - let mut user = User::try_from_slice(&ctx.accounts.user.data.borrow()).unwrap(); - user.authority = ctx.accounts.authority.key(); - user.serialize(&mut *ctx.accounts.user.data.borrow_mut())?; + ctx.accounts.user.authority = ctx.accounts.authority.key(); Ok(()) } } #[derive(Accounts)] pub struct Initialize<'info> { - #[account(mut)] - user: AccountInfo<'info>, #[account(mut)] - authority: Signer<'info>, + pub user: Account<'info, User>, + #[account(mut)] + pub authority: Signer<'info>, + pub system_program: Program<'info, System>, } -#[derive(BorshSerialize, BorshDeserialize)] +#[account] +#[derive(InitSpace)] pub struct User { - authority: Pubkey, + pub authority: Pubkey, } ``` -#### Add `is_initialized` check +### Add is_initialized Check -One approach to fix this is to add an additional `is_initialized` field to the -`User` account type and use it as a flag to check if an account has already been -initialized. +To fix this, add an `is_initialized` field to the User account type and check it +before reinitializing: ```rust if user.is_initialized { @@ -97,15 +87,13 @@ if user.is_initialized { } ``` -By including a check within the `initialize` instruction, the `user` account -would only be initialized if the `is_initialized` field has not yet been set to -true. If the `is_initialized` field was already set, the transaction would fail, -thereby avoiding the scenario where an attacker could replace the account -authority with their own public key. +This ensures the `user` account is only initialized once. If `is_initialized` is +true, the transaction fails, preventing an attacker from changing the account +authority. ```rust use anchor_lang::prelude::*; -use borsh::{BorshDeserialize, BorshSerialize}; +use anchor_lang::solana_program::program_error::ProgramError; declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"); @@ -114,140 +102,137 @@ pub mod initialization_secure { use super::*; pub fn initialize(ctx: Context) -> Result<()> { - let mut user = User::try_from_slice(&ctx.accounts.user.data.borrow()).unwrap(); + let user = &mut ctx.accounts.user; + if user.is_initialized { return Err(ProgramError::AccountAlreadyInitialized.into()); } - user.authority = ctx.accounts.authority.key(); user.is_initialized = true; + user.authority = ctx.accounts.authority.key(); - user.serialize(&mut *ctx.accounts.user.data.borrow_mut())?; Ok(()) } } #[derive(Accounts)] pub struct Initialize<'info> { - #[account(mut)] - user: AccountInfo<'info>, #[account(mut)] - authority: Signer<'info>, + pub user: Account<'info, User>, + #[account(mut)] + pub authority: Signer<'info>, + pub system_program: Program<'info, System>, } -#[derive(BorshSerialize, BorshDeserialize)] +#[account] +#[derive(InitSpace)] pub struct User { - is_initialized: bool, - authority: Pubkey, + pub is_initialized: bool, + pub authority: Pubkey, } ``` -#### Use Anchor’s `init` constraint - -Anchor provides an `init` constraint that can be used with the `#[account(...)]` -attribute to initialize an account. The `init` constraint creates the account -via a CPI to the system program and sets the account discriminator. +### Use Anchor's init Constraint -The `init` constraint must be used in combination with the `payer` and `space` -constraints. The `payer` specifies the account paying for the initialization of -the new account. The `space` specifies the amount of space the new account -requires, which determines the amount of lamports that must be allocated to the -account. The first 8 bytes of data is set as a discriminator that Anchor -automatically adds to identify the account type. - -Most importantly for this lesson, the `init` constraint ensures that this -instruction can only be called once per account, so you can set the initial -state of the account in the instruction logic and not have to worry about an -attacker trying to reinitialize the account. +[Anchor's `init` constraint](https://www.anchor-lang.com/docs/account-constraints), +used with the `#[account(...)]` attribute, initializes an account, sets the +account discriminator, and ensures that the instruction handler can only be +called once per account. The `init` constraint must be used with `payer` and +`space` constraints to specify the account paying for initialization and the +amount of space required. ```rust use anchor_lang::prelude::*; declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"); +const DISCRIMINATOR_SIZE: usize = 8; + #[program] pub mod initialization_recommended { use super::*; - pub fn initialize(_ctx: Context) -> Result<()> { + pub fn initialize(ctx: Context) -> Result<()> { msg!("GM"); + ctx.accounts.user.authority = ctx.accounts.authority.key(); Ok(()) } } #[derive(Accounts)] pub struct Initialize<'info> { - #[account(init, payer = authority, space = 8+32)] - user: Account<'info, User>, + #[account( + init, + payer = authority, + space = DISCRIMINATOR_SIZE + User::INIT_SPACE + )] + pub user: Account<'info, User>, #[account(mut)] - authority: Signer<'info>, - system_program: Program<'info, System>, + pub authority: Signer<'info>, + pub system_program: Program<'info, System>, } #[account] +#[derive(InitSpace)] pub struct User { - authority: Pubkey, + pub authority: Pubkey, } ``` -#### Anchor’s `init_if_needed` constraint +#### Anchor's init_if_needed Constraint -It’s worth noting that Anchor has an `init_if_needed` constraint. This -constraint should be used very cautiously. In fact, it is blocked behind a -feature flag so that you are forced to be intentional about using it. + -The `init_if_needed` constraint does the same thing as the `init` constraint, -only if the account has already been initialized the instruction will still run. - -Given this, it’s \***\*\*\*\***extremely\***\*\*\*\*** important that when you -use this constraint you include checks to avoid resetting the account to its -initial state. - -For example, if the account stores an `authority` field that gets set in the -instruction using the `init_if_needed` constraint, you need checks that ensure -that no attacker could call the instruction after it has already been -initialized and have the `authority` field set again. +[Anchor's `init_if_needed` constraint](https://www.anchor-lang.com/docs/account-constraints), +guarded by a feature flag, should be used with caution.It initializes an account +only if it hasn't been initialized yet. If the account is already initialized, +the instruction handler will still execute, so +it's \***\*\*\*\***extremely\***\*\*\*\*** important to include checks in your +instruction handler to prevent resetting the account to its initial state. + -In most cases, it’s safer to have a separate instruction for initializing -account data. +For example, if the `authority` field is set in the instruction handler, ensure +that your instruction handler includes checks to prevent an attacker from +reinitializing it after it's already been set. Typically, it's safer to have a +separate instruction handler for initializing account data. ## Lab -For this lab we’ll create a simple program that does nothing but initialize -accounts. We’ll include two instructions: +In this lab, we'll create a simple Solana program with two instruction handlers: -- `insecure_initialization` - initializes an account that can be reinitialized -- `recommended_initialization` - initialize an account using Anchor’s `init` - constraint +- `insecure_initialization` - Initializes an account without checks, allowing + reinitialization. +- `recommended_initialization` - Initializes an account using Anchor's `init` + constraint, preventing reinitialization. -#### 1. Starter +### 1. Starter -To get started, download the starter code from the `starter` branch of -[this repository](https://github.com/Unboxed-Software/solana-reinitialization-attacks/tree/starter). -The starter code includes a program with one instruction and the boilerplate -setup for the test file. +To get started, download the starter code from the +[`starter` branch of this repository](https://github.com/solana-developers/reinitialization-attacks/tree/starter). +The starter code includes a program with one instruction handler and the +boilerplate setup for the test file. -The `insecure_initialization` instruction initializes a new `user` account that -stores the public key of an `authority`. In this instruction, the account is -expected to be allocated client-side, then passed into the program instruction. -Once passed into the program, there are no checks to see if the `user` account's -initial state has already been set. This means the same account can be passed in -a second time to override the `authority` stored on an existing `user` account. +The `insecure_initialization` instruction handler initializes a new `user` +account that stores the public key of an `authority`. The account is expected to +be allocated client-side and then passed into the program instruction. However, +there are no checks to verify if the `user` account's initial state has already +been set. This means the same account can be passed in a second time, allowing +the `authority` to be overwritten. ```rust use anchor_lang::prelude::*; -use borsh::{BorshDeserialize, BorshSerialize}; -declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"); +declare_id!("HLhxJzFYjtXCET4HxnSzv27SpXg16FWNDi2LvrNmSvzH"); #[program] pub mod initialization { use super::*; pub fn insecure_initialization(ctx: Context) -> Result<()> { - let mut user = User::try_from_slice(&ctx.accounts.user.data.borrow()).unwrap(); - user.authority = ctx.accounts.authority.key(); - user.serialize(&mut *ctx.accounts.user.data.borrow_mut())?; + let user = &mut ctx.accounts.user; + let mut user_data = User::try_from_slice(&user.data.borrow())?; + user_data.authority = ctx.accounts.authority.key(); + user_data.serialize(&mut *user.data.borrow_mut())?; Ok(()) } } @@ -255,119 +240,153 @@ pub mod initialization { #[derive(Accounts)] pub struct Unchecked<'info> { #[account(mut)] - /// CHECK: - user: UncheckedAccount<'info>, - authority: Signer<'info>, + /// CHECK: This account will be initialized in the instruction + pub user: UncheckedAccount<'info>, + pub authority: Signer<'info>, } -#[derive(BorshSerialize, BorshDeserialize)] +#[account] +#[derive(InitSpace)] pub struct User { - authority: Pubkey, + pub authority: Pubkey, } ``` -#### 2. Test `insecure_initialization` instruction +### 2. Test insecure_initialization Instruction Handler The test file includes the setup to create an account by invoking the system -program and then invokes the `insecure_initialization` instruction twice using -the same account. +program and then invokes the `insecure_initialization` instruction handler twice +using the same account. -Since there are no checks the verify that the account data has not already been -initialized, the `insecure_initialization` instruction will complete -successfully both times, despite the second invocation providing a _different_ -authority account. +Since there are no checks in the `insecure_initialization` instruction handler +to verify that the account data has not already been initialized, this +instruction handler will execute successfully both times, even with a +_different_ authority account. ```typescript import * as anchor from "@coral-xyz/anchor"; import { Program } from "@coral-xyz/anchor"; -import { expect } from "chai"; import { Initialization } from "../target/types/initialization"; +import { + Keypair, + LAMPORTS_PER_SOL, + SystemProgram, + Transaction, + SendTransactionError, +} from "@solana/web3.js"; +import { expect } from "chai"; +import { airdropIfRequired } from "@solana-developers/helpers"; -describe("initialization", () => { +describe("Initialization", () => { const provider = anchor.AnchorProvider.env(); anchor.setProvider(provider); const program = anchor.workspace.Initialization as Program; - const wallet = anchor.workspace.Initialization.provider.wallet; - const walletTwo = anchor.web3.Keypair.generate(); + const walletAuthority = provider.wallet as anchor.Wallet; + const secondWallet = Keypair.generate(); + + const insecureUserAccount = Keypair.generate(); + const recommendedUserAccount = Keypair.generate(); - const userInsecure = anchor.web3.Keypair.generate(); - const userRecommended = anchor.web3.Keypair.generate(); + const ACCOUNT_SPACE = 32; + const AIRDROP_AMOUNT = 1 * LAMPORTS_PER_SOL; + const MINIMUM_BALANCE_FOR_RENT_EXEMPTION = 1 * LAMPORTS_PER_SOL; before(async () => { - const tx = new anchor.web3.Transaction().add( - anchor.web3.SystemProgram.createAccount({ - fromPubkey: wallet.publicKey, - newAccountPubkey: userInsecure.publicKey, - space: 32, - lamports: - await provider.connection.getMinimumBalanceForRentExemption(32), + try { + const rentExemptionAmount = + await provider.connection.getMinimumBalanceForRentExemption( + ACCOUNT_SPACE, + ); + + const createAccountInstruction = SystemProgram.createAccount({ + fromPubkey: walletAuthority.publicKey, + newAccountPubkey: insecureUserAccount.publicKey, + space: ACCOUNT_SPACE, + lamports: rentExemptionAmount, programId: program.programId, - }), - ); - - await anchor.web3.sendAndConfirmTransaction(provider.connection, tx, [ - wallet.payer, - userInsecure, - ]); - - await provider.connection.confirmTransaction( - await provider.connection.requestAirdrop( - walletTwo.publicKey, - 1 * anchor.web3.LAMPORTS_PER_SOL, - ), - "confirmed", - ); + }); + + const transaction = new Transaction().add(createAccountInstruction); + + await anchor.web3.sendAndConfirmTransaction( + provider.connection, + transaction, + [walletAuthority.payer, insecureUserAccount], + ); + + await airdropIfRequired( + provider.connection, + secondWallet.publicKey, + AIRDROP_AMOUNT, + MINIMUM_BALANCE_FOR_RENT_EXEMPTION, + ); + } catch (error) { + console.error("Setup failed:", error); + throw error; + } }); - it("Insecure init", async () => { - await program.methods - .insecureInitialization() - .accounts({ - user: userInsecure.publicKey, - }) - .rpc(); + it("performs insecure initialization", async () => { + try { + await program.methods + .insecureInitialization() + .accounts({ + user: insecureUserAccount.publicKey, + authority: walletAuthority.publicKey, + }) + .signers([walletAuthority.payer]) + .rpc(); + } catch (error) { + console.error("Insecure initialization failed:", error); + throw error; + } }); - it("Re-invoke insecure init with different auth", async () => { - const tx = await program.methods - .insecureInitialization() - .accounts({ - user: userInsecure.publicKey, - authority: walletTwo.publicKey, - }) - .transaction(); - await anchor.web3.sendAndConfirmTransaction(provider.connection, tx, [ - walletTwo, - ]); + it("re-invokes insecure initialization with different authority", async () => { + try { + const transaction = await program.methods + .insecureInitialization() + .accounts({ + user: insecureUserAccount.publicKey, + authority: secondWallet.publicKey, + }) + .signers([secondWallet]) + .transaction(); + + await anchor.web3.sendAndConfirmTransaction( + provider.connection, + transaction, + [secondWallet], + ); + } catch (error) { + console.error("Re-invocation of insecure initialization failed:", error); + throw error; + } }); }); ``` -Run `anchor test` to see that both transactions will complete successfully. +Run `anchor test` to verify that the `insecure_initialization` instruction +handler executes successfully in both invocations. ```bash -initialization - ✔ Insecure init (478ms) - ✔ Re-invoke insecure init with different auth (464ms) +Initialization + ✔ performs insecure initialization (420ms) + ✔ re-invokes insecure initialization with different authority (419ms) ``` -#### 3. Add `recommended_initialization` instruction +### 3. Add recommended_initialization Instruction Handler -Let's create a new instruction called `recommended_initialization` that fixes -this problem. Unlike the previous insecure instruction, this instruction should +Now, let's create a new instruction handler called `recommended_initialization` +that addresses the issue. Unlike the insecure instruction handler, this one will handle both the creation and initialization of the user's account using Anchor's `init` constraint. -This constraint instructs the program to create the account via a CPI to the -system program, so the account no longer needs to be created client-side. The -constraint also sets the account discriminator. Your instruction logic can then -set the account's initial state. - -By doing this, you ensure that any subsequent invocation of the same instruction -with the same user account will fail rather than reset the account's initial -state. +This constraint ensures the account is created via a CPI to the system program, +and the discriminator is set. This way, any subsequent invocation with the same +user account will fail, preventing reinitialization. ```rust use anchor_lang::prelude::*; @@ -378,7 +397,7 @@ declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"); #[program] pub mod initialization { use super::*; - ... + ... pub fn recommended_initialization(ctx: Context) -> Result<()> { ctx.accounts.user.authority = ctx.accounts.authority.key(); Ok(()) @@ -387,92 +406,118 @@ pub mod initialization { #[derive(Accounts)] pub struct Checked<'info> { - #[account(init, payer = authority, space = 8+32)] + #[account( + init, + payer = authority, + space = DISCRIMINATOR_SIZE + User::INIT_SPACE + )] user: Account<'info, User>, #[account(mut)] authority: Signer<'info>, system_program: Program<'info, System>, } + +#[account] +#[derive(InitSpace)] +pub struct User { + pub authority: Pubkey, +} ``` -#### 4. Test `recommended_initialization` instruction +### 4. Test recommended_initialization Instruction Handler -To test the `recommended_initialization` instruction, we’ll invoke the -instruction twice just like before. This time, we expect the transaction to fail -when we try to initialize the same account a second time. +To test the `recommended_initialization` instruction handler, invoke it twice as +before. This time, the transaction should fail when attempting to initialize the +same account a second time. ```typescript -describe("initialization", () => { +describe("Initialization", () => { ... - it("Recommended init", async () => { - await program.methods - .recommendedInitialization() - .accounts({ - user: userRecommended.publicKey, - }) - .signers([userRecommended]) - .rpc() - }) - - it("Re-invoke recommended init with different auth, expect error", async () => { + it("performs recommended initialization", async () => { + try { + await program.methods + .recommendedInitialization() + .accounts({ + user: recommendedUserAccount.publicKey, + }) + .signers([recommendedUserAccount]) + .rpc(); + } catch (error) { + console.error("Recommended initialization failed:", error); + throw error; + } + }); + + it("fails to re-invoke recommended initialization with different authority", async () => { try { - // Add your test here. - const tx = await program.methods + const transaction = await program.methods .recommendedInitialization() .accounts({ - user: userRecommended.publicKey, - authority: walletTwo.publicKey, + user: recommendedUserAccount.publicKey, + authority: secondWallet.publicKey, }) - .transaction() - await anchor.web3.sendAndConfirmTransaction(provider.connection, tx, [ - walletTwo, - userRecommended, - ]) - } catch (err) { - expect(err) - console.log(err) + .transaction(); + + await anchor.web3.sendAndConfirmTransaction( + provider.connection, + transaction, + [secondWallet, recommendedUserAccount], + { commitment: "confirmed" } + ); + + throw new Error("Re-invocation succeeded unexpectedly"); + } catch (error) { + if (error.message === "Re-invocation succeeded unexpectedly") { + throw error; + } + + if (error instanceof SendTransactionError) { + console.log("Transaction failed as expected"); + } else { + console.error("Unexpected error:", error); + } + console.log(error) + expect(error).to.exist; } - }) -}) + }); +}); ``` -Run `anchor test` and to see that the second transaction which tries to -initialize the same account twice will now return an error stating the account -address is already in use. +Run `anchor test` to confirm that the second transaction fails with an error +indicating the account is already in use. ```bash -'Program CpozUgSwe9FPLy9BLNhY2LTGqLUk1nirUkMMA5RmDw6t invoke [1]', +'Program HLhxJzFYjtXCET4HxnSzv27SpXg16FWNDi2LvrNmSvzH invoke [1]', 'Program log: Instruction: RecommendedInitialization', 'Program 11111111111111111111111111111111 invoke [2]', -'Allocate: account Address { address: EMvbwzrs4VTR7G1sNUJuQtvRX1EuvLhqs4PFqrtDcCGV, base: None } already in use', +'Allocate: account Address { address: FcW7tG71GKuRgxEbgFuuNQNV3HVSMmVyKATo74iCK4yi, base: None } already in use', 'Program 11111111111111111111111111111111 failed: custom program error: 0x0', -'Program CpozUgSwe9FPLy9BLNhY2LTGqLUk1nirUkMMA5RmDw6t consumed 4018 of 200000 compute units', -'Program CpozUgSwe9FPLy9BLNhY2LTGqLUk1nirUkMMA5RmDw6t failed: custom program error: 0x0' +'Program HLhxJzFYjtXCET4HxnSzv27SpXg16FWNDi2LvrNmSvzH consumed 3330 of 200000 compute units', +'Program HLhxJzFYjtXCET4HxnSzv27SpXg16FWNDi2LvrNmSvzH failed: custom program error: 0x0' ``` -If you use Anchor's `init` constraint, that's usually all you need to protect -against reinitialization attacks! Remember, just because the fix for these -security exploits is simple doesn't mean it isn't important. Every time your -initialize an account, make sure you're either using the `init` constraint or -have some other check in place to avoid resetting an existing account's initial -state. +Using Anchor's `init` constraint is usually sufficient to protect against +reinitialization attacks. While the fix for these security exploits is +straightforward, it is crucial. Every time you initialize an account, ensure +that you're either using the `init` constraint or implementing another check to +prevent resetting an existing account's initial state. -If you want to take a look at the final solution code you can find it on the -`solution` branch of -[this repository](https://github.com/Unboxed-Software/solana-reinitialization-attacks/tree/solution). +For the final solution code, refer to the +[`solution` branch of this repository](https://github.com/solana-developers/reinitialization-attacks/tree/solution). ## Challenge -Just as with other lessons in this unit, your opportunity to practice avoiding -this security exploit lies in auditing your own or other programs. +Your challenge is to audit your own or other programs to practice avoiding this +security exploit. -Take some time to review at least one program and ensure that instructions are -properly protected against reinitialization attacks. +Take some time to review at least one program and confirm that instruction +handlers are adequately protected against reinitialization attacks. -Remember, if you find a bug or exploit in somebody else's program, please alert -them! If you find one in your own program, be sure to patch it right away. +If you find a bug or exploit in another program, alert the developer. If you +find one in your own program, patch it immediately. + Push your code to GitHub and [tell us what you thought of this lesson](https://form.typeform.com/to/IPH0UGz7#answers-lesson=652c68aa-18d9-464c-9522-e531fd8738d5)! From 96587aa145349e89f2d44226cf662b013dd40a19 Mon Sep 17 00:00:00 2001 From: Onyewuchi Emmanuel Date: Tue, 17 Sep 2024 03:02:54 +0100 Subject: [PATCH 050/206] update program-state-management and serialize-instruction-data-frontend (#369) * refactor(): replace deprecated findProgramAddress with findProgramAddressSync The signature '(seeds: (Buffer | Uint8Array)[], programId: PublicKey): Promise<[PublicKey, number]>' of 'web3.PublicKey.findProgramAddress' is deprecated. Updated the code to use the recommended 'findProgramAddressSync' method for better compatibility. * refactor(): - Improved efficiency by importing specific modules from @solana/web3.js instead of importing the entire package. - Replaced .then() with await for better readability and async handling. - Applied linting to maintain code consistency and clarity. - Replaced abbreviations like tx with more descriptive variable names for better code readability. - Enhanced error handling using trycatch. * refactor(): replaced .then with trycatch block * refactor(): replaced .then with trycatch block * chore(): added updated link to the new movie application frontend and included the application screenshot * chore(): implemented getExplorerLink from solana-developer/helpers * chore(): updated url for movie review frontend repo * chore(): updated program review application url and course reference link * chore(): updated serialize-instruction-data file with current implementation * fixed PR review changes * chore(): fixed all issues in the PR review * chore(): removed unnecessary imports * updated code snippet and course links * chore(): updated example project url links, course links buffer methods. also removed unused imports * chore(): removed single letter and replaced with full names * chore(): made changes as requested in the pr review * fixed pr issues * chore(): fixed pr issues * chore(): included checks for character limit * chore(): changed repo link to updated example project --------- Co-authored-by: Onyewuchi Emeka --- .../program-state-management.md | 22 ++++--- .../serialize-instruction-data-frontend.md | 57 +++++++++++++++--- public/assets/courses/movie-review-dapp.png | Bin 0 -> 208061 bytes 3 files changed, 60 insertions(+), 19 deletions(-) create mode 100644 public/assets/courses/movie-review-dapp.png diff --git a/content/courses/native-onchain-development/program-state-management.md b/content/courses/native-onchain-development/program-state-management.md index f7d331381..1f858b9f6 100644 --- a/content/courses/native-onchain-development/program-state-management.md +++ b/content/courses/native-onchain-development/program-state-management.md @@ -542,19 +542,21 @@ You're now ready to build and deploy your program! You can test your program by submitting a transaction with the right instruction data. For that, feel free to use -[this script](https://github.com/Unboxed-Software/solana-movie-client) or -[the frontend](https://github.com/Unboxed-Software/solana-movie-frontend) we +[this script](https://github.com/solana-developers/movie-review-program-client) +or [the frontend](https://github.com/solana-developers/movie-review-frontend) we built in the -[Deserialize Custom Instruction Data lesson](deserialize-custom-data). In both -cases, make sure you copy and paste the program ID for your program into the -appropriate area of the source code to make sure you're testing the right +[Deserialize Custom Instruction Data lesson](/content/courses/native-onchain-development/deserialize-custom-data-frontend.md). +In both cases, set the program ID for your program in the appropriate file +`web/components/ui/review-form.ts` to make sure you're testing the right program. -If you use the frontend, simply replace the `MOVIE_REVIEW_PROGRAM_ID` in both -the `MovieList.tsx` and `Form.tsx` components with the address of the program -you've deployed. Then run the frontend, submit a view, and refresh the browser -to see the review. +- If you're using the script, simply replace the value assigned to + `movieProgramId` in the `index.ts` component with the public key of the + program you've deployed. +- If you use the frontend, simply replace the `MOVIE_REVIEW_PROGRAM_ID` in the + `review-form.tsx` components with the address of the program you’ve deployed. +Then run the frontend, submit a view, and refresh the browser to see the review. If you need more time with this project to feel comfortable with these concepts, have a look at the [solution code](https://beta.solpg.io/66d67f31cffcf4b13384d334) before @@ -578,7 +580,7 @@ taking a name a short message as instruction data, the program should: string in each account You can test your program by building the -[frontend](https://github.com/Unboxed-Software/solana-student-intros-frontend) +[frontend](https://github.com/solana-developers/solana-student-intro-frontend) we created in the [Page, Order, and Filter Program Data lesson](/content/courses/native-onchain-development/paging-ordering-filtering-data-frontend). Remember to replace the program ID in the frontend code with the one you've diff --git a/content/courses/native-onchain-development/serialize-instruction-data-frontend.md b/content/courses/native-onchain-development/serialize-instruction-data-frontend.md index 3154f69b5..798a3ac0d 100644 --- a/content/courses/native-onchain-development/serialize-instruction-data-frontend.md +++ b/content/courses/native-onchain-development/serialize-instruction-data-frontend.md @@ -354,30 +354,69 @@ Now that we have the buffer layout set up, let’s create a method in `Movie` called `serialize()` that will return a `Buffer` with a `Movie` object’s properties encoded into the appropriate layout. +Instead of allocating a fixed buffer size, we'll calculate the size dynamically +using known constants for the space required by each field in the `Movie` +object. Specifically, we'll use `INIT_SPACE` (to account for string length +metadata) and `ANCHOR_DISCRIMINATOR` (to account for the 8-byte discriminator +used by Anchor). + ```typescript -import * as borsh from '@coral-xyz/borsh' +import * as borsh from "@coral-xyz/borsh"; + +// Constants for size calculations +const ANCHOR_DISCRIMINATOR = 8; // 8 bytes for the account discriminator used by Anchor +const STRING_LENGTH_SPACE = 4; // 4 bytes to store the length of each string + +// Specific sizes for 'title' and 'description' strings +const TITLE_SIZE = 100; // Allocate 100 bytes for the 'title' +const DESCRIPTION_SIZE = 500; // Allocate 500 bytes for the 'description' + +// Total space calculation for the Movie review structure +const MOVIE_REVIEW_SPACE = + ANCHOR_DISCRIMINATOR + // 8 bytes for the account discriminator + STRING_LENGTH_SPACE + + TITLE_SIZE + // 4 bytes for the title length + 100 bytes for the title + STRING_LENGTH_SPACE + + DESCRIPTION_SIZE + // 4 bytes for the description length + 500 bytes for the description + 1 + // 1 byte for 'variant' + 1; // 1 byte for 'rating' export class Movie { title: string; rating: number; description: string; - ... + constructor(title: string, rating: number, description: string) { + // Enforce specific sizes for title and description + if (title.length > TITLE_SIZE) { + throw new Error(`Title cannot exceed ${TITLE_SIZE} characters.`); + } + if (description.length > DESCRIPTION_SIZE) { + throw new Error( + `Description cannot exceed ${DESCRIPTION_SIZE} characters.`, + ); + } + + this.title = title; + this.rating = rating; + this.description = description; + } borshInstructionSchema = borsh.struct([ - borsh.u8('variant'), - borsh.str('title'), - borsh.u8('rating'), - borsh.str('description'), - ]) + borsh.u8("variant"), + borsh.str("title"), + borsh.u8("rating"), + borsh.str("description"), + ]); serialize(): Buffer { try { - const buffer = Buffer.alloc(1000); + // Allocate a buffer with the exact space needed + const buffer = Buffer.alloc(MOVIE_REVIEW_SPACE); this.borshInstructionSchema.encode({ ...this, variant: 0 }, buffer); return buffer.subarray(0, this.borshInstructionSchema.getSpan(buffer)); } catch (error) { - console.error('Serialization error:', error); + console.error("Serialization error:", error); return Buffer.alloc(0); } } diff --git a/public/assets/courses/movie-review-dapp.png b/public/assets/courses/movie-review-dapp.png new file mode 100644 index 0000000000000000000000000000000000000000..a770aa71506e2832a8f3337c807b7e33c49871e2 GIT binary patch literal 208061 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 hxm_sd&iH82 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 z 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 literal 0 HcmV?d00001 From 0c7e29bdcd5bc303032e46ac9e175806d38b5471 Mon Sep 17 00:00:00 2001 From: mewoa <41277945+mewoa@users.noreply.github.com> Date: Fri, 20 Sep 2024 06:04:15 +0800 Subject: [PATCH 051/206] Fix `Anchor` typo (#490) Co-authored-by: pettyroll --- docs/intro/installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro/installation.md b/docs/intro/installation.md index 68c8e98e0..26a4653b2 100644 --- a/docs/intro/installation.md +++ b/docs/intro/installation.md @@ -351,7 +351,7 @@ warning: `anchor-cli` (lib) generated 1 warning -To verify that the installation was successful, check the Ancor CLI version: +To verify that the installation was successful, check the Anchor CLI version: ```shell anchor --version From 03f7488f1268f19a714b56672cbb435b0320519f Mon Sep 17 00:00:00 2001 From: Onyewuchi Emmanuel Date: Tue, 24 Sep 2024 04:12:48 +0100 Subject: [PATCH 052/206] Fix/deserialize instruction data (#462) * refactor(): replaced .then with trycatch block * chore(): excluded lesson for better PR review * Revert "refactor(): replaced .then with trycatch block" This reverts commit c5cde86054dbcdff3416b6aa5cfc8fd0db711dd0. * chore(): fixed formatting issues * Update content/courses/native-onchain-development/deserialize-instruction-data.md --------- Co-authored-by: Onyewuchi Emeka Co-authored-by: Mike MacCana --- .../deserialize-instruction-data.md | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/content/courses/native-onchain-development/deserialize-instruction-data.md b/content/courses/native-onchain-development/deserialize-instruction-data.md index 3a18f4a0a..5cf2b27b4 100644 --- a/content/courses/native-onchain-development/deserialize-instruction-data.md +++ b/content/courses/native-onchain-development/deserialize-instruction-data.md @@ -15,10 +15,10 @@ description: ## Summary - Most programs support **multiple discrete instruction handlers** (sometimes - referred to as 'instructions') - these are functions within your program. -- Rust **enums** are often used to represent each instruction handler. -- You can use the `borsh` crate and the `derive` attribute to enable Borsh - deserialization and serialization functionality in Rust structs. + just referred to as 'instructions') - these are functions inside your program +- Rust **enums** are often used to represent each instruction handler +- You can use the `borsh` crate and the `derive` attribute to provide Borsh + deserialization and serialization functionality to Rust structs - Rust `match` expressions help create conditional code paths based on the provided instruction. @@ -143,6 +143,7 @@ using enums in Rust by visiting #### Match statements Match statements are very similar to `switch` statements in other languages. The + [`match`](https://doc.rust-lang.org/rust-by-example/flow_control/match.html) statement allows you to compare a value against a series of patterns and then execute code based on which pattern matches the value. Patterns can be made of @@ -603,13 +604,19 @@ is submitted. Build and deploy your program from Solana Playground as in the last lesson. If your program ID hasn't changed, it will deploy to the same ID. To deploy to a different address, generate a new program ID before deploying. -Test your program by submitting a transaction with the correct instruction data. -You can use -[this script](https://github.com/Unboxed-Software/solana-movie-client) or -[the frontend](https://github.com/Unboxed-Software/solana-movie-frontend) we +Build and deploy your program from Solana Program just like in the last lesson. +If you haven't changed the program ID since going through the last lesson, it +will automatically deploy to the same ID. If you'd like it to have a separate +address, you can generate a new program ID from the playground before deploying. + +You can test your program by submitting a transaction with the right instruction +data. For that, feel free to use +[this script](https://github.com/solana-developers/movie-review-program-client) +or [the frontend](https://github.com/solana-developers/movie-review-frontend) we built in the [Serialize Custom Instruction Data lesson](/content/courses/native-onchain-development/serialize-instruction-data-frontend.md). -Ensure you update the program ID in the source code to match your deployed +In both cases, make sure you copy and paste the program ID for your program into +the appropriate area of the source code to make sure you're testing the right program. Take your time with this lab before moving on, and feel free to reference the @@ -626,7 +633,7 @@ Using what you've learned, build the Student Intro program to the point where it prints the `name` and `message` to the program logs when invoked. You can test your program by building the -[frontend](https://github.com/Unboxed-Software/solana-student-intros-frontend/tree/solution-serialize-instruction-data) +[frontend](https://github.com/solana-developers/student-intro-frontend/tree/solution-serialize-instruction-data) we created in the [Serialize Custom Instruction Data lesson](/content/courses/native-onchain-development/serialize-instruction-data-frontend.md) and checking the program logs on Solana Explorer. Replace the program ID in the From bf58aacfec3408825ebbd42a85f8129afa0aef36 Mon Sep 17 00:00:00 2001 From: Sam Date: Tue, 24 Sep 2024 08:46:58 +0530 Subject: [PATCH 053/206] onchain-development local-setup updated (#343) * onchain local-setup updated * some refactors * solana cli install command update Co-authored-by: Jereld Lim * minor refactor * minor refactor * some refactors --------- Co-authored-by: Jereld Lim --- .../onchain-development/local-setup.md | 75 ++++++++++++++++--- 1 file changed, 64 insertions(+), 11 deletions(-) diff --git a/content/courses/onchain-development/local-setup.md b/content/courses/onchain-development/local-setup.md index 0d89fb0af..2d5fb49e7 100644 --- a/content/courses/onchain-development/local-setup.md +++ b/content/courses/onchain-development/local-setup.md @@ -17,19 +17,22 @@ description: ## Lesson -There's no formal lesson here! Let's get hands-on by installing the Solana CLI -tools, the Rust SDK, and Anchor, and create a test program to verify that -everything is set up correctly. +This lesson is a guide to installing the tools required for developing onchain +programs. Let's install Solana CLI tools, the Rust SDK, and Anchor, and create a +test program to ensure that our setup works. ## Lab ### Extra steps for Windows users -First, install -[Windows Terminal](https://apps.microsoft.com/detail/9N0DX20HK701) from the -Microsoft store. +> macOS and Linux users can skip this section. If you're on Windows, you can +> follow along with these extra steps. -Next, +Firstly, make sure you have Windows Terminal installed, otherwise you can +install Windows Terminal from the +[Microsoft store](https://apps.microsoft.com/detail/9N0DX20HK701). + +Then, [install Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/install). WSL provides a Linux environment that launches instantly when needed without slowing down your computer. @@ -105,6 +108,19 @@ Finally, [download Anchor](https://www.anchor-lang.com/docs/installation): ```bash cargo install --git https://github.com/coral-xyz/anchor avm --locked --force +``` + +you may need to install additional dependencies in Linux (or WSL): + +```bash +sudo apt-get update && \ +sudo apt-get upgrade && \ +sudo apt-get install -y pkg-config build-essential libudev-dev libssl-dev +``` + +proceed... + +```bash avm install latest avm use latest ``` @@ -124,11 +140,15 @@ cd temp-project anchor test ``` -**The `anchor test` command should complete without errors or warnings**. If you -encounter issues, we’ll address them below: +**The `anchor test` command should complete with no errors or warnings**. + +**However you may encounter issues, and we'll fix them below:** + +#### `package `solana-program -#### Error: `package 'solana-program v1.18.12' cannot be built because it requires rustc 1.75.0 or newer` +v1.18.12` cannot be built because it requires rustc 1.75.0 or newer` error +This error is due to incompatible versions of `solana-program` and `solana-cli`. Run `cargo add solana-program@"=1.18.x"`, where `x` matches your version of `solana-cli`. Then re-run `anchor test`. @@ -139,6 +159,39 @@ Add a keypair to `.config/solana/id.json`. You can either copy a keypair from an `solana-keygen new --no-bip39-passphrase` to create a new keypair file. Then re-run `anchor test`. +#### error: no such command: `build-sbf` + +If you see this message, this error typically occurs because the relevant +binaries are not in your shell's PATH variable. + +Run this command to add this folder to your shell, and also add this to your +`~/.zshrc` or `~/.bashrc` file to make the change permanent. + +```bash +export PATH=~"/.local/share/solana/install/active_release/bin:$PATH" +``` + +#### Unable to get latest blockhash. Test validator does not look started. + +There's multiple versions of the 'tar' (tape archiver) command Solana used for +archiving. macOS comes with BSD tar, but Solana CLI wants the GNU version +installed. + +- Install [Homebrew](https://brew.sh/) and use it to install GNU tar: + + ```bash + # Install Homebrew; you can skip this step if you already have Homebrew installed + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" + # Install GNU tar + brew install gnu-tar + ``` + +- Add this to your ~/.zshrc or ~/.bashrc file to make the change permanent. + + ```bash + export PATH=/opt/homebrew/opt/gnu-tar/libexec/gnubin:$PATH + ``` + #### Error: `Your configured rpc port: 8899 is already in use` If you are running `solana-test-validator`, you may encounter the error @@ -146,7 +199,7 @@ If you are running `solana-test-validator`, you may encounter the error `anchor test`. To resolve this, stop the `solana-test-validator` before running `anchor test`. -#### All done? +### All done? Ensure `anchor test` completes successfully - with no warnings and no errors - before continuing. From c411be06a60d9dc5ce6cb6a2c16be16f9718fcda Mon Sep 17 00:00:00 2001 From: Shawaz <65177277+shawazi@users.noreply.github.com> Date: Tue, 24 Sep 2024 00:07:22 -0400 Subject: [PATCH 054/206] Edit: grammar: CONTRIBUTING.md (#498) Minor grammatical update for clarification --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3e596079c..1639c3772 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -236,8 +236,8 @@ The heading above is invalid since it skips the `h3` heading (`###`) ### Links When linking to other developer content pages (i.e. docs, guides, etc) or -images, the markdown link should be use the absolute path to the file relative -to the repo root. Including the file extension. +images, the markdown link should use the absolute path to the file relative +to the repo root. Include the file extension. For example: `/docs/index.md` (good) vs `https://solana.com/docs` (bad) From e7689196d9697942d29df1917c8869ee0dceccd6 Mon Sep 17 00:00:00 2001 From: Shawaz <65177277+shawazi@users.noreply.github.com> Date: Tue, 24 Sep 2024 00:08:16 -0400 Subject: [PATCH 055/206] Edit: link: Anchor Multiple Files Template (#500) Old link is dead, updated with new location. --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1639c3772..362c01ed0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -185,7 +185,7 @@ yarn prettier ask them to run `anchor keys sync`. - Use the - [multiple files template](https://www.anchor-lang.com/docs/release-notes#multiple-files-template) + [multiple files template](https://www.anchor-lang.com/release-notes/0.29.0#multiple-files-template) to organize very large Anchor projects. ### Heading styles From bedcc4bde826f2e88122087ace0c70bab2ed0494 Mon Sep 17 00:00:00 2001 From: 0xCipherCoder Date: Tue, 24 Sep 2024 10:11:28 +0530 Subject: [PATCH 056/206] Program security - Updated type cosplay lesson (#411) * Updated code snippets, fixed content, grammar and styling * Added explaination of discriminator * Update type-cosplay.md with corrected * Update type-cosplay.md with links * Updated content to simplify difference in discriminant and discriminator * Removed smartquotes --- .../courses/program-security/type-cosplay.md | 386 ++++++++++-------- 1 file changed, 213 insertions(+), 173 deletions(-) diff --git a/content/courses/program-security/type-cosplay.md b/content/courses/program-security/type-cosplay.md index 79dbe227c..f52c7d25d 100644 --- a/content/courses/program-security/type-cosplay.md +++ b/content/courses/program-security/type-cosplay.md @@ -2,19 +2,21 @@ title: Type Cosplay objectives: - Explain the security risks associated with not checking account types - - Implement an account type discriminator using long-form Rust + - Implement an account type discriminator using native Rust - Use Anchor's `init` constraint to initialize accounts - Use Anchor's `Account` type for account validation description: - "Under the risks of accounts of the wrong type being used in instruction, and - use account type checks to mitigate them." + "Understand the risks of using incorrect account types in instructions and how + to mitigate them with account type checks." --- ## Summary -- Use discriminators to distinguish between different account types -- To implement a discriminator in Rust, include a field in the account struct to - represent the account type +- **Discriminators** are 8-byte identifiers written to accounts that distinguish + between different account types, ensuring programs interact with the correct + data. +- **Implement a discriminator** in Rust by including a field in the account + struct to represent the account type. ```rust #[derive(BorshSerialize, BorshDeserialize)] @@ -30,41 +32,40 @@ description: } ``` -- To implement a discriminator check in Rust, verify that the discriminator of - the deserialized account data matches the expected value +- **Check the discriminator** in Rust to verify that the deserialized account + data matches the expected value. ```rust if user.discriminant != AccountDiscriminant::User { - return Err(ProgramError::InvalidAccountData.into()); + return Err(ProgramError::InvalidAccountData.into()); } ``` -- In Anchor, program account types automatically implement the `Discriminator` - trait which creates an 8 byte unique identifier for a type -- Use Anchor’s `Account<'info, T>` type to automatically check the discriminator - of the account when deserializing the account data +- **In Anchor**, program account types automatically implement the + `Discriminator` trait, which creates an 8-byte unique identifier for a type. +- Use Anchor's `Account<'info, T>` type to automatically check the discriminator + when deserializing the account data. ## Lesson -“Type cosplay” refers to an unexpected account type being used in place of an -expected account type. Under the hood, account data is simply stored as an array -of bytes that a program deserializes into a custom account type. Without -implementing a way to explicitly distinguish between account types, account data -from an unexpected account could result in an instruction being used in -unintended ways. +"Type cosplay" refers to using an unexpected account type in place of an +expected one. Under the hood, account data is stored as an array of bytes that a +program deserializes into a custom account type. Without a method to distinguish +between account types explicitly, data from an unexpected account could result +in instructions being used in unintended ways. -#### Unchecked account +### Unchecked Account In the example below, both the `AdminConfig` and `UserConfig` account types -store a single public key. The `admin_instruction` instruction deserializes the -`admin_config` account as an `AdminConfig` type and then performs a owner check +store a single public key. The `admin_instruction` deserializes the +`admin_config` account as an `AdminConfig` type and then performs an owner check and data validation check. -However, the `AdminConfig` and `UserConfig` account types have the same data -structure. This means a `UserConfig` account type could be passed in as the -`admin_config` account. As long as the public key stored on the account data -matches the `admin` signing the transaction, the `admin_instruction` instruction -would continue to process, even if the signer isn't actually an admin. +However, since the `AdminConfig` and `UserConfig` account types have the same +data structure, a `UserConfig` account type could be passed as the +`admin_config` account. As long as the public key stored on the account matches +the `admin` signing the transaction, the `admin_instruction` would process, even +if the signer isn't actually an admin. Note that the names of the fields stored on the account types (`admin` and `user`) make no difference when deserializing account data. The data is @@ -73,7 +74,6 @@ names. ```rust use anchor_lang::prelude::*; -use borsh::{BorshDeserialize, BorshSerialize}; declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"); @@ -97,29 +97,51 @@ pub mod type_cosplay_insecure { #[derive(Accounts)] pub struct AdminInstruction<'info> { + /// CHECK: This account is not being validated by Anchor admin_config: UncheckedAccount<'info>, admin: Signer<'info>, } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(AnchorSerialize, AnchorDeserialize, InitSpace)] pub struct AdminConfig { admin: Pubkey, } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(AnchorSerialize, AnchorDeserialize, InitSpace)] pub struct UserConfig { user: Pubkey, } ``` -#### Add account discriminator +#### Add Account Discriminator + +To resolve this, add a discriminant field for each account type and set the +discriminant when initializing an account. + + + +While they sound similar, a +[Rust **discriminant**](https://doc.rust-lang.org/std/mem/fn.discriminant.html) +isn't the same thing as an +[Anchor **discriminator**](https://book.anchor-lang.com/anchor_bts/discriminator.html)! + +- **Rust discriminant**: This is an internal value that Rust uses to keep track + of which variant an enum currently represents. It's like a behind-the-scenes + label for enum variants. + +- **Anchor discriminator**: This is a unique 8-byte identifier that Anchor adds + to the beginning of each account's data. It helps Solana programs quickly + recognize what type of account they're dealing with. + +In simple terms: -To solve this, you can add a discriminant field for each account type and set -the discriminant when initializing an account. +- Discriminants are Rust's way of organizing enum variants. +- Discriminators are Anchor's way of labeling different account types in Solana. + The example below updates the `AdminConfig` and `UserConfig` account types with -a `discriminant` field. The `admin_instruction` instruction includes an -additional data validation check for the `discriminant` field. +a `discriminant` field. The `admin_instruction` now includes an additional data +validation check for the `discriminant` field. ```rust if account_data.discriminant != AccountDiscriminant::Admin { @@ -128,14 +150,13 @@ if account_data.discriminant != AccountDiscriminant::Admin { ``` If the `discriminant` field of the account passed into the instruction as the -`admin_config` account does not match the expected `AccountDiscriminant`, then -the transaction will fail. Simply make sure to set the appropriate value for -`discriminant` when you initialize each account (not shown in the example), and -then you can include these discriminant checks in every subsequent instruction. +`admin_config` account does not match the expected `AccountDiscriminant`, the +transaction will fail. Ensure that the appropriate value for `discriminant` is +set when initializing each account, and then include these checks in every +subsequent instruction. ```rust use anchor_lang::prelude::*; -use borsh::{BorshDeserialize, BorshSerialize}; declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"); @@ -162,42 +183,43 @@ pub mod type_cosplay_secure { #[derive(Accounts)] pub struct AdminInstruction<'info> { + /// CHECK: This account is not being validated by Anchor admin_config: UncheckedAccount<'info>, admin: Signer<'info>, } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(AnchorSerialize, AnchorDeserialize, InitSpace)] pub struct AdminConfig { discriminant: AccountDiscriminant, admin: Pubkey, } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(AnchorSerialize, AnchorDeserialize, InitSpace)] pub struct UserConfig { discriminant: AccountDiscriminant, user: Pubkey, } -#[derive(BorshSerialize, BorshDeserialize, PartialEq)] +#[derive(AnchorSerialize, AnchorDeserialize, PartialEq, InitSpace)] pub enum AccountDiscriminant { Admin, User, } ``` -#### Use Anchor’s `Account` wrapper +### Use Anchor's Account Wrapper -Implementing these checks for every account needed for every instruction can be -tedious. Fortunately, Anchor provides a `#[account]` attribute macro for -automatically implementing traits that every account should have. +Implementing these checks for every account in every instruction can be tedious. +Fortunately, Anchor provides a `#[account]` attribute macro for automatically +implementing traits that every account should have. Structs marked with `#[account]` can then be used with `Account` to validate -that the passed in account is indeed the type you expect it to be. When -initializing an account whose struct representation has the `#[account]` -attribute, the first 8 bytes are automatically reserved for a discriminator -unique to the account type. When deserializing the account data, Anchor will -automatically check if the discriminator on the account matches the expected -account type and throw and error if it does not match. +that the passed-in account is indeed the type you expect. When initializing an +account whose struct representation has the `#[account]` attribute, the first 8 +bytes are automatically reserved for a discriminator unique to the account type. +When deserializing the account data, Anchor will automatically check if the +discriminator matches the expected account type and throw an error if it does +not. In the example below, `Account<'info, AdminConfig>` specifies that the `admin_config` account should be of type `AdminConfig`. Anchor then @@ -207,14 +229,13 @@ discriminator of the `AdminConfig` type. The data validation check for the `admin` field is also moved from the instruction logic to the account validation struct using the `has_one` constraint. `#[account(has_one = admin)]` specifies that the `admin_config` -account’s `admin` field must match the `admin` account passed into the +account's `admin` field must match the `admin` account passed into the instruction. Note that for the `has_one` constraint to work, the naming of the -account in the struct must match the naming of field on the account you are +account in the struct must match the naming of the field on the account you are validating. ```rust use anchor_lang::prelude::*; -use borsh::{BorshDeserialize, BorshSerialize}; declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"); @@ -236,99 +257,97 @@ pub struct AdminInstruction<'info> { } #[account] +#[derive(InitSpace)] pub struct AdminConfig { admin: Pubkey, } #[account] +#[derive(InitSpace)] pub struct UserConfig { user: Pubkey, } ``` -It’s important to note that this is a vulnerability you don’t really have to -worry about when using Anchor - that’s the whole point of it in the first place! -After going through how this can be exploited if not handled properly in a -native rust program, hopefully you have a much better understanding of what the -purpose of the account discriminator is in an Anchor account. The fact that -Anchor sets and checks this discriminator automatically means that developers -can spend more time focusing on their product, but it’s still very important to -understand what Anchor is doing behind the scenes to develop robust Solana -programs. +This vulnerability is something you generally don't have to worry about when +using Anchor—that's the whole point! However, after exploring how this issue can +arise in native Rust programs, you should now have a better understanding of the +importance of the account discriminator in an Anchor account. Anchor's automatic +discriminator checks mean that developers can focus more on their product, but +it's still crucial to understand what Anchor is doing behind the scenes to build +robust Solana programs. ## Lab -For this lab we’ll create two programs to demonstrate a type cosplay -vulnerability. +In this lab, you'll create two programs to demonstrate a type cosplay +vulnerability: -- The first program will initialize program accounts without a discriminator -- The second program will initialize program accounts using Anchor’s `init` - constraint which automatically sets an account discriminator +- The first program initializes accounts without a discriminator. +- The second program initializes accounts using Anchor's `init` constraint, + which automatically sets an account discriminator. -#### 1. Starter +### 1. Starter -To get started, download the starter code from the `starter` branch of -[this repository](https://github.com/Unboxed-Software/solana-type-cosplay/tree/starter). The -starter code includes a program with three instructions and some tests. +To get started, download the starter code from the starter branch of +[this repository](https://github.com/solana-developers/type-cosplay/tree/starter). +The starter code includes a program with three instructions and some tests. The three instructions are: -1. `initialize_admin` - initializes an admin account and sets the admin - authority of the program -2. `initialize_user` - intializes a standard user account -3. `update_admin` - allows the existing admin to update the admin authority of - the program +1. `initialize_admin`- Initializes an admin account and sets the admin authority + of the program. +2. `initialize_user` - Initializes a standard user account. +3. `update_admin` - Allows the existing admin to update the admin authority of + the program. -Take a look at these three instructions in the `lib.rs` file. The last -instruction should only be callable by the account matching the `admin` field on -the admin account initialized using the `initialize_admin` instruction. +Review the instructions in the `lib.rs` file. The last instruction should only +be callable by the account matching the `admin` field on the admin account +initialized using the `initialize_admin` instruction. -#### 2. Test insecure `update_admin` instruction +### 2. Test Insecure update_admin Instruction -However, both accounts have the same fields and field types: +Both the `AdminConfig` and `User` account types have the same fields and field +types: ```rust -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(AnchorSerialize, AnchorDeserialize)] pub struct AdminConfig { admin: Pubkey, } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(AnchorSerialize, AnchorDeserialize)] pub struct User { user: Pubkey, } ``` -Because of this, it's possible to pass in a `User` account in place of the -`admin` account in the `update_admin` instruction, thereby bypassing the -requirement that one be an admin to call this instruction. +Because of this, it's possible to pass a `User` account in place of the `admin` +account in the `update_admin` instruction, bypassing the requirement that only +an admin can call this instruction. Take a look at the `solana-type-cosplay.ts` file in the `tests` directory. It -contains some basic setup and two tests. One test initializes a user account, -and the other invokes `update_admin` and passes in the user account in place of -an admin account. +contains a basic setup and two tests: one initializes a user account, and the +other invokes `update_admin` with the user account instead of an admin account. -Run `anchor test` to see that invoking `update_admin` will complete -successfully. +Run `anchor test` to see that invoking `update_admin` completes successfully: ```bash type-cosplay - ✔ Initialize User Account (233ms) - ✔ Invoke update admin instruction with user account (487ms) + ✔ Initialize User Account (223ms) + ✔ Invoke update admin instruction with user account (442ms) ``` -#### 3. Create `type-checked` program +### 3. Create type-checked Program -Now we'll create a new program called `type-checked` by running +Next, create a new program called `type-checked` by running `anchor new type-checked` from the root of the existing anchor program. -Now in your `programs` folder you will have two programs. Run `anchor keys list` -and you should see the program ID for the new program. Add it to the `lib.rs` -file of the `type-checked` program and to the `type_checked` program in the -`Anchor.toml` file. +Now, in your `programs` folder, you will have two programs. Run +`anchor keys list` to see the program ID for the new program. Add it to the +`lib.rs` file of the `type-checked` program and to the `Anchor.toml` file. -Next, update the test file's setup to include the new program and two new -keypairs for the accounts we'll be initializing for the new program. +Update the test file's setup to include the new program and two new keypairs for +the accounts to be initialized: ```typescript import * as anchor from "@coral-xyz/anchor"; @@ -352,23 +371,24 @@ describe("type-cosplay", () => { }); ``` -#### 4. Implement the `type-checked` program +### 4. Implement the type-checked Program In the `type_checked` program, add two instructions using the `init` constraint -to initialize an `AdminConfig` account and a `User` account. When using the -`init` constraint to initialize new program accounts, Anchor will automatically -set the first 8 bytes of account data as a unique discriminator for the account -type. +to initialize an `AdminConfig` account and a `User` account. Anchor will +automatically set the first 8 bytes of account data as a unique discriminator +for the account type. -We’ll also add an `update_admin` instruction that validates the `admin_config` -account as a `AdminConfig` account type using Anchor’s `Account` wrapper. For -any account passed in as the `admin_config` account, Anchor will automatically -check that the account discriminator matches the expected account type. +Add an `update_admin` instruction that validates the `admin_config` account as +an `AdminConfig` account type using Anchor's `Account` wrapper. Anchor will +automatically check that the account discriminator matches the expected account +type: ```rust use anchor_lang::prelude::*; -declare_id!("FZLRa6vX64QL6Vj2JkqY1Uzyzjgi2PYjCABcDabMo8U7"); +declare_id!("G36iNpB591wxFeaeq55qgTwHKJspBrETmgok94oyqgcc"); + +const DISCRIMINATOR_SIZE: usize = 8; #[program] pub mod type_checked { @@ -395,7 +415,7 @@ pub struct InitializeAdmin<'info> { #[account( init, payer = admin, - space = 8 + 32 + space = DISCRIMINATOR_SIZE + AdminConfig::INIT_SPACE )] pub admin_config: Account<'info, AdminConfig>, #[account(mut)] @@ -408,7 +428,7 @@ pub struct InitializeUser<'info> { #[account( init, payer = user, - space = 8 + 32 + space = DISCRIMINATOR_SIZE + User::INIT_SPACE )] pub user_account: Account<'info, User>, #[account(mut)] @@ -429,111 +449,131 @@ pub struct UpdateAdmin<'info> { } #[account] +#[derive(InitSpace)] pub struct AdminConfig { admin: Pubkey, } #[account] +#[derive(InitSpace)] pub struct User { user: Pubkey, } ``` -#### 5. Test secure `update_admin` instruction +### 5. Test Secure update_admin Instruction -In the test file, we’ll initialize an `AdminConfig` account and a `User` account -from the `type_checked` program. Then we’ll invoke the `updateAdmin` instruction -twice passing in the newly created accounts. +In the test file, initialize an `AdminConfig` account and a `User` account from +the `type_checked` program. Then, invoke the `updateAdmin` instruction twice, +passing in the newly created accounts: ```typescript describe("type-cosplay", () => { - ... + ... it("Initialize type checked AdminConfig Account", async () => { - await programChecked.methods - .initializeAdmin() - .accounts({ - adminConfig: adminAccountType.publicKey, - }) - .signers([adminAccountType]) - .rpc() - }) + try { + await programChecked.methods + .initializeAdmin() + .accounts({ + adminConfig: adminAccountChecked.publicKey, + }) + .signers([adminAccountChecked]) + .rpc(); + } catch (error) { + throw new Error( + `Initializing type checked AdminConfig Account failed: ${error.message}` + ); + } + }); it("Initialize type checked User Account", async () => { - await programChecked.methods - .initializeUser() - .accounts({ - userAccount: userAccountType.publicKey, - user: provider.wallet.publicKey, - }) - .signers([userAccountType]) - .rpc() - }) + try { + await programChecked.methods + .initializeUser() + .accounts({ + userAccount: userAccountChecked.publicKey, + user: provider.wallet.publicKey, + }) + .signers([userAccountChecked]) + .rpc(); + } catch (error) { + throw new Error( + `Initializing type checked User Account failed: ${error.message}` + ); + } + }); it("Invoke update instruction using User Account", async () => { try { await programChecked.methods .updateAdmin() .accounts({ - adminConfig: userAccountType.publicKey, + adminConfig: userAccountChecked.publicKey, newAdmin: newAdmin.publicKey, admin: provider.wallet.publicKey, }) - .rpc() - } catch (err) { - expect(err) - console.log(err) + .rpc(); + } catch (error) { + expect(error); + console.log(error); } - }) + }); it("Invoke update instruction using AdminConfig Account", async () => { - await programChecked.methods - .updateAdmin() - .accounts({ - adminConfig: adminAccountType.publicKey, - newAdmin: newAdmin.publicKey, - admin: provider.wallet.publicKey, - }) - .rpc() - }) + try { + await programChecked.methods + .updateAdmin() + .accounts({ + adminConfig: adminAccountChecked.publicKey, + newAdmin: newAdmin.publicKey, + admin: provider.wallet.publicKey, + }) + .rpc(); + } catch (error) { + throw new Error( + `Invoking update instruction using AdminConfig Account failed: ${error.message}` + ); + } + }); }) ``` -Run `anchor test`. For the transaction where we pass in the `User` account type, -we expect the instruction and return an Anchor Error for the account not being -of type `AdminConfig`. +Run `anchor test`. For the transaction where we pass in the User account type, +we expect the instruction to return an Anchor Error due to the account not being +of type AdminConfig: ```bash -'Program EU66XDppFCf2Bg7QQr59nyykj9ejWaoW93TSkk1ufXh3 invoke [1]', +'Program G36iNpB591wxFeaeq55qgTwHKJspBrETmgok94oyqgcc invoke [1]', 'Program log: Instruction: UpdateAdmin', 'Program log: AnchorError caused by account: admin_config. Error Code: AccountDiscriminatorMismatch. Error Number: 3002. Error Message: 8 byte discriminator did not match what was expected.', -'Program EU66XDppFCf2Bg7QQr59nyykj9ejWaoW93TSkk1ufXh3 consumed 4765 of 200000 compute units', -'Program EU66XDppFCf2Bg7QQr59nyykj9ejWaoW93TSkk1ufXh3 failed: custom program error: 0xbba' +'Program G36iNpB591wxFeaeq55qgTwHKJspBrETmgok94oyqgcc consumed 3506 of 200000 compute units', +'Program G36iNpB591wxFeaeq55qgTwHKJspBrETmgok94oyqgcc failed: custom program error: 0xbba' ``` -Following Anchor best practices and using Anchor types will ensure that your -programs avoid this vulnerability. Always use the `#[account]` attribute when -creating account structs, use the `init` constraint when initializing accounts, -and use the `Account` type in your account validation structs. +Following Anchor's best practices ensures that your programs avoid this +vulnerability. Always use the `#[account]` attribute when creating account +structs, use the `init` constraint when initializing accounts, and use the +`Account` type in your account validation structs. -If you want to take a look at the final solution code you can find it on the -`solution` branch of -[the repository](https://github.com/Unboxed-Software/solana-type-cosplay/tree/solution). +For the final solution code, you can find it on the `solution` branch of +[the repository](https://github.com/solana-developers/type-cosplay/tree/solution). ## Challenge -Just as with other lessons in this unit, your opportunity to practice avoiding -this security exploit lies in auditing your own or other programs. +As with other lessons in this unit, practice avoiding this security exploit by +auditing your own or other programs. -Take some time to review at least one program and ensure that account types have -a discriminator and that those are checked for each account and instruction. -Since standard Anchor types handle this check automatically, you're more likely -to find a vulnerability in a native program. +Review at least one program and ensure that account types have a discriminator +and that these are checked for each account and instruction. Since standard +Anchor types handle this check automatically, you're more likely to find a +vulnerability in a native program. Remember, if you find a bug or exploit in somebody else's program, please alert -them! If you find one in your own program, be sure to patch it right away. +them. If you find one in your own program, patch it immediately. + Push your code to GitHub and [tell us what you thought of this lesson](https://form.typeform.com/to/IPH0UGz7#answers-lesson=37ebccab-b19a-43c6-a96a-29fa7e80fdec)! From 7fc2435f257fa0bf920167c4635d207b849d9e94 Mon Sep 17 00:00:00 2001 From: Shifu Date: Tue, 24 Sep 2024 07:47:00 +0300 Subject: [PATCH 057/206] feat: update Mobile Wallet Adapter lesson (#451) * feat: update Mobile Wallet Adapter lesson * Formatting update * Update again prettier! * Formatting issue: This will work now. * Readding accidentally deleted export statement. * Fix: Requested changes. Also removing yarn file * Fix: Prettier formatting. * Fix: Prettier formatting 1 * Test readding yarn file * Misc * Updated links to point to knew repo --- content/courses/mobile/mwa-deep-dive.md | 186 +-- yarn.lock | 1555 ++++++++++------------- 2 files changed, 791 insertions(+), 950 deletions(-) diff --git a/content/courses/mobile/mwa-deep-dive.md b/content/courses/mobile/mwa-deep-dive.md index 023a84bd7..db3ed3a55 100644 --- a/content/courses/mobile/mwa-deep-dive.md +++ b/content/courses/mobile/mwa-deep-dive.md @@ -15,7 +15,8 @@ description: - Wallets are just wrappers around a keypair, but they're essential for secure key management - Mobile and Web dApps handle their wallet-app connection differently -- MWA handles all of its wallet interaction within the `transact` function +- MWA handles all of its wallet interaction by wrapping all the wallet's + functionalities within the `transact` function for easier intergration. - Solana Mobile's `walletlib` does the heavy lifting for surfacing wallet requests to wallet apps @@ -147,7 +148,10 @@ authorization request. The returned `AuthorizationResult` will indicate the user's acceptance or rejection. If accepted, this result object provides you with the user's account as well as an `auth_token` you can use in `wallet.reauthorize()` for subsequent calls. This auth token ensures that other -apps can't pretend to be your app. +apps can't pretend to be your app. The auth token is generated during the +`authorize()` call, and subsequent requests from the dApp can use the +`reauthorize()` method with the stored token to maintain secure communication +without repeatedly prompting the user. ```tsx transact(async (wallet: Web3MobileWallet) => { @@ -212,7 +216,6 @@ if ( connected ) { signAllTransactions(...); signMessage(...); sendTransaction(...); -} ``` For MWA, simply call the functions on the `wallet` context provided by the @@ -252,6 +255,24 @@ transact(async (wallet: Web3MobileWallet) => { Every time you want to call these methods, you will have to call `wallet.authorize()` or `wallet.reauthorize()`. +When invoking `wallet.signAndSendTransactions(...)`, it’s essential to handle +transaction failures gracefully. Transactions can fail due to various reasons +such as network issues, signature mismatches, or insufficient funds. Proper +error handling ensures a smooth user experience, even when the transaction +process encounters issues: + +```tsx +transact(async (wallet: Web3MobileWallet) => { + try { + const result = await wallet.signAndSendTransactions(...); + // Handle success + } catch (error) { + console.error("Failed to sign and send transactions:", error); + // Implement error handling logic + } + }); +``` + And that's it! You should have enough information to get started. The Solana mobile team has put in a lot of work to make the development experience as seamless as possible between the two. @@ -269,8 +290,11 @@ sections; simply try to get a sense of the overall flow. Solana Mobile has done the vast majority of the heavy lifting by creating the `mobile-wallet-adapter-walletlib`. This library handles all the low-level -communication between dApps and wallets. However, this package is still in -development and is not available through npm. From their GitHub: +communication between dApps and wallets: + +```bash +npm i @solana-mobile/mobile-wallet-adapter-walletlib +``` > This package is still in alpha and is not production ready. However, the API > is stable and will not change drastically, so you can begin integration with @@ -351,7 +375,7 @@ user's secret key to sign the transaction provided by the request, send the request to an RPC provider, and then respond to the requesting dApp using a `resolve` function. -All the `resolve` function does is tell the dApp what happened and close the +The `resolve` function simply tells the dApp what happened and closes the session. The `resolve` function takes two arguments: `request` and `response`. The types of `request` and `response` are different depending on what the original request was. So in the example of @@ -383,7 +407,7 @@ Which response you send would depend on the result of attempting to sign and send the transaction. You can dig into the -[`walletlib` source](https://github.com/solana-mobile/mobile-wallet-adapter/tree/main/js/packages/mobile-wallet-adapter-walletlib) +[`walletlib` source](https://github.com/solana-mobile/mobile-wallet-adapter/blob/main/js/packages/mobile-wallet-adapter-walletlib/src/resolve.ts) if you'd like to know all of the types associated with `resolve`. One final point is that the component used for interacting with `walletlib` also @@ -426,60 +450,57 @@ app-wallet relationship. Before we start programming our wallet, we need to do some setup. You will need a React Native development environment and a Solana dApp to test on. If you have completed the -[Basic Solana Mobile lesson](/content/courses/mobile/basic-solana-mobile), both -of these requirements should be met with the counter app installed on your +[Introduction to Solana Mobile lab](/content/courses/mobile/intro-to-solana-mobile), +both of these requirements should be met and the counter app installed on your Android device/emulator. -If you _haven't_ completed the last lesson you will need to: +If you _haven't_ completed/done the +[intro to solana mobile](https://github.com/solana-developers/react-native-fake-wallet) +you will need to: 1. Setup an - [Android React Native developer environment](https://reactnative.dev/docs/environment-setup) + [Android React Native developer environment](https://github.com/solana-developers/react-native-fake-wallet) with a device or emulator 2. Install a - [Devnet Solana dApp](https://github.com/Unboxed-Software/solana-react-native-counter.git) - -If you want to install the app from the previous lesson, you can: + [Devnet Solana dApp](https://github.com/solana-developers/react-native-fake-wallet) + by doing the following steps in your terminal: ```bash -git clone https://github.com/Unboxed-Software/solana-react-native-counter.git +git clone https://github.com/solana-developers/react-native-fake-wallet cd solana-react-native-counter -git checkout solution npm run install ``` -#### 1. Plan out the app's structure +#### 1. Planning out the app's structure We are making the wallet from scratch, so let's look at our major building blocks. -First, we'll make the actual wallet app (popup not included). This will include -creating or modifying the following: +First, we'll make the actual wallet app (popup not included). This will include: -- WalletProvider.tsx -- MainScreen.tsx -- App.tsx +- Creating a `WalletProvider.tsx` +- Modifying the `MainScreen.tsx` +- Modifying `App.tsx` Next, we'll make a boilerplate MWA app that displays 'Im a Wallet' anytime the -wallet is requested from a different dApp. This will include creating or -modifying the following: +wallet is requested from a different dApp. This will include: -- MWAApp.tsx -- index.js +- Creating a `MWAApp.tsx` +- Modifying `index.js` -Then we'll set up all of our UI and request routing. This will mean creating or -modifying the following: +Then we'll set up all of our UI and request routing. This will mean: -- MWAApp.tsx -- ButtonGroup.tsx -- AppInfo.tsx +- Modifying the `MWAApp.tsx` +- Creating a `ButtonGroup.tsx` +- Creating a `AppInfo.tsx` Finally, we'll implement two actual request functions, authorize and sign and send transactions. This entails creating the following: -- AuthorizeDappRequestScreen.tsx -- SignAndSendTransactionScreen.tsx +- `AuthorizeDappRequestScreen.tsx` +- `SignAndSendTransactionScreen.tsx` -#### 2. Scaffold the app +#### 2. Scaffold the Wallet app Let's scaffold the app with: @@ -518,45 +539,17 @@ npm install \ fast-text-encoding ``` -The next step is a bit messy. We need to depend on Solana's -`mobile-wallet-adapter-walletlib` package, which handles all of the low-level -communication. However, this package is still in development and is not -available through npm. From their github: - -> This package is still in alpha and is not production ready. However, the API -> is stable and will not change drastically, so you can begin integration with -> your wallet. +We need to depend on Solana's `mobile-wallet-adapter-walletlib` package, which +handles all of the low-level communication. -However, we have extracted the package and made it available on GitHub. If -you're interested in how we did that, take a look at the README -[on the GitHub repo where we've made this package available](https://github.com/Unboxed-Software/mobile-wallet-adapter-walletlib) +> Note: A reminder that this package is still in alpha and is not production +> ready. However, the API is stable and will not change drastically, so you can +> begin integration with your wallet. Let's install the package in a new folder `lib`: ```bash -mkdir lib -cd lib -git clone https://github.com/Unboxed-Software/mobile-wallet-adapter-walletlib.git -``` - -Next, we have to manually link it by adding -`@solana-mobile/mobile-wallet-adapter-walletlib` to our `package.json` -dependencies with the file path as the resolution: - -```json -"dependencies": { - ... - "@solana-mobile/mobile-wallet-adapter-walletlib": "file:./lib/mobile-wallet-adapter-walletlib", - ... -} -``` - -Let npm know about the new package by installing again in the root of your -project: - -```bash -cd .. -npm install +npm i @solana-mobile/mobile-wallet-adapter-walletlib ``` Next, in `android/build.gradle`, change the `minSdkVersion` to version `23`. @@ -566,7 +559,8 @@ Next, in `android/build.gradle`, change the `minSdkVersion` to version `23`. ``` Finally, finish the initial setup by building the app. You should get the -default React Native app showing up on your device. +default React Native app showing up on your +device./environment-setup?os=linux&platform=android&guide=native#jdk-studio ```bash npm run android @@ -666,13 +660,13 @@ export function WalletProvider(props: WalletProviderProps) { try { const storedKey = await AsyncStorage.getItem(ASYNC_STORAGE_KEY); let keyPair; - if (storedKey && storedKey !== null) { + if (storedKey) { const encodedKeypair: EncodedKeypair = JSON.parse(storedKey); keyPair = decodeKeypair(encodedKeypair); } else { // Generate a new random pair of keys and store them in local storage for later retrieval // This is not secure! Async storage is used for demo purpose. Never store keys like this! - keyPair = await Keypair.generate(); + keyPair = Keypair.generate(); await AsyncStorage.setItem( ASYNC_STORAGE_KEY, JSON.stringify(encodeKeypair(keyPair)), @@ -688,9 +682,14 @@ export function WalletProvider(props: WalletProviderProps) { fetchOrGenerateKeypair(); }, []); + const connection = useMemo( + () => new Connection(rpcUrl ?? "https://api.devnet.solana.com"), + [rpcUrl], + ); + const value = { wallet: keyPair, - connection: new Connection(rpcUrl ?? "https://api.devnet.solana.com"), + connection, }; return ( @@ -728,6 +727,7 @@ function MainScreen() { const [isLoading, setIsLoading] = useState(false); const [balance, setBalance] = useState(null); const { wallet, connection } = useWallet(); + const [errorMessage, setErrorMessage] = useState(null); useEffect(() => { updateBalance(); @@ -740,6 +740,7 @@ function MainScreen() { setBalance(lamports / LAMPORTS_PER_SOL); } catch (error) { console.error("Failed to fetch / update balance:", error); + setErrorMessage("Failed to fetch balance"); } } }; @@ -756,6 +757,7 @@ function MainScreen() { await updateBalance(); } catch (error) { console.log("error requesting airdrop", error); + setErrorMessage("Airdrop failed"); } setIsLoading(false); @@ -769,7 +771,8 @@ function MainScreen() { Balance: {balance?.toFixed(5) ?? ""} {isLoading && Loading...} - {balance != null && !isLoading && balance < 0.005 && ( + {errorMessage && {errorMessage}} + {balance !== null && !isLoading && balance < 0.005 && ( - )} - - {MovieCoordinator.accounts.length > page * 2 && ( - - )} - - + +

  • #rEbO$xW$aR^7f7=x#avPgK8(Bj1>;*e?9Zj0h4 z{p(dOw7UC>cJOhODTiQa@6fK7lIqbMI(99tY3=UhnGDwzG5!Z7Db;5Cs}^w(k_n2K zJK|TV?(gjwUykLgr{w~{cT?J?6V26NPAt$0M`>l|)Jj#>DsyqcuJVwbFOS>tIu+mG z59Qmyp~*D6s{3=>c42IY__{39$(3=_m{8Pju=J z+}$FXag8mRw;Jo?_Yh27>*~$B6~XJJ+=)Qy@bf*3ed(%w*_F~)>_1F;fBf&FOA3+z zdt2KELhIgUi@}@k(rm}d7vY5wANV0(5n`C%3w{TU{?~ZqKKhW`cdh4z_`U9>mwQ=R zDGwPZWqt*8r%wX(C^<}#3J9|6o107Jfl>C5k;QJQkmp(Etx4fa#EX; zdJ5q;t%ZI0At6rqSw0Gb*O!?3<(=5cVlEeyT|_puTG&Mwe385r!J94H1^@>T_@=cX zs7;?eXKldwbBBxIBXs`OIcmeL-#dqG`jC@I(bl_u;`$JrhR>fmg1zk7>qU^Dw0!Su z5xjOWqf49`*RgE#@!hSQIMw;X7BuH2q)C;AGF1xGrB9_yfkOJJX;Mt3N+AW+G!&?) zr9fd~I`vXnuuMZ?%DOe{R7_o+DphLK?p?h8dG+q)+t=@3z<~u1CS2I?VZ@0QFJ|1> z@ngu5B~PY&ms~z+c44B#OGp$eQIpyr8r5nPqBfpeDG@={I6Ixr zNqRL-I;}`~vLnb7DN?_2nnsQD4l7oM=FCAP%C*ZvqC_3CBmDJqR(EhtBGrjt>(||{ z6ZDODkf>IZMjdj_ij*ixvjt@`pPkigmn0cZ4(AXNjuk;%@}!eO2o!`l+~CuVH=OJ^ zL^x3jA?Uf!JZU34(_YJoJoD-k*rO#~*vlAx9p61R_XUYRT~iBz!U}NS}+) zVMm{PPD*K|mRy2KCW3as_8xoKnJFlrfKrJaitHMyD7-A8OR26xNs1||pfbf^q}ocV ztES>IW#Up0K5OBLoBHGuhyJ0GisFq2zQmG8OE&prlv7rDWtLlZ`DK`6mf5h�_e* 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

    V?Eu?W`CFm(HfBM-%V z)cOth<>C!g)k6Ftb9w~#kNbs`;^h+++=UJzhT=>lFh(`NH@FVYdN(#)>0zxesEC`;oaT1ZngA0%8IrR_hf zpa9oFbO+>-(5+ruvtrLZZ*mL>(Xt9nkF5#?xGHZ?gMgG|o!z0p1gGu-Q4d@kQzHvL z5HH|hQe2@3K)AV0@fdcDbIZKy*CX`jk7xi;Xsk?NPQ*tOcwMpGwue?fEA&*A|~Zk_I`mMBj|sF|AS zeeR2X2CChphkjm$S_=+1BQoNtN8ywTvlRI9z1drukHHted&~@tvEFB4X1k*O$W6%4srwf(;GCR6hb@5yy z;ng(Df%$7vr!xArjSCfDwBpqFON+e5Hd8{7z)>p@LY24|qPgdnCbKu@TeM{pS){J6 z+|6vv*it!u=r8xK{YBpKgS*cjt4J^hL#`nD`R=;4uyLcZnSq|I#+}%zpO5n0#@xg> zaj>9p9u~jicf&K?%Cb*N33Iw^lG52QT}pLnw}Fy;y@2E1@$*uaY&Q`*T3q5FUzFKn zIi=f`3$V-KJdA*`ZQ|!@RkoduSnZL1(KofPUsZ-b!L4))L`019>btE)kTf12j08I? zhu>}qa=X`bsWJjQp1LTf@uq;P&L@OpDzc|l<> zzcM66x$6qsnciZ9X3{X5wJ2SYCu=$Fo8>!xJ@s$r`;%@K+;ruEt#9*L5$>?Q>`V`< zy`Xx{uKs~sxOITCDj5_zgg@OxSXQ5)cswtAvwf$XUB#mp%R-&{#zu<7f5fYi=Pq#- zNV_Dd-Bn=8m2>779a)MSe*la`sb{GHI);BDFEH$f)ow<;+c>Me`pxJ9`6QD|l6IK+ zZ4s`|RpmctzJD&5oo+%FxVD!uv#`d#d3-d9|1Jjf@xy_`NSA!Rjw$kc$!0xu(-PwX z$y{pZj!%%eYhQz&ujPG^V1yNFkHSByEixCBZ2469IVC~Mwc8jgMBgUD6rEs<#JA_% zkLT7UuC~Ng-`6lL5sc@8bSIch)W>1Krq$fjp*_5dsBLZCu+X-1p(0yg)ii^yxN4kv zup+!M!I`d1h_{vU3B|5N)B25qUeHnzFT!_u0<<-_OLCqnJJ(3XR3hBEA@$|ZbkcBv z)uUt!kqASy0u5)Vj-UnJq}iwd)N{dd&|9aR z5sNp$8gk`7?0R<>jWj;WF*1!v@RI3&@aVcS(5m z?&);LouH0n<9X}@gMo($LXiDV{@!x>VK9F!UIS1dxh7=lqR}u}Bq}|qHEf#R2u_;U zrHyGq0aDB~5;C7-i|g?v8~wL#52ZQLOq|CSZj|3B2k4Q7ip)yF9JI@qhANt|gb{qA zs8VT>7#suEqPO63LLb(0M|6l(g+08AMuIiOPB{a>Fqu0wNX>#59eB1>MQo0rEEr~~ z;)x_hvhg^Vnu}n&HY|D%UkHa-HuPBZ8IJJUCl3_mboMun;Ve}mv!y)qd(+vTk60w2 zM=3K7qqAP4b77+|@uTy(qYLGui&UqI{?VnG(dCWNmBZ23G-G7;u~pHrHI=b-!?6vA zu}!bBH(_IM@nc)LWADnxwwuRx`p0%>#`ZSG-XD&Apc&t1A3qQs|EMzl$#DG8Vf@Hz z{Bzj&7yS5f?)ca8@o&xJ-}}dZ%#8os7^fVL|Du@ya7+NjCP1naV513|(-XAb6O<7g z-xf}S6c4YMplg|+ADCd6onYLYU^<#$rkzA^OtOegGRMaA&*OL-ZRp52)~k~z2$RUX zNv?`X5pTJH;Oh;vm@2%})v%O^KeK5@Vc_=$ujqrr!g8(V0@qo7P;Ok_fiZ z8kp9pn9`n|);*dQ*qqkmm_f%*qQqtljAocrXAHe(jEg6XuFjZ>Ihf|nQ1fohTV^ba z?JZ|#tWVopAI)I)>@Xa&b`5rRsq4+~X_I-#3o>7uLqeviJL#Dck}4uOc&wHP68*sQHwJSDmA;y7pXC8=M0g6FpAN;VK}`$&k|d z#i$0_2;_Vt$E(28Nl~MOi2bB!GQ@>Q@UMo)cg$0>Mfap4{?-xHpES{bX+a(ay*c3A@H27Jdt9#=Qnt^uA(Z`zYyM#Y6zo(Q{z#W5Y{F?3u}{=R%Df>GEiw zcP$l(xu3d3TNC>VK0rIl;a=_TNlMK~tV2+Ljjuzk95m0`r80WZEuWK5^o)zxkV80rZdtab zY`p7QEuD2=IdT`S#E3jeGJ>qY`OcphTyXP%hBiV{GS+_#OdF`ZrW1SpU2N%NMxw6< zv}f7NQ~cruelI8MrAVix!3J_^MUq%1t^E^tNE@wFG6Z*&Bp-C%y~N(gdYS6L8a?kB z>h01Vu{bZgc(*0xs@x{ssF&Ci7y60|aTFM|neT$w`^{!rA5Fej(_NU>mXsK450~yl z&U;C&@7D=NzJ!au$b084`4>v5_dwJFJ>h)l;Dj5=IW9jbS#I@cX2$NiqsE)H9Ddu# zQAcE~qvOQe%W9q$8E+XH-UW%-nxCC6e1a(%e218QcWN1P=ge{n#g9aJJ2{If3)({J zZWmc^7s)2ZMQqD5ZcF`4I-kE?+d5TubE7d$ZG@IXPfF zHFzy>sKoa9lbyb~ooB6q)g^v$v%A+v-|y;Q8rL|oA7;8V#(#;qW%{$_G}>sd#yDq| zb5i}%xB_9X%Q$dR&Hl>>&Wv$KXyMX|_@un|xa802dVbcE`2n-yLCgbFUsUYk+~1q< zy?=XgPr}`X&noCiP|z-9QmEL5^VA;w&!GJ`6Fe>B(2R+tYXOI?6Kqzta{px!#Q2+Q zIzkHtivpAYRR9102n2#aAZpYd4Gj%7?G6HgK%r0=3DU6zdyUrKP2%qobpzr+<^HjEsy-OiXWnm4$`n%a<># ztgLU4m7SfPgM;IZvvP59y@^&HZV6rYimnkZ%^#tfdAtMuA?J{lhX$$Cyn*+FIG)pE^DsJU?%}x~jRoEq-{& zczQ~BevW>535P;Mq0kU0H28lN1cm-jFE2s=)pOAEzj}H8=b8UlQ+!Ez{TTWRO$wua z1_JIMTlE;}lCi{His_tuOM7Fh{83L)b#dx{@)J~Xl?dTeB8*y$akVt4HJDI_eo@Ew zUL}X+NhnkQZOnZbryToL>~XqPJGI4}-rtu1=sGNxj``;9teyHLVs!H&kw|kkc^{?t^N#$SvRX4=d;DAkWaQc6fQ*NzFL4EVMh&@ zV;)Rg6gA-~+gg9p4mR`YTPtOs>2svlLUctKMMd_9w5zSJ0`cifUT`J#EWct`h?L~>QZCay)+hHYq zEA{bjSlIs=>ixDz!o(p}!WX@*hi{AFKPw&%E;i2R|626$@Ck`X35m&w-UgwOl9P~9 zkdaZ6kyHIYBBubqML|hTNku~iev6hKOy^C(kWbDK52muECDNjyV5O#`r=h3*zehvM z@D?o{{u2uu^B0aUtQ>6YT%26Ie0+jp!eZj$Qg2pYL_}Or zNQ_TFl#5TClUJ03N0^OEkeQ8-j)@CQ&q+!576&Emf1+Whq+zG{PvkW0|B8*A`oAKh zW+S6!B?JF=Ur53Kii(AliiPAYO6LEHf{FOQVk9PKBqC=ZB72LTko=zrNa^rN=Rc8KIOr*+;l!^>A zN(}Ux3=H~=3|1_RUTiG!?9Az$%q5)675|QlrIPzgB|pb+5utkNug#*i(*nU8Txr|P zb=ySk3uNUb0`3m->S~HADsMjt-cnFjR!~%uS5TDurXVBp?Vs6lUuEUx6qJ=zR8`be z)il-BH8nLfwf}XL;O#WQ+i`;bq@$sur>&!>qpPR;Kk2^BI@i-T(AWRxnh|{iBLhPt zLnC7&6H`l5BfIZLKkUB09TaeN_waZdyy_ni92y=K86Fmv6y#qXU^nb%uovaD86P&1 z^s6y7wJ19)yD%@ixVX5ew5qJ4y6R6;ZGF?h$8jgG?_%M&}`8GYg~BbN^l~|GdMOtjg~6|NoHrQq}o`@nEG=?ZJO!KGyHS zH<`a%XUS>LzAROd+Ts0gnO{7aCmB!kADJ(m@pcdQ?7w9`W?4ttXfpFrO8jDLjrsJy zWd3r4-PS)czjC$N<^L@6@wu{gh7&I=AR{S1+Q+knp77pee!KlvoAvUpb$VN6mCi`Pv6?EC9x=;EAF zo~zean(|Ig`&-e1NYvXgS{qk*92*hSn{hJi2ix)T;?z68lvQsHO_{woj0D)CD04W= zB9(IFoj+LYrkEF&6b8N&&uJ#u^-=GoJI-0`Ww=l}Q$%Rk44NbrsJgN}tRYEIjxjj7k-BG_|!LPCT$ujAq^gtv#G~(|Z|KoXgH0Mm%m2BNq?oX`B z73ZT9MTd>0XpUu{ALG1hg=MEH=L?^Xo6q}bZ4$l$eg)vq?$`#8BKr?&C+2Qf%t|yScP6Gv=h^1#Vp^qrcDbjhLZ>B!6eQ&nI| zRHSxY6pwC{9f-%q-1E)Iq;89Vga39hP`YAf%f?JjgH?^qp zQT1x2;MBw*j^SukzDe3x+?nn+_;!&!A7Tb^J+ukATAH=K8(guTY20 zsJl_OWxV!Bb}oC#ZvA&pLHzs7Xm0!6KK=edtUb(>hho-RcLTv34vq;27GiG1GVeLs zI&17){C&b|2z#q?etpkA_v}#WWigfP{>+m1d6OyYy|sU|jZ2;t^gu+Jy%;vCEFb74 zDMPBD$)5E1p)d3~JQt&=nDlj(mX~vQ5eBt48ve5k-lLBM&(cNI&suoGYm}9V+&^Dp zB1P~J9ya(MV*$o8(iSo`+M3Tu!h<{Z(W1E69FNXevl0Fh?Ft`>eOUk|_|>?BC=%mS z-B|UD$kYp*`5*gpA{4f_*EcX?S{Q5o2?3YgZxYoACl7mIKj_aPIBHU( z(skWqNu$aj-8QJk4F|BunaCVLN?1xXtS&}}78q@cZ-nOpRn{aU!X32bw-)A6PGTq5 z_~mOF!f*;3%q(qzVMXVkbHZi9(gfS%-S{z4oy(A(qp4M^OH3;e_JC1BdMb{eD!B=s zIKZtzti%M~_sTq&w+AQMCFG*;`kWN5x1QCCc|GW^D42iYs;ZD}M{FumcV{CuLvtx$vN6Ui+ zl>SKPiEg~%^hDY3no9P9N~r>?b8K<3k-5&(X&&X!CB!mz5FsmOJ#@s3KfEi_n69` z4z(f|B6wW5Ve#0F#v~dH&HLHTsBnhq&2T(~~`oCi{3xuvAljGNRnTUcKG2NCQxHvLaZLCNz`VR_o?Jzakqj`hjI|qvU_?kErJjzvPTJ?h{6KJ=s@gH%z z)q^;neIqmhcR0VD@U;6oy8w~!zZRmHJPHBaC%U-9qw0t(F(1CFBC%3$W7agyikY%D zKdqjtMx_3}Cmx~vT4TqrE>i~^X|urf`7xwFbB7ttK0wxP^8U*&TiF@oUw*i&E8+Fdq5u6(kEmVQ{RYjeIuN2 zSnt^*>?7SB;c-Xr`dr=bXqybTG+y{SF^bPsQNL=!%{1@ontOWZBzr~E^5~mwFc5NLg$G_ z!RpqN7yg_qv9K>>$2ac34&v4Ca{ug*K7yX*$SSV?WDhWr8Or7SU|C+O5N@q3ImHY` z9{e^Np?O|RG@u@I7)kQveVz9?YXM2Vjd>{d+zYo2t5zU!;~`ry&)^O{I4~{ez2*7w z!E3T(t-|1!a-;DM#j&FXSg5s0?HbaIj%v`Y>cdV+ho>w)jxZ&Sa}-eBj{wi|^+`$M zXDgi%iikPV+THl;;3Hpw6{TKpfbg9l=O#KDh!qXkBlv#72ME^xNG{vW1lXDbh_Onn z1kemHDPv)q>nE7+cBusi8g)#_mLX#ZCSesh0&3KN6so|Cb-A?|z^(|!k*M~F9UypH ze%S}8dy9rS2N?1J^vl2RzcG3ymm1awj54VWbiCj8ce0`SdElp(wT0zTU<6UaTmK1! z5=(F0q3xP_)m#(q+QA>1VIDMiX&Hd-?}99Fyibw6MK*%$aDrP%yd9IdZj!L?I1q*> zy!|*s+OECNF@2zgor>2^Si0mu(0vGSz-Jr*$W`=108?N z3Hbtfh^46R(fVT?geK8S=KL6O{F^2G#h8uy*ZoEB&|1ZSBiVqsYn>rG^-V#GZFtWi zbO2s5U?>?dd#A0u&+bydrX9~br2oE_l1K*yLl5j_EfGX^Pk6wAkTd~O`4go5b`W14 z^-vuZw-9r`18|ju=_ZM>-xzh=NO-kC)7=4Ig@pm_fbY)6@C?EB#t8{AjE)KI~sQOu>SMNLa@}Ui`Hug zpbs7TeTdk7OCP{s?#=}EuN}~0W&OrtCi@pGT{;5{RE-d<*A_085)lH9-A5$WzL#f@ z#Q70%)rqFfuCt62)FgqqS46l!0UK5Y8!i~7Y!GG5iI7Z;XM+>19vdyZ5oGZ|X!DmQ zp9$d^jPc5ekWU=ruMqR@P3BW`pf2J97fsLnIfc46#E3FsDo?nuTNL|e;Nnp_9+u%s-g8K&H$C8wCw&Id#xr51ow zO-%qJF+fa1BOX|(y7|;U#ql*7DWg8{-0ER6i?FxE1piksyxZM z9qRA|K>8sa^9!h|_Vb&}UycECeJ1KG$`I+y7+TNJ)(AS@0O7}=JnMsqIugH|gNm3C zB8XE?^g+Eo@FE@Wa8(Pr#{y!Kh2BQcf6zEffqJi$akYl;o=5?}}M>DOpd0 zS)QTZNYvRgniZ+S*=Y*Na3R?>MRm^o@l!fWMJ2>Pi6fOqBeb@k_4mT8ko*?=fZy3q<|^hx7~PgG7Y>0EN|otMWkW z?N8g&{#BF#7l*2X8}gY&`7~Q-Ga4e~JR+m$>SvQ^sNop%ebBJu_{w|E;Mh`>xD>Cx zDwN?WSP}Vmf(AvdLx5iNA`yK+SWJxw%)4##B9Uwq;gAyhgP^nt*yED&SM)65Sg&E9 zpp@)dnKFP}S#i2NU~H#2#}d?6RXa)yJf85983u5pmgs2$B02zs#8IiKUNTyM3_JLf zl43i_5|wcH-$StJk7y_T?+h`TyaFlrg}4l z!grT~M-JinnGhZaFgA#@t^=MK;H_-%q zy!p?|C1RUw6yE>D>HfL!u1>3){h7SsJKaS=bMsfqR~Vr{CC<*~z#gq0aT&bXaJ05&LiwzLD*iNuXRES(I9~LzD4h=PcLpu+c(-a0*~NdO+Dn=jrbF- zLKm6F+8Dv^rThB8J|zNpzDgd#LhgEO1nvSs0FrPR-kh8w?H|TQjDNY}%itTBz2RXS1+u--P zm`Cm7Vth*vs`F@7{Tl5{(_0e}e5BReir;_K{MQp7^fqMIU9;@_2-*ms!}IG%iw6qU zGi=BNV5tM(`#5rf+-R>|9>CieN(>xKPx(&P#9K8$?UD3#W5B8tSpHR{!^gWrzIxYi z@IHO~OMExaNcZ68;Jf!26CarnMTXvYGl`ZDy>FeE87?^72nyAYHX90RXz{A^=xw)} z?4awD_%n=?(TbN5q>7jI{JjzHyhHQ?I#O5KcfQ!ul3pro4*8KI-F9 zx?3E)^1Ul!vwUP|Olo7y;UeoXeMXv|IJw0%*T7aUS3~p<8fX`2;166xXJ7O2csDws z`!XxpIaK$j-}V6(tTXBB-qr?~Qi*`Kw4ORVnk=R%c2RGK!JqGznR*|Qxff$VBiksP z)+voQ>ag0_iC>B@SQFAZ>I3ZH9__?CFNP^!ASv(IXKFRuEMGFu5?$?@d>`_aU@5ni zNLJRC6>hc|c0#{(sl0;FPzR5Lc%W2z7`Jsn(5F#|cG#+QK_|S#3Ow%*m?q*|Hplzh zo-yCL(wV*vI3_N%ef(>O+BO0$Ul~4cWN7UGmPc7oXTsA>vo8M)p8)i(zl#92tv>h1 zjJ_*E$8t*ROsB20K7#Fvq;zs^f|_T!Ys_TvRphO%K|K|pTLyKjIZ9WTki6DwE|zLw z`@*<8%ysHZe7x;Sm+Ox^y=XSDct;pz=R*Kx+)stLnWbbp4d9A0*VOV5`qfD5#>g;~ zWSIW*ryxd##0u`Z{i?EU4akWL1ZXprNIczt*v2mxoO@UjqW?}XlCoQW&1DgODilMU z09*29O<8y6m%@_w&m|DXIYjM+MD4xL+&|CRTlleS+X*a_e}4zq zPxLx)BiRp@+(-Vr$K!vHeTox4wtu>@Uj~1WlX+O0d0;bkU^ljd*>G6RkCP{Nm>+dm zlX=usiIrM8Xqy>=z%SU$f9$4kRG+!uD0e)RdDtqK498FN2sbgzf8toa5tfyaEk$3pMNV!fMa zv}ZEn_MW7bns`%_EwQ`z`q|LJ3uz%v}p(-`zP1OKtL{dr{V zc?|mc{O$Fr!~3X5?M`2Sm43l2B zCs|=jJc@wN3jy~d=@;uYXvV)~KD|y`0It%mOe&i-q$fpbPcDOzd0#$PERs+x zRrx@%P&R`<@UzO{O!i56z0rZ(k!s~B#1jz}3!+|qzL_EBt_sntzglS`xU*iMYjQe) z^roqu>9%>kKoRlP&-LFfydV-!SHCdqizE;T!pCK*vwbPn?fVD)k7e+ALy-tHug#|l zWV6KSZ!Cu^E4telzOq|u)_-4Xi{w$ew1KpGz9JE7-`l;(eB?qauA6^kzCbXc&ZFbu zY=vGw!w;vqIc>e*NIqxwrKL-o?gV%3|CagumqUyHTjrntJyAUzYd&jxKVE*ZNqyGh z>X63xADK_i@E7KP%lz14SQQ$(GWZVwTOp+HKhT8%X8C`_@oanS`G8-y|Gde31Qtn> zVDh-4PfF4XWteMH6TL{|@yrs`Mfugzv?VKlB;}Gi=K;RB}r5 zDK#0~!(B?>#Q!7n=X5Clk@*LuwMzey`Kra=G(NH^D}Lp}98*?n{W7lkZ<$YVJ*U&K zqdKG;{vVl7Jc+=j!J1?}x5$-4P^Mz_FPRVYtkv?ot2@{F@n14uoz*c`<)@C~vgefs zrbdL?k~>vlqoHNp4u?_X+Es&ov;Y#9ajb;%!Fs|+)kfJM1D#8yk&bZF%QXw0$9A+g&g{euIzx$dRvch+pzW;7V zN^3XzAm?`AoQ4&y5?WU1hON6Iz5`FNTlfU80x{*8E5F-K`%}@4#B0}yOr>4(=bN0H zazcvDVp&m+E{|=g!bP^jFyqg_Zw=JWfr*;IUxRQ>nQTT9jZzJeQrgsrPS3jZg87^m z&9V;c@;`AjYt#}&YdUDWGgQV@1Gl%_59tWCZR%|IY0Yi)7$9dD>bpi@S>$pA-w^EY zwz;3}L42J$wToIkuEr(W&6ky=we2}@+lO`*-0lce*FQP+y1d-1rRz3)yXZhxoa9yK zV|1Gy4yT7=3}7Sf4l~Sk69%dK!UNWQFk5qokysmrK+Y5XoC}!LqMX7X!F^HIOt`}rs6Yv&Sj|G zM`TJB0-EAc|2Jp}f*WGPrvW?Uggt-&t zG1~|A@n%DCFzP3wy%CIw!>_yId+ZF(^Wvv1QT`^c#wgtJC|}6`K~;$$#Z3Fr3l`r9 z)7f8lC?a03<9&ct%r#W)^wmur6N=DSfWs*vSK=P?1z1lS;%u4+PfZvAbp_=UMka=DcY+u5HLHM#!4! z*&?`(xJUwXv7o>%vh3!bKvtNhLZ`+p{EiXSFMS3;)umpXwQ~s;zdRXsx2hBz^9VLA zefZS5nL_qRN+ijRibtR6A^}88`7)6KZyX1Ev+vqVxwDc^lwleE4$ELVsvac|edIfj zWw1+!zrwj;2;qP>x~l<~rx(nxXVG7<1rn{QriQtDOnr1VAArsSQ<(KG;yMJ}&~O8N zKY~+mKLLqkU)$S!rPBd%DQklW`+PFO;RPVIrrjv8UcV^HfKosGFAjmeejx{$z{_32`4GbF z)aAPUt-ifgu@uV|`r!(i9wWs;5tCrCf{koX?Z!sW2x5!d2-5(tyL;gFv4PSSbeQJ; z%z`b9DZefb@l)1#FP0l}f7Rm)IukFpw)R2f)rV`}t~>6|uyRULh7^2i2%4(M4mk4F zg87hXD{@Nz$htu+$LV9TDg^$7s8j!_La<9L9u{fcbP3?3yU>`8cy}Lcu6tx zPW_2AxhEsI^s)W=kha#lGS4U~E@NhWE>3Ay)x-*C=Uc#QLIZ!(!6b98fGwldPao%n z7GwwdVDh(S^8{mXRY+~MK3prtRkxqwy9V;T_68kulZ{HSs|{Ins3~Lau_Ty#s1sl~ z;}EfT@-=Gu4<&KG8jA=d+f%1hBblYJhMQRCbB#tGSZ#4S3(4vIZ|woPcH8>U<7(^9 zV`XOS_cn=N3YIT_euJrez_RPJtmBPXDLwp>=_tMfyBM~|;7{dVk0Z{pISFz`P)_X2 zhD5%yL|Cai62{0<=F_g?kli5;2LE-`Q&tE&E%-3ae&|>{+iK$sg^wy0qrVw?+b&cd z-W@I@R1QGAQ9*N@ZPah=t>_#=_5C)hX>+x`)1o)*UWl4GO2Qqc#9QeoRR5(X z2Q4Vmzhx@(maXq%Vr>FrD$bPJtD!=V-ZH!XfewPGOo-OP7Sx5_LhEOs3kD^R`g49*wvdgcg)DP2x7 z!b3r1CLux+)qMK_EV|2l6-ct(kqPqW{7zXaysQ3gh1Bn?GEGkWE?wA=z)gI!E{qlv zmBDcch>$xwjA8tbt{jHP<4MPAz5j6UqhWL5c`B~%?gt~N4uKI`kmICo#Mvd=rz>zU z%i|E5TXMH$gCvr3g#v^*F)vg-0FAa5=+fhu#<<2VvwD?l(E=u7aiZIJXKmwhsJ8aF zx#`-XHrMDDF0mhbH@*FGZ8@y6U~SF+ee|AS&Qc2V$F(C>_hOdnhB4g4UKP@pa#Qcx zFK_>8WS0f8AQ_ndiRMN!Y0Na+YIQa*ex?n2m-3q=y!jVTb;4J`UNb7NiLSXr5b&Yp z2)+{?Lx^awZGoju3BJkYp8tI7)5TN#&GIL&W&FD`d@E`~f(fS4Nm%seru9aIP}2Ax zE`pjJ1?mp_B)#N+nV>gyi(de zkax4NcK;CKttO$OH)_Gq7Q)&_#9pZys=-%T_uU$7QOXuVTZjFShFLJ(!Z(PhD~}j7 z%qBt-Ww9RY8iO2N!)&pDEY6DNu)r6Ahh)(hT#v(g*~J-|7c7oI{b0^R+d|wsAl$kj z+=bGuQAIg5)to5Oz|7mNk>9I{5c5&H`;(PO{}um$e>Y#O$f!lr-EzEENYmy8hvh~C z;3!KQr-$I0jf@*(OESm=j5L)KXfn|k-i)e+j%2NkWOLjHAHe=l<(t0A_-iXWDVIlm zCLBM8vMntZt+v;#w%;89)K=zYPbXnGYRiUR_38oo_y=3=zT_IUq!+nk2GC}D8gY(` zh+c#O_#Alt8bv6Lge&7msN|z6ED)YDH@wD)d5{mru?~8Wm)_bFxo+_nzzr-vis@Ui ziNdyek#P!^cUlS!3{Cnf2?k~%NN2CW2KggC#!EWQ5aTswE97^))0U9_9?_f!+Z96j z>KCDiQjxYKD2+Q9e?9aY;cF2No6B@t)>dy)gw$Y~l;~fPt9vIH(HT~#upZ!-UR=#TPX@0X%P?fi*=!DRB$DOTC- z>O_($*e0vd%aLIMK&5brY=2BSa7ebfSaLXSWOJK%NapQD26hm#2DWP}e~rD#{Qa4J z&+ETR-+7BdfhRJ<0ta#eu2e5vJsJ;LXiVepd%qIcF)V3+qZ$16vQ1dFBH!XN217CV z5wjCk1>37-YTqaPZV-kOMl3+)HKxKgc-6Zi&+6T5tQnsm1 zkx63(1+LC91gA+vonN@*&_1GG4wAa5GLk8>H<^!EM~<05;e?Ilq&OKc73h)n#lPLv zzVA)uvpXqqWc1M{C`Aq`GSp4;U@|ePVCfu7Fw>(V(oYN4C2>*Ac$O&fip_|=Q1hvL zVzN%Ae3_=goB2GnUUR@5ip!#wV!d#Yv_lakz$(-@0?NY#gsjnQFT(e zdYJijAtT_~a>6^SrGsItIIGk9@zrBi4^h=7Or>CB8k1lai$Y0TMYVWy*0kcIDsav` zLA4ThPMt=TvS3!XcGhHPPSAeNc87W=dCs0<{<=i9H)Ym{VA}d*&e;jWE>JBNW8R@) z-pwsbk3oTxc`8_S-&tU!$ztLtPSndna)JiqyTy1MjgUz7 zCBenzs)Yon#Vo`nm7CcVilto4#MGDIw3jFZ1@zF>#fJUG?1ZI~x{t|hOJ%)F=t7zW zfsyGH(M3+-#RW@$D73(MOXXtAwL5VYo(q-MvGIW)kUuO}7c4hrpp~gCx6Cdd>n~$; zE;cwVHOelA*DZIkt!#BHx2ml4VxpJ1ysJb+`>ldnRiW-nAEe*0GBUd|y0bENvoemj zI)S-5NwEr@Vq2XSTb)r^oi$mVb6TAbTwO?5T`X8#qFC)QSy`FYnc825dss#YT&|DN z^0g-Y!UEY6gKVonc1$31+hPYMr1NI6J7Mi%Hnm1qy615-OwMFYNm9d(WpL3bUvyMAr0Kj)(VYOVRsOD{7+3n0FM0SUi6 zS;unTNRii@x6@j8T7yAa_@uglKW2dCwLy5h@hfDbQeAVy@$Z??@UF+++z!$%WCs@+Y*Aj72CO~e%Szpa~e>|0%{n+&R3PcMdI?~P!f zYM(0CzZ7nD%Wkpt8Le6y#p&d~R%~$cZ*o;`2^B8$jBSZPmiY)bQ3^Ldg0^8Pwh6VM^9eue4P0)r`=H_6QImfApn>j)I_WZ?4 ze(vr8vCMGCjJ3y1Smt&;*!R&*_PkX0pI^*KD9wD?&HQe+{R_=QW%dL6%&)BX!B`t^ za=SX2`(aoIB&&N7>=u2i=1iyND$sp*!h|K1fHT{FbWD2TfR3v7$#U z>{hL&--DgLw*`HdtKaM(JRZ31h~qyV0`2u+ExJ+~wmVyy1X&Ftoj~9H{XR@-Ew=g{ zrG8iZ)T)E>Xu|pAJ?_a=qBRenb$XQfC+P9~+{tao$>OawS;a|zisfvd>73l*s<=&5 z&heV54L$HQckF=d?MPOk&Bp%8Zr|y?$LT1c(TdHuIHe6s=IOcV z*#OSjWzbnXukGhH>jUWNZJ#Z~UrP3kUw@YTUI(McYNdv*GYCk;mf3ORLvYTCb#awZnA$wO{ z@ibi7Ph9cs{jfj(VUL1rJrLxJ9xBXnEh2F(iiW6wgQ&<9D6!^Cuuv*hbS>R*{k8vE zX8u}s?^@FPS`i0P0VPmg@>-GOMoGdcSUt#UABp9slNurnjG&Jdt}V&M@o7+WW>yZALxoMpNL(;;C-_srBb=efv|p#KYSbXJ>zZ6Y_I+(tXR` zQ?Hsktl)G1_=6|a^B|*CckuIY(Or(&^QhVr6t?4e{P)k!qUT8tkzwSQX|$iCd(X4| zZsQU!^JuPvR4t`-rv1a!=u2!pg;5IuM>9#yvJs-+CP80-2Nk#V!8PRX&)>s zyTkGR1=&ChsYD!|#U=Sr3>;In)xjmjNHPo2N5J_R>%(j6nPSBv#R|(Cnz?e#28R>q;SKFVm0^F}C{0XuXNu)~we=B}AuKHQ-c-f+ zJBC#_+q=t?qo0PO)qcpI7_9D@HhaRbzt|k#Gj9*XQ7I9+)vvFOq;fP65Mwj$PvlCJ zZCgFET88=3*4UgpvK=o}n@v|*Ke3;#XfYPao;>|L9M2E_#OUQfalSqDS~+*}%yqp# zRiyOW=7szAnA?@{>@=goZfmnYeE#W-=kXdl?fV<`<9oip+?)Pw>&^7@=J8G-;wx0Z zClA;`ptlylfb`#SP-p}rI)n|X-zrDSK z(%8Wb(mW?2e{bFB>lf?6N+pACPxOr&VLYd5!|d*-GUH=n^vx#_gNpi#As%o;XPi4@ z+rwcq;`tSHxb_Ve9fm5^{4#ns zZ7=^}Ps+Ob9Tg0^7x!UFSzGc(F-hCarnRT+)K;B4&cpU!WKCD4Br^!tdHU1#10^Ts z+Vn+UQXBWxD9pX!M$J4lpv8; z{^yI~_W0{Uh2M=gETjC2w{^B_d@%0Ud<8JXACd8itBay{#LJK9oI^FlEjmU-8j>Q}oyGhl2T$ZEPGdf9WHT;J{2X zBf=ow_rv*tdyvrogaFY=KVs|mAj0f8yvhrH%meol)2zerTuZ@3xQO2IiNT=wY+`gb z!XQ42!0=v&3W8w7NmMT)grs0T4&KMZ6e~m+K1;x^6nFAn+Uw!3L?8z54c6vpArG4%lvCgSx6;_&i(-ot=8{EfHclE!3q*c0u; zy!V-@P|U^HoGl_XSOvi)oF#9ojCKx}-pcpS9 zZOFa`^1_gon2I|QbW57|BB}hX3{r|EQ&+}j@ZB5ENBWtpp5t$TaQo6kS_^su6f~MI zXVv(Q70dyKVM6-aFa?~4fk9UJ6AX5&R>~>f!a>Z;Q;C9w0Ds^}ZN8wo4r|3;xdj+0 z>M(}EE-~D-Vf$Q&8Bt^#gyK%))K^DV`1~l}B0$AK#Rh%l-cJg1nJLN>m}mpn6|W)Ac=`@zw*#3UCwJ7wt0pa& z7=d`=@0bv}ANsaT0N{mnIXv z9C_16FpXGK2%*K-1-K_@?&jR!^ZkC#U6K_ieO2oInNS{KPYd^ZR;n>*BunKFzAWmy zf+1BeT;)X*O`>1I7=8S=ARobyo2Kwyld;v5NpOsXQuESW8+(0GWWrC3ZVU*Ny|J6# z#_lTzcm}7par(tt#n_0da3PHIMf$x{(Gx~Lm`%Rz13-z~pO8yRf;|fVmt%xKY=9%B78SupKV9t!2_V2d^=Iq6RgiZRm~t;p!|y=o z({f072TLN(e;I!^h|Wvg`$xe(jK~qJma*`e*!Wk7ma#0R*&Y;;M!)v9y!S;cbYh7b z#wmoLoD^GQIgnP-AVi+T52OCRnfCCML!TP=07kOU=|?UghpP25F&gyc`EBx%9faVj z5sBK*!PnT)pYSq7f_GaX+6oMhX#GcsTA3NO;v^R{?_3CxVahQW9|pO=ym#Xj6s~;T zaUOCZsrUWxF2r4DImcqNw@dXRpKKht^ldZ)pPZSe*&WJDAz9n|(Y3vpoAf?6o4? zc7zDR`aA*f^cMj@ZGYYlc;0Nn!$E&u^3Tk_;E?2dsG&V;)Z{&|_ky%5de4hp;9^0s zV~DVR2dD!MwJ(ci#b<&ztJyq*gfr_3R_NM9J9A&?5AHHJ-H-ZL7Z`t;dc`-qgNSir zEnLz7V!y_)okiTDGiScBoY0j81G{VjWT@?;LD0K%4a10A!`)on%m{70mWSzqC78=0 zfRGR_k>Iy<;-OC>$iQGy`w$mm?uY?k)VnKQ{CUrXNeHva_zhLdMcB~A;QD5HM!ID2 zMR@b!sl>CXD*buwQsr>q`C9yuY>1KFh*2(uY4@{5e`T+vuM181(5w)nE(xQ#B#I2^ z3%^0grOlVvE)+um+WX~!4{+#k26I4?`Hdkc34R)A!Z%o+h_z{eDj;j+WffC82hYG#6r&yg>AzK*C*5l&w$llHkXFIRxDig%R}UgOKshz3l-lL|!Bd1PPJd zqQVpl`>pnHBjA%$<_pIKYSpF5E9YwIYzi>>!#ixkd*vdWs>m^k@V59&TjijO-q!0p8&@(9$M2{NmBYK_-s|@qlN{(78jDl`dMKCe|3rq8Mrxl1o;bQ?h z3t1v>-k%-85S*MpIeriJYZzSvY-5oRtpqRjS!R!f#)el~cE}T2?_F zD5^tbTQ?xq=WeZ~E!mbG0di%}4QP_u1vcD6lISe@Cxt-X7N6H0{B(p4PWeRcYj`$# zawGOa)y4$77X;DLZVDO^F=tY7X?>m%fBF?smH~f>Oj4S#ZR8*ksrrlyz5r?GEZACd zIfy>>{-*G`A!10^cSyFJt_-tc_*^U;&3z%szK?C3AKJYSHDJ${vdH$f6a7#~@$)jZ zBw1+3u%@a3SEk-v2%PgJ9Bq}(lYJHq3>P*wfvryADA8ycC&|j!kCVA7^AMkP>(=fPT4>m4YD9l+y`_mC_wt6<0RZf%4%5lX?pfiHEoAGLZq3C50mo5i(Gs1kn(q-8)h z$V|-?$m5{*)Jj0BZV;|)rcx*j{ZNV(x3k7)8JTVLEJWeqmzN#2gJl}&Mp>FIP19Oy za&}L}KeWRq4)3*r?P~~U?K>;dIYEhnaBuD(KbTMfp{Xnt;Th-#1(+Kbcj>7l;%H$5$7j_~IR*kxbviLn-m zwUnhj&bRC%TA0j4VGn>ihWVUZ1{4ecbQwK&`hf=bfE| zaMW~GM8sBTF@ETmLL_u_y{dFQm5ZH*m9+zI*kd!s-%|T$~)i|6fQXm zw>To=mJH59v+%~e@Rn8g($%8J1Da#H@j~HIOCVi&7mi#(5mGtrHNk4#fb7_sb5l7q z)beb?wF8oeCI^WkfS4@iV*IQ~dro&?I;!D-f<1A4dQET?u10<|DHwAtgs(VAJJB2}c#CCcsT((zTL_E1WBSTh^&n23W zESg#r(#9NO;;!YoELV0$`gOlYg~Q1)S{_Bv%q@uMm!EER2IQ>?1-n+Xs~61R5uN~s8}z&Y$y1;Y2lH8{leri4g1M8<(`ZYZ%0 zPa`}^d-rt-Bf#8ab9^G zCrmWK&;zkKRXqk>`+OwoLT|4;b2|nG&|MIwT`cL0annSs7_UU?anxHq*k?K0Q01}P zj%AwRVxIu9t%nl#JcAf%0E8NbG(X*_ir)|M^4pO1F!HO?mqL=&n3cU(8RvI@E3SiI zu~=Z1kzr~v<%+vG0Y?ZD)d*@;#*k9pme2CWBFJP6D9!$Sf|t&K9uyY_+Ky}ya*MeI zVUThU$hdMPrb~pC0IjiFDwkXozeCnCk|z7$?|oIpIRm;p-6uS_UXVQ$o#^dHB;4^~ zNk2O7gvz~5RwFsA|BI5r7bU=&0U@tePp>+~1 z_{t3}r~(+iNPM#0E~vsOfTw=GM7LDUBK+rEQte&Zmscgw*1oC(El*MafG^O)I^-%t z-)fUNWSbmVb@@~xOR`1l8YTP01zW>V5JNn8FbKoLV@Vr9m_q!`LcN|c3!XygHUtLP zFuJNMLqOb1$KR1s#0^+!*35z}!-_B03hy35DGW7H7qw9z^-&+fGG7T0K&Nzqh*C=P z&+h;{A=#TCwmVeUHlV;o zU-pP*bWZ>-JhZ}4*nmBNv^(?zxsvohYlDe=m0INb_~nS3@bzq#P;e^ zL<7Kd*7QIR7i_KQ0qpt#QWv*z6E*B^td%IGC^++n=z+&d^~?(D4xI6eyj?1wGZ~Yg z^gb#WbKe->Ncd{16}O!l+nsqHLUHVYn)VB@Lj3tQYrir^ z&_J1LjVa7_;ygqyXHAJ)1ioqwEcY^SZ;Eik?hYKcjTg02zpipu37kUXQxk$IP_go^ ztjR(uFW>?-S1&JYr8R@|DkQlefS)Vm-8zr)+@<4-@W2|TwN!fFIy>!^dpV+lvzLc& z9oupHA`=1RH~ikCKI&sX`lF5+w4!XX2j4lK(`aOZ4-O=vI#7enC55i$IiVx&LPI#B z!;ggT1mI@4P#_{F$3wiCwgvDuFL-!EBRL;vg?G z%TI4g9t8D`-}nyjZZlR1F&|qJ9_RH*_sN>zj94`}qcQ&T#t0XZ^OdJ;E{kJ|)56XI zY+9=|F9hw-(jOP5uhx)fwF|A*C@=f&XY^=@9E7{L%RwHN`yIjo958?b{9zz&sG_KY zH&{b8%sai;yS>xMXRr5tQYqV_(AXH zi6I=}^@+kMfE}-IH`>w28m@8EwsoLtjnE&vASAnsn8MJ?jVs{mvs0?v#P#>eG2FFx zv1^SrcRN1EVO1RXfjdfa1*?N0(@wO*F&MUG1pccHI4i=x{pr-zv_d9I5k+_VD6&$JAOdi9w6yuw0CvpUOb%8b8mAMAj^(HqStH_aFV$06Y< zFlCVUJhWqV_TFdF2Rn?cp;<~fm7iUBb1x~-g4WQ2;LY8$w}>ggzR_AUB9sE|177QY zFYo`IJ7bGoKUo6MgOjNM+%G>yFS<@lraSyXQQSR^da~Y|_5mcREN1%Qv&6|qd*dsF zuX+4!mOtaeIQF=U%ku%{SAMwp03W#gimBYQ6+eT4J+=LVzZb>K1#6&B5 zlV(kuH*u0wx6|Xhojc#n`be!^QFrd_<%lQ{!M_8ictwqR%0N}CSD{MfMfGY|uU&K4 z(hAGQR|7q?@=9gaK-RQx;l`CpmTg_Tck$*mDzr4BuQtY>j&&xrE~5(M1_;)X_&FjkKn9 zc43L>VQI&iDHL@jW`1si&szj70Lqm-Aq`*Jh>7 zS?8U1rq)`P;`m3~g@ztl=%bH@<`RX-#l-1Mpw1*AO*T0M-t^Sz_iCA{SqK0Jl0(?* z7tG|SYq8NzTkW;kZrkm*RZ`f{jV=Ys;f^-#uTua8%$O~|Iox=zj=f?vDv-Mp8Nrho zZ=AN2RTj}^W&T}$*>cBfo?J$pdG6fv&tdcVAMI2kppl}5h9)7^yG@#POO`Ho>3^R7 zN9s&8;e>Sb)Zs>eg#tJRp1DycR02sQze62%(W;dfApDrEQOtK-{`ql@d{@ntz5HeTXXG68{{aX<(e3Uereoa! zxrLCTB`|^iD3=4B7D1@}LlN!z$2f8jJqJ{SOe%>-GJfYZ2UtUSXahhGHj<8UydZkn zbKwhN7(*G(5N+GD6n-*=H;C;me0_`GR{*!69i&ASBWRz5{^maVEs=hZvtMBN=c~r( zPcxi}{-TNe7eFm;QCb6B$wZ8%KyRgvjH&aM>@E>OH77# zVGJxe1O?2H2TSJWJdX%+A%uiT0D@r;L;6D$ZlvKOAsIs)uh)I|f0X^bEnNdkaYWTP9^wB|LjnN4hNgBhu?z^DF^17uKBo8`nNH>_cd z8*HQiJ4gmO%^6P>z$*Z=$R-aQ=@0;@Ae+Vr;XeRyfNUybkB8KOGPJ=Bg)USZ$*@8G z^m=d&Y%)V67+^*=E16M^Zj_@P1z0sONjDsFawDGP;l#vOF{xavE22up0XT#LR;0xg zY%!c#*ph?v4Gxw)rIsvb*_T}Us&c@}+)#DtOQkMVHo!ay01|<~jS#betz)JG9q7zP z5D+8*K)?dP8dkB6m8@e$!0+;@kOL^7tZf~u0t(s@1hCbub=_J3$ja4?0D!Fjj2Br4 z&=CL#V6F--<1%MQE=%YYv(>fkb+MaW?Pio7n}tYcNg5H8hE|^`4I;+U;vf#0A}#B)sS>{; z)3lWGw)IU=ZfDtB{r2{^!u4-2i8~T@HP9o-G$R8MLM{hRce@RC@Pi>7VF?F}Qify* zc)h1L@-~EG=WXd*NU7gWK}n9WhNF^=KvIUR?D$10(!a~BdcC-0fhefIO8v;JG*k6`#=-;-E* zM~mgsmbe0XxdDS(iGjM@6mea_fGX14S~PFk05P^-n?XIfH^-UOIh!+}QJrd4ubS1W zwh#9DbJO;B=c>JJfe)PE1vfat)IpDa!P>JW1?{0ZY+iDIc($!<@l_7s14wJx*zFdx zSp+v*QmCLV3c!K7?R{^QH5-cjc6nz;{co8!^;SPS_|0*i{&Su0+&%MP#=^bby+Ugk z;^LM#X>Y9+Qm8vBs_20Y8jS)Rm}29;#!Im8GHkf)LKQo>0Sc>bJCrr%Yp846-d~|sC{O3U*dYtQ>;o*hIc#H0}qn{m!G;$aH@sXc=(tOk{^r_66e2tWs2jt6^C=CS|?i|`7uFblO%dX7*pl5h#Zu!(LE2cdA^q;LwS z?FX%J3)!#@-S7<^r3>@o3&XGu8K((#B?rqe)XoqMNsSO_&_iqv4hgXk4e=1+Lk{tR z4(+fJZ3Pc?g#hGW0{4){`p^$=j1a2uWCs2b5k2t}K`|6rLJ{wR5gqXqIRp~Na1~jx z6+;9SVR6$sQ50#h7H#ns6M_`&!W3h%7h%j5fiW0`QCEDi7;S47aWNT{aT(cA7qe{t zj4>MbVi>8h8iP?9v2lKokr}zM8@)09oKf%sFB{3xDpb)L(J>wSq8!av%v(+v>6U?(rXeQ6KrSAzM))ArdbFvLGq4 zA}!L%4wC<%F(OfsAszA~BakCS@+&6tB2DrnQ4+f{lHw9_BpcBqK{6(T$|Y&CS~@Q! zaWW@$(y~?(D<-Zc!w@EAawt^>DE>#XBzH0?m2xSqrzfp~7mYIVgpw$!@)e^pB9W3Q zwQ?)D(qNpjDxmTz?`(VZX@*f;4FxgQr{clf_HFGmLb0r}2 zGQn^FD04K`%rZeU8x^xNRdY2v^D|Gg1`A*^NwXmb;5D%^HCZz^b(1e$(>BRZHfM7m z3&1y{5jS`9IFXYndy_cP4mg7o9Zi!tebG3RvpTKwB$rb^Dl-o{yoJrGtF~8>C+_96Fy%|G~1Is!4p3laXjlYKm`;O@6$i) zYd!b#Ip5Pj|5H8(^g$u?_>N#gDU?E!U?GwqLp3xBpa2S*Kng$6kw^a`*b zMYmuJyr4zB01T)k11exfX|zUd^hR+sM|E^Zd9+7;^hbd-NQHDriL?S3-~b39NtJX- znY2lr^hu#KN~Ls4skBP1bV&^$0g7}>xwK2Y^h?1sOlgz|fS?E>^i0vz^D1;rFH|8m zR6{%TLqk*wMsx~F^h8q>3s%%cUo=L=^iKgbPz7~RbJPJ607OWYkh&HCAQy zPa6OM9Q9UlHCJ^tNezGjX7yKrHCTTXQ#rL*jaA@0)j}~;R7rJC>-0`dG*9=GRsB?0 zt@T=k)d7xlSGl!Yy|qcJB~r0$Lm9RL9gU|>adWT*518lYoQHf3#8VH>t(UG~8qHex4MUY+$+FIG?QwNG7DWqCGb zYc*s^Hfa8Z_5ggfXN?wNS@va>c4;vyW|#F%DON;nHd-;3T6gwnv9@1-R%p3)V2M^- zvo>t8HEEf)Y|U1qoYqa5m1Zk;YEu$Pg}Rc`sVabfji0Typ1cTr6iY#sMQ8#u2RdYMHc5PQ}*fm3+c0;4qR1x=Pr*&~nS9XaPOtlpO zBDZywcS+aEa*OwQx0H5ocY3K;U~*SxL$_wF09xNRcy(4^p*MVsRCPgidCm6#Ue|fW zcm92SRC=rTec`uJu6K9glx?MUdlMIKtrmRQw|{%o0mwIb&6jJ@w*l1Ge-Zdb-8X(2 zxPj$ke$^Ig?blTC7kG14V-q-obrgUZ0C|CSfJYX66~KTsxP%qBOdU9dRhT{?m~bW7 zaPOCUNq2uuxQ1;MfEz#okoN#!3WRgj0C*Sy5`X~=_<(IVffsm%m3WD3qJ=^Cg+;f5 zsaAi5mw%7Ah58(@pMxQo5`i@`XI#dwU#xQvS!fUh`>lbDIwxQ$oBi6u6B+g6IZ z_ktNWjqx~-^>}aB*p2=8k3#~EXBLJjScVn%d-phz6?u_UwvPe%ks;Y31X+$_{y2ZV z7lRo&lQnshgVm8E`I94glA&084Vj7&nUhgDl~s9mQ5ck6`IQ?&lzDf8NwkzN`HojP zmvwoUFSV6n`Ilc=mg|?0YuS?RczAg^nU#5$JsFst*@2T)L+N)^n}C?@6k6@|Ucms9 zm${q0d6S#@nZ@~iqgi(&n0Ko=im_Q$wV9j0`JLezkHdMK>DhM68GE5Nok`h(+ZmVR z`JVwAf#k`T3>({duN=I;fG> zmv6eLH#eu_IG%96 zv6@-6x|lmUc(?hd!}_h^nw2xPtmzu1Jyn`BnwpoIt6$Ws)>Pxv6_Cl{>Akd5UTKxud(gWqP`+JG`0lx|#csGaLS-y*s_X`?JNny;YOE zWxKiin!DAzz5yD%-8;Wg622`PxG%W2?K{BZ8Ncz5%gtP#mz>MhoFKhirDc4?8G5_R{LJaRhP8an@q7#0 zJjlTu&Tm%EkG#$Wy@c;P&kel@_dKarI?UsI!2^BJA^zQe3;ob3-2)Rn${GF79X-y0(O8EXkpe>;RY@su5(}&W_{Orz1Mx6 z7FMALf|><-p&Gb>n@EAw)BMz#Jrq-2sWV-{O?=L+6$h3f8@3_au^|{(Ag+f28?rsz z#eLk#eH*gj7=juHssS9rAso748D@acm%Z8Pz027Y#ufd|54X{${n4-W7O;Wc+x;7s z;RfQ`7`UO`6@K9vzTw?n8U7guMq%PdAqQ|Y2eLuozkwQjK;GxN-a-BopMBB&T-t4% z+JjXEkRjn0{u)fd-(?!%9e(B;z8fGuo`<0t{;uH~s=*j=RNcR!-ML{IpiYBJJ>-$z z?na)pMOVz(`Q%|fSb2aNf_~w-!5CZsu7RN%u%YX{zU#X| zS>P6^K^wAR8A?IfKR)U0-VK*NUa{Mj*%}PO;KqM-7_vd&HJ%v^{;hNU*J&Z+h5i_R zJ=o7a?bjYhQNR?0p%*%y?(cr{@&4X{Jm2-6rH#3r{~qOk^#zoH<-36!sy-V?A?l<0 z0vI10wt*I68tn&u@)!B&IluP_F7M-1^!a+5OCR=UwG^tM>aoGt+r1l(;RT4)0&c(u zd;kZw)CGRP2Xdg>iFEpX;0L%LM`wWk`h9=~V)X)Sfcm!|P-VZ}Y2WsRGy}Xp2Uc(l}D!9u-U zRt-lUSp%PQ6{xTZd=XBRK@PMq7#oJS)r3^z2H;i4%4K>DW z$dEDH5NgaY&6t{KFc={;gDuQt^JqsNWy4G_JLB9AjHTHwe>= zHob-e4mZ~%LkbIjR&ZW=>t#fPqaA4jV5z5Ob4x-O*m6@%FpM%}K@P@HvyG+LdXvpEpA5KA3#24t4L1&d)6KTsW>jFc4ujJTHp+<7 zCp7~5>MJ4aygrw)W$Zq!HrK9T-pUP*O(2_f_~trMgo8Ks8GF% zWZT$Azz}y0VD!mxkh(^U=*5j~Xsl)1K*kR%fWvNN9wl@KTw9@ zJi?7^Tq7G(#8&sTlaT9m#2VTwVyBaXkiUYeFK%( z(8duV)r=i5BnQgahQP`wMN5I>8mfpAGm5y%Y?;v-uk+tBX0{L;7y~lt0j3d8#XbH6 zE(B z9yqWO3~wa_hu`qVEFm|HVHkr4h3N(TJW>r~^rE7~xEr>#5sZYe;1~}?RttHPr(-R;Z#goC6gzE?1sF4sRmGyOc|}(TrmZgBZi;!DbW_nd1#(6{A=MF{r`C zW|StA$af_sSq!|^p#VUOEzstU{0xY=2HBRMOk@mtE z?6c%B;#UD~;&FP(7)CFKVKhr=<9q`>3_9lt-RMepy40<%b+3!vsMNDfD11{s%~q#= zt}Rb*+mqayDWL0WEIJ${l5Z71&@*;_#&q8wmFs2380ue2T15P|OCyuq-!}sFBfvgdwrTtU`WZ zQ2%BpAuSLEGal%TX7E6Pd=!Qa+>3*0j#e3eL~l!;o83rDdeW4xw52bN=`C&dEMjBJ z3iZj)yTFjVGd!=O4KviBjWdC(Snm!fsF7Zg7OOE!1{bMu-~J}9p%ruLx>!L$9LiR+ z3K@nkJCY4jz#1W@z=pWIhmaa1)s1kJqx+O`)C#mfG45N&51!LzFE@kMhSBOExhgmX z6FVU__=GW*QH^Do!o3NZLE&JfStOG=2lPfrFODs={#5|}1oU=tPI-rqj~hv3(l6XcM(RWoTZ3?p!22SZJbp@kePN z%NR9}wXe3(3m%zbcH9#NM`tIrWRw#jIS`clj*%|}OZdPE$-puY$!ORmW3p}y02-B#X!j{haM=rXpd0eJ{9X2~)U>2?j($8OFiG_QvcOvF7w#UsPOI*nmg z2*Faykb6GhQ`?|y6fp|$bqyQV10-e*q!3~wCSjs+AkVWxlwR{=fHM%fT{6aj_U(n_6*5`aKqk0GtM+=k;;>QYt6+y8QQ@z-W7!?lP za15(BgW@uI2vZxq%$o11ZVSgUMqJxmN+oFj_-+0i_^Vzv3XnKnm+7 z5-s2ZsvuLz0B?`fgb5*mm%P)biE@~T z3Q+^)$A=5akPYdO4+)W0b!{ttloU4z(k_D5d%M?(k6kN$XBv`~68kY~Yo44oHT zh}4A(p#s97YMQ8fBt{K`MiDF65&LL?sy2`dA%UmT4C2QS8PE)02W%XNtIODFr@?6n3H~!l_)`vD;YEQm=L8ffuTZo zcXoH@VmoSxl@sA9aA=SoSpf-YB@qdlp(&c9Nt&g(6cfp5_k>SNhmkLYC-_%tQpcGU zAPlI;JIsKaxw$JcA{lG`S9xBk5EY*PBq9J;RsEKqHxtfBwPxUuyuo-n48cjPGo|B^uDDzNonGqwf3aTcZoA@}9 znGpTRdmx5G<2ez=b}Bnc5q4*t3NZu7fGDz90ZnB%&(dh%i7hSV4OyzCTdJk5N1n?_ zgXc*oz&T2^&|Cg3^9_asafXwY)yS6gxs3~90XV=4IOCqPByYEa3^#>1-LMVT&q3?l4mDj0k{xnR&n>yoJ7hHJ=qaIsh2}3JVlv0qA-E= zH3N*t5s6co31Ovy1`MhotU%Fcyr}kPOi(3Z~!#0U4hafMjhs z5%npA=79sH5SGobMLNR`jhH^ubSjt_E))5Cfq-?mLB8R9BS^>j}OH;Tk zCHXQjr~Z?XT9ByPnHR&Zp}a) zn0RfpIwP-05uk{MqBNuz`h=)>4dlpYt=OyxfdkFpWg5psbhHpVbZzoDH|DvmV@eS- zz*5#g3_EZGeKMrynyzqaqZwfVGvEWJkR!>HIJSTgRi{|YunIrm0`!Kq0n3~yOJ+>l zCXo3`RVKOqP5sR4j8&v4v~6hl{w0TNNH_q97ZpD*BowYicgac$pYk zpMbfUi@9y)EVht*k1|XW>OZRWEHWDohBpx`z*1#an9iA%8t5!EiZGu5f^_!+FzYg6 z{xzk>fIg#O4dQ02=H#@L$E~|0eM$wCqd1Ljx=CDXpDyvWtAKim!hk4_Vi*}@m=Uz#Z2u=pkQ%rdI=B|Axc7^{`K!N*%eWR9 zvZ9)iBx|aZtD&t1hs;G0EHIgU)pdd+G_$xJqo7~Q!=v4ndp%H+t|xIho0TK5z^^KU z%)_qCpmH20Shu;XoyZW(l499l3piK-rqBzdki3X7yvSI*3$c`VBXD6hm&?1B&FhwN z>MlJ%3&gOu(PS*{GiRjmzM&$apD?}Ldw9TCD3p3(sdNp>0CI&9;k$8p@D{d=M;B(ebq@ zV;{_YrfWdMfIi!HN7w*t%FC<03UEaxP^b886LAAcg()X2UzlfX?!&svf-~3kaWI}tmaib0zY-phkQ91iNr5bVl;fEB3Opbg7_fI6sH4CusGrOMKR4C8a4C?H%t zL<;CL0=9N3%h1K61(WCt#;KEwtpjJld1W%94ZTod@~g&^O0jJ$$LXxj>&(vSN5_t9 z#{le_hN#CB>tn%)3~jg&W2ab-Y{=r2OCc70PpUiv9 z&fBiE_XGN+4aNX+C~$@|H;bmAowTEPVWw!H#GDm?tDrJr6?VHfwH~lG42~7NBu5-2 z=~=Y!M<}2QFxG;E=DPE1&h`75?QGU(jn-*hUGFS^@eH~2%#j4lnOAly*q{n~j1UCJ zMa)oh4s0qNBO1q14UZH-Q|N$N3M|M#IMg7Gi3f5IO%XdZS`l*$KVqlpp$$$cr#x`b zI3-Ff84OR=4c4Fx!|(~cfD846Ql;85he5R!VjlzNcptk(O@-~H|18pPJ1>ehs) zHuMY_E$X5!FlKVq5=M$_6C{A3%P`pDr-6w?2wcI_^F-bdMV~Zttc^KooVu>^OWU9g z;Y7XDX>;{SD9NC5DJ^W^dZj!gGu%os1cQ!JzA>*q}!m12L+mwe#8A&x;Ti zz}eVTms2^QD0eU;ptPux4M2WI>aj;uoYKkMGTqSO{=&pw%fkL=XZ|hVG`hHaglc{UNNL62(F^%idR zlMTdh(QuBTV?F0(o#)-|?cWaWi@PT9_pxmaUIhMhfsTk8YEyOn2{61JKP(xyl5W`M zR3j7Y@NOaz)OqJrNcrhyp+$PDoUpOEmA15(3) z1E`+ruKl#Ioe?Nt3gSbc5=9DXuG{Ep*>6mbDOzznP8@zKs_qagB!1Ja{V!w4GI<$T}gOy}W_^;xg=Tdxy) z9*6_pbfZ?P2fpsJ`2smW5I&FtAq*&KulDX$@3i#;zyKSuv0$f3+kOuk$v_J^Py;Zm0yyvq z$WZsoP*yIm_i3L4D4EwcfE#tM9Jb&CG|>6(G7tu047ZRk4w3c-k)$@z1HiEO$`A}Z z0Q(G41BCAbc>f%;p9Andhx*O+^>6?8Z|7d$=ki>LfL>mL4iFUt4kTF6;6a256)t3W z%v-o{;FJwSVdKUP8!Rj&+;I)!H)^H?W|(o&#)}LLRUWK(@kR|5D`hIQprVG$8Z0i% zD7Dx47xPw(xFeM zX5IRA>?^ae)ZTL2OKvcB>#aHh1sX1*iF!IN9FRmR@IeS8lyE`{DIi z@Iw$o6mdinOEi(N_Kt`TzWC--jWyS%fK4{qY{N}A-h8u=xdV$+&?5$u+i^%Di!|~` zB!9#3L?)Yb@<}M8{*-b`Dyy`z#1vP2D?a&9dvUcGXUwn0{%#B~$0XJ2F+rXdY%onY zs)C~P!9nH`dU4;?WF=Z{2)-!DlcA#Od!3LXaj`7KdX1={7hY$0to0~QiyK`W|MP#A@s+?9A@isytE zUyL)>cw>(KJN7s-efbsbG=EI`@8`R9KXMVaVFS6=#Su)`L+r>3bk`)st+ zR(ox~tUh$Utc4!f(OM%N`)<7RUb<|y`}X^9zyr_N?PyD$_T*|)?%HU*8+ZJ1cKH^3 za>^^W{Bk`B?-yu*#T=U8#qEZCbka+wQ*z8xSABKXTPIKRk>NJk^SRA5*mT@;*L_IT zUHAQW;DZ-_Fxa~^JZQu}r#oBGcX$4I=!I=-cc7eZN{`T_gxBvckr)PhE{`>d8WA||ndEQf8`0#f?1U~P4|6^bS z9r!>#wTDY0>k@t7w>9vEfqn_(U_l`#92{@&D$bcERcb-6zBpGtH2xMNTfH8U<7bXNFMii zM}k;Dk9$~!4GNxAr<5R2mZdX z!4F;lNavvPAT`0k4oE=?9@wCH8L)vXVOfLbjo=2Rc%=_sfJlK@fCV@x1u06AgBAc& zlW1AwBc1t7X#Ose6x?1V(Wtx|t#O%Z$$$@T!2<}{fEJ^ONdq9%To%umvsZ*$W@o4F#nD#yn}!3tFTzkTVzsLh0EHRop<8+nh-= zqj^z`X7q2dZZH;8*y0m3{vatcyQopH zhE=SA2;>b|@rfDWmM5%*ZG#>B;8V$#lC(wsYe?04TLmLTx51== zDQ@v$g!X_1fqcPJdtnQN^1uaCxquByVGDcOa|bIH2y^!eP@uxNpg2He23~sNTl4}H zH=yGMZa@lq)^im-wZIKj(Tia8LY@JwfDJ^k)VkV$6`)9P1u{^ITd;H>J?O;_Hj;rS z1DGHgFaF04h;&6nGQ8?SP;wO!mJhZtFvSAeLK+_|xqYbA0 zgEIq_6m!0TDC|7P9Ef5Eq_u&2KUw9J-k26f9Z4yI!K)eg^UfoY?Si&faorMDo(9C2Wakr$+! zwBUg|?VUgDuv_X=r#h6T*|TcWR!sA@9fqIoWp9Gh0_|1B!$+c6!p?vcOC`t!aA1m2 z2KculAjQNtQtES>B2qZ$g(&*k17Mh$AS$T)o&HUVTHyLLrKU<6~SI%4y=e*yYp?vtIxE=f7gEZdTcoH`>z;+p{;_ z%77nuwmYIJEXx5_Fa>T~B^ST}A1DP-pam4O1&YHvbV8))ONkMHto0KJ`Aa$#FtG>B zfv5nk#hVFRGlg;LG8a$Zn{ z93X{HUW5-+LnvQiMkh%+@ZG{X$| z1Y0mW5~M8b3nUe2rB#@(lqkjUV>~@lrXH|`9cYR#<0)VwGr>c%UU0RMXtQ#wfERGD zoD;-4+qfv?y|1c7Z~R7Ztcy$j^eC+pz)d8;PBcB;0=H2htvWKWQP3C(2CH~syU-HV@$2D zYe|?aOv4N-nXDk11S0;MOvkU=Fs5XMV!Mf_8U;0TDOF&F94I1qQxz{xwZSp=88qB z6bKinDW2=aXDcU8sykW$1?4-xqaZ3;=m9u-sax<+yz~K8u&0|tC{jSb!9zh-NHM#a zsvv``URZ_a1O6^}GSP#|PDmueZd6Yn{ZR*F&)Az5O@vQ$l+XJ!vK`PyFMGREc+yz9 zqYSu#9eC1G*a0HjEGi|1QAjl!_<iBG{S&&11sP$gA&5+oJ~)uOlnQk^JP%>bvfBj8e{R|Tv$;-f+$ zRfc#~QMHa9%~W6wR!4F@D1tpsMI)|jOeF19W{t#O6;^1C)+Hj=G6Fy<5|~DL!ewn% zZdI-G{*+d54cFkIR!K6}DMD5Lw4OqXSS3#S}3&Ph=J<@&cSB90Le-&7Wjo7InSaSs$bhQ?BbZ;8hyi&0XRxUKAnRVl~{}6)D*b zUguSp;Wb|AonF1z-GkNJ#7)`f-QIPHUh4f`@P!NOy;tnLqUPmZ^o<$L4PW+cU&t8W zyhU8|)!y{2UrzB}_s!qih2P38Uky56`wieY!C(C?V9({>!?m#N-Btl^U`Zih1CC(9 zom@gAAkqb32hL#LSzih6U=OAXYGoDE_$Vuw5&baI`DI`YUSTAG;17ObtPTF*dgWC6 zDB)N^;s2#y7T#eCabXz#;hvS@f|U;vHsJwG;jralC5{ju24W`;Ss{kKBEDg%{oN(L z;vH$?C*ER+jpD1B;%dQRE5>3nmJluGVl<9dFFq77KH)0H;4+S5;5g$nu48Fk;}&V- zBhFzJmSaC|4m!4DK?YVl9$~FB;&VjeKVIbO2;@P2mu#S!T&pUS(U>+E%9F*Fa=g*5O(H z<TOMYgB_k1@6>RtRYBW_6yrZ%lMW^%UVRLX#i zK53LrX_a1SmTqa6ercGFX@)LkRJPQQzG->IXExU7UdCpgFlm_%YM~x#qAqHqK5C>! zX-dsAVa92vzEqvgW1hZdnqCM)N@}dmYOUUCuI_5DHt4EG=cayYvQE#aHsnm?WvX5d zKl*C7ervdn0Fgj$ziYXkYlIH#V7BS9&TC9PYh+GqQC8PjHVB}mYyQG6Y{Ncm#CGYW zW{8f~YsVheke=$1=4YR1>%_in%+74h-s}-@I!zwy#|~{ujqa|S?iZ(VAs_M>w{a8CaU{p69e>&;Y;g_`aw3m%DgSRHkMAVEa@Sh& zuI=&s{_*|Z!YL1PG1u-Y$8s|d()xC81uwKJ26E+q@iC8cIdAPUKXW^8EiGT$CLbCX zfAcy2b3jjN6mWqTpaHU^0T*Ba6gcTRzjH^|s62n}1h%a(AOj)j@bnIJP2cp0Zh=;^ zKnw&0JB^BrZuCb#b!duo%ANEJwscJA?~1N2mzedJP=SU<0XDT$Tkqkv=*mZ!$b)Z@XYM_Q@IELFCBpfh?W9T_$ zk8>3$I4Fa5hW{q=GHyjW@@t>?5X$z~-FDxt^h@{li5`Y*h=^|pd693196)GdK!#z^ zBNd=!R|}h87TL79fRY=mv2325$&?Z9s;1AAudv25v}( zgO76@SOtcM&Q(}=XaA<1ujp#0c&(q-G#_tmw_tAHct5XbkN<{jsD^$|`(rqIgZ7AO zNOv1J24)}zlm>-r@CJ0Td7RhzfJOmRxQ703=!R=x27b?mZ`g)pxB;YBdZussFsC%C zkFp+c0UA(+$b0r%zyW-h=&av*&%Ysy=Ut3v-fkaziuQPKNQROh=v_S2RC{7$LAmk5Z*};6NczAc`EO4Em_Ca3aNu7B6DVsBt65jvhaP3@LJi z3LmtBp+rgRhQLz2QleBKy%9)@{tW`D@WXPZF%t}J$6PqV54@RH4Kk*%FaiqYk)};H%?xv# zW;4=Qqm4J>sL>3gz=TpSJ=kyqD8Td>j1MZ*NZDme?(|boZ$TNQlv7e!rIlA=nWdIn za@nPqUxFDXm2%Bh*Ijtgr59g+0VWt>R~Uu`Vv8~67-W(u$)ui{*~pn^pjp(*HQsDP zoHyJYGXpZ(coR-H+gMY|4B33s%m_DB^Nox8ebbFK)o`;-H`W<5gA1cH(@i&~anlVo zpX7i{XW%^AOerd$+6_0^Xrt;fJFuVvE15pJ4L8?x>K=T^bZXl~DBy6+ZvFL&jW+su z^UXE4Xh%ymhnlATD>K=F@-45}YDb zXQHWQUw;KQ#bAXUme^vAJr+h}lU=;$jhubM%q^l2Eea_(uwVl-_#UGQFrZeG!zjjN z6V5fp#5ifCmsaDbbI2fToifHOvyC^+@DQyw+H`nJyNF7i45iN9f`h%?XtPW&!!*MU zqBrEw%%RK}vm7_HD*G%muCbz#fA7|IOsd@|V}lRMY?IA0w*-@_HpIA4?l;^-&YCyN z_~3#ujHdo)j54#*%fd0O!bl6|mD->JHQ;Px3@E`+M~!_66JNaX$4_KZkHCmxP${%X z3==8u(U@n?m1T^w_SqD-^ug!m+@I6 zXW($Nw*S`vg9bauRDF=d3SjU}@V>#w|Xv0~*j|1PpW_av;bx z`hbQ8!_beje6X}?{7^eR7{w}RA*-N~>s!l6;RudltYp}N7Sg0fH?XmT*>%GhAsWGY z+M`2;>@FL@#E5^ov5bZ6V1v~lg^Fyj15vQTcA`>74o=t%`}9C?`x;@Te6WySWCI-Z z>cxDh(Fb zqBNx{T`5aj3KmG(C4K5s6Pwy3vrEcPlR4X&^+bvjP|gTw;2{Q4i7|{Gyr&n{=mxD8 zv;!o`vVjlW8m7KM4f5=A8@>GHC|clyVK4(5q8b%4O{h#}BEwzZ@CIA61rBXM=uyL% z!9p(RP53Z_cNNTtf4IRPf%M>)q3^bGElI>P8DZ(79A~Va)r_A$bCEVCqZ#sAYcpyXRa$DtmQ}s#2z1H*OM&>(8^DZ} zsIWneWi(?x<1#A>1(Mcoz=j#}l`lP&AyeE5)Hpe>NF^_xf;~y`QOl69sOeYE4O3G}wIW_K1JDFU}{H!z1wFnJz z5FJqnD2LabY6LUIUGHiYyj&&4x2n;Ls2f>ExV0i{P9vZNRczU0V090pqu+; z2rH@+!->pb7_B-dffsV%b*>^C-Dt)tSOQQMDptaWHiam>yaWE43_}|NMIxh=L05s; zAR#K6K@Nf>is`(I7%W~jt7){OBBgc&tL@Q|Li%Kk$ri}E-Zig#?dx9y+blv}S&{3a zmm|Y0$vBl$aT{}7C*OLxHEC{&7xDvQC?gp7MMgKgfsFUe^3z)DvQ@GA-4TQrn4-W2 zm9)g$AzRE7~>cg0;p9>k)l!{>#h`;0W&(a3{$)Sz}~V>FsS8MLkpG` z`eCRA=ULAPGgiE&$N@7RWegwOz!a$p2fccbscYOyJHyC!4)DDUVWdb=hjLb{Yi@In zuwVxeDtQk2;kw^+`o)=P>Pre_s6 z@Ikv)IgDN?qgTtw!4Eoq;$iTnIs$*zCvfO0V-O=57GC9X3Z3zFf`Z*Jy2UZ9!5#>o zPSTB~H?s1E3~DfH)6F#7=#63FYwTbLX}rcTZZV8ZWy2OXA3pIda)VLaF&Mo-xIk{; zVjuY+MYewO(VcGn>tjFr+TZ@hpiX3|w~Xq^w)(O&$>jPK-ILND31`CL{`b3|8b4@( z?MG)UO(jFEm8&|1~{bdfL{;XF4a?l8n0y9)cs2mD4tO8wu0yT}! zqb$|rO~i-h?6858O_uWRAr}+UN0$4g8+F;7c=H7QLWb;&qDI zXv;9D2-Vo1yJ!P4utf0@A@Q+54zNN>ET0cBp$|k%N{oVQOmr~r3BqB0P}F+h_I z^nfG+gN*26G8hA(%m63|<0S5n4LTy(;2||6!!3*l3Iy66=3%uJ;Wx4x3pim$6-h6A z!VN&x6v9>&a$!5V<2%A*Jo1_s`c@Jgn;5nU`IVvhp&|O++E2|94e)>|ywcDK1P*MR zjkJJ6AOuF>K-#2ZF7Cj_(bx!h)yA#jMrh+iN?1s|zz-1Q5Pk#_(t@asKrlR(j5Oaw z_JBd60AUd%!GPmT)|@zw!p^}2E0_X0;z;@h5b z4=1T%aG}H#*Z1EA5^~O^-N`08fK0Ri>_P)HL%->@jyf#W@Hv0 z3q*$x>;Mns01nK6LAvEX;@XqkWoU}#Xp&}WennpX!_*;LUtS$QJ|%MfV_{0>Y>vbX ztb#IlN9NRqDM%r0`sQzf#9;PJT$*Na8s~8$XI-MEYAz)i{-tYbop4@^YyxL>Y6K35 zLNN3m^I2zidS^vQr^OIwa*}6xn&)|D-*SfEYUX2WI%RZvCUt)2e9~uq)@OL?$#|mY ze)4C3`e%-LUr{h;aQ=~DoB(D&k^yXToqaNBgF2{p;wO{n=YLXYg<9x^B2s|X<2@3n zJ{l-=LWY8_;e(QBiJE9tM(C1ED2B3Vi@NBGevF1Dr9JXxdzRsW(ocdy+lZcMkNW73 zvRH}=Qm(;hks9fdBB_?hs9q{%htAB0zGsN;s8j-Jm0IbQ9*>Y(#)>9smwM@!f@xJO zX=<)#b9yLoWu25pC2Ywjmb&Si!s$h5DfSR)nA+)`;%S~9#h4Cg)jcVio?(uPD3!)( zp&II;QpB8&6lm&cqdMxN8Y!QasgvF)i0aIsvMHi!>ZZD>qVfcnLTadr>Zp>Yq=q4- z{w0puiH@$R{!g_jr^0HiTBoPR7Ne5tt>S8~-leJTC3`Yus#+?m(yC6ps;nC8u^Q&E z<^-tfYO^})vtl2wHmRRhYLs5;lx8ZjYU{T8rn2G$vqEdQitD)QnzYiWuNEkvo}aMB zC%3xmyMm>+ekQrnYrWd*JVKIyhTobb+f7w#nqF(Gid3<}Yrz^UMae6;-s{3LY{Mp! zxw;IJ`75wmE4#+#!D4L22B~K%tiyWj$AYZ(KrAKo>(!~Mn#wD|YV69gY-j#s$A)ao z%IwUB$;k5S7)~sd0<6U@Xv_NS&mv61)+x;rZP6NS&F1Tdk}S@eY_MXgs{(D*O0CP@ z8q6O4?bTv!*1lBI&S=Dz?6RF~z{+a{SU}mD?b)Jj+N$l^vTfVC?c2g_+{*3T(rw+^ z?cL&S-sEYHi^f?%{5&Ttpp{(&)|FRMS@M(++F~P;TW~?&V@` z=4$Tda&G5(?&pGT=!)*>l5Xjm?&+d#>Z_A)KlIxV(B?fAm4^p-FB(r^8KtolAK`$n$&4s87TZ}9%k zul)+}0Fx{J?k>eTFaHAX|1$8;1~36ba0KJ30lP`1&d+guFJU(D2D9t~OYjGSu%1Gl zQB0lV9wOc6_c^CT5%Sm zaT=HA7US?Fd2!AznGcIC5SMWsYw8)RaUScjT(Ysgy0H$!F<{Cu&+@1p8*-uI@g6Jk zBEMrFEA1P*=LM^<7=!O2TQZy`G9zp9CUc)7cQGJGvQGW*#a?nLTWKb9a{el-^3r)S z<9hA-I{_^pl00?}*Ret~o z(DXutfK_`yR%kFEVpNS_jZ4`Ma(yLbM^=H z^nW|{e}8~Nc=vRJcNL3wc}w_&hsAl{BVn80dVe$v8_#bq_(E_taZki=i}-S@wTUY? za94G3TlIcdgojT=XfHTqFE(lO_hNUziM#lNBWr9^_>TiQQdsyaH?cp1Gkg0C@ti=2 zk9dt6BxkR-ijeq?V|I*3c8;UKYQwmI1GkN*_-MbllQ%ezL-@-QZjhsSnm5IehkyA7^m+cC4?2G{xu7$8lS}pnWHn8Acu>c9 zo{xE>AM2w>dald%r0Z~{7q;(WI{w@U2-J0O2e)d&w}?}@sN;E+FT|%W_^IpnaI?CD zQ@3_^wpqtIp{Mqu2e_>}dW7rxxTiU%IlYOsIOjr?}2k9C*NdbdwR2=KXPn>wJU zxO%Oic%=Q%@+{eaU%zpM7LQ$4K0Jl6AlHq*R~qC2qX ze0v*De_wThE5wuwJysWZ(la(zCwH}9M7v`(EyZYfb_Ss{0mCpc=?c<5uY)tCP9 zBlPJzXX@j;RD*QkYxmvj`|wA+bQ`4YgZl1UHtutEyFWhYWB+K!lIvf#vJ?L)8$a@^ z|2-?euV;9=ufCki5n6L*2!MWR{_8bPkM;eF1X_D~MgT+z5Fk*DFnADQLWK(%Hgxz9 zVnm4(DOR+25o1P;8##7dn4v;Qkt0c#G+6^kk$)>$wsiRtW=xqgY1XuP6K77HJ9+l> z`4ebRp+kulHF^|jQl(3oHg)7|p6f0J) zw8ipv%N8$l!PE^ChD=@|KtP)G`&Xm|kAn#pHhdUyV#SLYH+IapFJQ?eQL4mx8FOaM zn>ly({26p;(W6P1Hhmg(=B->`hV4qW>{%&k*SdX+CGK1=b-~=tOJ;B6$-@OdHhvs= za^=gJH+N1^_;AUUQ&+eCejR&u?c2F`_x>Gxc=0_~YxVloHEh|l)v~>E8@F7#cJb=v zD_wf==ll8h_x~Tj01b-{KfkCO55WW#T#&&A9efbN2qo;UJo8#h4~iyYJBv2=;LB~k z-s%JHz5*rFPrwvaT#>~VT`Y`16Ddn+!WwP75yu>L+>yr~eQc`2BhG8dHL)_>5UuuX zgG;{M==&`=839A_#VW1563Z-~i&4su4*U_!FvT2`%reb96HTIm9FnCX)swBmCF9eL zH{a~zvP&wp+>_5f{rnRmJf-|H%|Z=56wyQ#U6fJG*1RyRH#t=Dz1u)^QbZ_A?6M?1 z0sR!zP(=+;P#OLSZ4}j1Rb7?UR$a~UQS>4`a=kb!Ws=S(@8r}ZPe=U~*kFYnkk^t< zeHGbcm0gzEW}Q_kRw6OfuvSVxY_iS~qbznLUx)n`+;GK3s8kb=eHPtx)m@j}cGHZu z&1sQjueMv~4AD*!%Pr8`asB-l;6C@o?_75cJ{aMI6<+u>cvo_hRyeJ-6kA>O<+j^^ zHQtzGD+iXYV1`8=ndFj9KKUkx|AClViR-;K*GzZCIHZ0%z8UA7jr(}GkWu~_=%9rj z+EtZVp4V2G@zr)yjBVB#>ZqmOi08?CCK~IkwceWR35}Ll;)!uxy1s2`etPP()m~en zs;8r|>;Aaqo}2EvQ~P?>mXj3wUQF*QyJ>FGW}EQBb#@!DtLHIW z`Mxw;z!CpzaKk{#ZfS8o!ENR&|O-38@uYO)b*grIUK8zi+<&6Q1#u z=RE1jN=lX!pZV0MqRv?@UEZ&nn!08^30hEt9u%R%yyrd{+E9o3sGlxVCqUV0&4gYQ zqZ!rcMpL=ahkg{KA!SfRC-u+11yqzARq0Au+R~MJRHQML=}fOf(p*mTq!ksYOL^K; zpZ*k{Fs12GiCWan*fg3;qNYw$3RI^)6{=AkrBIDpRjXc=DM+OaPM2yiUrH6MVHN9G z6Bkabo)xWWg_aHD?#UisSBm1s4can%h<>55mw9u~0| z)vI3_+gPIl)}++T)=m>!S<7Dbn~QbqW;qMeG>$N-(*)&Yn~GV}o)-SKs?=;}S=-uj zeioOZ-6d%Yn_Ao67PsnKt!sJP+gZZ)t$`KoU}^i+x z?|whHUVn1cy)vsU#`s5H10Oh0NHi~h8QkC|`d6ZY1s`Q;2Sfy47{dt}sFxP(U=M%T zgAgt$fQkFw4Od``8CJ1@@5`0R#~rMuJX_I10#4R3$vPTuww z_`q+3??vm|+kG}su>algKarc@5tsOQ3{Ed+SMl4${$e;oP@n=8u%HDkV1dUA;&7Am z2jUY~`O33XaaL1|-5G~8VN_59AM8LBw4jA3c#wk^l>FpDUrx$dUUZ|AM%Vtlxa?%k zsf{B91ugIaErL;Xt5=;AHc$c3CxQa6FU0F#7f{$G5_Yqj-HRw-0S#O7Cvyn;2jcm8)!WtYOg!(!A|za zyub#He+UX(a0BBX-}p1&eFar;163%a8O%8T#tvrS_!*Sq7|dvfGDJ}W%p1f7J|M<2 znz4*tb3W z4x;8vq5hb`7Akb20+2}dVv;f z0T`|>_RHAR<`62YR6wZb1o^kQPiK z0f$Hhd_Wnv;Tx*(8?wO|s&64~z!1wP>nzpxvq0TdFD1$ICg zwm}c85FE7O7;*sfK;atJ@CPsuziN#GN0AhbV)XK@^!AMewTvSo@fNNQ7Ad# zaQPHM273V*KH&wR4hMBmBKEHow6HOPa0rWV>PP_xmXR58kBD#p8M?t6uz?wV+ z7+`P&T3{HwP#c<|8N84V|8N9Ep&Gt{8>)dBuAv*gp&5Dr?py#Fs4yF<@fx=w8x2Ag z@^BldVHvO?4VOXrxX=r|VGfT0?@ECh(D53mfg0G+8>pca2yX|Np&hru8Xoc*xgi;H zpddKW6G8FEM6nc0(jp9wlW+&V z?*?;l2LUnaT)+jk4iHr!2UejJYJdg2js>1l0Y?t#K2Ge4lJRViDqZ06jIkyOFDie~ zAdHX}c%b(3&IMWkDWOgUS|BagGHMF%28J^8OaUOPK@>*728>}FyrCJ)G9gT%8Lm(m z5RVnC;T!Oh_~wx#b6^B`fDpHV7%uP=I`JAv;qHck606|`h_4yIp&N{01XN%L5K|j^ z!3Az%8@k~dn!y_mQ6X;N7`TBOmccPcpa+(r8?<2t6khKZeqaV@U=&)=^?pDs9S;X?K@@V% zBLVRjhcfDLUKnris2XG((Wzavpt_5yj2S}k5 z{Btd7pa*UM2TWlUI#UR1vhaT32WUVc$PzH|js|kTLU#ZMX73d~fEm648+sujRG=5K!5fyr2Modn<`ExXKq0@u8Ya>pg24-!!7*pk z8;~J64Pr;P!4_126tp26szD1|fEc7v8OqQamVp$G;WZIbA#y+&ydfKU^B_Q>8LHtH zMqm^c@)~IVA^o~>4SPU2JCQj>5@VoDIuG^pQqtl?5aY5lKQ;mfRN?i2!4^J&6>!q^ zc0e0B4hL+Z6mVca?Jy{TQAK$`=U74KL;(lnZU<-~329*zaNq?@VHMib6+xjhN5BP0 zVHIl71zMFBSb-I8p;s|)0!iUiYcN9z@A_z=2L=yBCl3ci!4`s5=XT&lQNRX})mm-A z6l&lW$0bIM0U)u#Nf9Ckb`%@#)F8N!8*sE;XA>V0B1nhy2(iIl4`K%v(i#Aj8N5Lo zR^bVcK^l>P1&pB`l|cb_zzeB?27JI2^ioaX^&oH{8EzCA40Ivzup5-&HV-0QyCEAs zK?VMnvpI<+6z2_5SC(a2LQ!9iNldRLOHd=G&h>yH2iKG8Uau6MaQHg44ST>-5pPs? zQ0i!b6go5fSYZ?{a0G-=3!`uqdf@J8fD~?l7Bq1LoR1VDaOy7f9l?+qh@l5OGzUbN z78ZgSR``ZZmQY=cB%7CvL+^RHEqYnfxLi^rOo2SFu73?eXkU*Oi1BB={*~}-U=>!O zGv8AMaDWw>k_HC326})MH1%njk{GW~RZ+kPKA{Kb(QifD}{#2UvgyrZ(~h*#=616|@&%EY=IT z;To0!6db~Y6ElTLAsbj2A#&3jVE7;uG9qa>a&H(RDtCu_m`P7p6tV#vhPa5k;fN1{ z1_tvQmbi%OSZ@*H1y%tRer^JPApfj)6?%atNqOpI(I|~lEd}uwK!Kx2A?JFv1^RXshI$lG z)tCQ8O~WA~M*$*y;2f(VVhutCRv~heAt8KV8K%(|5MmV&b8~Chnhl}_{&jSz`h`!o z7btOcmEjw@K~4=Kc3=3aYnNiTkQS1m8m@6qEtVU!AsDogc#W5zQFbI%7N8s3jHz>4 zth3v&b7omlBlhq06nc(bj}$Pu_J9@;XSFQ%PX{Ubl$ClENTH?O_kB%t6ii`7RpAFN zcn7Dhr4QnzRYCb?x~79+=We018zNd2V)cR=wM}6zO~L*al3J-h^*qHT7})WJjlo16 zA_vTw6%N7%h+!Kj7K#UZ7=VrzuEAcR)EhkZAbfxtp4ngF^d}F37^pBAfENuX7Z7pa zgh7{yZC4?B@CLjOWRqd5aX>RA7l(aQhiSnD5?gsw*0CR)0|lBZlY4=tJ-HWT zuM}({fDyPX7h+av8R|+d5^L24Irv*ZVHu=58X@LHJa_&`~&0L$aS89Ks_#Q6XD|K#=sVjIb)(&o<(yxmU9p`s!#QS0Vbt zvD%VTb@pyR6q>f=RDcF<;6+&*ty_5&KEYQ@0Tfu_6LQrCR6!K{HwtY*g3ETt0Woc9 z;1ja;xraL;jL?;ZulRxw1%7}(QFNkh00EhNSV-Z?FLD`1!Oal@cUL%ZDUZ;r0nzi* z6#h_#tAQ3?fCUB-PP03UcXJr}c+K_s5217oHB|*f!7_J12CLx`Sz-3l6%1e3NYhy% z_VtB>;R65I7~c7Fe_#r^K^fxLH+Nte{%F&h8JsYlQ_@Gi-e4<3Bzv|5Ow$*RBj)#w zfuR)K9FSo#$VpwI526LE7Z`w%l@HklW?%+nS;?Q4e(kgIV3HMpA?pZl>VN^Z$Ffy- z0M>(k6>^%`Yx)>vFj#BwL#Hl8p>BRZ!9FX`2UbDjw^bGV^94p!6|zp-hXn;lK^d-r z3a=rr(bXb%S0>k+4s8I6wE-K50YH&qHJd>gXki&va~S}21fu(yjX@PaI59^7@j|vX zg>}6>cPNd43guZ9*8ETRoZ%A!ii6V_EEO35G8-;8PracLhd~vHp&GiO8~)NDK++mu zUln#A6lz{0M4se>AKOfxz1pk(#PVh3QIFFh*y?(L2beKZ-xw6^*u!rg5Nlu*dVy4T znHJ!;6sjJBM_>k8l@*ZtAXMG?hjRaJp~Ja9#`SZ38;`d=`4~rY>Og^P5rWwhq6Mg( z6-WUfOpT)T2?vT1DsqToHOdqzTB~xf7(ub3#fum-YTU@NqsNaPRg_9rty-y!E{zzV{Z5;Eq?U=?MJdq~-mJOK?iY!=BvgON|Gi%<=xwGfbphJruO}ez{)2LIcUd_6->({Vj%brcU zw(Z-vbL-yCySMM(v5yEJek6(IB*>E|fx^6rl;_WlE zGSpmIjWVP>SpHEC#x!HiHP$c_OkqzcW92o~B(npMBjiA)nahNE5e>I6!wgs&`EX1# zcUHs9Fcn&43Yl+K)66kG0J(!Q%~0d%r_BsA1Cth^x8A9YK_(e+thVavtFXo@>#Vfa zYU{1I=Bn$iy!Of}al;u`nR3Z72ZeLcNg*9|)?I-e7TR^^9eCoAXP&93X4@XA7WSY@ zFZR(#i;8@5yAcX1xX?nm2eQBdjYz7{LJRPkYZwYFxbSX9_^Mm4y#NO+Fh?%jAA0cDUPxwsWnJAN)MxIWP^k|SUm7Y*k*gGs=mf7 z^UO5Y{%rHjIOnYM&OG<*^Ju^dCoE;eB4;eJ&@Eftb=hs#-FM-USKfIpyS%NvE#P2^ zDzw-F3^25?0*Vg?u59+%Xs50A+HAM&_S*orTy=Ud|7`c&c;~J6-hB7%_uqiy9CUHV z6@7HF%1*bmvrS72b+zMNJ2$FV1KffQKk!gWDL&*t!@qEcF8b)Cmu~v$sE;7`x{rBL9FaBz~7f$Tq$qLUjv`%yPIPz3q?-=vc*Khy*_~);G_3}UF`uG6; z44?o9NWcOb@PMu=->?h^y!0tx<@rX!Fq7ro% zG~WHgcj!x63>n8h$JH=$6%1kpa`?k8dhv^3MBNQpC&DF~@r-CpqZ-!;Ko<7Sg-t+O z;uiO;DoPM?Qyb&txERJh`tgr|pt7j&fWU1S3ep31V@O zRpVnIH_6FPZW5C&DJivNsdKyCO;TPF0QAPp&!7D~5yPV}TGO{q#BT2Z52 zG&-+bpGM!u(PtJ^q&Ur~J4x!lA+GeNKn)41v6-~2 zw^b%| z1=?NqSl|Nijjw#?OW*q1_rCbeuYUK--~RgdzW@%ffCo(A0vq_i2u`qq7aU&;aJRjf z9j}BZOyP)@mzC(nXtQwJSlvpuy&w*;h(}D~5}WwMC{D48{zDw$3cL8lFdpWG8JJ<1 zE{?=S=51kB`axJgReXd`I@e`Okn3 zw4et~Xd&A9(1=cS8^zp0GVfWveb#ZICr#-}Tl&%?mb0Qa&FN1649^yIvLw$O=`>^d z)TmCis#on@PrLfnu)Z6pU0P<0{&R-kA?|*C?*5{Su9FwV? z_T}2cz>c=Gr%i1UYueb@&bGFL!{|4X8HUVaTC-IBN4PQPxz;wex3lrR>wY`@;Sd+}zXeY5iW8gQ zPQ>zj(WWz z=<#V0J?m&sd)Bw^^|rfxvtXaM*lkVrp;uk)c+b1d+5Yyv`~9tP*SOT{9`n2F{qTr? zIN$%y_{Ik{@brdhOrKlo$0q*rm_PU89nb#x&Re*)4xBunW$EY4oBs6v7PjYC&w8vv zzR9i>J)}u5Y1G^P_Lkm!>vzxlV7`9tiIY7*8E$Ue8~^w>SAFl7&wPCT{^y~;@$5Hh zYUEr0`fApF^S94^H9nu#v6uev&yM}_n}5jK@4ouiZ^Z8>JNg@*KJm{_|N8ql{p`=b z{zvG3x=Kg*Gev&(H-H4lV#>FF2$+Co)PIU4MF5yvQdWQxIDwXhe+qbk7^poAh;aWW zegSBB6c~acI5`%WfhKr@u(N^T7k}dif|!;8DquYsfC3p{0XA?W4<=+55QA_wgS^%P zrqBb$M^H2fVj0jPHINuHn1j()g8nG@gix3_DhPk1MtjwFYBq2SrND$0fC8q#3OUgO zy)X(YFl9Ax3qAm6r9ca1m>wvA0)Y00ig5ur&TNIKkO)wOn8c`paS|xkOVc5-o%j*4-Hq~KtT0gm1XjE0Da=E#t$MvTW8k|H@Pk0^PO7-f@)YBVq|*n$G2zzT>c zATPikT(SeE@B=NtT`YhDH85NkKm$1N0^G%m29X{aPy;JV+V23||7&LG&Gg$#FU<$pk1F!f3qCg7w z$rvm^3h)V^y+8_mI0B^bp0;oc5rKvkZ~>-Z3pcdU14;^{hDfJX##6gQGB|UAO~GianwL45J{PIIs#nAU78fA14~2JAj62WdUV+5@Tu# zv;Yigh@Q5v1F6ZEX@~;xAro~PAJd8htUwDqkdHPn5JC!!+nSRvu!h500XMJ;Qwm?; zs{RW1IRoK}18QXhtDvYmni!{;isMPBCkl?>Dhi)ShpRveEl>e1Pzqyc18&I!ANq@A zs-B3kp}z`@YuE#vI0B_`3;3EC(5SG_YNCn3ims>_DNzb)H3AZAi!K1IJAfE=+6$s^ z1MR_=rGSZ!kpn~uu@~S2t6-vSm;vn*kTDE3uE85wC%P5JphiWab3Zj4>DliJFz_aM7o@45>KCq8B zpbDmtk2xT$YLx?@015^1UWQ1e+2{hw$*>rDu>>Ke8Sn|x>aU=n3T>zYq_7H@{%8Tr zX(~40w>1c^rQo80%L9mk1AdF56)*#&aH1J-r#Pz^d^w*LkgPdCqrJd}>G7|sXoKS- zrd@agV(TQTP@xT*ABxceq#z1OIG`DOsV{JzKnc3EFtd*P31WHyqyP$Vh_bKfrYviN zcq*n1i>r33rHYZCpirTWF`%n3yU2PAwit+`u&{;+t*Gg=i}9BDJEo<;3NwkdmAa7( z`!M%u0WB~CLs(^sOmvoL2{uPS^;%#No>r7mzgq!3th83W)K;sHqq>&atH2PrOroRkhN{5KjG_Lcz5B)E$qGGikzgq! zt6-zYd%$Uunmh0b?kl2MnjtM(z0otda zfX$1cy6w8hwrI4fkj|v=3BAArYGujL1eOvKu68)UoUFA;h_FDKA#%)WqQQ(s=%7pix?7X*NySe;=5Nn zK+&`8)-Wg#8QlXL?HIwzv5S!sw#b)av)7+c$+@@~7rNLU^O7)~wU)X?FR%moYzr2< zYB{~r%5Aniy|$}-g{gJ{5{m<_EXEa$xB00T>v02o%>$!Qp*TR*rQp2jF$3@#vRydR zi17oxptw8S!x3t#3}8!T|5GX%erF<3cTwWg}p`O zdD#9MAFy=2Wl&r}+qH`h3Bldn-QC^Y-QAsF!3Kgm1b4UKF2UX1-Q7bN&OFcio$tJV z&RuKvpItRm-L+4oW^^b1e*==4KL+XvF zJ^Z;Oxo-rq^>Q(D6=UlJgxOVndC{grmO4fHl|*#0LoK(^1Dd}`b^lK$?3x`}~78SncULTVF z*KSxqdmT?P5_r$%p;x4B1`}z`;(Qgm59&(=j__`?Q0Ku<(~-xs{!+9;ejzBDo)HH5 z2vR3H1N>so%5~Q5_1HbAqTPwh{`3}`?HGfysO^sSfCiWMR7;^lHo}7Z?F?a&nXF7d z`Rl{wz^h+#o27g~-9RY0sU+RF)>GbjW~k6$`-A$;e1TceZ%gpnbAiM0qii7y()D~= z$Nw9zNT@Sz&B|-FF8u1j*|J-8W~oT;`^Sk(TLEgpjWEfn%{aV3JvPf~Grv($p$RMQ zY<=g(&~^_zaYHO(56&BJNo5gKQSDiY$zI~sD(5Uoj_gfIcge0E$x?X5>bKmMgd1f` zXz3~~9fb;-d@WSRv$ukqez^vg+Ay|joX`&Fg$YU{yXfClCD1cnEWZk2?wHK=jvc;+ zE|rhLY+iES<{92V4b}`S>Rzq(Jg?SXVfj~TA_L|`BKr#X%^Z=J9CC3R9=|y7aB7EwH;V8 z3oW4178*%Z(Agx2LTvIyQP?0?mgf=swl){JrX%;UzWO5ecdhgUbO&CahhE-+*}u1# z?&$4rD)4P6bI>u!btc3MX;Dytf4>UklQgjmje?Ik?tCg-KSQ{}PV_MvA>hG)QljDev4*OpydoVkBCRW0`6z<-VH6IqBCyN z9J!@d;F;1}+>**&Az@+eg}CvaOCqaTvd8TfoTIPe(lA<$-qGH~6PMa(sLX{j4SkCx z*2dWrznjRxFwTJLcm`AuOVML!@s9(yh$=<)emGQ0>m=J64;M%Nkv{neZmgWvVSkJ( z5c;QOa<@Q9Q;Vrt{2_545mjk!SSrJ?1}@0c>NC z|KF#posm4_&p^<}$0r<%2qYXuy$Ce21dAvvwne=t9B~+n*jMV}da-ZJgDl{5rNer0 zxOfOw36$h~=CA0=3Q+JgnKokZ*r1XOGAa7nd{vSVBrzFMAVJ6|$8#VIn+)mHxCsn# zM0WWoIWqoU2yrR`np_M6&HNZGyN+AYw}vL03503`=Lss-B(@^9&O+|>zGDR zw&<8c7IR3*9}O%@DC+yO4%1pyyXLF7K87q3;-AlHIrqYH8@P^8wi>t_4n663u2{Aj zdhdjD8~L7;ysTJAGyGlyS@Wi*>EYF2K9M*oUOgLxB1`d@hGSdt?0H;-^O*glE^RZ5 zW*+7_fV&YiTYJq^bd|I*ynIpr@tZJ1T7%Us-!k18$ZPe>x)gjw-FcYTI>-CC-8wG_ zz-LnsLDgYX6febRTg?7l$Gj{L$Y)nkR@z}#g?zYr5G1nAt*2bo?W#fe)uj-g#fZG^# zS(jU37Kq<{iu_=V2wg)8rGRDy{44 z6l@as{b|LzH{fL_s2$vvRMs2#elxP8dLsJP0dUO* zBZry5Q1XbvYt4pW51Ift+eDGPWEX?;Cob3UDGS zUs-&|LuLNzNr@3X&qfHtn4yI8NRVO8MM_Va{JT6BqvD$TsT@XjW5Uywh#3c5ZZK`} z2orz2LiuS7V~#V#BgK|B7h}Dc53PhF$<;C!>l{YjT}mT<2g?$@zP}GkFbW~`JQp7X zV?hGT3z8ATnoo$3upq;1myzO{PmB+!y~{3uDC+&N~T_h$flISF%^1 z0Y1Z5oeH;U$x*_qXs5N1xiV7An%MA$9D_zCqhQIWo*8&uNLsc3IqTa1 z8mw6;3bL?O3Fp% Atsmb6oQ`Z}5pswh#&Z^|Nj$o8_ZlFs?6QQ`$YE(&X} zGsL%?4EkN6E@`i~)S>06$yubeSwYwQUFh56T<+ICd!wfg?VjhQx*%8w6IgzoKUmB4 z5t0sOn4LPqT+6@X!yPOr`E|$HT5FhH!^PE!S@2ef`G&}W{ zTb7&a!W|tf`SsV)v~v9?tF1jd^|zl}MElW+2=}6veo%(}K&j}nJo=gMshuW)YeG`#lm7V5*?Wc|s#so~V$1#PhPmejd<-m=nt6YlJP#BaO`GU9IC z9&!$Rs?xfRt4-M>XFi|KDms8N?Y=E`4#Dg)0dTMOPsN@DyzraCYx5L-d~63*(ddDx zZPBn=!HM-8W@zcFgVa*4QJP(5Sgor=%s|%|O96AdmDOSHVb?g%E_0%n)e&K_+mlU+u zTUlRj9rmpC?6x<0Szk${;;al8bTIQ%TG};#!ZbuYg_`)gG6VE#DiL(F)81HL3G}Fs z?sjzY?(`dDQ}vnnYLWw(?V5~ZlgN&B^lIJMx&eB39p%_N`fY5#40{j8ZJj`P<7^oi zymY||xrAVE?!vuzc0Y8x0J*bu-m#e5dAl4Qp$PV{M|_4kd+uWCH}{C)d`IzN?_8<* zYfox<)}X+2-qy_{<_O*zK_<7%mCa*(sM-;&twZ55150oo{cO09N8z`CV{Ym1^QpD@ z+3(!@RNOCBS%w~!+FR$^#IJMdJ)X7Rg2IY3w+p`4&UxSPKo{21e(OuM_BDQ6SI)+K ztLY40!pS*(X8@?#l^*Y&m#v#9C;m-XVV{JFoEeWB?x7o}yI$_?yLe^4-LJyF>1@vdXq+mB_;Pe-0{ms1gP=efiImzKhQ!RbU#ts?>9nl~O( zD>)A;RsvVy!v6ch8_(_1f%mPQ?~~>l`!!x4y_!b;=h{1e3x#^_n|nW|*n+ORmHi(l zh%PSDcmAEEdpx)I20n`~y+^!7!>0e6qgv3&={1|7{qpg#H{C_ z;0cqo36qKplOG&ZSR7P598`K7RE8N+!5C7d7*gXHQkRfabAXXjfg%6G$>l$wlQMMi zQ{4L3z-_eXF1d(uRX?`LpfSv_3C6G~#jqI&VHn#*Op-oCqJB`rW7s-u*d}GzwphyA zAxu(bKsj_s_i)$=CPz;pQ9q?OH(8|dodb(y*h6E)(_+NSUG#uUvVfnnn<9uuHe1&Im|4smeATGK@5;Dq|+Xiarv-Qz@Wab?mX zb`ghsadwB2xOAJw(<~XLdAE$s4iqh&+%M{c5gQF|| zWNVA3jx454&L%AyLS`g>&Ce?~|C_oPoc2JNmcmy$c$~h;mO9*QT6LJd=a@nARa*Et zU7n@1Dn5A`HuGvRcxBOa4KwpTIHQK4tVlld@Hq3Co$&aW`Q*{?+%%wYp!lXS3;QAd z*MQ@Fa^_3wtm5X3!i6%#5NH-b5e1Tw01E7GAu7UH&Z1JP3VNtWhR%M~ocmIvqR^>= z7(R#dfsAy8fqcb+q9{MdFh{64i>}y&VK_(fF^$#Tgq=D^E;;`hGR#JVZdS1M9p22frY;#`jVxGBV z0Rd4R-;J%4F)fj?V6hqe# z8(PfaSd(6nLo|zeaz}3&KVpnSqI1(!)lq9EPtn1R%O?+SX#!> zT=qDpRcltV!PJgOS+?WU)*hO4)LgN^R6s^xWF4aOgwhrwR0U@+6Q4p7?FJK#LgJrJ z;f+EP-$D}T%(}rU%VxmHsjSK-gt><=co?ok9xZ!$_InShw|`%>$mTGNoxxuXHnjmb zi~=3nfR_2;#JAe>laQAG#o~p8Pret!fOkbQ0|0U^I%8eS4ij2GpLA79baO6|CO}aQPD9yb5pxbMan*E~fyiwx7e*>s3?hM6qi(*}A2U>yAD^ zAm)ZxxK2~J0XRo!$zA)DLT^4(8&z{Qxg6jE0q0Z>G|vw=kpV;S)*VFvAzR}3eZd5y zU|=t#Xcy#4xS>e4;YzHbh{M*()j;2nUJa(wZFQLK7dV$yedi2d{nMbVj1KT)FsuaT zO33n|-0D7ZQLNU?cq#Ot-&@S%n zR)4B;DCe|nd6?s_zQZke7#j+QyK*e1=z#!hAD~=5%rN5~x{@iTmFaLv7<%m^#xPI@s0eciY{Q;hiaG`&} z=CeS@dZ0-LB*7`Hoytzx7QhMxHYi|c#u8}9W9~8wG#?EXd<-@p1$H~GGY|oma)JqU z08aTE`$qsP8d#Vflieew0Z$;xG{E}S#K{Ff*fR*mzdB?9oLux|x%Oqs!`eT9nSuu{ zs{m`8JsBUMOd7y3f5X;f+qw@RsAQm?7A7|e?C?C2ueLnrxyDZ z8&d50G+I{I$!3#7OLS>7csSwu*FZ~|HNk2~bug8Y1)x?Bsow^4uHQ(+JnZTI$#o5M z+y#0f?YWEs^xJ}QM}sX;z-aeF@JNhAEbLx^GnCdYw*b3U$Zsv{JCvI>oYQ*4z$!(f zeaUUomctoCYtLz1b0rzw0Kpo|ni>=Dvp7U(nzv@n6y zGXXqJ0Ro)N!H=_@i3xk{hNVfA=_uf!8w{BY2U(a{x|9RK52xkohNB8VzaG|d6*yyf zE+KTfyR~aQYY{JG@M~B?zIH=eX-{YP42N7?@wi= zbA38=bm4M)Dqjq$X^xBN=gySpa_r~ZgOFyk zhmJmLqLaamMgVgYcsvyQ87{y}xN$QmY}F9fepTP@6q3LMP&##zA_;U@1={1l615#U zn*e=?%&kyP?D`0au{0Lll1}AJps&=E(ezPek~n3wXG#% z?U@Avo}Pe1H5SN#2;08xOs^w7Am~Q++C(k)OwQ`esMKQF|4K6YYVG-Utje)vN_8rB z=0CYdR1)}oNMLfekq*E}2|#Rf;H(2AnjIi0zjjG*QUgOVOM!gL;*Q5w#5e$GZe6{6 zSnL;|^C(bLOirV5bqqse26 z8fRpEdg3s;m*I8ROJs$^bQQs6MGd+YG!|Xb$4Vy9Q)QH`HE)t3uI0bSp>PdP_2T`^NX!1qd|0WT5aVXSTR(rb@;dUPXl0pY2@Zq98r z?kD||v%^byp_OOE$A{x@BO65oKey;o|+{(bf)nX9KO}# z-abThur<-ESG+VDdFoc&HsN;f7y_7k13Em!JGgthvsqf0>8; z&OlK5HAwl3wTlffWCl_VCmf7hH}88fhX`*=_fsJWe_*mf0J=R{P0=zN%{=)H9lu5% z`+U1OG2HQq1RSxx>_T%tbWZ_uv>q&w^)rx69cXSLz27og{7JFQ%~bFi;QSO;9*J%t?OtD% zW!6mdfp#_k_1CZ=W#FdZSCjhil^;HIOYcif&i*3++gmW<7=R+=5PNb%0`wh-xKwI! zHsZ2O9vPH+c7S;~)HiY=+_s!KezM*%?Mbu6zWyfw_XPtA4voQPmIReV62$6odP@o# zj6|bWtG2l#8;-%_cDp>iBOgs5lTKo=y{8yYq0??~IJ>8u%wV&gueN=lQc98by5IbD zXq^NUi4e1$mw;C*Rxj20?RG?)R<7UTQ*jQ9u*_mQ>Ox5l^CddeYy{1M^?+f$$!?{= z@#2|rvx!4N^&P7gpVO@SJ7MQD;wF~`uao7sR>oh*1Vw3{ozZP8oG#lbZz7$O`aE`m zRs=Mn$vjw;8q=N1j&Z7TYeF$Fz>@cS!i zBxw{6*-y$$AF?Rg$~LlS#{ETgW$~|^i^`IOsVNx$31PxiHDyixe+|oU(j=>=7K&uW zeUupEXWzytE-%Oy1zL80v32e>notDJ4IlJf^F&3hHQjW}mS40}9LH0fQx@jf+@p&u z;>>FzWr*yPudq05?2BIdPKtQn%k_IrX$Zn&`Nj=`SA5wK!-h2PH@ROOPY}7+O^Oh$ zl9jAUJhohtr^>wU;7I-N75DSlH&-L3ICjI6&pZYc_Ytfbk3o1}DQmuqUvRAd3!nNC zPuI!dibeLb0LUcA&)B@A=f~KxX4lEsy7m3NMvCR0f?S+q*#;wym+c5cLrv8ZQ_I9= zDOKAVC|R^pFM0(68jDMij+?p@>{0 z?h9L0f2O7L*s-boAL|k&@Lag(yW}>fhN=AV8&d!L^9-Bbme*?9%?#jLx2@{t+Hmar z;M!b?xJ$Z=r-{#TidsE%_|qGR#UO%41kNRmg&4MheBU(WK^7xK z&T*8+Hn#3vmGS)vm{4fF0fxpHR^EJAKK3~6&<DIO)nOKV(zKGukLB6tMxt~bpp*&$1!7Q)e!$QS(W?E9(&{3^YAhd0K$-pV zMZ-i5XSJ5NyNWJ|98H_*RU%Y}1?c2YPHNvW^N*b5*TEoX zAxV_J00kL(#i%4(Lte%-q+dG293-mj!_X}x`ki!DPnuYyAqt03pw{qWkMgc zQ9OUAP0`$Q{oHqs7TYZ@64cJU3 zQeoyz#Lx&|(XEYbd#d`SqChZJ>Eb_oIs`E?*of1w&n2}uMo8MLihtMeZuhK+k3BV@ zrQcYig0IWcM1o-R+t})kscfm}ZqUFZl&f!cBSM;V|541`Cb~6OMzwaR8!*$7^-3E&@ z?4u^P6@C>;cf+30O3J+JzgIj9GdD2Y0C5lC9kWCTA~1%hw2cUXSQ7$#_hFcHni0L6 z{8i62aM^z~U`q9ezt|n%AFTHB^`JzCRv$6Cw@*0X-%Br@8)4BuwKE&JB`+wfP)qC9 zsh7H?{`RxnwOE_*>H)FmK1>$2bIjozaTMVPtVze0Os55MR+}?kM4Rws5Z0iU z{hC-;rsl1+FJ`U?B^2l4-d{ZC;c7^nGSswBTQYNfsxD%@vX$>xzFy?0RjkyXUgd+=X&O zH;7{tQA5Qjxb~#(+`8_eBS#{=LEP%x$LjToe+amMx!0fFy5_XVp}h`CCJ1FxflShH ziS&5KUP27=0cq_yhW#|}I_B#2_2rCnjI;0DvHZt93cVeYg#O{e{Mw=ulYg7W-gWl* zgLe=S)y?Lh>s+h%yOig(b)iT0Z((oOa$(xr!sGyBIN~hQv~9!mM*MSjOBga0CHLxu z?rX1|ishFr_xM(vT~g^_cs-W;2J}E~>Gbz*jRdc>2d}yI009V4qJArS6F3kU1`VY2 z)al;ykUL|xO}qAl`Hp`nLtPB7vm4Tn-ScGY+y71P$Ln9rJ(MUNiQmpydt2(cr7B2kgJXH(M87RF6Awg&}8+`G1#tg`OMhKCaw*-?u-7UI&;#cgel~ zj^REZK@rBnm>B&i*FnPn4wygRz|QD%oiN0>YTU?0(B}(y6$a!(Adx^~?LuIQ9!naN zPU+us=0gjSd@>NPa1x&dIN^nH1T{tC>8uQmCC zMGVtJf-syPC9_+qnqL+`@c26)>6!%jIUgC6FCwrll5GMHRe(xlTE&`=z(k79Wg0z8 zGUB=($3u+NgN0^9ie*)R1!ejbi4-1d4+~g;)RB*#R)CvJ%KuY7?`JN?-^~Zz0-WIj zf@xAhp>Gg4FsR$6gx98ziKKWSQW8L+qzEYnhFO%NDQpiZ;GUG6tB^d(lt`$MVm}3h z246^NL`DUS#uH8TREQr)fS2=&nX8DslnfO#z#d1&f>gw5RJ4Ry zbc(5)zoec3vBd`5;)o;Xoi}ApBPZ4(=c*;=-_GJ3lE`?mF1#d?m3IZgW1BJq{#gOhsGp;!)mgKevo*Lx>EEY%<1tD0r zvRDO)QZN3a4DrTR3UqSK}#RdGifHX9B@1DvT%! zO8=QEm3>R8J=8YBA~~uFq_#_`-p-lGK6H&XVS$#w4 z*QT)4-lg)8Dswq2-3};LvQmq7M59iGMDvFQe<8xCky{+KZ>hyOs9OYa@xWUTvRkIi zuZP-H^@L0Bq(!qt2C57j1w1v>LC@4E`BXmu;I*q@~a|wYG(##!G?3#(+fCv4}#d_yH_WB%)2Csz_p@P3Edd7NSj&sz^~f3qz|& z1&D?rK|+N<;^jkjhxNw*D>BYCV#zFQIxNp@PrSTrahq&$%OSH%gR`e;bCxS|wrO)Z zf^)BF^PVg6K(zTC{dfp;1z42@M0AC9dLUf>Fsmfv{yP}@p5+k}&tIAR* zx-zfIvOv0WU}bq6T}4`Dg%MpzX=P=tT`^TZ1A&T{9V7l@Wc5RaIp!U8`4BYao5w z_sW(y`u0-0=G=>XxvCDR^TrnYoO8N5FItz7iu&cM?rXH)bQvu_HO%OaYmgslSzD^Ht+oHA{M^6KJ}2dp7^sPnwsXV!K$_cUVZfn!je4FRdxW z1BX@AZ1gaeR5~{2UQMStF2r3e03EaBt`?1Ic0h~}h*VI%7D~%yak+DoO!lk$j0b4d zTl;idQngLvSHpj5j*PAc)UJo+m`(ua2SWA-T(#TxjM}3NySYr~!?C+aOf&5anR@w| zJ>}cyj;H%qCm{|ebT!9zOvlem$Je#P$4*<@*9Xf?+tW^q(^Y4sOb=W)Yt`4g<7Rt! zOtwg4lS#q*WH*<1H>+rM)9}uJpz2;ham;UNb#J-O9U;ztzSk|dId9wDTqZH$jxsFq z)qQN&Z5Ef*{C2ufy1Dqn^wDGU{D=8p$IU{6^Fn3a-$G_+?s{nQ8mK%*sGS-}WCloM zm%4H0k9}r1@A_zqn#amio4C>yy&EsLAqewZSnbXPXF1#;`p$jV!QrC_(d&e>GyFXkjwI1T95p4i?rc{gk6nj%vv+g@@B@0 z?dODfaE1}@h!KBxI_`|}?Kf)KZ#?%eXrZN_L{)Ktj4ny6gm4Zx#JAW%uGlxM#4mTZ z$E-*@tc%O8gz44y@OLP6zsZ={KnhKFta!(6sy8#Kzb2tv(~a0jt?!@V-M&HJe|u-8 ziExAQV;gmA7`0=g8@Qp&V*LPuGZ5JrMjDh(2|lro@rmgtGwado*q9q_={_51FX(7@ zYH6?=S*0&nu$@^RZkg@fm><|s@?5(TN*J^oIsL-OrAyGNbmG?0A++5%A|BYe*?Bka z*zld%${xUIBfi#$&fJIhv_^sCOZEtNj)fZz<3^#I2aQeV^ZLIZko4^(m@{LP09RA4GbMj1b$$ac#~8e zN4(i1ojwPlx(BR0hvEw85qrV|c7Ox7^O3HxNjaT~EHqg22Z!oSql~iwnls}H(jx_V zE&6AZ^24M2MHBKtlO}hqqP6F{(G!L`C!IW}lz6iaw5JNPr)pj^1G)-i#gTACeMUEf z+=B&uJf|T(ht7M0HZ;5T4d*4@GwK$VEKl>+7F1y_>K4z8pSRmF zs+K|Il%ec)H!Tq9T*~oW))6f(eq1gm&CU-T&eShbo%eRkE%w5#a04whq|IE;;MwMM z;(t=7=k{)Vv;tvs`y{j4L~#42vzvNze;4aYFsSgXlB;NVqh8)EGfNc#<@HCg1W2x}h*`i#qWE=JCXPOa2Uc zjf87YsJe|8caJCLMY(88nqcs2e2o@v-x+=tmw0x-W+GE-2|svEa`uHFZ%?=PO6+`0 zh<{`Ddri-4S9WjDWcPLtI?xc|&916Wxxi1Q_mr6r*V^%$n7@Jg zJsq9DvC+3a^l$Y-hoEVHjkaHgm=7a1uH!?bqu)cU@oQs*Umo{+J$+|;9)CxfUs5uE zb#!N^bSJlZXYOM+=OfypGiQkIejSlKwY1 z0ur#+>Kf{7{&Mg({QiC7#^0;Xf1pfY_NHwNS+EGMdyc(*hB~15;a^Cvz~qF$;-_WI zO7W1fK)?!jZxH{2b9XO&KpU~(Dl_j~{D)jb_ZoTkN;LmU9XNu;uUATNGpj_e?#bgO zJ9gcd;=ni8uXDNaW4)|Gyne)89d=}jZ zi~K<4NiY!&g@gUB+LmA{9)V0MmBN!~HuO`U#cDGo++3PLTg2#%JIO*enOe0}qdmz| zKAqWgIE6RaN->Mu^?0#8*;+YII2eG*mtvz@B%Mg5*^y$aUZxyMl*pHAhgPK}Z?x3G z`4yv1u}=<_-%C!nQA-T?c&ciy-|EOXoXVf>Wcc&T-SJXqy0dX_5G)W?Aj8FU;0G$T zRu@iz;Yd8GwAbtMm0p~!q}Wo|FL&#iJkba&!AuX^g)-GLt!_Pb%@t`-i`CKi5wjfd!B68N_+dR*ojRTbH@j3TRk_7?>ebE za&B>XR|C$BuWv>E$uK`ko~WQUM)}L3p&X^;dwen45kG3{Uo8t(;pQKgY&^vM1WqHY zV+;$E?4AhfQ{!EiYBKbtE^5=fXVnYS{CAV;%6a)QZiBQH9CPC!j4OV7`Gj?arU_2m zp)XU?q_GfKC^+PI+6FbWNEmBU z8)RL?Qva!e17cpN_1clQQ=f-SdhHfYNc*O10iaO)GHS z{^x&ArWTGdZGgMwmENiRZn~oeMar&Lc1o2&>rUnE)A~2vZ`T_)y>C7GF6Go%eh$s3 z$_95sxMeFg{)tMNn(e=f^|vN2hz#6QAa6DwW<-$LZ7k||Pb|ZJ% zvUK#gCw?L4y&aClufIObDF+?huLY_9d-3xIy`7)c?SS6zh@-sx9eV@rue(P$w)*3L zz&Pwc!j=iaGR+!%@yK6+#}Pd~n`V#)cR<6kg1Lcqx8IvDh+m*y1>xfoxY0OB{}E;U z*0qzaEBxe+Il%vN1{!W_|FB5XC zXEhn_2ox6cbz*$Lqj{PCDc4najGy?R`O#&DjO4XbTx<#n0V%F*Hg8fAtid7Wg^!Hb z)^U8!;~}-^8Yv4rn_CNgF_o$=n?h|vT&l+ry(zA|?lf9pb(1BP`cFAhU{ZSb;}Nqi zx{MkWYoyrZ5v#hdyd_;y+LXsJJE-7ihousF>}V4eR`?fK6Q|^?t;b_EDP9FL@L|^# zjuYMq8AVScw#+LJYQz=X8Og%r+!YKn^salwfa~PEkCdM*jc^UFxed9noHTStzf{7R zQVI|~X_%1l=0dl@@YBZ=N!Co&04R>H&g_)EF|?|QaVfdToM*DCne$7DDJ6`Gl#=%5 zs8mH7M!>4oY{;27yI7|lCa46b>Os(cxO)s^QN}L)wt#%+swP*8%;a#S7caleK zKzF4s>4;W8Qd+%bC(-jDNOn^5Zm}-b(?R(KPj^fytszx$&YbmKr;n(nKIiGun$c@@ ztqZf(b?VYqHCl6`Hm$kF(9zBmU%ws90w{vLa&*nox0Lm)t8}aLKlyT*(+yB&td(FxVwm{xu#9d!PC{`>6a2Zl~t+ zeY!4z<$t)RmRt|Nh7hbc>wJgwydJXl9Fo!B&uko89&+x$AO|prIDpF~7n1OlbL7`- zIM<`>am;=;eCAxN*JBYWp{=ZP=KKf$V+rfWu|)c4QR?$!nJA&1YJBFR-SlIH>eYb+ z{r9;NucsL(BPK;e9`=Z{)fY)q$=Nm8w0gK=gD*NO&e6&x>3mbR;C3b7AOBxTKxy`8z)6QiJdJ z%3QA3U~s^arT6=W?37n(RSww4&Dy-%_G-J?I`Mt+E4(7|>36@p3Fr17dCT=7C(gYK zC;oRp`Z+YLoO_>oQnPRE#zN0hXzRCH|rS2T2N z4D{@D^z1bB95f97Tb$JNT>m2~IvZ^}j_) z&qYbk{l7)Uz(dWzN6W}f%gFUVqGRHwX9kOhfrXcWm7kGKfQgNdnT?NygO8O{fSp^I zi%*nCK!R6LieFe(NK{c+Tv<|5$worxw;0)mAkvZ$Mi)0(J`1BK4Z8&`yCEGX7lSSn zqa_p5f5iA7nK3XKF*2DlF(Sg|v>iI8N96BbGk7X6Q;h)ZNh%l@l!8M1O|iV7*J zN-5G_X`&e!iXnOWRz3O}bLwn!+5}yGPi1)vIYnJrMNI`|ZDloGRZRm8ZDVbHGd)8K z17mALQ(IF@N3cvR9L=np%&ndOM;10N)^@ITj&3fl9-bave%}6J0sg5$KQh9@bAN^x z#6}jz#pNWW96jZf;KdDXSjD@qHkcje|UOubZT&XdU#@XbaHNTW`1UVVQOJzdU17T zX>E3SeST$gVRdU^?f+ZJp?EBrM!nKttf53cwL}0n+ZH8zDvQVc zyy>l`Y$i{n*A-u`seGhyUy-EXeQdQ8oQB-H!o#T2Ez43Hc`@_j> zk$j#~cgNGkY98^9lAq61IC zyzvN2v-<-E%VszD3)O0FK(-_1b|Bx=iLq7=t<7Hey=BoJkihG7FMdgeG&CW{?>*#SoBvs{UVGP&#X;Fd{-C1#p7F`9pota%lQ3!&WRW9K&XR7Xx zdkP!PFso2-{;bNuc@?OB81I7Pe?!2|FY5XL^q2L6SoW8{|0soAHcWC|Fw}hehj-OD zF)a6mv_Z|?v3gl2IhM;^R?@CQ6J8Rtph`_$vGuY=f2#9#nEs~gaoPT+`}Mf$rsv=D z#Z5050(RS@aTp!U3{72q`v;+S;ztiMH-jr@1Ob`z(Dm>IW7~!Zr&G*PCOxL%nodz| z>z;pOo;lx7YxO{u5rhN9o^An@DTdIZyeT#?18hd*Wpj+uij+)#R))I9W0p(yE(=4R zJa$1ORY%N|Qows4mTR?150T45@aZm)G>>0XTxxod!zm@=ZI45hyEy;xMVsPm3E_I zh4(~G@_elH*6Uemx+ME%2{RM_UWknOEM?9lQzJ&#%k}$B$4oWP!~on4-zK6snjb$(mygwXoKeD|sGPS}Ur6C7V~ z-+ftxi}MFX#9sT+Lh1ssB=+E3)xK5>UUO{tU~};-|AuIBbY};*Yb|2NsTIsvg19g8 zVc1tinh@q9u{L+l@FH8`*yh4ix(u%^f+J~iodr~~jrXf@2C;fB!>!(ipK`I8@Qqvr zU}EG9MWhiOUT-6O_zTfaRy!)z=6-rsk)tKkjHI2ZTI2pB$A;rYkw_^F2ty#lQY;@j zsHhJ!N+H0RP~)|qMEN0&N`gme!6o*a)laC)ltlkTL}VW|^u5!B=paLaN-QCcz`~NO zW;9ZFJt?q_z=Fb;YwVZ*fCYQ8sT#-60g!@a?3nG+`YU^!s|+}sHpYshoE6C_a^9&b z>j3SfRPk<;Ij(#&kL*T93I5M~tL?uv#&VSh_rSXl|ThKC{&O9~#I zxi3l?U>81u9bG-gZYO0zsWza51 zSuO*H@;ANMg7wq_sShjq)_-Kqq=3<>M+U z*_S$>In>yKIB09De7^h7=yC-9>}sY|YP^C&PiM0MI?kC;z){?F|yU`H}u_1HKgz6G^G; zGMn_9{Ui*&4AF{h_B-Q*RQkX|tcquj+ty{JgY~`)BZ#9fYagSIr@)spk|6|=2$Up- z&)MQOFS8d@PR2;kkRZtgP>aPb^6oCpa7lcc*!h-DiKk-KP>gFItCkJK*oZ7-w<A@beQmvkPjPPoHiot-3tpWma4?0=ZRKa#)p~HmOu@ z>(;EqAlVciq%ucl6-|>3q9l_#`Jtn*b_S_d9s1ZmhE?Q?%fR z+A^uFjgx$GS#olmPxSn2&Sd0vg{UOW-FDbIEBE|=0L(x$zc+$fjW)lz-ZPmqdUx#% zL{r%mq>u$!{-I-t@c18C?(aiRA&qZL;}kJAg@3<64Oxsm7+W7ke@|fwP_zmn4K|22 z7@TQre8L*On1w)uJdJ;}{ULm2YsoK6j%UQe6s4$gIc7nMPdsGnF<)}4vK1@L+i&J( zskzN((RNTLjmuqzZcWcv%<_OZu0_`_L6FXkS3qOwuZTB_#}SS4+TPwYjz%e}vEEN; z{U6gPMaHGE^-32W%b@TtzGp!eVE1|OrXaF4X8th?XAdLc)(i&Z*G3If+*;1m|3@@P z0S;$;A{^mxhA9yEE`dbj6pCK_exD(W31?%@&NgkCH)*oa5DejQ9|U@3A$nXS3t6`} zsMmAi#(L8ubV_k<*p+Sqv2N&q4%GB+(7+8H7+&Djfw%{Cauy5E;0&9lUx;>o+<*$f zP;o5CUiwvGvcOi;(0~76eLC|E!GH<`v4e#tcY0Q6(V%OxKx74Rb`$1p)<6oP6AU>h z5Zf>f!bJ+v03P~>Wk6Zb$5NJFYH4*4#s|Qi77aXtGSs7?_ z15s!a zsBj8w7-&{DhP;@NpJ!<_S8>6(glxrs#fUV=xMAZ)B^HwqMm~d*d*TfVggP zhK(IbW9-#w-B=Bzuyx#E3gYPgXymwG!A4`jAb0~ogq+BZiuR5)L1k2^gFj{pye~D$lkZJ2E5Z2I+ zJ~0jhvgdb-O)|7mnHg=N^`gxb?8~oxL zZ2QPwF-d5CX@91`YbX9EcicA%!Jue~>4`mQa4W!wF(XfIsWM$#7E(A6W`^gO_s%YFm4bSil%r_9M z!d5UEaKH(oP1u=dVGYsna9}45&)}kHr8Ch$7T>_4A6KJCT5;A;qq^9iRthw1$DUfc zrCM4I!j?WKnxF##qnYS459)IfYAO?IZqA5@+K8NYwNN8>rF2@SQ6xs~lBeGCrRf8m zjS&u~*)wN4f&R)!mUM_}zDW(*r512{S49$RR6wqi@RXN$Iy%eLWl4yc>Ds=KZmtG^H&!4f>d6kNd;e8Cu;!5X~5 z<;%awE4h;kz+>CI1FX3PthEPR4+&hk3!JtM9A4bZ!7@Cyu|}?$+T?AnOw%3yvCgj$De%4zWmF;9L&Ou$HU;t#(d1k ze7~^#!y-J%TwKf0OvbmI%WS;MZrsbmoXy(2&D@;Fik!^g9M0k_zRR4pl57ysoX%Z* z%V~qPp}-8npwl-U$}D}gdV4n zZSB@k4cEC$)pJePgKXD=EYZ851%G|oevJvjfY{kA(VCzIToBZ&UDlIL!>4cvO>hXO zFu{z_1it;-z#ZJe-2{w)(VlSJ$erBB-NF6q!~QJG|Df5M{+-DM?b#y@+JY?Ff?V3D zodsH8+NiAs!Jy4Ky$jyW1%5Epq+HuHJP5yS2opTqkUifm2unSXu z$`P*Bu+0TrzzK;i$Xaf}o=^oi{@Ycs=J)I6>HFgJTM1221=lj_q+aTT5Cu&@2>kuT z1McH*9_I)?=ek_vckbXwp5)*i)WHx6;C)s61xh)&jn zJn0o|>6eb__{-_&>*@0g>eK$;lI_H;zR|M`>(Wf!G+pPPUF&?D=YA{436%4tnPjc-kZ=2!O;HD%%BM&&J2Uj3?(lN%^>o|F3PUW)&Fkd z0uRUpU+@NB?JeHvU|zqVUJ32%-a1b4ZEo4njqzVB>l<&)cJA?c4Dx$C>=Q23g`Ne% ze)3wd+QKjlB(Bv#eeXB7 z&-7^=(s69~h@bAa4#>gq;ljQPB>ryNTCfRSzvTKZ_My!9ehulzzzLww1!Hafdu+jd z#tzr83;6pA>%b1^u*j$2-UhGR2;cK@FZ+8xzL((JfpF%QUibOi+m{~T0C7v;z+2bS zt$Ua79Xy8c;ysin@886K{w!X^m{H@#jr}}++!s=$NPQ(uo-7HEoik=FUA}}FQ|3&X zHEq5eHR`6zW6ZQ<0h%Qgvt!LdWzn*W=rBw{vut7}Z0A&>$9@LYGOXt>E?v8Fib}O5 zL9%7do;~{vUOsfY(7t^OEnmKLaP8j3i}zF$zJ2}vZDJ_zTfj~7@*NDfQj_JRa^y&qt@Wv7DOUFE**U37-GsH-F{#b8 zXxc68*e<6-d(xKK^Jwv^%tCqXs`U8O%GGbFW$U(Vv}x0{mmMZ;nzUeK<JLYZuv zswd)tQi_>fuF@iymU071i({sr01P;%6o;KweqdJizc;+qdI#QekWtj8iFt4uA| z3-B`nMMH2wIZrBC!JFX@`W08K+UwQ zQwZtuFGEhTFU-5fv`@{lEa8g~XP<44vR*JEf_X-qxzg$7 zmTF+N6_{w)$w!`Gd;#V>b$}`OELGt-QXpTdq4FGm2O1=hVExL{Si6voPua32c~9Dv z2dj2KhOqt}Z6a=m_7>cI#7&7@bC<3O-J6tywB2B&Iuz1g%2k(LnsljjD5-YZ`MR~* z5(t)bG7cuDQEII&_$v-YFPJfr6@;N2A92nB_{$Boj6C6MsErmJF;(~hEsKz38wg9;I3y@xbqo4n2-s=+pfLmYUY~2Z`~QNL5Mx2aF}g0 zoUr=hyQGOgDs%agOgVYBefRe}%kno33_3y0<>cH>&-E0&e`ZLxN!CuM33vqsDk!SZ zivEJag+4UUfe(bBSHOb6ne=XK+8GDJ=m8psr0f>aXxm)qp^j@XLv6Q+p7cVP4}1uY za)2S0K)Ce1|Aa3;<6F-tpkO}8_0WesbQu(4s3k+Z>`P{m-_I~7wEN+&PMt#<|NIv^ z0Nw-`1w0*A_|>T8Y@rW)fM6KI*cDw+XJ@{{Aj0rLkBGEU9`Bgd2h#zMQOzZJcY7FK zrdJPiP;MYQ?8_j?;OBtg7ag-QCSh>&y-BeFCK$64}+mlz^5D|e7~xJii+$($z{ z^hEtdag?MqmnnCmsM8f{mCWD-1NpE|e)iL!{{&+ng=}OcYa_9e^qgh2-&yID8l$n4uAi+5zj}cQ8d0!y zCqiv%RlC~MnsH^v(@{P?6|ripa4z>49;(1m$4<558WHuyIEb0CI8N5M$3-q@$T`*m zVOFzfWoIbe*;3F}7bd2)Zlfp{3~Qhx9kxlv?Aa%Gna9VtaFxY8 zW-<%p%FR78k}a}jCVSb<);-2Beq3fc*Ez`g^%zB^|-SK88-#`K2qOyfNR+S8scbf^i9=tMKgjg5YELLxosOt;$A zuZA@(OgQ z|C%9?mh`Zby=`uHJJ!qAbF-aoYiNgB+SHB+s;{l;Z2lA5+wX>VyoC&IY}I<)fiCx` zca3g&s2d*GX0^NpK5&BHm);@%$GtzDZ+(-R-~I-;whKOSidQ_W%Qa`X6RvQ4GaMi1 zHg&ZN1Z-iu+u|ojdCJvuaLjVN;|vG+kbFJzbqBlMD#v-wbw18@jMTCkcln<^F6fvq zI^EX(H@gGAbEY>v=PVCe(EU90kMBF=N2htxZN7A;cirm+hq}FkK6GhM`|AD9x`0al zb+)%1-pk%()TNGVkC*-7X^*(c-M)9eV;b(w6}!vHUi6tey5?J#c;6Mj_)7o1K!NA@ z;H@rmksDs?h}S#gHNW{7JN_Y%SGeRIes-j*{{7~hM}6vH?D=?r{@$W5HRZ8xdDC-U z^|!~paar&Bal@Y1q{q9`6Q6tH7r(2!7x&zKZ+6+E{UN|cyqt|Ued<@=`q#&P_O-u# z?swn&-v@vA#Xo-Xm*4#7M}PX&zkc?&fBnecxbo{x_{u|n?Z(G{{{0C5xzioy^q)QZ zJ3aj)zyj0~{_DTxySwK*y!$i22ZX@%KtTEXzsWN?=cB#6i@*)!K)jehshhviJ3HqC zjoKT&4n)BeEC_P)IS^~T@Tq6~sXZ6sZ<0Dc*ZF8T`Ew%(}~Sz#KF} z1KdI8dOR2$J0N5}8XQ6s%)BF{!rM#!Ldzm6AH1~?oWTpM!3G?_DilNFyTbhfJSG%8 zCsZ^qj6w|@!#BjeGIT*LBsVqWw=X2ZFoeTB)I2%tK{Sj!I}}0&1j8HT!$aIVKfEkD zTsT35LPE?#Lqx<$^g2b%LO={XM`S}tltN1M#J01G$9wEHcT^&HoH}{*wR-+6LVOg+V$;Xa;Kx4W!XQM)Z4AhPbjVgK$Ye}Ff2=lu z)We6wNK1>zahynV>_TlkJbTQ@k!(D094mwL#UJ!Yg>*)SyhxIS$tv5(gY-XHY{m<0 zLw0+~nB>WMGf6B&NpgHWO`OM^w7H$^$)tR-9rQU~q{(|o$R|9-bc{5lRLZNwFQyE~ zcTCAGB+8ki%7(D+$#a}a#FWIvv`oeX%(@&*Q2R=e3(Lg3 z%+MsV%yi6g1c%c^&HmI>P1XE{)^yF+bWLuM&Do^Q+T@09z)fw?O>M}A-pmGU08VO{ zhEgDf;xx|VM9$a@=5#Ln#0&h6yR?)1*@1kdp7&S01Z zYXDAc@Xc)4O>MwU1aZ&zgwObt&-tX!0I<*dTz~~ofc@mp{`AlP1keB#&;cdT0yWSB zMbHFQ&;@1C26fN}h0q9<&(kivmD?QO9Rnq%((k{(WD8#(=s*F71h!${ZKDu(;e+l z6Ft*7mD4$;(>le{G~LoR)l>NdQ#U%~fh8*K##iQVrH{RaXGrRu1h}Z&lWHl~?{m09`%Td&O63 zWz~89UDtNy(s$LM*o!SyYn9k$ zZP+z^ST7aWjm6Z0#n_THSy0tjk-gQ9{a7{)S(W`$l0Dg(#n_aESxjZwmhIA)z1ccF z0Gb8bnni$~z0{o5*(T*#qK#8~4cewPSesSaIyKs()zPGlS~5j|igntpy;rEc+BltB zs>M;O{aP%QS*}Ifay5XVEn7JaTd@^UvTfTc{n@m&+j8~VxfRp5g%+=h@<=oEo+|PXjIuPB_CEfng zHQm!i-PBdx)n(n*b=}v6-Pmp2H82BhU4RW$Q-@XD5tZA8QN-so-KHCR>}z1`f^-Q5k*-t}D}ecW;#-sBbE@g?8SU0&%$-}F`A z^<`htU4sKnT z4PX9+;0P|>^Bv#{w%`kf-S;)%>&0FK_FMd{-UXJ@?Ml;{T0d4$j>fUfjP8VH++|;5AnscK%`srr;o! z;wg6CA;#SzHsbiKVI^kK1}4`h2IKvWVk#!%GG1LP#$J!j;!0&)E-q3M{^Br}WAPnh zGq&S9rUNwY;5DA#Hg@A7h2tEa<3Tpw6~^O3He)@;Vm?k_KPFO3fC*4&+(4dILbhbk zMdVB-V?|a|MrLCqmQqN52}wR&N|x43MrF>`(Leo{vsQc-pZQVv{Gj@DGx zWz1#eUUp$umQ+}th%H`GT5btj)>~Zu)m>(0%Jt=EzF=UMRbeJ(6*XpNK<2qsW?yY) zW`^c(7GP;UR$-=LSr*c3&gQn==3edQT?XfOZeMZcR%$lqAVud%{>ImK)@69+=k%3l zcO~a)PSJZV<$O-%H?V_*R_KL(gE{W!hlbvN{#SYiu;-iat`ER%f1eVmSEer?vw)*x{k3>eDUifUajCRqC=`XI_#`Q> zsMg`CR_oEdYKjKoP>y7LzE?T61G5h6J)i_j*aN#JYmZLhwO;GCF6pfP(XIa4uHMz2 zHfvT$h3ZoUOW^CU_UjV{Y_%5bn{JEgIwg-fdQh?ETdPR*(hb0R}-ST~=s`P~d~p#e)}N z22p5*1S*23-(^a0EXijhFS20N_c<;mF)ptfJ5knQ!sC4 z7zSDZ1xtW}VWsU;ed0Q}gAf03RTvD&2JsTV1Jxei;I2NGQ0~!1?v}`I(|vK}e(_xp zZ_#~m54mwVsPP?tUOb?#mk5URZeKir1(|5^3SR#2_&fxBzzBRe1d4zHV9=G@8aPEKK`g&@|JZMkM!w&5n;$~Aa4mv7hQjM2}~GW zfhYLrrEU*7_<)ZM8(-fVAN5lAkQk?R>$UY)4$)k{2q^!DPRNJ-Y`cX&ET_*v)id=K?ZFZdU6?obH(sPOUT?eR-@?uAF+ z7vBWZ&4U*Q_=>`O zpm~<>Pn>^%PvH5QFomCY)Sw?#{wKZzc2D{}SOuhK1y)dnrB8aNC-*x@-gsB;sz+T{ zpLJJX_!-A{W=Mq>$@&@R10x?1(lvP175KM*UGk0v@7{$@FkMAA?_fxBSD$+vm+k?+ zYIewbC*Sx>@OAkP21>Yqe+UFim|gi5din+J#~i8=veX7C`hVV4vzZ0L}oC4|gCJ*>#^!KY&qnbFE*2!jF) zgfh+A$n28?iz-*LZ0Yjl$^!*v(yVFo=1n&`ck=A%^C!?dd4}eZWpvL_RkBnKWo7g! zR9Q%g61@ZTs+&8kf(7IL*fCotl~nm22HxnO~S0HQ~e9{um1zfq@G zvp#(YpTF4t?xBm_?--QUrv;(w=iB!_dX%p1E3Plt6W#v|nbW5)AM|(TrnKxNvD2r6 z!#Xih$>0)XiL(Z^jEIn;OHLXQ-m1jF;(|)ywO4{^|2}^FGI8?nKNBl}0q&Fs9tE-z z3xWjVu}Ung6u1Y15lYx#ffW{*hk!jT$Q33$<)KO{A&RI8T59bTmR_NVg@-c+@x>xs zdSOzSU6mE4mN5Q!^~FploB?K#U?_?xqKY&gq>C!U9K_d-!o&iLlFSqt7?WC=7^II` z`sf*GrFkjZY5t_69BZ%1cIG~^ka^k#*8J8_ap>q{Tr3N$X@#87<@3%umQ*LvEm6{f zh)amjvXLhXuw>pr=&>ZpdQ5Fjm|%enI*12^ z6H2(Mg$0tT6CSE?$P*s2Y(yehlbu*ti_GwfqCqpJ_@k7-!sS+tZUt-OX2*`T(UeQ} zikXqj%vcyO!w3eWK}bf5rIzIq#${+mv!ANr7 zCF>p3$)XZTY*F6`Aq>+3o=7xGN+3J_xB?=N?4QZAT6iFW4z?Ogsx5miv#hh;u?kn4 ze5I_gD?W>CkAuCn%VNwNmTez;4SS>PcQDoP5o z{tG5UZ@qQbUYiDXFk{1erfO*aGYLL$>Z?yDXp82_+`*8y65iJ-Y9AA#NR;Wrg0mDq zLLA>$$Snx@QV8S%=rPGnjz5(n)#W^=zy-p}WLpV_S$g6Y6WtD3oB$WJ&@vZcw4z0h zv7lXeM+dD?23#W4j0qFtD-{K=cp7veSoFXOTOH(sn%Uj-a#%g<1t3iRFo*Wy1rI}b z?;lR+jlTAQj^w;80Fr12blSm=V?5$+8<_>A@KXuDF(VjNR0+f;!jefuihlNSz$o(P zCjqiiKLsS&0W+ka0xhtPuBs4*XvUSUNU((lsURMJNM>+A)gUrGToXUj7oPg3|sss^bv>SdN5h+tZfu@#y z2sCZ_ADjj#Rv_{zXom#UpbC|Ad*n)4?9x_zO39JgYT8uqg3hIt$f`;k-abvTi=maZ zF@G7TNj}(Hgq+Z=Z*56jc?c%3Jyez3^M^k0s#msAA)^7HMn?h1K8c6|B%9hILJGUs zMm>y+gM*1=*^|Y~UN*Cu2B$}e`&Bip%?F{4x} z46FLo6)|RbBs?e`?1`Am1d|!b6g;j;3%###zxyxSuGMG2RP<4ULAI&AxD*b_vL(I6MHny&g^C3lNXqT7Q=@cU( z#bk>RdAmyfbCUPmWSTxXnp(z+d`)F#D`UAp`_*!oBQ5DkQ@S%Nmg^~Hb7tkFdChI6 zE}VDlXJ2wE5dAxd7suOUm4E`!u3oZ`2i?p?aZeor_ZD)i`JFWoK?L+#dB5uI+~x`bno^1-|iYs%IQ3Hm&4=|iQRUQ z8B*=Qf4%TwhvV6OlIXHKI`M0NJmke(?-s+I({kT8-JcF^fm3^#o#MJdPMUSb67KJX zKfOZ^530mpW$_q)^w=XW``II%G$LPmZ03%(x}W^+qRBho1uwYw;fG=p87AOYGKs1& zqZWcdJ@g|-Zk(_lD{a7d8>+99*>nH#wKq-WlYRM5*SPoo`aS0>Qten!VN;F;sYsKr zl0x_*fAxv}=~aJI?eo86-T%MQeIJ;FUu!5E`8k{UkqO?VAImY!7vaZ|T^%uz*Thr| zLNF8l8Q%2eME`Z*r~n`ccANm-TWtOyTLF$=$${GDMV;P_TG!c!6(E&K5nn|p+`t_K zEv!!l=A8cZhX?*(fP|nB#@h&9E2!z#{{mLO5jgR?adZG zTo0BT7zX0@jUgdQS{at$$YI{@X&w`@VDKrx6EedwbOH^ogcMld#&paba@$H!Ar2IR?DNW-mGFuYa-T4JvEpB5c2;(h^ zf+Yw7972I1WWqRVhbI0a1-8T`FrRje!X*$wWhuZE5W*#Zf>+7oJgS5#a^O7zp+2T0 z+p$D)DVGuUBftHlEb0a=wjn{vA;TGjLR8`vvZQ+CpFx*bU#5uBLMFOQxMx;=_L`iy~QF>rfmZjvi9j1BBOEP5|x{D_~ zrgqMzZ9ZoMQYLhUX8?s|O|$@Y@}G5@r5R-BcD82`bti5HrFhOK$dG4EOy_yB zUV0`acCx2?{%1gr#%&tR3(}{7=7)XK1Onh^e#YK@rsNuUXGOGRYyzl-)@Er8=-wSD zhaxCp(nJgXtbuAasJT68KCZ!f+6RT6(uKC@X}~9ePGyJAXmoz4jov7Z;slNEXaKEf zL%C>+!sv$bD3M}TjvgtJ+Gvq3DW~`-nE~mA3MoM{>5?XBl3po}QmK|Aj@z*)lme)f z&ZS6hDRf#XmYyk5lBt@igp(TEmx5`AN@zpm=9+e>nW8D4PG6nwDMPer$i3-*hUsJ$ zD4&Mso#rW`zEPppsh@rgpth%=s-Ju=s-Y&TrRFK6s%fLz-lIZloW>`3X6k7k>ZO*d zj*6<5ZtC@Ps&+=|cM>Y9&LgRsDy_~$tWv3}E*GoPrmH&Pq~5Bm)~c{7DXWf zcBr_Ht3;LSx{hkP&TBNqD~GnLyT0eL+N*)0E4^N+0r0DV;%mO*n1ITuz>cK9{wtCO zY{H5s!4|CVVJpHuEGaH5!{(^NTI^{?ti&qdzH+Q!9)JO4tjXHM0f=nJcIl6PEWjPC z%AO_yl{lWH#?~xRB7o11q|WZ_YQSsJLSN7dZ5J8<(Jn11 z9xc-TgVIW^;nA$q((BD)?G{okz5IaKjxE`iE!lzq+Jb-&tS#HNZQJGm+>(IY;{E^* zC;<~p0N&=U-tH~m_O0LkE#L;O;0`X~7OvqQF5(KV1U!HPG_K=5F62h8#F7O6#-!ksz7O(LhFY+eu<#w*{Hm~zOFZA;5>836YtS;QTF6_##_R?0n{Lb&+POs`(FZR-=_HHljdavt( zFWuJd_|h){7x4KKulpvj0xxjnGOqzYFa!gy{Z_B_wr<;I@BYqi|N8IS{>E+i3UCC6 zun3cG`ZBNypYZy^?+C9j3m5JL=Pv8IEe2=s*={fguPp$JZwv1*5C1I!qc9K$@$&XC z5%=&5SFjB0FAbM1_uequ<}e5su@tv(2@A0mU$Nsl@Dy(`1RpU8#P9_x@e+@16FadF zKr!!fu^K~g6=Sg*pYQ`{@fy$Z`Fb%Jv+WFzaTz-?8V@iX|M3C8u^=yS90Rf;ldm0L zZy3+!7}s#xn(-NXZ~&+AAy@MA{_r4Ya`MWtC3kY^Cb9+Nu^2b<9^Y^udon8j?&4}P zD<3Z>r!p)jE+{9lY&NnZqb($#axCvM=&o`r|MC#?vM?X+EH5(tUfD7k+psB1vJMZk zGZ(He1G6+gZXrLjH3M!ji*hX^^AD6V2kY`RhqK>e@-(+{HH$Mkn=b0!?-whwHXk!L zd$a#~@CQ?JI^T0Nm$N3H^F51mHm~g{lky|yat`F~B>QncqjNs%vm3|pD<`xwPcQ}F zF+ekNJP))P)AKt07!>) z`_i;W$8(G);H4SAR8FhqYLbHCdPSSZ{SxXZ236^ZiD3KT^s_C>RHOGkEH%QkQKwo}tK zN*57l$2DYMwPgD?awm5`12<|5_icA?YwNahPd9b@vuXEqZKw8gLoyD#_Fz{xc!xJC zGk0HW_g_PIZX5S*i#L0>w;GeTW}CNT6Srqew|n0=eorxcPxXA`c6!rweh0XKv+#a5 zwm|#0RRj2dFF1n}aDn@Ef1`JTgLZ>gxP?RSgZ|rggmZT!+xLZkIEeRdhRgSXOL%cB zc!;OCip%nKyS0JCHG-cwg|9e`*LZ1DuVQC5f0sCiYxM3afsF^bkmv1)JNJ2WH~7{w zkPkVN(>M|+0gj(`c^mnL6SQ|L!IC$*mV@|{M>%!}xAzQpjC*gAPjZ%TIhr?kmj|$v z$2XPpxRpotnWs6O2l$$|^!Q=G`UkWx6k{S*ZT*9d%h3+PQN>wmwUg{u(AIyvI{)HKfE>XJ6|V!1~2^gHvGLq ze61sa6%0ZkL;(jZx54ANPgDHIJNuNMyQh15z-Rmj3q&JCy&@FC6I}Qc6oMi|z1D9%*LVFP zRQ-K3!68Hf*)u{Q7{NVDe96oHyTa2u!>hc*kFX#-0@;&&B2U1e-$%mN zBli+iK_C?V6c7R5HUT2ky&?nx5~TgeBfYsp`_jw0y@&b(FTvRJy&?$0<5&3A@BQD8 ze%%MYZ$kmrM?E2YzTP6iAng4iNP*GAJHoSl#k+mV3wGRxuoWmm-#>yOK!JtV{2&y+ z@fUw0)IB2*!tonF&m%WO?)~cbEyowaAPE2LA3VR?{>kJ16Z`q@M=&A${oUKRA=Eu0 z6uo#yKiNVv6|e@~%Cl?wGoRjXIAVg<1kL{qO{nJUeJl!Q?nN|XRq zd(ldxkBS5lsu}5!$cIIc(LJx=S7Vd3jXLRO^lFltpSB1$|$77@@lFDrOL`d2f6ABtO>;;%Ph18%&@dV=0e0V zMm}Q13g`w3q{AtYs3N_OB6%c{K$;M6f+r4nD-b54AVd)sBT=LfDatFz3J@buDF#VouD1%I0twlope+(Znpg-4LEI|RiXh*Ef)FWLe1wrgP$aP>Ekk+; ziWMUf1PLn;Igy|upb#Wa9$g$H3Ni(nb1p%Mh@ucBL;P{I(wqnckuX1UQIIEO6sU+N z{G_x+L@s@_APtb9Vo^XDAp{CC=j74V9;Xlpi9zP7OCdg^oU%tltYCt~LMmO4(?obw z#E>d*{?c%*0?k5jsiqi=_MZo-wJO31DOAcrqcBuf!zd65_OBWvX@rm_7cvnfD*_?X z)khAQLO>dAw1Q4o83`m=f`$yyUO<`bDN+*<<75UI%Y2`vqQf*>T?EjYwM zFrAIXI2SVXqd^wlI96FD)fG@gtT3V=k0TkR3W8rnqzXdct0G*B>6${+377~3=7LdH zIUx?rWc1a1_iYttMMj>rR@(-m*xgqfDI^LRfo<_vnhI7#UvGh8_Q0f`WlCBGtF880 zY`>}ysSDErd%!@H^m+oPKRQH;ht!P(ktkbiM3F{xMPzS+=_SEPj`k`b={ zTYRMICN+2>$ut$|e9A`*iGs41D;0!h4WuBr5kZ!Snr_Y+VT97Ep>UHUIH6vd&O+RM zIjir$7OGcfyeo7ICR`m1EJ%uaT zIX!2w@!=20o37lqPqT4KL6<_ntbga)a!-34QSO|?RupIDKtX4lO4_KkHnugzZDrwB z-2V3yByb2M5+lO&{6#Z?^lf-9DnuYaSO_%b4P63BTq6?ExkC&Bgn~E(rI7ciewAxS zlN-bh1JOFERVopL0AU~o@uzaFXCO0~3zrf?u`nf~3ZyAQ#XgdV4?boPFMR$B>(qif zInfD3jW|RhZYT%~S^;Kj3WOD^5D4B?Dq;j-nUp3c2p}4wcZBFt)W}t&DS~E=A1TBg z4KhOyo{?RBq|3fcNQf}~&W9m%mx%bn1a<)~Z$AtKy4+{0fjse%9|U0)7a1|x;IDIv zSYaRpA;Kvg;t3H%NdS*RHUdJ+fDJ+*gt)RmuQU*DuKdXqU{;8UB<>MJR7l@i^rGL$ zN=0*dL?9@WxVI4EY6Hp9B8@4K8Lq390wID1I535q`OOOZ(g1qqlCSbmOi7HOLUEcv zn__lz0#cyUA<8)rB1oYSOOzK-wAitGDPj;(5E=*g;siy8=xYOM!u}wZXa)DMtVn_A zrUnLvJ<7D@ErTfG1ezcS$-Pq`M#x$ul!>^7_RmRz(8JtU?yO zV}37(qaq`V4gpAM7PEE*ae|hR$1is=Q6Wr#sJ~!35MZ)VVgeCo=^hnMf_Y77Pi$uu zhSt*-4We~F38+F?_J~0&vmi{ULMjhor%|QuibS2l=3$We5% zvVtHCky*+PgmfPf1mfUC1yLD6E>T2m5h-_*Bg0zFafVn`tz?s*hxZwZY+0hq*EfK%bF)h!3oe| z0=XJ72td9u!yKq>BN{q^K(GjW1tG!{p0KkCyqLoZi9#N&D-aG)fk;DDh!kRbh-0}i zxa`fOZElQSg(O&V$s5Q?L82R1YQF>F=nxG$APrDqoP~&*AoO%AC`5tQ zv$bh;jZ9okPN24ueTY3ty|0t%O(EyaTbUn%<+3?t%UtfVwZ05q@s4-Q5JdJuj$1cK zgLR3zO-SEb{Nv`in$C*_q>BfE)*U z4sc1mrL;VGY(iK@Zj5N42~ltiy9}{Nde?M!0uA;+o-j@?3W7RL$kakO&~V3qFybsy z_!98<-jUo|xCJ?KiF*9oVjI{H!miXI_Duc|Cm8q;*M{&=nkCCwGJDI@44?RmV-zdD9cu_v?huVloR4pFY67!+>;z$gd<_wL-m=j)8tC`Pj6fT6 zog4BvbJgA}U7Jh$5h6yI0`n4&v;IdczT%M0bEyZi1fLa5O@Gr_X{MkM5F!3>#`E&b zj#^^$hO6`hB4iTb>~{L2!ZO#(5B7wSs9N zKCIKuZ6g%W<#f$99Pk1KLIOde0$arO5(4&)?F5yrY;Z3GMKIc~YAm*e=}u4}6iWpG zg|Vt`E(k0kv<~AyjOr@m2KkKOp#G!mYQ+vGApF#BlkVz}I6z(CC3m`t5vsrmT=5lQ z5f-l`{rslFK1~X3jB-$F5UAh@oS+GofSBkH7j?%A(XI)ezzX0GdMK@)#wk#$;}?~q z{&0%KB@%EaH5Px6X5;`riXe!f2lFQ0sL$OLEQ-D{0-J{rq$~K0ga|+k|6uO)v@eekg`N(wGV+VCbmA-pA+%^@E(T!=h-4B4;>3DVZZNV?s1Y1X5&7UNB=M3M zEzB6d!)BIOMT?C>fELIz7nk{6ywHe63Y_4O0nyJZ|(}=0{QU@uP9Tx z3dL^ouHfYwpU~2-Q!(}Oh-Ry#{k|f2GGX)|F2&S0WD@%?@J;#y~4QwVI3a$!H zpP)=P8|;WkZ>IeNO|Qz`zn=3Nnq! z3?>kQ1etmSV-U(OsB5VZCy(|JNDykDG%lMqv47koF)L~bH~^f8Aox(KEClI6zC(sUboRxd2Nb(k+7= z0-T;eM|gxJi(s3OXD<-SuAHe5W-C|IDP@RYHD1n|K8vvy6+B+EqVnoX`%plCk3dV) zOhXVgcS$wPf;CT2(nfMC2_jkz0VuOlN?gPc2tk$7q~`iG@^-|FhVNc}M@oa!P`!k@ z7zv05>OzmnQ;LZ_O$}xO|< z$xjrPLgAB2AcJD_#CJ@tvNoqu(y(2pMlN?K@)9Af@Y729q?|l&__VA zo_@w|9^w>#hW}oKTsHz#x$tYJ=3RvBV*gTAKg}39U}fbmhK!>W`Ogr9$VX>HSIsY9 zWW-4ErD-hFIH=2FqAMYOR_B7Y>0s$71<^E(_PfAr+P;-Ro9=1hEz>kbrVvGHUj$G1 zM@>$Y5--sTPUZaYiDtZ3A@px&c?5+p=E|0o!OqrRjD~aYiEZ1KMjh5}5hqt(#aLXI zZbQ|0DNZmcCJbLiO^$_7kmPz?#Yd=sas*ej1R?Ll5T7#ToD9Ke9^tE&l^{64{&&SN z5poxD0km4f^jeM5a?7-6b?<23aW%p9_n<(v3gLr<*O~zMgE*san5YQe?+}P*W(y&o zSl3`!MT34jTq8P8S0LwiqROp+!!6}7pk%qf1iz8 z!z&S=vNh*M5`T+NsvwY~AT~F2bsEbFs34H3;0-gRF#@>?{^PogKs*%w*@yYK{V2H# z2E)oUKsp|o3RdMJ66KNqLv)Ac38vtYBZDJ?5elGyU@_uJNZI2qxsm5syXsge&s1}z zEon`#mVp9+lXD|Z2or(%n2|Y|m3f(6sdDLJvW@k%D1%n61kb3<$0dzxt?uVG)MDtwKacvIi2};o$WcB zQDU3zxu6aDpb`4#@Y#L~^lT2apA%G_=dqv#dL#%sp)oq6HM*O}Im^n~q0br2!pxWV z*q|%gyx@7GReGgaT1*%EnFleXHH?hJuaomK$rPKEwk`lo?9sPFk(VH$Jq z7>~mO5x=#j3;Hi$%p6)cGTCJn`sP(rgmAZ2$x~>5`umzi)@A`i8y35*Hq{VBg z0eY|<`>`RrH4D3;rRAL68m!@3tRs7~IlHrcX|i+KoW1(8kv6Ow+p|$SwN<+%K>MRB zTbfCGe;NC)SG%@t`?fdmrOCOg_4=zzJF`z4w}pGSBfGVE8?ljkq)nT)iMzR-yRMDf zsF8cGQ**hW`?|54uA_UOr#rU!y04WsyTyCFgL=CUyZ*Zsd$IkRyxF_GSGsa7m$K1D zrh6H@f7!k9JHP1}zMVzB7v!P6J2mY)uJyaX4SbpTn{531fav=W2VAocJi;YBG?%)+ zL;JO*IlUh|xF`IJiy%T>Ndt<&J(9JmIoSx7U^>!As&>7u094TQ=6I9KG{UV+u3hrxBHO-)#&9os-X|GpeHPMOM2T|P8m3I09G z@37k6gVwS&L6%BszX2~ zcH_aEP*i>2y`>ia^_ zJ8Usx-J2Y)R2!qUNCnIv1?BB0*eV>tC-^9f{_Me6BsVcE&`t~_|*>!)PK7V3be&;8j zBjO$T72f3YDp3GJ3XusDpiDtRFd-2rQV)HUUJ90q9vp8YCtf z6e(Sl(N7u>$)QFXK*SzFFx@s}MT7B%8Wa)|#G#IM-ua!0$Dz2KiYsE}qKh!fSRIYp z-H2zRiq6Gj{)M9D7w14_R#XH@3^G9x2UZeP-+iuCMx{ZR_GKGErcngp6pexTA4jZR zND+q!4rU)k7k#>f6mn*Yrg(p)$s~n~4ofUjN}UK*ihpJmXp4gqT9%ano)^gOS zU?LSp#G4Ztfu60pa=@7sqb8^-r%y(S>V5<6C80;U_V|QEn~ApSyqO}Q*@suY)aC?w zrK={bDfvZMM;}3<8iQeS8Xu(BPCTrhYw^k4vR5@5-LueMmqS{IQcH2k!)9wzgGd;W z7)_LUv=*DjU8=FDjg!f4Cu*@%$@Z!7#vFg;@yF7xh3MOU z*2*rZ5-tRvXy&FQ?~w&Y!CvMG4@NMQj3=J+X$&3- z66Y1UXSwA97FjcVM?U;_?IOm_6vlqmeK+3IeN5KgY>{kx@!oOJguMwF@kH}aIPq^s zT05_NWKAgcL=#0Y;e^wqnaTtct#ZIb6Ri?)z4Pg*l$i6-uRi_y%r{{=6V7KZafRtW zAHDSVr&%NKXqE8}7#!RoXKop*n^t<)mApYqcueUV0x$TTF%d~i8|=ubgfspo zpJ-5oLJ1*IOen$*sziktY~fK9s5=K%1%eU$9q@cW!R-*wg*@z`4}S=2*oH$af%5!!m;*5L>V6OMK%Op4lPK(! z$|T+}khAQiFMk=LS}rh^xZI*A&*Dl+0&|(nY-U`98ADYXla&)p=J1?}&Hij^b0g5a zB_DH19WPq5f|J~)InNo(ZW8mG)6}InoA^p}%5$EhRHw3}dBkHzi;3FNAwB;I&_ddi zZuq33K7+^4PzH3N3?<`0_h>|L#%Pxbjb}qIicugwbdf7+BsJeyQDtUyq$I`QMmgEe zaJCYjA}y&)U;4I_78HU91sO}P3DcbFl$KZ2RhTC(UeZ~omwrbSI>&pp@5Z<5~V0np_4t#KC$T$El_rJddDWRDBob0&ADy{oBmocr16YS)?59c*~j6G90Yk0#P?y!eH4B`-rc*GjOH|}dCf>>;ajxKEU|Vu!DY?yZ+6V)JnMPS zeD1TK{|sm;yV)pk29%s{{AJ+aIna!5w4)yl=}1eOT!SV`q3vd4vep@~by@VJKMm?o zi+a?g?s1kKj7rza7q;|8CXP8x7f+XZ*0ip*t#2*pJEGc_q+RuQ!HdvWKNl{zF1E3c zjqF=jS}2!(PF@kc>0!Sm+0?GKwXeAuHh%2qf8B94!IL>OWUMy~wp zkq`(*Fd`78sdDLEkN74>p%90#LiK;Vgg_V~5sXNL@~t2~atY!PgMj_oFERz&%byBI zVnXhpy!+mBtfouctMG{}WmcdFkLNFWG}U z5C}wA2<9R-h0q9$;C&pxf-d-i{$BSHH7Ft|TmTbvm9BGBL z*oYr72#k0Lf}o5Xi3kZff{eh8iI9>sz%p(YlgRp*$@RIHkn~ac*BKVL6GzbLPjnStFgHVoH$!CMXj)W73 z^7n>e`HngmazJO6S%sETH-x7cf#)d*O%Q%536xVn2!il>Oz4D(h>#p$1(!*E98d)f zSqS3e1T1KfPH>5~$N_?og3L#SR)~dBK$Ox+E*$v?f#8K@D51tloCL~aL|}@Bkb$Y0 zf`N#Oj}V~LsEp(in~A_MxM`SD_ylPf1xs+E6UYHZU1Pm8gS(h3^Cty#h<{?4NMu=K;kj?)`5S*ofCs1u$VnRaIekwccRePbZ&{!B znFv!Lh5k{%hz^K6u_=|jh&69#po)N?Rd|KuQU&B!1xx^iOHiYQU<8D4ns3R37)mZ0 z+JYSlWGr|HJhlXYTBjUP1aBIGC0LO{nFv%sF6()fP+*FL@O>_6hU+PTdrAciX$3`4 z2$7Ho%D6HVNThit8tnLdQoxl=>SQ_Ca;f&6m?otZ#)oMcWdhiQl1QvnP#Qbgkcxnc zQ^18``k-T4ey@k75lSwJS&#=3iif}mL>LKj$^i-bsP{>NSlS4Vi3Glwfm%qYyr`(3 z=%H%(t+9E9M8E{csI3^82$k9hhyawD3K6*|2;WBq(r1LGIj#m+l!9Occbc1q5C}Q* z{;GXuoi#YCN@}Ys*PXe_Yf_PizSnB5_N(L>tbizpk%z4R~@^5zh_e+Tcv85k1V+|1TvFlSOs&pvUe${Fl~-9tX8H;0ybhT(^wr3;EI zhzLf=ma!%h1hg38LQ%u}OgxUeR8h7XZ?>RG%pnxGAw zyleIl*-3xT7X|G2jTlQ8m$kRl)wdtJPyQE#emI0pSOq)0!ws^Yi4X`Nagk*@ce!{7 zRR9?0OQw%Yt?X-%CK;Xd7YK+TzX)onfgpy_2gD#@vw`psMx1)ad!haS%!^-}2&rfV zb!ml5`n2$h1h0Ftf&dazjJ5hI!Ty?vx!8a+$%tmi8D!XfQ&0sw$*;KRnDkc#L|F*# zTEc0TA#r#lA1Hg-DH6~dy?HA)G3;G4?07#&rP>Q+0yvPPJdmrp5QVU<9X?s z#L$|)nzFt#n?3tjhUCYA-f9vjDS@0Jf@Rp3gU~%jU6<+AR#7ic^4k-NTG5P0|Hj1;pqVsF!;C>Bln~1%Uw4lo`!sY|;=J#4QZZ zXC}|{cce>T$(Ov($kNZg=CPd|&`}q-@oYcP17rfE)l0TL&jYN|R&) zGUJW&2E!Ho*bY;zhXARIboV^1L z*<)4(hp@#`P<)NZ$e}%Hh@lvXa}rR%1b54wn60r3{-oJusds0o)}XA~Rt5zZnUdOi zis{_jqDBNP^LAJx+wMr){LHa3Y`ruLd;%SB#T{lpy|#$piGXe0|0ca;{oI=z-DvIE z)a`fO9cD(5K7Wng8u#5;blXvy+r(wV^(YkWjo+{O-g+C}{yg5D{kNZ8-T6)6FSy^C z+}~#X&s)cJ176?{{&xp%OYyyB^X;nwe%=tS;c6%0ww>Ucz2GF*;2FN*B~Eo6o)#aD z+j=PC_vPRw4&yn8;?xV>fnr@VM{_S8<2#;mGfv?!XW?Fk;lsz{Mc(6>JmD%X-z+Y4 zyA9e#4&@H#<4RuPOulbJ4uDavA0roR1V~g=jd$Ps{w~p(%uInmB>45Ivg3juhPU?H!>BUZKpRVSre(8fQ?1fI^#t!YGhU`DbtBua! zF8=J%uI-XG?RLKG!7k=EY>(Sc?%dw%i(c)be(eEf=;iM2e%9@l-Z7XS?)DuN?~d<* z7VpYF@62BBz?$y?uV?%I>#IKM&JO7S`?* z&+$`c@hg7T5RdH%-|;2y@#hZejIQo2&hFW6@-OegU-faRUhv;8@-0vDFt78ME%UWa z^9~Q}H?Q$7zw<>;WFNoeA)oO%PV`3a^go95Rj%|bKlC~O^jF_wQ6K74-{cWb>{t)> zl!o%jUh~p%z5gz!Z>cn=n5 zANS&Z-+o{B=YIF{p7;J<`1TGIh@bdl4c=|f_=B(a^$qZnZ}fm~`TXAa;QsiVUuGC! z`WTP_MRxk8A7rbK0joG)*lFZf90_6$uKI=%pdTfes;#Bw5nrNt7v7u4LKLC+!krB0+5=M>glRjvvy^z^(#`)M9Ffd>|#xs2~Z%s}`d-M0)y@->(cL+{;l zD>_d2v3FeFz8hnvUfue2?AfVnuD#iFY#d;fmL`wdd{osSTDN`;9>?tNv~Mqm2wb_x z`pYp6{F47LMBe}l5HQ0Wv#Yp}v{P_F1{-v6yZF2l3Ow;fBM++cP)lz;*4hIPz6jB} zEjh;M^N%^go^uR2!3HDow~E}tz(5Ry6HvwkAJlP29((kWyAXkzFt!RWBrQV?RpYQL z4`Tx{$e+~yVrxb!BWjVj`&J}ux`z^LalrdJYG^p}#kRhDk+(q=bBMp(U{usVH#60AQ%>Oo zbWYHUw9_;^^Hg$A*K&aE!?FPNNiDt%yQ@(Y>q6AhG1DxOL@-T4Q#u>(yNF9pi#7IG z9X*W`RIx-I^`BBr#R}C_S9P*gR|B<)N^TLfHKK3zI&r_eaCNNLE^jQZKy^!86j^xV zl@~K*p=8!5XGe|Js#8(zQ>;I;o$o&@X&mrS{)Y2wBy>x>l0LW=>ry&h=e77^j9scX z$b0^a%Gb_)rP9-1Rl{O6+q5hT>@A85D+r^N!DacyhJkY^F8AUAx@7kPc9lB577|XbfpXSpp)vgv{LzMY6?`KU6+&DvxE@Em zZMZYn{6V?nqx)kc@pgJisEhI&(CWHnZpQjl2h8=?F=tG5OsDL2F4~XVe0Sa*?7X|r z?S58ty-DZ$e2) z$G&vgq((V>_~VzK^W@7HzWR`_XOI2&+!uI$00vNilo=mq>^D87EiHfQ+n@IQKHY8#ZnTNx(=x~LhYvF2sXsrhd(TG!|;`1(;!cZabZcS9r z3!xZ8DOOR8W1JTf&7#Bv63>Um1ET3<7(z0}QI4B3<4@4I#U475jb98R_vZLVK>p~8 z?ztZiImkc{wy}L-3}ho6shv6s35(6rBKi)ANG5&ojZk`ICp}58K~kua{u?Y+db;>T zlWotBpJZh#)e_0hU@(h2Wa1^)$f4}<(T$9BWiNf%5?J!&j+Ts;DXEpqR7P=?zhq`J zOA<^u$&!+^ybu>pxyNLJk$W0&W;eSDO`Qyrlz1|x7qi*N+~h}#A(POCpm>eiQL5MO9Omw6(9bimLYEnX`w3;2g=0{z+ z$$|z|s6!=cQH^?3q$X9VOJ!>G`iatwmWGSe^1*A)xyzG`c<%o)pJh` zO;nH6QL0+CZ$K4mTiyCrxW-kkb6qG|&9}sz+Onq~1oGIy*U+X`wX0=qYDat4 z%bK>Y$ZKtFZF^hXy7jepN~}j0tJ!+yR=C3@ZgE9x*Fvf^po(4JY*lGo=tft%(~adx z%ZgXa_I9t$Wo&S%`(5ycm$kcf%2Z|B-It12z3XM~T**tS*pke-%4~0a?R(#_zLzQH zl`nePieCT+Sin=$uL8A;+4*X7zzb$@gYAV}oo08XzUBTdaMKGYn`T(U8|H9_J^W!1 zhgifTCUJ>Pd}0)*Sj8)5af@C2Vi?ER#mBYoUDH_F{#y9IA(AOgeO$qU7MQ<#OE5aq z`C}xPu&y;uE@CIV-Tf6AtIJGsl_z*nA>)|H{Xjs_@2n{w->g_h&>mug*-4FrE*5UN}=Z z(UZ>HqH~J0K|eajhVC<^J#9q-Lm1O|)byJ<{k~79I%t*_<*12SW=Nmqx9Pn4mXrNxa=Kw=iKuaWT+XvZrBpK!m^Gaz5VUGKo|SY zWQO&oX$$O|6rl-CfI<|Y@Ps88;olQKNxF|V@bV5>&)7zIO`0HuDTG|)Q;5P6D1LH? zSiEldCV0Cs`_nkfqzF(5ITdVvb1H=V2}OVj5sE;Bk`#gGYw~$Zgnsm+1D%ydkU}5? z5r`)!{UlAWLLdTR1tgG!2v4xW)2EPil5qX$R2Vu$hyVqv2SN&Ee@GFYFa;?v0VPZ5 zy49gz5~@2r5O;@&+er@g$f#UAq%Ji!{`oyanlOC|IA^@gr?7LE_#N_QkHXqnQgrJ) zK?;CJ2@*y=@~D3j3WQ+9BTUZ-K}dZhMySFe8e#fJ9AXMmFM<^k0sBT6A_{#E#O+O= z``tgJ3BAXCA>{rLCJcfRjgb9Gh!1;36e9Qs8NTm-ZwS6~U-r@0+VA2zxzANvpo7!y@Q}R0(1!?5W_G$2>x3M&&$4(I75_x z!wK>^G~|FPNCZU?1i6C(LwJNla6>g51RH*LZHOt!^A4!fG9`=AuI$Tyuq*|!3#V=?n?wK;DFk@y$=LBBjCPA zFoY&(#3Tg2fRi?igD-t+AdZv5m?(lMXuK&9I?rpo$x{iplY%ICyt1o5Fswu*c!Gyp zf}vBmXnX=E$T}ow0*U@R2qS2MC6Kx$Xac1xf+fJlCqM$)V*(_&MkvU-H9SFcM8h^j ziE@MjC=f^bqsJ#;g8Pe~BJjLHpu~}I0zo_k5G=h09EnYA1VP9}?K?n3kh>~i1VxBQ z4uFC}@IXqmJqA=dBQCGf&$Y{u^~0w;(} z1WW|XB#BMz$m2T*Lx_Y!7zq?q1k!|vJ7ho(7=+lHK092=wQESgtG(5%f+sM=PJ{?S z{6qA#{z+6Ei6s!kTXfNHL`=^#QLzk3Lx4EsR6^ynw@YhIH4?W(lFELIiS$!Huqy(q zRKNaAiSFcp@#MMiGy?17N+W1EushF#n7Pg4fWK@@pnE%$YeT8~PBfJQC}2DOxM?86}i(L_ju#}m>O^-L>}#0h-}Ol8d)%}w1T1mBauz011OJOm)EL=v^tq%_hu zST3i-{)4%403lW6Z+s9EmLD059FV@Jvu> zgjbL|K5RwPcy&ANd;)!y(>47%v-8t9Jy$h^JGt~f#ymr>rNwB3SLvUL~v14Bn1A59Z|x~ zKHR*?lz4(F2n5$dgepJ+4MYTir9UAh(uM8Sn8mf3eM0CoKTev7s?X*Ky5S&fB{7G*{JoJBO3TJ0)BHtUTJ?Q@O*_<<-;G z&79$*KnZoxffYr|OjRG;%+6fN8!beR6wOEY(1WPe)bvn@t;IoP$lPOG+627D{a*BR zg0L*pNWDxZ*wmvO&f+8lB-mA$MVSL?LSTH(eT%}Wgo$KjJY?-zoMTXw2--?~JI%8^ z;XR3^1zxDNPcOwrLhaqQgIaJ@Q;1;GFs;vl6-=NNQ%R)9yhf7NmM%OciT>=eEut(2cmmfZ0LL^ULY)f|LCC z%=KGP7KA}4PD99Cl>}v{YeC&R2qtjELI?y{^}vlq(<>&4COE+8v$~g#y+{2)jy!2W zD1_2$K3$|?lt$@5NJg7rLNzwvaUb zx%Vv8$1_Q@vbNrxYH3ITBZ?i)J?Jn=YmY-|9 z@AaI5w9{7Ps{$*4*!irwtDES%l>!2H(M{&o1V>A=%UJ@SYx-Mj06dAcCh)3u@VkYA z$h|tgenz$qajcyQtoG&%;k9aM3nlMFK%x3MH4>{6tAk&dU7|; zb3&&HG^aK-k2OJG@j`EOm^gHBqjM-+^e=aGO9v+79y}(O^wH(&5V>?v$B9fAzfDi{ z^7Hg&3w2emxKStIrxaab1g>9W?p3dK6KeH2H}y%kb6U4`RflwTb#mXt#A~Z#iA>bV?7B9?SMd-*zWl<7$_6XYY=1 z7k5GrGdb^b^FVQAa*twnm33$LH^;IxhW8`^=X0m`bXRwLxAY}TQhq;;WP>Prs`qTU z_kqXqf|uEYPYr8pQgpxe_;C1#pSPQufC0|+6R&t?zj&gGsg0jFn-Z#zpLl8E@_$El z2a9=`AF!1#^^o^>g}3&Z-+7*Qu$tHMn|Jw~C;6T)dZV|mpHK6ke>t5$dZ&N-?@D?^ zUwUC}dZ@p8tQRh+kMwV5dZN#Iun&9H+WKJc`l|nWu}^!ok1VoR_6hTPfXDc?pL@FZ zsicl zmN{N#yeJcg5+xA+Z{p0Ub0^Q9K7RrYDs(8(qDGG*y(y96Op6&eevHboB-N5AQ?|^i z@@0;gO)J(+Dt0W{vS!bsO{;b-TZ2o#R(vW|YSp?SuWHrG)$7-=ZT|ueEO;>C!iJ5$ zg)4XNN4s_L=54u`1YDXn4`a@(c{AtEo*yRux|nfC$5kOmUOBn4-_J)i7$M?%HtmM6 zW!El9#E6F6L_;?nP5Pf{s;E=@SPi$e?}f0L6gg<5NpvJqp7b6}g!*hFOmH`6h$PAr z4r4VSSz?|jhbK{xOwh0dN%rtMfzK39y0}%8$W_Bc*>acJmyiZbNZ~|%13fVXeB)t9 z7!p%3F8A zYRdIRpp4Q*0R?yh5g|nsy`eW`U=vp8+Jzk!WW;p~cBVlTQjB;TStXvxkOodjvBX2W z_4ZI6)CeATcBn(GB!xj2sX_ zB|(EO!J9!Gq{kbR@c~*82bubrUZDhO&?tKIISSi+N(xlOsTx+Q!IK9OfnbY`PQd7& z^F6vmqze*Zo~oY~G%6B-PC$gGjtWXBqP0rtV5Xr43hA-}ZK?sKyE61^ukLl(>3mrl z@%}`DoTjSlw6)S|W|p3!YNtSIVx-Yg~A4Bhr|<2h^sNj zk7g`|!6Oz?a}*#Zn)1gm=NasUQ%pf#5w1SrguqV_sq@SuJCX3m2Tx#x${M$r9S2Hl zY%`QZNWHLZ;}IRjdxAb8W~yPs*ssAc8*O0NP{91KKrXMWb`b(kVI&h}I*r?b77N;T z)iK+wHopVG>y*6n5?AjJI!2c7O#3eWA{5IOVRLq!GfnYzx{4d&gnh=>pxq)G{-i;J zX)jUwdgDpa#1aliA##Zw5@Gh(8r#lIZq^_fY71VHCLG`2-U_V@HI)6n<(v zsKXfake8kHflPROLe>PFFa`R>?n-tu!j+tGyDNzaJ<)pt5~5Qu^2H8$)N)UB)b+gJ zT?u>cYFu0%H!sOe?q0~ToJ=ssFV_Wa0_!^%=mfF^^5CXmQaBL@jMN(;a!()#qFSPu z;DjK$2R2ltJ)J6$2b}(#)ZRyA?5Ny z!;9FEUta9Z6bF{Q>rl*YT5N(q8WbH0K0#s{aGf%P1+XYq&3puDP?Pp1q}1gwMw;u* z66@0-BAP8mhYA%GzS%F4&9OdHbPz(~=_hVkGnLrX9C(T#!a*7^QHfem$SSluf~+$> zkAzqh`gG9jJy0O)QyiBLvL~uh@L~33&=lkcCdI{PLC#DjEYJQFvgF0bmbYYzXmq(B z$@Nk%a~hCJ5!%jYPU)CT6Jo`By20K|NK6iMnUMCz$b+CKnz_r9b!O>9k)`fz{CpG> zGWI}nMggSjgHMq{XOI_>r>D^rVN(kt%6jHBs^_W|QJ3l>!__LH#mXIdBn2uYIKe$c zt5Ct**}8?^t)a^Et3svFn^)blnjGy`GEZcku=X@}8T_cG+Df$Oys~g->K*t-S(U>_{*sU8Cu^|cD8a7Bsh-gKN zUWKNLRKN~WuqI5@LNC-UYBH8V#?8YV}nom3q;AL+W8)k2cK@6GUJTs#;jjc902~XqsC)TT>Tw(ek!4Ty`5D!=^dT zdTdu= zAt~Q>4#`SK(%}#jg-?T=)20v0EtY|tol`1qeVhC6NHaTMKT(Rn%v9-vU3#O^o+M6k z>WY9;tJ-9ONsy^RW!n|CCS;h_AeAYrw+QcUNghBZaP z8d;mvie4PENk;@PmcLF;C3#P5J_LcZprZTQu)54phhlRe&y6yf?|bHg$kNDWI}zv@ z2RgJ?A`Ll1)LF57v^5VN)FLjA* z*1^Q#2?3G$D5jr!T*SEZ|KN_+@$xn$orYK&XzeXwy<% z6Rf9P=IS`%9FRKD1pL9BMZN0MeVK2Itk0)o8P=&Hn$`&{Rk(WE>V3}>XI};;0yoL& z4NX|PbqK!d2zK8Mjk{OvYi7k(9DF7-+XUGTCg@tnYl5%pY!BQ?ozK0heQWiPunoD$ z)hni12~eReeCPo?51~6t6mLmRkR@jCrV1fj-=fwcVe>6P;{hp-?Pz8K8!2`XN*R=X z*eyKuEywyKF!&bavA%r>^TD?nZ=$Ir=@#E)Cn}ht*X~u~i#}D!=b-j$)qAJn5S3Qj zb9@fpH~!<;eW_nU{7>}d)w2Ew(RqQ&4{Z?xf?w3Fo5^?($pjYknHZk|U2ynWn-E=` z&>o%Ko=#W`1MS2J8VHu6jI?>B%!v&-h}y*6M|qBdf^v>VHhsN z6%Jh%GGVu6#1qyKxQSsKy5SpQAWLbW(7luya@!1XAx$BK1n^-W`r#h}Vjv3QAQECB z8sZ@$Vj?QyA~IqlI^rWjVkAo9BvN7}TH+;QVj&&`8P=hj$ev{6p`i&xCX!+)n#{dr zP+Q^K?u$DmNbuqmcXy{PPH?BVYjG&<4#l;&ySuwP!Ci}Mfw1|%@1C>w*|R^KkLSrX zPqNmmNoHl{N@iW_et!2ZU7itr*)DyZ5kuQ9!@nJf%;E?_Lh@%^Jz6jcPR2Z*dpy|` zTuXU0R)6HEDdqi*`OEhB>x>0t@_D5-5%u#4VG`wA_Jnqgg-`c{K@_NkTg$QC%af|PWgG{8f_oZNrCFYC-wT&g`_Gamzr6cygC766y z&y$8R;X>K}oUJaVok}4rDmS(-H)kRb-k0AsQ8?XKxG_=ux336es)TZ&^no2EJW!@E z1<@aX*b6}v6f#|#Sanpvt^3XBMk+?8>Q;~gbth8|&jXDBQ_YA2O>hC3cp;X!iLA^% zAq<69+ksA>sqWZ;?wqL}*i;^}qh+)svuUJOXG*$hYKU@Zh-LPJ@bHI~De0*x!3{Ng zm8lTS7bBTN6Ofsy_Mz!7YEou1n%xnaHaKSOLO8=iiv%;v^g~PSA~+i}QCBm*DH4l1 zYOAqBn>jOEu$elp7(&%YVk@Z)Ixr3>u-H6wz%q9vJhDA3BEC437T%XpIKags%tAVH z1ev>NAGsiyIZYYK#8CR`4myvi{`@rZ)5zQ-{m3Kl2xMi>>`3#qsmMAY&;21R1Db#s zeB`rBV>WZd*=y|FbtIad?5&ND2?1F66CV3hSbT)N0qhom{KtXf7C|z{K_H7@?c-o0 zix8{h5GRXJ&*RVli_kCrb{A$||BBr_zxW{?H~aXZwjD?ISwxK;N6lG8gO8(kEn-fO zV{R;B{~gD|SjM58#9>*+6Q0CVSSApjgwdOaOBa3)II^xfCTuE6&^}2rvP`x*Np`YK z@jUt9m!{6qCfXe(@*goNSPH3^rq)?zw4G%1S!Rx%WX_#LCeV4MpZH2!ex&r8w7uy| zmboaWxmZ?z2v7fzoMa*BW#`d)|1wJtpvt83wz z>dUV7q^e1TIy|GNOPZD)s6%A7Ki43+h2TZVc5T@J8aiKvW25CahV6Xe>0%l?8tnn1PvUF)-5 zAN#vLXS)IZyRmD#+4L6^%D*VVqAuBH38AFE$R>eA29wNgm;Pdx-ENQnVo%&|U*=*T zWOtx_abRS3C~a5$bc_fG4Nit8i0VB~uscb=ILWg+ExS0avpZ|MIP0@JAGJ zWPgG?+dK$U6GGKxAN>x3ee9>pn>_n}WtaczSgtQhjR5fJgeOEMMl+4e7lSJ0FWFr@ako5x3+m#`8JaI#nT3H}7`_K7ge6A|{!$PPQW zr7(dGNRd}aEX=U;$F~s|aOGDh^$w`9y#&WB@i$doD9phw4$r3+(1}-{ZXGa)s*$Hl zVB4<%*p8SwEQFd4tv4*4X6H?ii`h@5pI)wTR2+dE%z$wVz(6&ovm>5Y?Wy_|#EA9D z>gt`pEFysgTIZUu-Vtc*7=<8q_v@N?o(+$t7LCQRhyNVG+LjQn6sOsd47Coro9*L( z&y-FS^;e%UPSA2_NimqO%C5;&oT#hq$-9rq8E(EfJH4^j#qrmbr=R1xR&+sXsq>v6 z^en6~R!%hSHw=5#_$ihI8AHWmjMEBr^k+BBip*cyEg1TpSW%tNemTX3+||q zhhb+C;9z;FLxs6zRdMEuwPS-lVMDb+PrPCOdd(5&%=?uCQLdgVgM-nyzUt7i-->ZS zyf%*8nRon_EY_LtR?^evMPWX{lr1_TV5$V&B zg&_8wq++cY<((8|op}2>KhJgN#ks^0yHsQYP=`}GqXEzQE{44UTc9CWj59{&?%Oyg zQp(-;HBQXphM1~`uhk69sCRO(_n(&U)g|g?|8Z(~-D}sgXhz=a7_exqm1w=(&W|Ch zVAN;}IJdyTkmHDxqlp8RLdj&s$lwBijL@9*?2N^|q`VKL1!9Cfji1Nav*+rJS8l$x z|NM4#^Aky&g0_z`%$1TgfLuuov9T6NB~D2kfKBTP+kZn^!EGt=U_w-@yG*OM%nr5H z$kTtz!68O2C{6`%bHwJMP=&Utb|hmJry>imzO2((b|eIdQ{uRhe`~Vc`=~=XHC>Z3 zd*uA~e#eZ_=O7|Zfg}#p6eFjFaU|_KtYLE&;Q4u0_j8^NNF3luBW?n*egy12q&hXc zUpx>DUHPoi$^}ukWQ0m{k zn+{K)HD8YgbX-Q;AEH*9caPpgfnsw`H|H`p5$QUjC)q6vxn?$;0Z&S#fc+0XJgqoo zsw>V252dF6@BP*wqJSTyef>IOn4JD(nr;+m0YEs2_^kCmY5Vw8s^mrW_7&a^44WUYK?X*8zKhkNt!b9pr+p z&I~Z6)6bNz&~bQuO{iXk`>j*&(DB3kJ4YO2^;TaQxM-UM&GYMUCcMeMU0`ealc9;z z1V@s8b0>R}ogwNQeNu7e5hqhp`o$1HCh7(x7N;QYbJ^#a%zv0XYXy>tEiXSV+dCCL z@|J2e7nwiy$a>p`3YD`6Hpp_X+P`d+|10|1T`U6Q?&|I-6JkDU@uo$8!$jd-*f3WG* zD+Ei$Fc!EMnkTF`dnqOg%j9a5_IgI+n!qj`lc5Iv(dOJ}qQMMMBVr8^v=$sX#g?Xy`TZ z*c?~@m?yKnJ66&ujYWGabxJv&uH%1xxYwDFlI;ydcK-H}+8 zya}AmCdhc5AFc_09?$SO@qX#W=lVn~BaGuJpNb^2T5mc2D*!j&h8Bp)=1KJZJeLN9 zriV7Lzeir{p9}|rb3^&g5aGvD2eH#Tq1+)t^{jaNENGil&DZnlMbfEIu;9N-jdX7T zYV(@Mak>kuSZL6ASK0!rR8$Xr>n|=d%j=`b1)tKFh?k(0b)8q$f8v!+mBElegQbj> z=m*GF)(+DWv9V9eEmUw!OX^&6%*nwz)-GzF#dWOowPSw$Sl)9MFP@Hs98OzSV-!K1 zO=eOi4PYw(tOrp}@$LgaRhWk`X{T|=(sdNyzo0&2$uXpFSLG8=PB?ZfPmIUO-_6l7 zClptyl#%_3n~UfYFB-F_M}5AHEr%MXxax&XQn{M?hVmV@QnDiADqa#T?KkMlqZRgi zCU?PXV?S0PCgLy|WqchrM81(x3ZQ8+D>W>t7R{w#P=7t4-Hk0-D)|Wp8ATk&vLKG8 z#aJ?qz96ozS2~-qN`@{nmmT2Go3~5(B`;Mx;tR>YQ54#aH(V5&II?*Gok=M=`Q@dF z-+CGD;tW&8`|wje0y}xTWxKgf%|-;>;qt7=04@>JD}vl< zadli7Us>r@JqJ33J`iT6TMNW4m^q(40={A9uy#HJ=r`IKN0+jcNA2CLxn57c)*CUyE zD52_1oF|M|u@S_wcDC~hS zvD)rP^AKoM6e+S4xcbA6UeRh_0&Q6^N=i!GA9>6u!yu%jyxc!j--E)x4X8r65!!m~ zg^a`o$fdvG(VtVZIPPw(&NUa{6)}ZDymEJi2Y4}oGk%B@QTsT@unC=~Cf2&&;XEv= zvfy_CD$rAu_+nvnBNa%-6yIDv{fJ){8x2y?{v@tS+a-25g)A-l4aXZk69tpPjK4vf zRO?Wp7m6*~PJ9i)TAWsD6%{i`bN`9#ZlIy}jK&0W40uw{&Hq*aFsRViB>72K&@!Fa z5@%%UZQE-;_M^2Xj zYHH3>RTT~?fdLNTvenPBI1#S<}n3OOk zDS~8tV$c=wr_PQ`fdc1b9k$rKCs$jkpY7oj8&PJq^B2r^7Ro` zvtL@V65p7?YF&oD<>Rh}^W+zjzira?7r^?oMaH%|&lLzVF3pe5IP>q3r2}JDkXmxW zMNU$N<*Kq) zZLfo4H;-0QHwu&qyGsof-jXTDm4>u6hx{cOo>-$extu(t4rz1i48l^A~vgEXZC zT^v2L1dJ(3TZj16ZxY_?jBoDT8%OkNohAkLp*37Pzb-jNB~F;I_^uj3Fzk#u^96V4 zG@jC-?W#hW*UjME2qqlO>JklLO?ii|C&ZE&L&7J_c-~t(9g=Tz?d6UXqF0NAaarQj zlFS&2Lwd9j?g|_kEW{1cdqbF`vUZLQ=wY8`OTsy!c;qZqeCOv<)$d)oIX z*fImKhV1ZIUU2^cRlvaYlcvSrET>-Jmx_&n;0*Hmk=P!yy+HjaKRkJ`#21b z?K#LcLnu0fr_#6C@Kv@6{a$-)h#1Af4nbz2A8rzt0EFr2@+f$(0L}S45jSr^Gf7>5v+ci2;GE?7Xvg)_Tx z)(WnDYf1CpqnfQwBr^47%n1hs&JR?GKi=y$vVnU)Dam!b*y}FAmiw>>$xZy%SAq%F z`=<8JEeE`ROGi_w$_6BNfAHRpzZ-bY=jgM(w+x9WZFw$dkZioGw`P}5xTJKGJhm>s zU3hGHrIh@-@4|yz`F_4mgcUkiXn1Ip`1{<3P5N&(1p>Kq#(3RUA$_Tg6&f^WIr~%1 z_p*cc{xqscd1lc4da}It5V+}sTK>Fpn)3d7vh{MC-wk=Lu3zkpycspgda#N;wo`mZ znSsKnIl91j2h2dNUcN)kyzsKD9mkyF&%m$%V1W+MYz`3OE5}`hi!U?J^l`8sYq1X$ zVR^3Lh84TzV4sCqry0>Q_*ta0?cwbKh@~v>YOILG)$l542=!{Y~7F{=7~!l7ftdSeAL`GCKN_?ry*d3G@0sfDAdI z2XQ?NgPaxp8BNmL4^SP4$-{;Qbj0MVy%UB){+)~Dw0)${iX!H)gaF`LVMYE1z%j-| z<*G3@VY{>XG^TWow!wmKsl>)wi*BoozcceM!VzCS7U@$ylB7eoq!iwZ!*l91mY4}( z4S*YqNyGwpqRK}-V_)XT-B?aA}xa-hSvBur$sf8n*-* zuQ?iDEZRU2ZD;~*_zh+(7F{BUE+v63V~#Edi#{JjUz|W+K1W~4&K~!1vFgw8PEH?* z#n=yG98O>yPXHutBg*wq8_W@ZEU%{Q!$&n#OY-3K}(BFbs9urtz=2+gbSYcII z5uI5&+3A|=7?4%i@Dka&Z;&F$*cP0a^lF$&D_^!jP?qdmay@WHJscv~oDwRWT7I0e z^PGyJkBaSZizfz^E|%Tyn!mbp&Y#LJH#=! zq+u$2#>68` zXhDn=M|?v?c$%Cq%~^~EM^llb}V`)@o3M?wQ?sm294Egac-RrzX8@#O_!>VEmGJGmoO zPJdPA;5%6+4!KCkUrFWP949zR{TvF2NlK`TN*IgsuxiQ@^9q-o0wRIm9v621EhxtS zRA#y7z*JM=Nm3C=QegwC2>q7*e6ReKa|7llNGo1WDoITMTh+kjyO5f?d6K$y61*W$ zL!d#8C`t8)tfai!gObaa7iVU-Mmgtukgb|lN|M$xj+ViqrUy`<69;sE$8K69wJ<}S zzo?c2)XD(r_N(dU%4+>S`v5t6?$}%F1?XJVrd>3~xip3s^)I=UPkZuo zldGG+FaChYHVJ>lH6;L=v@RNla|wK>T`(W_M^3V}JgnjJqV}4LC0(dV zX0r9Py0s3_dO6v4ZOL|$(^l)=<_K4^^Uflk`?-k&N`ArYB-vt5-C|4K0Wrk^59koQ zWRKl!w5Y~uqW%mrwQsJn1g1FIKR8e~IdEt=-`_hyH#>aV5;TP8OL?c!t)Au@o0Y3jCV6>P4TMN@IHEQBjE9bS2r$g_RM(j9A5TW z#`50N_;r->>nz1!3(uFX+53mA$+za8jWK4GJidr69)FkpF!23NQ~dCFy&m!0jMY6O zRpoqB{25aHvGD^r+&!351GAR>N%3uFd3+Wh`;?jk74d_c)dDqAJyceL4O;A&T%BGY zeJR~Q^7tXnnxSr~psjQcU7AAp`#!ZahpP zr_oraN%pD1dacQxsM*@9$!)DprLd9fgNB;X9GcN`#@`%E)SBo8DT~Z#%^>0=du;Y^ zPY+saEnjQX(`v2PX=iw8YhP>EqRP(KY4h=@>R#)Z_G)e<>Ris~%zCNOS!?tsYFf+a zI$P_yBck)_|KOkQMYP@P^dM&Tpsx2|2y#BPcXPaSkG7X%68BN+_R(ba8KieJ z!FCY|wv4y;39R>v5D(nG^sx!{bFKH13J$2~4r*i$hI$QrU+P|goPCsT& ziI`1Z>sA3frcpO$8Z)N^V4apSC*=iaXJ2P1_2wvFXJcPg@%3iJispDe57KPRi})1s z=`HXDrsH?cntCs&WX+3ZExzb38oW(Ak1Z&EUi`7KWWO<~qqjUwwCuI9JZ!zh@uupX zwG#O@>-Kq7V_+pEYZbc_!#ry#sbjS`3tTR=+S&oG*IV<_i~1u3F7#RJ*IOUXTF3Tj z9{;>CueV|Qme#4af?=_-r?+{OwRyI&c`3BH2VU!b+t~TM_5OMLgNJ~ay-nV{rD(GC z{I-p!Z;!gULrSvyH*1F`d-ySHmnD0bQh$$!WEaA=x!29N1BC2-&EA&}-c#(_l+{0A z5#HC>JTM?R{4BI?oPB5w*_P1Xx79y#%RchjJo-QuIFcNPW*r5b)$5;?>Yuf5o^_L)S7x7<3!jf~o==nfE&g>rpZ#}j^Y4~^ z|FAG{C;Q@T^Ww5=_kiT`G5hkR>-^x?#hd;WV$M}G$rWt(6}G`g$EE`e(rW_J8%l#4 z_>F5)-2u=NQM8DC($;fM_kLRU^Pil5UYfgmYekG(NniU(_d7*22e)3Q-~C3q3uklQdJW$8THf|Z|7~^0A8bK#av;X9 zkVoIATalS(QnFu2#NTRidjpZM>2*hH{`7|eC}lFg)#eRG;rqXirk6g`X&Y%$dTw?WOo^S|p0oxm45!T-#RJpU~|X7)r@;x-1# zVFrpZ_RndYpDlQpC3*Sy_=LFlgg?Y1AR;6pAujn!Ya zugClUjt`%Yj~+Aau-CW<@ z+}wUV{$Jx`^FO-1`OiDtUO(R6Jl@?t+}+*Zf9U@H<>lYY%ggJ3jknjgw>QXtjgP1Q zM=ub_KM3Sw{y)e6Jof+G{r`{ck2CqdiG7kC2?F(w{9jIG|Gzku!)pD1Ikm1}G{~d} zU$?a`=6^c1zG(74PF)}UUrsHV&Hs;6$2iT1la=7Pvt$~}7XRC+jpZ5z%38lZ%QjW~ zw^Q3WZDgAq_QtY4oT}Gqhq}2j-dw%a?e}*08Na1wr#}pv0fGN%Yj-$~QZ{>no8@3U zmBV_Iae?V*I#=QmzCW+wWS+4n%$2~k@uQl2xCyE@uj%g^gJ^@2b>G0`rgZ)gi9!dj z$}n$yF}y;ehjPhKzN|TUXR&|g@-lyDYZmR@={6n2xCePh&OK|@zUb(0hSy8JeK&Wu zVt3cu%hT=I)^vAwFCMLAFf;)KXtC|DL=cw}fb_7uCW?V|m#MGMWw8^CZ&tDs@*^pC zPKLyZb~g-;4L>=Y>eGW^(Dj?-4-L8@+Px@FZOv>k+72a3S%kaey;#u;O+W-P3PBPw zAay$}63fYSKT%1VZl3^v1DE?-lUtf9R!cm!z*Ly)#3aQe+0yKn;cr%@bn_;7o`{LzjCq>Vr&a1m#$RqUKXlMfkMluBP|`_pMp_o(T3`Of z7BL+L(Wobd&|5{3M-d(r!v3MBEY4UeEm45v=--#g7cE(xRhlNBCRZud(Z^MTn96js zvo?dyYDd0g?AnxYmFxWOft*^^HXy8(i2a~1|J$_wfQVqX{R`;;#RHzVymkqTh@oPm z>FlEYDqH7ojaKJ~NypQn4qf{?3hG{4U%;q#T}5ZXWv?QFV1BO=dS*_yanU$_WB;kuJ%-sF0OHY3wST~$6e{w^XHwSr|=6{_1WnVGfYjqv|PKn3a?POl+7VX~t znHnsI@tJK0B`4Zr5SA$O`Uoxb;`un(9>C}xyo_|d_Z6GZ|TcmzTh5Cg@d`5JB%yn1o-^ zjSedhmDE)TSmmHEBA9+yP|``8UK_<(K!o#{EJ&L?8>${fg!{dr|1)<;SZ>`i@!rTV zj5NU2!DQjr6)nU0TWxHZ990LBWl~11QhZ#LNq3t&pTrl1gwzSDI(#i4j+Js^E*fIM{k~5aMTDi; zvK6tXc#!|_*-e{?D&j2uK53h%S+& zv6>79-R0p=mPqrA&BkaqH?yKB^$2uot8m*_hKtFUw!~0o{ zLRZS_FnLDdN9~m%r$(Zf#WEur*;Q9|?z&X9GT}C{6)uyV`rNk)A}jJpJ5la>?#c=) zjTZ&~+=s^RTp#6K%RT;J@IzCo65WsKi16>3xTO{7RSwM_S}XiZ)I7m9JllTA;LV5D z#=)SU)8J?g!yS~ymA}fNvUBWyJMG)()$W5j2p3NEEkjIx@`o8r{04O z){vvJA8F#;-A#IdjO#Ta+#N>v{UdNhD}KmYWUWosBNyuN9scMwf4bK6*aYy~wZC{A zjNT)(vP@#k1E+~$e)g@x(Ty||@pPVWg+if|1M9MOBFs~Jrru!RB0z< zn7{%4QeY0O>&lmr6+qD5F}#9X-h{rX5!8<}Y8~e8VtuV8V!kt8T{FlW;(zPP0j!$} zZXSmHapxH;m`Sa8H7dVp|C5^tZOi65(-eY{&a-sLeMJdoQl!5tL8pFH>Gl zpVG9rOQ2xPhJnaihO$O0Ut*S%FNXk}X1CerDKdQ^RQ5KyqU#+;7W_ zwT87NpvK^(vs*24tk?5j&Q1Ydj?ed{vYn^z!W~@DBzvxPU6Y55ExU~0?F82yY$sLVf#ahW02Q z9p}cPuHc;_@5!T}VJ@%DBagnKz$g6!H`)ClRQ;$Kboc1hpNrbQ?d)BI(VmMD@$f5m zSS9Y@SCgrAv9w#$7eClz`6qR!`A{d6V>bpjpZOreVO)945f{7`_f2(FYFdv5Gdsm1 zyJl*guNtT~i{^BT=ylt^dI(Ouz(6<)Kdx^siz%L)Jn|T{@*=6qb$CJYN&XB{n$wF2 z&n|X0SNhhu0X@q>9p(Y;Qkovy9sv%)nj`YjhVHW(hDhIhcr1JjXyqXeX14Q7K4D*f znT7dBX{e;T=^P;h_s<~A+?$R!t89EQnt0Ia9kd%nHC0C}9#XW!?mr-NFxj{cMa_Oo zaFIKlA@iKDHm+fKY9X;Dsum?6I$DFB2NOFey)-4?Q#YNCxTvwzD9K|F18LtsDH>%K zioys!K`p_>%fY^(k#jhRn?QZ0p=j*F$o4SR&K6MfqdNwo-nr|~tS4QK8ALtS*gM`> zA0_yo8c`V|pt&$bv}73g2k&LxFzzthGDU6Ui2v;+v0WbXA zCF({kw6QQ;7GA3@1YXq;mP;w&i$?-=c&y$KJk1KoXT=TW3nVN@$q)W}oUUfrkt*V% zD-1J@v9&r3d#QpDt~ny_FI*1?d`lJL!i;jt?~Z|2sdWhxteI{76F8}T$Zv@gH-o}(R}^-KZ3MZcx!nx-(_d(9kJ$t?!> z@}(DOr5Ev~b1A_G0-RWaQ_-Z-k_hzCSH1U3(s&2cEWZU2(;3aIsQwm3>LJMN0m@b~!J@91jYh@p5 zWow6Lozf{cwq{v0#)`FM-#jb*J;`3UMtetm91^AMlM^C6r z+m^@tFK>=Fnw3AFlV6QVJD)c_pVB3tADl0o9?AYMU!1=HZ7^Tbv*6olu2_139Jt`# zq(FhN5R|T<#9yfHS-7QIsM%Jit1Yh$E;Ixe8W0wlSbZdwMHb)!^YkJcnF4EYkpnp2 zp0N0*Oun;rv3pydTY9lK_>UL3*l#S?m#_p9#GezWT@vP*6`EcW)s_?qE{Ws!izO`m z&F_?`U7Ffvl#*VWNw1p$F3r`}`p7j4(j#QG%S!0Y^3%&I{;8FN%WC*ls|m{+WI*-W zUKWtDZNbp1-}mjDk||rCyY% zL0q6gQm280q5h+cR;Il{ZmmHe?0Pni7CRBdcAG?Br?h++XXu zcb_a)knrnD&g)VTfWB?-eqHN^ymU|MbOJKEo&@U8QG1Xwdr&%hc67R7y}RK% z8qfrLaddleb1Gp3YidYRldO(h%ec~Mha+y7nHdNA412XFas=9;M zF9YIOgA7RnL^gx^uY)_0g93Sj^n-(#XhRm6L(>dHT;fA?rbF-*Lr#Lj9Iri$XboRG z236#Sz1N3rO0wkt4#9 z!=Uv+D74W8;;}!kBdNM$ljWlbqI~CBqjT#xnTDa z+PLC2oZc0jlHVklablg3Vv~6IhG^=~I%0&O_T4)Ajr&wL@x+PE*x3a6U%8QM)am$F zxNtI51fLlsCRBx*iGLl_DeKcjH`7tX-6Be}BDruPGl(@cv&0*-pEnSd3}=DSv%rl` zg&D-MTnMQ4gQb7fE;@r~?+x3x2Itd+svd_#H;B+9JI~iSPuGa5cGW4XgaDrfsuM+a z5{18LhagX2qJw@hF3`J_b5%DYaN+Juu)-50Lao1 zbwq}m796HI1*H}6r`+!(3ojw z*)Z3HfSUyI4Qtjo4p7)c0fww=TtH;tW=&rwXuuYVjTMD=5nUB#H|x9x0`Nm1x&Zkr z!Gxf83zN<1)u4oBA4hb31o<0W5Ln^u4p7y$ygoP`eU(f8pi5`fk!&8WYFkhURahTR zGW%dAV{g;)wDSy3DQtgBcB`>xKPek@*128t8OUaM$a#-MM+RukRtY3KMk6|+ms)qJ zQgMgupc3t3ph7!b9kBqR(U$`a?&lk zT{U%*kqru(F;CHl)6qv2BiW>*KI^pJZ-hD+D8H=j>JTwRC}cua{MjK4G31HuI$Z(JFo(n^r4Z_WVQ8R*J13(awxWaPz|&gxP0NvZI@A;|)|0X(nmR`B*-CiDK~=feS=)3I_e zQ_{Ab?+tx0vY7$+Ngoc5ZX%X$AIs<5YhE7jO?8|?+U1py zLTX;x6_NCqAGkLz=F%?G^x^(hty)hz|H^sjW_gr?ux{lGcU)FJcCR6JOuu{}v>Oe# z8*=ybKb_SnAsu9GC2jZ~fBaw|J^K5eDT!&D0dSMLK`v0ybypB2Wtj4`kdp421OwE3 zsAwq6lVIoocyugp%+e+C5DR=_LHv-NK3)L%kONn(IwcM+dXp0GtTJ*ewS2Z@8t6bK zNlLdXh(P5~E?vY1a-1kbgOkD6z7mwDay+9dVoy?-)-V$LqtVsWf3@IbpqRy%N_%98 zTBTUY0EVvtV3k-QHL^4}R$y5~uT#4;x9jwMUQgpU?n%9a!bA<>Bd%ke!!mBG&nola z7z4ARS`BNXDNH1Jp+o`!Nmm9R$GC5nkS_$Hi;8YB_YM-A85rV~HU;g}th(KMX9b4u{a2 z{NXlCkL+&o3sVwiK297BFU1ER#1&mgR7 zX4ax$laqcfPlx6-1T9(p$%H~(J(pd}H0dvn5aW0dH<&$|e|q2*|97bnPb3tD2seEc z#}}b;3#%B|$MRs*3fFkf&fo^9X1zklUNCDKmXxYcDwZA&3JXdt8q+7sn1gzHE5B!17|JLK2B=dVf#M)m;93|t_9+|En zbypX|#}x)w(_P<4uia?rTm^Se^C{;G7rXHe7U67|X`~8jT`RUy#t2$mIOmCN$gA0f z(X76-;B~^x)OiUhiWrsCC{1z4&FHk`t&9Ym@t)C-Ok=W7`tL<01+6q-+dXvxPmtr|MyP%%S&UPk)5|5xehC?WqYt?jEgRf1 zTs>{d{#RDpwD1dvS*WNqQ-KKE$&w^%emnBPk-yKA(igNJVSaB_{*Ad&g-`WGlKwU9 z0kz{8+|6--PprS(;z_JQjWy(phj6yoIaVz^@lis4ax(z_q60l8azP3>lFP9E zh6tEeaM+=q-|x)m=xUv!>@v{2h>7+4!?*H;Yg)bh}Vre`tVB9f5e9BO(2w*NUcjO^2p!`80;YA@uu~@xWSoy zWw?cn+Xu*fG9oiIOT#V3M|BbQmpd_FO0S+5ZzB$e;4P^6_b688#~+W)j%C@J8IwL{ zDd-Dzh^_G?g>eIGf7VWX=Fd;qA_OvFx^+|{-pa!FtpKH%xf~GvQK!PHOh8>7MohW7 zD6mZ_gnPm8NRq~KVYSJ%s~-2l`xBbrsG_H|i8n9U{F}kTv~Mzw8M+j$0*bcMMDN@m zmS9V{A0OQ2UuJpdKle9&J`v+Y85se~kG?V`NW|kN<$sZ~N+M1N(cb+CR17{)!AwzZn|=e#3m6_6CUtWA+Xnz`D4yw^YH)1r zJh&)Awb{P%I#3#5%EE+v3dqZcLtxXbJ%ye6XV^<4eQltIwSqItBlSQXwnO{_2699e zPrf;R<$+95yYJ01AoB1nB3RJmi90m}V~EZu)JrJ04lW1vWJl}SIu5lTVMIe1DZa78 zbcRq%joA!63f-`!pKTZ}W(J9vK2!JIQ_`W)ADCP_VamU}TBc6|OqHcHW3SJHpCIr5 zV*Lk$RJL^zSNX5F1@#fb+UjhqK5e#Gq50fZ8n>fgf{ZEvD@0K4TcyxQ^~|z~G&cTR zu{75m6%(aQ;Lu#@$xxm$=wP4mXkJBlB%U*mDw!1u&6M_@Rz=9hD8*ut(dyn@AN`EO zq>buJPf}v0t%bWM92{N7H>!!U1mFVsQZKG)?VyldI&u5pH|B~2YC%j*NJTY~OBjcw z_oQXW69M&uAhOd+Gy)9?91P17b>INgVIA*1R(w}96i1Sv3?-fzk7O{g@wCMHqmC9QD-(Irs939=8(8J z2-+O*bBYD*l+wR`T%6o0IjaXo;?WI74rgQ>>bcE+$wd1c^$$PnQ+K}G#?*I2^hp8Z z+do85@cndUl)61wu^&r>EMm^v_c~n$JT@+L5!&TbNY;yp1{whP{bL4qNNjQf)V3l7 z_{5lZc&)qW&c$9Em%<+8M_Gdv%E*r7fIuEeiv114L9z*`XWwjyADR=C)Cl=h#Mho5 zXtcSW`v%-_W6S!z5;d;}-xHs^#y1~XGW`AqUv47r>p$k~2=)7Rzb4QAdYVRLx`_6D zo%$c_eRWh7db&2<(kb9;cFu>ZzI$u#5dL2hfJ+)0ww3#kSu# zNjfJ%+F3g#F^k)4`r0{8+ZpC1b*|dE>7;JarMTHT__U>Fg*!BKJDvn~7{8WM5A6`D zlEO}wBB}2XUF+!Ymm=KmkieJrz3#v#>6DU|?qr4*S9Z!ecQQQ%phtEpryB)QAT+Dl1oqOD*d#v?|-{`+2Q5B1Ohso8Sw6 zUld*6=cZmoU~jZ`Uz~ZLhlqlra^Kh3zQmk9JFh;4@V=ypzSOlo<0b_KU|$-3e9dXry8S{64DjWH0( zHc+KK5GFF9p*v6;I1p&3q#ioZP^ILRqC`?Z(7dMP3REK89suA2gAo)O$bcQvz&C8l z&C0-TXJv1FWq=p3F9)c9t2C7l1Wo{-Hvz|HfWrtXntRG)D1&2sgKxuu5d5culjbTJ z$|^v+!5NIfQG`dcRfB^$gTr-$3pv2~Qw%V|Q1|KJ5X#UB8F1NIaaDV$LV9T3d8ol| zXfsx|I(%rmYN)JuXm?_$2srfPbSQUk=m38>6Jz*@Pc4;g_(Xg7tMc%fvs$#>@I|az zMELMk)o^I>@Xdr;5ODbJbl7ii_#R)q$xCIJYy@7W7e;0T@oWH&UIi&g9ZpoSDtrVj zNDi@j1cP4=xkTmB*@$E32o}Mp1;!{2zeaD0dacMPK}k2R#VAp=GUlWTaju4i^C)ST zM)sa;1#pz&N7v)CQK~nJBzG#*{F<*2#%OiM-YaW#=#Md~bkPMt#+bboY3Nm1x->On z$Jo|2!`DVR5Vf?{`nl-G)yc+rWX2gRfP5C?988oIPGfA&AsUte}+(m~vX!7ORsBZ2gS@q*~*N(?wW#~oO*LN{Pt|>4q@89 zdDww|`igJb$$QvYXZkE<-1Th4Eod4eZrZ(M#H0EJO4qa(#9+jGeH#93+826=NAU8V zZYE%I_=C*L8||5(xZz-zmluIEAv(jMxi3$uW?6*m;k zue&Kd8>=%EXED3tJR6TVln^(&kTaW9J(%1zJ2NqxYB890Ham_0%3vSNq}Lna17&xq z5a@tDTY&P;X1)c1BI7^>^s|N4pqMUDvCeGCI_T>es4QrKpe1*UVoBrz9VR`)8bW|#r)LT zT#q-fH%@=~cCMdarN3*wV`6@g0626u--56(vM>M{r8j8gTNwX5Frl+hYrZg*J2Viq z(C4)`7XEtdu8 zLgS3f{H_IfZxXz@4&ILgA0RI75G)>bf!q0wwyMCVh+ycF;WGQ;#pJ?e++ryP_&Tod zrpxH-#NwS!ALPvF(s>bvLlK6-_zT|>eBLnZ^QAQ9B_vBFq+sLI*d+pZ;y zjm1YBOZU*uNjrFQy{Il;jd7??V%A^agko3LmH*Dgsc!TEHfG|F?}^9aa~~<>Y?vm32s_puaRRv zH?>1p<*MoCW-znmTjd4IvOG6~n6C<`nw$oi#dxhg4L0qpHWT`~D$+eHw6V%|zAE0* z!$D~7K({7|)FUNp{ziLEhHzEF)!fZ)P5!Nhe4aUd&6?8N7160R-;_1gx7}(;7Py0J z8meoW0v58e>)Jl%s+JZW`0Fpu`*glq@a3)R8JfN5wrFiyH?Zt}dA@Fduwh&SG-R+e zC)+TS)iis)p*yv1DYkAEY^l?|Y6D*Ds}>0db43^aJuoXyUU(%)1q|4G0)OY z)+#x6!^KtB(ba0mZu33Ex>KIjD@e_z=a7ZV)TXz z$Y_wIwTbK2M~)4zuhv$CTVY~bA>CVg(p#UOk7J%$drxddezgi?u(7Auj)~}seQu+@ zxAj$4;cM`=rq^~Nl44?w4SUyi3Q|{6jZJ!*O-8Uy=3ASr=Qi15HaQG7xtKP2=holA z*7@Dm1*O)7U#*LLtcxwJOH{2(1+2>`tjm$CEB37_r>wrWSXJd&RYzFWxLVa3TGh!~ z)pJ-i5Lz`tESokgn};l0YAjpRECIomZEr2xpIdf_S#~m5c41m}pIh{REqc2x`bsVO zzgi6VSO6_8230MF1T2OrEFdFD7Nh&-V^ikiE#?z>=93ZTQ?BOIhUPP}=Cd5;AVTvw zh}ryx*}{++xW;TT&1@;yZ27I(%5$?-F|#!Wvvo|fjdRmYu<2H}>2|5<&R5f2AJaWc z(;up)`vRs16sCtrrbqiG$5SRJEheXVCT9^Q=dLCfh9;M?CRZFL*MufF5aZhoZGZZDMB;Wt%DMfx=SWBSi2REU>4ig5 z#1YlIeriTXUjAcRImi*+i(`U!j`5bqjB-6p@s1yIj#=Wh$a{|Ik&oHak2x+JS&>h; zhL4fyoj9hCc{h7l8BZw09iK2d3Sv1vy>Jj(bP(=w5GivIjdu|9br835ka*$nOx!_o z(?)98M*7}H0Lw`R%U1TnQI679e$i2Z(^j#^QAylZxy(^T%~mzuQO(F!-Pcj$ovr3O zM=f7l?H7(ZUu>WII=%ejq?_)fSLXDp)k%NY$zajR@W9FF-pLrt*@V*Bl+)Qv+}T{s z*}~|Q`^8DJ>$#QNS%Kxb+!t5=^z*{fbA{G(-r@5i@VU~#xd7IM3gv|?=Y^X1g}mB@ zhS5c_$`J7O+#S-a+56@q;12moh#RQc&419%yY|AZ7UYY3Iho@2p8hgmc;4rJI`GBi ztoeH%m&=d$zz^@HL%+Qrta|U#bs1g;{472laq-@V=(2#|D#}ecl5sjl?h5?*(#zuN z>*joX?Q}xC`zpJ8e)Uzd8aU;hUide6>~r^A`pc}IxlD18?*+ya<7@ApE53s{FGkhu zi@A)}OOJ2Yxz!#K;yuOFmnEC;!_7U?#8u1Vq0fAIv}n60$a$8?dAxsjQ}*QM`#X<% zUr%WFu)C3GLfOTa#hYr#O%3L4EyZme$8EjXZG-AHSvCyVuCu&1%||aZ<0gU-?^?)yKZ1O7E1; zyZPF2(C{5##e3=AdpX{9rN@=<``v(&&$_tJ2BX`ioZG^Q>yD?-_7})%qt9O1>D8Ri z{=uodvJ1AI3vr4IS<@Nq{29yb85h~PfXKOs{<&n;xs0+W@Y{XM^!d$`lj5oS#`HZ1 za)>V+GVZP0GF5vZ8WE4()**Fg2ri>$vGoy6cR1-2$Gxp1+TKVSIa@aCW4iuWmKT-y z^2hYR1RkrgVw)3&p%fvkn!W84tKn41kGSl%r%YoxGX6Yob|!Mi@-@F{me`)L^nBB+ zz3x=mIb)qEH|=@5W_!-2S7|$4`DRyu8dT@FIac!OkR9CQF#!6pd%?K`@V~(2P}bsF z=?o*{eM>gYwU!XUs8wor#j^qY>}0#Ycf~v4_j7F=`C)Cm6!8k~8H^~*KeRRu`||@1 z4h|k39svOX5fKpy2?-e)83hFe9UTJ`3mXR)pMZ#z_%Y>U3OWjECMsH1YI=5BMlL#L z9y(?|dKT#L)3XZv8V1%Ue>;EKJ^y_P9r^|1uVH_}#Qubt;|U9gASZd{2a*JQaN^EG8l>eHJ85`;uAMTwP>79hmXz$c$@ATLoGc(pZGyZG(X2$zwCiJ25aj2?R|I zfu@G%rbp&x#^z_o7eJHXxv9m4nI-Vt^3uZU%HsOk%Erd}*4Ebc_V&)s&hGB+-rnAi zA3yf@_YV#Z4i68Hj*g(a@+T)Jrw{w^XXoeV7Z(?omzP&pSJ&6S?Zy9EiT|}W{^<7c z?*|_FBYqOW&;yS^Yd=s&C^4^Qj->|lzyp!hu?eLzM>>jDrEtENd%Zs%S)+yy^&}UV z$p0GLndr2xnkK3QK_H!2RnL;)rjSYEThYu@ArcEBC0JJb`11R63!A8&=fN};9(PIQ zSslJiHqnTluEwBhMunCjCGL%v4HgG0)rD^FdRu%@haLfS*q1BcV6hqk>$nYxBS_l) z$eu2n_s2al>`rlCvK&ej{}93E;k-JQN0hDV{hogpP-=AWnLU}~2k7;?RY;+y+a$Op z84k{I9^oS=G4>z0po};G=LDnl zkKw|vi<4jI0R8+o0D+2z_UHi{@bL+ViAcyv$*9RG=_sigsp(i~8QAHV9?*fFnfC!5 zSRc@V;bHz78vYI!9zfv_M0mo=`GlQYkb_5%i}xuv-&5Y7pdcV9A}Ay(EFvZEr=ip%fpTz~NKjFg9 z!!I-}l)ztyUpN%K0^ARWU)*okh@s~sF-UUJ(tVZdGI6X1{V9pqmdZ(jR-mTD@0)$8 zBHn0cD12KZ+4!GGW%`{n$8uG&3BAyCY_$t@N@%*0bc)nV4VpI)SSpHjD>QWqWd_a{ zdn;#GTp^Ui3QnOdp0=ixrsN#X;Rk*CPj?8b19Y8iz8=DeirgJooo$}K`RoC%D~e}yT3 z#*x2)l3!c{6%`d7$~Q1DFflQ)v9WP+aq;o-2?+^FNJz-Y$S5f(si>%FXz6L`ndlhV z=$Sa_nRysk_!wCE{|Z@t!xRBVHUTC!0cLgq77l(kPJRw9el8vXUOoXn{wD%Y9?so_ zgoK2Jg+)X}L`6l##KgqK#UJ1VN;4!S|BWgCtz4s_p}x7P5zyMy-qzC9(c04mMV9u# z{thUnKmp|!luVCyPmguaJj{QJCV%|Ve~c+mSot--feYv-vOr;Fe)<7Zz@YJ;fHJ$f zys*Buyt%Qqy|uZ!yYv6UHPHVWQ=~p1B8dGwCjE$5snGOrq83EL??a|gX(k^{YLm!y%J#;B=bt^z%W^TyXEe&8<$B{ zFjmiL5i$2@w<(^~^H8_SUngpRg(=DGs!n!MdM+|kB?jVwqqc(8ody{ou0Xe!~x>2d&bK5Co?VBm7_C$KTw){(=)I zkU$j+5;6)DJ04-;;NTGv5R;RT(U4IwQa-2@4jM)-S|+GU`N>26P$|D1$^I=Nf%22T z<0QX-=NCEo$xj5CIUa`PL9sk#e^4w!+h0<7@9P=p?;Qg6jtupU4fl}RVz;=knc5k{>naSI9-hYcs`MLOFd2IGevcx_V(CUl~gem)G8MB zOf4zdyHNfjr6LmQFoInj))%D~WSh_QvMs`u6tLzt-4z5HLYVzmbhkNO`}=M(8iH0WJM~ zARAAAk_|ILky*!VU^27KRA*mI&QPl82UBN-)7+8lN4^bJp;g<@a+OjQ`BC_HCJJ;) z4BsT_>^{#lX!cnz;LDo*ZuTKfKbi3LV2J5l;UrUJiGGeHDyX?=YQwO_JiQxHgow$c z^aIxFZBbqMXtz0@R7B!`NH+c=VA_aEnOpqG=a%h2)kNU#)W^$E0fYV^U>5CHn!nJN zm3Y0`fg zK0e@E=IeV4**QWs_PN7(xnzfki13GA8G(nu7QnduR}k`N@c4hyD^RsUM?=p-$H?&~ z2>Cl3W4l+2rH)m2bTahuK+Lq6Mg|fD1Q7~ul#R$qkp4Udb`^OdLQ)4Fw_J2 zX@E?PbpK2B%3rIN$p=4VZhCNGW&|o(mKLU0mgXMZkN*a}^0WLV@TJ63=O^NaN{u5^ z*f)g2(DIu~^S&=sDnH9_p2adlJrD&g8ejsy)6RrD-sVucgv$9TNmaha7f>_{y+>8S zc%W2Fu$N-Bt#*OVcd_O$oucUs{YD@1SG>h9E3I{tM3ZZN^j6y~^bZnOXDu{3os8+A zITeCiJ)b>aL$BlN{z7nn#t#(CG6?weSjjMfm}j{!0qa`F>*;r^z$o!g9K;?~TVr|R z*{Yx2`FH!i7(I9(&`OOur(N)1W9`8r-~&3PYE#|OYHtjy(NI(U$>vD5Qo3q$!`bf4 z_t%R<&5aiaOC6s+QL42xU7c)=7a0w=G~Zktt`4OCxl-f)9tMeN$?v*ZVhJ4yEyOqg zhNCyb7gMa)C=i!Wo;nc!`Fo>a6xH6$;8X7z6Caw0I+IYU_K#Vi)TIfgo*b3LM&Udy z7nvW)_BWTradxatztD-H(D@Kx&ZbAn?O#$x3r<-t2f#`y{Mk;4g`b2~fsy@xg(nmg zsEhIls)ev|@$vA935XsOky4UE6%i!^1r0M59UBb;CoL2A&*+0A9_Z-WhO%FaKck&U2|5=xQf$?lDz7X2#S7yVNX zDL%-d!Jl&IDHqgE5%7i}fHb$%vlu^9$e?L%Yvz$FD5eTc(rL$Qe^;#bsLmSxXx!o2 zrRTUilSNMng(v)Mi8%dPS1)<&()n11A7B@E^#gE?+P#MXt04Vyy9yR<1nGMRsqzSD z;}290{n<`2Ye)Hv-EBRFsFE&wr*>vLR%-Mif_;wn2Poy;>Qu4klMQeSJ3N-EyP!i~ z_ZMN+QZnw7jevBiMON>IdGPm&x#tU@Gpl`gGop8DKboE19OaLGqNZo1W#srR&3TYP zzo$8W9p(H-&dEuI?VoCQtmDo5Hz> z@U3D4(K3iV^hp-Dnd(OJ7Cj-`_+uctkw`IDg=sj(t`L&vNQGfPBD+!dt=frYf13Ea zN9;+=+hd|?*`);@E=q$bs2&juS3D-5^mk4i#gColfxb46_t?Ft9F}{ckU8IaJv{-n z-v3$5*umGslEKjb0}$|M|MWkD1L(#F8X6ijg2BeYfv$XzJf@(aqJIc<895))+~54u zf6hGpohm@LJbnebTs(rj{7?Cx2t9c!EF|<0!2COW`JY_$Xl!g~X>Mu*G! zx}mY|L#8_l4RnXQeou3MN}7LJ_yPq5(1VhBh;@Hvx?_v;lgr>)s3o$ozPh!!v9q)N z|F!7R1@jm46d4Oey0;u^p3V{qr3hl1N{8XI8+Oj9ugXTCeh~-0$pzAj@(&Qp+`2_nG!{4-%9aW zoT-M&^jM>{X9$XCBhe_o@}o~>OvXsgritomuBz9+Vb%N`_JmXNv)D~=kf+w6adpt$ zl)1+X2aPg+-}b=0vm(X5IIJf?g^`N>-V|}GZZ=Zq?SM4SS7NF4#(#=cjo_?chhewi zzDYCj$ujZDGxEwX@d+~VaWL~UvHa#i(z86FWfGvE;d)HLM*NtWh?I$loP&^(i;$9= zh?19>`Y9Q+3MH2*?GrB=0e@5v0(!%<(f~v~Ag7UPef>{5Y2#@qo z*MtvFQJ(L@UEYMewGFi}3)g@7MN>6OK{{SkB#w(OmWDl=lp&IYA(n(8nS>#egy9=8 zLm?4;ApvbE9!(`4bt55ND-nGQ8EpeCc|8kREiY;PQ{onB!gdw>P92=yS2%qpSp61Q zeRjBg4tPLU?9umV6CNm&UdWT)NK-zD)4oWven@ix$P0m}iytvo!tpm^Xm*o14|AWL zlxm)R*T1MWyQsA|ueCa^eREXjc--WA*6x1M<9!JXxEc+)8jrY~iaDQ%KbuH8p3FQ3 z&`kUD~zWO=WJIB}CCl3St z;`iA+xLDggTUbAwSviHpKFfX1pnJ9?iUPH|8vVCO${^eQ1BVnsu3 zikz;W&7UNrbczv5UWa6gRr#Yy56zzq6Ft%K>MxKi6ypj;q0OJr3oLF_$r9rZ!V<-r zV%?ltO<9-iv*K6DrmOwc39d`gWlkqM7MC?;i!HTjrEwm+WhS3J@eUrbspqfsIAAHI zg-`S>#fdSg1p`U!Ht15Nj3$*Es^qF)$0UfcHJptEl$veot9bH94oKME#0@rPwSfVg zI}{x5)9VJE3rI%bL#mTa)EFgXulhsh%8~TdLCo6*x9{<-5VK9ymL}_?t@vQI)`_N@ z3(whs^m-p3mCMVM*VV)KW_J+UZN?=(VOVQp*?aO!9DfV}rlQJzw2V4Ki;2M$T5CpHfYp%m2|2(ZG)gxHB2%hVT5C^FC=GovG2t zqrhw+5bljAf7Ed0vyj&U*Uw48>0D`0Yx*%WA(GfX9cQvbA+?Oh^d{LzaEiNPN}_VX z?ZgeHsfnafWny7M>KF;ljCF|?Vv*MpG7Ur>xjkDFhxm9PR=-B!w-@gi{#v4SbP9t1A!KNo(%{jTSSlMSr4| z5_}A=VDwg(K)Mf;_}#m%v5?|Ke1=&047?2N&o#4S6LhuU8c=-F*G4PdeHjeJ7k!4@PA6TC0Oy|=Ao(7>{1VX=Gj@+!MLr`SHMhO#Ysa^Z zE9{PB)uS(+@NqsKc@~iD{6UuaFOMs|%iv6UlRO@pGS zoGJldBIJkB;IDvWqOOf-7bz}tq(+UZZwzmt(Nw_9g2-?)_pOv(P`w;*B072<+{895Z_!xpHRf4JwgWT{^`Wqb=e9$~~R3tD6+tFT% zT_*#{h$M)7NDkgM9L^M%i3GV#8wT&P9mfVn3lV_}-Vg;xneT9siB-K{t3e^og;fGM zAPT)mfeOCsQjW=SIiECPK#0B=KEXDlJ(y}IsMA?`l+GTm2el+PE;)(T34kt_0ISR) zFV8`!5wvjDu3zaVjWEjaNwqT?&I;nF4SP$_$fQ_7yE_{5gG{p2@M#u`{s~|iLam0H z@q_aG7FjH=PZ|2ZOT2L{$2BK_-L7Dqa39h+!B&G@nwdeOaRZNuG^=RD74w>$3rSkh zLyY{8hA4Ci_R%Ape6&bjBHt|=F+^s$8$_psE@wO*iwdBn*ms{88e&A-jL2uV(Vi6R z03;$wiAMH7Z2vGb$*n_;#HmNYm5~U<@(e9}a5%+=Iw-nk4gFuh%2e60F#LDHWeojU zFDKck_21-TM~NyaFNT}6K}K~dSZLJghUHhs7*iRvWci>!fWlP4 z7^jdqVnEb?yN#n8S>vjKYi)~ohJ}Ax@>y`rAQWt0577w^bTP}4Aae+!G|j;?V|q!- z@Au({d0msVfjm_m!&J~nLUM!_ibKJa#5oB;DmpWT{r6o`S&(`~G^>_l{q<4_B<^{b z-oXrEmc@;amZq@}KExNfa>LgTSQcNEjK&=u$@2u&4H=TRPL+ZUC;7gTH^rg0bBh^e z^%>Rd*=uV=w?y`@0-d?3x=hC}Ok-e^XuW*6lY4@raK^)Q?#C$+En)Pw;hr{p%j20ruhz7M)UN3e6{!k&@Pk^gHi zgo@Pkz)gKK-8O^$vvhj9a*DD3kq}p!k8;Aqavu`HqAaT=u&V`0P#S0xeX1*``LWeJ z3oXKDlGr|yE-b1hW)!~-Ni`ESFi|3D>})@a!?EkozTeDU~?RY4pb_=Skqbth> zZo6N&Y4|Mckwf6U`aTx1y}$*mTC%2KUx7x3Uj?}bGQZ{`n^V_**ZmwoO#c0;nnoDS z^V(R_e&dh`>JgvGDhbdnmMf^PLu2kka)Z+0$30l(IJ=PX^rAH<)5|~)19?MqiWkUV z7Zyt@9IILrW!oj^r_q?Xx`IUC1S_fTW0`m)J8=|>*nf^!Ae3hc9C;d>Zv3|L+f7a@9+Mq12#z}G-$%?4Rvj!UQg=O-OC z{O#n?I-FRwb)p}NSU$4(pXXIam~%RIjdGAyk7KVYxiVn_=>zrqo2K3Ny4WR`QE2pQ zS1Ni0VY4CPcRNPuXGKN=Git_4CLudXi^7sv0mcH?^ppjlwIm!~h-5tE8O%txz&!mT zz&HPllGqsj%LsfCl6V6Zx}Xk1;u)_x5l7kuOJw*bGEj-RKKA1X1+vDvGo3#|N3 zv*u&e_-Ks#Lu7$C>`#&O+H%^RjOgw`u!(^v!V*$UFJJ`_wf(c?KS>~NI>9#>t0Eqn zTfBH-%I~v|tYZ~zHARSOD!~em?|vOkUxh0-^TI9EMM=xr^|Z#hxR#T)iY@!_y;!V# zA_3~=gk*ptTyD(=I#)Rz825NQr`g~aVhGY6#zMpn4j<34M6;bRM;S$5s64`vaTegs zgL?rXa{fqa!u=SnL11CyYUY~9)#{Z)3WYM3n4CG}r`(Vf5{OKKTr1u>RZU z&N%@-%=i(jTVc~!X0as71&f+out`?H{Xp#iCg7SUHqJ zO*hV$I8L)ZO3XA)zux+#0*Mwgg~7I&>Q!8k1NvlClvzExfz8)E6S5EfWMqADjH6%Q zDv;K46W4RcKM%!qb&rqrC)LO#_0o+iTqb^wnh;|`67LU_=s;_5mEd+1ABIXC;6UOA zOKVn-0KZHStD9&UMfkZM_YF6#zAh0l4t_dnlJ+uwb|0=54xN4jZ8PhxzQP_LWP?Vi$`n9^UL0-Q}5x=I-#NgaEdI-#37<(@i|mtzypWD+N3k~U=awZRHypwDAt(x73T zE}=+{AcWOFnWV~E9zm7v$h>uj>jPx*DQ3ICBrq;v@Uvva*&}g8}NxGFlaz*@EUNoq?rCAxu?wV@z83gQ07SmG}Y2w;|hs z1^X!}W)M{&c^eYuAy!EP4jpz;jCyftLmD4dRuD`9p99_;Ul^*GkgN+@iQ6?6KUG#M8m{RQ%xsuV4r%_fM;d`TMzS8BrchSoA-wn!{5T*h z*tq0=sg#tuxRa&qZV4U)gN3sT-|Uz3$vB_593D?N_Z9|%fO`WkLxp`WR0g=lQIjaA z2jCFfV^k^@p?*s91z|Zz;E}6;3**XzkAh<*#q=C0<+~{*7sj?{$x84;B8G+64J(Lu zDkmKkm{THh_xGR%9A>JVujTogH&u_(%a&NMwH}v~n84Er zp^#7)pxh8zde*EZ*7&32`U(}19TlX6)jB8RkUcJQQYzU9!(pMyVcad&FT($@Tjilt z7bIM4%ZkesnV&d-Q$&jCBV3#Q2`9?4mV`A+j}^PDsNSyuKXtc)AH89Ww}e>#t*a^3uB`K z8}h#4bP2ayzN*ECHf1_wFWWbeL^XIUwXOEmp4cMO;=ln%zJJ-K|HFs5R;)Ot}k!Pg{C)D32kKO}eMZ@~cid}A7;Gqx(^Phhc3aTh68-9S~namnTJe2kcwygKf_!6-dHi2J{Oz zV0n}S;o8JUY*8*g4RG9I>FH$O34I68;hZ&OA5wh-DyKa@%#^n+IE6u#1SGoe4bg&7 z{Qw9Q%ls25sNUEx3&38y+rcFfjDd!aZLn?S#o>`i(B~>~MMv=sMhU$~iBm^O zn;)7#Degw8$j4|z$LI{k7`(@rQXyk3&0}l}V;py5T;$_CqT_r9;{wpWi_~$U=5djQ zak0B`3GxX^(Fth-Xtl+JeCmW^^MvxkgzDXdI{Bog=%lv6w&rd_?K-=|J{G*5diO#9qT`;pHC zh|UBW%mjPSgrv@dHP3`E%tYMHM3T=&i_XRx%zpKrO-P+hYMxD5m`%Hz%^(M5iGp$r zKzZJv{8Uh3GpKk0RC)(0C!ebnovSjKtMQ(zOPy`QowY;;F&nx%c8_>f&|t;_bpB8O zR{0E91$1?>^>a+Pi zZPTM=6XFHl^nq;pQEUZ>Z3P-`1^aCMYW@rdZ$&`1A}O|`#kOM&x4-&qC!}pBwQQ$= zx6>fo85BENVmmp8J9$1k`Dr_aEjz{Fol?k7ImK?J*lv~KZjH}wUD|F#%We~Rw*|5b zpxA2{+v_yk>-O2}P21~l*#m<2h9G+*6hFqqeoPqtnDY5CllBAD@?#$S0}T1GM6tgj zw!db$zu~jLmA1drvcCu3--qlUQXCwM9h@2-ockPHrX5_j9NdDT7U2O5S{8ZZLR8~CI2$Wr! z3LEDk0@i@l5^kb+2G>zoN0!`HX3)OO)jL)(fKY;?0PK3fc~)9-rk_qmWmoV$8HX59 zzFhuMA-xPl!q`HET8^GXM8#;1g{!=i^D#Nu`#y)X?R0tRRPCT8;1DN>thRZ#H!iWA zmb#;t`RXpJ0cj6MLBI5K`oNd6=BU>C7_93%*iPF;9O1dv75CN*)GL~2SKZs!w{0Co zjX3ONfP#a|u)b?**qi#kn-lK*{C*tXBBI6#PR-D*+})p99w zIR-TvRus%AT-z{hQuvGrw!;|40R~$11WwPFoWpWd-;r-Guu5M0c8u--sryyUZHJeQ zvHIWL3c)%l8GIN~<@bKLED5(hcnw*KrE~itnC=S@5}g^wBQgjrR6r+IBbkVwX(p2{>=fQ} zyE#f&j&MrVOUR_z%T8sag``;Vx z{62Ng`lbe}C`!KyE;667Et_=Nx3QlqCqh6y(C@LKS7-DOAcSChM#%_bx}uD>D@TZE zenxhGyjHPf`>HYnONvZ`FUmZ>u$R`m!loQeI}kaVKQsw~P#Tn@mGh0;AN3eBSW}QE zAwWVzGlbZ!-A|FyZ?&h7_S4~8ddmG1B_Yr7Chi_Zp7HW@g;lRg77YHKj2!#!+qQVy zs#hVksy??S83D4BTZ73y&=5LtwlZoEddg?@QHiCR# z6{!=fJx|;GNMU^di+&p2YCK3egMnCl&tD!zeP*8_|Z(|YizJ>+7dXDyf`mshorh018{mIt2Ean9t0JD@QDPm~IYA$J3cgdp>3b(q?eQu~TRJMU=lW^AdobZ9?PX`y^lQLoD{c8Hp65NIMasSZv^`Mm z)F-pBWBWxmL6T;z&6Q44CqXn%y}hzEH6K&&JOrXqt+1BC{K3Rv&s@4SDuKn9R0DO5 zcqMCq-oh=|%wWs#<73pf1vFa)8TANtcyOeLls8(bmU%r@IU=%wV>r~?VNtcuxz*ln zD47Ue6LGI8L>e{6U=B6q05&SnX)x+3sb}IPt6`5Q$*KZ(rH`Lswv|y4O~~Ws%5*wf zIQT4QWZnx(1NMF(xIVu5=&Zk0_bkx({Tpe+$NcbRt#7*DIaH)|qU94IWZ{?)^}jGQ zMy{|q$_uE#4Nwq$W7_k7~y zrS4WPv4aIweb%KGuVkk?o^9kt+MKSi$UveM4@`_dLVvC(Yi8Z;4k*I)SDHBtqd`G+ z`J4n>s3q^mnHwBe9WNeQ2dKqjI z71Vc%-E+dV#aA*&&=J~@TSjEq3QapDYy%U>c6(_#@)FVas9rR@my-h*C_8DKJcDro z!?Gq4`38UggyC*|lIQl!)xSb(sMCs%*+vjAH`g}7D;(4?s~+PMBb7Aq$r*fw1@A(K z=Q9G5)U<5})6u7m;A6^vAlCBM{F2_jmdo@FQL_Ne4!OtyleW1}apjQ}2}On6OIOLN zwaE2Ur3F=v0(q*84VipS6*PTX21pYohr_qy)km4-d^3_=Ay4)_lp!cvjB&)KVS}eO z=0ut=O6KFt1({yR(U?5Rt&Fjv58BK?5!RCm;^SnonXpDJ$`$^>D|5%U$+RBUHan## zgXrGF5We=oksCiHm7R6FWd}#K{JD`~d&yhh4EX6Cop_xTc8eI(*}>Z>fwZ%<>&U)o z8wf$3$~uV=`M~Ih0&__OgbfOJy@i;{i^w&7iuW>_uq2mRw1CF9_K!*CE^W`Ms#O$U zeA@-7nexZpBb3|luLR`TOO`Nol@gWg>fikSin@QLJme z^3FLeCiL4zrQtM7wGhNTnt`Mm$GnU-*$}7TRl!?VZ=MR`HgqrONe$QH?6irOq6KQ- zcfao*F9cw=otvgRztfvwKU`F7nnd_8;UFek@pAgHWpiwXA<~+4#HWiP3>K{T#vJyP zdg)%AWWh3}sbun)iv;E(?!=Cw&8otw_(O~+S~zdujgQv~)rGUZ#f0eq9K2-|*GwTm zg~reIuvH-Ok^IiH8W^bkAYnyOewB-EK9AN#>0nIMk#s!ae%K72jjiM4k`Cz z5EBVzS$yT>X^VS_N9@jB;LL2hFVgkeLkuJ z(srYw2xnG+9mLz=raX$XxY*|EYa>lNjaG=Rmyfw`vjuSvK#Df$3YiKy?9us!? z<)%{kcVc5P419XBEdJq8JeW$@S}y{Ri(u3K`(iSi`ZcoBE=ub4rxxZ<8*`zL=srmk z`=hV|J_Zm~E+NznhdAk^CYQU`dIi$nBbH;QV}p;_bh3(PI;9Cpi~BLj)Dn; zqzm&|MKBhvWQi&9G5Y1PfGm71_c#oBesGxtN|SXW^KF z0_6)xIyp*-rG)X}Vm^gD&X@WGK*6D7F|hf>I!_~C^+`dw+!v)ol`n+nv^4N_XAsJ- zH)wyB30c7x!4kr-{*yaqzwettm(Ac25Fc)Ip_^ropj)Pd_(WvHkEtJ1&{I$|Q#~{Z zLD$hAF6{nh!3_G4?LWSe{#&KcZ|xz1f9VtY<2sj5K;&1Skgy2!f!k*i(DPg=>3^3A z{STB0{W{QX0{}XH^$B%9^a%|-^a*tjJ@g6n{Ol9z{jE=E^jDwI?+3a+&vbuoq0d0C zbAKJ^P5`0TcC(WYO+wH!-JeZD6F-}TrWY4xe>Mq$S67zS*H)nix<60twtxJ9R)p*x z9YGgt_D)ZKoS*-=xY)nE+`qayxV}ETxjDMMJ-)j;xw|`s&d>c8=!(nvpXXr{WfTSv zMfvbxQ6c~lkA*G4FGn=bH0-pHD(c z8in%s3*+(cAj9(Va*GP{OG}DsP{lMGYr5d|h_1%L-sWLM3o0S>JCNgFJO2Bbq<_Nm z7(wNeqMUL4GZRB7G|+cv-2B?=%D;~Bumg|)Wq(9DiP1Aot0XZ`Y^;lCl)DK5{#YW^ zpWzR^Q9mLV0{rCa7xOq6m(5r9Ui%ubG=7+p&Xv#Tph z8yoBYBD>ELKm?Tj9*8)lTx6N5G>z_;4E~C>`sS=aMc;Q?-Zzib#KBPDN7J!dXZfml87P9TaNf0x^r{%Gy+pkfa zJaYpP&MV6babg_w2dgBUU2)>x#cvx9KETpdu2Kg&i5lI@)JUn$?fA5IKTI=;Kh|$> zT_swNCgg>GdDfjc`T6i0*G2Nc@jSB~ljHlTFDhvcw*to<7Idnlad`N7_X>0y{8qK! zoC_5%7KBFK{A?CgBwvFiDPWP~lw;JKT4r(c#kFg9;K4WEr}KU)TjFWNDF2-SdqW+ZBRjGzqJ5APGz;fcPR9oRt-u33KXV+UwRWZqk|JO^HYnP zGb?+uYX|ciN5ANBegmanzy0gMpI(85jidiI{qOmSENmYC*~$E!Ce%xQZvErywt0-| zv#^Qk`8Um@K5O%M?z?6;k7vFMxpsnBIcb_ZEuTIsnm#X@J+GWQ`_+*l0fTwqcK_ay zk=*hF9AQ1{iGz)ePkZ_R>=DHI_&YeFGlG}~$S4V5>iX`;XfK(?3`WO7ZYZK087T@^ zR3cBeU-f6GrYLnIXQm-p8YL!iT2?tD1-jPM`1eqbi~yY8>=&Koqlj{=`Hr}I75S4j zj{9qqofQSs^$-j^dgaQ(*(RSW-=Mlh^KH;yoZ0V)fD7K5dg$oN_s9_=r^!q2V;OEq z2r`z*VkOC=Te;fZhQD=uFkq1D!t4&fz$H_#N(8T`;z5XDC=k2;GVxWwr99+xaN$Yb z$cL#&mphIbco!1`ey&bi-MF30cVJ(UXNR6Bzpb~;U%v2bKfz25~ z?Sf8%cyQ;-DNdpcdNTHHx8&JSgmLj^IMj}fPomFo|Elgw=MK#bZIQ#TwmRrvH9t|? zvtCU^cq-FnKrITtvY^VmeDY?xO`m*{0v1jOLeMa*%c&KgI8nYt8^9GEhhkt>vEEl9 z#T^9CT@y+5qjvU*1> zoE1#{Fo3-5SsOBU3!T_Jx>P%eM511akl)(afG@d9_P6M>4~i7ii<5~I-}=Zi|Jh{B zyLgc8WA1)CjmxzXUz|IiiF@dD?w7WSC2$_}$kV(y=qKs_QZzz>aco!1=3y?J1s1{K zxCj-bxFJ|#xBS&6(w>O$;h5J5zC+8qjM~zA#R8CcI^=A;Sf+l?Kpa_mQ!sQ~={#^~ z7(3;3Wl{VwK@yyZN!z~mqfM9Xys1CER7$qkJf~sU)2Dnb_BGj6YYsWImE9Gc7i6n% zYC0ZZexUbzQw9$7dVpC?zjC~8G-Yz*2-|48XdZVh6wv06eHVPF%&>(^2#emZ=Plkt`36pCScSqEUe8n~*_mu9m3PiQN}0UwuA z78}6M^m0Lm7WYc9#N7~=+Y7g}AAJh>LK14I3pj+U{Bbiz@a7Ifo_V#}Ue5 z^{ZNH9i(vHU%f@8g$NeAn?i9TOUY2_@!Mj%ggG*HdDD)8c#Hk?IlIgr+SP$%>Q7PA z_=YNOii0UqhgnT_2BHn8o#`@%*&2cDp`IPAIR=M0s-H~mz6K2!N0;Sj-^kH2<{r*W zf0Ji**Z5h~nu1g7Vg8k}^*if+BX!he`Phd!y8G0~K=daC9`|!^5xHozNIgjkSX|fV za6!Py!;2#~IrK$3M-KB?EY zcrvzbDz|mAs%NThZ~?WDJK9k>J=Qk8ygjqJ|3})LS>5@g=l`(t|G!VpuI~SL>VNZ3 z1T}U3JE!++>mOgPwF6X#*|q(jHNAE)xppwNc7R+v=wCnVUO(zsKZ0)@wQd}@Y#cXl z95?-<=FQ{Q&EsF^J(P?M==iIDGVfvX!oo#I&3gnO?mx|YuKLhY{WkAm@`_?JKl<)O zO~HK+lJ-RbvocggxH+lHvWIdW;^|Fxl<}x|XgB%M`R_80mKY7BU&$`d8?X3>=RHmW z05>4_Jv+dR@NJAUQJsU>s9lVnG;tSpD#o&hJy=^qY?DZ|CEr*aa*0IPZ8QKb^k$_p zSnS1Efcd5Erd1^j{U}#T;O4o#%{q~YBR}!>n%%r@@WuOO-eRzkSL_Wuc<$F}$h)e? zp#sK?&N7QQUOM!|(vxrZ3A!o3uAo_*+lFj(g1xS+pPHY`^blCZo2)SvGI}<<9lwy; ztQBWK!`DS7qJii%W@S2B+@#lhRZ_G30RF`(eSe42k|b#ip1}owb{WEmCEf5auP{0UeT-5uj{rb zqHSci;D!l0=rzznSJKgpw@695)jL%rf-L5V=_N@?=6)yInK#pyXcL;Z#**KV9Hk(< zxTFTPO*y3~3-UU!{NrqOI@Z~1(}SwELqYe~RcrRkqc+QfwAbUS#|$D>T`&b>5%1RK zDy~L95sS?>i)a{E^(M^-edQ6QNn2P){aD-v>T17kSxFLw|FEqqFS6K+(4&i|WyZc; zzoqZV2caGs|A0Lisf39cFdN=NaUcD(*+G9r`@~+okOL^bRQ}Q=WiW}IZ>>W2T)Mvk zbHFdZDJeZrwAVt8E^(kUxyxb%YnedgLiYO28x?s@4>*Jx@wT5kj+znC9#laXHVSQq z-{Dt$tV@b0_EQpBDJHrz3&UVW=~bh>OTNPkOm zL-dxaRQEyb8U*mQitk|T?(yfnSnug-(S7gXILUF{5YNj2;h2yK$`CZ1LC*VknH3jE zPiQBG9+4)yJ@+*;Nq0MEi0-SB$~%#sb<% zOgkhs0(!-S8%!e$n1v5FJZ9nq`10Q)x(z}k^!hIOC@3eBM!=idrFMN)1Cq%y6k52o zcKtNElF2LJcjNIfIm}k)w3SE!!LS7uy#qX|?h{gIYLS5H7aV1oJ-NDO5_aa7N_4w6 z@)62xoGuIcRHJaxG-B2Ow}5*LPxat#k*vXXzA0ce<}2A(n|Yyj_h>sg+Z44ISeTd; z!GPbEDSsWABh;l69AAgJI2$`8Jaw&5{m`Km)N36#98@q~*0In!xHLGvG&;LJwYW3A zeDIh4%_}goeDL3-;j*b{#; zGQY&Y0-{zVxCC#vh5l_t;+_w#!UYXvC$0PYio|H48{F-h6Nv5`Bf^saJ6gKq+sI6% zPY6*e%T~|CDlnPsI81NI*KP7^akR=sjm%Y8_dEZYkvW$F0>cPn;|JA{RMrKTyXycEzI5l4FCmkM{D^A&(VTO#fgwfJXuz_Co;*dxeA^ddWpZP z6+$B;`3P+s4bJR4(~t>6$DqqvRL15@1P2H#s$^KG1;<*qluX2bW@G zfDZGgvk4_l|6&7MXEzgS7Td?$x+CgQSv2UshEIar?!#NGU%MvHRn9Vf&+hZ;i^J0L z;vsI;GV}eB(F>%W2r8x5-f}{9mtED>-E$4UioDLo6_gvUk4}d zx@cqq4j)ZgqJdy6Mu3E)?!Zna2f6Cin6#d)A;u6w17tiC1d#YxSc}tHv;R0_-So0V zuxpg55WIll`kH;7GUvHqr{Xh7Rew32`ynG5%PzU?C0C}(+;7)QzcL-u(cwE~W#g&t z+jPlGo$YTU*!z0=RsYcuNxTFMZI6j|eQWs^z~-ZUMF+J#U@e%6oz;8X-JqGg4O@c zsGibW=1@-eT|R}_NyS`vw0qcMfcb4^BI~qPzqhQcthhg=z6oGNqM>H)|6w2SM{?W$ zwHx>|Tpqj16Eib23kwVC9N5^{*xA`R zI5;>tIk~vFxVgD`czAeudHMMG`1$z-1Ox;H1%-r!goTAgL_|bIMXz1ECMG5(E-o%1 z@mFn||FM0*|5!)wKdnvC)dBDBYVYlCNAz^`^>+04b_^go2m4U!8tO->dw2k)o{_eH##yfh8+A>m|_e$IWhL%RGY%>`#zx6_kBQiTC1d4zz0+vz3;VczAyP# z?l8%_5nj?QIJ&)545k-Xp%FA+Y;)t+>1dW9Fp%|N;Th&d7QgQJ$n#$7%cw959=VJ| zk0`etOMldZ*K%|ndd7`eS8&wSeM++)<^l;UJ|W-CKJ=Hjo}+cy&3sml{&PQ8`8?p&Q*BA*|C_3LG$$Bj@$n z3iB1pQqB-cDi71L2H>URW+|0|gjQ7p73#?sr25unQpua&(~`zvsNAC=*MMde>n z`Bzi|-T%q45*3vsuR6j7`BZ2mt|T`EUo{2M3g#`BM$o=T&pRpp7L|~-0AC?v8)Mv#b=KczEEbJfUPRM=?mY@C#%fG_%udw`I z6PDjiReTtq&}aaRe|Bg24cQMsM+0DDpy6PlgMb)>AWUL>EK&k&G9qjW5*(^4KpHY! zx~sVKP1xxBODY?0X@z@A&?qZ}|S-mHGHlr~UU;5C2xA{kJk7-|Dn~uVscR(mpmcIWaml zIWaXoH9a#sGdn*!zc{zBJh!+yzqG!vys@;pwY;{ovc9vrvAedpyS}xzvAwsov%j-@ zu!pMA{-0K8hkqX}p#Zn{>%%0^;ZPb%3z6{ZwNAIE(# zS89B>h<@R;=#Vz#Ubs-uy@8nB8v3r`xvk%6 zc5C>L^rQ1Xa{R-W|NBq=BOm?G_WAeE>K}iHfA-w|%li+{ZU5PO{+%Y&OHi$U@4ty^ z{ifgl7X9??;M{iq+%{rvyK8=@dw!>99`$&0U~YYAZf#_46*<2?y09^}xHY-7JH4_y zx3;&qaj?35w7q|Fcyj*RzDy!I4$c_Gfq^oYOOkpJr@@bz&gP*<(p8ntgfn2d3 zeJ#UW-2U8Hc`f6$1aDB-ZA=1QD?s2|awr6YK$iFgHvI*sIyAYjwE+`MMIDz+$6C1H zTKWb`95$p#x#ZE5buwxNa2#7ni+-&&lTKXSb~}}Nc*M=&g06Xu*n!wOOAn_aO+zcj zu1=F7E#5BzDt!f*k&HJ7+(Jb!m2R#dgLx{Qqjt< zW@3|-kK}Zkbv#e0SyGD1mznCz*}PMFb0Oa&(x#QicfQ{^_stTT5?^WeqnwTS_fPJz zl#eP^uJRNK%83F1bMHI_9;uKwBlJ zS$2Qq*&V;$9!J@tuM~Zo3y-F*4`39ymV}XtBAj|%ocT)|BAv>2T8OWg6J@67a#8S#SM2>UW*37gf! zTSK9@^OSCVtYPTc83Y*c>7s$)0|A7I07D@#+67P{yeT!K5J;?g4OG?^t@%+gSMAPq;bAjd8}-wTEr{MdH!XGgKzI_ZuZHYEW%12R|1=Z@T=a8ozwl{F8oz@i?3uQgR}H=a zZ{W(kPQc?xcq+M&zakYAyGRtVuEFbg#cphcP~qN%$HE1YREAr^T3DO_G*7Dg7II6G z)tDI)AF7mXrLf~l)s`hZMpYbyu^HeOVHtwE4Z#)268;0Yp~MK4@-tKh$7L6u^y{qN z7sLC^jEbDvHmBWgJ&z-52Ne`p{USbGJct)fUc4i~OqyX8#!nWQakojb2YOQ=MGe>Q z)&mg5N6`Ivo)?A+@>;=Z_^Iroad5?Wo)?msI2g6mN{VMArco8B8O4Pi^0g~hHGYCQbdq%<$Z6Wtf#!N zsh!s*uybrq>bMF)kmq7#n)IIcX&x*v-@c-AvYOr@e{?h7vF)BV-ovN)vwQ{4BY2bB zt=DQd0t?>0T%W3Fbf`P&wlrKHA3k3@t_PI!ye}G`0MMMkR&EG9`|3Y~ece$EBuDGP zp!^c&!EtrYqS*)WFEeNy6);*tYwy$RFHv9^7$df|-p{tbANe$3Kn4m~fq{vQg#!YD zh;Z>q@d&Tt6H^e9QWIUFB_U@drD7wa;Uc5uCa2?}pyQ#U=cc9SW}@e0r)T4(XW^%3 z5oBN%VPKMAU;@)IDbO-Lpk;hY&7?!cWJt+uN6zFy#T3NI5X?#+!a;`;l$Ab!k;#jZ zjFkR%Q~pPcQI_>DnV^aWysxHFilg4oP)RDRr*v>fG1Wd8E~OrPcXvsPo@Y z7r3b=bW2Sbtak0Tnz)Rbl&snfxyLdJk7bqAZ6_SrcmxG{`oCW{d?{PH@+q}-e#2C`C2^qTRjEa zJ_y6TuXXrJb_Lw*3BHSnRP9gJ9>_KCFR|~df*|U=5lun8@K3#+(LFs0J$=bNgX!JF zS=}Q!-N@W-WM21ZLHB4;_h?D?Xn7B^su%gWccdOM(tsFg>>qCKA8zR%ZbOW8^p14) zj&%1RdwP()-N?RfWPdkuunRfTiJa;{&UYXeT9M0*$W<6}t#)*+8Mz8au5|pO&e4^h zwAwj}($CNQr;mTUr+eHt6TdgCnu+;r)Otp=jZ2NzI^%m^;=1oU*~O< ztq+BaM*n2q##E{o)QHM-wFIU7G;gE2&qRg&tHXy$G#EYOSBH;G%&!g~_=-;CpE-QQ z#{b!Q8y~Kkr{-L?A|Ixd)m)qAvVZiY^}8>4kHUvYHKQ20pg0>T#q3{&T*VK~Ta(2e zh^EOf23-%Nz7ZYjb=;@Pc!6f4JtDp^lYJwBn9|2tZKc2VqPOgV^4!v^{Sl6H`qeLX zpBE;tU;pHe9@J0p;>}AYD_lc8<}XbiA|bgm0J97Y>xNtM_;b&>(CLctj4m0As9leC znY7*U#7=ZQTa=64A-J)l;`Y}vIf*l{)Uc(j z46u_GBQ*H2;^_m7a>@A)vrEQg1VDJ9cU4@UP(ONkM(lgmS1$7|IT;?vQ@El~6wh2EwTc`;?4?iv3N48u^K95hm z+J_~Hzfnn+sb`^>Jp*3&NXD@%Qo4G|=z-TpAtXW{0Qq8QN;tm<44==W;Q&Cl1C5ZsBKtWeN)W^=ETdtV zQ6^)g_r)fG3XkHU)e9chy<22>u13wcPLiysiOW8=?li}-=@^VKbFy^Ye!a^q!P)Zu zvq-Li+C!vdP2||T0ft}slBqlyXqkwwN0pln8tYi&BQ@gK11V8iU3cekO?;|ClU+GP zm=}*&{Ae3~v`{z;ziwXVadGZzaZAnblk#=eGnv$we36>%)jBD=Jbj|;X-LwZqXwS` zI;Sr2R^5(kc&;i=ciOgtt{>yxqtD_8Lus@lq=ogItitR)qG>%CR)Ap4BVr=fJOH4)s0(jY{3c4`qT#d~t&U zjLRPdZ>cE2f;0>Dk^0eWe%K^97HReu*KPZR9_iB<6n3armn33f&ITCLvQUJoQsPW6 zH_-7F`928HlaYg0-TGj775f=^%nl4F|M?{rH+3@j!YbcR)9=}Uq!+6OOnN|L8zNtF zUw}NAp#N&OC|m=J&T;-u9)RQ>ZdFShc7GZMH|wL1O-M4X3VwxtxscZR3GVVxZXZ^C zGQ8w&qughP_Oim{CiGD(^#|;7@p2h@LW2x_>KrmwM(HnY!SW%VAXUx} zcM-UDbYxmWo{Gx)7DAyRj}=1KI7ze>+#^yNFy7c#G15=WO6MoadXrg;)2!uFh8f+i zA6)WNEYy7@zmq0o<`nHbwjY18+m&(ixc!I2haeNIgAQ>gJV?YvgJ6+^0G@-+FzFj1Vu_pwHHM1UMw zI!~68qJ+{wH8Lzod}u}Pn|ddI;LkMzpaqb}-slyBH zYfW`1YLHD*M@7)U+*cgeL)_65^Icw>X>)asexJ8p_0d_49&NoT#`p&b#Ufn#!W>$r z*X~H&d?&6NEcq-(-aK6sQXCW-o05^0R{S}(elDwhseWJuft(whT0zcjjxOx}rGM}W zj4f=BEo_Y~E{-ki{`cq~JhA_gZexpkf9G>it$*(lp<2Ib_g4)r?sYHi!>sAhHe-Y|&{mLP1`LJ>M0M!A$e9*OgFtDNhnpx;}4@EMJNvihJb&N#nKfPP!J%A84X`?Cp9_&>dHg#~;LL0OzJqc5>2 ztpM7~{z;Oz>O#S&g)2gtP)yiN7V2hZW%fP+Rl|~R9u~GB1l+KURu(+f_Z)ouV(O#o zrOQ{rau~)@G5_Vr+vDw(X@(1nO9ybm@aAN~d-(?iZy>YjRIP+JAp7>{dte;L%{o^5 z54g`AVhk`dm+0RT9Lj6i<6;*d`Y}2p>}wf$8&0kByTW)#o8ztAYHA{<4Q5cF%G^NGCzYRzg40Ck*?h5 z)!TdYit$bqgkdk;NA9yOhOr7SPeAoTPKnSOj5Wt27T8|VDK2Vqs(PBwRnq$acoDD| z@er05t}g65bB^a}SJI8hWOP%U2npL@F=#+5fP$oZJVtT`l0?wQ z+2_dP2TE06kBo}Xxu_3K+|Enl2d1HY!KVe7By6O z!Zl7;iEqxaU2-V}9}U5a%Gn6qWgnTb#KfrFC>glRx^<`Suv!&;q%qqv7c<-?y@t95 zWFv!F%@bGBIOV(5x?prvP<+b$icJyY)o{jV(Cer}s zF2)EWc149~+NoOZ`fQONLOwo`L227{vp(K!Y1Q5yF?^vnxO*qrcXS29@&=S5x(;f3 zil`1pwFyk$Ttr<>aW(3)se4=0ZEhMXC~M%7r-~qWNb_(S|K$X`GfU3-?gUfQi?u;6 z`B*#O5DMtVG|RJfk%$ZmLg!W@HVd(NV-_i9U*I6SWMPN1mg5Soj*8Tzzy5upWqW7B zibX?y#_YuE@VXa((DZ#SbZk=ow-Y{Mj9<-%5-iF+upzGwWcXB!XpO4z!c5FYqH(OV zzrM+Mv+upM3NRdA90f=cz740{c+~f-x}&*1ia^Q2Vth1^G(!r#4p-$C&v+9(rvxRI zu~@s)i~>G_i6A6Hc|S%coLr)W4^5C8{S}q(nMkZH8lhYch{S`^v37n{Ui2_3srz{a zw~P9+S7C}Iq)+2Y6Z%P@E1M={5kS#MS>&(6habPJa_1+jPYb{EuD>q+{C#ZZR$+Eo z(d|=jsumwP`aGckbG3PzddjxA&#!}Av-DMNy34~>NH`c*=XEX|L!rQa0c$d#itJq2 zoi(-~V^(iwO_Z;BqA&Q3+be1oNyQ-E*NoR1ShYplQ;x&>18Gii6_uHlYM^_csDp7w za`mA1%J+B+MA?|wP!?w>>mLo^LYxL-oa$=4s@8XulvQ07UPa1TY>V0f+Nks%# zPRGM$in``|+Z)IFK2HvH{ACULJ64wewCNB0E&tCvLjUQ>{10~c+4J)sPvhs-Ke%GQ zI)YH9pg(s6b*&w@e|H46te>DvK~3L%K`3hwN~p&z8z=CMlV4Xb6d2JkfJ=WifMcS# zU8n*4Bj9I736&46;!gv(=O21?h5y{E8~x9Eb+-X-Anto+f?yaJ9k^#)=Xk1P&`Knc z5WbQqstCvlEWfE+V6lqyrPGaHf$i4=ut-IXz!1PzQr;z1=KW)P{mFDq9YU+b_@RYP z^KAqCuP2RmX+#&zHGXlY&zF}vI5PO7Uz+x!1;k)n62a=QgV2AT;1@!$UU4-uJ9S%XIcYxdZy!q+*Vm_Lr_2G_FURhJeTCsIgmyD4bo# zBa+Pl!cqHdl)C>;>4PAzS-r+Ao6#C5hA6xC9_l-vEz7%>98<(4QuYtoKz3MiOs-FuG*cGXB z&{g1<<1Qg3vXpvNO(&*Z459 zPRTz{^m5>gV^pnwT-IvlLX572RcLMoDhjQWT)a|G+HMH48WUk0B=xRsNaM89GzCwp zl%xf}#k)T^N`Jxckn-VEmJ<3wta^w8ELA!CCKh~h(c&pJfUNlzvMIVc+c2HROF*xR z=s87(LK_r^6?QFAhyh@F!qaf*tIyIr?ICT;LG&rhx0ogn<<kGrtqCnB1r|L z9*KlbV=@9Rby=tSISo&3cT%Vm%l(pfafq-Js13$EJ;ITx3E5< zH~1=qt-z~ib_1;gSns8ihAB-ghD0`}N{Y6Vq!BlNjQ7OjoIR0yGHlI~{so`y@oKpG z*drFa<7ze$wk7qOynrQdYzcj6X9F-(7m4Fxm(rf-aJc5bn6;`t^H z9&t`yaUKCF0byxjv0K+9Z;M|?ty##)DLr{=_v9864>y z8bJ&r`-VsRM#lP);{&4;gJY9J<5NT9)58@gNZqhcQH)ov z+I#gPQp9wstEyzVH}Uo|_5JG7)q%{%IojRTW$Pn_`knFjYsxprD{a@Oy3g%arePlX z7f|3t9-W@gRr||`lzRy(wbh5~$f7IL{F;>xUA0XY{zTI`pHKH!26A+I>uS%B zcjh}29@N*lp3U#C7kqsoaoj$N#W@4PBsZFI1F~n%xZ{hhB)+^P8JRXXFSDQiKxvRU z>qTq7GV9Ig#X0A*tZp>s8Flw$#*eprWzJu)m2*Bobl7NKgG9@V*|9WuW&R`cF!KUb zmfUzDSb;rjAw*ehbs<#sChkI*ngN`_?{YG8G5opx>SBbh7uQl`(4q#FU%Gl$y6eO8 z)ukA#R<7k(yJ2I)7}F)L1j{QH@=FO2Z0?mrPjZu$B%dh7QBUKw_Nh3iuw-Xy*b|f0 zv`B;O)$~~VwbhJ7FYdL>)NqhVY9?rv(DW9Qh0WyGvv}d`IUB`YV(S~lt#Uk@rO6lEY2JB9$JwG&rTe`VGhRGfl?&mfTU9IR zIa}2m9&r^py~sY_!!1prU!irBICRL%Ho>`1FG_Thl6SYaiaY=W{HQx&n>MW@B}eqVdLqC zUV+!IW#k==nN@5ajURap>`&N@m{$ajlROu^aF%`KayYH@l<#E5lfvR;)`x@N5r@fY z=43v|l1>H(@?LtA$t&RbD*-P`y{UHCeKEp`)Ch~S)y#}3eldrNt+Vw)98RWamxz&y zj86=CCtGSwbLZPI9Dy%8%@mejcHtZaU-r7hx4-Py@4wpxQa#?b+v>3KlT4SPw*fjQ z;y47YEksyeoUTl--+zvj-N)DNm2Gm~I2f_KTz3*t8gshy#Lu;a30V`dqmBhhUv+t)*-`d?Zp+nlv{aa(>2~OE`|j;s zd^Y_od6t5DYTHYqi>ZFEE$8c~io(UkWAa%sh318qJAb2Y$YOZ`+?m05uVg6Pjmd+%x2^}SF{FimDB`my z@`EVP@L(&#WvKU{KFX=g6zy<1Db&sMAef1q3LOi)7ZTZ(%7VdloAedJLF<6!fODzE zJ6M%GnkSg*eN*d`>b*~eWDzvu!na_9#X*%_Y5e-lcV;&>?Mr6nn`AYmxlKqzV!zYI z8i*(%ZauHkML#(z%Y{Ioga@glzFeOloiz|4qRFT_OOz1Jdnno%$C*KUxWq+ETunfR z^s;8+b>}v3*ag{~;K!#eCSoB`xxh>?juOJ1`WtO5Q--1g;U#sDghkiD1=8{%03Re% z5^&;*b)aZt2T22VAH-f1!A+mo#&qs`0Ke=MZUjD5Ur>8#G^jWbJr-uZ@x1dKz2vd; z*+B-_RYkzVe)v3P31@=`pu-ES;}`4m59*re5%x9%Q*G<4V(w+&JGKXI*e7n?M3W8l6UNC zK?GFGzuLS)j_t|A9GW@YK|Poo*==T^-tc2Df*{XG{@z%BP&t5Mh1cYMr&hlSDu<-( zf>%ZnraDG1>KnrMis5X=&+;rktzGH0@+k;8M}1tmNSgaHqH|)2)F`w5;f5aHA~N-i zzxYx%*-QZRtgHN}W(LcWyY=4GUi9(jmHVh1lFq3^>ST;8Fc>&?Z~D;dxb8&#u0vV0 z>Nxjcy-CX^lfyl@Wi_+2u57rK3)ACX#^VNJ{(PIbd$XWtk&;IN`F8IWUI4V8Ud_~i zpp!x%q%kMWoMO8ePrByFYff4OgNgzSmFKC)Pg-!`ML`Z-^YrH@ZD7J;sJHS0GtDVn zlKeJ~9Att0`f0mNT~Sz?GCIvurw)yHYrhJ7bmCYIG)9F@9>V7%Gj*l13BH9F(IdG% zxYJlyS#_Jx`IVQY#wGa>Ujv9-lG^m0kXN%M?qZNaA=si|G#@$9B#Q18x$9?r(4f*( zj{C;)mZ$xZJ*Da5-K#1tX9J0ZhZ*vWYmZ{i1~ZRJQ{`2SpFBMqD$GB?xd}DGqOC@I zp$*|C&Ycm7C=$8$$pcra!N7_tg&>p>2k&FthF(r*x4mRDt_s5K`m^&fiXL0Tqlx8L zEsYKZKx=d|D?jzFM)FF9it3T>E&H1D$(^8z&&&6>oyX6oPI@Zpj=Q(tou5wwh$>-| zfdFTUw=-xuFm$B3|NBbxtF9+t43%BKY4(#er$A#5p-?IPNL}P1saVm4rhUN27}|wS zx$@!`^}W!P3G*)Ps*+x;&1!{nOmA3ukAsSaxvfF(TWmc+27k~q0o|)*;L84po`dx3 zUsqK>Ru5)qZ$D<8A=Bus9?lB_Wsf|Y-L=QUxoLIiH=^!YH+-Tk5-RmF223jaF#`VV ziH&IC?3Nj&WL=1mx4}Hm(tP&yseM9m*rhrq8*yu;=Rn_^Kjz{f^Fi%eOuS!S&CRPhmJTD!d}z;78aH4qrma+;tq0lW z35=~Us1Nv$Bj$4!LVTjyzP=M^^2R&Ow0)weOO%&5 z?Sbx-<8kcLGcG-n^P`%}uR9;>zbq%5CG+TxkmKl&In~?0NF+RElgB*}c3?fW?=VE~ zG8E`P=0iA0;Tb(f8oFK*yZL$ZL&Yg3ao$l^y5+IFqi($wyZmzIiJiRsdv-^6&PaFe zO80C-ydp*;vNltYm`aYF)CMC?lOa9_>@BkczPT>CaiYV9F22Q%_3aa)8z&y}Cwv=L z_;-PxaR8#}IqMLxC+-Om0VV$pAIK%b^8uyjqZ1-EAAC!|hs#1jYbzV0M6-6N7iy>0 zNaC%HDmswUwtdDv6bj;|aKxtMZwKHsiGO%gNvLAv$wJ|MfrNNp?zn&>fxC=eaCUr) z2q4e$Tbo4BuuK&)1-IT-*8wpnT1vlUO2JDs+6i*^_e-E$Mx#tYJl+$(LQ4N)3I9?f zyu3uKY_I|BgOXsHHLal(dS+w~v=B#UoWXAP3h00bG~0WC zf#_B{*6kc#?1_PI;5M$AAJ~b}8N_jsk=QdxZ+dxj3qX*Ol~-F~pz#hGBbZQD<6|Gt z#(D*t6@Y#V=-{vLkzohh&hdlBij8R`v`GW?o@NLM91h}-h8h7Em4WO~pd~T-IHgZp zIJPAi-4^VPj_YWo5j4XIT_tm~<8&K0q{u{EpiPN{vIv^92!@JC8m3f+N;`34h`ggU zc$akoN~i$jg8dbu!j!7Ql&Rj7Sb;!RF4deenWA{LMsgVg5H@k#8D_KYVK1^%A_IjW zovOg*CpPyKJn5Z+ta14H3~lhZ%UtIF zYu|u9FdUtK8a*I~enT>*^pqnF7`C`?i;a_U=AaY@=jsvu11=1Oxl;`b z*ncuLluDKSaJ|w7vodPH2t8UcDEi_wa#%6QAqv}EGs?dmJFqG$81bo9+(C`fivS*> zcj9THK-i}l?4}Vgy9d#vdAf4U zga~L-8SU72$OT}VM721Z;jQLqbK5quLxe`su9f-nMMaA)`${-u z&PnC-hGh1&+zK4Z3{LZdI)io$@X}$p!GZ+`)VOgwStrp2XP}f^FiP3gj@g;jPt)de z=aM~UPO~Q!Bj$v27~2ZBtHP`Na^@e!5t~K~a{JV;IT%OA!NF!t*=f$FK1j#hD>Z3H zPI(wqKJLC3>5nthsquVUeTpC%5j+|A>4hPaXMC|nZZjai1?p0n^XE%zNds?qhZi%k zn?ajr7Uc-s5Y>W1=Yn&svL|@{<YNv_s%NWZxh$xaTiK@1apLY2mOoqbaHq+sQSx~pf$nTr zvH7g1)v%tyyS{a}qRJT`C(Eow)hiGg(IS z<2|Io4ME^e##lbcvI13rR?|V8s(=FyybLIa*94C((;^1~y8GGU9T*+Y0mz)#+)LB? z5C@GJfKG4KY824Q$cT^b5{tafh+hY|5^ZwM_V z0IysZzzjtL$ae+iwn-_KcYp3XZ0w@F!S75>fk$lUsnm_C|Ni#nMR)veQkCY5k+kmn zofg$R&1&P8nSwoQPk>BTplE!nOhnJUr)aDYK#I2`MxI}&M{JECtOM{!1<@Oy_g$P7h&k&n$MnI!^qFk()7K79llF6>>c6{E`h_&z zj_MYpR{cK!T|lD0F}-dxO$p&F&g7hK9Uua_*2E1kYaQUrvM_eDhSa#=3I0u2BHH@@Us zyUe-Az0k*Q{oUXlFK|8AR@OYs}LqKmr}m2O&TL zxQq)6Fl+iv0`7_mBESY9Fuf$e0kHsPDIfxdfYb}nWxF*3B5;&&HUfpv2Nd3A9}og^ z)@~vd0!pj^C~yk#j0^wp0rCtBe((ViM*je5_`$_xE|ybJ;(u*m_3-NlS{Xk8xO9o|@;<<4y0T;An@f!^1Aw0J#c zddvq$D4FUKa3rsBFxWEb@Fx9w#3ay9>{;PoBc|HOq;Lfn1%3b%< z?wsfGJbSA>+mt-exbOfQr2w|T3V!a~tK0`3WC(0<#n9*qvY-IPOACd7MKbQ&uPgy3 zuyC+2*hnqaRQ=$G0$wC>)fm*nmi-R}nifQoQZe$mFv-B+&V#(wM}-BW*| z>|WmNK?~-327*XSyJX(p?KabskiAZ83Q@}mT`hZTPy!n@0vw>kOg!5VodF-7Zu?CF zC$P{24g!+=)dLRHxGe$}ux_fH=amj;qMUAJOmJ*K)F;3JwvYfM;F~ypqHs z{>mT_0_vs!Ay5Ih;Oelx@wlMt?Z)fvrvY`G*#j5;?Akr-Ro>mlzVa*|((rWN&K~p6 zuF~5k?X#;??7i3T4aqg_z3~0*?B?$)wgC6s)9GdbY=G1o@Q)Gz=@gF&Hm+_FPy!2Q z=;;d zCV&FCtnnQG;~vj$AisJUAOaBZlq4VJV?E{im-5BV@{YgOA$?1JA^9?2`56lBD{b>* zu8P*qaFl@N+TL!g5X7C(yz1uW?Pm12fb>@v%2JFABJlK4pKcLw0#$GC@|E@JW(Zsl zXI@VNU=RCZ&u+DV*lduzcK(l1gbOOZ09pQ90CHdIuB^mmjKm6elziX!%>DOTyyUUB zzKcIjjsN)U-^_6R@_GUPmOuYIiTO1z=IdSUI=}Pt+6kerZU6ym zQlv{zm8&7MV@R_$80ZQZWz1A?p{xo_=01TZ23ErksI+{MM}!2(vST)BF67#6Hp zv1HAfRZDU&%DVnt#++I6X3m{GfBps?TJ&hrrA?nkom%y3)~#K?_WVuSY}&PLON(|} z_io;~dH)6;T=;O}#f=|Fo?Q8I=FOcyhaO$}bn4ZuU&o$Z`*z{cynhD|Ue|c?<;Ulu zOj$ByS&bLNLY%lTss~cLN+KA^(<@v3`>z^^piahO$f1WKnh2qa60k`GRA>Pq1&=@y z2_ce9!i5AwXi2J%6D**GmJd+)M<$wN!bvBddOGEV6e>ul0TWDs5f=|oIE5AjQiy7* zs&Kg~t5;C?AjAbQkg9I=&h{0Nf7lTKdcBtQLRAy5PWdRoN< z0}?8L1O;%x2!)hDa0!(U3`yt#HZVj01rs{(i49>z$mydIEU0M&Lz=<`gu1$tme!g= z_z|HHPCx+!1K5zNkP+Gqft8wsMS+c75jq5247=pFUw{7vn5+gw5W!o64<;CafX6~$ zgc`eAKm=&tIrg_p# zGv(AgPt~i1J@*#=EA>?Sda|XH0A-a`5>CWjxM`=KhB|7gr+#RG4i3RO>#RH2cj^Tq zAZvjz+p0KCj5ThvV>mxPxox-KhC6P#OG~+CyYI$3Z@u^CyKlc;z8TY;$;)NuUe=RE zR8lb(S}a>k@kEkU^OIzfPMD@TbImvBymQY#ce?D0*WCEAH`B{yZq-+3y>-`NtNU-+ zXQ#b(+i%A`cSQpieDF?p1~u`YOEq;B`i2gR7Fa2vgcDb*1wDG{r>DMp>!Ch#l{D2v zJ8?JHrtEd`$0xu1)nnH^ef8I8zkT=Luax)jeEDG9@Vp4Sp{FNH$Vaw z(0~U#VD|pDmzeHx%wyp*Uj!vMK?>3deelCz1~s@r4t8*T@)M8m3THp|V8e`OL}MD&xJEX%(T#6}V;to;M>^Kg zj(5ak9`(3KKK9X%e*|P81vy7xkTHy3+y*zcs6{Mdv5HkZVk9LwNlI4Il9$9}CN;Uq z2r|)=OLSrsMLESsHu8##1V{A z!~XF|ad6U@$3$i_mAOo2Hq)8Ugv}?V8A?$?k(5?6B`Q@3Mlq66m)`_uIK??ma+cGa z=S(9neVIs93X_=7gl9bEIZt}l)1LRl=W3++NorQ}9M=?wFtzDLZnhGg2SsQ?6}nJ{ zHWZNR)CMAfxkYzAGM^X4Xht=WX-;*zQ=azJr^pOx6a8sTDq^#d16^e|T^UoRHr1(5g(^a4`pcR&@}@t< zYF4$nRjzi`t9bH9Sj9S4vihSRXGLp2^s!cZ*rOhAeJefaF^_r3Lmul`hZ5Tn{z`D9 zA{gEPY+waDSi%<8u!lu#Vimhs#x~ZmkA-YDqB>d1R#uHuWoIyLYSFKD*0Y}lZD>V{ z(Xy6StZ7B-TJ_OZxW;v^b-im|lepI>_Vurj#cghNyIbD&*0+`gZg885*@-f8vydEZ za+SMW<~G;46*R4BQF~U^vbMEyrK?@>s#m`HRhZueZ+OK!Uh$BTm9x(UaDW9oU;-ETG|`nVYO8BqxMEkkvYjmy`>G8C zheoZc#c+l-ykQP^*ux(Nafn4cViK3w#3x2^idDQ~7H`-b`rU6At9r%$t5(>?H^y;} zb<9%)mv*`fcI$QL`e0B>I29D$ac2C{VkS4)$xnuIl%+gnDtq|Fz4WDw`%B~hCfUnh z26LFjT*)4n^~Y>wuxnwvUA-C^$(KYh50_kJI@j6GcgAy`?R@1h#<;lPIBqe=JZM4} z+R%qqU75*x=GCUT9uAIek!yQoO#0)9dd767HN9z0?-|Cw{BxiYJ!(>y+SI2;jiSfO z=(YyA!9$L8n~ye&J#1nZd#!xVa;W`_TvRvP+0TY{ zm{omR1*6&3Y9_L*&oSXih7~jEI7Ya|EpB7<`ZAUVSv~ZDZr1)7+uiSmcf4DSY(LL< zm|c!`zV*Ftev5Y6VP&74vK>;tjSP@uUjK; zj&~fx%@9V&MLu$ple`%ouQRyZp&AS2>Om$)&MvG6=udKt)2MmjXU8kAR^#PdMK1W+-LDrbEHUk7{G#XfdaSpCF+ z7Voh?ok(Rn65le1d)(zdcVp5#;5Z*Rgn91fgD0Fc^)Pz4i!N?tBqJHcApE$K!EQT+ z74XE!wYRBmcFK2n0bnmXmB&7Tl6OAjUw866(94cGd;Wd%nAeBO+0OE})7|y2hkfjI zXm^{py0tl9v)+47>7V;OG?q@rxR=53bfiP9`Y66S{Gp6-XPohMQbsX|F^s5BJvEib zzJ|qK<;{;6^h}<|H?3bKr*lGoSzay;}>nWKgSR z;5E$f2V9Fff2aqE>JO)Cn6MdjWXdFmoP)KDU$m?@Rj)TZiY_U)TF{D&6G8BdnV~1@ZxyyUXja)nS z>&O)R$dTmAuJpu(}$WwhSnUuMpV3lR1LQ5NoWKInhZ*1Shr0448rWV z@Po*$OUiAe$i=)!4r_+5J3}pm%qKIw@hdxyL_3e<%<8nx>+C7dTrhdO!O=X+dvwWv zz{z9y$9|Z^WT*$R8c%}c&D6L!gj~jBya&LfKK2|;-{iP?ILgdhF{S)4rc5!$^ zyHK>u(9_(|dT`4obpE^qT)eP)IEjuk}ATm;cvqhE6MGO@m4c*WLlsI*$N%TwyLyS7NJO)T~ zje|r;WN=XyRmfqGy3#09GZjBm6iycNPY(l76pPagJHIs)LFP=wIbFq;%hOhM)mI&# z7?eSiJkp%&)BW?qW&qFd9M5G;&&%Kkbs$ujl+9FgK%ZQO4?VXqrNS%?jZ8H*!<^AC zBu*PO&gRrGRv15Q)iZjFs4gn5imFpsCD(E_SCa9}&rCD9x>aq<)m;TZ4iz`_L`HQ8 zJi*J$6Xi?9{DG0@qb! z#dFozjpf*;vp;xTSL{ksYI@g}G!1{a*KjKa}5_0($p&l_E_xMS z`&e2H*>){B($rOx4Lb2WI%ODEaTCneh(bj)g}9a5xt&{K07{|sS7z37CoZ^cS+?b^%5+{|6pf156Ky*73&OLyJD zvh_dyClw8SSX-o9MrUmea4UvnpxfA$U0tIGP2AgHQ$w(8S`0(j20%=(Q(TfO+_THw zql5r2j52lzUSS|TtG(EBL`Th)-s#oYbluKZ6WhJ}Q_}50(*?lPg*c^)M4m*3Wsu$T zjon?`kunpZCZeTdO3eVmviMa(`47uIS32$kamgZ@8wqUNdVYXFS zzF}n6Fwq2a{fN&eAee$ z&SWfZ=VONF8v{6cCTJM7XI|dtgjQ$+3o4NsDJd$cqdF-s>a#EkhEoWJg4XDb=4cT+ z=t;)sg%;_NX0C>AqK77`q6#R9-Xc}1Xl=OYjPB@}rs+1}&4OM}L|k zmCmM#=B7T2>6%9Bqz31khUT2+>8FP3tn%s61nP*+BBFljqgLvz=ITFY>WYf$uoml_ znraIjs(-TTQ^M+s*6OZy>$lG3$wg&^9_zZc>wGF}B|Yn)Hma*`X^LiRjE3vMCTwUu z%BthKD;KAYU!djYQZk-%+~Bpys~C^>C6IY{>5(W(I)LndTdXw z>Y}1-F0yQk#_Y|8?bxom&i?Fi7VXl;?c64!(~fMkR_&p#?3ae=*Ou+#Hg031?TQ9% zoDON-cJAjEBHrHX$p&uL7Vfq_?(Ej?awH?qR&LuKSLhb+@irgn9xA?GX_mI`tS0X5 zcJKGDvgGcw;tjTukr z{tgFinsDr9@-2sNC+Bb}2lFu33@Z0+BlquAy79|CaV}@`>^6r5PzCRv?`L)=F}L$O zC-b1DqSZ$8ELZY22lUu}^Ej_<+rINd2lG7VYd&{r01xy>FYZB?bBi@}M7MMxS9DTh z^fY(vHHY+1higeM^u)gOQit(O-}CD3^Cb6lPW7cJjXUP51Lw@AYKg=wGLFQXlqb7w=+MbzN6;Ww&;kX7;%bZD{9q=azOG z=X46c_Hkc!IG=QFXYK^=_H`HQZ_o8`*K%@~_htUh_Fdj~cE|U{cK0)1bw{7~f2VhI zAN3Z__kyqMOt*3@Z|!CXh6O-&fQNWf7I@`uaho#ui;rrA$Mq{$_?KpQhmZJ>_v!^m zg>zrIRmJ#}-)W6kbqQbihJSdGm-%KUd6TzyoK|<0*ZFB?`3QG;kB9l07kVas^OFDU zn{Voz-}$9y<(@zCpReeTkNKgedcrJvo2PTDV*0H&XQ$_PsP8kWullhs*sDMKtal`? zS9@vpdX7J-qze0>C;Pd_PqU|Zw5PGP*ZZa)a?}=aGe=N@0(y|A`@(lfyPt2QxA?th z{7P>7z=!)V5_`j^{0c<;WMjF;*L*^L{Qi!QdbzLs(5Jl1uQ!z6{L`o6&VT!tCw$R& zeUu~plb>XzNB!F8+P?RD8t-q&XZ@*v{ofC^tDkh)$9dZ~egek*=}!2y{`}Sl{^v*T znm769W$xp*e$7q(^EPw0=b~_*eCP-NVH5sBN8>BH{`2qJ?62zO|LY0={_uzYjg)@! z$5`~Y|BhAv2WS88cYn~2|NjRFeF6s(ENJi`LWAZOq-xeo8$^iPxKRXW5nQ;88vk+Z z=GLPhphAZdEo$^A(xL2@ zGHvRVUAw5~rc$M9&YU=L8Z}mYxgeR zyn6TYjk~bn!>|)8Ufh~7DdNP67c*|`_%YvS-t-ZTmLvy?-659?Y$4Y0bii6EAN3IP&Dmmosnf{CUmJoj-@J zI$EpY)2UUnHkZ5LK| z5W4sxj4{eMV_y;qMqzvYTZypMmz@IZ9@98ftE`$eJ*BT6!s_nMQeKL|JNin4zJHIx4B9ntJL{ zh(d*?b!w*AW|ON?swu6t+Is7EoI>PjpIf5(E3m-|J1nt*s;VfXjk?MvtlZ6tE40x{ zJ1tzgYQrl=z81SJx7~XCEx60YGA_C0nhOiMu)MM^yX?B+3M;IvGVdy>pmMLh_uhL7 zzx|%FKn16~Gcf+a1si-Y!U-$9FvATy{4m53OFS{f6x&3q3T^MH_uI(n%}5G}BEx z{WR23OFcE!MUw!73^QxJHP>Bx{qWt)9A+G(r3Hrs8x-S*X4gFQFhb=!S6 z-XDqmHs5{w{Wsu&3qCmEJI9?j;)yH1IOC@7T{z^COFlW}m0KS5;f-s)Ip>{w?&0H? zi#|H(rJH^_)tP_3I_s^w{`zI1qdq(BwcCC>w{yR;w<32p`#T$S8(Ygb_ zJoC*v5B|IG$V)#x_0^ZI{PWpszdiR~M{hm&;fp{1+Sqr0KKkja|LgbUyZ=7?@eghO z`t{p?KmJ6vFF*hN`wu?-@+ZIn60m^v+28*XsK5ozE`SDnAOs^QLCYYJffl?V1_|fD z339N59{iwBDwx3$lCXql+aL&2sKOPpkR&2BAq-yPh`}Hhv58K6BJ^yg#3@qIgiM4Y7PF{D#2vAUUi@PCuDHc9lCg|2 z>mnG_sK(-n(Tr|Hhj;Cv59P_BhJ^pEqcKjnCCx=Hq60(qn?2#V>SvUfW z{-PA5cqAkvDalDvvXYj(BqlSd$xU*ylb-w}C_^dAQAV;9qac9K26@O;va*%;Nu(kJ z*MU)xvX-{IB`$NR%U$v^l%wbX&s6EkVG^^L$bn@n|3=GRGP9Y^d?qxb3Cd9f6Klr2 zCN{I#9AqYwZv>DgIKwHSDvEuj{@C`QN0P`O34qaOXJNhV5B zv}LrUCOs)GHww~~vUH^)9jVz+D$|+L6q71#DNb|h&zHiKY&HEUP-l8mof5VFsMq9a zPpKBvr83o`Lp3T?qiRT`GA$S%IY&>Ms@1L1^Qlt(Dp=h})umb0BUptgSJSH2XnHlQ zZhh+$$EvilcI2!hT`OMms>`+_g$6P}!y_K?k46yoBZciqBV0n*6wm;!j(se*T9_)hlK*8%n+!g$6c210(|L2*MUNu_7_8X$LzJ)HXr|jfE_1V|yyeB8{^Du&h8e ztJ~e$RG%D8if2(E*uXwww4^;QX*rTykf7Ehs6B%XWGmh28j7|@vn_7n$=mI6_mP|> zN)68N2uOsMBgJ*ZU=xd6P;_u6YGfRQn$YL9g}s9hTW`ox4-_H{jN}IPzFdu zA`;{!?mvv1UgRz}xeiwCVdwi=nA9K!|9An0Gpykab9log@#}>Ai3~XW zTbjrK1|xnkhW{ah8hm&LG3am%W{?sWYq%sbxG{`J{Er;px5&WDZ_)OPR(h7gk)C)m zlu6NK|5ACB00v48#6aKz8`!+gg|CATyIl5uM8Yv?>2s$xU}kRuyPmN2pCM7B{fJv2j($s7mPp{GpPqE*g$QNj9@1; zXn_c9+Y*0l;{z*r^+#gx0d|DMAODa?A7EgT613waHYmX0y+O5CLW2~b!XEanw?ASo zbCJmWHlyA z3Q~^nt#eU|gJXDZ#hL4flU>)Js5sgsd2yZ4;0BS9{si0$ym4dyT3SHgF>-5HJo6 zSfCSOq=3>W@kbkikCH&wgbkp-e%?eMG}3p|^r`uC_xFh$DPXr zwmWgpYusix+XvD|jO9JDa?Fb;@YFvEEBv2Iq{2rS9`+sJ?r0y-a9=Wk(GG^?Ae)8le-mLlT-qJ)A>0utWac z8)Lyl^L<1;go6_n;W-4JN5}&LmZA4}o!~HFEJ@P?YG64aVa@r&J6NCwN+1VzAeDU} zPS5}!_MspCAs_~#AogKTghL7h86paxM~pxVAmWCxKp%iaq5Z_ueMAYkfFov@3!uOi zqQnHKzzdXsE_j4JaKQboL_Ih_CTds;EPxrl;@l|U�jyMN=tgU?;#~9M+sJ)L{gQ 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ɩpP5hUnc1}pACus;1Gu#h3(uM6}T4V54y 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≪IBJS^2fF3)Q#3|Ep_0)lF#cp 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OUVLEV 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

  • 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 So(@-X4IxSzk1HNoy!me{ZyRp_ literal 0 HcmV?d00001 diff --git a/public/assets/courses/unboxed/solana-explorer-verified-nft.png b/public/assets/courses/unboxed/solana-explorer-verified-nft.png new file mode 100644 index 0000000000000000000000000000000000000000..0a74f6de88d4b8cef02b204bd9b72fc0177efbd4 GIT binary patch literal 77985 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�% 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

    |!lpM(9`*h~L;_byHcs=6~gYdPZg@Ed)wBk4Jov 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Ǚ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

    w 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 z%0D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 z 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 Date: Wed, 2 Oct 2024 13:53:22 +0530 Subject: [PATCH 085/206] Native onchain development - Updated program security lesson (#452) * Updated contents and code snippets as per guidelines * Updated content * Resolved comments as per suggestions * Updated word highlight fix --- .../program-security.md | 476 +++++++++--------- 1 file changed, 246 insertions(+), 230 deletions(-) diff --git a/content/courses/native-onchain-development/program-security.md b/content/courses/native-onchain-development/program-security.md index 1bbba4de8..61872f316 100644 --- a/content/courses/native-onchain-development/program-security.md +++ b/content/courses/native-onchain-development/program-security.md @@ -1,119 +1,125 @@ --- title: Create a Basic Program, Part 3 - Basic Security and Validation objectives: - - Explain the importance of "thinking like an attacker" - - Understand basic security practices - - Perform owner checks - - Perform signer checks - - Validate accounts passed into the program - - Perform basic data validation -description: "How to implement account checks and validate instruction data." + - Understand why "thinking like an attacker" is essential in securing Solana + programs. + - Learn and implement core security practices to protect your program. + - Perform owner and signer checks to verify account ownership and transaction + authenticity. + - Validate the accounts passed into your program to ensure they are what you + expect. + - Conduct basic data validation to prevent invalid or malicious input from + compromising your program. +description: + "Learn how to secure your Solana program with ownership, signer, and account + validation checks." --- ## Summary -- **Thinking like an attacker** means asking "How do I break this?" -- Perform **owner checks** to ensure that the provided account is owned by the - public key you expect, e.g. ensuring that an account you expect to be a PDA is - owned by `program_id` -- Perform **signer checks** to ensure that any account modification has been - signed by the right party or parties -- **Account validation** entails ensuring that provided accounts are the - accounts you expect them to be, e.g. deriving PDAs with the expected seeds to - make sure the address matches the provided account -- **Data validation** entails ensuring that any provided data meets the criteria - required by the program +- **Thinking like an attacker** is about shifting your mindset to proactively + identify potential security gaps by asking, "How do I break this?" +- **Owner checks** ensure that an account is controlled by the expected public + key, such as verifying that a PDA (Program Derived Address) is owned by the + program. +- **Signer checks** confirm that the right parties have signed the transaction, + allowing for safe modifications to accounts. +- **Account validation** is used to ensure that the accounts passed into your + program match your expectations, like checking the correctness of a PDA's + derivation. +- **Data validation** verifies that the instruction data provided to your + program adheres to specific rules or constraints, ensuring it doesn't lead to + unintended behavior. ## Lesson -In the last two lessons we worked through building a Movie Review program -together. The end result is pretty cool! It's exciting to get something working -in a new development environment. - -Proper program development, however, doesn't end at "get it working." It's -important to think through the possible failure points in your code to mitigate -them. Failure points are where undesirable behavior in your code could -potentially occur. Whether the undesirable behavior happens due to users -interacting with your program in unexpected ways or bad actors intentionally -trying to exploit your program, anticipating failure points is essential to -secure program development. +In the previous lessons +[deserialize instruction data](/content/courses/native-onchain-development/deserialize-instruction-data.md) +and +[program state management](/content/courses/native-onchain-development/program-state-management.md), +we built a Movie Review program, and while getting it to function was exciting, +secure development doesn't stop at "just working." It's critical to understand +potential failure points and take proactive steps to secure your program against +both accidental misuse and intentional exploitation. Remember, **you have no control over the transactions that will be sent to your program once it's deployed**. You can only control how your program handles them. While this lesson is far from a comprehensive overview of program security, we'll cover some of the basic pitfalls to look out for. -### Think like an attacker - -[Neodyme](https://workshop.neodyme.io/) gave a presentation at Breakpoint 2021 -entitled "Think Like An Attacker: Bringing Smart Contracts to Their Break(ing) -Point." If there's one thing you take away from this lesson, it's that you -should think like an attacker. - -In this lesson, of course, we cannot cover everything that could possibly go -wrong with your programs. Ultimately, every program will have different security -risks associated with it. While understanding common pitfalls is _essential_ to -engineering good programs, it is _insufficient_ for deploying secure ones. To -have the broadest security coverage possible, you have to approach your code -with the right mindset. +### Think Like an Attacker -As Neodyme mentioned in their presentation, the right mindset requires moving -from the question "Is this broken?" to "How do I break this?" This is the first -and most essential step in understanding what your code _actually does_ as -opposed to what you wrote it to do. +A fundamental principle in secure programming is adopting an "attacker's +mindset." This means considering every possible angle someone might use to break +or exploit your program. -#### All programs can be broken +In their presentation at Breakpoint 2021, +[Neodyme](https://workshop.neodyme.io/) emphasized that secure program +development isn't just about identifying when something is broken; it's about +exploring how it can be broken. By asking, "How do I break this?" you shift from +simply testing expected functionality to uncovering potential weaknesses in the +implementation itself. -It's not a question of "if." +All programs, regardless of complexity, can be exploited. The goal isn't to +achieve absolute security (which is impossible) but to make it as difficult as +possible for malicious actors to exploit weaknesses. By adopting this mindset, +you're better prepared to identify and close gaps in your program's security. -Rather, it's a question of "how much effort and dedication would it take." +#### All Programs Can Be Broken -Our job as developers is to close as many holes as possible and increase the -effort and dedication required to break our code. For example, in the Movie -Review program we built together over the last two lessons, we wrote code to -create new accounts to store movie reviews. If we take a closer look at the -code, however, we'll notice how the program also facilitates a lot of -unintentional behavior we could easily catch by asking "How do I break this?" -We'll dig into some of these problems and how to fix them in this lesson, but -remember that memorizing a few pitfalls isn't sufficient. It's up to you to -change your mindset toward security. +Every program has vulnerabilities. The question isn't whether it can be broken, +but how much effort it takes. As developers, our goal is to close as many +security gaps as possible and increase the effort required to break our code. +For example, while our Movie Review program creates accounts to store reviews, +there may be unintentional behaviors that could be caught by thinking like an +attacker. In this lesson, we'll explore these issues and how to address them. ### Error handling Before we dive into some of the common security pitfalls and how to avoid them, -it's important to know how to use errors in your program. While your code can -handle some issues gracefully, other issues will require that your program stop -execution and return a program error. +it's important to know how to use errors in your program. Security issues in a +Solana program often requires terminating the execution with a meaningful error. +Not all errors are catastrophic, but some should result in stopping the program +and returning an appropriate error code to prevent further processing. -#### How to create errors +#### Creating Custom Errors -While the `solana_program` crate provides a `ProgramError` enum with a list of -generic errors we can use, it will often be useful to create your own. Your -custom errors will be able to provide more context and detail while you're -debugging your code. +Solana's +[`solana_program`](https://docs.rs/solana-program/latest/solana_program/) crate +provides a generic +[`ProgramError`](https://docs.rs/solana-program/latest/solana_program/program_error/enum.ProgramError.html) +enum for error handling. However, custom errors allow you to provide more +detailed, context-specific information that helps during debugging and testing. We can define our own errors by creating an enum type listing the errors we want to use. For example, the `NoteError` contains variants `Forbidden` and `InvalidLength`. The enum is made into a Rust `Error` type by using the `derive` -attribute macro to implement the `Error` trait from the `thiserror` library. -Each error type also has its own `#[error("...")]` notation. This lets you -provide an error message for each particular error type. +attribute macro to implement the `Error` trait from the +[`thiserror`](https://docs.rs/thiserror/latest/thiserror/) library. Each error +type also has its own `#[error("...")]` notation. This lets you provide an error +message for each particular error type. + +Here's an example of how you can define custom errors in your program: ```rust -use solana_program::{program_error::ProgramError}; +use solana_program::program_error::ProgramError; use thiserror::Error; -#[derive(Error)] +#[derive(Error, Debug)] pub enum NoteError { - #[error("Wrong note owner")] + #[error("Unauthorized access - You don't own this note.")] Forbidden, - #[error("Text is too long")] + #[error("Invalid note length - The text exceeds the allowed limit.")] InvalidLength, } ``` -#### How to return errors +In this example, we create custom errors for unauthorized access and invalid +data input (such as note length). Defining custom errors gives us greater +flexibility when debugging or explaining what went wrong during execution. + +#### Returning Errors The compiler expects errors returned by the program to be of type `ProgramError` from the `solana_program` crate. That means we won't be able to return our @@ -138,54 +144,66 @@ if pda != *note_pda.key { } ``` -### Basic security checks +This ensures the program gracefully handles errors and provides meaningful +feedback when things go wrong. -While these won't comprehensively secure your program, there are a few security -checks you can keep in mind to fill in some of the larger gaps in your code: +### Basic Security Checks -- Ownership checks - used to verify that an account is owned by the program -- Signer checks - used to verify that an account has signed a transaction -- General Account Validation - used to verify that an account is the expected - account -- Data Validation - used to verify the inputs provided by a user +To ensure your Solana program is resilient against common vulnerabilities, you +should incorporate key security checks. These are critical for detecting invalid +accounts or unauthorized transactions and preventing undesired behavior. #### Ownership checks -An ownership check verifies that an account is owned by the expected public key. -Let's use the note-taking app example that we've referenced in previous lessons. -In this app, users can create, update, and delete notes that are stored by the -program in PDA accounts. - -When a user invokes the `update` instruction, they also provide a `pda_account`. -We presume the provided `pda_account` is for the particular note they want to -update, but the user can input any instruction data they want. They could even -potentially send data which matches the data format of a note account but was -not also created by the note-taking program. This security vulnerability is one -potential way to introduce malicious code. +An ownership check verifies that an account is owned by the expected program. +For instance, if your program relies on PDAs (Program Derived Addresses), you +want to ensure that those PDAs are controlled by your program and not by an +external party. + +Let's use the note-taking app example that we've referenced in the +[deserialize instruction data](/content/courses/native-onchain-development/deserialize-instruction-data.md) +and +[program state management](/content/courses/native-onchain-development/program-state-management.md) +lessons. In this app, users can create, update, and delete notes that are stored +by the program in PDA accounts. + +When a user invokes the `update` instruction handler, they also provide a +`pda_account`. We presume the provided `pda_account` is for the particular note +they want to update, but the user can input any instruction data they want. They +could even potentially send data that matches the data format of a note account +but was not also created by the note-taking program. This security vulnerability +is one potential way to introduce malicious code. The simplest way to avoid this problem is to always check that the owner of an account is the public key you expect it to be. In this case, we expect the note account to be a PDA account owned by the program itself. When this is not the case, we can report it as an error accordingly. +Here's how you can perform an ownership check to verify that an account is owned +by the program: + ```rust if note_pda.owner != program_id { return Err(ProgramError::InvalidNoteAccount); } ``` -As a side note, using PDAs whenever possible is more secure than trusting -externally-owned accounts, even if they are owned by the transaction signer. The -only accounts that the program has complete control over are PDA accounts, -making them the most secure. +In this example, we check if the `note_pda` is owned by the program itself +(denoted by `program_id`). Ownership checks like these prevent unauthorized +entities from tampering with critical accounts. + + + +PDAs are often considered to be trusted stores of a program's state. Ensuring +the correct program owns the PDAs is a fundamental way to prevent malicious +behavior. -#### Signer checks +#### Signer Checks -A signer check simply verifies that the right parties have signed a transaction. -In the note-taking app, for example, we would want to verify that the note -creator signed the transaction before we process the `update` instruction. -Otherwise, anyone can update another user's notes by simply passing in the -user's public key as the initializer. +Signer checks confirm that a transaction has been signed by the correct parties. +In the note-taking app, for example, we want to verify that only the note +creator can update the note. Without this check, anyone could attempt to modify +another user's note by passing in their public key. ```rust if !initializer.is_signer { @@ -194,39 +212,48 @@ if !initializer.is_signer { } ``` -#### General account validation +By verifying that the initializer has signed the transaction, we ensure that +only the legitimate owner of the account can perform actions on it. -In addition to checking the signers and owners of accounts, it's important to -ensure that the provided accounts are what your code expects them to be. For -example, you would want to validate that a provided PDA account's address can be -derived with the expected seeds. This ensures that it is the account you expect -it to be. +#### Account Validation + +Account validation checks that the accounts passed into the program are correct +and valid. This is often done by deriving the expected account using known seeds +(for PDAs) and comparing it to the passed account. -In the note-taking app example, that would mean ensuring that you can derive a -matching PDA using the note creator's public key and the ID as seeds (that's -what we're assuming was used when creating the note). That way a user couldn't -accidentally pass in a PDA account for the wrong note or, more importantly, that -the user isn't passing in a PDA account that represents somebody else's note -entirely. +For instance, in the note-taking app, you can derive the expected PDA using the +creator's public key and note ID, and then validate that it matches the provided +account: ```rust -let (pda, bump_seed) = Pubkey::find_program_address(&[note_creator.key.as_ref(), id.as_bytes().as_ref(),], program_id); +let (expected_pda, bump_seed) = Pubkey::find_program_address( + &[ + note_creator.key.as_ref(), + id.as_bytes().as_ref(), + ], + program_id +); -if pda != *note_pda.key { +if expected_pda != *note_pda.key { msg!("Invalid seeds for PDA"); return Err(ProgramError::InvalidArgument) } ``` -### Data validation +This check prevents a user from accidentally (or maliciously) passing the wrong +PDA or one that belongs to someone else. By validating the PDA's derivation, you +ensure the program is acting on the correct account. -Similar to validating accounts, you should also validate any data provided by -the client. +### Data Validation -For example, you may have a game program where a user can allocate character -attribute points to various categories. You may have a maximum limit in each -category of 100, in which case you would want to verify that the existing -allocation of points plus the new allocation doesn't exceed the maximum. +Data validation ensures that the input provided to your program meets the +expected criteria. This is crucial for avoiding incorrect or malicious data that +could cause the program to behave unpredictably. + +For example, let's say your program allows users to allocate points to a +character's attributes, but each attribute has a maximum allowed value. Before +making any updates, you should check that the new allocation does not exceed the +defined limit: ```rust if character.agility + new_agility > 100 { @@ -235,8 +262,8 @@ if character.agility + new_agility > 100 { } ``` -Or, the character may have an allowance of attribute points they can allocate -and you want to make sure they don't exceed that allowance. +Similarly, you should check that the user is not exceeding their allowed number +of points: ```rust if attribute_allowance < new_agility { @@ -245,10 +272,9 @@ if attribute_allowance < new_agility { } ``` -Without these checks, program behavior would differ from what you expect. In -some cases, however, it's more than just an issue of undefined behavior. -Sometimes failure to validate data can result in security loopholes that are -financially devastating. +Without these validations, the program could end up in an undefined state or be +exploited by malicious actors, potentially causing financial loss or +inconsistent behavior. For example, imagine that the character referenced in these examples is an NFT. Further, imagine that the program allows the NFT to be staked to earn token @@ -260,45 +286,50 @@ stakers. #### Integer overflow and underflow -Rust integers have fixed sizes. This means they can only support a specific -range of numbers. An arithmetic operation that results in a higher or lower -value than what is supported by the range will cause the resulting value to wrap -around. For example, a `u8` only supports numbers 0-255, so the result of -addition that would be 256 would actually be 0, 257 would be 1, etc. +One of the common pitfalls when working with integers in Rust (and in Solana +programs) is handling integer overflow and underflow. Rust integers have fixed +sizes and can only hold values within a certain range. When a value exceeds that +range, it wraps around, leading to unexpected results. -This is always important to keep in mind, but especially so when dealing with -any code that represents true value, such as depositing and withdrawing tokens. +For example, with a `u8` (which holds values between 0 and 255), adding 1 to 255 +results in a value of 0 (overflow). To avoid this, you should use checked math +functions like +[`checked_add()`](https://doc.rust-lang.org/std/primitive.u8.html#method.checked_add) +and +[`checked_sub()`](https://doc.rust-lang.org/std/primitive.u8.html#method.checked_sub): To avoid integer overflow and underflow, either: 1. Have logic in place that ensures overflow or underflow _cannot_ happen or -2. Use checked math like `checked_add` instead of `+` +2. Use checked math like `checked_add()` instead of `+` + ```rust let first_int: u8 = 5; let second_int: u8 = 255; - let sum = first_int.checked_add(second_int); + let sum = first_int.checked_add(second_int) + .ok_or(ProgramError::ArithmeticOverflow)?; ``` ## Lab -Let's practice together with the Movie Review program we've worked on in -previous lessons. No worries if you're just jumping into this lesson without -having done the previous lesson - it should be possible to follow along either -way. +In this lab, we will build upon the Movie Review program that allows users to +store movie reviews in PDA accounts. If you haven't completed the previous +lessons +[deserialize instruction data](/content/courses/native-onchain-development/deserialize-instruction-data.md) +and +[program state management](/content/courses/native-onchain-development/program-state-management.md), +don't worry—this guide is self-contained. -As a refresher, the Movie Review program lets users store movie reviews in PDA -accounts. Last lesson, we finished implementing the basic functionality of -adding a movie review. Now, we'll add some security checks to the functionality -we've already created and add the ability to update a movie review in a secure -manner. - -Just as before, we'll be using [Solana Playground](https://beta.solpg.io/) to -write, build, and deploy our code. +The Movie Review program lets users add and update reviews in PDA accounts. In +previous lessons, we implemented basic functionality for adding reviews. Now, +we'll add security checks and implement an update feature in a secure manner. +We'll use [Solana Playground](https://beta.solpg.io/) to write, build, and +deploy our program. ### 1. Get the starter code To begin, you can find -[the movie review starter code](https://beta.solpg.io/62b552f3f6273245aca4f5c9). +[the movie review starter code](https://beta.solpg.io/62b552f3f6273245aca4f5c9). If you've been following along with the Movie Review labs, you'll notice that we've refactored our program. @@ -317,12 +348,12 @@ defining custom errors. The complete file structure is as follows: - **state.rs -** serialize and deserialize state - **error.rs -** custom program errors -In addition to some changes to file structure, we've updated a small amount of -code that will let this lab be more focused on security without having you write -unnecessary boiler plate. +In addition to some changes to the file structure, we've updated a small amount +of code that will let this lab be more focused on security without having you +write unnecessary boilerplate. Since we'll be allowing updates to movie reviews, we also changed `account_len` -in the `add_movie_review` function (now in `processor.rs`). Instead of +in the `add_movie_review()` function (now in `processor.rs`). Instead of calculating the size of the review and setting the account length to only as large as it needs to be, we're simply going to allocate 1000 bytes to each review account. This way, we don't have to worry about reallocating size or @@ -356,8 +387,7 @@ that checks the `is_initialized` field on the `MovieAccountState` struct. `MovieAccountState` has a known size and provides for some compiler optimizations. -```rust -// inside state.rs +```rust filename="state.rs" impl Sealed for MovieAccountState {} impl IsInitialized for MovieAccountState { @@ -367,27 +397,21 @@ impl IsInitialized for MovieAccountState { } ``` -Before moving on, make sure you have a solid grasp on the current state of the +Before moving on, make sure you have a solid grasp of the current state of the program. Look through the code and spend some time thinking through any spots that are confusing to you. It may be helpful to compare the starter code to the [solution code from the previous lesson](https://beta.solpg.io/62b23597f6273245aca4f5b4). ### 2. Custom Errors -Let's begin by writing our custom program errors. We'll need errors that we can -use in the following situations: - -- The update instruction has been invoked on an account that hasn't been - initialized yet -- The provided PDA doesn't match the expected or derived PDA -- The input data is larger than the program allows -- The rating provided does not fall in the 1-5 range +We'll define custom errors to handle cases like uninitialized accounts, invalid +PDA matches, exceeding data limits, and invalid ratings (ratings must be between +1 and 5). These errors will be added to the `error.rs` file: The starter code includes an empty `error.rs` file. Open that file and add errors for each of the above cases. -```rust -// inside error.rs +```rust filename="error.rs" use solana_program::{program_error::ProgramError}; use thiserror::Error; @@ -414,19 +438,16 @@ impl From for ProgramError { } ``` -Note that in addition to adding the error cases, we also added the -implementation that lets us convert our error into a `ProgramError` type as -needed. +Note that in addition to adding the error cases, we also added an implementation +that lets us convert our error into a `ProgramError` type as needed. -Before moving on, let's bring `ReviewError` into scope in the `processor.rs`. We -will be using these errors shortly when we add our security checks. +After adding the errors, import `ReviewError` in `processor.rs` to use them. -```rust -// inside processor.rs +```rust filename="processor.rs" use crate::error::ReviewError; ``` -### 3. Add security checks to `add_movie_review` +### 3. Add Security Checks to add_movie_review Now that we have errors to use, let's implement some security checks to our `add_movie_review` function. @@ -438,7 +459,7 @@ also a signer on the transaction. This ensures that you can't submit movie reviews impersonating somebody else. We'll put this check right after iterating through the accounts. -```rust +```rust filename="processor.rs" let account_info_iter = &mut accounts.iter(); let initializer = next_account_info(account_info_iter)?; @@ -455,11 +476,11 @@ if !initializer.is_signer { Next, let's make sure the `pda_account` passed in by the user is the `pda` we expect. Recall we derived the `pda` for a movie review using the `initializer` -and `title` as seeds. Within our instruction we'll derive the `pda` again and +and `title` as seeds. Within our instruction, we'll derive the `pda` again and then check if it matches the `pda_account`. If the addresses do not match, we'll return our custom `InvalidPDA` error. -```rust +```rust filename="processor.rs" // Derive PDA and check that it matches client let (pda, _bump_seed) = Pubkey::find_program_address(&[initializer.key.as_ref(), account_data.title.as_bytes().as_ref(),], program_id); @@ -477,7 +498,7 @@ We'll start by making sure `rating` falls within the 1 to 5 scale. If the rating provided by the user outside of this range, we'll return our custom `InvalidRating` error. -```rust +```rust filename="processor.rs" if rating > 5 || rating < 1 { msg!("Rating cannot be higher than 5"); return Err(ReviewError::InvalidRating.into()) @@ -488,7 +509,7 @@ Next, let's check that the content of the review does not exceed the 1000 bytes we've allocated for the account. If the size exceeds 1000 bytes, we'll return our custom `InvalidDataLength` error. -```rust +```rust filename="processor.rs" let total_len: usize = 1 + 1 + (4 + title.len()) + (4 + description.len()); if total_len > 1000 { msg!("Data length is larger than 1000 bytes"); @@ -496,20 +517,20 @@ if total_len > 1000 { } ``` -Lastly, let's checking if the account has already been initialized by calling -the `is_initialized` function we implemented for our `MovieAccountState`. If the +Lastly, let's check if the account has already been initialized by calling the +`is_initialized` function we implemented for our `MovieAccountState`. If the account already exists, then we will return an error. -```rust +```rust filename="processor.rs" if account_data.is_initialized() { msg!("Account already initialized"); return Err(ProgramError::AccountAlreadyInitialized); } ``` -All together, the `add_movie_review` function should look something like this: +Altogether, the `add_movie_review()` function should look something like this: -```rust +```rust filename="processor.rs" pub fn add_movie_review( program_id: &Pubkey, accounts: &[AccountInfo], @@ -592,17 +613,12 @@ pub fn add_movie_review( } ``` -### 4. Support movie review updates in `MovieInstruction` - -Now that `add_movie_review` is more secure, let's turn our attention to -supporting the ability to update a movie review. +### 4. Support Movie Review Updates in MovieInstruction -Let's begin by updating `instruction.rs`. We'll start by adding an -`UpdateMovieReview` variant to `MovieInstruction` that includes embedded data -for the new title, rating, and description. +Next, we'll modify `instruction.rs` to add support for updating movie reviews. +We'll introduce a new `UpdateMovieReview()` variant in `MovieInstruction`: -```rust -// inside instruction.rs +```rust filename="instruction.rs" pub enum MovieInstruction { AddMovieReview { title: String, @@ -618,13 +634,12 @@ pub enum MovieInstruction { ``` The payload struct can stay the same since aside from the variant type, the -instruction data is the same as what we used for `AddMovieReview`. +instruction data is the same as what we used for `AddMovieReview()`. -Lastly, in the `unpack` function we need to add `UpdateMovieReview` to the match -statement. +We'll also update the `unpack()` function to handle `UpdateMovieReview()`. -```rust -// inside instruction.rs +```rust filename="instruction.rs" +// Inside instruction.rs impl MovieInstruction { pub fn unpack(input: &[u8]) -> Result { let (&variant, rest) = input.split_first().ok_or(ProgramError::InvalidInstructionData)?; @@ -644,38 +659,38 @@ impl MovieInstruction { } ``` -### 5. Define `update_movie_review` function +### 5. Define update_movie_review Function Now that we can unpack our `instruction_data` and determine which instruction of -the program to run, we can add `UpdateMovieReview` to the match statement in -the `process_instruction` function in the `processor.rs` file. +the program to run, we can add `UpdateMovieReview()` to the match statement in +the `process_instruction()` function in the `processor.rs` file. -```rust -// inside processor.rs +```rust filename="processor.rs" +// Inside processor.rs pub fn process_instruction( program_id: &Pubkey, accounts: &[AccountInfo], instruction_data: &[u8] ) -> ProgramResult { - // unpack instruction data + // Unpack instruction data let instruction = MovieInstruction::unpack(instruction_data)?; match instruction { MovieInstruction::AddMovieReview { title, rating, description } => { add_movie_review(program_id, accounts, title, rating, description) }, - // add UpdateMovieReview to match against our new data structure + // Add UpdateMovieReview to match against our new data structure MovieInstruction::UpdateMovieReview { title, rating, description } => { - // make call to update function that we'll define next + // Make call to update function that we'll define next update_movie_review(program_id, accounts, title, rating, description) } } } ``` -Next, we can define the new `update_movie_review` function. The definition +Next, we can define the new `update_movie_review()` function. The definition should have the same parameters as the definition of `add_movie_review`. -```rust +```rust filename="processor.rs" pub fn update_movie_review( program_id: &Pubkey, accounts: &[AccountInfo], @@ -687,16 +702,16 @@ pub fn update_movie_review( } ``` -### 6. Implement `update_movie_review` function +### 6. Implement update_movie_review Function All that's left now is to fill in the logic for updating a movie review. Only let's make it secure from the start. -Just like the `add_movie_review` function, let's start by iterating through the -accounts. The only accounts we'll need are the first two: `initializer` and +Just like the `add_movie_review()` function, let's start by iterating through +the accounts. The only accounts we'll need are the first two: `initializer` and `pda_account`. -```rust +```rust filename="processor.rs" pub fn update_movie_review( program_id: &Pubkey, accounts: &[AccountInfo], @@ -722,7 +737,7 @@ Before we continue, let's implement some basic security checks. We'll start with an ownership check on for `pda_account` to verify that it is owned by our program. If it isn't, we'll return an `InvalidOwner` error. -```rust +```rust filename="processor.rs" if pda_account.owner != program_id { return Err(ProgramError::InvalidOwner) } @@ -736,7 +751,7 @@ data for a movie review, we want to ensure that the original `initializer` of the review has approved the changes by signing the transaction. If the `initializer` did not sign the transaction, we'll return an error. -```rust +```rust filename="processor.rs" if !initializer.is_signer { msg!("Missing required signature"); return Err(ProgramError::MissingRequiredSignature) @@ -748,9 +763,9 @@ if !initializer.is_signer { Next, let's check that the `pda_account` passed in by the user is the PDA we expect by deriving the PDA using `initializer` and `title` as seeds. If the addresses do not match, we'll return our custom `InvalidPDA` error. We'll -implement this the same way we did in the `add_movie_review` function. +implement this the same way we did in the `add_movie_review()` function. -```rust +```rust filename="processor.rs" // Derive PDA and check that it matches client let (pda, _bump_seed) = Pubkey::find_program_address(&[initializer.key.as_ref(), account_data.title.as_bytes().as_ref(),], program_id); @@ -760,13 +775,13 @@ if pda != *pda_account.key { } ``` -#### Unpack `pda_account` and perform data validation +#### Unpack pda_account and Perform Data Validation Now that our code ensures we can trust the passed in accounts, let's unpack the `pda_account` and perform some data validation. We'll start by unpacking `pda_account` and assigning it to a mutable variable `account_data`. -```rust +```rust filename="processor.rs" msg!("unpacking state account"); let mut account_data = try_from_slice_unchecked::(&pda_account.data.borrow()).unwrap(); msg!("borrowed account data"); @@ -785,13 +800,13 @@ if !account_data.is_initialized() { ``` Next, we need to validate the `rating`, `title`, and `description` data just -like in the `add_movie_review` function. We want to limit the `rating` to a +like in the `add_movie_review()` function. We want to limit the `rating` to a scale of 1 to 5 and limit the overall size of the review to be fewer than 1000 -bytes. If the rating provided by the user outside of this range, then we'll +bytes. If the rating provided by the user is outside of this range, then we'll return our custom `InvalidRating` error. If the review is too long, then we'll return our custom `InvalidDataLength` error. -```rust +```rust filename="processor.rs" if rating > 5 || rating < 1 { msg!("Rating cannot be higher than 5"); return Err(ReviewError::InvalidRating.into()) @@ -810,7 +825,7 @@ Now that we've implemented all of the security checks, we can finally update the movie review account by updating `account_data` and re-serializing it. At that point, we can return `Ok` from our program. -```rust +```rust filename="processor.rs" account_data.rating = rating; account_data.description = description; @@ -819,11 +834,11 @@ account_data.serialize(&mut &mut pda_account.data.borrow_mut()[..])?; Ok(()) ``` -All together, the `update_movie_review` function should look something like the -code snippet below. We've included some additional logging for clarity in +All together, the `update_movie_review()` function should look something like +the code snippet below. We've included some additional logging for clarity in debugging. -```rust +```rust filename="processor.rs" pub fn update_movie_review( program_id: &Pubkey, accounts: &[AccountInfo], @@ -900,7 +915,7 @@ pub fn update_movie_review( We're ready to build and upgrade our program! You can test your program by submitting a transaction with the right instruction data. For that, feel free to use this -[frontend](https://github.com/Unboxed-Software/solana-movie-frontend/tree/solution-update-reviews). +[frontend](https://github.com/solana-developers/movie-frontend/tree/solution-update-reviews). Remember, to make sure you're testing the right program you'll need to replace `MOVIE_REVIEW_PROGRAM_ID` with your program ID in `Form.tsx` and `MovieCoordinator.ts`. @@ -914,7 +929,7 @@ continuing. Now it's your turn to build something independently by building on top of the Student Intro program that you've used in previous lessons. If you haven't been -following along or haven't saved your code from before, feel free to use +following along or haven't saved your code before, feel free to use [this starter code](https://beta.solpg.io/62b11ce4f6273245aca4f5b2). The Student Intro program is a Solana Program that lets students introduce @@ -933,6 +948,7 @@ Note that your code may look slightly different than the solution code depending on the checks you implement and the errors you write. + Push your code to GitHub and [tell us what you thought of this lesson](https://form.typeform.com/to/IPH0UGz7#answers-lesson=3dfb98cc-7ba9-463d-8065-7bdb1c841d43)! From a73581f0dcdaf87745c1766e9369e14f56f03d55 Mon Sep 17 00:00:00 2001 From: Chandra Pratama <117942738+darkvallen@users.noreply.github.com> Date: Wed, 2 Oct 2024 15:28:55 +0700 Subject: [PATCH 086/206] Update Lookup Tables (LUTs) course (#476) * Update the Address Lookup Tables (LUTs) course to comply with the Solana contributing guide. - Simplified explanations of versioned transactions and Address Lookup Tables (LUTs). - Updated code examples to align with best practices. - Ensured the documentation followed the guidelines from the Solana contributing guide. - Enhance readability * Update lookup-tables.md - Update Course Codes * Update code snippets - Integrated the `@solana/web3.js `library's modern practices and utilized `@solana-developer/solana-helpers` where appropriate, including transaction confirmation and generating Solana Explorer links. - Enhanced explanation to increase readability * Update lookup-tables.md Fix some review * Update lookup-tables.md Updates Based on the Latest Review: - Revised certain sections for clarity - Added a callout - Fixed typos - Removed the usage of starter code and custom helpers in the lab section, and updated to create files from scratch - Import only the necessary function from `solana/web3.js` * Update lookup-tables.md - Add filenames --- .../program-optimization/lookup-tables.md | 935 ++++++++++-------- 1 file changed, 497 insertions(+), 438 deletions(-) diff --git a/content/courses/program-optimization/lookup-tables.md b/content/courses/program-optimization/lookup-tables.md index fac7b6682..6576eb3d5 100644 --- a/content/courses/program-optimization/lookup-tables.md +++ b/content/courses/program-optimization/lookup-tables.md @@ -10,36 +10,33 @@ description: "Use large amounts of accounts by using lookup tables." ## Summary -- **Versioned Transactions** refers to a way to support both legacy versions and - newer versions of transaction formats. The original transaction format is - "legacy" and new transaction versions start at version 0. Versioned - transactions were implemented to support the use of Address Lookup Tables - (also called lookup tables or LUTs). -- **Address Lookup Tables** are accounts used to store addresses of other - accounts, which can then be referenced in versioned transactions using a 1 - byte index instead of the full 32 bytes per address. This enables the creation - of more complex transactions than what was possible prior to the introduction - of LUTs. +- **Versioned Transactions** in Solana allows support for both legacy and newer + transaction formats. The original format is referred to as "legacy," while new + formats begin at version 0. Versioned transactions were introduced to + accommodate the use of Address Lookup Tables (LUTs). +- **Address Lookup Tables** are special accounts that store the addresses of + other accounts. In versioned transactions, these addresses can be referenced + by a 1-byte index instead of the full 32-byte address. This optimization + enables more complex transactions than previously possible. ## Lesson By design, Solana transactions are limited to 1232 bytes. Transactions exceeding -this size will fail. While this enables a number of network optimizations, it -can also limit the types of atomic operations that can be performed on the -network. +this limit will fail, which restricts the size of atomic operations that can be +performed. While this limit allows for optimizations at the network level, it +imposes restrictions on transaction complexity. -To help get around the transaction size limitation, Solana released a new -transaction format that allows support for multiple versions of transaction -formats. At the time of writing, Solana supports two transaction versions: +To address transaction size limitations, Solana introduced a new transaction +format supporting multiple versions. Currently, two transaction versions are +supported: -1. `legacy` - the original transaction format -2. `0` - the newest transaction format that includes support for Address Lookup - Tables +1. `legacy` - The original transaction format +2. `0` - The latest format, which supports Address Lookup Tables. -Versioned transactions don't require any modifications to existing Solana -programs, but any client-side code created prior to the release of versioned -transactions should be updated. In this lesson, we'll cover the basics of -versioned transactions and how to use them, including: +Existing Solana programs do not require changes to support versioned +transactions. However, client-side code created prior to their introduction +should be updated. In this lesson, we'll cover the basics of versioned +transactions and how to use them, including: - Creating versioned transactions - Creating and managing lookup tables @@ -47,125 +44,114 @@ versioned transactions and how to use them, including: ### Versioned Transactions -One of the items taking up the most space in Solana transactions is the -inclusion of full account addresses. At 32 bytes each, 39 accounts will render a -transaction too large. That's not even accounting for instruction data. In -practice, most transactions will be too large with around 20 accounts. +In Solana transactions, one of the largest space consumers is account addresses, +which are 32 bytes each. For transactions with 39 accounts, the size limit is +exceeded even before accounting for instruction data. Typically, transactions +become too large with around 20 accounts. -Solana released versioned transactions to support multiple transaction formats. -Alongside the release of versioned transactions, Solana released version 0 of -transactions to support Address Lookup Tables. Lookup tables are separate -accounts that store account addresses and then allow them to be referenced in a -transaction using a 1 byte index. This significantly decreases the size of a -transaction since each included account now only needs to use 1 byte instead of -32 bytes. +Versioned transactions address this issue by introducing Address Lookup Tables, +which allow addresses to be stored separately and referenced via a 1-byte index. +This greatly reduces transaction size by minimizing the space needed for account +addresses. -Even if you don't need to use lookup tables, you'll need to know how to support -versioned transactions in your client-side code. Fortunately, everything you -need to work with versioned transactions and lookup tables is included in the -`@solana/web3.js` library. +Even if Address Lookup Tables are not required for your use case, understanding +versioned transactions is crucial for maintaining compatibility with the latest +Solana features. The `@solana/web3.js` library provides all necessary tools to +work with versioned transactions and lookup tables. #### Create versioned transactions -To create a versioned transaction, you simply create a `TransactionMessage` with +To create a versioned transaction, you first create a `TransactionMessage` with the following parameters: - `payerKey` - the public key of the account that will pay for the transaction - `recentBlockhash` - a recent blockhash from the network -- `instructions` - the instructions to include in the transaction +- `instructions` - the instructions to be executed in the transaction. -You then transform this message object into a version `0` transaction using the -`compileToV0Message()` method. +Once the message object is created, you can convert it into a version `0` +transaction using the `compileToV0Message()` method. ```typescript import * as web3 from "@solana/web3.js"; // Example transfer instruction -const transferInstruction = [ - web3.SystemProgram.transfer({ - fromPubkey: payer.publicKey, // Public key of account that will send the funds - toPubkey: toAccount.publicKey, // Public key of the account that will receive the funds - lamports: 1 * LAMPORTS_PER_SOL, // Amount of lamports to be transferred - }), -]; +const transferInstruction = SystemProgram.transfer({ + fromPubkey: payer.publicKey, // Public key of the sender account + toPubkey: toAccount.publicKey, // Public key of the receiver account + lamports: 1 * LAMPORTS_PER_SOL, // Amount to transfer in lamports +}); // Get the latest blockhash -let { blockhash } = await connection.getLatestBlockhash(); +const { blockhash } = await connection.getLatestBlockhash(); // Create the transaction message -const message = new web3.TransactionMessage({ - payerKey: payer.publicKey, // Public key of the account that will pay for the transaction - recentBlockhash: blockhash, // Latest blockhash - instructions: transferInstruction, // Instructions included in transaction +const message = new TransactionMessage({ + payerKey: payer.publicKey, // Public key of the payer account + recentBlockhash: blockhash, // Most recent blockhash + instructions: [transferInstruction], // Transaction instructions }).compileToV0Message(); ``` -Finally, you pass the compiled message into the `VersionedTransaction` -constructor to create a new versioned transaction. Your code can then sign and -send the transaction to the network, similar to a legacy transaction. +Next, pass the compiled message into the `VersionedTransaction` constructor to +create a versioned transaction. The transaction is then signed and sent to the +network, similar to how legacy transactions are handled. ```typescript -// Create the versioned transaction using the message -const transaction = new web3.VersionedTransaction(message); +// Create the versioned transaction from the compiled message +const transaction = new VersionedTransaction(message); -// Sign the transaction +// Sign the transaction with the payer's keypair transaction.sign([payer]); // Send the signed transaction to the network -const transactionSignature = await connection.sendTransaction(transaction); +const signature = await connection.sendTransaction(transaction); ``` ### Address Lookup Table -Address Lookup Tables (also called lookup tables or LUTs) are accounts that -store a lookup table of other account addresses. These LUT accounts are owned by -the Address Lookup Table Program and are used to increase the number of accounts -that can be included in a single transaction. +Address Lookup Tables (LUTs) are accounts that store references to other account +addresses. These LUT accounts, owned by the Address Lookup Table Program, +increase the number of accounts that can be included in a transaction. -Versioned transactions can include the address of an LUT account and then -reference additional accounts with a 1-byte index instead of including the full -address of those accounts. This significantly reduces the amount of space used -for referencing accounts in a transaction. +In versioned transactions, LUT addresses are included, and additional accounts +are referenced with a 1-byte index instead of the full 32-byte address, reducing +space used by the transaction. -To simplify the process of working with LUTs, the `@solana/web3.js` library -includes an `AddressLookupTableProgram` class which provides a set of methods to -create instructions for managing LUTs. These methods include: +The `@solana/web3.js` library offers an `AddressLookupTableProgram` class, +providing methods to manage LUTs: -- `createLookupTable` - creates a new LUT account -- `freezeLookupTable` - makes an existing LUT immutable -- `extendLookupTable` - adds addresses to an existing LUT -- `deactivateLookupTable` - puts an LUT in a “deactivation” period before it can - be closed -- `closeLookupTable` - permanently closes an LUT account +- `createLookupTable` - creates a new LUT account. +- `freezeLookupTable` - makes a LUT immutable. +- `extendLookupTable` - adds addresses to an existing LUT. +- `deactivateLookupTable` - begins the deactivation period for an LUT. +- `closeLookupTable` - permanently closes an LUT account. #### Create a lookup table -You use the `createLookupTable` method to construct the instruction that creates -a lookup table. The function requires the following parameters: +You can use the `createLookupTable` method to construct the instruction for +creating a lookup table. This requires the following parameters: -- `authority` - the account that will have permission to modify the lookup table -- `payer` - the account that will pay for the account creation -- `recentSlot` - a recent slot to derive the lookup table's address +- `authority` - the account authorized to modify the lookup table. +- `payer` - the account responsible for paying the account creation fees. +- `recentSlot` - a recent slot used to derive the lookup table's address. -The function returns both the instruction to create the lookup table and the -address of the lookup table. +The function returns both the instruction for creating the LUT and its address. ```typescript // Get the current slot const slot = await connection.getSlot(); -// Create an instruction for creating a lookup table -// and retrieve the address of the new lookup table +// Create the lookup table creation instruction and retrieve its address const [lookupTableInst, lookupTableAddress] = - web3.AddressLookupTableProgram.createLookupTable({ - authority: user.publicKey, // The authority (i.e., the account with permission to modify the lookup table) - payer: user.publicKey, // The payer (i.e., the account that will pay for the transaction fees) - recentSlot: slot - 1, // The recent slot to derive lookup table's address + AddressLookupTableProgram.createLookupTable({ + authority: user.publicKey, // Account authorized to modify the LUT + payer: user.publicKey, // Account paying for transaction fees + recentSlot: slot - 1, // Use a recent slot to derive the LUT address }); ``` -Under the hood, the lookup table address is simply a PDA derived using the -`authority` and `recentSlot` as seeds. +Under the hood, the lookup table address is a Program Derived Address (PDA) +generated using the `authority` and `recentSlot` as seeds. ```typescript const [lookupTableAddress, bumpSeed] = PublicKey.findProgramAddressSync( @@ -174,10 +160,12 @@ const [lookupTableAddress, bumpSeed] = PublicKey.findProgramAddressSync( ); ``` -Note that using the most recent slot sometimes results in an error after sending -the transaction. To avoid this, you can use a slot that is one slot prior the -most recent one (e.g. `recentSlot: slot - 1`). However, if you still encounter -an error when sending the transaction, you can try resending the transaction. + +Using the most recent slot sometimes results in errors when submitting the +transaction. To avoid this, it’s recommended to use a slot that is one slot +before the most recent one (`recentSlot: currentSlot - 1`). If you still +encounter errors when sending the transaction, try resubmitting it. + ``` "Program AddressLookupTab1e1111111111111111111111111 invoke [1]", @@ -187,57 +175,57 @@ an error when sending the transaction, you can try resending the transaction. #### Extend a lookup table -You use the `extendLookupTable` method to create an instruction that adds -addresses to an existing lookup table. It takes the following parameters: +The `extendLookupTable` method creates an instruction to add addresses to an +existing lookup table. It requires the following parameters: -- `payer` - the account that will pay for the transaction fees and any increased - rent -- `authority` - the account that has permission to change the lookup table -- `lookupTable` - the address of the lookup table to extend -- `addresses` - the addresses to add to the lookup table +- `payer` - the account responsible for paying transaction fees and any + additional rent. +- `authority` - the account authorized to modify the lookup table. +- `lookupTable` - the address of the lookup table to be extended. +- `addresses` - the list of addresses to add to the lookup table. The function returns an instruction to extend the lookup table. ```typescript const addresses = [ - new web3.PublicKey("31Jy3nFeb5hKVdB4GS4Y7MhU7zhNMFxwF7RGVhPc1TzR"), - new web3.PublicKey("HKSeapcvwJ7ri6mf3HwBtspLFTDKqaJrMsozdfXfg5y2"), - // add more addresses + new PublicKey("31Jy3nFeb5hKVdB4GS4Y7MhU7zhNMFxwF7RGVhPc1TzR"), + new PublicKey("HKSeapcvwJ7ri6mf3HwBtspLFTDKqaJrMsozdfXfg5y2"), + // Add more addresses here ]; -// Create an instruction to extend a lookup table with the provided addresses -const extendInstruction = web3.AddressLookupTableProgram.extendLookupTable({ - payer: user.publicKey, // The payer (i.e., the account that will pay for the transaction fees) - authority: user.publicKey, // The authority (i.e., the account with permission to modify the lookup table) - lookupTable: lookupTableAddress, // The address of the lookup table to extend - addresses: addresses, // The addresses to add to the lookup table +// Create the instruction to extend the lookup table with the provided addresses +const extendInstruction = AddressLookupTableProgram.extendLookupTable({ + payer: user.publicKey, // Account paying for transaction fees + authority: user.publicKey, // Account authorized to modify the lookup table + lookupTable: lookupTableAddress, // Address of the lookup table to extend + addresses: addresses, // Addresses to add to the lookup table }); ``` Note that when extending a lookup table, the number of addresses that can be -added in one instruction is limited by the transaction size limit, which is 1232 -bytes. This means you can add 30 addresses to a lookup table at a time. If you -need to add more than that, you'll need to send multiple transactions. Each -lookup table can store a maximum of 256 addresses. +added in a single instruction is limited by the transaction size limit of 1232 +bytes. You can add approximately 30 addresses in one transaction. If you need to +add more than that, multiple transactions are required. Each lookup table can +store up to 256 addresses. #### Send Transaction -After creating the instructions, you can add them to a transaction and sent it -to the network. +After creating the instructions, you can add them to a transaction and send it +to the network: ```typescript // Get the latest blockhash -let { blockhash } = await connection.getLatestBlockhash(); +const { blockhash } = await connection.getLatestBlockhash(); // Create the transaction message -const message = new web3.TransactionMessage({ - payerKey: payer.publicKey, // Public key of the account that will pay for the transaction +const message = new TransactionMessage({ + payerKey: payer.publicKey, // Account paying for the transaction recentBlockhash: blockhash, // Latest blockhash - instructions: [lookupTableInst, extendInstruction], // Instructions included in transaction + instructions: [lookupTableInst, extendInstruction], // Instructions to be included in the transaction }).compileToV0Message(); -// Create the versioned transaction using the message -const transaction = new web3.VersionedTransaction(message); +// Create the versioned transaction from the message +const transaction = new VersionedTransaction(message); // Sign the transaction transaction.sign([payer]); @@ -246,65 +234,62 @@ transaction.sign([payer]); const transactionSignature = await connection.sendTransaction(transaction); ``` -Note that when you first create or extend a lookup table, it needs to "warm up" -for one slot before the LUT or new addresses can be used in transactions. In -other words, you can only use lookup tables and access addresses that were added -prior to the current slot. +Note that after you create or extend a lookup table, it must "warm up" for one +slot before the lookup table or newly added addresses can be used in +transactions. You can only access lookup tables and addresses added in slots +prior to the current one. + +If you encounter the following error, it may indicate that you're trying to +access a lookup table or an address before the warm-up period has completed: ```typescript SendTransactionError: failed to send transaction: invalid transaction: Transaction address table lookup uses an invalid index ``` -If you encounter the error above or are unable to access addresses in a lookup -table immediately after extending it, it's likely because you're attempting to -access the lookup table or a specific address prior to the end of the warm up -period. To avoid this issue, add a delay after extending the lookup table before -sending a transaction that references the table. +To avoid this issue, ensure you add a delay after extending the lookup table +before attempting to reference the table in a transaction. #### Deactivate a lookup table -When a lookup table is no longer needed, you can deactivate and close it to -reclaim its rent balance. Address lookup tables can be deactivated at any time, -but they can continue to be used by transactions until a specified -"deactivation" slot is no longer "recent". This "cool-down" period ensures that -in-flight transactions can't be censored by LUTs being closed and recreated in -the same slot. The deactivation period is approximately 513 slots. +When a lookup table (LUT) is no longer needed, you can deactivate it to reclaim +its rent balance. Deactivating a LUT puts it into a "cool-down" period +(approximately 513 slots) during which it can still be used by transactions. +This prevents transactions from being censored by deactivating and recreating +LUTs within the same slot. -To deactivate an LUT, use the `deactivateLookupTable` method and pass in the -following parameters: +To deactivate a LUT, use the `deactivateLookupTable` method with the following +parameters: -- `lookupTable` - the address of the LUT to be deactivated -- `authority` - the account with permission to deactivate the LUT +- `lookupTable` - the address of the lookup table to be deactivated. +- `authority` - the account with the authority to deactivate the LUT. ```typescript -const deactivateInstruction = - web3.AddressLookupTableProgram.deactivateLookupTable({ - lookupTable: lookupTableAddress, // The address of the lookup table to deactivate - authority: user.publicKey, // The authority (i.e., the account with permission to modify the lookup table) - }); +const deactivateInstruction = AddressLookupTableProgram.deactivateLookupTable({ + lookupTable: lookupTableAddress, // Address of the lookup table to deactivate + authority: user.publicKey, // Authority to modify the lookup table +}); ``` #### Close a lookup table -To close a lookup table after its deactivation period, use the -`closeLookupTable` method. This method creates an instruction to close a -deactivated lookup table and reclaim its rent balance. It takes the following -parameters: +Once a LUT has been deactivated and the cool-down period has passed, you can +close the lookup table to reclaim its rent balance. Use the `closeLookupTable` +method, which requires the following parameters: -- `lookupTable` - the address of the LUT to be closed -- `authority` - the account with permission to close the LUT -- `recipient` - the account that will receive the reclaimed rent balance +- `lookupTable` - the address of the LUT to be closed. +- `authority` - the account with the authority to close the LUT. +- `recipient` - the account that will receive the reclaimed rent balance. ```typescript -const closeInstruction = web3.AddressLookupTableProgram.closeLookupTable({ - lookupTable: lookupTableAddress, // The address of the lookup table to close - authority: user.publicKey, // The authority (i.e., the account with permission to modify the lookup table) - recipient: user.publicKey, // The recipient of closed account lamports +const closeInstruction = AddressLookupTableProgram.closeLookupTable({ + lookupTable: lookupTableAddress, // Address of the lookup table to close + authority: user.publicKey, // Authority to close the LUT + recipient: user.publicKey, // Recipient of the reclaimed rent balance }); ``` -Attempting to close a lookup table before it's been fully deactivated will -result in an error. +Attempting to close a LUT before it has been fully deactivated will result in +the following error: ``` "Program AddressLookupTab1e1111111111111111111111111 invoke [1]", @@ -317,21 +302,21 @@ result in an error. In addition to standard CRUD operations, you can "freeze" a lookup table. This makes it immutable so that it can no longer be extended, deactivated, or closed. -You freeze a lookup table with the `freezeLookupTable` method. It takes the +The `freezeLookupTable` method is used for this operation and takes the following parameters: -- `lookupTable` - the address of the LUT to be frozen -- `authority` - the account with permission to freeze the LUT +- `lookupTable` - the address of the LUT to freeze. +- `authority` - the account with the authority to freeze the LUT. ```typescript -const freezeInstruction = web3.AddressLookupTableProgram.freezeLookupTable({ - lookupTable: lookupTableAddress, // The address of the lookup table to freeze - authority: user.publicKey, // The authority (i.e., the account with permission to modify the lookup table) +const freezeInstruction = AddressLookupTableProgram.freezeLookupTable({ + lookupTable: lookupTableAddress, // Address of the lookup table to freeze + authority: user.publicKey, // Authority to freeze the LUT }); ``` -Once an LUT is frozen, any further attempts to modify it will result in an -error. +Once a LUT is frozen, any attempt to modify it will result in an error like the +following: ``` "Program AddressLookupTab1e1111111111111111111111111 invoke [1]", @@ -341,28 +326,29 @@ error. #### Using lookup tables in versioned transactions -To use a lookup table in a versioned transaction, you need to retrieve the -lookup table account using its address. +To utilize a lookup table in a versioned transaction, first retrieve the lookup +table account using its address: ```typescript +// Fetch the lookup table account from the blockchain using its address const lookupTableAccount = ( - await connection.getAddressLookupTable(lookupTableAddress) + await connection.getAddressLookupTable(new PublicKey(lookupTableAddress)) ).value; ``` -You can then create a list of instructions to include in a transaction as usual. -When creating the `TransactionMessage`, you can include any lookup table -accounts by passing them as an array to the `compileToV0Message()` method. You -can also provide multiple lookup table accounts. +Once you have the lookup table account, you can create the list of instructions +for the transaction. When constructing the `TransactionMessage`, pass the lookup +table accounts as an array to the `compileToV0Message()` method. You can include +multiple lookup table accounts if needed. ```typescript const message = new web3.TransactionMessage({ - payerKey: payer.publicKey, // The payer (i.e., the account that will pay for the transaction fees) - recentBlockhash: blockhash, // The blockhash of the most recent block - instructions: instructions, // The instructions to include in the transaction + payerKey: payer.publicKey, // Public key of the account paying for the transaction + recentBlockhash: blockhash, // Blockhash of the most recent block + instructions: instructions, // Instructions to be included in the transaction }).compileToV0Message([lookupTableAccount]); // Include lookup table accounts -// Create the versioned transaction using the message +// Create a versioned transaction using the compiled message const transaction = new web3.VersionedTransaction(message); // Sign the transaction @@ -376,261 +362,324 @@ const transactionSignature = await connection.sendTransaction(transaction); Let's go ahead and practice using lookup tables! -this lab will guide you through the steps of creating, extending, and then using -a lookup table in a versioned transaction. - -#### 1. Get the starter code - -To begin, download the starter code from the starter branch of this -[repository](https://github.com/Unboxed-Software/solana-versioned-transactions/tree/starter). -Once you have the starter code, run `npm install` in the terminal to install the -required dependencies. - -The starter code includes an example of creating a legacy transaction that -intends to atomically transfer SOL to 22 recipients. The transaction contains 22 -instructions where each instruction transfers SOL from the signer to a different -recipient. - -The purpose of the starter code is to illustrate the limitation on the number of -addresses that can be included in a legacy transaction. The transaction built in -the starter code is expected to fail when sent. - -The following starter code can be found in the `index.ts` file. - -```typescript -import { initializeKeypair } from "./initializeKeypair"; -import * as web3 from "@solana/web3.js"; +This lab will guide you through creating, extending, and using a lookup table in +a versioned transaction. + +#### 1. Create the `try-large-transaction.ts` file + +To begin, create a new file named `try-large-transaction.ts` in your project +directory. This file will contain the code to illustrate a scenario where a +legacy transaction is created to transfer SOL to 22 recipients in a single +atomic transaction. The transaction will include 22 separate instructions, each +transferring SOL from the payer (signer) to a different recipient. + +This example highlights a key limitation of legacy transactions when trying to +accommodate many account addresses within a single transaction. As expected, +when attempting to send this transaction, it will likely fail due to exceeding +the transaction size limits. + +Here’s the code to include in `try-large-transaction.ts`: + +```typescript filename="try-large-transaction.ts" +import { + Connection, + clusterApiUrl, + Keypair, + Transaction, + SystemProgram, + LAMPORTS_PER_SOL, + sendAndConfirmTransaction, +} from "@solana/web3.js"; +import { + initializeKeypair, + makeKeypairs, + getExplorerLink, +} from "@solana-developers/helpers"; +import dotenv from "dotenv"; +dotenv.config(); async function main() { - // Connect to the devnet cluster - const connection = new web3.Connection(web3.clusterApiUrl("devnet")); + // Connect to the local Solana cluster + const connection = new Connection(clusterApiUrl("devnet"), "confirmed"); - // Initialize the user's keypair - const user = await initializeKeypair(connection); - console.log("PublicKey:", user.publicKey.toBase58()); + // Initialize the keypair from the environment variable or create a new one + const payer = await initializeKeypair(connection); - // Generate 22 addresses - const recipients = []; - for (let i = 0; i < 22; i++) { - recipients.push(web3.Keypair.generate().publicKey); - } + // Generate 22 recipient keypairs using makeKeypairs + const recipients = makeKeypairs(22).map(keypair => keypair.publicKey); - // Create an array of transfer instructions - const transferInstructions = []; + // Create a legacy transaction + const transaction = new Transaction(); - // Add a transfer instruction for each address - for (const address of recipients) { - transferInstructions.push( - web3.SystemProgram.transfer({ - fromPubkey: user.publicKey, // The payer (i.e., the account that will pay for the transaction fees) - toPubkey: address, // The destination account for the transfer - lamports: web3.LAMPORTS_PER_SOL * 0.01, // The amount of lamports to transfer + // Add 22 transfer instructions to the transaction + recipients.forEach(recipient => { + transaction.add( + SystemProgram.transfer({ + fromPubkey: payer.publicKey, + toPubkey: recipient, + lamports: LAMPORTS_PER_SOL * 0.01, // Transfer 0.01 SOL to each recipient }), ); - } - - // Create a transaction and add the transfer instructions - const transaction = new web3.Transaction().add(...transferInstructions); - - // Send the transaction to the cluster (this will fail in this example if addresses > 21) - const txid = await connection.sendTransaction(transaction, [user]); - - // Get the latest blockhash and last valid block height - const { lastValidBlockHeight, blockhash } = - await connection.getLatestBlockhash(); - - // Confirm the transaction - await connection.confirmTransaction({ - blockhash: blockhash, - lastValidBlockHeight: lastValidBlockHeight, - signature: txid, }); - // Log the transaction URL on the Solana Explorer - console.log(`https://explorer.solana.com/tx/${txid}?cluster=devnet`); + // Sign and send the transaction + try { + const signature = await sendAndConfirmTransaction(connection, transaction, [ + payer, + ]); + console.log( + `Transaction successful with signature: ${getExplorerLink("tx", signature, "devnet")}`, + ); + } catch (error) { + console.error("Transaction failed:", error); + } } ``` -To execute the code, run `npm start`. This will create a new keypair, write it -to the `.env` file, airdrop devnet SOL to the keypair, and send the transaction -built in the starter code. The transaction is expected to fail with the error -message `Transaction too large`. +To run the example, execute `npx esrun try-large-transaction.ts`. This process +will: + +- Generate a new keypair. +- Store the keypair details in the `.env` file. +- Request airdrop of devnet SOL to the generated keypair. +- Attempt to send the transaction. +- Since the transaction includes 22 instructions, it is expected to fail with + the error: "Transaction too large". ``` Creating .env file Current balance is 0 Airdropping 1 SOL... New balance is 1 -PublicKey: 5ZZzcDbabFHmoZU8vm3VzRzN5sSQhkf91VJzHAJGNM7B +PublicKey: 7YsGYC4EBs6Dxespe4ZM3wfCp856xULWoLw7QUcVb6VG Error: Transaction too large: 1244 > 1232 ``` -In the next steps, we'll go over how to use lookup tables with versioned -transactions to increase the number of addresses that can be included in a -single transaction. - -Before we start, go ahead and delete the content of the `main` function to leave -only the following: +#### 2. Create the `use-lookup-tables.ts` File + +Next, we'll explore how to use lookup tables in combination with versioned +transactions to overcome the limitation of legacy transactions and include a +greater number of addresses in a single transaction. + +Create a new file named `use-lookup-tables.ts` in your project directory. This +file will contain the code to demonstrate the use of lookup tables. + +Here’s the starter code to include in `use-lookup-tables.ts` file: + +```typescript filename="use-lookup-tables.ts" +import { + Connection, + clusterApiUrl, + Keypair, + TransactionInstruction, + AddressLookupTableAccount, + SystemProgram, + VersionedTransaction, + TransactionMessage, + AddressLookupTableProgram, + LAMPORTS_PER_SOL, + getSlot, +} from "@solana/web3.js"; +import { + initializeKeypair, + makeKeypairs, + getExplorerLink, +} from "@solana-developers/helpers"; +import dotenv from "dotenv"; +dotenv.config(); -```typescript async function main() { - // Connect to the devnet cluster - const connection = new web3.Connection(web3.clusterApiUrl("devnet")); + // Connect to the local Solana cluster + const connection = new Connection(clusterApiUrl("devnet"), "confirmed"); - // Initialize the user's keypair - const user = await initializeKeypair(connection); - console.log("PublicKey:", user.publicKey.toBase58()); + // Initialize the keypair from the environment variable or create a new one + const payer = await initializeKeypair(connection); - // Generate 22 addresses - const addresses = []; - for (let i = 0; i < 22; i++) { - addresses.push(web3.Keypair.generate().publicKey); - } + // Generate 22 recipient keypairs using makeKeypairs + const recipients = makeKeypairs(22).map(keypair => keypair.publicKey); } ``` -#### 2. Create a `sendV0Transaction` helper function +Next, we will create a few helper functions that will be crucial for working +with versioned transactions and lookup tables. These functions will simplify our +process and make our code more modular and reusable. -We'll be sending multiple "version 0" transactions, so let's create a helper -function to facilitate this. +#### 3. Create a `sendV0Transaction` helper function -This function should take parameters for a connection, a user's keypair, an -array of transaction instructions, and an optional array of lookup table -accounts. +To handle versioned transactions, we will create a helper function in +`use-lookup-tables.ts` file, called `sendV0Transaction`, to simplify the +process. This function will accept the following parameters: -The function then performs the following tasks: +- `connection`: the solana connection to the cluster (e.g., devnet). +- `user`: the keypair of the user (payer) signing the transaction. +- `instructions`: an array of TransactionInstruction objects to include in the + transaction. +- `lookupTableAccounts` (optional): an array of lookup table accounts, if + applicable, to reference additional addresses. -- Retrieves the latest blockhash and last valid block height from the Solana - network -- Creates a new transaction message using the provided instructions -- Signs the transaction using the user's keypair -- Sends the transaction to the Solana network -- Confirms the transaction -- Logs the transaction URL on the Solana Explorer +This helper function will: -```typescript +- Retrieve the latest blockhash and last valid block height from the Solana + network. +- Compile a versioned transaction message using the provided instructions. +- Sign the transaction using the user's keypair. +- Send the transaction to the network. +- Confirm the transaction and log the transaction's URL using Solana Explorer. + +```typescript filename="use-lookup-tables.ts" async function sendV0Transaction( - connection: web3.Connection, - user: web3.Keypair, - instructions: web3.TransactionInstruction[], - lookupTableAccounts?: web3.AddressLookupTableAccount[], + connection: Connection, + user: Keypair, + instructions: TransactionInstruction[], + lookupTableAccounts?: AddressLookupTableAccount[], ) { // Get the latest blockhash and last valid block height - const { lastValidBlockHeight, blockhash } = + const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash(); // Create a new transaction message with the provided instructions - const messageV0 = new web3.TransactionMessage({ + const messageV0 = new TransactionMessage({ payerKey: user.publicKey, // The payer (i.e., the account that will pay for the transaction fees) recentBlockhash: blockhash, // The blockhash of the most recent block instructions, // The instructions to include in the transaction - }).compileToV0Message(lookupTableAccounts ? lookupTableAccounts : undefined); - - // Create a new transaction object with the message - const transaction = new web3.VersionedTransaction(messageV0); + }).compileToV0Message(lookupTableAccounts); - // Sign the transaction with the user's keypair - transaction.sign([user]); + // Create a versioned transaction from the message + const transaction = new VersionedTransaction(messageV0); - // Send the transaction to the cluster - const txid = await connection.sendTransaction(transaction); - - // Confirm the transaction - await connection.confirmTransaction( + // Use the helper function to send and confirm the transaction + const txid = await sendAndConfirmTransactionV0( + connection, + transaction, + [user], { - blockhash: blockhash, - lastValidBlockHeight: lastValidBlockHeight, - signature: txid, + commitment: "finalized", // Ensures the transaction is confirmed at the highest level }, - "finalized", ); - // Log the transaction URL on the Solana Explorer - console.log(`https://explorer.solana.com/tx/${txid}?cluster=devnet`); + // Log the transaction URL on the Solana Explorer using the helper + const explorerLink = getExplorerLink("tx", txid, "devnet"); + console.log( + `Transaction successful! View it on Solana Explorer: ${explorerLink}`, + ); } ``` -#### 3. Create a `waitForNewBlock` helper function +#### 4. Create a `waitForNewBlock` helper function -Recall that lookup tables and the addresses contained in them can't be -referenced immediately after creation or extension. This means we'll end up -needing to wait for a new block before submitting transactions that reference -the newly created or extended lookup table. To make this simpler down the road, -let's create a `waitForNewBlock` helper function that we'll use to wait for -lookup tables to activate between sending transactions. +When working with lookup tables, it's important to remember that newly created +or extended lookup tables cannot be referenced immediately. Therefore, before +submitting transactions that reference these tables, we need to wait for a new +block to be generated. -This function will have parameters for a connection and a target block height. -It then starts an interval that checks the current block height of the network -every 1000ms. Once the new block height exceeds the target height, the interval -is cleared and the promise is resolved. +We will create a `waitForNewBlock` helper function that accepts: -```typescript -function waitForNewBlock(connection: web3.Connection, targetHeight: number) { - console.log(`Waiting for ${targetHeight} new blocks`); - return new Promise(async (resolve: any) => { - // Get the last valid block height of the blockchain - const { lastValidBlockHeight } = await connection.getLatestBlockhash(); +- `connection`: the Solana network connection. +- `targetBlockHeight`: the target block height to wait for. + +This function will: + +- Start an interval that checks the current block height of the network every + second (1000ms). +- Resolve the promise once the current block height exceeds the target block + height. - // Set an interval to check for new blocks every 1000ms +```typescript filename="use-lookup-tables.ts" +async function waitForNewBlock( + connection: Connection, + targetHeight: number, +): Promise { + console.log(`Waiting for ${targetHeight} new blocks...`); + + // Get the initial block height of the blockchain + const { lastValidBlockHeight: initialBlockHeight } = + await connection.getLatestBlockhash(); + + return new Promise(resolve => { + const SECOND = 1000; + const checkInterval = 1 * SECOND; // Interval to check for new blocks (1000ms) + + // Set an interval to check for new block heights const intervalId = setInterval(async () => { - // Get the new valid block height - const { lastValidBlockHeight: newValidBlockHeight } = - await connection.getLatestBlockhash(); - // console.log(newValidBlockHeight) - - // Check if the new valid block height is greater than the target block height - if (newValidBlockHeight > lastValidBlockHeight + targetHeight) { - // If the target block height is reached, clear the interval and resolve the promise + try { + // Get the current block height + const { lastValidBlockHeight: currentBlockHeight } = + await connection.getLatestBlockhash(); + + // If the current block height exceeds the target, resolve and clear interval + if (currentBlockHeight >= initialBlockHeight + targetHeight) { + clearInterval(intervalId); + console.log(`New block height reached: ${currentBlockHeight}`); + resolve(); + } + } catch (error) { + console.error("Error fetching block height:", error); clearInterval(intervalId); - resolve(); + resolve(); // Resolve to avoid hanging in case of errors } - }, 1000); + }, checkInterval); }); } ``` -#### 4. Create an `initializeLookupTable` function +#### 5. Create an `initializeLookupTable` function -Now that we have some helper functions ready to go, declare a function named -`initializeLookupTable`. This function has parameters `user`, `connection`, and -`addresses`. The function will: +Next, we need to initialize a lookup table to hold the addresses of the +recipients. The `initializeLookupTable` function will accept the following +parameters: -1. Retrieve the current slot -2. Generate an instruction for creating a lookup table -3. Generate an instruction for extending the lookup table with the provided - addresses -4. Send and confirm a transaction with the instructions for creating and - extending the lookup table -5. Return the address of the lookup table +- `user`: the user's keypair (payer and authority). +- `connection`: the Solana network connection. +- `addresses`: an array of recipient addresses (public keys) to add to the + lookup table. -```typescript +The function will: + +- Retrieve the current slot to derive the lookup table's address. +- Generate the necessary instructions to create and extend the lookup table with + the provided recipient addresses. +- Send and confirm a transaction that includes these instructions. +- Return the address of the newly created lookup table. + +Although the transaction includes the full recipient addresses, using the lookup +table allows Solana to reference those addresses with significantly fewer bytes +in the actual transaction. By including the lookup table in the versioned +transaction, the framework optimizes the transaction size, replacing addresses +with pointers to the lookup table. + +This design is crucial for enabling the transaction to support more recipients +by staying within Solana’s transaction size limits. + +```typescript filename="use-lookup-tables.ts" async function initializeLookupTable( - user: web3.Keypair, - connection: web3.Connection, - addresses: web3.PublicKey[], -): Promise { - // Get the current slot - const slot = await connection.getSlot(); + user: Keypair, + connection: Connection, + addresses: PublicKey[], +): Promise { + // Get the current slot using a helper function from @solana/web3.js + const slot = await getSlot(connection); // Create an instruction for creating a lookup table // and retrieve the address of the new lookup table const [lookupTableInst, lookupTableAddress] = - web3.AddressLookupTableProgram.createLookupTable({ - authority: user.publicKey, // The authority (i.e., the account with permission to modify the lookup table) - payer: user.publicKey, // The payer (i.e., the account that will pay for the transaction fees) - recentSlot: slot - 1, // The recent slot to derive lookup table's address + AddressLookupTableProgram.createLookupTable({ + authority: user.publicKey, // The authority to modify the lookup table + payer: user.publicKey, // The payer for transaction fees + recentSlot: slot - 1, // The slot for lookup table address derivation }); - console.log("lookup table address:", lookupTableAddress.toBase58()); + + console.log("Lookup Table Address:", lookupTableAddress.toBase58()); // Create an instruction to extend a lookup table with the provided addresses - const extendInstruction = web3.AddressLookupTableProgram.extendLookupTable({ - payer: user.publicKey, // The payer (i.e., the account that will pay for the transaction fees) - authority: user.publicKey, // The authority (i.e., the account with permission to modify the lookup table) - lookupTable: lookupTableAddress, // The address of the lookup table to extend - addresses: addresses.slice(0, 30), // The addresses to add to the lookup table + const extendInstruction = AddressLookupTableProgram.extendLookupTable({ + payer: user.publicKey, // The payer of transaction fees + authority: user.publicKey, // The authority to extend the lookup table + lookupTable: lookupTableAddress, // Address of the lookup table to extend + addresses: addresses.slice(0, 30), // Add up to 30 addresses per instruction }); - await sendV0Transaction(connection, user, [ + // Use the helper function to send a versioned transaction + await sendVersionedTransaction(connection, user, [ lookupTableInst, extendInstruction, ]); @@ -639,73 +688,84 @@ async function initializeLookupTable( } ``` -#### 5. Modify `main` to use lookup tables +#### 6. Modify `main` to use lookup tables -Now that we can initialize a lookup table with all of the recipients' addresses, -let's update `main` to use versioned transactions and lookup tables. We'll need -to: +With the helper functions in place, we are now ready to modify the `main` +function to utilize versioned transactions and address lookup tables. To do so, +we will follow these steps: -1. Call `initializeLookupTable` -2. Call `waitForNewBlock` -3. Get the lookup table using `connection.getAddressLookupTable` -4. Create the transfer instruction for each recipient -5. Send the v0 transaction with all of the transfer instructions +1. Call `initializeLookupTable`: Create and extend the lookup table with the + recipients' addresses. +2. Call `waitForNewBlock`: Ensure the lookup table is activated by waiting for a + new block. +3. Retrieve the Lookup Table: Use `connection.getAddressLookupTabl`e to fetch + the lookup table and reference it in the transaction. +4. Create Transfer Instructions: Generate a transfer instruction for each + recipient. +5. Send the Versioned Transaction: Use `sendV0Transaction` to send a single + transaction with all transfer instructions, referencing the lookup table. -```typescript +```typescript filename="use-lookup-tables.ts" async function main() { - // Connect to the devnet cluster - const connection = new web3.Connection(web3.clusterApiUrl("devnet")); + // Connect to the devnet Solana cluster + const connection = new Connection(clusterApiUrl("devnet"), "confirmed"); - // Initialize the user's keypair - const user = await initializeKeypair(connection); - console.log("PublicKey:", user.publicKey.toBase58()); - - // Generate 22 addresses - const recipients = []; - for (let i = 0; i < 22; i++) { - recipients.push(web3.Keypair.generate().publicKey); - } + // Initialize the keypair from the environment variable or create a new one + const payer = await initializeKeypair(connection); + // Generate 22 recipient keypairs using makeKeypairs + const recipients = makeKeypairs(22).map(keypair => keypair.publicKey); + // Initialize the lookup table with the generated recipients const lookupTableAddress = await initializeLookupTable( user, connection, recipients, ); + // Wait for a new block before using the lookup table await waitForNewBlock(connection, 1); + // Fetch the lookup table account const lookupTableAccount = ( await connection.getAddressLookupTable(lookupTableAddress) ).value; + // Check if the lookup table was successfully fetched if (!lookupTableAccount) { throw new Error("Lookup table not found"); } - const transferInstructions = recipients.map(recipient => { - return web3.SystemProgram.transfer({ - fromPubkey: user.publicKey, // The payer (i.e., the account that will pay for the transaction fees) - toPubkey: recipient, // The destination account for the transfer - lamports: web3.LAMPORTS_PER_SOL * 0.01, // The amount of lamports to transfer - }); - }); + // Create transfer instructions for each recipient + const transferInstructions = recipients.map(recipient => + SystemProgram.transfer({ + fromPubkey: user.publicKey, // The payer + toPubkey: recipient, // The recipient + lamports: LAMPORTS_PER_SOL * 0.01, // Amount to transfer + }), + ); - await sendV0Transaction(connection, user, transferInstructions, [ - lookupTableAccount, - ]); + // Send the versioned transaction including the lookup table + const txid = await sendVersionedTransaction( + connection, + user, + transferInstructions, + [lookupTableAccount], + ); + + // Log the transaction link for easy access + console.log(`Transaction URL: ${getExplorerLink("tx", txid, "devnet")}`); } ``` -Notice that you create the transfer instructions with the full recipient address -even though we created a lookup table. That's because by including the lookup -table in the versioned transaction, you tell the `web3.js` framework to replace -any recipient addresses that match addresses in the lookup table with pointers -to the lookup table instead. By the time the transaction is sent to the network, -addresses that exist in the lookup table will be referenced by a single byte -rather than the full 32 bytes. +Even though we will create transfer instructions with full recipient addresses, +the use of lookup tables allows the `@solana/web3.js` framework to optimize the +transaction size. The addresses in the transaction that match entries in the +lookup table will be replaced with compact pointers referencing the lookup +table. By doing this, addresses will be represented using only a single byte in +the final transaction, significantly reducing the transaction's size. -Use `npm start` in the command line to execute the `main` function. You should -see an output similar to the following: +Use `npx esrun use-lookup-tables.ts` in the command line to execute the `main` +function. You should see an output similar to the following: ```bash Current balance is 1.38866636 @@ -726,7 +786,7 @@ Remember, this same transaction was failing when you first downloaded the starter code. Now that we're using lookup tables, we can do all 22 transfers in a single transaction. -#### 6. Add more address to the lookup table +#### 6. Add more addresses to the lookup table Keep in mind that the solution we've come up with so far only supports transfers to up to 30 accounts since we only extend the lookup table once. When you factor @@ -738,55 +798,54 @@ All we need to do is go into `initializeLookupTable` and do two things: 1. Modify the existing call to `extendLookupTable` to only add the first 30 addresses (any more than that and the transaction will be too large) -2. Add a loop that will keep extending a lookup table 30 addresses at a time +2. Add a loop that will keep extending a lookup table of 30 addresses at a time until all addresses have been added -```typescript +```typescript filename="use-lookup-tables.ts" async function initializeLookupTable( - user: web3.Keypair, - connection: web3.Connection, - addresses: web3.PublicKey[], -): Promise { + user: Keypair, + connection: Connection, + addresses: PublicKey[], +): Promise { // Get the current slot const slot = await connection.getSlot(); - // Create an instruction for creating a lookup table - // and retrieve the address of the new lookup table + // Create the lookup table and retrieve its address const [lookupTableInst, lookupTableAddress] = - web3.AddressLookupTableProgram.createLookupTable({ - authority: user.publicKey, // The authority (i.e., the account with permission to modify the lookup table) - payer: user.publicKey, // The payer (i.e., the account that will pay for the transaction fees) - recentSlot: slot - 1, // The recent slot to derive lookup table's address + AddressLookupTableProgram.createLookupTable({ + authority: user.publicKey, // The authority to modify the lookup table + payer: user.publicKey, // The payer for the transaction fees + recentSlot: slot - 1, // Recent slot to derive lookup table's address }); - console.log("lookup table address:", lookupTableAddress.toBase58()); + console.log("Lookup table address:", lookupTableAddress.toBase58()); - // Create an instruction to extend a lookup table with the provided addresses - const extendInstruction = web3.AddressLookupTableProgram.extendLookupTable({ - payer: user.publicKey, // The payer (i.e., the account that will pay for the transaction fees) - authority: user.publicKey, // The authority (i.e., the account with permission to modify the lookup table) - lookupTable: lookupTableAddress, // The address of the lookup table to extend - addresses: addresses.slice(0, 30), // The addresses to add to the lookup table - }); + // Helper function to extend the lookup table in batches + const extendLookupTable = async (remainingAddresses: PublicKey[]) => { + while (remainingAddresses.length > 0) { + const toAdd = remainingAddresses.slice(0, 30); // Add up to 30 addresses + remainingAddresses = remainingAddresses.slice(30); - await sendV0Transaction(connection, user, [ - lookupTableInst, - extendInstruction, - ]); + const extendInstruction = AddressLookupTableProgram.extendLookupTable({ + payer: user.publicKey, + authority: user.publicKey, + lookupTable: lookupTableAddress, + addresses: toAdd, + }); - var remaining = addresses.slice(30); + // Send the transaction to extend the lookup table with the new addresses + await sendVersionedTransaction(connection, user, [extendInstruction]); + } + }; - while (remaining.length > 0) { - const toAdd = remaining.slice(0, 30); - remaining = remaining.slice(30); - const extendInstruction = web3.AddressLookupTableProgram.extendLookupTable({ - payer: user.publicKey, // The payer (i.e., the account that will pay for the transaction fees) - authority: user.publicKey, // The authority (i.e., the account with permission to modify the lookup table) - lookupTable: lookupTableAddress, // The address of the lookup table to extend - addresses: toAdd, // The addresses to add to the lookup table - }); + // Send the initial transaction to create the lookup table and add the first 30 addresses + const initialBatch = addresses.slice(0, 30); + const remainingAddresses = addresses.slice(30); - await sendV0Transaction(connection, user, [extendInstruction]); - } + await sendVersionedTransaction(connection, user, [lookupTableInst]); + + // Extend the lookup table with the remaining addresses, if any + await extendLookupTable(initialBatch); + await extendLookupTable(remainingAddresses); return lookupTableAddress; } @@ -799,7 +858,7 @@ look at the final solution code you can ## Challenge -As a challenge, experiment with deactivating, closing and freezing lookup +As a challenge, experiment with deactivating, closing, and freezing lookup tables. Remember that you need to wait for a lookup table to finish deactivating before you can close it. Also, if a lookup table is frozen, it cannot be modified (deactivated or closed), so you will have to test separately or use From 27e73ed1fe41f4d2a044f7dfb9504ac5e13302b0 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Wed, 2 Oct 2024 18:29:29 +1000 Subject: [PATCH 087/206] Prettier. --- .../tokens-and-nfts/token-program-advanced.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/content/courses/tokens-and-nfts/token-program-advanced.md b/content/courses/tokens-and-nfts/token-program-advanced.md index 1fcff33e3..b979dd803 100644 --- a/content/courses/tokens-and-nfts/token-program-advanced.md +++ b/content/courses/tokens-and-nfts/token-program-advanced.md @@ -10,18 +10,21 @@ description: ### Summary -- **Burning tokens** reduces the total supply of a token by removing them - from circulation. -- **Approving a delegate**, allows another account to transfer or burn a specified amount of tokens from a token account while retaining original account ownership. -- **Revoking a delegate**, removes their authority to act on behalf of the token account owner. +- **Burning tokens** reduces the total supply of a token by removing them from + circulation. +- **Approving a delegate**, allows another account to transfer or burn a + specified amount of tokens from a token account while retaining original + account ownership. +- **Revoking a delegate**, removes their authority to act on behalf of the token + account owner. - Each of these operations is facilitated through the `spl-token` library, utilizing specific functions for each action. ### Lesson -In this lesson, we'll cover burning tokens and delegation. You may not have a need for these -in your own application, so if you're more interested in NFTs, feel free to skip -ahead to +In this lesson, we'll cover burning tokens and delegation. You may not have a +need for these in your own application, so if you're more interested in NFTs, +feel free to skip ahead to [creating NFTs with Metaplex](/content/courses/tokens-and-nfts/nfts-with-metaplex.md)! #### Burn Tokens From b28529f23f8cc1be8d5e0e5113e6c69216798fa6 Mon Sep 17 00:00:00 2001 From: Jimii <30603522+jim4067@users.noreply.github.com> Date: Thu, 3 Oct 2024 05:19:30 +0300 Subject: [PATCH 088/206] feat: update compressed-nfts.md to use umi and bubblegum plugin (#510) * feat: update course to use umi and bubblegum plugin * Update content/courses/state-compression/compressed-nfts.md Co-authored-by: Mike MacCana * feat: resolve requested changes * Update content/courses/state-compression/compressed-nfts.md --------- Co-authored-by: Mike MacCana --- .../state-compression/compressed-nfts.md | 1738 ++++++----------- .../unboxed/solana-explorer-create-tree.png | Bin 0 -> 95579 bytes ...na-explorer-showing-cnft-transfer-logs.png | Bin 0 -> 171868 bytes 3 files changed, 610 insertions(+), 1128 deletions(-) create mode 100644 public/assets/courses/unboxed/solana-explorer-create-tree.png create mode 100644 public/assets/courses/unboxed/solana-explorer-showing-cnft-transfer-logs.png diff --git a/content/courses/state-compression/compressed-nfts.md b/content/courses/state-compression/compressed-nfts.md index e0a7ba59d..63927fe34 100644 --- a/content/courses/state-compression/compressed-nfts.md +++ b/content/courses/state-compression/compressed-nfts.md @@ -1,27 +1,27 @@ --- title: Compressed NFTs objectives: - - Create a compressed NFT collection using Metaplex's Bubblegum program - - Mint compressed NFTs using the Bubblegum TS SDK - - Transfer compressed NFTs using the Bubblegum TS SDK + - Create a compressed NFT collection using Metaplex’s Bubblegum program + - Mint compressed NFTs using the Bubblegum program + - Transfer compressed NFTs using the Bubblegum program - Read compressed NFT data using the Read API description: "How to mint, transfer and read large-scale NFT collections using Metaplex's - Bubblegum SDK." + Bubblegum Program." --- ## Summary - **Compressed NFTs (cNFTs)** use **State Compression** to hash NFT data and store the hash onchain in an account using a **concurrent Merkle tree** - structure -- The cNFT data hash can't be used to infer the cNFT data, but it can be used to - **verify** if the cNFT data you're seeing is correct + structure. +- The cNFT data hash can’t be used to infer the cNFT data, but it can be used to + **verify** if the cNFT data you’re seeing is correct. - Supporting RPC providers **index** cNFT data offchain when the cNFT is minted so that you can use the **Read API** to access the data - The **Metaplex Bubblegum program** is an abstraction on top of the **State Compression** program that enables you to more simply create, mint, and manage - cNFT collections + cNFT collections. ## Lesson @@ -32,10 +32,10 @@ drastically reduces costs. Solana's transaction costs are so cheap that most users never think about how expensive minting NFTs can be at scale. The cost to set up and mint 1 million -traditional NFTs is approximately 24,000 SOL. By comparison, cNFTs can be -structured to where the same setup and mint costs 10 SOL or less. That means -anyone using NFTs at scale could cut costs by more than 1000x by using cNFTs -over traditional NFTs. +traditional NFTs using the Token Metadata Program is approximately 24,000 SOL. +By comparison, cNFTs can be structured to where the same setup and mint costs 10 +SOL or less. That means anyone using NFTs at scale could cut costs by more than +1000x by using cNFTs over traditional NFTs. However, cNFTs can be tricky to work with. Eventually, the tooling required to work with them will be sufficiently abstracted from the underlying technology @@ -47,16 +47,15 @@ pieces, so let's dig in! Most of the costs associated with traditional NFTs come down to account storage space. Compressed NFTs use a concept called State Compression to store data in -the blockchain's cheaper **ledger state**, using more expensive account space -only to store a “fingerprint”, or **hash**, of the data. This hash allows you to +the blockchain’s **ledger state**, only using the account state to store a +“fingerprint”, or **hash**, of the data. This hash allows you to cryptographically verify that data has not been tampered with. To both store hashes and enable verification, we use a special binary tree structure known as a **concurrent Merkle tree**. This tree structure lets us hash data together in a deterministic way to compute a single, final hash that -gets stored onchain. This final hash is significantly smaller in size than all -the original data combined, hence the “compression.” The steps to this process -are: +gets stored onchain. This final hash is significantly smaller than all the +original data combined, hence the “compression.” The steps to this process are: 1. Take any piece of data 2. Create a hash of this data @@ -80,11 +79,11 @@ track and index this data as the transactions occur. This ensures there is an offchain “cache” of the data that anyone can access and subsequently verify against the onchain root hash. -This process is _very complex_. We'll cover some of the key concepts below but -don't worry if you don't understand it right away. We'll talk more theory in the -state compression lesson and focus primarily on application to NFTs in this -lesson. You'll be able to work with cNFTs by the end of this lesson even if you -don't fully understand every piece of the state compression puzzle. +This process is _very complex_. We’ll cover some key concepts below but don’t +worry if you don’t understand it right away. We’ll talk more theory in the state +compression lesson and focus primarily on application to NFTs in this lesson. +You’ll be able to work with cNFTs by the end of this lesson even if you don’t +fully understand every piece of the state compression puzzle. #### Concurrent Merkle trees @@ -130,9 +129,8 @@ node adds 32 bytes to a transaction, so large trees would quickly exceed the maximum transaction size limit without caching proof nodes onchain. Each of these three values, max depth, max buffer size, and canopy depth, comes -with a tradeoff. Increasing the value of any of these values increases the size -of the account used to store the tree, thus increasing the cost to create the -tree. +with a tradeoff. Increasing any of these values increases the size of the +account used to store the tree, thus increasing the cost to create the tree. Choosing the max depth is fairly straightforward as it directly relates to the number of leafs and therefore the amount of data you can store. If you need @@ -183,8 +181,9 @@ the Noop instruction logs related to your data will vary based on the validator, but eventually you'll lose access to it if you're relying directly on instruction logs. -Technically, you _can_ replay transaction state back to the genesis block but -the average team isn't going to do that, and it certainly won't be performant. +Technically, you _can_ replay transaction state back to the genesis block, but +the average team isn’t going to do that, and it certainly won’t be performant. + Instead, you should use an indexer that will observe the events sent to the Noop program and store the relevant data off chain. That way you don't need to worry about old data becoming inaccessible. @@ -197,13 +196,9 @@ main point of this lesson: how to create a cNFT collection. Fortunately, you can use tools created by Solana Foundation, the Solana developer community, and Metaplex to simplify the process. Specifically, we'll be using the `@solana/spl-account-compression` SDK, the Metaplex Bubblegum -program, and the Bubblegum program's corresponding TS SDK -`@metaplex-foundation/mpl-bugglegum`. - -

    #### Prepare metadata @@ -214,53 +209,56 @@ something like this: ```json { - "name": "12_217_47", - "symbol": "RGB", - "description": "Random RGB Color", - "seller_fee_basis_points": 0, - "image": "https://raw.githubusercontent.com/ZYJLiu/rgb-png-generator/master/assets/12_217_47/12_217_47.png", + "name": "My Collection", + "symbol": "MC", + "description": "My Collection description", + "image": "https://lvvg33dqzykc2mbfa4ifua75t73tchjnfjbcspp3n3baabugh6qq.arweave.net/XWpt7HDOFC0wJQcQWgP9n_cxHS0qQik9-27CAAaGP6E", "attributes": [ { - "trait_type": "R", - "value": "12" + "trait_type": "Background", + "value": "transparent" }, { - "trait_type": "G", - "value": "217" + "trait_type": "Shape", + "value": "sphere" }, { - "trait_type": "B", - "value": "47" + "trait_type": "Resolution", + "value": "1920x1920" } ] } ``` -Depending on your use case, you may be able to generate this dynamically or you -might want to have a JSON file prepared for each cNFT beforehand. You'll also -need any other assets referenced by the JSON, such as the `image` url shown in +Depending on your use case, you may be able to generate this dynamically, or you +might want to have a JSON file prepared for each cNFT beforehand. You’ll also +need any other assets referenced by the JSON, such as the `image` URL shown in the example above. #### Create Collection NFT -If you want your cNFTs to be part of a collection, you'll need to create a -Collection NFT **before** you start minting cNFTs. This is a traditional NFT -that acts as the reference binding your cNFTs together into a single collection. -You can create this NFT using the `@metaplex-foundation/js` library. Just make -sure you set `isCollection` to `true`. +NFTs are intrinsically unique, compared to fungible tokens which have a supply. +However, it is important to bind NFTs produced by the same series together, +using a Collection. Collections allow people to discover other NFTs in the same +collection, and verify that individual NFTs are actually members of the +Collection (and not look-alikes produced by someone else). + +To have your cNFTs to be part of a collection, you’ll need to create a +Collection NFT **before** you start minting cNFTs. This is a traditional Token +Metadata Program NFT that acts as the reference binding your cNFTs together into +a single collection. The procedure to create this NFT is outlined in our +[NFTs with Metaplex lesson](https://solana.com/developers/courses/tokens-and-nfts/nfts-with-metaplex#add-the-nft-to-a-collection) ```typescript -const collectionNft = await metaplex.nfts().create({ - uri: someUri, - name: "Collection NFT", - sellerFeeBasisPoints: 0, - updateAuthority: somePublicKey, - mintAuthority: somePublicKey, - tokenStandard: 0, - symbol: "Collection", - isMutable: true, - isCollection: true, -}); +const collectionMint = generateSigner(umi); + +await createNft(umi, { + mint: collectionMint, + name: `My Collection`, + uri, + sellerFeeBasisPoints: percentAmount(0), + isCollection: true, // mint as collection NFT +}).sendAndConfirm(umi); ``` #### Create Merkle tree Account @@ -326,215 +324,151 @@ is 32 bytes it's possible to max out transaction sizes very quickly. For example, if your tree has a very low canopy depth, an NFT marketplace may only be able to support simple NFTs transfers rather than support an onchain -bidding system for your cNFTs. The canopy effectively caches proof nodes onchain -so you don't have to pass all of them into the transaction, allowing for more -complex transactions. +bidding system for your cNFTs. The canopy effectively caches proof nodes +onchain, so you don’t have to pass all of them into the transaction, allowing +for more complex transactions. Increasing any of these three values increases the size of the account, thereby increasing the cost associated with creating it. Weigh the benefits accordingly when choosing the values. -Once you know these values, you can use the `createAllocTreeIx` helper function -from the `@solana/spl-account-compression` TS SDK to create the instruction for -creating the empty account. +Once you know these values, you can use the `createTree` method from the +`@metaplex-foundation/mpl-bubblegum` package to create your tree. This +instruction creates and initializes two accounts: -```typescript -import { createAllocTreeIx } from "@solana/spl-account-compression" +1. A `Merkle Tree` account - this holds the merkle hash and is used to verify + the authenticity of data stored. + +2. A `Tree Config` account - this holds additional data specific to compressed + NFTs such as the tree creator, whether the tree is public, and + [other fields - see the Bubblehum program source](https://github.com/metaplex-foundation/mpl-bubblegum/blob/42ffed35da6b2a673efacd63030a360eac3ae64e/programs/bubblegum/program/src/state/mod.rs#L17). + +#### Setting up Umi -const treeKeypair = Keypair.generate() +The `mpl-bubblegum` package is a plugin and cannot be used without the Umi +library from Metaplex. Umi is a framework for making JS/TS clients for onchain +programs that was created by Metaplex. -const allocTreeIx = await createAllocTreeIx( - connection, - treeKeypair.publicKey, - payer.publicKey, - { maxDepth: 20; maxBufferSize: 256 }, - canopyDepth -) +Note that Umi has different implementations for many concepts than web3.js, +including Keypairs, PublicKeys, and Connections. However, it is easy to convert +from web3.js versions of these items to the Umi equivalents. + +To get started, we need to create an Umi instance + +```typescript +import { createUmi } from "@metaplex-foundation/umi-bundle-defaults"; +import { clusterApiUrl } from "@solana/web3.js"; + +const umi = createUmi(clusterApiUrl("devnet")); ``` -Note that this is simply a helper function for calculating the size required by -the account and creating the instruction to send to the System Program for -allocating the account. This function doesn't interact with any -compression-specific programs yet. +The above code initializes an empty Umi instance without any signer or plugin +attached to it. You can find the exhaustive list of the plugins available +[on this Metaplex docs page](https://developers.metaplex.com/umi/metaplex-umi-plugins) -#### Use Bubblegum to Initialize Your Tree +The next part is to add in our imports and attach a signer to our Umi instance. -With the empty tree account created, you then use the Bubblegum program to -initialize the tree. In addition to the Merkle tree account, Bubblegum creates a -tree config account to add cNFT-specific tracking and functionality. +```typescript +import { dasApi } from "@metaplex-foundation/digital-asset-standard-api"; +import { createTree, mplBubblegum } from "@metaplex-foundation/mpl-bubblegum"; +import { keypairIdentity } from "@metaplex-foundation/umi"; +import { createUmi } from "@metaplex-foundation/umi-bundle-defaults"; +import { getKeypairFromFile } from "@solana-developers/helpers"; +import { clusterApiUrl } from "@solana/web3.js"; -Version 0.7 of the `@metaplex-foundation/mpl-bubblegum` TS SDK provides the -helper function `createCreateTreeInstruction` for calling the `create_tree` -instruction on the Bubblegum program. As part of the call, you'll need to derive -the `treeAuthority` PDA expected by the program. This PDA uses the tree's -address as a seed. +const umi = createUmi(clusterApiUrl("devnet")); + +// load keypair from local file system +// See https://github.com/solana-developers/helpers?tab=readme-ov-file#get-a-keypair-from-a-keypair-file +const localKeypair = await getKeypairFromFile(); + +// convert to Umi compatible keypair +const umiKeypair = umi.eddsa.createKeypairFromSecretKey(localKeypair.secretKey); + +// load the MPL Bubblegum program, dasApi plugin and assign a signer to our umi instance +umi.use(keypairIdentity(umiKeypair)).use(mplBubblegum()).use(dasApi()); + +console.log("Loaded UMI with Bubblegum"); +``` + +#### Use Bubblegum to Initialize Your Tree + +With Umi instantiated, we are ready to call the `createTree` method to +instantiate the Merkle tree and tree config accounts. ```typescript -import { - createAllocTreeIx, - SPL_ACCOUNT_COMPRESSION_PROGRAM_ID, - SPL_NOOP_PROGRAM_ID, -} from "@solana/spl-account-compression" -import { - PROGRAM_ID as BUBBLEGUM_PROGRAM_ID, - createCreateTreeInstruction, -} from "@metaplex-foundation/mpl-bubblegum" - -... - -const [treeAuthority, _bump] = PublicKey.findProgramAddressSync( - [treeKeypair.publicKey.toBuffer()], - BUBBLEGUM_PROGRAM_ID -) - -const createTreeIx = createCreateTreeInstruction( - { - treeAuthority, - merkleTree: treeKeypair.publicKey, - payer: payer.publicKey, - treeCreator: payer.publicKey, - logWrapper: SPL_NOOP_PROGRAM_ID, - compressionProgram: SPL_ACCOUNT_COMPRESSION_PROGRAM_ID, - }, - { - maxBufferSize: 256, - maxDepth: 20, - public: false, - }, - BUBBLEGUM_PROGRAM_ID -) +const merkleTree = generateSigner(umi); +const builder = await createTree(umi, { + merkleTree, + maxDepth: 14, + maxBufferSize: 64, +}); +await builder.sendAndConfirm(umi); ``` -The list below shows the required input for this helper function: - -- `accounts` - An object representing the accounts required by the instruction. - This includes: - - `treeAuthority` - Bubblegum expects this to be a PDA derived using the - Merkle tree address as a seed - - `merkleTree` - The Merkle tree account - - `payer` - The address paying for transaction fees, rent, etc. - - `treeCreator` - The address to list as the tree creator - - `logWrapper` - The program to use to expose the data to indexers through - logs; this should be the address of the SPL Noop program unless you have - some other custom implementation - - `compressionProgram` - The compression program to use for initializing the - Merkle tree; this should be the address of the SPL State Compression program - unless you have some other custom implementation -- `args` - An object representing additional arguments required by the - instruction. This includes: - - `maxBufferSize` - The max buffer size of the Merkle tree - - `maxDepth` - The max depth of the Merkle tree - - `public` - When set to `true`, anyone will be able to mint cNFTs from the - tree; when set to `false`, only the tree creator or tree delegate will be - able to min cNFTs from the tree - -When submitted, this will invoke the `create_tree` instruction on the Bubblegum -program. This instruction does three things: - -1. Creates the tree config PDA account -2. Initializes the tree config account with appropriate initial values -3. Issues a CPI to the State Compression program to initialize the empty Merkle - tree account - -Feel free to take a look at the program code -[here](https://github.com/metaplex-foundation/mpl-bubblegum/blob/main/programs/bubblegum/program/src/lib.rs#L887). +The three values supplied i.e. the `merkleTree`, `maxDepth` and `maxBufferSize` +are required in order to create the tree while the rest are optional. For +example, the`tree creator` defaults to the Umi instance identity, while the +`public field to false. + +When set to true, `public` allows anyone to mint from the initialized tree and +if false, only the tree creator will be able to mint from the tree. + +Feel free to look at the code for the +[create_tree instruction handler](https://github.com/metaplex-foundation/mpl-bubblegum/blob/42ffed35da6b2a673efacd63030a360eac3ae64e/programs/bubblegum/program/src/processor/create_tree.rs#L40) +and +[create_tree's expected accounts](https://github.com/metaplex-foundation/mpl-bubblegum/blob/42ffed35da6b2a673efacd63030a360eac3ae64e/programs/bubblegum/program/src/processor/create_tree.rs#L20). #### Mint cNFTs With the Merkle tree account and its corresponding Bubblegum tree config account -initialized, it's possible to mint cNFTs to the tree. The Bubblegum instruction -to use will be either `mint_v1` or `mint_to_collection_v1`, depending on whether -or not you want to the minted cNFT to be part of a collection. +initialized, it’s possible to mint cNFTs to the tree. The Bubblegum library, +provides two instructions we can make use of depending on whether the minted +asset will belong to a collection. -Version 0.7 of the `@metaplex-foundation/mpl-bubblegum` TS SDK provides helper -functions `createMintV1Instruction` and `createMintToCollectionV1Instruction` to -make it easier for you to create the instructions. +The two instructions are -Both functions will require you to pass in the NFT metadata and a list of -accounts required to mint the cNFT. Below is an example of minting to a -collection: +1. **MintV1** ```typescript -const mintWithCollectionIx = createMintToCollectionV1Instruction( - { - payer: payer.publicKey, - merkleTree: treeAddress, - treeAuthority, - treeDelegate: payer.publicKey, - leafOwner: destination, - leafDelegate: destination, - collectionAuthority: payer.publicKey, - collectionAuthorityRecordPda: BUBBLEGUM_PROGRAM_ID, - collectionMint: collectionDetails.mint, - collectionMetadata: collectionDetails.metadata, - editionAccount: collectionDetails.masterEditionAccount, - compressionProgram: SPL_ACCOUNT_COMPRESSION_PROGRAM_ID, - logWrapper: SPL_NOOP_PROGRAM_ID, - bubblegumSigner, - tokenMetadataProgram: TOKEN_METADATA_PROGRAM_ID, - }, - { - metadataArgs: Object.assign(nftMetadata, { - collection: { key: collectionDetails.mint, verified: false }, - }), +await mintV1(umi, { + leafOwner, + merkleTree, + metadata: { + name: "My Compressed NFT", + uri: "https://example.com/my-cnft.json", + sellerFeeBasisPoints: 0, // 0% + collection: none(), + creators: [ + { address: umi.identity.publicKey, verified: false, share: 100 }, + ], }, -); +}).sendAndConfirm(umi); ``` -Notice that there are two arguments for the helper function: `accounts` and -`args`. The `args` parameter is simply the NFT metadata, while `accounts` is an -object listing the accounts required by the instruction. There are admittedly a -lot of them: - -- `payer` - the account that will pay for the transaction fees, rent, etc. -- `merkleTree` - the Merkle tree account -- `treeAuthority` - the tree authority; should be the same PDA you derived - previously -- `treeDelegate` - the tree delegate; this is usually the same as the tree - creator -- `leafOwner` - the desired owner of the compressed NFT being minted -- `leafDelegate` - the desired delegate of the compressed NFT being minted; this - is usually the same as the leaf owner -- `collectionAuthority` - the authority of the collection NFT -- `collectionAuthorityRecordPda` - optional collection authority record PDA; - there typically is none, in which case you should put the Bubblegum program - address -- `collectionMint` - the mint account for the collection NFT -- `collectionMetadata` - the metadata account for the collection NFT -- `editionAccount` - the master edition account of the collection NFT -- `compressionProgram` - the compression program to use; this should be the - address of the SPL State Compression program unless you have some other custom - implementation -- `logWrapper` - the program to use to expose the data to indexers through logs; - this should be the address of the SPL Noop program unless you have some other - custom implementation -- `bubblegumSigner` - a PDA used by the Bubblegrum program to handle collection - verification -- `tokenMetadataProgram` - the token metadata program that was used for the - collection NFT; this is usually always the Metaplex Token Metadata program - -Minting without a collection requires fewer accounts, none of which are -exclusive to minting without a collection. You can take a look at the example -below. +2. **mintToCollectionV1** ```typescript -const mintWithoutCollectionIx = createMintV1Instruction( - { - payer: payer.publicKey, - merkleTree: treeAddress, - treeAuthority, - treeDelegate: payer.publicKey, - leafOwner: destination, - leafDelegate: destination, - compressionProgram: SPL_ACCOUNT_COMPRESSION_PROGRAM_ID, - logWrapper: SPL_NOOP_PROGRAM_ID, - }, - { - message: nftMetadata, +await mintToCollectionV1(umi, { + leafOwner, + merkleTree, + collectionMint, + metadata: { + name: "My Compressed NFT", + uri: "https://example.com/my-cnft.json", + sellerFeeBasisPoints: 0, // 0% + collection: { key: collectionMint, verified: false }, + creators: [ + { address: umi.identity.publicKey, verified: false, share: 100 }, + ], }, -); +}).sendAndConfirm(umi); ``` +Both functions will require you to pass in the NFT metadata and a list of +accounts required to mint the cNFT such as the `leafOwner`, `merkleTree` account +etc. + ### Interact with cNFTs It's important to note that cNFTs _are not_ SPL tokens. That means your code @@ -544,17 +478,26 @@ fetching, querying, transferring, etc. #### Fetch cNFT data The simplest way to fetch data from an existing cNFT is to use the -[Digital Asset Standard Read API](https://solana.com/developers/guides/javascript/compressed-nfts#reading-compressed-nfts-metadata) -(Read API). Note that this is separate from the standard JSON RPC. To use the -Read API, you'll need to use a supporting RPC Provider. Metaplex maintains a -(likely non-exhaustive) -[list of RPC providers](https://developers.metaplex.com/bubblegum/rpcs) that -support the Read API. In this lesson we'll be using +[Digital Asset Standard Read API](https://developers.metaplex.com/das-api) (Read +API). Note that this is separate from the standard JSON RPC. To use the Read +API, you’ll need to use a supporting RPC Provider. Metaplex maintains a (likely +non-exhaustive) +[list of RPC providers that support the DAS Read API](https://developers.metaplex.com/rpc-providers#rpcs-with-das-support). + +In this lesson we’ll be using [Helius](https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api) as they have free support for Devnet. -To use the Read API to fetch a specific cNFT, you need to have the cNFT's asset -ID. However, after minting cNFTs, you'll have at most two pieces of information: +You might need to update your RPC connection endpoint in the Umi instantiation + +```typescript +const umi = createUmi( + "https://devnet.helius-rpc.com/?api-key=YOUR-HELIUS-API-KEY", +); +``` + +To use the Read API to fetch a specific cNFT, you need to have the cNFT’s asset +ID. However, after minting cNFTs, you’ll have at most two pieces of information: 1. The transaction signature 2. The leaf index (possibly) @@ -562,8 +505,8 @@ ID. However, after minting cNFTs, you'll have at most two pieces of information: The only real guarantee is that you'll have the transaction signature. It is **possible** to locate the leaf index from there, but it involves some fairly complex parsing. The short story is you must retrieve the relevant instruction -logs from the Noop program and parse them to find the leaf index. We'll cover -this more in depth in a future lesson. For now, we'll assume you know the leaf +logs from the `Noop program` and parse them to find the leaf index. We’ll cover +this more in depth in a future lesson. For now, we’ll assume you know the leaf index. This is a reasonable assumption for most mints given that the minting will be @@ -579,32 +522,32 @@ ID and the following seeds: 2. The Merkle tree address 3. The leaf index -The indexer essentially observes transaction logs from the Noop program as they -happen and stores the cNFT metadata that was hashed and stored in the Merkle -tree. This enables them to surface that data when requested. This asset id is -what the indexer uses to identify the particular asset. +The indexer essentially observes transaction logs from the `Noop program` as +they happen and stores the cNFT metadata that was hashed and stored in the +Merkle tree. This enables them to surface that data when requested. This asset +ID is what the indexer uses to identify the particular asset. -For simplicity, you can just use the `getLeafAssetId` helper function from the -Bubblegum SDK. With the asset ID, fetching the cNFT is fairly straightforward. -Simply use the `getAsset` method provided by the supporting RPC provider: +For simplicity, you can just use the `findLeafAssetIdPda` helper function from +the Bubblegum library. ```typescript -const assetId = await getLeafAssetId(treeAddress, new BN(leafIndex)); -const response = await fetch(process.env.RPC_URL, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ - jsonrpc: "2.0", - id: "my-id", - method: "getAsset", - params: { - id: assetId, - }, - }), +const [assetId, bump] = await findLeafAssetIdPda(umi, { + merkleTree, + leafIndex, +}); +``` + +With the asset ID, fetching the cNFT is fairly straightforward. Simply use the +`getAsset` method provided by the supporting RPC provider and the `dasApi` +library: + +```typescript +const [assetId, bump] = await findLeafAssetIdPda(umi, { + merkleTree, + leafIndex, }); -const { result } = await response.json(); -console.log(JSON.stringify(result, null, 2)); +const rpcAsset = await umi.rpc.getAsset(assetId); ``` This will return a JSON object that is comprehensive of what a traditional NFT's @@ -662,138 +605,17 @@ In broad terms, this involves a five step process: 4. Prepare the asset proof as a list of `AccountMeta` objects 5. Build and send the Bubblegum transfer instruction -The first two steps are very similar. Using your supporting RPC provider, use -the `getAsset` and `getAssetProof` methods to fetch the asset data and proof, -respectively. +Fortunately, we can make use of the `transfer` method which takes care of all +these steps. ```typescript -const assetDataResponse = await fetch(process.env.RPC_URL, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ - jsonrpc: "2.0", - id: "my-id", - method: "getAsset", - params: { - id: assetId, - }, - }), -}); -const assetData = (await assetDataResponse.json()).result; - -const assetProofResponse = await fetch(process.env.RPC_URL, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ - jsonrpc: "2.0", - id: "my-id", - method: "getAssetProof", - params: { - id: assetId, - }, - }), -}); -const assetProof = (await assetProofResponse.json()).result; -``` - -The third step is to fetch the Merkle tree account. The simplest way to do this -is using the `ConcurrentMerkleTreeAccount` type from -`@solana/spl-account-compression`: - -```typescript -const treePublicKey = new PublicKey(assetData.compression.tree); - -const treeAccount = await ConcurrentMerkleTreeAccount.fromAccountAddress( - connection, - treePublicKey, -); -``` - -Step four is the most conceptually challenging step. Using the three pieces of -information gathered, you'll need to assemble the proof path for the cNFT's -corresponding leaf. The proof path is represented as accounts passed to the -program instruction. The program uses each of the account addresses as proof -nodes to prove the leaf data is what you say it is. +const assetWithProof = await getAssetWithProof(umi, assetId); -The full proof is provided by the indexer as shown above in `assetProof`. -However, you can exclude the same number of tail-end accounts from the proof as -the depth of the canopy. - -```typescript -const canopyDepth = treeAccount.getCanopyDepth() || 0; - -const proofPath: AccountMeta[] = assetProof.proof - .map((node: string) => ({ - pubkey: new PublicKey(node), - isSigner: false, - isWritable: false, - })) - .slice(0, assetProof.proof.length - canopyDepth); -``` - -Finally, you can assemble the transfer instruction. The instruction helper -function, `createTransferInstruction`, requires the following arguments: - -- `accounts` - a list of instruction accounts, as expected; they are as follows: - - `merkleTree` - the Merkle tree account - - `treeAuthority` - the Merkle tree authority - - `leafOwner` - the owner of the leaf (cNFT) in question - - `leafDelegate` - the delegate of the leaf (cNFT) in question; if no delegate - has been added then this should be the same as `leafOwner` - - `newLeafOwner` - the address of the new owner post-transfer - - `logWrapper` - the program to use to expose the data to indexers through - logs; this should be the address of the SPL Noop program unless you have - some other custom implementation - - `compressionProgram` - the compression program to use; this should be the - address of the SPL State Compression program unless you have some other - custom implementation - - `anchorRemainingAccounts` - this is where you add the proof path -- `args` - additional arguments required by the instruction; they are: - - `root` - the root Merkle tree node from the asset proof; this is provided by - the indexer as a string and must be converted to bytes first - - `dataHash` - the hash of the asset data retrieved from the indexer; this is - provided by the indexer as a string and must be converted to bytes first - - `creatorHash` - the hash of the cNFT creator as retrieved from the indexer; - this is provided by the indexer as a string and must be converted to bytes - first - - `nonce` - used to ensure that no two leafs have the same hash; this value - should be the same as `index` - - `index` - the index where the cNFT's leaf is located on the Merkle tree - -An example of this is shown below. Note that the first 3 lines of code grab -additional information nested in the objects shown previously so they are ready -to go when assembling the instruction itself. - -```typescript -const treeAuthority = treeAccount.getAuthority(); -const leafOwner = new PublicKey(assetData.ownership.owner); -const leafDelegate = assetData.ownership.delegate - ? new PublicKey(assetData.ownership.delegate) - : leafOwner; - -const transferIx = createTransferInstruction( - { - merkleTree: treePublicKey, - treeAuthority, - leafOwner, - leafDelegate, - newLeafOwner: receiver, - logWrapper: SPL_NOOP_PROGRAM_ID, - compressionProgram: SPL_ACCOUNT_COMPRESSION_PROGRAM_ID, - anchorRemainingAccounts: proofPath, - }, - { - root: [...new PublicKey(assetProof.root.trim()).toBytes()], - dataHash: [ - ...new PublicKey(assetData.compression.data_hash.trim()).toBytes(), - ], - creatorHash: [ - ...new PublicKey(assetData.compression.creator_hash.trim()).toBytes(), - ], - nonce: assetData.compression.leaf_id, - index: assetData.compression.leaf_id, - }, -); +await transfer(umi, { + ...assetWithProof, + leafOwner: currentLeafOwner, + newLeafOwner: newLeafOwner.publicKey, +}).sendAndConfirm(umi); ``` ### Conclusion @@ -802,15 +624,9 @@ We've covered the primary skills needed to interact with cNFTs, but haven't been fully comprehensive. You can also use Bubblegum to do things like burn, verify, delegate, and more. We won't go through these, but these instructions are similar to the mint and transfer process. If you need this additional -functionality, take a look at the -[Bubblegum client source code](https://github.com/metaplex-foundation/mpl-bubblegum/tree/main/clients/js-solita) -and leverage the helper functions it provides. - -Keep in mind that compression is fairly new. Available tooling will evolve -rapidly but the principles you've learned in this lesson will likely remain the -same. These principles can also be broadened to arbitrary state compression, so -be sure to master them here so you're ready for more fun stuff in future -lessons! +functionality, take a look at the +[Bubblegum docs](https://developers.metaplex.com/bubblegum) on how to leverage +the helper functions it provides. ## Lab @@ -820,540 +636,398 @@ from a Merkle tree. #### 1. Get the starter code -First things first, clone the starter code from the `starter` branch of our -[cNFT lab repository](https://github.com/Unboxed-Software/solana-cnft-demo). +To begin create and initialize an empty NPM project and change directory into +it. -`git clone https://github.com/Unboxed-Software/solana-cnft-demo.git` +```bash +mkdir cnft-demo +npm init -y +cd cnft-demo +``` -`cd solana-cnft-demo` +Install all the required dependencies -`npm install` +```bash +npm i @solana/web3.js @solana-developers/helpers@2.5.2 @metaplex-foundation/mpl-token-metadata @metaplex-foundation/mpl-bubblegum @metaplex-foundation/digital-asset-standard-api @metaplex-foundation/umi-bundle-defaults -Take some time to familiarize yourself with the starter code provided. Most -important are the helper functions provided in `utils.ts` and the URIs provided -in `uri.ts`. +npm i --save-dev esrun +``` -The `uri.ts` file provides 10k URIs that you can use for the offchain portion of -your NFT metadata. You can, of course, create your own metadata. But this lesson -isn't explicitly about preparing metadata so we've provided some for you. +In this first script, we will learn about creating a tree, hence let's create +the file `create-tree.ts` -The `utils.ts` file has a few helper functions to keep you from writing more -unnecessary boilerplate than you need to. They are as follows: +```bash +mkdir src && touch src/create-tree.ts +``` -- `getOrCreateKeypair` will create a new keypair for you and save it to a `.env` - file, or if there's already a private key in the `.env` file it will - initialize a keypair from that. -- `airdropSolIfNeeded` will airdrop some Devnet SOL to a specified address if - that address's balance is below 1 SOL. -- `createNftMetadata` will create the NFT metadata for a given creator public - key and index. The metadata it's getting is just dummy metadata using the URI - corresponding to the provided index from the `uri.ts` list of URIs. -- `getOrCreateCollectionNFT` will fetch the collection NFT from the address - specified in `.env` or if there is none it will create a new one and add the - address to `.env`. +This Umi instantiation code will be repated in a lot of files, so feel free to +create a wrapper file to instantiate it: -Finally, there's some boilerplate in `index.ts` that calls creates a new Devnet -connection, calls `getOrCreateKeypair` to initialize a “wallet,” and calls -`airdropSolIfNeeded` to fund the wallet if its balance is low. +```typescript filename="crate-tree.ts" +import { dasApi } from "@metaplex-foundation/digital-asset-standard-api"; +import { createTree, mplBubblegum } from "@metaplex-foundation/mpl-bubblegum"; +import { generateSigner, keypairIdentity } from "@metaplex-foundation/umi"; +import { createUmi } from "@metaplex-foundation/umi-bundle-defaults"; +import { + getExplorerLink, + getKeypairFromFile, +} from "@solana-developers/helpers"; +import { clusterApiUrl } from "@solana/web3.js"; -We will be writing all of our code in the `index.ts`. +const umi = createUmi(clusterApiUrl("devnet")); -#### 2. Create the Merkle tree account +// load keypair from local file system +// See https://github.com/solana-developers/helpers?tab=readme-ov-file#get-a-keypair-from-a-keypair-file +const localKeypair = await getKeypairFromFile(); -We'll start by creating the Merkle tree account. Let's encapsulate this in a -function that will eventually create _and_ initialize the account. We'll put it -below our `main` function in `index.ts`. Let's call it -`createAndInitializeTree`. For this function to work, it will need the following -parameters: - -- `connection` - a `Connection` to use for interacting with the network. -- `payer` - a `Keypair` that will pay for transactions. -- `maxDepthSizePair` - a `ValidDepthSizePair`. This type comes from - `@solana/spl-account-compression`. It's a simple object with properties - `maxDepth` and `maxBufferSize` that enforces a valid combination of the two - values. -- `canopyDepth` - a number for the canopy depth In the body of the function, - we'll generate a new address for the tree, then create the instruction for - allocating a new Merkle tree account by calling `createAllocTreeIx` from - `@solana/spl-account-compression`. +// convert to Umi compatible keypair +const umiKeypair = umi.eddsa.createKeypairFromSecretKey(localKeypair.secretKey); -```typescript -async function createAndInitializeTree( - connection: Connection, - payer: Keypair, - maxDepthSizePair: ValidDepthSizePair, - canopyDepth: number, -) { - const treeKeypair = Keypair.generate(); - - const allocTreeIx = await createAllocTreeIx( - connection, - treeKeypair.publicKey, - payer.publicKey, - maxDepthSizePair, - canopyDepth, - ); -} +// load the MPL Bubblegum program, dasApi plugin and assign a signer to our umi instance +umi.use(keypairIdentity(umiKeypair)).use(mplBubblegum()).use(dasApi()); ``` -#### 3. Use Bubblegum to initialize the Merkle tree and create the tree config account - -With the instruction for creating the tree ready to go, we can create an -instruction for invoking `create_tree` on the Bubblegum program. This will -initialize the Merkle tree account _and_ create a new tree config account on the -Bubblegum program. - -This instruction needs us to provide the following: - -- `accounts` - an object of required accounts; this includes: - - `treeAuthority` - this should be a PDA derived with the Merkle tree address - and the Bubblegum program - - `merkleTree` - the address of the Merkle tree - - `payer` - the transaction fee payer - - `treeCreator` - the address of the tree creator; we'll make this the same as - `payer` - - `logWrapper` - make this the `SPL_NOOP_PROGRAM_ID` - - `compressionProgram` - make this the `SPL_ACCOUNT_COMPRESSION_PROGRAM_ID` -- `args` - a list of instruction arguments; this includes: - - `maxBufferSize` - the buffer size from our function's `maxDepthSizePair` - parameter - - `maxDepth` - the max depth from our function's `maxDepthSizePair` parameter - - `public` - whether or no the tree should be public; we'll set this to - `false` - -Finally, we can add both instructions to a transaction and submit the -transaction. Keep in mind that the transaction needs to be signed by both the -`payer` and the `treeKeypair`. +In the code above, we load the user's keypair wallet from the system wallet +located at `.config/solana/id.json`, instantiate a new Umi instance and assign +the keypair to it. We also assign the Bubblegum and dasApi plugins to it as +well. -```typescript -async function createAndInitializeTree( - connection: Connection, - payer: Keypair, - maxDepthSizePair: ValidDepthSizePair, - canopyDepth: number, -) { - const treeKeypair = Keypair.generate(); - - const allocTreeIx = await createAllocTreeIx( - connection, - treeKeypair.publicKey, - payer.publicKey, - maxDepthSizePair, - canopyDepth, - ); - - const [treeAuthority, _bump] = PublicKey.findProgramAddressSync( - [treeKeypair.publicKey.toBuffer()], - BUBBLEGUM_PROGRAM_ID, - ); - - const createTreeIx = createCreateTreeInstruction( - { - treeAuthority, - merkleTree: treeKeypair.publicKey, - payer: payer.publicKey, - treeCreator: payer.publicKey, - logWrapper: SPL_NOOP_PROGRAM_ID, - compressionProgram: SPL_ACCOUNT_COMPRESSION_PROGRAM_ID, - }, - { - maxBufferSize: maxDepthSizePair.maxBufferSize, - maxDepth: maxDepthSizePair.maxDepth, - public: false, - }, - ); - - const tx = new Transaction().add(allocTreeIx, createTreeIx); - tx.feePayer = payer.publicKey; - - try { - const txSignature = await sendAndConfirmTransaction( - connection, - tx, - [treeKeypair, payer], - { - commitment: "confirmed", - skipPreflight: true, - }, - ); - - console.log(`https://explorer.solana.com/tx/${txSignature}?cluster=devnet`); - - console.log("Tree Address:", treeKeypair.publicKey.toBase58()); - - return treeKeypair.publicKey; - } catch (err: any) { - console.error("\nFailed to create Merkle tree:", err); - throw err; - } -} +#### 2. Create the Merkle tree account + +We’ll start by creating the Merkle tree account. To do this we will use the +`createTree` method from Metaplex Bubblegum program. + +This function takes in three default values + +- `merkleTree` - The Merkle tree account address +- `maxDepth` - Determines the max number of leaves the tree will hold and + therefore the max number of cNFTs that the tree can contain. +- `maxBufferSize` - Determines how many concurrent changes can occur in the tree + in parallel. + +You can also supply in optional fields such as + +- `treeCreator` - The address of the tree authority, defaults to current + `umi.identity` instance. +- `public` - Determines whether anyone else apart from the tree creator will be + able to mint cNFTs from the tree. + +```typescript filename="crate-tree.ts" +const merkleTree = generateSigner(umi); +const builder = await createTree(umi, { + merkleTree, + maxDepth: 14, + maxBufferSize: 64, +}); +await builder.sendAndConfirm(umi); + +let explorerLink = getExplorerLink("address", merkleTree.publicKey, "devnet"); +console.log(`Explorer link: ${explorerLink}`); +console.log("Merkle tree address is :", merkleTree.publicKey); +console.log("✅ Finished successfully!"); ``` -If you want to test what you have so far, feel free to call -`createAndInitializeTree` from `main` and provide small values for the max depth -and max buffer size. +Run the `create-tree.ts` script using esrun -```typescript -async function main() { - const connection = new Connection(clusterApiUrl("devnet"), "confirmed"); - const wallet = await getOrCreateKeypair("Wallet_1"); - await airdropSolIfNeeded(wallet.publicKey); - - const maxDepthSizePair: ValidDepthSizePair = { - maxDepth: 3, - maxBufferSize: 8, - }; - - const canopyDepth = 0; - - const treeAddress = await createAndInitializeTree( - connection, - wallet, - maxDepthSizePair, - canopyDepth, - ); -} +```bash +npx esrun create-tree.ts +``` + +Make sure to remember the Merkle tree address as we will be using it in the next +step when minting compressed NFTs. + +Your output will be similar to this + +```bash +Explorer link: https://explorer.solana.com/address/ZwzNxXw83PUmWSypXmqRH669gD3hF9rEjHWPpVghr5h?cluster=devnet +Merkle tree address is : ZwzNxXw83PUmWSypXmqRH669gD3hF9rEjHWPpVghr5h +✅ Finished successfully! ``` -Keep in mind that Devnet SOL is throttled so if you test too many times you -might run out of Devnet SOL before we get to minting. To test, in your terminal -run the following: +Congratulations! You've created a Bubblegum tree. Follow the Explorer link to +make sure that the process finished successfully, -`npm run start` +![Solana Explorer with details about created Merkle tree](/public/assets/courses/unboxed/solana-explorer-create-tree.png) -#### 4. Mint cNFTs to your tree +#### 3. Mint cNFTs to your tree Believe it or not, that's all you needed to do to set up your tree to compressed NFTs! Now let's turn our attention to minting. -First, let's declare a function called `mintCompressedNftToCollection`. It will -need the following parameters: - -- `connection` - a `Connection` to use for interacting with the network. -- `payer` - a `Keypair` that will pay for transactions. -- `treeAddress` - the Merkle tree's address -- `collectionDetails` - the details of the collection as type - `CollectionDetails` from `utils.ts` -- `amount` - the number of cNFTs to mint - -The body of this function will do the following: - -1. Derive the tree authority just like before. Again, this is a PDA derived from - the Merkle tree address and the Bubblegum program. -2. Derive the `bubblegumSigner`. This is a PDA derived from the string - `"collection_cpi"` and the Bubblegum program and is essential for minting to - a collection. -3. Create the cNFT metadata by calling `createNftMetadata` from our `utils.ts` - file. -4. Create the mint instruction by calling `createMintToCollectionV1Instruction` - from the Bubblegum SDK. -5. Build and send a transaction with the mint instruction -6. Repeat steps 3-6 `amount` number of times - -The `createMintToCollectionV1Instruction` takes two arguments: `accounts` and -`args`. The latter is simply the NFT metadata. As with all complex instructions, -the primary hurdle is knowing which accounts to provide. So let's go through -them real quick: - -- `payer` - the account that will pay for the transaction fees, rent, etc. -- `merkleTree` - the Merkle tree account -- `treeAuthority` - the tree authority; should be the same PDA you derived - previously -- `treeDelegate` - the tree delegate; this is usually the same as the tree - creator -- `leafOwner` - the desired owner of the compressed NFT being minted -- `leafDelegate` - the desired delegate of the compressed NFT being minted; this - is usually the same as the leaf owner -- `collectionAuthority` - the authority of the collection NFT -- `collectionAuthorityRecordPda` - optional collection authority record PDA; - there typically is none, in which case you should put the Bubblegum program - address -- `collectionMint` - the mint account for the collection NFT -- `collectionMetadata` - the metadata account for the collection NFT -- `editionAccount` - the master edition account of the collection NFT -- `compressionProgram` - the compression program to use; this should be the - address of the SPL State Compression program unless you have some other custom - implementation -- `logWrapper` - the program to use to expose the data to indexers through logs; - this should be the address of the SPL Noop program unless you have some other - custom implementation -- `bubblegumSigner` - a PDA used by the Bubblegrum program to handle collection - verification -- `tokenMetadataProgram` - the token metadata program that was used for the - collection NFT; this is usually always the Metaplex Token Metadata program - -When you put it all together, this is what it'll look like: +First, let's create a new file called `mint-compressed-nft-to-collection.ts`, +add our imports and instantiate Umi -```typescript -async function mintCompressedNftToCollection( - connection: Connection, - payer: Keypair, - treeAddress: PublicKey, - collectionDetails: CollectionDetails, - amount: number, -) { - // Derive the tree authority PDA ('TreeConfig' account for the tree account) - const [treeAuthority] = PublicKey.findProgramAddressSync( - [treeAddress.toBuffer()], - BUBBLEGUM_PROGRAM_ID, - ); - - // Derive the bubblegum signer, used by the Bubblegum program to handle "collection verification" - // Only used for `createMintToCollectionV1` instruction - const [bubblegumSigner] = PublicKey.findProgramAddressSync( - [Buffer.from("collection_cpi", "utf8")], - BUBBLEGUM_PROGRAM_ID, - ); - - for (let i = 0; i < amount; i++) { - // Compressed NFT Metadata - const compressedNFTMetadata = createNftMetadata(payer.publicKey, i); - - // Create the instruction to "mint" the compressed NFT to the tree - const mintIx = createMintToCollectionV1Instruction( - { - payer: payer.publicKey, // The account that will pay for the transaction - merkleTree: treeAddress, // The address of the tree account - treeAuthority, // The authority of the tree account, should be a PDA derived from the tree account address - treeDelegate: payer.publicKey, // The delegate of the tree account, should be the same as the tree creator by default - leafOwner: payer.publicKey, // The owner of the compressed NFT being minted to the tree - leafDelegate: payer.publicKey, // The delegate of the compressed NFT being minted to the tree - collectionAuthority: payer.publicKey, // The authority of the "collection" NFT - collectionAuthorityRecordPda: BUBBLEGUM_PROGRAM_ID, // Must be the Bubblegum program id - collectionMint: collectionDetails.mint, // The mint of the "collection" NFT - collectionMetadata: collectionDetails.metadata, // The metadata of the "collection" NFT - editionAccount: collectionDetails.masterEditionAccount, // The master edition of the "collection" NFT - compressionProgram: SPL_ACCOUNT_COMPRESSION_PROGRAM_ID, - logWrapper: SPL_NOOP_PROGRAM_ID, - bubblegumSigner, - tokenMetadataProgram: TOKEN_METADATA_PROGRAM_ID, - }, - { - metadataArgs: Object.assign(compressedNFTMetadata, { - collection: { key: collectionDetails.mint, verified: false }, - }), - }, - ); - - try { - // Create new transaction and add the instruction - const tx = new Transaction().add(mintIx); - - // Set the fee payer for the transaction - tx.feePayer = payer.publicKey; - - // Send the transaction - const txSignature = await sendAndConfirmTransaction( - connection, - tx, - [payer], - { commitment: "confirmed", skipPreflight: true }, - ); - - console.log( - `https://explorer.solana.com/tx/${txSignature}?cluster=devnet`, - ); - } catch (err) { - console.error("\nFailed to mint compressed NFT:", err); - throw err; +```typescript filename="mint-compressed-nft-to-collection.ts" +import { dasApi } from "@metaplex-foundation/digital-asset-standard-api"; +import { + findLeafAssetIdPda, + LeafSchema, + mintToCollectionV1, + mplBubblegum, + parseLeafFromMintToCollectionV1Transaction, +} from "@metaplex-foundation/mpl-bubblegum"; +import { + keypairIdentity, + publicKey as UMIPublicKey, +} from "@metaplex-foundation/umi"; +import { createUmi } from "@metaplex-foundation/umi-bundle-defaults"; +import { getKeypairFromFile } from "@solana-developers/helpers"; +import { clusterApiUrl } from "@solana/web3.js"; + +const umi = createUmi(clusterApiUrl("devnet")); + +// load keypair from local file system +// See https://github.com/solana-developers/helpers?tab=readme-ov-file#get-a-keypair-from-a-keypair-file +const localKeypair = await getKeypairFromFile(); + +// convert to Umi compatible keypair +const umiKeypair = umi.eddsa.createKeypairFromSecretKey(localKeypair.secretKey); + +// load the MPL Bubblegum program, dasApi plugin and assign a signer to our umi instance +umi.use(keypairIdentity(umiKeypair)).use(mplBubblegum()).use(dasApi()); +``` + +I am going to be +[recycling a Collection NFT](https://explorer.solana.com/address/D2zi1QQmtZR5fk7wpA1Fmf6hTY2xy8xVMyNgfq6LsKy1?cluster=devnet) +I already created in the NFTs with Metaplex lesson, but if you'd like to create +a new collection for this lesson, check out the code +[on this repo](https://github.com/solana-developers/professional-education/blob/main/labs/metaplex-umi/create-collection.ts) + + +Find the code to create a Metaplex Collection NFT in our [NFTs with Metaplex lesson](https://solana.com/developers/courses/tokens-and-nfts/nfts-with-metaplex#add-the-nft-to-a-collection). + + +To mint a compressed NFT to a collection we will need + +- `leafOwner` - The recipient of the compressed NFT + +- `merkleTree` - The Merkle tree address we created in the previous step + +- `collection` - The collection our cNFT will belong to. This is not required, + and you can leave it out if your cNFT doesn't belong to a collection. + +- `metadata` - Your offchain metadata. This lesson won't focus onto how to + prepare your metadata, but you can check out the + [recommended structure from Metaplex](https://developers.metaplex.com/token-metadata/token-standard#the-non-fungible-standard). + +Our cNFT will use this structure we already prepared earlier. + +```json filename="nft.json" +{ + "name": "My NFT", + "symbol": "MN", + "description": "My NFT Description", + "image": "https://lycozm33rkk5ozjqldiuzc6drazmdp5d5g3g7foh3gz6rz5zp7va.arweave.net/XgTss3uKlddlMFjRTIvDiDLBv6Pptm-Vx9mz6Oe5f-o", + "attributes": [ + { + "trait_type": "Background", + "value": "transparent" + }, + { + "trait_type": "Shape", + "value": "sphere" } - } + ] } ``` -This is a great point to test with a small tree. Simply update `main` to call -`getOrCreateCollectionNFT` then `mintCompressedNftToCollection`: +Putting it all into code, we will have -```typescript -async function main() { - const connection = new Connection(clusterApiUrl("devnet"), "confirmed"); - const wallet = await getOrCreateKeypair("Wallet_1"); - await airdropSolIfNeeded(wallet.publicKey); - - const maxDepthSizePair: ValidDepthSizePair = { - maxDepth: 3, - maxBufferSize: 8, - }; - - const canopyDepth = 0; - - const treeAddress = await createAndInitializeTree( - connection, - wallet, - maxDepthSizePair, - canopyDepth, - ); - - const collectionNft = await getOrCreateCollectionNFT(connection, wallet); - - await mintCompressedNftToCollection( - connection, - wallet, - treeAddress, - collectionNft, - 2 ** maxDepthSizePair.maxDepth, - ); -} +```typescript filename="mint-compressed-nft-to-collection.ts" +const merkleTree = UMIPublicKey("ZwzNxXw83PUmWSypXmqRH669gD3hF9rEjHWPpVghr5h"); + +const collectionMint = UMIPublicKey( + "D2zi1QQmtZR5fk7wpA1Fmf6hTY2xy8xVMyNgfq6LsKy1", +); + +const uintSig = await( + await mintToCollectionV1(umi, { + leafOwner: umi.identity.publicKey, + merkleTree, + collectionMint, + metadata: { + name: "My NFT", + uri: "https://chocolate-wet-narwhal-846.mypinata.cloud/ipfs/QmeBRVEmASS3pyK9YZDkRUtAham74JBUZQE3WD4u4Hibv9", + sellerFeeBasisPoints: 0, // 0% + collection: { key: collectionMint, verified: false }, + creators: [ + { + address: umi.identity.publicKey, + verified: false, + share: 100, + }, + ], + }, + }).sendAndConfirm(umi), +).signature; + +const b64Sig = base58.deserialize(uintSig); +console.log(b64Sig); ``` -Again, to run, in your terminal type: `npm run start` +The difference between the first statement is that we are returning the byte +array representing the transaction signature. -#### 5. Read existing cNFT data +We need this has in order to be able to get the leaf schema and with this schema +derive the asset ID. -Now that we've written code to mint cNFTs, let's see if we can actually fetch -their data. This is tricky because the onchain data is just the Merkle tree -account, the data from which can be used to verify existing information as -accurate but is useless in conveying what the information is. +```typescript filename="mint-compressed-nft-to-collection.ts" +const leaf: LeafSchema = await parseLeafFromMintToCollectionV1Transaction( + umi, + uintSig, +); +const assetId = findLeafAssetIdPda(umi, { + merkleTree, + leafIndex: leaf.nonce, +})[0]; +``` -Let's start by declaring a function `logNftDetails` that takes as parameters -`treeAddress` and `nftsMinted`. +With everything in place, we can now run our script +`mint-compressed-nft-to-collection.ts` + +```bash +npx esrun mint-compressed-nft-to-collection.ts +``` -At this point we don't actually have a direct identifier of any kind that points -to our cNFT. To get that, we'll need to know the leaf index that was used when -we minted our cNFT. We can then use that to derive the asset ID used by the Read -API and subsequently use the Read API to fetch our cNFT data. +Your output should resemble -In our case, we created a non-public tree and minted 8 cNFTs, so we know that -the leaf indexes used were 0-7. With this, we can use the `getLeafAssetId` -function from `@metaplex-foundation/mpl-bubblegum` to get the asset ID. +```bash +asset id: D4A8TYkKE5NzkqBQ4mPybgFbAUDN53fwJ64b8HwEEuUS +✅ Finished successfully! +``` + +We aren't returning the Explorer link because this address won't exists on the +Solana state but is indexed by RPCs that support the DAS API. -Finally, we can use an RPC that supports the -[Read API](https://solana.com/developers/guides/javascript/compressed-nfts) to -fetch the asset. We'll be using -[Helius](https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api), -but feel free to choose your own RPC provider. To use Helius, you'll need to get -a free API Key from [the Helius website](https://dev.helius.xyz/). Then add your -`RPC_URL` to your `.env` file. For example: +In the next step we will query this address to fetch out cNFT details. +#### 4. Read existing cNFT data + +Now that we’ve written code to mint cNFTs, let’s see if we can actually fetch +their data. + +Create a new file `fetch-cnft-details.ts` + ```bash -## Add this -RPC_URL=https://devnet.helius-rpc.com/?api-key=YOUR_API_KEY +fetch-cnft-details.ts ``` -Then simply issue a POST request to your provided RPC URL and put the `getAsset` -information in the body: +Import our packages and instantiate Umi. Here we will finally make use of the +`umi.use(dasApi())` we've been importing. -```typescript -async function logNftDetails(treeAddress: PublicKey, nftsMinted: number) { - for (let i = 0; i < nftsMinted; i++) { - const assetId = await getLeafAssetId(treeAddress, new BN(i)); - console.log("Asset ID:", assetId.toBase58()); - const response = await fetch(process.env.RPC_URL, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ - jsonrpc: "2.0", - id: "my-id", - method: "getAsset", - params: { - id: assetId, - }, - }), - }); - const { result } = await response.json(); - console.log(JSON.stringify(result, null, 2)); - } -} +In the instantiation of Umi, we are going to make a change to our connection +endpoint and use an RPC that supports the DAS API. + +Be sure to update this with your Helius API keys which you can get from the +[developer dashboard page](https://dashboard.helius.dev/signup?redirectTo=onboarding) + +```typescript filename="fetch-cnft-details.ts" +import { dasApi } from "@metaplex-foundation/digital-asset-standard-api"; +import { mplBubblegum } from "@metaplex-foundation/mpl-bubblegum"; +import { + keypairIdentity, + publicKey as UMIPublicKey, +} from "@metaplex-foundation/umi"; +import { createUmi } from "@metaplex-foundation/umi-bundle-defaults"; +import { getKeypairFromFile } from "@solana-developers/helpers"; + +const umi = createUmi( + "https://devnet.helius-rpc.com/?api-key=YOUR-HELIUS-API-KEY", +); + +// load keypair from local file system +// See https://github.com/solana-developers/helpers?tab=readme-ov-file#get-a-keypair-from-a-keypair-file +const localKeypair = await getKeypairFromFile(); + +// convert to Umi compatible keypair +const umiKeypair = umi.eddsa.createKeypairFromSecretKey(localKeypair.secretKey); + +// load the MPL Bubblegum program, dasApi plugin and assign a signer to our umi instance +umi.use(keypairIdentity(umiKeypair)).use(mplBubblegum()).use(dasApi()); +``` + +Fetching a compressed NFT details is as simple as calling the `getAsset` method +with the `assetId` from the previous step. + +```typescript filename="fetch-cnft-details.ts" +const assetId = UMIPublicKey("D4A8TYkKE5NzkqBQ4mPybgFbAUDN53fwJ64b8HwEEuUS"); + +// @ts-ignore +const rpcAsset = await umi.rpc.getAsset(assetId); +console.log(rpcAsset); ``` -Helius essentially observes transaction logs as they happen and stores the NFT -metadata that was hashed and stored in the Merkle tree. This enables them to -surface that data when requested. +Let’s start by declaring a function `logNftDetails` that takes as parameters +`treeAddress` and `nftsMinted`. -If we add a call to this function at the end of `main` and re-run your script, -the data we get back in the console is very comprehensive. It includes all of -the data you'd expect in both the onchain and offchain portion of a traditional -NFT. You can find the cNFT's attributes, files, ownership and creator -information, and more. +The output of our console.log would output ```json { - "interface": "V1_NFT", - "id": "48Bw561h1fGFK4JGPXnmksHp2fpniEL7hefEc6uLZPWN", - "content": { - "$schema": "https://schema.metaplex.com/nft1.0.json", - "json_uri": "https://raw.githubusercontent.com/Unboxed-Software/rgb-png-generator/master/assets/183_89_78/183_89_78.json", - "files": [ - { - "uri": "https://raw.githubusercontent.com/Unboxed-Software/rgb-png-generator/master/assets/183_89_78/183_89_78.png", - "cdn_uri": "https://cdn.helius-rpc.com/cdn-cgi/image//https://raw.githubusercontent.com/Unboxed-Software/rgb-png-generator/master/assets/183_89_78/183_89_78.png", - "mime": "image/png" - } - ], - "metadata": { - "attributes": [ - { - "value": "183", - "trait_type": "R" - }, - { - "value": "89", - "trait_type": "G" - }, - { - "value": "78", - "trait_type": "B" - } - ], - "description": "Random RGB Color", - "name": "CNFT", - "symbol": "CNFT" + interface: 'V1_NFT', + id: 'D4A8TYkKE5NzkqBQ4mPybgFbAUDN53fwJ64b8HwEEuUS', + content: { + '$schema': 'https://schema.metaplex.com/nft1.0.json', + json_uri: 'https://chocolate-wet-narwhal-846.mypinata.cloud/ipfs/QmeBRVEmASS3pyK9YZDkRUtAham74JBUZQE3WD4u4Hibv9', + files: [ [Object] ], + metadata: { + attributes: [Array], + description: 'My NFT Description', + name: 'My NFT', + symbol: '', + token_standard: 'NonFungible' }, - "links": { - "image": "https://raw.githubusercontent.com/Unboxed-Software/rgb-png-generator/master/assets/183_89_78/183_89_78.png" + links: { + image: 'https://lycozm33rkk5ozjqldiuzc6drazmdp5d5g3g7foh3gz6rz5zp7va.arweave.net/XgTss3uKlddlMFjRTIvDiDLBv6Pptm-Vx9mz6Oe5f-o' } }, - "authorities": [ + authorities: [ { - "address": "DeogHav5T2UV1zf5XuH4DTwwE5fZZt7Z4evytUUtDtHd", - "scopes": ["full"] + address: '4sk8Ds1T4bYnN4j23sMbVyHYABBXQ53NoyzVrXGd3ja4', + scopes: [Array] } ], - "compression": { - "eligible": false, - "compressed": true, - "data_hash": "3RsXHMBDpUPojPLZuMyKgZ1kbhW81YSY3PYmPZhbAx8K", - "creator_hash": "Di6ufEixhht76sxutC9528H7PaWuPz9hqTaCiQxoFdr", - "asset_hash": "2TwWjQPdGc5oVripPRCazGBpAyC5Ar1cia8YKUERDepE", - "tree": "7Ge8nhDv2FcmnpyfvuWPnawxquS6gSidum38oq91Q7vE", - "seq": 8, - "leaf_id": 7 + compression: { + eligible: false, + compressed: true, + data_hash: '2UgKwnTkguefRg3P5J33UPkNebunNMFLZTuqvnBErqhr', + creator_hash: '4zKvSQgcRhJFqjQTeCjxuGjWydmWTBVfCB5eK4YkRTfm', + asset_hash: '2DwKkMFYJHDSgTECiycuBApMt65f3N1ZwEbRugRZymwJ', + tree: 'ZwzNxXw83PUmWSypXmqRH669gD3hF9rEjHWPpVghr5h', + seq: 4, + leaf_id: 3 }, - "grouping": [ + grouping: [ { - "group_key": "collection", - "group_value": "9p2RqBUAadMznAFiBEawMJnKR9EkFV98wKgwAz8nxLmj" + group_key: 'collection', + group_value: 'D2zi1QQmtZR5fk7wpA1Fmf6hTY2xy8xVMyNgfq6LsKy1' } ], - "royalty": { - "royalty_model": "creators", - "target": null, - "percent": 0, - "basis_points": 0, - "primary_sale_happened": false, - "locked": false + royalty: { + royalty_model: 'creators', + target: null, + percent: 0, + basis_points: 0, + primary_sale_happened: false, + locked: false }, - "creators": [ + creators: [ { - "address": "HASk3AoTPAvC1KnXSo6Qm73zpkEtEhbmjLpXLgvyKBkR", - "share": 100, - "verified": false + address: '4kg8oh3jdNtn7j2wcS7TrUua31AgbLzDVkBZgTAe44aF', + share: 100, + verified: false } ], - "ownership": { - "frozen": false, - "delegated": false, - "delegate": null, - "ownership_model": "single", - "owner": "HASk3AoTPAvC1KnXSo6Qm73zpkEtEhbmjLpXLgvyKBkR" + ownership: { + frozen: false, + delegated: false, + delegate: null, + ownership_model: 'single', + owner: '4kg8oh3jdNtn7j2wcS7TrUua31AgbLzDVkBZgTAe44aF' }, - "supply": { - "print_max_supply": 0, - "print_current_supply": 0, - "edition_nonce": 0 - }, - "mutable": false, - "burnt": false + supply: { print_max_supply: 0, print_current_supply: 0, edition_nonce: null }, + mutable: true, + burnt: false } ``` @@ -1362,274 +1036,85 @@ owner, creator, etc., and more. Be sure to look through the [Helius docs](https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api) to see what's available. -#### 6. Transfer a cNFT +#### 5. Transfer a cNFT The last thing we're going to add to our script is a cNFT transfer. Just as with a standard SPL token transfer, security is paramount. Unlike with a standard SPL token transfer, however, to build a secure transfer with state compression of any kind, the program performing the transfer needs the entire asset data. -The program, Bubblegum in this case, needs to be provided with the entire data -that was hashed and stored on the corresponding leaf _and_ needs to be given the -“proof path” for the leaf in question. That makes cNFT transfers a bit trickier -than SPL token transfers. +Fortunately for us can get the asset data with the `getAssetWithProof` method. -Remember, the general steps are: +Le't first create a new file `transfer-asset.ts`, and populate it with the code +for instantiating a new Umi client. -1. Fetch the cNFT's asset data from the indexer -2. Fetch the cNFT's proof from the indexer -3. Fetch the Merkle tree account from the Solana blockchain -4. Prepare the asset proof as a list of `AccountMeta` objects -5. Build and send the Bubblegum transfer instruction +```typescript filename="transfer-asset.ts" +import { dasApi } from "@metaplex-foundation/digital-asset-standard-api"; +import { + getAssetWithProof, + mplBubblegum, + transfer, +} from "@metaplex-foundation/mpl-bubblegum"; +import { + keypairIdentity, + publicKey as UMIPublicKey, +} from "@metaplex-foundation/umi"; +import { createUmi } from "@metaplex-foundation/umi-bundle-defaults"; +import { base58 } from "@metaplex-foundation/umi/serializers"; +import { + getExplorerLink, + getKeypairFromFile, +} from "@solana-developers/helpers"; +import { clusterApiUrl } from "@solana/web3.js"; -Let's start by declaring a `transferNft` function that takes the following: +const umi = createUmi(clusterApiUrl("devnet")); -- `connection` - a `Connection` object -- `assetId` - a `PublicKey` object -- `sender` - a `Keypair` object so we can sign the transaction -- `receiver` - a `PublicKey` object representing the new owner +// load keypair from local file system +// See https://github.com/solana-developers/helpers?tab=readme-ov-file#get-a-keypair-from-a-keypair-file +const localKeypair = await getKeypairFromFile(); -Inside that function, let's fetch the asset data again then also fetch the asset -proof. For good measure, let's wrap everything in a `try catch`. +// convert to Umi compatible keypair +const umiKeypair = umi.eddsa.createKeypairFromSecretKey(localKeypair.secretKey); -```typescript -async function transferNft( - connection: Connection, - assetId: PublicKey, - sender: Keypair, - receiver: PublicKey, -) { - try { - const assetDataResponse = await fetch(process.env.RPC_URL, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ - jsonrpc: "2.0", - id: "my-id", - method: "getAsset", - params: { - id: assetId, - }, - }), - }); - const assetData = (await assetDataResponse.json()).result; - - const assetProofResponse = await fetch(process.env.RPC_URL, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ - jsonrpc: "2.0", - id: "my-id", - method: "getAssetProof", - params: { - id: assetId, - }, - }), - }); - const assetProof = (await assetProofResponse.json()).result; - } catch (err: any) { - console.error("\nFailed to transfer nft:", err); - throw err; - } -} +// load the MPL Bubblegum program, dasApi plugin and assign a signer to our umi instance +umi.use(keypairIdentity(umiKeypair)).use(mplBubblegum()).use(dasApi()); ``` -Next, let's fetch the Merkle tree account from the chain, get the canopy depth, -and assemble the proof path. We do this by mapping the asset proof we got from -Helius to a list of `AccountMeta` objects, then removing any proof nodes at the -end that are already cached onchain in the canopy. +We are not ready to transfer our asset. Using the `assetId` for our cNFT, we can +call the `transfer` method from the Bubblegum library -```typescript -async function transferNft( - connection: Connection, - assetId: PublicKey, - sender: Keypair, - receiver: PublicKey -) { - try { - ... - - const treePublicKey = new PublicKey(assetData.compression.tree) - - const treeAccount = await ConcurrentMerkleTreeAccount.fromAccountAddress( - connection, - treePublicKey - ) - - const canopyDepth = treeAccount.getCanopyDepth() || 0 - - const proofPath: AccountMeta[] = assetProof.proof - .map((node: string) => ({ - pubkey: new PublicKey(node), - isSigner: false, - isWritable: false, - })) - .slice(0, assetProof.proof.length - canopyDepth) - } catch (err: any) { - console.error("\nFailed to transfer nft:", err) - throw err - } -} -``` +```typescript filename="transfer-asset.ts" +const assetId = UMIPublicKey("D4A8TYkKE5NzkqBQ4mPybgFbAUDN53fwJ64b8HwEEuUS"); -Finally, we build the instruction using `createTransferInstruction`, add it to a -transaction, then sign and send the transaction. This is what the entire -`transferNft` function looks like when finished: +//@ts-ignore +const assetWithProof = await getAssetWithProof(umi, assetId); -```typescript -async function transferNft( - connection: Connection, - assetId: PublicKey, - sender: Keypair, - receiver: PublicKey, -) { - try { - const assetDataResponse = await fetch(process.env.RPC_URL, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ - jsonrpc: "2.0", - id: "my-id", - method: "getAsset", - params: { - id: assetId, - }, - }), - }); - const assetData = (await assetDataResponse.json()).result; - - const assetProofResponse = await fetch(process.env.RPC_URL, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ - jsonrpc: "2.0", - id: "my-id", - method: "getAssetProof", - params: { - id: assetId, - }, - }), - }); - const assetProof = (await assetProofResponse.json()).result; - - const treePublicKey = new PublicKey(assetData.compression.tree); - - const treeAccount = await ConcurrentMerkleTreeAccount.fromAccountAddress( - connection, - treePublicKey, - ); - - const canopyDepth = treeAccount.getCanopyDepth() || 0; - - const proofPath: AccountMeta[] = assetProof.proof - .map((node: string) => ({ - pubkey: new PublicKey(node), - isSigner: false, - isWritable: false, - })) - .slice(0, assetProof.proof.length - canopyDepth); - - const treeAuthority = treeAccount.getAuthority(); - const leafOwner = new PublicKey(assetData.ownership.owner); - const leafDelegate = assetData.ownership.delegate - ? new PublicKey(assetData.ownership.delegate) - : leafOwner; - - const transferIx = createTransferInstruction( - { - merkleTree: treePublicKey, - treeAuthority, - leafOwner, - leafDelegate, - newLeafOwner: receiver, - logWrapper: SPL_NOOP_PROGRAM_ID, - compressionProgram: SPL_ACCOUNT_COMPRESSION_PROGRAM_ID, - anchorRemainingAccounts: proofPath, - }, - { - root: [...new PublicKey(assetProof.root.trim()).toBytes()], - dataHash: [ - ...new PublicKey(assetData.compression.data_hash.trim()).toBytes(), - ], - creatorHash: [ - ...new PublicKey(assetData.compression.creator_hash.trim()).toBytes(), - ], - nonce: assetData.compression.leaf_id, - index: assetData.compression.leaf_id, - }, - ); - - const tx = new Transaction().add(transferIx); - tx.feePayer = sender.publicKey; - const txSignature = await sendAndConfirmTransaction( - connection, - tx, - [sender], - { - commitment: "confirmed", - skipPreflight: true, - }, - ); - console.log(`https://explorer.solana.com/tx/${txSignature}?cluster=devnet`); - } catch (err: any) { - console.error("\nFailed to transfer nft:", err); - throw err; - } -} +let uintSig = await( + await transfer(umi, { + ...assetWithProof, + leafOwner: umi.identity.publicKey, + newLeafOwner: UMIPublicKey("J63YroB8AwjDVjKuxjcYFKypVM3aBeQrfrVmNBxfmThB"), + }).sendAndConfirm(umi), +).signature; + +const b64sig = base58.deserialize(uintSig); + +let explorerLink = getExplorerLink("transaction", b64sig, "devnet"); +console.log(`Explorer link: ${explorerLink}`); +console.log("✅ Finished successfully!"); ``` -Lets transfer our first compressed NFT at index 0 to someone else. First we'll -need to spin up another wallet with some funds, then grab the assetID at index 0 -using `getLeafAssetId`. Then we'll do the transfer. Finally, we'll print out the -entire collection using our function `logNftDetails`. You'll note that the NFT -at index zero will now belong to our new wallet in the `ownership` field. +Running our script with `npx esrun transfer-asset.ts`, should output something +similar to this if successful: -```typescript -async function main() { - const connection = new Connection(clusterApiUrl("devnet"), "confirmed"); - const wallet = await getOrCreateKeypair("Wallet_1"); - await airdropSolIfNeeded(wallet.publicKey); - - const maxDepthSizePair: ValidDepthSizePair = { - maxDepth: 3, - maxBufferSize: 8, - }; - - const canopyDepth = 0; - - const treeAddress = await createAndInitializeTree( - connection, - wallet, - maxDepthSizePair, - canopyDepth, - ); - - const collectionNft = await getOrCreateCollectionNFT(connection, wallet); - - await mintCompressedNftToCollection( - connection, - wallet, - treeAddress, - collectionNft, - 2 ** maxDepthSizePair.maxDepth, - ); - - const recieverWallet = await getOrCreateKeypair("Wallet_2"); - const assetId = await getLeafAssetId(treeAddress, new BN(0)); - await airdropSolIfNeeded(recieverWallet.publicKey); - - console.log( - `Transfering ${assetId.toString()} from ${wallet.publicKey.toString()} to ${recieverWallet.publicKey.toString()}`, - ); - - await transferNft(connection, assetId, wallet, recieverWallet.publicKey); - - await logNftDetails(treeAddress, 8); -} +```bash +Explorer link: https://explorer.solana.com/tx/3sNgN7Gnh5FqcJ7ZuUEXFDw5WeojpwkDjdfvTNWy68YCEJUF8frpnUJdHhHFXAtoopsytzkKewh39Rf7phFQ2hCF?cluster=devnet +✅ Finished successfully! ``` -Go ahead and run your script. The whole thing should execute without failing, -and all for close to 0.01 SOL! +Open the explorer link, and scroll to the bottom to observer your tx logs, + +![Solana Explorer showing logs of the transfer cnft instruction](/public/assets/courses/unboxed/solana-explorer-showing-cnft-transfer-logs.png) Congratulations! Now you know how to mint, read, and transfer cNFTs. If you wanted, you could update the max depth, max buffer size, and canopy depth to @@ -1637,12 +1122,9 @@ larger values and as long as you have enough Devnet SOL, this script will let you mint up to 10k cNFTs for a small fraction of what it would cost to mint 10k traditional NFTs. -If you plan to mint a large amount of NFTs you might want -to try and batch these instructions for fewer total transactions. - -If you need more time with this lab, feel free to go through it again and/or -take a look at the solution code on the `solution` branch of the -[lab repo](https://github.com/Unboxed-Software/solana-cnft-demo/tree/solution). +Inspect the cNFT on Solana Explorer! Just like previously, if you have any +issues, you should fix them yourself, but if needed the +[solution code](https://github.com/solana-foundation/compressed-nfts) is available. ### Challenge diff --git a/public/assets/courses/unboxed/solana-explorer-create-tree.png b/public/assets/courses/unboxed/solana-explorer-create-tree.png new file mode 100644 index 0000000000000000000000000000000000000000..cfe10dff553127d1530749b942bc949bb0b78075 GIT binary patch literal 95579 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 literal 0 HcmV?d00001 diff --git a/public/assets/courses/unboxed/solana-explorer-showing-cnft-transfer-logs.png b/public/assets/courses/unboxed/solana-explorer-showing-cnft-transfer-logs.png new file mode 100644 index 0000000000000000000000000000000000000000..2cf699e0ba5b7678776a92bad0b333307ced1104 GIT binary patch literal 171868 zcmdRW^ma1+pkQO{;H+n71ZQGxV`W5RZ(wI+WNmM1<8Xw~$_w5^`S>OQJ0m>@ zGaKu7ie^?ua4JTI?-*I$DHwfy$4Jk}{EmT%lbM~9k>j1v7sV(mh&deGJ2)}HFN!Xy z`-_gMO0zd@Cv+%po_r_&sj8d#BfMnBz&Rw?Kg>Tk@#hRDrBlQr&kT=~?mJS-nKxKt zU%k9n2zU^}x5%}(V28J^M4N7xUQjpaoaLow+I?Deys~uT!b_MHrVj5X#K<@4Kg>}3 z9~Q1XiX!f1kDgG)e#2dRi_7Zea)yQPK7Yi?L*j?dk3`~krSs-3?scWim&fnD2m9u3 z@;1G%*KxZyXO-B@DIT&Kc93rw&nRGf<$UwE+c*wkuVD2m4~X|yHo5neGM~Z6{^#HM z$6u=t2ow$f`x3t){Qswy3gmnPQrX>7d(b*u@90wnZqe@c72fcB$o}s4!d8b?ff;?^WwwWJV7#|pEWejjx3y< zjs#nIJ=CSdXoJ5alV0fvM8n(a z4~+?7l4@);P-*+tdG+-0>9TH5v{F-e=uq?}pNXE8PzsEPd{zA=jTOz|GLn(Piv0U@ zUX^acVLh?_B`pf&DMU{Jgv_+o_0H0F())7>8(RpG<4f^Q2;3CwnxWa*g8V~T#tJKM zR{1&$76ZadQNtRY))SJI7%J(v?o*tfrgL|cZdizkOAeeTN-y0PD7Lb~H$OXDhj|}< zYHfhJD36SfcbHrusWaPrtFC4l9hKXktxWKti1`r_F?{NAFjtdhbHt1JCq4bj&qW%- z*>&{-CMYOq=vwNH;E8~c?Bty1P%Vy=l7xP}k0?^JzqC=ldNo~jw(GAk zesf+BS6-JrRLM`cTa{ImCvuhsq0q>BIV&mULIm@J^ebbyFhO#?t6S>pk<#{t! zDT4M4l}NPy<;HA_0oU2)GyRl#<%3HaYU-I5M=Cn)mTc)}odV^Ku$7|rV(t21Zr9WN zPAn(N&~M-1;T1^jp-VhOd|r|+E_K59W()ZYF$kn5^9vlY6c5O2cil|-GhaC!9aOqs z;qOY7rKMeko_1Ahs@+^3iTJu*B+)PFWNGR|QzsE4(>z?wCUa3Pb|($S{Cuc~ zA0Ol9z)jc=lSyQmEPS6z;g6OUcnwy|n@y9UR;}AF%@k?{1pQ<~x|VsosdM%|(jCua zn^KE}5Ay9F%-tfqgG$qgQ2mid?f2=u3e;G}aU9d%>SS4SmE1VwI7|jpr?bbDL)`2y zhAYpL*n=0YPt7OTNc=Xlx8MJ(dwh=2 zPMavyc<#@iVN0u^pkOSSGL&d*z_dR;J#H}4_U-B_e0{w@f!iGx%JI#<_eeF;WH`M5 z(lPcs+Hr51X~E=a1QE~bNetOQA`6D6r)Mew1dd#%lsjrzr^4bE6^_3w5dHe@)8kA1 zS-Y^C_1UcFd#uGKYq?=fE+^lcz4wiJ$8uaQ&lS4`g@qYiw$Z~0czzeDl(BnmzVhBj z&U86h#oM@fbNl2PsTpSgoH$oP+`*VzG>$r3uIpfS{Y07+#-S23&+fA1;RVl>q$V>C z8tz6@?uwq?F5LM$)Z)Z*{9$6DE$OF0QF!^}$6AXCyRt(UHUEx_H`>H*5R*0|n#W zc4wPXm@g5bhs$eML2K+>2_tnjkVP)r&53kw6z_qHl_JUGv!1rL&-Ja@l}vOx&4$BE zJlWaV=olCsHH7ozvOnQwc^eZZqvGR*A#>Fnw_9evJBTXWd!%2ktK4gO9jKci@*sF} zdpvu*V^S+s;bzp5*xRbAD*9gQ?kRsNB;tiQ;YRpa*eKne{2iM1k zJVC^H-gb7jxeyh)8oFx;i4vz}kQ>%HrQNKy)8NWN z1fcg-GUooUpdeak5+XZ--PM@zDAX2bLlVet(whfVdb+am$kn?M1Am8`T3E!)lc05Z zQw-)9>qqNE~xZdY|4=fFJoX}&^tJ?V7I?~B_xiSipvTS4~Z>W4|&1r-$fT z!PWWs#m@dxk`p19Y=OBE*zEoB)N+R^TVQ8`9aHam^0MW?{g>wnWwOJ8Xs`GNoGdx! z02IjyVSB8yvn7SydmM)S@nP<@hd;~8hOd#g%;qvV%FD|?--HZxb_zx- zM8k`Ui_5pPP5A`{y$A>h5bWt3sgpBMrq=5I^}3_p?SL|}#du(gE?DF?T>o<`?BmCe z^h?VTajj)z?0KB0*p92ys5G-Jrg3(H@~WcbyjBe-tenq$ez@y#H+Ux8b-lDVKZ38G zXJr|d-k*1d3svLAj@dU3HQi{xowi|M87>W-XLo+#NgDoMw?iH-IwpDsvo7{|#%>v+ zp`pHHms@q>8jo_lQ^!RmcD>s!^(5Z(8tBPzs&lFeKV9^kXf^tC+j3^G2Sg&uJ4UBQ z_3mwuA1M5T?Vm@07EZ{EoJ&;;LFMfHOVg;h3TjDaq&)-a1>X01N7U+h6%kEMf>uT9 z;rUt{F>&$tyu4{YJ#W80ST;1Y-i`B=mJSgSW#{Ic!tUMSSgn@?$()_{Ev;Pd)?dJ- zu-g1CmnA_xymd$~)~b~@T72*5a&a^qAca5MY{CXtrqh~hQkFI|?@hV7)a)Dq(?$Sb zCj#+o6XEN1-`lxH=Mi#jpKmR^3b`^$(zxta-40IH^IyK*A-WtNe-oa*ap!JwOb8K? zezJo&W-hfWSL61!G`&~V1K{88#YR5jrRJ^k76H5sxh(G5jI~`hIL!zLeSyAwIzm0gRE7_yn6cnEE z)y%{#^n~=#le#@`s4$K+Ps_Thx*C_;LO;Osuk#_*LrGRv2V@05b>{8UHs290f|*}o z@y*;b^zKn}3V$c}MuGu!OPun4`Wku|LuEtMaE+SbxO`}t*7^#r!&2CRU@Rdn#yBc9 zHe0zdSyV!zqr{x0!PViD%HaZBVsdh1YHTVAE7jr2cSK}*!x3G8SVktt1!UOnCzCQV zq8N>TPJaeqN$g%2rOxS|Gdw(;I=M9x?%~B%IBtm(Z4ZBVv09_D(R|#BZs}8R_3b9R z9Pt6P)E=--`zSXE$jHc~H`kR$Yoxm@mOte(R5E10ZVlzVU-o^D2LG$Fa-+TDIiA+u z(aHI@T~4{OG~OQ42(18igbxA@5tpR30z{8MQ{UseuwxM1iQp zxy|l3cW~z%-$f6Rj=P^UNE^ zQ(EBo22R8(rt!LT!ca79Ev7!#>pF*M69FohHTr{4O0h)VA5?=%rw%u-0$J2)oj!Ut zdU^p(<%Kn@%}q=7)+m*-_XWz8oH_jsWAzpZuWavc&W-+N3TZZYB(1L-@(TzgF*&0y zHaH3B=;)MadcS@DaI;LeGn+*Qo}1x(_`yd~($m#0WZ?*WiGt{ye8uw2IZxm7t)8u6 z+O8h#b2qo0t>VLKn6@_^CI#k82M48AY->HMu3v2hIC!{>)erRV)0;=wAE6f~gPIV; zL`b>%Ytcr_raV}bWBWvYRmUic26FjQx101*#2e%k>7_43TmlbG&Etc6PON;l}=Ay`SZ8u z^d}UkW_<6v1hCBh!}_z6lM_=jv)3LwFMXSy6?T67M3zxfQgXt7sWbLd0e{!ovTHxX zfW!G%HQ+w{Q^;#OSVe{EPr&UCJ(9}?&)%J*D%V^7`c)%u&BV&mUgLv+#y>XACPzLN z@(I*F%AVcbokA9xQJwecJY+O1aUMbhN;MDF(xIoR)=Rm%C+{ig&h0k_1r}~qSC=g4 z7vtZ@*iTIgMdiv~7TDd-DVnJ!;BrmT8}#6LZ05;~GaGISCSU9qdzI4Vt7g2HN#`-R z54h<2{$(^%NJ+n9mxxZe7-zQ9WUIEmGU%c1a(LPP%Z(=t>U42_AtoWA;Eox^pRwXK zbN}icrr4vjya>-Q0%q zy`_!BdB03n6m@aQaT-(5k4C)#BG&L3wxbrBC_HGHI)j?vKbHUe3wzLu7nqc4k{hZ$ z(Ooab-zA{0&Wnx;{gdl=J~S1n_}WseiHE7P#PKm14}N52jmN7tw_7#5xj_(#AY8jV zn5Rx~eDTLYTC>FTFJwqbw`4oGy`=$I}xaNVC~SDscFj)ivP9 zuyef}ZiyC!QQAvC^ID#5<=mRuX!Cdp|M91SYx?2RR~h)4`Cv2L-w_ow9}1uosnqsq z^1|}w>ffxca#Ta%P&lhebfV7vTOpdMxb>!_8+(c>-H;hvKQ&b3In?bS@JRq(R;Mp% z*lW(v!fu?dJIxB&Y(%wtzJo2U7t<3yXO(PwF>Ighpe|s*G#^W6T6e8ENO(6-15M>(m)%EQkK|w(kf1;J3SCv~kd+V_@3eSAx zKS_+%>3x7JF6M1sSptxTrvdsi+g|MP1{8mxgJSf_R0qAccUPvXTK6yiT#dB=P)`^b z86QdXKnfE!S&xiR^`g6z0?;Jz*vvy)(um^Y<3kBql7I9>ylBC@Ln|?fO-&v6^O`p? zDJg1^nhTs#p#2dZF1A9;A9Px$)G`D)R8lolN2jK81^p}7IkCyEI&t4MU+r*sJ$)qk zj(=ai3Vjvl-3T!GKadcaFkyq68x9VxzOG?D0m&J3c$b@MB14+1S4=E*p*bD2_D7kn zNRyQry3c>;;mTglBzmC9|HCFLZk!g{YV*F;`%2m8iD-~aCv)J2_n}A2WRF+=HQ{q3 z-EJ45fH2~vrmk+@HU5x)$yo)wg*BU<;^Yi^z5)gw zHs?(HcOXCN1BKSyTTuEAml}J3qJlJ6cEjIb4dHww1Rnk`^Qm3R3V`;?Fk|t~^>qF3 z&UoI_q4b{JYKz!gM+b-FT|OTtt2uoW6A{p(10x9Z#$tPy9SI-C`iGwl%a*ZrX;qKWVUMIn8 zT)we;wRbt6Pu^GUF2-?(Bf4M^c3k`RAgMPBWks>LJ-cE4Y9o-etMn(WF})z6cbgz9@MTRmEq zbja0wL~mh|jSZP}Rn8ZHI8`}1m`*K1P8}^G2RjqV^de?zz9K@sk43SmQ1V&_%;|t| ze09`iPqX2z$mXf1W6ay-&2wquPE6=q8r9AR-EI9z{4kikefmM{-$fk8!c6lIe##{8 zaD5Gac-DKa|F8Z2Pn}Qgb1?1y&zGPk=|2DVB|0ONOKb2UO}9)xwfE9JDVIO#-oFVy zdbK*T3E{g{^t&?7DN@eXOK@7R8boQU6nPEM-+jkfgFCe6H|6thyk30So*ys_K%o{J zWu#3^OnO6%-4ieyQs;4Zj@C=&cjX)%_3x+EDe|bM!Oqpv0{Avh{Uy#17Rdx8{ZHS{ zJoNCUaR;vq4QdRe^7>lNR+yzqK%4;MRIAqigm&Z)43Z;Z;Mqg1jBhR{ z9S9b%5d=DjQ`+t|607uZFBazk0E*ji1^X(0I^(TZ5jJ|AH!`dUTRull zD{Q`CvhW3R#QwnXc(KVA9npAiBOiF#*)jrM%;QryP_O3jx+0hPO>BR0`ZnMdUh%2> z*yN;94U*w`VJh*!n|yzCazaHXP_3t|tevk%EQ+Z8|vDXT>u~fR)k=HIZ%7mGShDOST#nfv;3;{s& zfZk#}usv!y`zuI%vM@3>HrtjMFz4QxQ3K%COkb%whT*WLK7y4R19t%PAKNYdR7uaw zOk(?z0Nh3CMT9Y^y6_4;wsugjc&WtjB!3PfUf*r@Y&t5^!M;kzEmo*6yMq}J5P zvjkgmO(eARFHK0^l0b@6OD>Yzs;OhKYU`t@1R80&ers&*+K88j%dK{nW_K>B-~zHi z4OBJmfI_S{sT=z?hdHM(_Mz1NVYV-xqT}?F1TKpcGiW94KVc$7i=;E*KgG}wj@$iQ zcQN3?a-r(A4{#82V(rDa-Q6gW;SUKHffU4G&=Y~M0z8S(^9!T#fUrEy!Dz?F1EI?G`ZP!Q{!gezwRtEWM{uT4 zF!~v10G~{{aq6;5W@aWFx#~~2?(Xip7USv)`bM_{JmFXP(m<Fmign~zs&qZN<}3>*|YKQt}-qmAt5c{1BR8=q?q?V z4W3xU_-*X6SJR2=9c$!=;>F?(X&Wf+_444$8kGKZX z;`ZVY3xK_mKiWi6e>#V8zxoz@VKSa2_|0!!Zr*1(=Xx<#Cj$^I*?7o{e~Nuq>A`}c3(cjV8Omed)w z)^gn}XJ&>lvHne(U*+X`OW&`P4%3-Qe8y;V%x0<>{DavUjBXUMo(?_wO?Z!f?eoc^ zdbznSL~yq+xj5u1g{7SKC3SoS7cK62USd*7-hOMIZMGv6NO3Sc+6_~*nfm;RROhwG zZ|f!HSu89&WMHA6V$o(h(E@qx9Ks&lIBmn&B!o?RN#K_g#!_?6<%%$nnW+D|NwC=HsKP_W!vhedQVoyWIZ}c=E#8IIaoZPWs|CM! zD|NY%0(AQ)2uWP-sQ!@DSOy>mb&`Fgx4(Hs3u$b-9ydv1uxh9{+O_-oRd+Gju~?%u z92|mzdkZbP93y2@_;VlJ*xp^9Ew1m6dB=TCP- zo_&fco@sAwX}Wwp=1&|5dBEvf83{Q^z5?u0kk`9+ zOeo}0KcuBarJ}N^J}VdxpX|Z$QRtC*}jz#q+YS9_UY+_u3OWYWKM zNBKYBgKgb6mERZhOGJ~~E;=?A6S!m$JrWCr5CDuk1I3(}u!v^GpbSeNKaoZ!M*0-E zI#t_$>L#PFQLwozo%<}W|K27uv)<{38?G&9i3{*5jezkmF8eGP!##f8O(2 z1WAj+?t6EaJzC)2eFS=TLij`PJw6+S#{GB$KHHF1rh1Iq%z8OOTZ^n$A#-8Kw{*$L||||{A_W@Pri`VYRv|g-b)T_18A@#9(2RPe6l#mSAaJl z;{5O6JSg8iOpZ6qZ!q4NO;zE-Ra;DEivIom>XPU;2*d=1ha2}*6@(sNe94f_hfs-x z69A|=S|+1o3}cP?-4((JKKkU2Y@|tz$!MWn;Q7h+>X(e~J3_^8x+F$sn=wE|-QL?P zg4i53eJ-5(x^~#?4&=%Tvolh8dHJul6eXby%*;>yzduJK8mUit-eMrEkRxxzT0HL~ zP1;pPx3g4@pFpRx3S}vJ^lca!qs!NN6w3L9QVGUIPQmJp=2)og0+`_22n}*MMuMUe zo@`IWIUg+*K=venk__a4?A&abu=wayNjv$m9;@^;iAQ{KdN^GA_R;mfAG`*u`rH2l z*^fGGVR1V~lS@Kntj{ogGXtq>&dH!UsL$(?h6AeU6w6B!8!i8XA^-Kw+c)+2xfs4DlDQ!VCV3#hef zLK~rnMh$=*cx-QP|FWMCe|1}`-B>7B3J9>-WW}coe3q5Di#>Ku&I(f)KUkd=F5@aj zX^6#r3AI&mkjJH_(R>lvFyk{y%tsIC<9?JK;ZqtKnvoR(@Wg~PCH_uT@op-|f4))F zprA;fTDY<>{1ZjfSnp2L?BaCtM@+L&@uz&Vx+bTScovMu6TNh+QhX8Nb{ z#_-b2f+&L7%ujgW>Z^oLC9_k&F)=ZP6Z1SSCA8zP(qLLT0F@}(Ozupg!elsn_}AZ9 zDwS}68=~TKKg-CVWew+!sW&;i2uYxo^Fl>I*|^xlL4A6VXPH!y+WK<|DV84*S-wF3 z)BALj)ZBsg_HW?f>zSGLUeajHmRpc9nGC*Xp@}Qi;-0C}`%vv&BH`lVLP}%O47yY_ zPI}wyy+}(DVSnnBAdh=S#ld8Z31~=^e0$s5U&*eXkvSp49|QgQIjd!s5gi)qfOc$- zKeA)m+hkF3$&Wv`-W6Ng%QdSZ1l(b@g?{_Ml3XZ>bYk$oWZ0P*Re)}K&8!AlM8@1ZL4m6BEpE=948I7x>F;Z>2zjE{Vf}G=Wy<*_h6o;UuoW>u+Z`eC;|1 z7Wd7tmapf_A}+va@dec6q?{P(nBb`oC`h2PHHFA|^CbMvkyvH0L$@#)+FJOQ1KcJ)|RqIn8#b}L`VFgxwq`*RzlsM|6BNBo(lI1+mqsC?v%;# zC!=g5WF)j{ZiMP5AoNjH#T<6#c?d!y4j1S2l~pTJip(@_uIL`8uh969JX9KWqLY)w z0j{|wY~_|pjE`52r^bZc3|av8;X;gGRBt_Dr24m#2CY_vNKIwwAoYIQ!S*cZXV> zo(#E0Ay_*WT-RYLSolx2hC7-CL^!J~hC#+@qVIyI*lu37R?9y353wy(yn%fF>YRa*f%LF>xA~Z70%$#ZWvjO#KgfWX{Cn^$;Y6c35}?dV`<-2CE|W(G zW~b{v-BN)Z^U)*S?rn`9#XW5Yz)DUfI@^G;%L(x)g*R zq+IR(F-y?6sBESgrQ>^hADm#Hqe;UyCa(}Tj#A&Cw0aq5fwy4`J&drZ7N?xwN8Ti3 z;Qa=*8ADcx+ndf6?`Rm9DGvaK%LC!Bz>bhg^?5FYg42nefzz;O=uSH!M-u!xm# z8_=>_|MO)il_PHc(J5wc3mK!`Evt-w#8)KO(Kc#~$-+SEAg17(E>wGz(4(WH z`S*LCNR4-gaoC<_&((vN%2m!jU9tLoW5o&(30uy0I(f&7^2j=x0}Cvv2>?yJSMfaV9s#;=_bjcr)4~r=KsJhO1Aut;>Equ zTT4nVfBrA(=7quvLoZ0Y2>vUB-1fT**=)Q41xQnRHYOtTQ&x{zTVTUe7)+Jw1jfa^ z1sTdHpmtI!=l_}LRZwg6A}m|Z=i}suI1TBr4+DQ1i$+znT)&H4JsT+mo0fFH9RY;v z3Y}<&d7JZ9a~N67Clz6WLP88S?H&zY1Ya=l@%xV~l$jik(KRI!gaMES{*L|nik^C{ zIdHyxfO9aO<&GxKnIH(%6Hsj*(Z%;m#HiHNmbykx5Rd>)YKYc155>D`QlS6G=F7%s z8Y$_tq@!~B6$m*!x+Y-f5lCR=Ew*Xj;X3?4!)vniB*YB^B?%aNBV%KkU<2804f^V_ zeuzuRe9mT-=Kk*8{SP~KrDWL(;X%Ju?{FSlP<0Ul>H7=hq0r(A66H}P1 zPBER1W(ue~33%;rtgNhr!_K=pJD(yTAlzK+NYLWrf4@9Z;F^ZA*BH=%uVOF^>RqRErQ2MT6Ypy2`ZLlS zG`;WWMzdMcH?T<|k^iT)DY%*W{zEI?c&QcFGk27aGHKl0o;R^=*JrBDPGRDbxGE~7 zS5iL>d!svByoaZ(=8w@5KSu}bspXGLgIbdGhCV2nIFFUn_Vgo&xS#I3lJ3Qru7JGZ zCY|cf3S~c#Ts9C1%K-frm|?F^*uQU3DgW}=co{aw%FJxI{gZ^*Vh$4@A0K2XW@~MT zL278@{ubKD{#a!5CkrW9G?+Ul7E(15%Its(SmzGS(}7_1CEf`^Oebr(TnUjQk4eIj zMWibXcFg5@u>vPDK!6)N{Tn8YLNMCVlKn;}uJi#3h~ZG`ck(1Hi)9#JArJxE@wUNGC5`@Z24K0`&=? znd2*%Kn+iOUe0ZijZ}kUw&ew7qI&Y#jnYl+IhyqXtjnzL|FU&XJ;jLJ-AS)x z+CY#7WI~ZpP>lM{3sSi+%xDMz^1JJ~ma7(j3+4#wo$m2q7-WS!_fuP(PTOs5FzuPS zxi^<9@J!w*U57l4O8OoF5pAI54$x2|y?CJq1f4MZNl>vV;A8&8)8I$^CT7rI7X=Qm zsLinU9jh~{{pJvS8;BRUUF-|NJg!}!hlICi1iJifPs3g|NAf0HR~?zAO2oe7B}p4M z8KQT(V}JkteJsO<7e(Ok@#|P}xhGaMG=~e#9p|`A>|UpS!u7Bqd;f}a6r91I!Uv+E zGFRpvD$DISICvGN`-Wks+qm1~PCjHglyL%}#*N>iW@TmhYQaA@c8^f%eoLojN;(n=n68y z_j|Q=2M#wprp9LN6EwKPf9YBd8qR=Ww+1Wd*j=kiMz8>VL+E^UyLxF(*I(wRv} zk~w*ReV_c_11+RN3B+Rmwt7y=GNk|E6D>;z)A9k1?!}v=E&0EvTizr82Z{a@l>EPY zY5TwDQ~a*fLM21ZK(P_(uhZ2x7WdF3z&EB_Jv|xcyPcTWY&Cujq)}Vlj+%5Q)Q9*z zcFTM=Fk0~;Aq+)KOsshM*Ecx>kq43CFCOVW7ZU6(Og{utoMHP4*WMW*JkPv87M@yD z5ASkG{++_J+51%O#mPg;e`Jmy5!{^483}o0uKQ=lr;}7p`wQ(=JL96_(#qY;<}*LO zXlt`$*?pv?4L{&=T48IK`LrowI$p?fhOor|3}!4kty2N}d$N4{l2(x}9SiwJM<#H% zqEZt(4_5Z}Rqwdu=(GzvS%AYDWM`zxV1`vj#E01{X3D>6AuLX<+-L?!_r!Km+Z-6 zaIlAqNeU6`)Ju{_3T0|v^$^U|K_C(;CfD_#>m&jbyH{oAb=AsA^Yi_C&kxSu%e)ob zOReK}IGk`=QE&&riNn22NlY1?bf(7+Pc=+>Z~$pl03&XetdU4s`2T%KNS=qB6fVwPE0S==&1T@9N#gfh(cXhZW#3GbG-AES zDsu+5Z!1?>QV!yvyAufo!$}CkKTQ)ulo0skLSStf)>d8B7;x2gm6#zYOD9QnLT)jE z#X}f)xz;fceVWc$^d=>4`otbcmq7Lm2a4M+oB3yXc}4@_2;=?$DaAr%p`3jALPLtf zz(o^~WL-|R*{FEi+0`Xi5`Zr!CkIf*P_k0%+2JBrjrH(clpsI}v2-d#I>f}Mn}ZUj zrltWn$jJ6^;&rhfNqE21^L%0v%F^7e83*vr?Q*-_=bQFIE3xpNa!Dc^TjYwlitFWF zk}!uiE0BXRspVox7diFg`UCRNh>U(Pu(FV>YU5Nk_Y_*ni1ppPZvajYkkM`JhP|+^ zqy;l%WdW^xv_7tAJ()25S_MJmg`nO}zQD_>khS*PFjQkW9t=Y;JBIFoUa*SLtxg*x=lM6=vzk&d!d$ z!WRYNYEiMNl3)e_j1knmwiCcL(A90rk7{AInR|sSA@TnGZ?z`F7p-NZck@dCp^rAI z&=H(+q7z~a0(&Tlox-Oxq6_H}3H(vWhqE!zud_RS1y^pfYzsu0h6tkImJIlylNYa2 z4`p6YN5iqlQGTiJzKHFS+5X!Fl1X@52lV-DJx=>MZk5k;LJMXq7+##5_-WRKe#^+{ z=BU{El|B9o2B<~s)ePGH@~^kNRPQ~9GQN`ZP1+ee1XxWR&8V+w8d)fA%!D`lr8Yio ztM~2sqf<;jnZl-srRCM>c&GW_PS_+B+_P8bt4^ZityA}LJnqoPV61TXu^bV`_1$>C zMY>!In99>U@E95zy1KeKJ~eW~7YQdK;eJnGVqy}PDKSjMbG*M4vrun;cD|!fW4+wH zUvDourJFrf&o_L0Gl;KTsxAho$X9Aba)HqLdPEQe>^r+w22*PwZu9dS!U-O8WK5nk zJU!W0TKgwkUMh#fYMWKL2R><-4z$5w1WKlZ=&=?OEw<#n$us#G5jgw~h+FS~>PiOP zH+i@z0X|f#IXv-F>(=_A=giwbBBk6;xcU`I$za$5<)nO>kFvkq(Dtz>mnnRSeuGhu zPw;z6i0X$c?u*aTTpA#?1X5o<74+`A5x!smOa>&8CTJTJt?%DgkC~!7#etbBJ~5 z*LM5Tn%xsI*b}aivFW>=ncq?=|NOEhoIXS%RQZ|&RDvupgh#;Vm5NQLBVQ?uvTu3t z=z|+c7Gcqx5UqxZ)RqDn1)hwIY^wN<5b&a0>GWJD+JuVIzOxhtE4SSLGIkaUl|KMm zS|RV@qprNqsf`MluvDlp6dR~a0g$l2V2!MIYo!g+=!~<)_6R-mA$#dyFh|f_oYITv z9*l)%E2UeXUlRBJsaaGK{#nmbFbsCvEVnmqS6|(T)r4#sPw>i360-T$snxP?RfNz! zNE8|38CV*BFE99?;R~6JC%~=f$;l$)XmYGQRdoad7EHQ*?5LItL-G%1+dF&X*1B}h zq@f+dS$sgB zi{#@P9CzV#jf}d!9_hiUs;d_+UV=sWN~;xo{~Q$rC^|3jr|SV(GU|(!3#tV1i-no; zS2*nN#$VI#<||c#NrY=0-myS7n`Lxj;^7H^sU$_S)y9qC5>43hD&5JR<9S!|pVigzz+UVl?!p!h_Xq;Y0~i-PzMbFzil-4? z7RVZdajJdw^7!ef(d7v`0|kuWSc)znA%Jd#0>Y&;~0WPug=m}k2&5`I!pqw~A-omz%!0xp5As^O=Bb@A=N8 z20#Fqey>nazGSrZ^nAkafcz^95U72BvvRrSU_M>k1#7+qW|kaR0_QzodeLcVLnH0J zJEM(cr5pXWYnxK2`->3}2t?T6HX4NqtHO5k{ZeQ5BmNy+_9C-^d8lGi|9rD`d-v9v zR(oSH<>{d|455r{IA621M!0^0A{p2w`l-{gjR~a{#(kEh1P}h3Je=d!pJl@ASWK6L ze~i$3%{uzj<>R~;=$LKvAT)sz2|wJ2)>KU>vJPqbS%mc!b5}?~Fj%sCK0jAb`@T1^qd;wE z_uKQp&B4(zC@jQia(9y1Y{9RJdC+TexkyAto!LTK+uk17GVzEnzg{k=#U*|U!K!ra z$I^Cn^U6qQRW3GV0EWqnOSA#Ifu$uPI5ILo4IMx<*T3(ia%;#eb+|r}sS&y_XV&ca|9r>>Twqw*h?S%M^Qf zg5?T)fi-T);i>jZyieriwWy;t%c03(}7yG+hjt6iUx^> zMKW|dG!8-oI>h$2A#d^o8@+50@}(TjWeX~*64ry=_*TEA{|(}!Q?=K^_toR9lnzUd zPi3YBiNvc=Vy8<`&~|O1N54``o2i>Rr2`@{&0e{M9vu2=x5m2rj}Vg@y90Mr28RZ} zG}6g3$$v(%RzafNbE-sJAdXVWbi75Yrr*Cry*XH^NJY=sSlGjZTZvNT**p5}ezXNX zHm`m5o6AFih$Wu5)}MU8oYTc6!Cm~KH0-)TIpn~R+obmK^Lq+JN-qXs35mUX?=A94 zvimznkzJ3e<-&GoiHq&gYj6S(-_cSgr%&4$jb>P3(y1h4Ly5Q4OZ!lEb<_BWvAuXt zx)Ps&N$@HQcPzB@SS~TXTMxbg&Tj*s+TEn^dSR0(c1r2Ie#(GX z$@e2si9g7ziG{Z&_NKv>uX_4(*$39=1dL1WG``_U%^dN#%rEyh%%%%Je0&C;Z)4MG ztzQLUyuxJ`RdeY5^GCP4IH}HNA+qRt^5V|Zw(3Vo$(#_j<4sU#U+TAu%|U!4Nl-h! zw6|lrJ=jEIfW%s;CUeZK%7bBlYEJe?vNhSUq~5&>+LFs_>UaNR8S$OrFm=+wY4Pw3 zoT{PY7i<O$jZx`DEcclOqST5^@Wd#7pJR7QZH|J-Xe!^+$i;GIVA5 z_q-hVFBS}-Lt4N;9m}3|p2dO}k0);j;ca-3+I#-fYOm($(`Tz&TX{~Uc#}o;uvJ8( zb|E0^fTVF@Ct#)!d0JW*Zr5&!2<)bF7vP5be@$VG8z+-4gzUxTkpY^-j%}}O_CVi{ z*fu{O7#jLYQ&YU4(_wccYN|xN2qKXoyRvcM9}*HG?tWoDiOagami7{?DM!X1Swl59 zG3fmp&E*Ek`Gg7cQ5*|0_jrQY-U@?8H783p*Rzc*sn)~3u;L=-;*cO$?OYp}7_LIO zwUoF@Q73p4AX0KvDwc+uj2iJ%%6&CW*EE05dT$BEv3ll4(|BV2sGGi>oc4^FwpX=Fnmz$ZzQxSd~~-(zEsCWFyxe z<+rv5a$+7Ki#0S9PKT$pq=~;?0eAhDN>MhbH=U0!H#fK5jTg@MIjTIZ-qn{RMkBam zG+FN*KF1r^^KB9!R8Qn9YvBR_AL!f6(*pBaw!5LUOeLUaWZ2wa>gWqww<0*G45Kks zP`#)wVUhb=Rv9)JM1&zM3+^(Gbv`p3)Tt9;UmpA4cfP-DXk_)gIoG@MJHgv{`2rgB=m zaI9F&@ySX1cz;a51^zF)F7fX0am%2>i^D@|orci<1iG`^xPEpHj&i3-b66cLkWm;i z%t>~rQ!lMkTdr8F5!2(n)IGwEcJS=-J>@HfBSeBn;YQ6^>R!?R2q-L^D9kn=V}WBuw}xQTgk%%+b{ymy4aIRwJNhn<-JL)}{j zRM~C+q97^?DxxSzDhSfuDJUS_B`MuVgOp8!bc2X=Nq0#~cMC`@deI$ctiAX9?)TpR zIrqc;cKqgorHjck=N#i#*Xv(xTV>-Y;@Nx|^X zY*H}>J!H})bTSQ8!PPA7(oJ?E<8fTwXV?&OssFsUA?+0BM^5o!jLl?jeQsyS<9+R? z^eB9A#@Ac<5gD`uQl2_;qf{tRb$7-KNIfX)_7I4h-BygXksI6dkK zg;=06UlNF(#*t({S67z40;pP0z=HPc*Dol$aB&|rti=@h`1s6>*qaoT6`72MrcQ!G z7YO{!1gQj1eSL#5@Dd2g#>u{Z!CYHg8$iT&%ZkM678%bsr#vQKS0Rh00%cqB#-9ar zI^kGIY|^wvSCvQvol*&Tb4S(e-reBN{{Zr2DIl z-qVr34+X`gvya?-97kheAR=I|{Q^C}F+70A5 z=F^_1WZ?G1dw^vm47E10kJeO)`vAYbGc!NuS0-BjoiLWJ{PU}yE@BVnD(gyj6)aGkU{0 znjN6yDfF0*0$}5ZXBV#@FAwg0((WvdY@cASMyi9Glhux4WN-G{_C12h_ziy_@6o!k zWu*AzGT0+JQ*{z5!OH~d!-j9E{$MH?9kQB2}o zmaVI1!$vjdK|Na^!1xPtn@fb8rq}8tvejaEy8^$+4|#RKbFPqWEJNruvKwbVHa^PS zWku*{KGXt_M*Y`^PHW@8B6BsBXODMRx_TR){U|8`(_t)t7A!V@+(9}x)a^JIyoyKn zl77OVQS1f+LE(+Q)K|j?2WU%Q10<=qbSLt)P9E9&_UTc5t~^^>U1sqZci?qg@`0U! zLndH29zf>0zZN4_QTu%ihs10&nIn^i=1{<^`CNr)S;*s(s2@+E(FUu|q*v3oXA|WP zyX--X%`_SX#J<;Uj?NC5;)PtKQ?!bla!zIinJ4h`=J!9*Ev+o~rRh4;j^qcL3EJ!H zh;JkE@ekMQ6#}Dr=`;%Hb5ESoU$BVx5A<)A@4Ri?nDF)WQEtIwm=jqQ{QZMr(Wf+$ z^N}a|Y2oU_9;ARWpB&^^EC~smh_eiG@QdW}-A@K%M+8ZYj@%dMAg=40 zqI>UOI>Qi@*X2N>Z(;h0+ke9u{_Sv?zx4MT{t{XIU;C1emQsnWz;OK8(X?P7vDwf! zN;O7ps@{>Lr@CIjSq%eCi@L>O3y}<@IU02+h;3WVLLQ zk0&OPkd~YuFR|#1<@0{~_N`YcnIm|+*}SIQSB5hE0r%&!`EA(F&gJgm5y7IWs@j>z z;(xriY7qYf$MgK$a-ufSim%inJ|Fhu4Km&vnwpwFe>RR)TG6d?m0J*p-EG#A+B%yN z9KG-O5CkFKBi44K9z@Vi6E*S&rMPqbp~sy8LaC? zE!1qW6i9E3il?|=ToKH#X6E4N>bG9i6SuQtMawhNirH8cYxcX>H`KR)iVo8(hzEI? zc|4QX`KhHkvilE(_XBR1hrSXLrWPh=zYBrWHIYrAdi3aB>2%o$cW_=FBPzQI@_I%` z$M4)B?gTa7Xo*Rgq!!e3F&qX|Mv_sB>l0=1f;-qk-SG`o&d9;;g_kW6QV1qPvpVMs z!LFB_YPF?BMF#tw8iP3sceP1K68SxTo{C~u*du~k=1z1s<)-Oi=k_^0#R2JqxTd(b zd>xwSn8z2BGNi>|aEjD*5JtRvcHN}+{ZlzIStNgb2WD^t3tV9++AB3%x&Cqf1K}x8 zV%zD@BLj#E0s2QxCjW?c%E%NxyPET|AQb%r=GN+%E(;r*!Ct${Y4yd!A&U_}+)q=^ zGEi)$N7ccddn7VDsthkABoV>gA$kfMJGWI8945} z4SIH>SSqFhm5=Q67t|cF9QsSuX7mL7LGnU-*jB$=ZX`!r(7;#43{ANgEY#8wO(9LK zO|)c_j3hh{a(nzPd!z?ZGSa?W=fAiIR`BTP=w7ehr{FI9X1DgNq50>}_bJ{u_KPFB zX8mh?aM%&>8d6u4BEQ0&cKPa6^YEhQTXzTu2$;S4M1VjpB<5maNq#wGUM>^!J|TgG zl$3Ouz0`N^NpHT5?&m;)?nd!oQ}sG@x=4m6yi}hD>f*1~54U`V?7bgQJwi~LPiiXV z>Tr%xbN|AP2ZGA$TKDfSqJ`7wMt*M!7HuxxWnZ`$9vPV1eD@6C^xi^8Iz>e#0wE`2 z%!7^em$`&vp7$?S&wsf!k9LN$bS!Qz9W&g&8TS;5yFk7YgElQL<2_O_A)lZ-Rl{h~KMcp$vH zdU0{i@ad2#WZ`d-+O?;UZUpfMJM#?`?@uu*wptx49aeJgC=CxqY>xbi=k@RdH6JwW zJa%i>WMyUNe}##!Ypv`X*x2+WCRAFNt8NkVKUG&J zNcZCDO6!Vy!2bG+7z>X=w&>k&jTGF4ulV}@;2zd&&df-aK_FGvVjxeUEnhyV03{W?6- zGNq)j!>Wymou)q@3?Q0BMN#Stk<&}m8U^vJjLX{OaKlD;HFrcdB!6dX8F@{9Zsna9&?j6d-#YL#3a0v*W zYPrX^Ph%d@Zx=XE3sT9%1SBPqy%QFOql*|I2R}Z1H9obHtRbIkHxW&J252t)o|4Z^ zxp9;KSWXnGJaFC#7DAm%ZU^ggO~1mX`Ahe$CJF#$>eelP`uzE2OfSKvT8xtiz4=M3 zY2pW@m#@|Aohr!O*rD(3EbQ;;j||Z zvc04;rE~f6WoC{`2XQfWXCv5ax+Nh#Uzkz9##nHvriYRVZ}zS|MBuTQ$If=C4eK2;oxz5`w7EE3tXIzk5D`{m2q)*Xa$mb${2 z6Qo|kCJM+6ya_)IyH)>XA`7Agrj4Owz?nhARYWi9u-a_}sKq-_guP_pS&;94fHYxJ z9)|*1TuKwW>P|D9o?L2h>TUJ0w3mK&_WgKxJU0{Sx(-h|2s?x2IFE=Wvvl!*bI!4k z>quEG3%7#RQpanP>s)QKoKAr@rHthRPpR1x zlHNaN^XF7;Bw%ywsA=qatn%P6=XKOb8>tu?)eN1W3)TAQX5x5!@w8FSVc z+?BSNR>w~1mR(uxb5NGl*M4N{5R)^~n%Ib+DhL)-YE`VRHoh_=xo6R5YbqqWKH3v5 z>j8}hF6wrfSZWw+LCovW=uAcArChal7?5o#Sq?hcy)tO_I{^9$Y6Bh2Pp=*3ZYfUp zFtRg!Npiw?a|f5$uk5On=an}{x9{J6{$W3txibtCcF0PpnV6*^o{k)=iM9uIKw8>& z+Uaz8Y9FkdtvVl&T>p=>mTTxaI#r)}Z?0^$4}?Lc%q>#h7rOnh zqW+UUCMrHqsbWDc(zra3%@q<7BQ-YPlcbv)9nV_QCIuOGRIXjG>%a*iB>NEZd7!zI z?%K&BNl|6o>GXVP@8#3%?TofbMI}p#|5Rj>2#$-7C(U!Pv$v@@WnI@aLEJWA@blVK zOWmL2d_+-T=0N2G$n}}5d`&qqr#q0LM8rsTaiyoVr>(8+;pj-x^ey64>($^Qdl1n+ z`%*>*xG5zA!_6cUrgG<_W3J$3dn&3Hu*v`~)dNYEOG2;F#>ZdA3)=eqRQ;r)zcc^q z*$=OW(CjviRS;O!*~p2!KgQ{~2L==XBhrinGh`(s9`W$-6fx}0HLil*jma@NWV-u8 zENRMvT9tk0kxNX!(b7=L6O>`5E-CQU(fN5-6cZWhgr52l0ts$YHE!bXF0J%9{L3(N ziHwZw&ED#ViQs`u?V|f92OHv`CZ0H$?}!RcQq7rxL`QzNeR>3jXV1YA-G)|mdllF9 z$(mD49l1n>3QsFE&_8AN<>0n*u0JN{4iDIMAe}C6Y_#A~&f{}Lp%Yv^+Oy{otJQ&C zA16QOXYx!z;03I5uc`N zK%6XK#3lBrsc9&BM$1Ckcp=jxhu8kgI793Yc;(Kt@y5jCw8?@Xv&dqI)i$=8z zbQt_17y^AYhR;Gi-mZ|^{|7J!(G09cvyZb>b0rh`UEA8^zow^qha@Mnrm1$t=4cj0 z+TLxkKkj4#{D9eJpV$*Z8;uz>GtQV*6FmLyF?@yuwuW`i4057yYY-bgkzgPUU)r_OG+7x`M%Y*ongAr4aDE7-7e4$V>v1>nlP8c3uMMblf)GalD9 zZib0c)tH4nT~<(GcXoD`yDvL~gnny#e|FS&E`W?LXjksM25LK?XW%&rczbX%;O=>G z9uXMFRbabAwO|1-rM~_*9_K~+2s)K+R*JS?eZFUI`?ITvj*J2WJ8ngl2ElXMd|ga$ z#SEXDXjiPTQgU;qMxICjprkv zhLyQ-EOvd;_ivHN!R-Y;Dw!hu0gKrek)&gyFU@I5ok=(67q#i>?R7@)i?}EJLpq@c zZq21tqTXbsCnAlkWaOB~S%SpG+{efad22=#-PHm27%6tE*c$aQYxu6slT}1xqcR(|efPT1&x$kg@ccRUw!L?s zjL<(borXAX*{JjDlV2~`8f%Hj(jryzubw>9u36o-#}d8j{kzP5YtuKs#e+K9<7;;M zfy~ihM0B)IU7e7qr9U;w1p%}S3a!uQ7eJXs%JQc5z^>YvkhF(>?j(_58+}9SIth3#+ZHLZclz@UFg&039v93*PBM&GY$-Y#l+?STqm4Qh( zWX3@GRB#p{KJ=V`cV%hGSnyltiykz+KVP;kyS(wTzqP=Txwlu2WA`S%c&YDGrB&=7 zK@UMeQYLhQg4bfDh*Wv%YuMMw=^y%-lx?uMMezalw^$x~(gq=0_;4penU+jnede@D zQ1X&9*|(^~sp@_Q=9z0m`EcGp)I>GD&DZ>Tt%LGqgUm@q`y*XhAf5g(fo&B#Kfv2~8pW^URveC~t%#Y18(<$R&L_G~wH<`rs# ze0`ew$0aFS#``wnwvEy~YmP1LrZWm3RX`~!8x(YS#qfT~8wX_2fs`C*GQ(M54Zf$Q zCug5bpVio=z(zXszyvc@c*oZgtKYG7YWcJVAcvL;G#^sQ8+gfK5gHlU@&R*CF^f^w}oYk~dssgCNS9oslTh7oMWFFbML17#on(gKJsl;oBa z-oA|+TJb&lnZ(d4qpq-2aovv_FP&iL{CU?f%AMt@d*7ZxbWYZ)s0p#FW6P-NmtM9( zgUtxUbi2&DP{z==>vXak&yZ*Rwq)IG6ar`dQq@M{$?{)Q6ZS�HIk%`m3Tr-_V-r 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 literal 0 HcmV?d00001 From 04b79a968a3020db1985884b295e1ada0918fdc2 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Thu, 3 Oct 2024 13:24:24 +1000 Subject: [PATCH 089/206] Fix headline missed in PR --- content/courses/state-compression/compressed-nfts.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/content/courses/state-compression/compressed-nfts.md b/content/courses/state-compression/compressed-nfts.md index 63927fe34..2b29101b4 100644 --- a/content/courses/state-compression/compressed-nfts.md +++ b/content/courses/state-compression/compressed-nfts.md @@ -199,7 +199,6 @@ be using the `@solana/spl-account-compression` SDK, the Metaplex Bubblegum program `@metaplex-foundation/mpl-bubblegum` through the Umi library from Metaplex. - #### Prepare metadata Prior to starting, you'll prepare your NFT metadata similarly to how you would @@ -624,7 +623,7 @@ We've covered the primary skills needed to interact with cNFTs, but haven't been fully comprehensive. You can also use Bubblegum to do things like burn, verify, delegate, and more. We won't go through these, but these instructions are similar to the mint and transfer process. If you need this additional -functionality, take a look at the +functionality, take a look at the [Bubblegum docs](https://developers.metaplex.com/bubblegum) on how to leverage the helper functions it provides. @@ -634,7 +633,7 @@ Let's jump in and practice creating and working with cNFTs. Together, we'll build as simple a script as possible that will let us mint a cNFT collection from a Merkle tree. -#### 1. Get the starter code +#### 1. Create a new project To begin create and initialize an empty NPM project and change directory into it. @@ -693,7 +692,7 @@ the keypair to it. We also assign the Bubblegum and dasApi plugins to it as well. #### 2. Create the Merkle tree account - + We’ll start by creating the Merkle tree account. To do this we will use the `createTree` method from Metaplex Bubblegum program. @@ -907,7 +906,7 @@ Now that we’ve written code to mint cNFTs, let’s see if we can actually fetc their data. Create a new file `fetch-cnft-details.ts` - + ```bash fetch-cnft-details.ts ``` @@ -1124,7 +1123,8 @@ traditional NFTs. Inspect the cNFT on Solana Explorer! Just like previously, if you have any issues, you should fix them yourself, but if needed the -[solution code](https://github.com/solana-foundation/compressed-nfts) is available. +[solution code](https://github.com/solana-foundation/compressed-nfts) is +available. ### Challenge From ec5933506a4b9f617d6345daa7976a89fa9fda23 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Thu, 3 Oct 2024 13:42:05 +1000 Subject: [PATCH 090/206] Fix minor typos --- content/courses/state-compression/compressed-nfts.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/courses/state-compression/compressed-nfts.md b/content/courses/state-compression/compressed-nfts.md index 2b29101b4..95f131af3 100644 --- a/content/courses/state-compression/compressed-nfts.md +++ b/content/courses/state-compression/compressed-nfts.md @@ -659,10 +659,10 @@ the file `create-tree.ts` mkdir src && touch src/create-tree.ts ``` -This Umi instantiation code will be repated in a lot of files, so feel free to +This Umi instantiation code will be repeated in a lot of files, so feel free to create a wrapper file to instantiate it: -```typescript filename="crate-tree.ts" +```typescript filename="create-tree.ts" import { dasApi } from "@metaplex-foundation/digital-asset-standard-api"; import { createTree, mplBubblegum } from "@metaplex-foundation/mpl-bubblegum"; import { generateSigner, keypairIdentity } from "@metaplex-foundation/umi"; From 7dbac06c36922b79c90495a2c93035615b3c07f5 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Thu, 3 Oct 2024 13:42:46 +1000 Subject: [PATCH 091/206] More minor typos --- content/courses/state-compression/compressed-nfts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/courses/state-compression/compressed-nfts.md b/content/courses/state-compression/compressed-nfts.md index 95f131af3..d196ffefa 100644 --- a/content/courses/state-compression/compressed-nfts.md +++ b/content/courses/state-compression/compressed-nfts.md @@ -711,7 +711,7 @@ You can also supply in optional fields such as - `public` - Determines whether anyone else apart from the tree creator will be able to mint cNFTs from the tree. -```typescript filename="crate-tree.ts" +```typescript filename="create-tree.ts" const merkleTree = generateSigner(umi); const builder = await createTree(umi, { merkleTree, From 78d9078305c7b5d81d2334649ddad98cc053394c Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Thu, 3 Oct 2024 13:56:51 +1000 Subject: [PATCH 092/206] Update old links --- content/courses/connecting-to-offchain-data/oracles.md | 2 +- .../verifiable-randomness-functions.md | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/content/courses/connecting-to-offchain-data/oracles.md b/content/courses/connecting-to-offchain-data/oracles.md index 674ebd9dd..82ce77a90 100644 --- a/content/courses/connecting-to-offchain-data/oracles.md +++ b/content/courses/connecting-to-offchain-data/oracles.md @@ -1406,7 +1406,7 @@ the data feed account does not exist anymore, withdraw the user's escrowed funds. A potential solution to this challenge can be found -[in the Github repository on the `challenge-solution` branch](https://github.com/Unboxed-Software/michael-burry-escrow/tree/challenge-solution). +[in the Github repository on the `challenge-solution` branch](https://github.com/solana-developers/burry-escrow/tree/challenge-solution). diff --git a/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md b/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md index 3f4445c28..e586b4090 100644 --- a/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md +++ b/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md @@ -448,7 +448,7 @@ lesson's codebase. If you don't want to complete the Oracle lesson, the starter code for this lab is provided for you in -[the main branch of the lab Github repository](https://github.com/Unboxed-Software/michael-burry-escrow). +[the main branch of the lab Github repository](https://github.com/solana-developers/burry-escrow). The repo contains a "Michael Burry" escrow program. This is a program that allows a user to lock up some solana funds in escrow that cannot be withdrawn @@ -463,8 +463,8 @@ from escrow regardless of the SOL price. If you are cloning the repo from the previous lesson make sure to do the following: -1. `git clone https://github.com/Unboxed-Software/michael-burry-escrow` -2. `cd michael-burry-escrow` +1. `git clone https://github.com/solana-developers/burry-escrow` +2. `cd burry-escrow` 3. `anchor build` 4. `anchor keys list` 1. Take the resulting key and put it into `Anchor.toml` and @@ -1620,7 +1620,7 @@ And there you have it! You should be able to run and pass all of the tests using If something is not working, go back and find where you went wrong. Alternatively feel free to try out the -[solution code on the `vrf` branch](https://github.com/Unboxed-Software/michael-burry-escrow/tree/vrf). +[solution code on the `vrf` branch](https://github.com/solana-developers/burry-escrow/tree/vrf). Remember to update your program keys and wallet path like we did in the [the Setup step](#1-program-setup). @@ -1633,7 +1633,7 @@ they roll 3 times without rolling doubles, they should be able to withdraw their funds, just like getting out of jail in Monopoly. If you get stuck, we have the solution in the -[`vrf-challenge-solution` branch](https://github.com/Unboxed-Software/michael-burry-escrow/tree/vrf-challenge-solution). +[`vrf-challenge-solution` branch](https://github.com/solana-developers/burry-escrow/tree/vrf-challenge-solution). Push your code to GitHub and From d0afeabf5e72ea1e7c4bd8e881df2ef9f20d8eb1 Mon Sep 17 00:00:00 2001 From: John <75003086+ZYJLiu@users.noreply.github.com> Date: Thu, 3 Oct 2024 08:43:18 -0500 Subject: [PATCH 093/206] Add Anchor section to docs (#428) * basic anchor doc pages * add pda anc cpi pages for anchor section * rewording and proofreading * delete deploying program pages * reorder sections, delete developing program overview content * fix links to deleted pages * misc * delete intro anchor guide page, fix links --- content/guides/games/hello-world.md | 6 +- .../getstarted/hello-world-in-your-browser.md | 9 +- .../getstarted/how-to-cpi-with-signer.md | 5 +- content/guides/getstarted/how-to-cpi.md | 5 +- content/guides/getstarted/intro-to-anchor.md | 750 ------------------ .../guides/getstarted/intro-to-native-rust.md | 2 +- content/guides/getstarted/rust-to-solana.md | 6 +- .../token-extensions/dynamic-meta-data-nft.md | 6 +- docs/advanced/index.md | 2 +- docs/advanced/versions.md | 7 +- docs/core/fees.md | 5 +- docs/core/programs.md | 12 +- docs/intro/dev.md | 9 +- .../intro/quick-start/reading-from-network.md | 4 +- docs/intro/wallets.md | 4 +- docs/programs/anchor/client-typescript.md | 354 +++++++++ docs/programs/anchor/cpi.md | 551 +++++++++++++ docs/programs/anchor/idl.md | 463 +++++++++++ docs/programs/anchor/index.md | 377 +++++++++ docs/programs/anchor/pda.md | 325 ++++++++ docs/programs/anchor/program-structure.md | 399 ++++++++++ docs/programs/debugging.md | 273 ------- docs/programs/deploying.md | 17 +- docs/programs/examples.md | 65 +- docs/programs/faq.md | 225 ------ docs/programs/index.md | 2 +- docs/programs/lang-c.md | 191 ----- docs/programs/lang-rust.md | 399 ---------- docs/programs/limitations.md | 87 -- docs/programs/overview.md | 105 --- docs/programs/testing.md | 14 +- docs/terminology.md | 2 +- package.json | 2 +- 33 files changed, 2537 insertions(+), 2146 deletions(-) delete mode 100644 content/guides/getstarted/intro-to-anchor.md create mode 100644 docs/programs/anchor/client-typescript.md create mode 100644 docs/programs/anchor/cpi.md create mode 100644 docs/programs/anchor/idl.md create mode 100644 docs/programs/anchor/index.md create mode 100644 docs/programs/anchor/pda.md create mode 100644 docs/programs/anchor/program-structure.md delete mode 100644 docs/programs/debugging.md delete mode 100644 docs/programs/faq.md delete mode 100644 docs/programs/lang-c.md delete mode 100644 docs/programs/lang-rust.md delete mode 100644 docs/programs/limitations.md delete mode 100644 docs/programs/overview.md diff --git a/content/guides/games/hello-world.md b/content/guides/games/hello-world.md index 23e4b4bab..cff9a9c9f 100644 --- a/content/guides/games/hello-world.md +++ b/content/guides/games/hello-world.md @@ -25,9 +25,9 @@ keywords: In this development guide, we will walkthrough a simple on-chain game using the Solana blockchain. This game, lovingly called _Tiny Adventure_, is a beginner-friendly Solana program created using the -[Anchor framework](/content/guides/getstarted/intro-to-anchor.md). The goal of -this program is to show you how to create a simple game that allows players to -track their position and move left or right. +[Anchor framework](/docs/programs/anchor). The goal of this program is to show +you how to create a simple game that allows players to track their position and +move left or right. > You can find the complete source code, available to deploy from your browser, > in this diff --git a/content/guides/getstarted/hello-world-in-your-browser.md b/content/guides/getstarted/hello-world-in-your-browser.md index 23e78f8fc..1fece1426 100644 --- a/content/guides/getstarted/hello-world-in-your-browser.md +++ b/content/guides/getstarted/hello-world-in-your-browser.md @@ -117,9 +117,8 @@ use solana_program::{ ### Write your program logic Every Solana program must define an `entrypoint` that tells the Solana runtime -where to start executing your onchain code. Your program's -[entrypoint](/docs/programs/lang-rust.md#program-entrypoint) should provide a -public function named `process_instruction`: +where to start executing your onchain code. Your program's entrypoint should +provide a public function named `process_instruction`: ```rust // declare and export the program's entrypoint @@ -143,8 +142,7 @@ Every onchain program should return the `Ok` [result enum](https://doc.rust-lang.org/std/result/) with a value of `()`. This tells the Solana runtime that your program executed successfully without errors. -Our program above will simply -[log a message](/docs/programs/debugging.md#logging) of "_Hello, world!_" to the +Our program above will simply log a message of "_Hello, world!_" to the blockchain cluster, then gracefully exit with `Ok(())`. ### Build your program @@ -324,4 +322,3 @@ your local development environment: - [Interacting with Tokens and NFTs](/developers/courses/tokens.md) - [Developer Guides](/developers/guides/) - [Developing Games](/content/guides/games/getting-started-with-game-development.md) -- [Learn more about developing Solana programs with Rust](/docs/programs/lang-rust.md) diff --git a/content/guides/getstarted/how-to-cpi-with-signer.md b/content/guides/getstarted/how-to-cpi-with-signer.md index 063559faa..5908d17f9 100644 --- a/content/guides/getstarted/how-to-cpi-with-signer.md +++ b/content/guides/getstarted/how-to-cpi-with-signer.md @@ -14,9 +14,8 @@ keywords: - tutorial --- -This guide uses the -[Anchor framework](/content/guides/getstarted/intro-to-anchor.md) to demonstrate -how to transfer SOL using a [Cross-Program Invocation (CPI)](/docs/core/cpi.md) +This guide uses the [Anchor framework](/docs/programs/anchor) to demonstrate how +to transfer SOL using a [Cross-Program Invocation (CPI)](/docs/core/cpi.md) where the sender is a PDA that the program must sign for. A typical use case for this scenario is a program that manages diff --git a/content/guides/getstarted/how-to-cpi.md b/content/guides/getstarted/how-to-cpi.md index e21105cc1..1a1b49283 100644 --- a/content/guides/getstarted/how-to-cpi.md +++ b/content/guides/getstarted/how-to-cpi.md @@ -13,9 +13,8 @@ keywords: - tutorial --- -This guide uses the -[Anchor framework](/content/guides/getstarted/intro-to-anchor.md) to demonstrate -how to transfer SOL using a [Cross Program Invocation (CPI)](/docs/core/cpi.md). +This guide uses the [Anchor framework](/docs/programs/anchor) to demonstrate how +to transfer SOL using a [Cross Program Invocation (CPI)](/docs/core/cpi.md). Included below are three different, but functionally equivalent implementations that you may come across when reading or writing Solana programs. Here is a final reference program on diff --git a/content/guides/getstarted/intro-to-anchor.md b/content/guides/getstarted/intro-to-anchor.md deleted file mode 100644 index 7b098c196..000000000 --- a/content/guides/getstarted/intro-to-anchor.md +++ /dev/null @@ -1,750 +0,0 @@ ---- -date: 2024-04-24T00:00:00Z -difficulty: beginner -title: "Getting Started with the Anchor Framework" -description: - "This guide provides a basic overview of the Anchor framework. Anchor is a - very popular Rust framework for building Solana programs (known as 'smart - contracts' on other chains) that removes boilerplate, provides secure - defaults, and builds client programs automatically." -tags: - - rust - - anchor -keywords: - - tutorial ---- - -The [Anchor framework](https://www.anchor-lang.com/) uses -[Rust macros](https://doc.rust-lang.org/book/ch19-06-macros.html) to reduce -boilerplate code and simplify the implementation of common security checks -required for writing Solana programs. - -Think of Anchor as a framework for Solana programs much like Next.js is for web -development. Just as Next.js allows developers to create websites using React -instead of relying solely on HTML and TypeScript, Anchor provides a set of tools -and abstractions that make building Solana programs more intuitive and secure. - -The main macros found in an Anchor program include: - -- [`declare_id`](#declare_id-macro): Specifies the program's on-chain address -- [`#[program]`](#program-macro): Specifies the module containing the program's - instruction logic -- [`#[derive(Accounts)]`](#derive-accounts-macro): Applied to structs to - indicate a list of accounts required for an instruction -- [`#[account]`](#account-macro): Applied to structs to create custom account - types specific to the program - -## Anchor Program - -Below is a simple Anchor program with a single instruction that creates a new -account. We'll walk through it to explain the basic structure of an Anchor -program. Here is the program on -[Solana Playground](https://beta.solpg.io/660f3a86cffcf4b13384d022). - -```rust filename="lib.rs" -use anchor_lang::prelude::*; - -declare_id!("11111111111111111111111111111111"); - -#[program] -mod hello_anchor { - use super::*; - pub fn initialize(ctx: Context, data: u64) -> Result<()> { - ctx.accounts.new_account.data = data; - msg!("Changed data to: {}!", data); - Ok(()) - } -} - -#[derive(Accounts)] -pub struct Initialize<'info> { - #[account(init, payer = signer, space = 8 + 8)] - pub new_account: Account<'info, NewAccount>, - #[account(mut)] - pub signer: Signer<'info>, - pub system_program: Program<'info, System>, -} - -#[account] -pub struct NewAccount { - data: u64, -} -``` - -### declare_id macro - -The -[`declare_id`](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/lang/attribute/account/src/lib.rs#L430) -macro is used to specify the on-chain address of the program (program ID). - -```rust filename="lib.rs" {3} -use anchor_lang::prelude::*; - -declare_id!("11111111111111111111111111111111"); -``` - -When you build an Anchor program for the first time, the framework generates a -new keypair used to deploy the program (unless specified otherwise). The public -key from this keypair should be used as the program ID in the `declare_id` -macro. - -- When using [Solana Playground](https://beta.solpg.io/), the program ID is - updated automatically for you and can be exported using the UI. -- When building locally, the program keypair can be found in - `/target/deploy/your_program_name.json` - -### program macro - -The -[`#[program]`](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/lang/attribute/program/src/lib.rs#L12) -macro specifies the module containing all of your program's instructions. Each -public function in the module represents a separate instruction for the program. - -In every function, the first parameter is always a `Context` type. Subsequent -parameters, which are optional, define any additional `data` required by the -instruction. - -```rust filename="lib.rs" {5, 8-12} -use anchor_lang::prelude::*; - -declare_id!("11111111111111111111111111111111"); - -#[program] -mod hello_anchor { - use super::*; - pub fn initialize(ctx: Context, data: u64) -> Result<()> { - ctx.accounts.new_account.data = data; - msg!("Changed data to: {}!", data); - Ok(()) - } -} - -#[derive(Accounts)] -pub struct Initialize<'info> { - #[account(init, payer = signer, space = 8 + 8)] - pub new_account: Account<'info, NewAccount>, - #[account(mut)] - pub signer: Signer<'info>, - pub system_program: Program<'info, System>, -} - -#[account] -pub struct NewAccount { - data: u64, -} -``` - -The -[`Context`](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/lang/src/context.rs#L24) -type provides the instruction with access to the following non-argument inputs: - -```rust -pub struct Context<'a, 'b, 'c, 'info, T> { - /// Currently executing program id. - pub program_id: &'a Pubkey, - /// Deserialized accounts. - pub accounts: &'b mut T, - /// Remaining accounts given but not deserialized or validated. - /// Be very careful when using this directly. - pub remaining_accounts: &'c [AccountInfo<'info>], - /// Bump seeds found during constraint validation. This is provided as a - /// convenience so that handlers don't have to recalculate bump seeds or - /// pass them in as arguments. - pub bumps: BTreeMap, -} -``` - -`Context` is a generic type where `T` represents the set of accounts required by -an instruction. When defining the instruction's `Context`, the `T` type is a -struct that implements the `Accounts` trait (`Context`). - -This context parameter allows the instruction to access: - -- `ctx.accounts`: The instruction's accounts -- `ctx.program_id`: The address of the program itself -- `ctx.remaining_accounts`: All remaining accounts provided to the instruction - but not specified in the `Accounts` struct -- `ctx.bumps`: Bump seeds for any - [Program Derived Address (PDA)](/docs/core/pda.md) accounts specified in the - `Accounts` struct - -### derive(Accounts) macro - -The -[`#[derive(Accounts)]`](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/lang/derive/accounts/src/lib.rs#L630) -macro is applied to a struct and implements the -[`Accounts`](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/lang/src/lib.rs#L105) -trait. This is used to specify and validate a set of accounts required for a -particular instruction. - -```rust /Accounts/ {1} -#[derive(Accounts)] -pub struct Initialize<'info> { - #[account(init, payer = signer, space = 8 + 8)] - pub new_account: Account<'info, NewAccount>, - #[account(mut)] - pub signer: Signer<'info>, - pub system_program: Program<'info, System>, -} -``` - -Each field in the struct represents an account that is required by an -instruction. The naming of each field is arbitrary, but it is recommended to use -a descriptive name that indicates the purpose of the account. - -```rust /signer/2 /new_account/ /system_program/ -#[derive(Accounts)] -pub struct Initialize<'info> { - #[account(init, payer = signer, space = 8 + 8)] - pub new_account: Account<'info, NewAccount>, - #[account(mut)] - pub signer: Signer<'info>, - pub system_program: Program<'info, System>, -} -``` - -When building Solana programs, it's essential to validate the accounts provided -by the client. This validation is achieved in Anchor through account constraints -and specifying appropriate account types: - -- [Account Constraints](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/lang/syn/src/parser/accounts/constraints.rs): - Constraints define additional conditions that an account must satisfy to be - considered valid for the instruction. Constraints are applied using the - `#[account(..)]` attribute, which is placed above an account field in the - `Accounts` struct. - - ```rust {3, 5} - #[derive(Accounts)] - pub struct Initialize<'info> { - #[account(init, payer = signer, space = 8 + 8)] - pub new_account: Account<'info, NewAccount>, - #[account(mut)] - pub signer: Signer<'info>, - pub system_program: Program<'info, System>, - } - ``` - -- [Account Types](https://github.com/coral-xyz/anchor/tree/852fcc77beb6302474a11e0f8e6f1e688021be36/lang/src/accounts): - Anchor provides various account types to help ensure that the account provided - by the client matches what the program expects. - - ```rust /Account/2 /Signer/ /Program/ - #[derive(Accounts)] - pub struct Initialize<'info> { - #[account(init, payer = signer, space = 8 + 8)] - pub new_account: Account<'info, NewAccount>, - #[account(mut)] - pub signer: Signer<'info>, - pub system_program: Program<'info, System>, - } - ``` - -Accounts within the `Accounts` struct are accessible in an instruction through -the `Context`, using the `ctx.accounts` syntax. - -```rust filename="lib.rs" /ctx.accounts.new_account/ /new_account/ /Initialize/ {15-22} -use anchor_lang::prelude::*; - -declare_id!("11111111111111111111111111111111"); - -#[program] -mod hello_anchor { - use super::*; - pub fn initialize(ctx: Context, data: u64) -> Result<()> { - ctx.accounts.new_account.data = data; - msg!("Changed data to: {}!", data); - Ok(()) - } -} - -#[derive(Accounts)] -pub struct Initialize<'info> { - #[account(init, payer = signer, space = 8 + 8)] - pub new_account: Account<'info, NewAccount>, - #[account(mut)] - pub signer: Signer<'info>, - pub system_program: Program<'info, System>, -} - -#[account] -pub struct NewAccount { - data: u64, -} -``` - -When an instruction in an Anchor program is invoked, the program performs the -following checks as specified the in `Accounts` struct: - -- Account Type Verification: It verifies that the accounts passed into the - instruction correspond to the account types defined in the instruction - Context. - -- Constraint Checks: It checks the accounts against any additional constraints - specified. - -This helps ensure that the accounts passed to the instruction from the client -are valid. If any checks fail, then the instruction fails with an error before -reaching the main logic of the instruction handler function. - -For more detailed examples, refer to the -[constraints](https://www.anchor-lang.com/docs/account-constraints) and -[account types](https://www.anchor-lang.com/docs/account-types) sections in the -Anchor documentation. - -### account macro - -The -[`#[account]`](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/lang/attribute/account/src/lib.rs#L66) -macro is applied to structs to define the format of a custom data account type -for a program. Each field in the struct represents a field that will be stored -in the account data. - -```rust {3} -#[account] -pub struct NewAccount { - data: u64, -} -``` - -This macro implements various traits -[detailed here](https://docs.rs/anchor-lang/latest/anchor_lang/attr.account.html). -The key functionalities of the `#[account]` macro include: - -- [Assign Ownership](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/lang/attribute/account/src/lib.rs#L119-L132): - When creating an account, the ownership of the account is automatically - assigned to the program specified in the `declare_id`. -- [Set Discriminator](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/lang/attribute/account/src/lib.rs#L101-L117): - A unique 8-byte discriminator, specific to the account type, is added as the - first 8 bytes of account data during its initialization. This helps in - differentiating account types and account validation. -- [Data Serialization and Deserialization](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/lang/attribute/account/src/lib.rs#L202-L246): - The account data corresponding to the account type is automatically serialized - and deserialized. - -```rust filename="lib.rs" /data/2,6 /NewAccount/ {24-27} -use anchor_lang::prelude::*; - -declare_id!("11111111111111111111111111111111"); - -#[program] -mod hello_anchor { - use super::*; - pub fn initialize(ctx: Context, data: u64) -> Result<()> { - ctx.accounts.new_account.data = data; - msg!("Changed data to: {}!", data); - Ok(()) - } -} - -#[derive(Accounts)] -pub struct Initialize<'info> { - #[account(init, payer = signer, space = 8 + 8)] - pub new_account: Account<'info, NewAccount>, - #[account(mut)] - pub signer: Signer<'info>, - pub system_program: Program<'info, System>, -} - -#[account] -pub struct NewAccount { - data: u64, -} -``` - -In Anchor, an account discriminator is an 8-byte identifier, unique to each -account type. This identifier is derived from the first 8 bytes of the SHA256 -hash of the account type's name. The first 8 bytes in an account's data are -specifically reserved for this discriminator. - -```rust /8/1 -#[account(init, payer = signer, space = 8 + 8)] -pub new_account: Account<'info, NewAccount>, -``` - -The discriminator is used during the following two scenarios: - -- Initialization: During the initialization of an account, the discriminator is - set with the account type's discriminator. -- Deserialization: When account data is deserialized, the discriminator within - the data is checked against the expected discriminator of the account type. - -If there's a mismatch, it indicates that the client has provided an unexpected -account. This mechanism serves as an account validation check in Anchor -programs, ensuring the correct and expected accounts are used. - -## IDL File - -When an Anchor program is built, Anchor generates an interface description -language (IDL) file representing the structure of the program. This IDL file -provides a standardized JSON-based format for building program instructions and -fetching program accounts. - -Below are examples of how an IDL file relates to the program code. - -### Instructions - -The `instructions` array in the IDL corresponds with the instructions on the -program and specifies the required accounts and parameters for each instruction. - -```json filename="IDL.json" {6,8-10, 12} -{ - "version": "0.1.0", - "name": "hello_anchor", - "instructions": [ - { - "name": "initialize", - "accounts": [ - { "name": "newAccount", "isMut": true, "isSigner": true }, - { "name": "signer", "isMut": true, "isSigner": true }, - { "name": "systemProgram", "isMut": false, "isSigner": false } - ], - "args": [{ "name": "data", "type": "u64" }] - } - ], - "accounts": [ - { - "name": "NewAccount", - "type": { - "kind": "struct", - "fields": [{ "name": "data", "type": "u64" }] - } - } - ] -} -``` - -```rust filename="lib.rs" {8, 18, 20, 21} -use anchor_lang::prelude::*; - -declare_id!("11111111111111111111111111111111"); - -#[program] -mod hello_anchor { - use super::*; - pub fn initialize(ctx: Context, data: u64) -> Result<()> { - ctx.accounts.new_account.data = data; - msg!("Changed data to: {}!", data); - Ok(()) - } -} - -#[derive(Accounts)] -pub struct Initialize<'info> { - #[account(init, payer = signer, space = 8 + 8)] - pub new_account: Account<'info, NewAccount>, - #[account(mut)] - pub signer: Signer<'info>, - pub system_program: Program<'info, System>, -} - -#[account] -pub struct NewAccount { - data: u64, -} -``` - -### Accounts - -The `accounts` array in the IDL corresponds with structs in the program -annotated with the `#[account]` macro, which specifies the structure of the -program's data accounts. - -```json filename="IDL.json" {16-22} -{ - "version": "0.1.0", - "name": "hello_anchor", - "instructions": [ - { - "name": "initialize", - "accounts": [ - { "name": "newAccount", "isMut": true, "isSigner": true }, - { "name": "signer", "isMut": true, "isSigner": true }, - { "name": "systemProgram", "isMut": false, "isSigner": false } - ], - "args": [{ "name": "data", "type": "u64" }] - } - ], - "accounts": [ - { - "name": "NewAccount", - "type": { - "kind": "struct", - "fields": [{ "name": "data", "type": "u64" }] - } - } - ] -} -``` - -```rust filename="lib.rs" {24-27} -use anchor_lang::prelude::*; - -declare_id!("11111111111111111111111111111111"); - -#[program] -mod hello_anchor { - use super::*; - pub fn initialize(ctx: Context, data: u64) -> Result<()> { - ctx.accounts.new_account.data = data; - msg!("Changed data to: {}!", data); - Ok(()) - } -} - -#[derive(Accounts)] -pub struct Initialize<'info> { - #[account(init, payer = signer, space = 8 + 8)] - pub new_account: Account<'info, NewAccount>, - #[account(mut)] - pub signer: Signer<'info>, - pub system_program: Program<'info, System>, -} - -#[account] -pub struct NewAccount { - data: u64, -} - -``` - -## Client - -Anchor provides a Typescript client library -([`@coral-xyz/anchor`](https://github.com/coral-xyz/anchor/tree/852fcc77beb6302474a11e0f8e6f1e688021be36/ts/packages/anchor)) -that simplifies the process of interacting with Solana programs from the client. - -To use the client library, you first need to set up an instance of a -[`Program`](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/ts/packages/anchor/src/program/index.ts#L58) -using the IDL file generated by Anchor. - -### Client Program - -Creating an instance of the `Program` requires the program's IDL, its on-chain -address (`programId`), and an -[`AnchorProvider`](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/ts/packages/anchor/src/provider.ts#L55). -An `AnchorProvider` combines two things: - -- `Connection` - the connection to a [Solana cluster](/docs/core/clusters.md) - (i.e. localhost, devnet, mainnet) -- `Wallet` - (optional) a default wallet used to pay and sign transactions - -When building an Anchor program locally, the setup for creating an instance of -the `Program` is done automatically in the test file. The IDL file can be found -in the `/target` folder. - -```typescript showLineNumbers -import * as anchor from "@coral-xyz/anchor"; -import { Program, BN } from "@coral-xyz/anchor"; -import { HelloAnchor } from "../target/types/hello_anchor"; - -const provider = anchor.AnchorProvider.env(); -anchor.setProvider(provider); -const program = anchor.workspace.HelloAnchor as Program; -``` - -When integrating with a frontend using the -[wallet adapter](https://solana.com/developers/guides/wallets/add-solana-wallet-adapter-to-nextjs), -you'll need to manually set up the `AnchorProvider` and `Program`. - -```ts {8-9, 12} -import { Program, Idl, AnchorProvider, setProvider } from "@coral-xyz/anchor"; -import { useAnchorWallet, useConnection } from "@solana/wallet-adapter-react"; -import { IDL, HelloAnchor } from "./idl"; - -const { connection } = useConnection(); -const wallet = useAnchorWallet(); - -const provider = new AnchorProvider(connection, wallet, {}); -setProvider(provider); - -const programId = new PublicKey("..."); -const program = new Program(IDL, programId); -``` - -Alternatively, you can create an instance of the `Program` using only the IDL -and the `Connection` to a Solana cluster. This means if there is no default -`Wallet`, but allows you to use the `Program` to fetch accounts before a wallet -is connected. - -```ts {8-10} -import { Program } from "@coral-xyz/anchor"; -import { clusterApiUrl, Connection, PublicKey } from "@solana/web3.js"; -import { IDL, HelloAnchor } from "./idl"; - -const programId = new PublicKey("..."); -const connection = new Connection(clusterApiUrl("devnet"), "confirmed"); - -const program = new Program(IDL, programId, { - connection, -}); -``` - -### Invoke Instructions - -Once the `Program` is set up, you can use the Anchor -[`MethodsBuilder`](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/ts/packages/anchor/src/program/namespace/methods.ts#L155) -to build an instruction, a transaction, or build and send a transaction. The -basic format looks like this: - -- `program.methods` - This is the builder API for creating instruction calls - related to the program's IDL -- `.instructionName` - Specific instruction from the program IDL, passing in any - instruction data as comma-separated values -- `.accounts` - Pass in the address of each account required by the instruction - as specified in the IDL -- `.signers` - Optionally pass in an array of keypairs required as additional - signers by the instruction - -```ts -await program.methods - .instructionName(instructionData1, instructionData2) - .accounts({}) - .signers([]) - .rpc(); -``` - -Below are examples of how to invoke an instruction using the methods builder. - -#### rpc() - -The -[`rpc()`](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/ts/packages/anchor/src/program/namespace/methods.ts#L283) -method -[sends a signed transaction](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/ts/packages/anchor/src/program/namespace/rpc.ts#L29) -with the specified instruction and returns a `TransactionSignature`. When using -`.rpc`, the `Wallet` from the `Provider` is automatically included as a signer. - -```ts {13} -// Generate keypair for the new account -const newAccountKp = new Keypair(); - -const data = new BN(42); -const transactionSignature = await program.methods - .initialize(data) - .accounts({ - newAccount: newAccountKp.publicKey, - signer: wallet.publicKey, - systemProgram: SystemProgram.programId, - }) - .signers([newAccountKp]) - .rpc(); -``` - -#### transaction() - -The -[`transaction()`](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/ts/packages/anchor/src/program/namespace/methods.ts#L382) -method -[builds a `Transaction`](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/ts/packages/anchor/src/program/namespace/transaction.ts#L18-L26) -and adds the specified instruction to the transaction (without automatically -sending). - -```ts {12} /transaction/1,2,4 -// Generate keypair for the new account -const newAccountKp = new Keypair(); - -const data = new BN(42); -const transaction = await program.methods - .initialize(data) - .accounts({ - newAccount: newAccountKp.publicKey, - signer: wallet.publicKey, - systemProgram: SystemProgram.programId, - }) - .transaction(); - -const transactionSignature = await connection.sendTransaction(transaction, [ - wallet.payer, - newAccountKp, -]); -``` - -#### instruction() - -The -[`instruction()`](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/ts/packages/anchor/src/program/namespace/methods.ts#L348) -method -[builds a `TransactionInstruction`](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/ts/packages/anchor/src/program/namespace/instruction.ts#L57-L61) -using the specified instruction. This is useful if you want to manually add the -instruction to a transaction and combine it with other instructions. - -```ts {12} /instruction/ -// Generate keypair for the new account -const newAccountKp = new Keypair(); - -const data = new BN(42); -const instruction = await program.methods - .initialize(data) - .accounts({ - newAccount: newAccountKp.publicKey, - signer: wallet.publicKey, - systemProgram: SystemProgram.programId, - }) - .instruction(); - -const transaction = new Transaction().add(instruction); - -const transactionSignature = await connection.sendTransaction(transaction, [ - wallet.payer, - newAccountKp, -]); -``` - -### Fetch Accounts - -The client `Program` also allows you to easily fetch and filter program -accounts. Simply use `program.account` and then specify the name of the account -type on the IDL. Anchor then deserializes and returns all accounts as specified. - -#### all() - -Use -[`all()`](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/ts/packages/anchor/src/program/namespace/account.ts#L251) -to fetch all existing accounts for a specific account type. - -```ts /all/ -const accounts = await program.account.newAccount.all(); -``` - -#### memcmp - -Use `memcmp` to filter for accounts storing data that matches a specific value -at a specific offset. When calculating the offset, remember that the first 8 -bytes are reserved for the account discriminator in accounts created through an -Anchor program. Using `memcmp` requires you to understand the byte layout of the -data field for the account type you are fetching. - -```ts /memcmp/ -const accounts = await program.account.newAccount.all([ - { - memcmp: { - offset: 8, - bytes: "", - }, - }, -]); -``` - -#### fetch() - -Use -[`fetch()`](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/ts/packages/anchor/src/program/namespace/account.ts#L165) -to get the account data for a specific account by passing in the account address - -```ts /fetch/ -const account = await program.account.newAccount.fetch(ACCOUNT_ADDRESS); -``` - -#### fetchMultiple() - -Use -[`fetchMultiple()`](https://github.com/coral-xyz/anchor/blob/852fcc77beb6302474a11e0f8e6f1e688021be36/ts/packages/anchor/src/program/namespace/account.ts#L200) -to get the account data for multiple accounts by passing in an array of account -addresses - -```ts /fetchMultiple/ -const accounts = await program.account.newAccount.fetchMultiple([ - ACCOUNT_ADDRESS_ONE, - ACCOUNT_ADDRESS_TWO, -]); -``` diff --git a/content/guides/getstarted/intro-to-native-rust.md b/content/guides/getstarted/intro-to-native-rust.md index 27e508e67..6f5125e6b 100644 --- a/content/guides/getstarted/intro-to-native-rust.md +++ b/content/guides/getstarted/intro-to-native-rust.md @@ -16,7 +16,7 @@ To write Solana programs without leveraging the Anchor framework, we use the This is the base library for writing onchain programs in Rust. For beginners, it is recommended to start with the -[Anchor framework](/content/guides/getstarted/intro-to-anchor.md). +[Anchor framework](/docs/programs/anchor). ## Program diff --git a/content/guides/getstarted/rust-to-solana.md b/content/guides/getstarted/rust-to-solana.md index 3c001d31b..c1d9d75a1 100644 --- a/content/guides/getstarted/rust-to-solana.md +++ b/content/guides/getstarted/rust-to-solana.md @@ -237,8 +237,7 @@ boilerplate code, speeding up the development cycle. Additionally, it provides some security checks by default, making Solana programs more secure. To create a new program, simply -[create a new Anchor project](https://solana.com/developers/guides/getstarted/intro-to-anchor) -in the Solana playground. +[create a new Anchor project](/docs/programs/anchor) in the Solana playground. Alternatively, [install the Anchor CLI](https://www.anchor-lang.com/docs/installation) locally, @@ -265,9 +264,6 @@ consider writing onchain programs in Rust, and offchain This guide has covered the basics of developing for Solana with Rust, from setup details and restrictions to development environments and frameworks. -For more Rust-related Solana resources, check out the -[Developing with Rust page](https://solana.com/docs/programs/lang-rust). - For other Solana program examples written with Rust, check out these [examples on GitHub](https://github.com/solana-labs/solana-program-library/tree/master/examples/rust). diff --git a/content/guides/token-extensions/dynamic-meta-data-nft.md b/content/guides/token-extensions/dynamic-meta-data-nft.md index 279400ac2..b52b6d83a 100644 --- a/content/guides/token-extensions/dynamic-meta-data-nft.md +++ b/content/guides/token-extensions/dynamic-meta-data-nft.md @@ -46,9 +46,9 @@ character's stats or inventory). ## Building the on-chain program In this developer guide, we will demonstrate how to build these Token Extension -based NFTs and custom metadata using an -[Anchor program](/content/guides/getstarted/intro-to-anchor.md). This program -will save the level and the collected resources of a game player within an NFT. +based NFTs and custom metadata using an [Anchor program](/docs/programs/anchor). +This program will save the level and the collected resources of a game player +within an NFT. This NFT will be created by the Anchor program so it is very easy to mint from the JavaScript client. Each NFT will have some basic structure provided via the diff --git a/docs/advanced/index.md b/docs/advanced/index.md index 933c4c67f..11ae9d7f4 100644 --- a/docs/advanced/index.md +++ b/docs/advanced/index.md @@ -1,5 +1,5 @@ --- metaOnly: true -title: Advanced Concepts +title: Advanced Topics sidebarSortOrder: 3 --- diff --git a/docs/advanced/versions.md b/docs/advanced/versions.md index c86528558..fea794409 100644 --- a/docs/advanced/versions.md +++ b/docs/advanced/versions.md @@ -13,10 +13,9 @@ Versioned Transactions are the new transaction format that allow for additional functionality in the Solana runtime, including [Address Lookup Tables](/docs/advanced/lookup-tables.md). -While changes to [onchain](/docs/programs/index.md) programs are **NOT** -required to support the new functionality of versioned transactions (or for -backwards compatibility), developers **WILL** need update their client side code -to prevent +While changes to onchain programs are **NOT** required to support the new +functionality of versioned transactions (or for backwards compatibility), +developers **WILL** need update their client side code to prevent [errors due to different transaction versions](#max-supported-transaction-version). ## Current Transaction Versions diff --git a/docs/core/fees.md b/docs/core/fees.md index 8467f23d1..aaa988c9f 100644 --- a/docs/core/fees.md +++ b/docs/core/fees.md @@ -197,9 +197,8 @@ syscalls, etc), each may consume a of compute units. > A program can log details about its compute usage, including how much remains -> in its alloted compute budget. See -> [program debugging](/docs/programs/debugging.md#monitoring-compute-budget-consumption) -> for more information. You can also find more information in this guide for +> in its alloted compute budget. You can also find more information in this +> guide for > [optimizing your compute usage](/content/guides/advanced/how-to-optimize-compute.md). Each transaction is alloted a [compute unit limit](#compute-unit-limit), either diff --git a/docs/core/programs.md b/docs/core/programs.md index 330fb3d0c..5622a4c0d 100644 --- a/docs/core/programs.md +++ b/docs/core/programs.md @@ -9,10 +9,6 @@ In the Solana ecosystem, "smart contracts" are called programs. Each stores executable logic, organized into specific functions referred to as [instructions](/docs/core/transactions.md#instruction). -For additional topics related to Solana programs, refer to the pages included -under the [Deploying Programs](/docs/programs/index.md) section of this -documentation. - ## Key Points - Programs are on-chain accounts that contain executable code. This code is @@ -33,10 +29,10 @@ Solana programs are predominantly written in the [Rust](https://doc.rust-lang.org/book/) programming language, with two common approaches for development: -- [Anchor](/content/guides/getstarted/intro-to-anchor.md): A framework designed - for Solana program development. It provides a faster and simpler way to write - programs, using Rust macros to significantly reduce boilerplate code. For - beginners, it is recommended to start with the Anchor framework. +- [Anchor](/docs/programs/anchor): A framework designed for Solana program + development. It provides a faster and simpler way to write programs, using + Rust macros to significantly reduce boilerplate code. For beginners, it is + recommended to start with the Anchor framework. - [Native Rust](/content/guides/getstarted/intro-to-native-rust.md): This approach involves writing Solana programs in Rust without leveraging any diff --git a/docs/intro/dev.md b/docs/intro/dev.md index 751e5a7b9..fd3f90e24 100644 --- a/docs/intro/dev.md +++ b/docs/intro/dev.md @@ -149,8 +149,7 @@ your program based on your language preference: If you do not want to develop your programs locally, there's also the [online IDE Solana Playground](https://beta.solpg.io). Solana Playground allows you to write, test, and deploy programs on Solana. You can get started with -Solana Playground by -[following our guide](https://solana.com/developers/guides/getstarted/hello-world-in-your-browser). +Solana Playground by [following our quick start guide](/docs/intro/quick-start). ### Developer Environments @@ -191,8 +190,4 @@ problem can find your question! ## Next steps -You're now ready to get started building on Solana! - -- [Deploy your first Solana program in the browser](/content/guides/getstarted/hello-world-in-your-browser.md) -- [Get started building programs locally with Rust](/content/guides/getstarted/local-rust-hello-world.md) -- [Overview of writing Solana programs](/docs/programs/index.md) +[You're now ready to get started building on Solana!](/docs/intro/quick-start) diff --git a/docs/intro/quick-start/reading-from-network.md b/docs/intro/quick-start/reading-from-network.md index 6111d89c2..669c5bdea 100644 --- a/docs/intro/quick-start/reading-from-network.md +++ b/docs/intro/quick-start/reading-from-network.md @@ -30,12 +30,12 @@ Account Model. For more details, refer to the ## Fetch Playground Wallet - - Let's start by looking at a familiar account - your own Playground Wallet! We'll fetch this account and examine its structure to understand what a basic Solana account looks like. + + ### Open Example 1 Click this [link](https://beta.solpg.io/6671c5e5cffcf4b13384d198) to open the diff --git a/docs/intro/wallets.md b/docs/intro/wallets.md index b2f29a098..0973a6de5 100644 --- a/docs/intro/wallets.md +++ b/docs/intro/wallets.md @@ -60,8 +60,8 @@ first will need to create a wallet.** ## Supported Wallets Several browser and mobile app based wallets support Solana. Find some options -that might be right for you on the -[Solana Ecosystem](https://solana.com/ecosystem/explore?categories=wallet) page. +that might be right for you on the [Solana Wallets](https://solana.com/wallets) +page. For advanced users or developers, the [command-line wallets](https://docs.solanalabs.com/cli/wallets) may be more diff --git a/docs/programs/anchor/client-typescript.md b/docs/programs/anchor/client-typescript.md new file mode 100644 index 000000000..ba5c096ec --- /dev/null +++ b/docs/programs/anchor/client-typescript.md @@ -0,0 +1,354 @@ +--- +title: JS/TS Client +description: + Learn how to use Anchor's TypeScript client library to interact with Solana + progra +sidebarLabel: JS/TS Client +sidebarSortOrder: 3 +--- + +Anchor provides a Typescript client library +([@coral-xyz/anchor](https://github.com/coral-xyz/anchor/tree/v0.30.1/ts/packages/anchor)) +that simplifies the process of interacting with Solana programs from the client +in JavaScript or TypeScript. + +## Client Program + +To use the client library, first create an instance of a +[`Program`](https://github.com/coral-xyz/anchor/blob/v0.30.1/ts/packages/anchor/src/program/index.ts#L58) +using the [IDL file](/docs/programs/anchor/idl) generated by Anchor. + +Creating an instance of the `Program` requires the program's IDL and an +[`AnchorProvider`](https://github.com/coral-xyz/anchor/blob/v0.30.1/ts/packages/anchor/src/provider.ts#L55). +An `AnchorProvider` is an abstraction that combines two things: + +- `Connection` - the connection to a [Solana cluster](/docs/core/clusters.md) + (i.e. localhost, devnet, mainnet) +- `Wallet` - (optional) a default wallet used to pay and sign transactions + + + + + +When integrating with a frontend using the +[wallet adapter](https://solana.com/developers/guides/wallets/add-solana-wallet-adapter-to-nextjs), +you'll need to set up the `AnchorProvider` and `Program`. + +```ts {9-10, 12-14} +import { Program, AnchorProvider, setProvider } from "@coral-xyz/anchor"; +import { useAnchorWallet, useConnection } from "@solana/wallet-adapter-react"; +import type { HelloAnchor } from "./idlType"; +import idl from "./idl.json"; + +const { connection } = useConnection(); +const wallet = useAnchorWallet(); + +const provider = new AnchorProvider(connection, wallet, {}); +setProvider(provider); + +export const program = new Program(idl as HelloAnchor, { + connection, +}); +``` + +In the code snippet above: + +- `idl.json` is the IDL file generated by Anchor, found at + `/target/idl/.json` in an Anchor project. +- `idlType.ts` is the IDL type (for use with TS), found at + `/target/types/.ts` in an Anchor project. + +Alternatively, you can create an instance of the `Program` using only the IDL +and the `Connection` to a Solana cluster. This means there is no default +`Wallet`, but allows you to use the `Program` to fetch accounts or build +instructions without a connected wallet. + +```ts {8-10} +import { clusterApiUrl, Connection, PublicKey } from "@solana/web3.js"; +import { Program } from "@coral-xyz/anchor"; +import type { HelloAnchor } from "./idlType"; +import idl from "./idl.json"; + +const connection = new Connection(clusterApiUrl("devnet"), "confirmed"); + +export const program = new Program(idl as HelloAnchor, { + connection, +}); +``` + + + + +Anchor automatically sets up a `Program` instance in the default test file of +new projects. However, this setup differs from how you'd initialize a `Program` +outside the Anchor workspace, such as in React or Node.js applications. + +```typescript +import * as anchor from "@coral-xyz/anchor"; +import { Program } from "@coral-xyz/anchor"; +import { HelloAnchor } from "../target/types/hello_anchor"; + +describe("hello_anchor", () => { + // Configure the client to use the local cluster. + anchor.setProvider(anchor.AnchorProvider.env()); + + const program = anchor.workspace.HelloAnchor as Program; + + it("Is initialized!", async () => { + // Add your test here. + const tx = await program.methods.initialize().rpc(); + console.log("Your transaction signature", tx); + }); +}); +``` + + + + +## Invoke Instructions + +Once the `Program` is set up using a program IDL, you can use the Anchor +[`MethodsBuilder`](https://github.com/coral-xyz/anchor/blob/v0.30.1/ts/packages/anchor/src/program/namespace/methods.ts#L155) +to: + +- Build individual instructions +- Build transactions +- Build and send transactions + +The basic format looks like the following: + + + + + +`program.methods` - This is the builder API for creating instruction calls from +the program's IDL + +```ts /methods/ {1} +await program.methods + .instructionName(instructionData) + .accounts({}) + .signers([]) + .rpc(); +``` + + + + +Following `.methods`, specify the name of an instruction from the program IDL, +passing in any required arguments as comma-separated values. + +```ts /instructionName/ /instructionData1/ /instructionData2/ {2} +await program.methods + .instructionName(instructionData1, instructionData2) + .accounts({}) + .signers([]) + .rpc(); +``` + + + + +`.accounts` - Pass in the address of the accounts required by the instruction as +specified in the IDL + +```ts /accounts/ {3} +await program.methods + .instructionName(instructionData) + .accounts({}) + .signers([]) + .rpc(); +``` + +Note that certain account addresses don't need to be explicitly provided, as the +Anchor client can automatically resolve them. These typically include: + +- Common accounts (ex. the System Program) +- Accounts where the address is a PDA (Program Derived Address) + + + + +`.signers` - Optionally pass in an array of keypairs required as additional +signers by the instruction. This is commonly used when creating new accounts +where the account address is the public key of a newly generated keypair. + +```ts /signers/ {4} +await program.methods + .instructionName(instructionData) + .accounts({}) + .signers([]) + .rpc(); +``` + +Note that `.signers` should only be used when also using `.rpc()`. When using +`.transaction()` or `.instruction()`, signers should be added to the transaction +before sending. + + + + +Anchor provides multiple methods for building program instructions: + + + + + +The +[`rpc()`](https://github.com/coral-xyz/anchor/blob/v0.30.1/ts/packages/anchor/src/program/namespace/methods.ts#L283) +method +[sends a signed transaction](https://github.com/coral-xyz/anchor/blob/v0.30.1/ts/packages/anchor/src/program/namespace/rpc.ts#L29) +with the specified instruction and returns a `TransactionSignature`. + +When using `.rpc`, the `Wallet` from the `Provider` is automatically included as +a signer. + +```ts {13} +// Generate keypair for the new account +const newAccountKp = new Keypair(); + +const data = new BN(42); +const transactionSignature = await program.methods + .initialize(data) + .accounts({ + newAccount: newAccountKp.publicKey, + signer: wallet.publicKey, + systemProgram: SystemProgram.programId, + }) + .signers([newAccountKp]) + .rpc(); +``` + + + + +The +[`transaction()`](https://github.com/coral-xyz/anchor/blob/v0.30.1/ts/packages/anchor/src/program/namespace/methods.ts#L382) +method +[builds a `Transaction`](https://github.com/coral-xyz/anchor/blob/v0.30.1/ts/packages/anchor/src/program/namespace/transaction.ts#L18-L26) +with the specified instruction without sending the transaction. + +```ts {12} /transaction()/1,2,4 +// Generate keypair for the new account +const newAccountKp = new Keypair(); + +const data = new BN(42); +const transaction = await program.methods + .initialize(data) + .accounts({ + newAccount: newAccountKp.publicKey, + signer: wallet.publicKey, + systemProgram: SystemProgram.programId, + }) + .transaction(); + +const transactionSignature = await connection.sendTransaction(transaction, [ + wallet.payer, + newAccountKp, +]); +``` + + + + +The +[`instruction()`](https://github.com/coral-xyz/anchor/blob/v0.30.1/ts/packages/anchor/src/program/namespace/methods.ts#L348) +method +[builds a `TransactionInstruction`](https://github.com/coral-xyz/anchor/blob/v0.30.1/ts/packages/anchor/src/program/namespace/instruction.ts#L57-L61) +using the specified instruction. This is useful if you want to manually add the +instruction to a transaction and combine it with other instructions. + +```ts {12} /instruction()/ +// Generate keypair for the new account +const newAccountKp = new Keypair(); + +const data = new BN(42); +const instruction = await program.methods + .initialize(data) + .accounts({ + newAccount: newAccountKp.publicKey, + signer: wallet.publicKey, + systemProgram: SystemProgram.programId, + }) + .instruction(); + +const transaction = new Transaction().add(instruction); + +const transactionSignature = await connection.sendTransaction(transaction, [ + wallet.payer, + newAccountKp, +]); +``` + + + + +## Fetch Accounts + +The `Program` client simplifies the process of fetching and deserializing +accounts created by your Anchor program. + +Use `program.account` followed by the name of the account type defined in the +IDL. Anchor provides multiple methods for fetching accounts. + + + + + +Use +[`all()`](https://github.com/coral-xyz/anchor/blob/v0.30.1/ts/packages/anchor/src/program/namespace/account.ts#L251) +to fetch all existing accounts for a specific account type. + +```ts /all/ +const accounts = await program.account.newAccount.all(); +``` + + + + +Use `memcmp` (memory compare) to filter for account data that matches a specific +value at a specific offset. Using `memcmp` requires you to understand the byte +layout of the data field for the account type you are fetching. + +When calculating the offset, remember that the first 8 bytes in accounts created +by an Anchor program are reserved for the account discriminator. + +```ts /memcmp/ +const accounts = await program.account.newAccount.all([ + { + memcmp: { + offset: 8, + bytes: "", + }, + }, +]); +``` + + + + +Use +[`fetch()`](https://github.com/coral-xyz/anchor/blob/v0.30.1/ts/packages/anchor/src/program/namespace/account.ts#L165) +to fetch the account data for a single account + +```ts /fetch/ +const account = await program.account.newAccount.fetch(ACCOUNT_ADDRESS); +``` + + + + +Use +[`fetchMultiple()`](https://github.com/coral-xyz/anchor/blob/v0.30.1/ts/packages/anchor/src/program/namespace/account.ts#L200) +to fetch the account data for multiple accounts by passing in an array of +account addresses + +```ts /fetchMultiple/ +const accounts = await program.account.newAccount.fetchMultiple([ + ACCOUNT_ADDRESS_ONE, + ACCOUNT_ADDRESS_TWO, +]); +``` + + + diff --git a/docs/programs/anchor/cpi.md b/docs/programs/anchor/cpi.md new file mode 100644 index 000000000..092b9481f --- /dev/null +++ b/docs/programs/anchor/cpi.md @@ -0,0 +1,551 @@ +--- +title: CPIs with Anchor +description: + Learn how to implement Cross Program Invocations (CPIs) in Anchor programs, + enabling interaction between different programs on Solana +sidebarLabel: CPIs with Anchor +sidebarSortOrder: 5 +--- + +[Cross Program Invocations (CPI)](/docs/core/cpi.md) refer to the process of one +program invoking instructions of another program, which enables the +composibility of programs on Solana. + +This section will cover the basics of implementing CPIs in an Anchor program, +using a simple SOL transfer instruction as a practical example. Once you +understand the basics of how to implement a CPI, you can apply the same concepts +for any instruction. + +## Cross Program Invocations + +Let's examine a program that implements a CPI to the System Program's transfer +instruction. Here is the example program on +[Solana Playground](https://beta.solpg.io/66df2751cffcf4b13384d35a). + +The `lib.rs` file includes a single `sol_transfer` instruction. When the +`sol_transfer` instruction on the Anchor program is invoked, the program +internally invokes the transfer instruction of the System Program. + +```rs filename="lib.rs" /sol_transfer/ /transfer/ {23} +use anchor_lang::prelude::*; +use anchor_lang::system_program::{transfer, Transfer}; + +declare_id!("9AvUNHjxscdkiKQ8tUn12QCMXtcnbR9BVGq3ULNzFMRi"); + +#[program] +pub mod cpi { + use super::*; + + pub fn sol_transfer(ctx: Context, amount: u64) -> Result<()> { + let from_pubkey = ctx.accounts.sender.to_account_info(); + let to_pubkey = ctx.accounts.recipient.to_account_info(); + let program_id = ctx.accounts.system_program.to_account_info(); + + let cpi_context = CpiContext::new( + program_id, + Transfer { + from: from_pubkey, + to: to_pubkey, + }, + ); + + transfer(cpi_context, amount)?; + Ok(()) + } +} + +#[derive(Accounts)] +pub struct SolTransfer<'info> { + #[account(mut)] + sender: Signer<'info>, + #[account(mut)] + recipient: SystemAccount<'info>, + system_program: Program<'info, System>, +} +``` + +The `cpi.test.ts` file shows how to invoke the Anchor program's `sol_transfer` +instruction and logs a link to the transaction details on SolanaFM. + +```ts filename="cpi.test.ts" +it("SOL Transfer Anchor", async () => { + const transactionSignature = await program.methods + .solTransfer(new BN(transferAmount)) + .accounts({ + sender: sender.publicKey, + recipient: recipient.publicKey, + }) + .rpc(); + + console.log( + `\nTransaction Signature:` + + `https://solana.fm/tx/${transactionSignature}?cluster=devnet-solana`, + ); +}); +``` + +You can build, deploy, and run the test for this example on Playground to view +the transaction details on the [SolanaFM explorer](https://solana.fm/). + +The transaction details will show that the Anchor program was first invoked +(instruction 1), which then invokes the System Program (instruction 1.1), +resulting in a successful SOL transfer. + +![Transaction Details](/assets/docs/core/cpi/transaction-details.png) + +### Example 1 Explanation + +Implementing a CPI follows the same pattern as building an instruction to add to +a transaction. When implementing a CPI, we must specify the program ID, +accounts, and instruction data for the instruction being called. + +The System Program's transfer instruction requires two accounts: + +- `from`: The account sending SOL. +- `to`: The account receiving SOL. + +In the example program, the `SolTransfer` struct specifies the accounts required +by the transfer instruction. The System Program is also included because the CPI +invokes the System Program. + +```rust /sender/ /recipient/ /system_program/ +#[derive(Accounts)] +pub struct SolTransfer<'info> { + #[account(mut)] + sender: Signer<'info>, // from account + #[account(mut)] + recipient: SystemAccount<'info>, // to account + system_program: Program<'info, System>, // program ID +} +``` + +The following tabs present three approaches to implementing Cross Program +Invocations (CPIs), each at a different level of abstraction. All examples are +functionally equivalent. The main purpose is to illustrate the implementation +details of the CPI. + + + + + +The `sol_transfer` instruction included in the example code shows a typical +approach for constructing CPIs using the Anchor framework. + +This approach involves creating a +[`CpiContext`](https://docs.rs/anchor-lang/latest/anchor_lang/context/struct.CpiContext.html), +which includes the `program_id` and accounts required for the instruction being +called, followed by a helper function (`transfer`) to invoke a specific +instruction. + +```rust +use anchor_lang::system_program::{transfer, Transfer}; +``` + +```rust /cpi_context/ {14} +pub fn sol_transfer(ctx: Context, amount: u64) -> Result<()> { + let from_pubkey = ctx.accounts.sender.to_account_info(); + let to_pubkey = ctx.accounts.recipient.to_account_info(); + let program_id = ctx.accounts.system_program.to_account_info(); + + let cpi_context = CpiContext::new( + program_id, + Transfer { + from: from_pubkey, + to: to_pubkey, + }, + ); + + transfer(cpi_context, amount)?; + Ok(()) +} +``` + +The `cpi_context` variable specifies the program ID (System Program) and +accounts (sender and recipient) required by the transfer instruction. + +```rust /program_id/ /from_pubkey/ /to_pubkey/ +let cpi_context = CpiContext::new( + program_id, + Transfer { + from: from_pubkey, + to: to_pubkey, + }, +); +``` + +The `cpi_context` and `amount` are then passed into the `transfer` function to +execute the CPI invoking the transfer instruction of the System Program. + +```rust +transfer(cpi_context, amount)?; +``` + + + + +This example shows a different approach to implementing a CPI using the `invoke` +function and +[`system_instruction::transfer`](https://github.com/solana-labs/solana/blob/27eff8408b7223bb3c4ab70523f8a8dca3ca6645/sdk/program/src/system_instruction.rs#L881), +which is generally seen in native Rust programs. + +Under the hood, the previous example is an abstraction of this implementation. +The example below is functionally equivalent to the previous example. + +```rust +use anchor_lang::solana_program::{program::invoke, system_instruction}; +``` + +```rust /instruction/1,3 {9} +pub fn sol_transfer(ctx: Context, amount: u64) -> Result<()> { + let from_pubkey = ctx.accounts.sender.to_account_info(); + let to_pubkey = ctx.accounts.recipient.to_account_info(); + let program_id = ctx.accounts.system_program.to_account_info(); + + let instruction = + &system_instruction::transfer(&from_pubkey.key(), &to_pubkey.key(), amount); + + invoke(instruction, &[from_pubkey, to_pubkey, program_id])?; + Ok(()) +} +``` + + + + +You can also manually build the instruction to pass into the `invoke()` +function. This is useful when there is no crate available to help build the +instruction you want to invoke. This approach requires you to specify the +`AccountMeta`s for the instruction and correctly create the instruction data +buffer. + +The `sol_transfer` instruction below is a manual implementation of a CPI to the +System Program's transfer instruction. + +```rust /instruction/10,13 {28} +pub fn sol_transfer(ctx: Context, amount: u64) -> Result<()> { + let from_pubkey = ctx.accounts.sender.to_account_info(); + let to_pubkey = ctx.accounts.recipient.to_account_info(); + let program_id = ctx.accounts.system_program.to_account_info(); + + // Prepare instruction AccountMetas + let account_metas = vec![ + AccountMeta::new(from_pubkey.key(), true), + AccountMeta::new(to_pubkey.key(), false), + ]; + + // SOL transfer instruction discriminator + let instruction_discriminator: u32 = 2; + + // Prepare instruction data + let mut instruction_data = Vec::with_capacity(4 + 8); + instruction_data.extend_from_slice(&instruction_discriminator.to_le_bytes()); + instruction_data.extend_from_slice(&amount.to_le_bytes()); + + // Create instruction + let instruction = Instruction { + program_id: program_id.key(), + accounts: account_metas, + data: instruction_data, + }; + + // Invoke instruction + invoke(&instruction, &[from_pubkey, to_pubkey, program_id])?; + Ok(()) +} +``` + +The `sol_transfer` instruction above replicates this +[example](/docs/core/transactions.md#manual-sol-transfer) of manually building a +SOL transfer instruction. It follows the same pattern as building an +[instruction](/docs/core/transactions.md#instruction) to add to a transaction. + +When building an instruction in Rust, use the following syntax to specify the +`AccountMeta` for each account: + +```rust +AccountMeta::new(account1_pubkey, true), // writable, signer +AccountMeta::new(account2_pubkey, false), // writable, not signer +AccountMeta::new_readonly(account3_pubkey, false), // not writable, not signer +AccountMeta::new_readonly(account4_pubkey, true), // writable, signer +``` + + + + +Here is a reference program on +[Solana Playground](https://beta.solpg.io/github.com/ZYJLiu/doc-examples/tree/main/cpi) +which includes all 3 examples. + +## Cross Program Invocations with PDA Signers + +Next, let's examine a program that implements a CPI to the System Program's +transfer instruction where the sender is a Program Derived Address (PDA) that +must be "signed" for by the program. Here is the example program on +[Solana Playground](https://beta.solpg.io/66df2bd2cffcf4b13384d35b). + +The `lib.rs` file includes the following program with a single `sol_transfer` +instruction. + +```rust filename="lib.rs" +use anchor_lang::prelude::*; +use anchor_lang::system_program::{transfer, Transfer}; + +declare_id!("3455LkCS85a4aYmSeNbRrJsduNQfYRY82A7eCD3yQfyR"); + +#[program] +pub mod cpi { + use super::*; + + pub fn sol_transfer(ctx: Context, amount: u64) -> Result<()> { + let from_pubkey = ctx.accounts.pda_account.to_account_info(); + let to_pubkey = ctx.accounts.recipient.to_account_info(); + let program_id = ctx.accounts.system_program.to_account_info(); + + let seed = to_pubkey.key(); + let bump_seed = ctx.bumps.pda_account; + let signer_seeds: &[&[&[u8]]] = &[&[b"pda", seed.as_ref(), &[bump_seed]]]; + + let cpi_context = CpiContext::new( + program_id, + Transfer { + from: from_pubkey, + to: to_pubkey, + }, + ) + .with_signer(signer_seeds); + + transfer(cpi_context, amount)?; + Ok(()) + } +} + +#[derive(Accounts)] +pub struct SolTransfer<'info> { + #[account( + mut, + seeds = [b"pda", recipient.key().as_ref()], + bump, + )] + pda_account: SystemAccount<'info>, + #[account(mut)] + recipient: SystemAccount<'info>, + system_program: Program<'info, System>, +} +``` + +The `cpi.test.ts` file shows how to invoke the Anchor program's `sol_transfer` +instruction and logs a link to the transaction details on SolanaFM. + +It shows how to derive the PDA using the seeds specified in the program: + +```ts /pda/ /wallet.publicKey/ +const [PDA] = PublicKey.findProgramAddressSync( + [Buffer.from("pda"), wallet.publicKey.toBuffer()], + program.programId, +); +``` + +The first step in this example is to fund the PDA account with a basic SOL +transfer from the Playground wallet. + +```ts filename="cpi.test.ts" +it("Fund PDA with SOL", async () => { + const transferInstruction = SystemProgram.transfer({ + fromPubkey: wallet.publicKey, + toPubkey: PDA, + lamports: transferAmount, + }); + + const transaction = new Transaction().add(transferInstruction); + + const transactionSignature = await sendAndConfirmTransaction( + connection, + transaction, + [wallet.payer], // signer + ); + + console.log( + `\nTransaction Signature:` + + `https://solana.fm/tx/${transactionSignature}?cluster=devnet-solana`, + ); +}); +``` + +Once the PDA is funded with SOL, invoke the `sol_transfer` instruction. This +instruction transfers SOL from the PDA account back to the `wallet` account via +a CPI to the System Program, which is "signed" for by the program. + +```ts +it("SOL Transfer with PDA signer", async () => { + const transactionSignature = await program.methods + .solTransfer(new BN(transferAmount)) + .accounts({ + pdaAccount: PDA, + recipient: wallet.publicKey, + }) + .rpc(); + + console.log( + `\nTransaction Signature: https://solana.fm/tx/${transactionSignature}?cluster=devnet-solana`, + ); +}); +``` + +You can build, deploy, and run the test to view the transaction details on the +[SolanaFM explorer](https://solana.fm/). + +The transaction details will show that the custom program was first invoked +(instruction 1), which then invokes the System Program (instruction 1.1), +resulting in a successful SOL transfer. + +![Transaction Details](/assets/docs/core/cpi/transaction-details-pda.png) + +### Example 2 Explanation + +In the example code, the `SolTransfer` struct specifies the accounts required by +the transfer instruction. + +The sender is a PDA that the program must sign for. The `seeds` to derive the +address for the `pda_account` include the hardcoded string "pda" and the address +of the `recipient` account. This means the address for the `pda_account` is +unique for each `recipient`. + +```rust /pda_account/ /recipient/2 /system_program/ +#[derive(Accounts)] +pub struct SolTransfer<'info> { + #[account( + mut, + seeds = [b"pda", recipient.key().as_ref()], + bump, + )] + pda_account: SystemAccount<'info>, + #[account(mut)] + recipient: SystemAccount<'info>, + system_program: Program<'info, System>, +} +``` + +The Javascript equivalent to derive the PDA is included in the test file. + +```ts /pda/ /wallet.publicKey/ +const [PDA] = PublicKey.findProgramAddressSync( + [Buffer.from("pda"), wallet.publicKey.toBuffer()], + program.programId, +); +``` + +The following tabs present two approaches to implementing Cross Program +Invocations (CPIs), each at a different level of abstraction. Both examples are +functionally equivalent. The main purpose is to illustrate the implementation +details of the CPI. + + + + + +The `sol_transfer` instruction included in the example code shows a typical +approach for constructing CPIs using the Anchor framework. + +This approach involves creating a +[`CpiContext`](https://docs.rs/anchor-lang/latest/anchor_lang/context/struct.CpiContext.html), +which includes the `program_id` and accounts required for the instruction being +called, followed by a helper function (`transfer`) to invoke a specific +instruction. + +```rust /cpi_context/ {19} +pub fn sol_transfer(ctx: Context, amount: u64) -> Result<()> { + let from_pubkey = ctx.accounts.pda_account.to_account_info(); + let to_pubkey = ctx.accounts.recipient.to_account_info(); + let program_id = ctx.accounts.system_program.to_account_info(); + + let seed = to_pubkey.key(); + let bump_seed = ctx.bumps.pda_account; + let signer_seeds: &[&[&[u8]]] = &[&[b"pda", seed.as_ref(), &[bump_seed]]]; + + let cpi_context = CpiContext::new( + program_id, + Transfer { + from: from_pubkey, + to: to_pubkey, + }, + ) + .with_signer(signer_seeds); + + transfer(cpi_context, amount)?; + Ok(()) +} +``` + +When signing with PDAs, the seeds and bump seed are included in the +`cpi_context` as `signer_seeds` using `with_signer()`. The bump seed for a PDA +can be accessed using `ctx.bumps` followed by the name of the PDA account. + +```rust /signer_seeds/ /bump_seed/ {3} +let seed = to_pubkey.key(); +let bump_seed = ctx.bumps.pda_account; +let signer_seeds: &[&[&[u8]]] = &[&[b"pda", seed.as_ref(), &[bump_seed]]]; + +let cpi_context = CpiContext::new( + program_id, + Transfer { + from: from_pubkey, + to: to_pubkey, + }, +) +.with_signer(signer_seeds); +``` + +The `cpi_context` and `amount` are then passed into the `transfer` function to +execute the CPI. + +```rust +transfer(cpi_context, amount)?; +``` + +When the CPI is processed, the Solana runtime will validate that the provided +seeds and caller program ID derive a valid PDA. The PDA is then added as a +signer on the invocation. This mechanism allows for programs to sign for PDAs +that are derived from their program ID. + + + + +Under the hood, the previous example is a wrapper around the `invoke_signed()` +function which uses +[`system_instruction::transfer`](https://github.com/solana-labs/solana/blob/27eff8408b7223bb3c4ab70523f8a8dca3ca6645/sdk/program/src/system_instruction.rs#L881) +to build the instruction. + +This example shows how to use the `invoke_signed()` function to make a CPI +signed for by a PDA. + +```rust +use anchor_lang::solana_program::{program::invoke_signed, system_instruction}; +``` + +```rust /instruction/1,3 {13} +pub fn sol_transfer(ctx: Context, amount: u64) -> Result<()> { + let from_pubkey = ctx.accounts.pda_account.to_account_info(); + let to_pubkey = ctx.accounts.recipient.to_account_info(); + let program_id = ctx.accounts.system_program.to_account_info(); + + let seed = to_pubkey.key(); + let bump_seed = ctx.bumps.pda_account; + let signer_seeds: &[&[&[u8]]] = &[&[b"pda", seed.as_ref(), &[bump_seed]]]; + + let instruction = + &system_instruction::transfer(&from_pubkey.key(), &to_pubkey.key(), amount); + + invoke_signed(instruction, &[from_pubkey, to_pubkey, program_id], signer_seeds)?; + Ok(()) +} +``` + +This implementation is functionally equivalent to the previous example. The +`signer_seeds` are passed into the `invoke_signed` function. + + + + +Here is a reference program on +[Solana Playground](https://beta.solpg.io/github.com/ZYJLiu/doc-examples/tree/main/cpi-pda) +which includes both examples. diff --git a/docs/programs/anchor/idl.md b/docs/programs/anchor/idl.md new file mode 100644 index 000000000..924980b42 --- /dev/null +++ b/docs/programs/anchor/idl.md @@ -0,0 +1,463 @@ +--- +title: IDL File +description: + Learn about the Interface Description Language (IDL) file in Anchor, its + purpose, benefits, and how it simplifies program-client interactions +sidebarLabel: IDL File +sidebarSortOrder: 2 +--- + +An Interface Description Language (IDL) file provides a standardized JSON file +describing the program's instructions and accounts. This file simplifies the +process of integrating your on-chain program with client applications. + +Key Benefits of the IDL: + +- Standardization: Provides a consistent format for describing the program's + instructions and accounts +- Client Generation: Used to generate client code to interact with the program + +The `anchor build` command generates an IDL file located at +`/target/idl/.json`. + +The code snippets below highlights how the program, IDL, and client relate to +each other. + +## Program Instructions + +The `instructions` array in the IDL corresponds directly to the instructions +defined in your program. It specifies the required accounts and parameters for +each instruction. + + + + + +The program below includes an `initialize` instruction, specifying the accounts +and parameters it requires. + +```rust {8-12, 15-22} +use anchor_lang::prelude::*; + +declare_id!("BYFW1vhC1ohxwRbYoLbAWs86STa25i9sD5uEusVjTYNd"); + +#[program] +mod hello_anchor { + use super::*; + pub fn initialize(ctx: Context, data: u64) -> Result<()> { + ctx.accounts.new_account.data = data; + msg!("Changed data to: {}!", data); + Ok(()) + } +} + +#[derive(Accounts)] +pub struct Initialize<'info> { + #[account(init, payer = signer, space = 8 + 8)] + pub new_account: Account<'info, NewAccount>, + #[account(mut)] + pub signer: Signer<'info>, + pub system_program: Program<'info, System>, +} + +#[account] +pub struct NewAccount { + data: u64, +} +``` + + + + +The generated IDL file includes the instruction in a standardized JSON format, +including its name, accounts, arguments, and discriminator. + +```json filename="JSON" {11-12, 14-27, 30-33} +{ + "address": "BYFW1vhC1ohxwRbYoLbAWs86STa25i9sD5uEusVjTYNd", + "metadata": { + "name": "hello_anchor", + "version": "0.1.0", + "spec": "0.1.0", + "description": "Created with Anchor" + }, + "instructions": [ + { + "name": "initialize", + "discriminator": [175, 175, 109, 31, 13, 152, 155, 237], + "accounts": [ + { + "name": "new_account", + "writable": true, + "signer": true + }, + { + "name": "signer", + "writable": true, + "signer": true + }, + { + "name": "system_program", + "address": "11111111111111111111111111111111" + } + ], + "args": [ + { + "name": "data", + "type": "u64" + } + ] + } + ], + "accounts": [ + { + "name": "NewAccount", + "discriminator": [176, 95, 4, 118, 91, 177, 125, 232] + } + ], + "types": [ + { + "name": "NewAccount", + "type": { + "kind": "struct", + "fields": [ + { + "name": "data", + "type": "u64" + } + ] + } + } + ] +} +``` + + + + +The IDL file is then used to generate a client for interacting with the program, +simplifying the process of invoking the program instruction. + +```ts {19-26} +import * as anchor from "@coral-xyz/anchor"; +import { Program, BN } from "@coral-xyz/anchor"; +import { HelloAnchor } from "../target/types/hello_anchor"; +import { Keypair } from "@solana/web3.js"; +import assert from "assert"; + +describe("hello_anchor", () => { + const provider = anchor.AnchorProvider.env(); + anchor.setProvider(provider); + const wallet = provider.wallet as anchor.Wallet; + const program = anchor.workspace.HelloAnchor as Program; + + it("initialize", async () => { + // Generate keypair for the new account + const newAccountKp = new Keypair(); + + // Send transaction + const data = new BN(42); + const transactionSignature = await program.methods + .initialize(data) + .accounts({ + newAccount: newAccountKp.publicKey, + signer: wallet.publicKey, + }) + .signers([newAccountKp]) + .rpc(); + + // Fetch the created account + const newAccount = await program.account.newAccount.fetch( + newAccountKp.publicKey, + ); + + console.log("Transaction signature: ", transactionSignature); + console.log("On-chain data is:", newAccount.data.toString()); + assert(data.eq(newAccount.data)); + }); +}); +``` + + + + +## Program Accounts + +The `accounts` array in the IDL corresponds to the structs in a program +annotated with the `#[account]` macro. These structs define the data stored in +accounts created by the program. + + + + + +The program below defines a `NewAccount` struct with a single `data` field of +type `u64`. + +```rust {24-27} +use anchor_lang::prelude::*; + +declare_id!("BYFW1vhC1ohxwRbYoLbAWs86STa25i9sD5uEusVjTYNd"); + +#[program] +mod hello_anchor { + use super::*; + pub fn initialize(ctx: Context, data: u64) -> Result<()> { + ctx.accounts.new_account.data = data; + msg!("Changed data to: {}!", data); + Ok(()) + } +} + +#[derive(Accounts)] +pub struct Initialize<'info> { + #[account(init, payer = signer, space = 8 + 8)] + pub new_account: Account<'info, NewAccount>, + #[account(mut)] + pub signer: Signer<'info>, + pub system_program: Program<'info, System>, +} + +#[account] +pub struct NewAccount { + data: u64, +} +``` + + + + +The generated IDL file includes the account in a standardized JSON format, +including its name, discriminator, and fields. + +```json filename="JSON" {39-40, 45-54} +{ + "address": "BYFW1vhC1ohxwRbYoLbAWs86STa25i9sD5uEusVjTYNd", + "metadata": { + "name": "hello_anchor", + "version": "0.1.0", + "spec": "0.1.0", + "description": "Created with Anchor" + }, + "instructions": [ + { + "name": "initialize", + "discriminator": [175, 175, 109, 31, 13, 152, 155, 237], + "accounts": [ + { + "name": "new_account", + "writable": true, + "signer": true + }, + { + "name": "signer", + "writable": true, + "signer": true + }, + { + "name": "system_program", + "address": "11111111111111111111111111111111" + } + ], + "args": [ + { + "name": "data", + "type": "u64" + } + ] + } + ], + "accounts": [ + { + "name": "NewAccount", + "discriminator": [176, 95, 4, 118, 91, 177, 125, 232] + } + ], + "types": [ + { + "name": "NewAccount", + "type": { + "kind": "struct", + "fields": [ + { + "name": "data", + "type": "u64" + } + ] + } + } + ] +} +``` + + + + +The IDL file is then used to generate a client for interacting with the program, +simplifying the process of fetching and deserializing account data. + +```ts {29-31} +import * as anchor from "@coral-xyz/anchor"; +import { Program, BN } from "@coral-xyz/anchor"; +import { HelloAnchor } from "../target/types/hello_anchor"; +import { Keypair } from "@solana/web3.js"; +import assert from "assert"; + +describe("hello_anchor", () => { + const provider = anchor.AnchorProvider.env(); + anchor.setProvider(provider); + const wallet = provider.wallet as anchor.Wallet; + const program = anchor.workspace.HelloAnchor as Program; + + it("initialize", async () => { + // Generate keypair for the new account + const newAccountKp = new Keypair(); + + // Send transaction + const data = new BN(42); + const transactionSignature = await program.methods + .initialize(data) + .accounts({ + newAccount: newAccountKp.publicKey, + signer: wallet.publicKey, + }) + .signers([newAccountKp]) + .rpc(); + + // Fetch the created account + const newAccount = await program.account.newAccount.fetch( + newAccountKp.publicKey, + ); + + console.log("Transaction signature: ", transactionSignature); + console.log("On-chain data is:", newAccount.data.toString()); + assert(data.eq(newAccount.data)); + }); +}); +``` + + + + +## Discriminators + +Anchor assigns a unique 8 byte discriminator to each instruction and account +type in a program. These discriminators serve as identifiers to distinguish +between different instructions or account types. + +The discriminator is generated using the first 8 bytes of the Sha256 hash of a +prefix combined with the instruction or account name. As of Anchor v0.30, these +discriminators are included in the IDL file. + +Note that when working with Anchor, you typically won't need to interact +directly with these discriminators. This section is primarily to provide context +on how the discriminator is generated and used. + + + + + +The instruction discriminator is used by the program to determine which specific +instruction to execute when called. + +When an Anchor program instruction is invoked, the discriminator is included as +the first 8 bytes of the instruction data. This is done automatically by the +Anchor client. + +```json filename="IDL" {4} + "instructions": [ + { + "name": "initialize", + "discriminator": [175, 175, 109, 31, 13, 152, 155, 237], + ... + } + ] +``` + +The discriminator for an instruction is the first 8 bytes of the Sha256 hash of +the prefix `global` plus the instruction name. + +For example: + +``` +sha256("global:initialize") +``` + +Hexadecimal output: + +``` +af af 6d 1f 0d 98 9b ed d4 6a 95 07 32 81 ad c2 1b b5 e0 e1 d7 73 b2 fb bd 7a b5 04 cd d4 aa 30 +``` + +The first 8 bytes are used as the discriminator for the instruction. + +``` +af = 175 +af = 175 +6d = 109 +1f = 31 +0d = 13 +98 = 152 +9b = 155 +ed = 237 +``` + +You can find the implementation of the discriminator generation in the Anchor +codebase +[here](https://github.com/coral-xyz/anchor/blob/v0.30.1/lang/syn/src/codegen/program/common.rs#L5-L19), +which is used +[here](https://github.com/coral-xyz/anchor/blob/v0.30.1/lang/syn/src/codegen/program/instruction.rs#L27). + + + + +The account discriminator is used to identify the specific account type when +deserializing on-chain data and is set when the account is created. + +```json filename="IDL" {4} + "accounts": [ + { + "name": "NewAccount", + "discriminator": [176, 95, 4, 118, 91, 177, 125, 232] + } + ] +``` + +The discriminator for an account is the first 8 bytes of the Sha256 hash of the +prefix `account` plus the account name. + +For example: + +``` +sha256("account:NewAccount") +``` + +Hexadecimal output: + +``` +b0 5f 04 76 5b b1 7d e8 a1 93 57 2a d3 5e b1 ae e5 f0 69 e2 09 7e 5c d2 64 56 55 2a cb 4a e9 57 +``` + +The first 8 bytes are used as the discriminator for the account. + +``` +b0 = 176 +5f = 95 +04 = 4 +76 = 118 +5b = 91 +b1 = 177 +7d = 125 +e8 = 232 +``` + +You can find the implementation of the discriminator generation in the Anchor +codebase +[here](https://github.com/coral-xyz/anchor/blob/v0.30.1/lang/attribute/account/src/lib.rs#L101-L117). + +Note that different programs using identical account names will generate the +same discriminator. When deserializing account data, Anchor programs will also +check an account is owned by the expected program for a specified account type. + + + diff --git a/docs/programs/anchor/index.md b/docs/programs/anchor/index.md new file mode 100644 index 000000000..975568575 --- /dev/null +++ b/docs/programs/anchor/index.md @@ -0,0 +1,377 @@ +--- +title: Getting Started with Anchor +description: Getting Started with Anchor +sidebarLabel: Anchor Framework +sidebarSortOrder: 1 +--- + +The Anchor framework is a tool that simplifies the process of building Solana +programs. Whether you're new to blockchain development or an experienced +programmer, Anchor simplifies the process of writing, testing, and deploying +Solana programs. + +In this section, we'll walk through: + +- Creating a new Anchor project +- Building and testing your program +- Deploying to Solana clusters +- Understanding the project file structure + +## Prerequisites + +For detailed installation instructions, visit the +[installation](/docs/intro/installation) page. + +Before you begin, ensure you have the following installed: + +- Rust: The programming language for building Solana programs. +- Solana CLI: Command-line tool for Solana development. +- Anchor CLI: Command-line tool for the Anchor framework. + +To verify Anchor CLI installation, open your terminal and run: + +```shell filename="Terminal" +anchor --version +``` + +Expected output: + +```shell filename="Terminal" +anchor-cli 0.30.1 +``` + +## Getting Started + +This section covers the basic steps to create, build, and test your first local +Anchor program. + + + +### Create a new Project + +To start a new project, use the `anchor init` command followed by your project's +name. This command creates a new directory with the specified name and sets up a +default program and test file. + +```shell filename="Terminal" +anchor init my-program +``` + +Navigate to the new project directory and open it in your code editor. + +```shell filename="Terminal" copy +cd my-project +``` + +The default Anchor program is located at `/programs/my-project/src/lib.rs`. + + + + +The value in the `declare_id!` macro is the program ID, a unique identifier for +your program. + +By default, it is the public key of the keypair generated in +`/target/deploy/my_project-keypair.json`. + +```rs filename="lib.rs" +use anchor_lang::prelude::*; + +declare_id!("3ynNB373Q3VAzKp7m4x238po36hjAGFXFJB4ybN2iTyg"); + +#[program] +pub mod my_project { + use super::*; + + pub fn initialize(ctx: Context) -> Result<()> { + msg!("Greetings from: {:?}", ctx.program_id); + Ok(()) + } +} + +#[derive(Accounts)] +pub struct Initialize {} +``` + + + + +The default Typescript test file is located at `/tests/my-project.ts`. + + + + +This file demonstrates how to invoke the default program's `initialize` +instruction in Typescript. + +```ts filename="my-project.ts" +import * as anchor from "@coral-xyz/anchor"; +import { Program } from "@coral-xyz/anchor"; +import { MyProject } from "../target/types/my_project"; + +describe("my-project", () => { + // Configure the client to use the local cluster. + anchor.setProvider(anchor.AnchorProvider.env()); + + const program = anchor.workspace.MyProject as Program; + + it("Is initialized!", async () => { + // Add your test here. + const tx = await program.methods.initialize().rpc(); + console.log("Your transaction signature", tx); + }); +}); +``` + + + + +If you prefer Rust for testing, initialize your project with the +`--test-template rust` flag. + +```shell +anchor init --test-template rust my-program +``` + +The Rust test file will be at `/tests/src/test_initialize.rs`. + + + + +```rust filename="test_initialize.rs" +use std::str::FromStr; + +use anchor_client::{ + solana_sdk::{ + commitment_config::CommitmentConfig, pubkey::Pubkey, signature::read_keypair_file, + }, + Client, Cluster, +}; + +#[test] +fn test_initialize() { + let program_id = "3ynNB373Q3VAzKp7m4x238po36hjAGFXFJB4ybN2iTyg"; + let anchor_wallet = std::env::var("ANCHOR_WALLET").unwrap(); + let payer = read_keypair_file(&anchor_wallet).unwrap(); + + let client = Client::new_with_options(Cluster::Localnet, &payer, CommitmentConfig::confirmed()); + let program_id = Pubkey::from_str(program_id).unwrap(); + let program = client.program(program_id).unwrap(); + + let tx = program + .request() + .accounts(my_program::accounts::Initialize {}) + .args(my_program::instruction::Initialize {}) + .send() + .expect(""); + + println!("Your transaction signature {}", tx); +} +``` + + + + +### Build the Program + +Build the program by running `anchor build`. + +```shell filename="Terminal" copy +anchor build +``` + +The compiled program will be at `/target/deploy/my_project.so`. The content of +this file is what gets stored on the Solana network (as an executable account) +when you deploy your program. + +### Test the Program + +To test the program, run `anchor test`. + +```shell filename="Terminal" copy +anchor test +``` + +By default, the `Anchor.toml` config file specifies the `localnet` cluster. When +developing on `localnet`, `anchor test` will automatically: + +1. Start a local Solana validator +2. Build and deploy your program to the local cluster +3. Run the tests in the `tests` folder +4. Stop the local Solana validator + +Alternatively, you can manually start a local Solana validator and run tests +against it. This is useful if you want to keep the validator running while you +iterate on your program. It allows you to inspect accounts and transaction logs +on the [Solana Explorer](https://explorer.solana.com/?cluster=custom) while +developing locally. + +Open a new terminal and start a local Solana validator by running the +`solana-test-validator` command. + +```shell filename="Terminal" copy +solana-test-validator +``` + +In a separate terminal, run the tests against the local cluster. Use the +`--skip-local-validator` flag to skip starting the local validator since it's +already running. + +```shell filename="Terminal" copy +anchor test --skip-local-validator +``` + +### Deploy to Devnet + +By default, the `Anchor.toml` config file in an Anchor project specifies the +localnet cluster. + +```toml filename="Anchor.toml" {14} +[toolchain] + +[features] +resolution = true +skip-lint = false + +[programs.localnet] +my_program = "3ynNB373Q3VAzKp7m4x238po36hjAGFXFJB4ybN2iTyg" + +[registry] +url = "https://api.apr.dev" + +[provider] +cluster = "Localnet" +wallet = "~/.config/solana/id.json" + +[scripts] +test = "yarn run ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts" +``` + +To deploy your program to devnet, change the `cluster` value to `Devnet`. Note +that this requires your wallet to have enough SOL on Devnet to cover deployment +cost. + +```diff +-cluster = "Localnet" ++cluster = "Devnet" +``` + +```toml filename="Anchor.toml" +[provider] +cluster = "Devnet" +wallet = "~/.config/solana/id.json" +``` + +Now when you run `anchor deploy`, your program will be deployed to the devnet +cluster. The `anchor test` command will also use the cluster specified in the +`Anchor.toml` file. + +```shell +anchor deploy +``` + +To deploy to mainnet, simply update the `Anchor.toml` file to specify the +mainnet cluster. + +```toml filename="Anchor.toml" +[provider] +cluster = "Mainnet" +wallet = "~/.config/solana/id.json" +``` + +### Update the Program + +Solana programs can be updated by redeploying the program to the same program +ID. + +To update a program, simply make changes to your program's code and run the +`anchor build` command to generated an updated `.so` file. + +```shell +anchor build +``` + +Then run the `anchor deploy` command to redeploy the updated program. + +```shell +anchor deploy +``` + +### Close the Program + +To reclaim the SOL allocated to a program account, you can close your Solana +program. + +To close a program, use the `solana program close ` command. For +example: + +```shell +solana program close 3ynNB373Q3VAzKp7m4x238po36hjAGFXFJB4ybN2iTyg --bypass-warning +``` + +Note that once a program is closed, the program ID cannot be reused to deploy a +new program. + + + +## Project File Structure + +Below is an overview of default file structure in an Anchor workspace: + +``` +. +├── .anchor +│ └── program-logs +├── app +├── migrations +├── programs +│ └── [project-name] +│ └── src +│ ├── lib.rs +│ ├── Cargo.toml +│ └── Xargo.toml +├── target +│ ├── deploy +│ │ └── [project-name]-keypair.json +│ ├── idl +│ │ └── [project-name].json +│ └── types +│ └── [project-name].ts +├── tests +│ └── [project-name].ts +├── Anchor.toml +├── Cargo.toml +└── package.json +``` + +### Programs Folder + +The `/programs` folder contains your project's Anchor programs. A single +workspace can contain multiple programs. + +### Tests Folder + +The `/tests` folder contains test files for your project. A default test file is +created for you when you create your project. + +### Target Folder + +The `/target` folder contains build outputs. The main subfolders include: + +- `/deploy`: Contains the keypair and program binary for your programs. +- `/idl`: Contains the JSON IDL for your programs. +- `/types`: Contains the TypeScript type for the IDL. + +### Anchor.toml File + +The `Anchor.toml` file configures workspace settings for your project. + +### .anchor Folder + +Includes a `program-logs` file that contains transaction logs from the last run +of test files. + +### App Folder + +The `/app` folder is an empty folder that can be optionally used for your +frontend code. diff --git a/docs/programs/anchor/pda.md b/docs/programs/anchor/pda.md new file mode 100644 index 000000000..bec281733 --- /dev/null +++ b/docs/programs/anchor/pda.md @@ -0,0 +1,325 @@ +--- +title: PDAs with Anchor +description: + Learn how to use Program Derived Addresses (PDAs) in Anchor programs, using + constraints, and implementing common PDA patterns +sidebarLabel: PDAs with Anchor +sidebarSortOrder: 4 +--- + +[Program Derived Addresses (PDA)](/docs/core/pda) refer to a feature of Solana +development that allows you to create a unique address derived deterministically +from pre-defined inputs (seeds) and a program ID. + +This section will cover basic examples of how to use PDAs in an Anchor program. + +## Anchor PDA Constraints + +When using PDAs in an Anchor program, you generally use Anchor's account +constraints to define the seeds used to derive the PDA. These constraints serve +as security checks to ensure that the correct address is derived. + +The constraints used to define the PDA seeds include: + +- `seeds`: An array of optional seeds used to derive the PDA. Seeds can be + static values or dynamic references to account data. +- `bump`: The bump seed used to derive the PDA. Used to ensure the address falls + off the Ed25519 curve and is a valid PDA. +- `seeds::program` - (Optional) The program ID used to derive the PDA address. + This constraint is only used to derive a PDA where the program ID is not the + current program. + +The `seeds` and `bump` constraints are required to be used together. + +### Usage Examples + +Below are examples demonstrating how to use PDA constraints in an Anchor +program. + + + + + +The `seeds` constraint specifies the optional values used to derive the PDA. + +#### No Optional Seeds + +- Use an empty array `[]` to define a PDA without optional seeds. + +```rs +#[derive(Accounts)] +pub struct InstructionAccounts<'info> { + #[account( + seeds = [], + bump, + )] + pub pda_account: SystemAccount<'info>, +} +``` + +#### Single Static Seed + +- Specify optional seeds in the `seeds` constraint. + +```rs +#[derive(Accounts)] +pub struct InstructionAccounts<'info> { + #[account( + seeds = [b"hello_world"], + bump, + )] + pub pda_account: SystemAccount<'info>, +} +``` + +#### Multiple Seeds and Account References + +- Multiple seeds can be specified in the `seeds` constraint. The `seeds` + constraint can also reference other account addresses or account data. + +```rs +#[derive(Accounts)] +pub struct InstructionAccounts<'info> { + pub signer: Signer<'info>, + #[account( + seeds = [b"hello_world", signer.key().as_ref()], + bump, + )] + pub pda_account: SystemAccount<'info>, +} +``` + +The example above uses both a static seed (`b"hello_world"`) and a dynamic seed +(the signer's public key). + + + + +The `bump` constraint specifies the bump seed used to derive the PDA. + +#### Automatic Bump Calculation + +When using the `bump` constraint without a value, the bump is automatically +calculated each time the instruction is invoked. + +```rs +#[derive(Accounts)] +pub struct InstructionAccounts<'info> { + #[account( + seeds = [b"hello_world"], + bump, + )] + pub pda_account: SystemAccount<'info>, +} +``` + +#### Specify Bump Value + +You can explicitly provide the bump value, which is useful for optimizing +compute unit usage. This assumes that the PDA account has been created and the +bump seed is stored as a field on an existing account. + +```rs +#[derive(Accounts)] +pub struct InstructionAccounts<'info> { + #[account( + seeds = [b"hello_world"], + bump = pda_account.bump_seed, + )] + pub pda_account: Account<'info, CustomAccount>, +} + +#[account] +pub struct CustomAccount { + pub bump_seed: u8, +} +``` + +By storing the bump value in the account's data, the program doesn't need to +recalculate it, saving compute units. The saved bump value can be stored on the +account itself or another account. + + + + +The `seeds::program` constraint specifies the program ID used to derive the PDA. +This constraint is only used when deriving a PDA from a different program. + +Use this constraint when your instruction needs to interact with PDA accounts +created by another program. + +```rs +#[derive(Accounts)] +pub struct InstructionAccounts<'info> { + #[account( + seeds = [b"hello_world"], + bump, + seeds::program = other_program.key(), + )] + pub pda_account: SystemAccount<'info>, + pub other_program: Program<'info, OtherProgram>, +} +``` + + + + +The `init` constraint is commonly used with `seeds` and `bump` to create a new +account with an address that is a PDA. Under the hood, the `init` constraint +invokes the System Program to create the account. + +```rs +#[derive(Accounts)] +pub struct InstructionAccounts<'info> { + #[account(mut)] + pub signer: Signer<'info>, + #[account( + init, + seeds = [b"hello_world", signer.key().as_ref()], + bump, + payer = signer, + space = 8 + 1, + )] + pub pda_account: Account<'info, CustomAccount>, + pub system_program: Program<'info, System>, +} + +#[account] +pub struct CustomAccount { + pub bump_seed: u8, +} +``` + + + + +## PDA seeds in the IDL + +Program Derived Address (PDA) seeds defined in the `seeds` constraint are +included in the program's IDL file. This allows the Anchor client to +automatically resolve accounts using these seeds when constructing instructions. + +This example below shows the relationship between the program, IDL, and client. + + + + + +The program below defines a `pda_account` using a static seed (`b"hello_world"`) +and the signer's public key as a dynamic seed. + +```rs {18} /signer/ +use anchor_lang::prelude::*; + +declare_id!("BZLiJ62bzRryYp9mRobz47uA66WDgtfTXhhgM25tJyx5"); + +#[program] +mod hello_anchor { + use super::*; + pub fn test_instruction(ctx: Context) -> Result<()> { + msg!("PDA: {}", ctx.accounts.pda_account.key()); + Ok(()) + } +} + +#[derive(Accounts)] +pub struct InstructionAccounts<'info> { + pub signer: Signer<'info>, + #[account( + seeds = [b"hello_world", signer.key().as_ref()], + bump, + )] + pub pda_account: SystemAccount<'info>, +} +``` + + + + +The program's IDL file includes the PDA seeds defined in the `seeds` constraint. + +- The static seed `b"hello_world"` is converted to byte values. +- The dynamic seed is included as reference to the signer account. + +```json {22-29} +{ + "address": "BZLiJ62bzRryYp9mRobz47uA66WDgtfTXhhgM25tJyx5", + "metadata": { + "name": "hello_anchor", + "version": "0.1.0", + "spec": "0.1.0", + "description": "Created with Anchor" + }, + "instructions": [ + { + "name": "test_instruction", + "discriminator": [33, 223, 61, 208, 32, 193, 201, 79], + "accounts": [ + { + "name": "signer", + "signer": true + }, + { + "name": "pda_account", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [104, 101, 108, 108, 111, 95, 119, 111, 114, 108, 100] + }, + { + "kind": "account", + "path": "signer" + } + ] + } + } + ], + "args": [] + } + ] +} +``` + + + + +The Anchor client can automatically resolve the PDA address using the IDL file. + +In the example below, Anchor automatically resolves the PDA address using the +provider wallet as the signer, and its public key as the dynamic seed for PDA +derivation. This removes the need to explicitly derive the PDA when building the +instruction. + +```ts {13} +import * as anchor from "@coral-xyz/anchor"; +import { Program } from "@coral-xyz/anchor"; +import { HelloAnchor } from "../target/types/hello_anchor"; + +describe("hello_anchor", () => { + // Configure the client to use the local cluster. + anchor.setProvider(anchor.AnchorProvider.env()); + + const program = anchor.workspace.HelloAnchor as Program; + + it("Is initialized!", async () => { + // Add your test here. + const tx = await program.methods.testInstruction().rpc(); + console.log("Your transaction signature", tx); + }); +}); +``` + +When the instruction is invoked, the PDA is printed to program logs as defined +in the program instruction. + +```{3} +Program BZLiJ62bzRryYp9mRobz47uA66WDgtfTXhhgM25tJyx5 invoke [1] +Program log: Instruction: TestInstruction +Program log: PDA: 3Hikt5mpKaSS4UNA5Du1TZJ8tp4o8VC8YWW6X9vtfVnJ +Program BZLiJ62bzRryYp9mRobz47uA66WDgtfTXhhgM25tJyx5 consumed 18505 of 200000 compute units +Program BZLiJ62bzRryYp9mRobz47uA66WDgtfTXhhgM25tJyx5 success +``` + + + diff --git a/docs/programs/anchor/program-structure.md b/docs/programs/anchor/program-structure.md new file mode 100644 index 000000000..a8b0f2475 --- /dev/null +++ b/docs/programs/anchor/program-structure.md @@ -0,0 +1,399 @@ +--- +title: Anchor Program Structure +description: + Learn about the structure of Anchor programs, including key macros and their + roles in simplifying Solana program development +sidebarLabel: Program Structure +sidebarSortOrder: 1 +--- + +The [Anchor framework](https://www.anchor-lang.com/) uses +[Rust macros](https://doc.rust-lang.org/book/ch19-06-macros.html) to reduce +boilerplate code and simplify the implementation of common security checks +required for writing Solana programs. + +The main macros found in an Anchor program include: + +- [`declare_id`](#declare-id-macro): Specifies the program's on-chain address +- [`#[program]`](#program-macro): Specifies the module containing the program’s + instruction logic +- [`#[derive(Accounts)]`](#derive-accounts-macro): Applied to structs to + indicate a list of accounts required by an instruction +- [`#[account]`](#account-macro): Applied to structs to create custom account + types for the program + +## Example Program + +Let's examine a simple program that demonstrates the usage of the macros +mentioned above to understand the basic structure of an Anchor program. + +The example program below creates a new account (`NewAccount`) that stores a +`u64` value passed to the `initialize` instruction. + +```rust filename="lib.rs" +use anchor_lang::prelude::*; + +declare_id!("11111111111111111111111111111111"); + +#[program] +mod hello_anchor { + use super::*; + pub fn initialize(ctx: Context, data: u64) -> Result<()> { + ctx.accounts.new_account.data = data; + msg!("Changed data to: {}!", data); + Ok(()) + } +} + +#[derive(Accounts)] +pub struct Initialize<'info> { + #[account(init, payer = signer, space = 8 + 8)] + pub new_account: Account<'info, NewAccount>, + #[account(mut)] + pub signer: Signer<'info>, + pub system_program: Program<'info, System>, +} + +#[account] +pub struct NewAccount { + data: u64, +} +``` + +## declare_id! macro + +The +[`declare_id`](https://github.com/coral-xyz/anchor/blob/v0.30.1/lang/attribute/account/src/lib.rs#L430) +macro specifies the on-chain address of the program, known as the program ID. + +```rust filename="lib.rs" {3} +use anchor_lang::prelude::*; + +declare_id!("11111111111111111111111111111111"); +``` + +By default, the program ID is the public key of the keypair generated at +`/target/deploy/your_program_name.json`. + +To update the value of the program ID in the `declare_id` macro with the public +key of the keypair in the `/target/deploy/your_program_name.json` file, run the +following command: + +```shell filename="Terminal" +anchor keys sync +``` + +The `anchor keys sync` command is useful to run when cloning a repository where +the value of the program ID in a cloned repo's `declare_id` macro won't match +the one generated when you run `anchor build` locally. + +## #[program] macro + +The +[`#[program]`](https://github.com/coral-xyz/anchor/blob/v0.30.1/lang/attribute/program/src/lib.rs#L12) +macro defines the module that contains all the instruction handlers for your +program. Each public function within this module corresponds to an instruction +that can be invoked. + +```rust filename="lib.rs" {5, 8-12} +use anchor_lang::prelude::*; + +declare_id!("11111111111111111111111111111111"); + +#[program] +mod hello_anchor { + use super::*; + pub fn initialize(ctx: Context, data: u64) -> Result<()> { + ctx.accounts.new_account.data = data; + msg!("Changed data to: {}!", data); + Ok(()) + } +} + +#[derive(Accounts)] +pub struct Initialize<'info> { + #[account(init, payer = signer, space = 8 + 8)] + pub new_account: Account<'info, NewAccount>, + #[account(mut)] + pub signer: Signer<'info>, + pub system_program: Program<'info, System>, +} + +#[account] +pub struct NewAccount { + data: u64, +} +``` + +### Instruction Context + +Instruction handlers are functions that define the logic executed when an +instruction is invoked. The first parameter of each handler is a `Context` +type, where `T` is a struct implementing the `Accounts` trait and specifies the +accounts the instruction requires. + +The +[`Context`](https://github.com/coral-xyz/anchor/blob/v0.30.1/lang/src/context.rs#L24) +type provides the instruction with access to the following non-argument inputs: + +```rust +pub struct Context<'a, 'b, 'c, 'info, T> { + /// Currently executing program id. + pub program_id: &'a Pubkey, + /// Deserialized accounts. + pub accounts: &'b mut T, + /// Remaining accounts given but not deserialized or validated. + /// Be very careful when using this directly. + pub remaining_accounts: &'c [AccountInfo<'info>], + /// Bump seeds found during constraint validation. This is provided as a + /// convenience so that handlers don't have to recalculate bump seeds or + /// pass them in as arguments. + pub bumps: BTreeMap, +} +``` + +The `Context` fields can be accessed in an instruction using dot notation: + +- `ctx.accounts`: The accounts required for the instruction +- `ctx.program_id`: The program's public key (address) +- `ctx.remaining_accounts`: Additional accounts not specified in the `Accounts` + struct. +- `ctx.bumps`: Bump seeds for any + [Program Derived Address (PDA)](/docs/core/pda.md) accounts specified in the + `Accounts` struct + +Additional parameters are optional and can be included to specify arguments that +must be provided when the instruction is invoked. + +```rust filename="lib.rs" /Context/ /data/1 +pub fn initialize(ctx: Context, data: u64) -> Result<()> { + ctx.accounts.new_account.data = data; + msg!("Changed data to: {}!", data); + Ok(()) +} +``` + +In this example, the `Initialize` struct implements the `Accounts` trait where +each field in the struct represents an account required by the `initialize` +instruction. + +```rust filename="lib.rs" /Initialize/ /Accounts/ +#[program] +mod hello_anchor { + use super::*; + pub fn initialize(ctx: Context, data: u64) -> Result<()> { + ctx.accounts.new_account.data = data; + msg!("Changed data to: {}!", data); + Ok(()) + } +} + +#[derive(Accounts)] +pub struct Initialize<'info> { + #[account(init, payer = signer, space = 8 + 8)] + pub new_account: Account<'info, NewAccount>, + #[account(mut)] + pub signer: Signer<'info>, + pub system_program: Program<'info, System>, +} +``` + +## #[derive(Accounts)] macro + +The +[`#[derive(Accounts)]`](https://github.com/coral-xyz/anchor/blob/v0.30.1/lang/derive/accounts/src/lib.rs#L630) +macro is applied to a struct to specify the accounts that must be provided when +an instruction is invoked. This macro implements the +[`Accounts`](https://github.com/coral-xyz/anchor/blob/v0.30.1/lang/src/lib.rs#L105) +trait, which simplifies account validation and serialization and deserialization +of account data. + +```rust /Accounts/ {1} +#[derive(Accounts)] +pub struct Initialize<'info> { + #[account(init, payer = signer, space = 8 + 8)] + pub new_account: Account<'info, NewAccount>, + #[account(mut)] + pub signer: Signer<'info>, + pub system_program: Program<'info, System>, +} +``` + +Each field in the struct represents an account required by an instruction. The +naming of each field is arbitrary, but it is recommended to use a descriptive +name that indicates the purpose of the account. + +```rust /signer/2 /new_account/ /system_program/ +#[derive(Accounts)] +pub struct Initialize<'info> { + #[account(init, payer = signer, space = 8 + 8)] + pub new_account: Account<'info, NewAccount>, + #[account(mut)] + pub signer: Signer<'info>, + pub system_program: Program<'info, System>, +} +``` + +### Account Validation + +To prevent security vulnerabiliies, it's important to verify that accounts +provided to an instruction are the expected accounts. Accounts are validated in +Anchor programs in two ways that are generally used together: + +- [Account Constraints](https://www.anchor-lang.com/docs/account-constraints): + Constraints define additional conditions that an account must satisfy to be + considered valid for the instruction. Constraints are applied using the + `#[account(..)]` attribute, which is placed above a field in a struct that + implements the `Accounts` trait. + + You can find the implementation of the constraints + [here](https://github.com/coral-xyz/anchor/blob/v0.30.1/lang/syn/src/parser/accounts/constraints.rs). + + ```rust {3, 5} + #[derive(Accounts)] + pub struct Initialize<'info> { + #[account(init, payer = signer, space = 8 + 8)] + pub new_account: Account<'info, NewAccount>, + #[account(mut)] + pub signer: Signer<'info>, + pub system_program: Program<'info, System>, + } + ``` + +- [Account Types](https://www.anchor-lang.com/docs/account-types): Anchor + provides various account types to help ensure that the account provided by the + client matches what the program expects. + + You can find the implementation of the account types + [here](https://github.com/coral-xyz/anchor/blob/v0.30.1/lang/src/accounts). + + ```rust /Account/2 /Signer/ /Program/ + #[derive(Accounts)] + pub struct Initialize<'info> { + #[account(init, payer = signer, space = 8 + 8)] + pub new_account: Account<'info, NewAccount>, + #[account(mut)] + pub signer: Signer<'info>, + pub system_program: Program<'info, System>, + } + ``` + +When an instruction in an Anchor program is invoked, the program first validates +the accounts provided before executing the instruction's logic. After +validation, these accounts can be accessed within the instruction using the +`ctx.accounts` syntax. + +```rust filename="lib.rs" /ctx.accounts.new_account/ /new_account/ /Initialize/ +use anchor_lang::prelude::*; + +declare_id!("11111111111111111111111111111111"); + +#[program] +mod hello_anchor { + use super::*; + pub fn initialize(ctx: Context, data: u64) -> Result<()> { + ctx.accounts.new_account.data = data; + msg!("Changed data to: {}!", data); + Ok(()) + } +} + +#[derive(Accounts)] +pub struct Initialize<'info> { + #[account(init, payer = signer, space = 8 + 8)] + pub new_account: Account<'info, NewAccount>, + #[account(mut)] + pub signer: Signer<'info>, + pub system_program: Program<'info, System>, +} + +#[account] +pub struct NewAccount { + data: u64, +} +``` + +## #[account] macro + +The +[`#[account]`](https://github.com/coral-xyz/anchor/blob/v0.30.1/lang/attribute/account/src/lib.rs#L66) +macro is applied to structs that define the data stored in custom accounts +created by your program. + +```rust +#[account] +pub struct NewAccount { + data: u64, +} +``` + +This macro implements various traits +[detailed here](https://docs.rs/anchor-lang/latest/anchor_lang/attr.account.html). +The key functionalities of the `#[account]` macro include: + +- [Assign Program Owner](https://github.com/coral-xyz/anchor/blob/v0.30.1/lang/attribute/account/src/lib.rs#L119-L132): + When creating an account, the program owner of the account is automatically + set to the program specified in `declare_id`. +- [Set Discriminator](https://github.com/coral-xyz/anchor/blob/v0.30.1/lang/attribute/account/src/lib.rs#L101-L117): + A unique 8 byte discriminator, specific to the account type, is added as the + first 8 bytes of account data during its initialization. This helps in + differentiating account types and is used for account validation. +- [Data Serialization and Deserialization](https://github.com/coral-xyz/anchor/blob/v0.30.1/lang/attribute/account/src/lib.rs#L202-L246): + Account data is automatically serialized and deserialized as the account type. + +```rust filename="lib.rs" /data/2,6 /NewAccount/ {24-27} +use anchor_lang::prelude::*; + +declare_id!("11111111111111111111111111111111"); + +#[program] +mod hello_anchor { + use super::*; + pub fn initialize(ctx: Context, data: u64) -> Result<()> { + ctx.accounts.new_account.data = data; + msg!("Changed data to: {}!", data); + Ok(()) + } +} + +#[derive(Accounts)] +pub struct Initialize<'info> { + #[account(init, payer = signer, space = 8 + 8)] + pub new_account: Account<'info, NewAccount>, + #[account(mut)] + pub signer: Signer<'info>, + pub system_program: Program<'info, System>, +} + +#[account] +pub struct NewAccount { + data: u64, +} +``` + +### Account Discriminator + +An account discriminator in an Anchor program refers to an 8 byte identifier +unique to each account type. It's derived from the first 8 bytes of the SHA256 +hash of the string `account:`. This discriminator is stored as the +first 8 bytes of account data when an account is created. + +When creating an account in an Anchor program, 8 bytes must be allocated for the +discriminator. + +```rust /8/1 +#[account(init, payer = signer, space = 8 + 8)] +pub new_account: Account<'info, NewAccount>, +``` + +The discriminator is used during the following two scenarios: + +- Initialization: When an account is created, the discriminator is set as the + first 8 bytes of the account's data. +- Deserialization: When account data is deserialized, the first 8 bytes of + account data is checked against the discriminator of the expected account + type. + +If there's a mismatch, it indicates that the client has provided an unexpected +account. This mechanism serves as an account validation check in Anchor +programs. diff --git a/docs/programs/debugging.md b/docs/programs/debugging.md deleted file mode 100644 index 1f2ace740..000000000 --- a/docs/programs/debugging.md +++ /dev/null @@ -1,273 +0,0 @@ ---- -title: "Debugging Programs" ---- - -Solana programs run on-chain, so debugging them in the wild can be challenging. -To make debugging programs easier, developers can write unit tests that directly -test their program's execution via the Solana runtime, or run a local cluster -that will allow RPC clients to interact with their program. - -## Running unit tests - -- [Testing with Rust](/docs/programs/lang-rust.md#how-to-test) -- [Testing with C](/docs/programs/lang-c.md#how-to-test) - -## Logging - -During program execution both the runtime and the program log status and error -messages. - -For information about how to log from a program see the language specific -documentation: - -- [Logging from a Rust program](/docs/programs/lang-rust.md#logging) -- [Logging from a C program](/docs/programs/lang-c.md#logging) - -When running a local cluster the logs are written to stdout as long as they are -enabled via the `RUST_LOG` log mask. From the perspective of program development -it is helpful to focus on just the runtime and program logs and not the rest of -the cluster logs. To focus in on program specific information the following log -mask is recommended: - -```shell -export RUST_LOG=solana_runtime::system_instruction_processor=trace,solana_runtime::message_processor=info,solana_bpf_loader=debug,solana_rbpf=debug -``` - -Log messages coming directly from the program (not the runtime) will be -displayed in the form: - -`Program log: ` - -## Error Handling - -The amount of information that can be communicated via a transaction error is -limited but there are many points of possible failures. The following are -possible failure points and information about what errors to expect and where to -get more information: - -- The SBF loader may fail to parse the program, this should not happen since the - loader has already _finalized_ the program's account data. - - `InstructionError::InvalidAccountData` will be returned as part of the - transaction error. -- The SBF loader may fail to setup the program's execution environment - - `InstructionError::Custom(0x0b9f_0001)` will be returned as part of the - transaction error. "0x0b9f_0001" is the hexadecimal representation of - [`VirtualMachineCreationFailed`](https://github.com/solana-labs/solana/blob/bc7133d7526a041d1aaee807b80922baa89b6f90/programs/bpf_loader/src/lib.rs#L44). -- The SBF loader may have detected a fatal error during program executions - (things like panics, memory violations, system call errors, etc...) - - `InstructionError::Custom(0x0b9f_0002)` will be returned as part of the - transaction error. "0x0b9f_0002" is the hexadecimal representation of - [`VirtualMachineFailedToRunProgram`](https://github.com/solana-labs/solana/blob/bc7133d7526a041d1aaee807b80922baa89b6f90/programs/bpf_loader/src/lib.rs#L46). -- The program itself may return an error - - `InstructionError::Custom()` will be returned. The "user - defined value" must not conflict with any of the - [builtin runtime program errors](https://github.com/solana-labs/solana/blob/bc7133d7526a041d1aaee807b80922baa89b6f90/sdk/program/src/program_error.rs#L87). - Programs typically use enumeration types to define error codes starting at - zero so they won't conflict. - -In the case of `VirtualMachineFailedToRunProgram` errors, more information about -the specifics of what failed are written to the -[program's execution logs](/docs/programs/debugging.md#logging). - -For example, an access violation involving the stack will look something like -this: - -```text -SBF program 4uQeVj5tqViQh7yWWGStvkEG1Zmhx6uasJtWCJziofM failed: out of bounds memory store (insn #615), addr 0x200001e38/8 -``` - -## Monitoring Compute Budget Consumption - -The program can log the remaining number of compute units it will be allowed -before program execution is halted. Programs can use these logs to wrap -operations they wish to profile. - -- [Log the remaining compute units from a Rust program](/docs/programs/lang-rust.md#compute-budget) -- [Log the remaining compute units from a C program](/docs/programs/lang-c.md#compute-budget) - -See [compute budget](/docs/core/fees.md#compute-budget) for more information. - -## ELF Dump - -The SBF shared object internals can be dumped to a text file to gain more -insight into a program's composition and what it may be doing at runtime. - -- [Create a dump file of a Rust program](/docs/programs/lang-rust.md#elf-dump) -- [Create a dump file of a C program](/docs/programs/lang-c.md#elf-dump) - -## Instruction Tracing - -During execution the runtime SBF interpreter can be configured to log a trace -message for each SBF instruction executed. This can be very helpful for things -like pin-pointing the runtime context leading up to a memory access violation. - -The trace logs together with the [ELF dump](#elf-dump) can provide a lot of -insight (though the traces produce a lot of information). - -To turn on SBF interpreter trace messages in a local cluster configure the -`solana_rbpf` level in `RUST_LOG` to `trace`. For example: - -`export RUST_LOG=solana_rbpf=trace` - -## Source level debugging - -Source level debugging of onchain programs written in Rust or C can be done -using the `program run` subcommand of `solana-ledger-tool`, and lldb, -distributed with Solana Rust and Clang compiler binary package platform-tools. - -The `solana-ledger-tool program run` subcommand loads a compiled on-chain -program, executes it in RBPF virtual machine and runs a gdb server that accepts -incoming connections from LLDB or GDB. Once lldb is connected to -`solana-ledger-tool` gdbserver, it can control execution of an on-chain program. -Run `solana-ledger-tool program run --help` for an example of specifying input -data for parameters of the program entrypoint function. - -To compile a program for debugging use cargo-build-sbf build utility with the -command line option `--debug`. The utility will generate two loadable files, one -a usual loadable module with the extension `.so`, and another the same loadable -module but containing Dwarf debug information, a file with extension `.debug`. - -To execute a program in debugger, run `solana-ledger-tool program run` with -`-e debugger` command line option. For example, a crate named 'helloworld' is -compiled and an executable program is built in `target/deploy` directory. There -should be three files in that directory - -- helloworld-keypair.json -- a keypair for deploying the program, -- helloworld.debug -- a binary file containing debug information, -- helloworld.so -- an executable file loadable into the virtual machine. The - command line for running `solana-ledger-tool` would be something like this - -```shell -solana-ledger-tool program run -l test-ledger -e debugger target/deploy/helloworld.so -``` - -Note that `solana-ledger-tool` always loads a ledger database. Most on-chain -programs interact with a ledger in some manner. Even if for debugging purpose a -ledger is not needed, it has to be provided to `solana-ledger-tool`. A minimal -ledger database can be created by running `solana-test-validator`, which creates -a ledger in `test-ledger` subdirectory. - -In debugger mode `solana-ledger-tool program run` loads an `.so` file and starts -listening for an incoming connection from a debugger - -```text -Waiting for a Debugger connection on "127.0.0.1:9001"... -``` - -To connect to `solana-ledger-tool` and execute the program, run lldb. For -debugging rust programs it may be beneficial to run solana-lldb wrapper to lldb, -i.e. at a new shell prompt (other than the one used to start -`solana-ledger-tool`) run the command: - -```shell -solana-lldb -``` - -This script is installed in platform-tools path. If that path is not added to -`PATH` environment variable, it may be necessary to specify the full path, e.g. - -```text -~/.cache/solana/v1.35/platform-tools/llvm/bin/solana-lldb -``` - -After starting the debugger, load the .debug file by entering the following -command at the debugger prompt - -```text -(lldb) file target/deploy/helloworld.debug -``` - -If the debugger finds the file, it will print something like this - -```text -Current executable set to '/path/helloworld.debug' (bpf). -``` - -Now, connect to the gdb server that `solana-ledger-tool` implements, and debug -the program as usual. Enter the following command at lldb prompt - -```text -(lldb) gdb-remote 127.0.0.1:9001 -``` - -If the debugger and the gdb server establish a connection, the execution of the -program will be stopped at the entrypoint function, and lldb should print -several lines of the source code around the entrypoint function signature. From -this point on, normal lldb commands can be used to control execution of the -program being debugged. - -### Debugging in an IDE - -To debug onchain programs in Visual Studio IDE, install the CodeLLDB extension. -Open CodeLLDB Extension Settings. In Advanced settings change the value of -`Lldb: Library` field to the path of `liblldb.so` (or liblldb.dylib on macOS). -For example on Linux a possible path to Solana customized lldb can be -`/home//.cache/solana/v1.33/platform-tools/llvm/lib/liblldb.so.` where -`` is your Linux system username. This can also be added directly to -`~/.config/Code/User/settings.json` file, e.g. - -```json -{ - "lldb.library": "/home//.cache/solana/v1.35/platform-tools/llvm/lib/liblldb.so" -} -``` - -In `.vscode` subdirectory of your on-chain project, create two files - -First file is `tasks.json` with the following content - -```json -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "cargo build-sbf --debug", - "problemMatcher": [], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "label": "solana-debugger", - "type": "shell", - "command": "solana-ledger-tool program run -l test-ledger -e debugger ${workspaceFolder}/target/deploy/helloworld.so" - } - ] -} -``` - -The first task is to build the on-chain program using cargo-build-sbf utility. -The second task is to run `solana-ledger-tool program run` in debugger mode. - -Another file is `launch.json` with the following content - -```json -{ - "version": "0.2.0", - "configurations": [ - { - "type": "lldb", - "request": "custom", - "name": "Debug", - "targetCreateCommands": [ - "target create ${workspaceFolder}/target/deploy/helloworld.debug" - ], - "processCreateCommands": ["gdb-remote 127.0.0.1:9001"] - } - ] -} -``` - -This file specifies how to run debugger and to connect it to the gdb server -implemented by `solana-ledger-tool`. - -To start debugging a program, first build it by running the build task. The next -step is to run `solana-debugger` task. The tasks specified in `tasks.json` file -are started from `Terminal >> Run Task...` menu of VSCode. When -`solana-ledger-tool` is running and listening from incoming connections, it's -time to start the debugger. Launch it from VSCode `Run and Debug` menu. If -everything is set up correctly, VSCode will start a debugging session and the -program execution should stop on the entrance into the `entrypoint` function. diff --git a/docs/programs/deploying.md b/docs/programs/deploying.md index 78aa89fc9..934ec1925 100644 --- a/docs/programs/deploying.md +++ b/docs/programs/deploying.md @@ -4,6 +4,7 @@ description: "Deploying onchain programs can be done using the Solana CLI using the Upgradable BPF loader to upload the compiled byte-code to the Solana blockchain." +sidebarSortOrder: 4 --- Solana onchain programs (otherwise known as "smart contracts") are stored in @@ -140,19 +141,6 @@ on developers who deploy their own programs since [program accounts](/docs/core/accounts.md#custom-programs) are among the largest we typically see on Solana. -#### Example of how much data is used for programs - -As a data point of the number of accounts and potential data stored on-chain, -below is the distribution of the largest accounts (at least 100KB) at slot -`103,089,804` on `mainnet-beta` by assigned on-chain program: - -1. **Serum Dex v3**: 1798 accounts -2. **Metaplex Candy Machine**: 1089 accounts -3. **Serum Dex v2**: 864 accounts -4. **Upgradeable BPF Program Loader**: 824 accounts -5. **BPF Program Loader v2**: 191 accounts -6. **BPF Program Loader v1**: 150 accounts - ### Reclaiming buffer accounts Buffer accounts are used by the Upgradeable BPF loader to temporarily store @@ -165,9 +153,6 @@ account, developers might retry their deployment with a new buffer and not realize that they stored a good chunk of SOL in a forgotten buffer account from an earlier deploy. -> As of slot `103,089,804` on `mainnet-beta` there are 276 abandoned buffer -> accounts that could be reclaimed! - Developers can check if they own any abandoned buffer accounts by using the Solana CLI: diff --git a/docs/programs/examples.md b/docs/programs/examples.md index bd70d765d..1d0c969b9 100644 --- a/docs/programs/examples.md +++ b/docs/programs/examples.md @@ -1,5 +1,4 @@ --- -date: 2024-04-26T00:00:00Z title: "Program Examples" description: "A list of Solana program examples in different languages and frameworks, @@ -24,10 +23,11 @@ keywords: - blockchain tutorial - web3 developer - anchor +sidebarSortOrder: 2 --- The -"[Solana Program Examples](https://github.com/solana-developers/program-examples)" +[Solana Program Examples](https://github.com/solana-developers/program-examples) repository on GitHub offers several subfolders, each containing code examples for different Solana programming paradigms and languages, designed to help developers learn and experiment with Solana blockchain development. @@ -35,9 +35,8 @@ developers learn and experiment with Solana blockchain development. You can find the examples in the `solana-developers/program-examples` together with README files that explain you how to run the different examples. Most examples are self-contained and are available in native Rust (ie, with no -framework), [Anchor](https://www.anchor-lang.com/docs/installation), -[Seahorse](https://seahorse-lang.org/) and it also contains a list of examples -that we would love to +framework) and [Anchor](https://www.anchor-lang.com/docs/installation). It also +contains a list of examples that we would love to [see as contributions](https://github.com/solana-developers/program-examples?tab=readme-ov-file#examples-wed-love-to-see). Within the repo you will find the following subfolder, each with assorted example programs within them: @@ -56,22 +55,22 @@ Contains a series of examples that demonstrate the foundational steps for building Solana programs using native Rust libraries. These examples are designed to help developers understand the core concepts of Solana programming. -| Example Name | Description | Language | -| ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ----------------------------------- | -| [Account Data](https://github.com/solana-developers/program-examples/tree/main/basics/account-data) | Saving an address with name, house number, street and city in an account. | Native, Anchor | -| [Checking Accounts](https://github.com/solana-developers/program-examples/tree/main/basics/checking-accounts) | Security lessons that shows how to do account checks | Native, Anchor | -| [Close Account](https://github.com/solana-developers/program-examples/tree/main/basics/close-account) | Show you how to close accounts to get its rent back. | Native, Anchor | -| [Counter](https://github.com/solana-developers/program-examples/tree/main/basics/counter) | A simple counter program in all the different architectures. | Native, Anchor, Seahorse, mpl-stack | -| [Create Account](https://github.com/solana-developers/program-examples/tree/main/basics/create-account) | How to create a system account within a program. | Native, Anchor | -| [Cross Program Invocation](https://github.com/solana-developers/program-examples/tree/main/basics/cross-program-invocation) | Using a hand and lever analogy this shows you how to call another program from within a program. | Native, Anchor | -| [hello solana](https://github.com/solana-developers/program-examples/tree/main/basics/hello-solana) | Hello world example which just prints hello world in the transaction logs. | Native, Anchor | -| [Pda Rent payer](https://github.com/solana-developers/program-examples/tree/main/basics/pda-rent-payer) | Shows you how you can use the lamports from a PDA to pay for a new account. | Native, Anchor | -| [Processing Instructions](https://github.com/solana-developers/program-examples/tree/main/basics/processing-instructions) | Shows you how to handle instruction data string and u32. | Native, Anchor | -| [Program Derived Addresses](https://github.com/solana-developers/program-examples/tree/main/basics/program-derived-addresses) | Shows how to use seeds to refer to a PDA and save data in it. | Native, Anchor | -| [Realloc](https://github.com/solana-developers/program-examples/tree/main/basics/realloc) | Shows you how to increase and decrease the size of an existing account. | Native, Anchor | -| [Rent](https://github.com/solana-developers/program-examples/tree/main/basics/rent) | Here you will learn how to calculate rent requirements within a program. | Native, Anchor | -| [Repository Layout](https://github.com/solana-developers/program-examples/tree/main/basics/repository-layout) | Recommendations on how to structure your program layout. | Native, Anchor | -| [Transfer SOL](https://github.com/solana-developers/program-examples/tree/main/basics/transfer-sol) | Different methods of transferring SOL for system accounts and PDAs. | Native, Anchor, Seahorse | +| Example Name | Description | Language | +| ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------- | +| [Account Data](https://github.com/solana-developers/program-examples/tree/main/basics/account-data) | Saving an address with name, house number, street and city in an account. | Native, Anchor | +| [Checking Accounts](https://github.com/solana-developers/program-examples/tree/main/basics/checking-accounts) | Security lessons that shows how to do account checks | Native, Anchor | +| [Close Account](https://github.com/solana-developers/program-examples/tree/main/basics/close-account) | Show you how to close accounts to get its rent back. | Native, Anchor | +| [Counter](https://github.com/solana-developers/program-examples/tree/main/basics/counter) | A simple counter program in all the different architectures. | Native, Anchor, mpl-stack | +| [Create Account](https://github.com/solana-developers/program-examples/tree/main/basics/create-account) | How to create a system account within a program. | Native, Anchor | +| [Cross Program Invocation](https://github.com/solana-developers/program-examples/tree/main/basics/cross-program-invocation) | Using a hand and lever analogy this shows you how to call another program from within a program. | Native, Anchor | +| [hello solana](https://github.com/solana-developers/program-examples/tree/main/basics/hello-solana) | Hello world example which just prints hello world in the transaction logs. | Native, Anchor | +| [Pda Rent payer](https://github.com/solana-developers/program-examples/tree/main/basics/pda-rent-payer) | Shows you how you can use the lamports from a PDA to pay for a new account. | Native, Anchor | +| [Processing Instructions](https://github.com/solana-developers/program-examples/tree/main/basics/processing-instructions) | Shows you how to handle instruction data string and u32. | Native, Anchor | +| [Program Derived Addresses](https://github.com/solana-developers/program-examples/tree/main/basics/program-derived-addresses) | Shows how to use seeds to refer to a PDA and save data in it. | Native, Anchor | +| [Realloc](https://github.com/solana-developers/program-examples/tree/main/basics/realloc) | Shows you how to increase and decrease the size of an existing account. | Native, Anchor | +| [Rent](https://github.com/solana-developers/program-examples/tree/main/basics/rent) | Here you will learn how to calculate rent requirements within a program. | Native, Anchor | +| [Repository Layout](https://github.com/solana-developers/program-examples/tree/main/basics/repository-layout) | Recommendations on how to structure your program layout. | Native, Anchor | +| [Transfer SOL](https://github.com/solana-developers/program-examples/tree/main/basics/transfer-sol) | Different methods of transferring SOL for system accounts and PDAs. | Native, Anchor, Seahorse | ## Compression @@ -89,9 +88,9 @@ focused on compressed NFTs (cNFTs). Oracles allow to use off chain data in programs. -| Example Name | Description | Language | -| ------------------------------------------------------------------------------------ | --------------------------------------------------------------- | ---------------- | -| [Pyth](https://github.com/solana-developers/program-examples/tree/main/oracles/pyth) | Pyth makes price data of tokens available in on chain programs. | Anchor, Seahorse | +| Example Name | Description | Language | +| ------------------------------------------------------------------------------------ | --------------------------------------------------------------- | -------- | +| [Pyth](https://github.com/solana-developers/program-examples/tree/main/oracles/pyth) | Pyth makes price data of tokens available in on chain programs. | Anchor | ## Tokens @@ -99,15 +98,15 @@ Most tokens on Solana use the Solana Program Library (SPL) token standard. Here you can find many examples on how to mint, transfer, burn tokens and even how to interact with them in programs. -| Example Name | Description | Language | -| --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------ | -| [Create Token](https://github.com/solana-developers/program-examples/tree/main/tokens/create-token) | How to create a token and add metaplex metadata to it. | Anchor, Native | -| [NFT Minter](https://github.com/solana-developers/program-examples/tree/main/tokens/nft-minter) | Minting only one amount of a token and then removing the mint authority. | Anchor, Native | -| [PDA Mint Authority](https://github.com/solana-developers/program-examples/tree/main/tokens/pda-mint-authority) | Shows you how to change the mint authority of a mint, to mint tokens from within a program. | Anchor, Native | -| [SPL Token Minter](https://github.com/solana-developers/program-examples/tree/main/tokens/spl-token-minter) | Explains how to use Associated Token Accounts to be able to keep track of token accounts. | Anchor, Native | -| [Token Swap](https://github.com/solana-developers/program-examples/tree/main/tokens/token-swap) | Extensive example that shows you how to build a AMM (automated market maker) pool for SPL tokens. | Anchor | -| [Transfer Tokens](https://github.com/solana-developers/program-examples/tree/main/tokens/transfer-tokens) | Shows how to transfer SPL token using CPIs into the token program. | Anchor, Native, Seahorse | -| [Token-2022](https://github.com/solana-developers/program-examples/tree/main/tokens/token-2022) | See Token 2022 (Token extensions). | Anchor, Native | +| Example Name | Description | Language | +| --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | -------------- | +| [Create Token](https://github.com/solana-developers/program-examples/tree/main/tokens/create-token) | How to create a token and add metaplex metadata to it. | Anchor, Native | +| [NFT Minter](https://github.com/solana-developers/program-examples/tree/main/tokens/nft-minter) | Minting only one amount of a token and then removing the mint authority. | Anchor, Native | +| [PDA Mint Authority](https://github.com/solana-developers/program-examples/tree/main/tokens/pda-mint-authority) | Shows you how to change the mint authority of a mint, to mint tokens from within a program. | Anchor, Native | +| [SPL Token Minter](https://github.com/solana-developers/program-examples/tree/main/tokens/spl-token-minter) | Explains how to use Associated Token Accounts to be able to keep track of token accounts. | Anchor, Native | +| [Token Swap](https://github.com/solana-developers/program-examples/tree/main/tokens/token-swap) | Extensive example that shows you how to build a AMM (automated market maker) pool for SPL tokens. | Anchor | +| [Transfer Tokens](https://github.com/solana-developers/program-examples/tree/main/tokens/transfer-tokens) | Shows how to transfer SPL token using CPIs into the token program. | Anchor, Native | +| [Token-2022](https://github.com/solana-developers/program-examples/tree/main/tokens/token-2022) | See Token 2022 (Token extensions). | Anchor, Native | ## Token 2022 (Token Extensions) diff --git a/docs/programs/faq.md b/docs/programs/faq.md deleted file mode 100644 index a5dd87b8c..000000000 --- a/docs/programs/faq.md +++ /dev/null @@ -1,225 +0,0 @@ ---- -title: "FAQ" ---- - -When writing or interacting with Solana programs, there are common questions or -challenges that often come up. Below are resources to help answer these -questions. - -If not addressed here, ask on -[StackExchange](https://solana.stackexchange.com/questions/ask?tags=solana-program) -with the `solana-program` tag. - -## Limitations - -Developing programs on the Solana blockchain have some inherent limitation -associated with them. Below is a list of common limitation that you may run -into. - -See [limitations of developing programs](/docs/programs/limitations.md) for more -details - -## Berkeley Packet Filter (BPF) - -Solana onchain programs are compiled via the -[LLVM compiler infrastructure](https://llvm.org/) to an -[Executable and Linkable Format (ELF)](https://en.wikipedia.org/wiki/Executable_and_Linkable_Format) -containing a variation of the -[Berkeley Packet Filter (BPF)](https://en.wikipedia.org/wiki/Berkeley_Packet_Filter) -bytecode. - -Because Solana uses the LLVM compiler infrastructure, a program may be written -in any programming language that can target the LLVM's BPF backend. - -BPF provides an efficient -[instruction set](https://github.com/iovisor/bpf-docs/blob/master/eBPF.md) that -can be executed in an interpreted virtual machine or as efficient just-in-time -compiled native instructions. - -## Memory map - -The virtual address memory map used by Solana SBF programs is fixed and laid out -as follows - -- Program code starts at 0x100000000 -- Stack data starts at 0x200000000 -- Heap data starts at 0x300000000 -- Program input parameters start at 0x400000000 - -The above virtual addresses are start addresses but programs are given access to -a subset of the memory map. The program will panic if it attempts to read or -write to a virtual address that it was not granted access to, and an -`AccessViolation` error will be returned that contains the address and size of -the attempted violation. - -## InvalidAccountData - -This program error can happen for a lot of reasons. Usually, it's caused by -passing an account to the program that the program is not expecting, either in -the wrong position in the instruction or an account not compatible with the -instruction being executed. - -An implementation of a program might also cause this error when performing a -cross-program instruction and forgetting to provide the account for the program -that you are calling. - -## InvalidInstructionData - -This program error can occur while trying to deserialize the instruction, check -that the structure passed in matches exactly the instruction. There may be some -padding between fields. If the program implements the Rust `Pack` trait then try -packing and unpacking the instruction type `T` to determine the exact encoding -the program expects. - -## MissingRequiredSignature - -Some instructions require the account to be a signer; this error is returned if -an account is expected to be signed but is not. - -An implementation of a program might also cause this error when performing a -cross-program invocation that requires a signed program address, but the passed -signer seeds passed to [`invoke_signed`](/docs/core/cpi.md) don't match the -signer seeds used to create the program address -[`create_program_address`](/docs/core/pda.md#createprogramaddress). - -## `rand` Rust dependency causes compilation failure - -See -[Rust Project Dependencies](/docs/programs/lang-rust.md#project-dependencies) - -## Rust restrictions - -See [Rust restrictions](/docs/programs/lang-rust.md#restrictions) - -## Stack - -SBF uses stack frames instead of a variable stack pointer. Each stack frame is -4KB in size. - -If a program violates that stack frame size, the compiler will report the -overrun as a warning. - -For example: - -```text -Error: Function _ZN16curve25519_dalek7edwards21EdwardsBasepointTable6create17h178b3d2411f7f082E Stack offset of -30728 exceeded max offset of -4096 by 26632 bytes, please minimize large stack variables -``` - -The message identifies which symbol is exceeding its stack frame, but the name -might be mangled if it is a Rust or C++ symbol. - -> To demangle a Rust symbol use [rustfilt](https://github.com/luser/rustfilt). - -The above warning came from a Rust program, so the demangled symbol name is: - -```shell -rustfilt _ZN16curve25519_dalek7edwards21EdwardsBasepointTable6create17h178b3d2411f7f082E -curve25519_dalek::edwards::EdwardsBasepointTable::create -``` - -To demangle a C++ symbol use `c++filt` from binutils. - -The reason a warning is reported rather than an error is because some dependent -crates may include functionality that violates the stack frame restrictions even -if the program doesn't use that functionality. If the program violates the stack -size at runtime, an `AccessViolation` error will be reported. - -SBF stack frames occupy a virtual address range starting at `0x200000000`. - -## Heap size - -Programs have access to a runtime heap either directly in C or via the Rust -`alloc` APIs. To facilitate fast allocations, a simple 32KB bump heap is -utilized. The heap does not support `free` or `realloc` so use it wisely. - -Internally, programs have access to the 32KB memory region starting at virtual -address 0x300000000 and may implement a custom heap based on the program's -specific needs. - -- [Rust program heap usage](/docs/programs/lang-rust.md#heap) -- [C program heap usage](/docs/programs/lang-c.md#heap) - -## Loaders - -Programs are deployed with and executed by runtime loaders, currently there are -two supported loaders -[BPF Loader](https://github.com/solana-labs/solana/blob/7ddf10e602d2ed87a9e3737aa8c32f1db9f909d8/sdk/program/src/bpf_loader.rs#L17) -and -[BPF loader deprecated](https://github.com/solana-labs/solana/blob/7ddf10e602d2ed87a9e3737aa8c32f1db9f909d8/sdk/program/src/bpf_loader_deprecated.rs#L14) - -Loaders may support different application binary interfaces so developers must -write their programs for and deploy them to the same loader. If a program -written for one loader is deployed to a different one the result is usually a -`AccessViolation` error due to mismatched deserialization of the program's input -parameters. - -For all practical purposes program should always be written to target the latest -BPF loader and the latest loader is the default for the command-line interface -and the javascript APIs. - -For language specific information about implementing a program for a particular -loader see: - -- [Rust program entrypoints](/docs/programs/lang-rust.md#program-entrypoint) -- [C program entrypoints](/docs/programs/lang-c.md#program-entrypoint) - -### Deployment - -SBF program deployment is the process of uploading a BPF shared object into a -program account's data and marking the account executable. A client breaks the -SBF shared object into smaller pieces and sends them as the instruction data of -[`Write`](https://github.com/solana-labs/solana/blob/bc7133d7526a041d1aaee807b80922baa89b6f90/sdk/program/src/loader_instruction.rs#L13) -instructions to the loader where loader writes that data into the program's -account data. Once all the pieces are received the client sends a -[`Finalize`](https://github.com/solana-labs/solana/blob/bc7133d7526a041d1aaee807b80922baa89b6f90/sdk/program/src/loader_instruction.rs#L30) -instruction to the loader, the loader then validates that the SBF data is valid -and marks the program account as _executable_. Once the program account is -marked executable, subsequent transactions may issue instructions for that -program to process. - -When an instruction is directed at an executable SBF program the loader -configures the program's execution environment, serializes the program's input -parameters, calls the program's entrypoint, and reports any errors encountered. - -For further information, see [deploying programs](/docs/programs/deploying.md). - -### Input Parameter Serialization - -SBF loaders serialize the program input parameters into a byte array that is -then passed to the program's entrypoint, where the program is responsible for -deserializing it on-chain. One of the changes between the deprecated loader and -the current loader is that the input parameters are serialized in a way that -results in various parameters falling on aligned offsets within the aligned byte -array. This allows deserialization implementations to directly reference the -byte array and provide aligned pointers to the program. - -For language specific information about serialization see: - -- [Rust program parameter deserialization](/docs/programs/lang-rust.md#parameter-deserialization) -- [C program parameter deserialization](/docs/programs/lang-c.md#parameter-deserialization) - -The latest loader serializes the program input parameters as follows (all -encoding is little endian): - -- 8 bytes unsigned number of accounts -- For each account - - 1 byte indicating if this is a duplicate account, if not a duplicate then - the value is 0xff, otherwise the value is the index of the account it is a - duplicate of. - - If duplicate: 7 bytes of padding - - If not duplicate: - - 1 byte boolean, true if account is a signer - - 1 byte boolean, true if account is writable - - 1 byte boolean, true if account is executable - - 4 bytes of padding - - 32 bytes of the account public key - - 32 bytes of the account's owner public key - - 8 bytes unsigned number of lamports owned by the account - - 8 bytes unsigned number of bytes of account data - - x bytes of account data - - 10k bytes of padding, used for realloc - - enough padding to align the offset to 8 bytes. - - 8 bytes rent epoch -- 8 bytes of unsigned number of instruction data -- x bytes of instruction data -- 32 bytes of the program id diff --git a/docs/programs/index.md b/docs/programs/index.md index 6a09d28ff..4189752bd 100644 --- a/docs/programs/index.md +++ b/docs/programs/index.md @@ -1,5 +1,5 @@ --- title: Developing Programs +sidebarSortOrder: 2 metaOnly: true -sidebarSortOrder: 4 --- diff --git a/docs/programs/lang-c.md b/docs/programs/lang-c.md deleted file mode 100644 index 213cdce4c..000000000 --- a/docs/programs/lang-c.md +++ /dev/null @@ -1,191 +0,0 @@ ---- -title: "Developing with C" ---- - -Solana supports writing onchain programs using the C and C++ programming -languages. - -## Project Layout - -C projects are laid out as follows: - -```text -/src/ -/makefile -``` - -The `makefile` should contain the following: - -```shell -OUT_DIR := -include ~/.local/share/solana/install/active_release/bin/sdk/sbf/c/sbf.mk -``` - -The sbf-sdk may not be in the exact place specified above but if you setup your -environment per [How to Build](#how-to-build) then it should be. - -## How to Build - -First setup the environment: - -- Install the latest Rust stable from https://rustup.rs -- Install the latest [Solana command-line tools](/docs/intro/installation.md) - -Then build using make: - -```shell -make -C -``` - -## How to Test - -Solana uses the [Criterion](https://github.com/Snaipe/Criterion) test framework -and tests are executed each time the program is built -[How to Build](#how-to-build). - -To add tests, create a new file next to your source file named -`test_.c` and populate it with criterion test cases. See the -[Criterion docs](https://criterion.readthedocs.io/en/master) for information on -how to write a test case. - -## Program Entrypoint - -Programs export a known entrypoint symbol which the Solana runtime looks up and -calls when invoking a program. Solana supports multiple versions of the SBF -loader and the entrypoints may vary between them. Programs must be written for -and deployed to the same loader. For more details see the -[FAQ section on Loaders](/docs/programs/faq.md#loaders). - -Currently there are two supported loaders -[SBF Loader](https://github.com/solana-labs/solana/blob/7ddf10e602d2ed87a9e3737aa8c32f1db9f909d8/sdk/program/src/bpf_loader.rs#L17) -and -[SBF loader deprecated](https://github.com/solana-labs/solana/blob/7ddf10e602d2ed87a9e3737aa8c32f1db9f909d8/sdk/program/src/bpf_loader_deprecated.rs#L14). - -They both have the same raw entrypoint definition, the following is the raw -symbol that the runtime looks up and calls: - -```c -extern uint64_t entrypoint(const uint8_t *input) -``` - -This entrypoint takes a generic byte array which contains the serialized program -parameters (program id, accounts, instruction data, etc...). To deserialize the -parameters each loader contains its own [helper function](#serialization). - -### Serialization - -Each loader provides a helper function that deserializes the program's input -parameters into C types: - -- [SBF Loader deserialization](https://github.com/solana-labs/solana/blob/d2ee9db2143859fa5dc26b15ee6da9c25cc0429c/sdk/bpf/c/inc/solana_sdk.h#L304) -- [SBF Loader deprecated deserialization](https://github.com/solana-labs/solana/blob/8415c22b593f164020adc7afe782e8041d756ddf/sdk/bpf/c/inc/deserialize_deprecated.h#L25) - -Some programs may want to perform deserialization themselves, and they can by -providing their own implementation of the [raw entrypoint](#program-entrypoint). -Take note that the provided deserialization functions retain references back to -the serialized byte array for variables that the program is allowed to modify -(lamports, account data). The reason for this is that upon return the loader -will read those modifications so they may be committed. If a program implements -their own deserialization function they need to ensure that any modifications -the program wishes to commit must be written back into the input byte array. - -Details on how the loader serializes the program inputs can be found in the -[Input Parameter Serialization](https://solana.com/docs/programs/faq#input-parameter-serialization) -docs. - -## Data Types - -The loader's deserialization helper function populates the -[SolParameters](https://github.com/solana-labs/solana/blob/8415c22b593f164020adc7afe782e8041d756ddf/sdk/sbf/c/inc/solana_sdk.h#L276) -structure: - -```c -/** - * Structure that the program's entrypoint input data is deserialized into. - */ -typedef struct { - SolAccountInfo* ka; /** Pointer to an array of SolAccountInfo, must already - point to an array of SolAccountInfos */ - uint64_t ka_num; /** Number of SolAccountInfo entries in `ka` */ - const uint8_t *data; /** pointer to the instruction data */ - uint64_t data_len; /** Length in bytes of the instruction data */ - const SolPubkey *program_id; /** program_id of the currently executing program */ -} SolParameters; -``` - -'ka' is an ordered array of the accounts referenced by the instruction and -represented as a -[SolAccountInfo](https://github.com/solana-labs/solana/blob/8415c22b593f164020adc7afe782e8041d756ddf/sdk/sbf/c/inc/solana_sdk.h#L173) -structures. An account's place in the array signifies its meaning, for example, -when transferring lamports an instruction may define the first account as the -source and the second as the destination. - -The members of the `SolAccountInfo` structure are read-only except for -`lamports` and `data`. Both may be modified by the program in accordance with -the "runtime enforcement policy". When an instruction reference the same account -multiple times there may be duplicate `SolAccountInfo` entries in the array but -they both point back to the original input byte array. A program should handle -these cases delicately to avoid overlapping read/writes to the same buffer. If a -program implements their own deserialization function care should be taken to -handle duplicate accounts appropriately. - -`data` is the general purpose byte array from the -[instruction's instruction data](/docs/core/transactions.md#instruction) being -processed. - -`program_id` is the public key of the currently executing program. - -## Heap - -C programs can allocate memory via the system call -[`calloc`](https://github.com/solana-labs/solana/blob/c3d2d2134c93001566e1e56f691582f379b5ae55/sdk/sbf/c/inc/solana_sdk.h#L245) -or implement their own heap on top of the 32KB heap region starting at virtual -address x300000000. The heap region is also used by `calloc` so if a program -implements their own heap it should not also call `calloc`. - -## Logging - -The runtime provides two system calls that take data and log it to the program -logs. - -- [`sol_log(const char*)`](https://github.com/solana-labs/solana/blob/d2ee9db2143859fa5dc26b15ee6da9c25cc0429c/sdk/sbf/c/inc/solana_sdk.h#L128) -- [`sol_log_64(uint64_t, uint64_t, uint64_t, uint64_t, uint64_t)`](https://github.com/solana-labs/solana/blob/d2ee9db2143859fa5dc26b15ee6da9c25cc0429c/sdk/sbf/c/inc/solana_sdk.h#L134) - -The [debugging](/docs/programs/debugging.md#logging) section has more -information about working with program logs. - -## Compute Budget - -Use the system call `sol_remaining_compute_units()` to return a `u64` indicating -the number of compute units remaining for this transaction. - -Use the system call -[`sol_log_compute_units()`](https://github.com/solana-labs/solana/blob/d3a3a7548c857f26ec2cb10e270da72d373020ec/sdk/sbf/c/inc/solana_sdk.h#L140) -to log a message containing the remaining number of compute units the program -may consume before execution is halted - -See the [Compute Budget](/docs/core/fees.md#compute-budget) documentation for -more information. - -## ELF Dump - -The SBF shared object internals can be dumped to a text file to gain more -insight into a program's composition and what it may be doing at runtime. The -dump will contain both the ELF information as well as a list of all the symbols -and the instructions that implement them. Some of the SBF loader's error log -messages will reference specific instruction numbers where the error occurred. -These references can be looked up in the ELF dump to identify the offending -instruction and its context. - -To create a dump file: - -```shell -cd -make dump_ -``` - -## Examples - -The -[Solana Program Library github](https://github.com/solana-labs/solana-program-library/tree/master/examples/c) -repo contains a collection of C examples diff --git a/docs/programs/lang-rust.md b/docs/programs/lang-rust.md deleted file mode 100644 index 9a6a8cefa..000000000 --- a/docs/programs/lang-rust.md +++ /dev/null @@ -1,399 +0,0 @@ ---- -title: "Developing with Rust" ---- - -Solana supports writing onchain programs using the -[Rust](https://www.rust-lang.org/) programming language. - - - -To quickly get started with Solana development and build your first Rust -program, take a look at these detailed quick start guides: - -- [Build and deploy your first Solana program using only your browser](/content/guides/getstarted/hello-world-in-your-browser.md). - No installation needed. -- [Setup your local environment](/docs/intro/installation) and use the local - test validator. - - - -## Project Layout - -Solana Rust programs follow the typical -[Rust project layout](https://doc.rust-lang.org/cargo/guide/project-layout.html): - -```text -/inc/ -/src/ -/Cargo.toml -``` - -Solana Rust programs may depend directly on each other in order to gain access -to instruction helpers when making -[cross-program invocations](/docs/core/cpi.md). When doing so it's important to -not pull in the dependent program's entrypoint symbols because they may conflict -with the program's own. To avoid this, programs should define an `no-entrypoint` -feature in `Cargo.toml` and use to exclude the entrypoint. - -- [Define the feature](https://github.com/solana-labs/solana-program-library/blob/fca9836a2c8e18fc7e3595287484e9acd60a8f64/token/program/Cargo.toml#L12) -- [Exclude the entrypoint](https://github.com/solana-labs/solana-program-library/blob/fca9836a2c8e18fc7e3595287484e9acd60a8f64/token/program/src/lib.rs#L12) - -Then when other programs include this program as a dependency, they should do so -using the `no-entrypoint` feature. - -- [Include without entrypoint](https://github.com/solana-labs/solana-program-library/blob/fca9836a2c8e18fc7e3595287484e9acd60a8f64/token-swap/program/Cargo.toml#L22) - -## Project Dependencies - -At a minimum, Solana Rust programs must pull in the -[`solana-program`](https://crates.io/crates/solana-program) crate. - -Solana SBF programs have some [restrictions](#restrictions) that may prevent the -inclusion of some crates as dependencies or require special handling. - -For example: - -- Crates that require the architecture be a subset of the ones supported by the - official toolchain. There is no workaround for this unless that crate is - forked and SBF added to that those architecture checks. -- Crates may depend on `rand` which is not supported in Solana's deterministic - program environment. To include a `rand` dependent crate refer to - [Depending on Rand](#depending-on-rand). -- Crates may overflow the stack even if the stack overflowing code isn't - included in the program itself. For more information refer to - [Stack](/docs/programs/faq.md#stack). - -## How to Build - -First setup the environment: - -- Install the latest Rust stable from https://rustup.rs/ -- Install the latest [Solana command-line tools](/docs/intro/installation.md) - -The normal cargo build is available for building programs against your host -machine which can be used for unit testing: - -```shell -cargo build -``` - -To build a specific program, such as SPL Token, for the Solana SBF target which -can be deployed to the cluster: - -```shell -cd -cargo build-bpf -``` - -## How to Test - -Solana programs can be unit tested via the traditional `cargo test` mechanism by -exercising program functions directly. - -To help facilitate testing in an environment that more closely matches a live -cluster, developers can use the -[`program-test`](https://crates.io/crates/solana-program-test) crate. The -`program-test` crate starts up a local instance of the runtime and allows tests -to send multiple transactions while keeping state for the duration of the test. - -For more information the -[test in sysvar example](https://github.com/solana-labs/solana-program-library/blob/master/examples/rust/sysvar/tests/functional.rs) -shows how an instruction containing sysvar account is sent and processed by the -program. - -## Program Entrypoint - -Programs export a known entrypoint symbol which the Solana runtime looks up and -calls when invoking a program. Solana supports multiple versions of the BPF -loader and the entrypoints may vary between them. Programs must be written for -and deployed to the same loader. For more details see the -[FAQ section on Loaders](/docs/programs/faq.md#loaders). - -Currently there are two supported loaders -[BPF Loader](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/bpf_loader.rs#L17) -and -[BPF loader deprecated](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/bpf_loader_deprecated.rs#L14) - -They both have the same raw entrypoint definition, the following is the raw -symbol that the runtime looks up and calls: - -```rust -#[no_mangle] -pub unsafe extern "C" fn entrypoint(input: *mut u8) -> u64; -``` - -This entrypoint takes a generic byte array which contains the serialized program -parameters (program id, accounts, instruction data, etc...). To deserialize the -parameters each loader contains its own wrapper macro that exports the raw -entrypoint, deserializes the parameters, calls a user defined instruction -processing function, and returns the results. - -You can find the entrypoint macros here: - -- [BPF Loader's entrypoint macro](https://github.com/solana-labs/solana/blob/9b1199cdb1b391b00d510ed7fc4866bdf6ee4eb3/sdk/program/src/entrypoint.rs#L42) -- [BPF Loader deprecated's entrypoint macro](https://github.com/solana-labs/solana/blob/9b1199cdb1b391b00d510ed7fc4866bdf6ee4eb3/sdk/program/src/entrypoint_deprecated.rs#L38) - -The program defined instruction processing function that the entrypoint macros -call must be of this form: - -```rust -pub type ProcessInstruction = - fn(program_id: &Pubkey, accounts: &[AccountInfo], instruction_data: &[u8]) -> ProgramResult; -``` - -### Parameter Deserialization - -Each loader provides a helper function that deserializes the program's input -parameters into Rust types. The entrypoint macros automatically calls the -deserialization helper: - -- [BPF Loader deserialization](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/entrypoint.rs#L146) -- [BPF Loader deprecated deserialization](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/entrypoint_deprecated.rs#L57) - -Some programs may want to perform deserialization themselves and they can by -providing their own implementation of the [raw entrypoint](#program-entrypoint). -Take note that the provided deserialization functions retain references back to -the serialized byte array for variables that the program is allowed to modify -(lamports, account data). The reason for this is that upon return the loader -will read those modifications so they may be committed. If a program implements -their own deserialization function they need to ensure that any modifications -the program wishes to commit be written back into the input byte array. - -Details on how the loader serializes the program inputs can be found in the -[Input Parameter Serialization](/docs/programs/faq.md#input-parameter-serialization) -docs. - -### Data Types - -The loader's entrypoint macros call the program defined instruction processor -function with the following parameters: - -```rust -program_id: &Pubkey, -accounts: &[AccountInfo], -instruction_data: &[u8] -``` - -The program id is the public key of the currently executing program. - -The accounts is an ordered slice of the accounts referenced by the instruction -and represented as an -[AccountInfo](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/account_info.rs#L12) -structures. An account's place in the array signifies its meaning, for example, -when transferring lamports an instruction may define the first account as the -source and the second as the destination. - -The members of the `AccountInfo` structure are read-only except for `lamports` -and `data`. Both may be modified by the program in accordance with the "runtime -enforcement policy". Both of these members are protected by the Rust `RefCell` -construct, so they must be borrowed to read or write to them. The reason for -this is they both point back to the original input byte array, but there may be -multiple entries in the accounts slice that point to the same account. Using -`RefCell` ensures that the program does not accidentally perform overlapping -read/writes to the same underlying data via multiple `AccountInfo` structures. -If a program implements their own deserialization function care should be taken -to handle duplicate accounts appropriately. - -The instruction data is the general purpose byte array from the -[instruction's instruction data](/docs/core/transactions.md#instruction) being -processed. - -## Heap - -Rust programs implement the heap directly by defining a custom -[`global_allocator`](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/entrypoint.rs#L72) - -Programs may implement their own `global_allocator` based on its specific needs. -Refer to the [custom heap example](#examples) for more information. - -## Restrictions - -On-chain Rust programs support most of Rust's libstd, libcore, and liballoc, as -well as many 3rd party crates. - -There are some limitations since these programs run in a resource-constrained, -single-threaded environment, as well as being deterministic: - -- No access to - - `rand` - - `std::fs` - - `std::net` - - `std::future` - - `std::process` - - `std::sync` - - `std::task` - - `std::thread` - - `std::time` -- Limited access to: - - `std::hash` - - `std::os` -- Bincode is extremely computationally expensive in both cycles and call depth - and should be avoided -- String formatting should be avoided since it is also computationally - expensive. -- No support for `println!`, `print!`, the Solana [logging helpers](#logging) - should be used instead. -- The runtime enforces a limit on the number of instructions a program can - execute during the processing of one instruction. See - [computation budget](/docs/core/fees.md#compute-budget) for more information. - -## Depending on Rand - -Programs are constrained to run deterministically, so random numbers are not -available. Sometimes a program may depend on a crate that depends itself on -`rand` even if the program does not use any of the random number functionality. -If a program depends on `rand`, the compilation will fail because there is no -`get-random` support for Solana. The error will typically look like this: - -```shell -error: target is not supported, for more information see: https://docs.rs/getrandom/#unsupported-targets - --> /Users/jack/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.1.14/src/lib.rs:257:9 - | -257 | / compile_error!("\ -258 | | target is not supported, for more information see: \ -259 | | https://docs.rs/getrandom/#unsupported-targets\ -260 | | "); - | |___________^ -``` - -To work around this dependency issue, add the following dependency to the -program's `Cargo.toml`: - -```rust -getrandom = { version = "0.1.14", features = ["dummy"] } -``` - -or if the dependency is on getrandom v0.2 add: - -```rust -getrandom = { version = "0.2.2", features = ["custom"] } -``` - -## Logging - -Rust's `println!` macro is computationally expensive and not supported. Instead -the helper macro -[`msg!`](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/log.rs#L33) -is provided. - -`msg!` has two forms: - -```rust -msg!("A string"); -``` - -or - -```rust -msg!(0_64, 1_64, 2_64, 3_64, 4_64); -``` - -Both forms output the results to the program logs. If a program so wishes they -can emulate `println!` by using `format!`: - -```rust -msg!("Some variable: {:?}", variable); -``` - -The [debugging](/docs/programs/debugging.md#logging) section has more -information about working with program logs the [Rust examples](#examples) -contains a logging example. - -## Panicking - -Rust's `panic!`, `assert!`, and internal panic results are printed to the -[program logs](/docs/programs/debugging.md#logging) by default. - -```shell -INFO solana_runtime::message_processor] Finalized account CGLhHSuWsp1gT4B7MY2KACqp9RUwQRhcUFfVSuxpSajZ -INFO solana_runtime::message_processor] Call SBF program CGLhHSuWsp1gT4B7MY2KACqp9RUwQRhcUFfVSuxpSajZ -INFO solana_runtime::message_processor] Program log: Panicked at: 'assertion failed: `(left == right)` - left: `1`, - right: `2`', rust/panic/src/lib.rs:22:5 -INFO solana_runtime::message_processor] SBF program consumed 5453 of 200000 units -INFO solana_runtime::message_processor] SBF program CGLhHSuWsp1gT4B7MY2KACqp9RUwQRhcUFfVSuxpSajZ failed: BPF program panicked -``` - -### Custom Panic Handler - -Programs can override the default panic handler by providing their own -implementation. - -First define the `custom-panic` feature in the program's `Cargo.toml` - -```rust -[features] -default = ["custom-panic"] -custom-panic = [] -``` - -Then provide a custom implementation of the panic handler: - -```rust -#[cfg(all(feature = "custom-panic", target_os = "solana"))] -#[no_mangle] -fn custom_panic(info: &core::panic::PanicInfo<'_>) { - solana_program::msg!("program custom panic enabled"); - solana_program::msg!("{}", info); -} -``` - -In the above snippit, the default implementation is shown, but developers may -replace that with something that better suits their needs. - -One of the side effects of supporting full panic messages by default is that -programs incur the cost of pulling in more of Rust's `libstd` implementation -into program's shared object. Typical programs will already be pulling in a fair -amount of `libstd` and may not notice much of an increase in the shared object -size. But programs that explicitly attempt to be very small by avoiding `libstd` -may take a significant impact (~25kb). To eliminate that impact, programs can -provide their own custom panic handler with an empty implementation. - -```rust -#[cfg(all(feature = "custom-panic", target_os = "solana"))] -#[no_mangle] -fn custom_panic(info: &core::panic::PanicInfo<'_>) { - // Do nothing to save space -} -``` - -## Compute Budget - -Use the system call `sol_remaining_compute_units()` to return a `u64` indicating -the number of compute units remaining for this transaction. - -Use the system call -[`sol_log_compute_units()`](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/log.rs#L141) -to log a message containing the remaining number of compute units the program -may consume before execution is halted - -See the [Compute Budget](/docs/core/fees.md#compute-budget) documentation for -more information. - -## ELF Dump - -The SBF shared object internals can be dumped to a text file to gain more -insight into a program's composition and what it may be doing at runtime. The -dump will contain both the ELF information as well as a list of all the symbols -and the instructions that implement them. Some of the BPF loader's error log -messages will reference specific instruction numbers where the error occurred. -These references can be looked up in the ELF dump to identify the offending -instruction and its context. - -To create a dump file: - -```shell -cd -cargo build-bpf --dump -``` - -## Examples - -The -[Solana Program Library GitHub](https://github.com/solana-labs/solana-program-library/tree/master/examples/rust) -repo contains a collection of Rust examples. - -The -[Solana Developers Program Examples GitHub](https://github.com/solana-developers/program-examples) -repo also contains a collection of beginner to intermediate Rust program -examples. diff --git a/docs/programs/limitations.md b/docs/programs/limitations.md deleted file mode 100644 index 1a4469669..000000000 --- a/docs/programs/limitations.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: "Limitations" ---- - -Developing programs on the Solana blockchain have some inherent limitation -associated with them. Below is a list of common limitation that you may run -into. - -## Rust libraries - -Since Rust based onchain programs must run be deterministic while running in a -resource-constrained, single-threaded environment, they have some limitations on -various libraries. - -See -[Developing with Rust - Restrictions](/docs/programs/lang-rust.md#restrictions) -for a detailed breakdown these restrictions and limitations. - -## Compute budget - -To prevent abuse of the blockchain's computational resources, each transaction -is allocated a [compute budget](/docs/terminology.md#compute-budget). Exceeding -this compute budget will result in the transaction failing. - -See the [computational constraints](/docs/core/fees.md#compute-budget) -documentation for more specific details. - -## Call stack depth - `CallDepthExceeded` error - -Solana programs are constrained to run quickly, and to facilitate this, the -program's call stack is limited to a max depth of **64 frames**. - -When a program exceeds the allowed call stack depth limit, it will receive the -`CallDepthExceeded` error. - -## CPI call depth - `CallDepth` error - -Cross-program invocations allow programs to invoke other programs directly, but -the depth is constrained currently to `4`. - -When a program exceeds the allowed -[cross-program invocation call depth](/docs/core/cpi.md), it will receive a -`CallDepth` error - -## Float Rust types support - -Programs support a limited subset of Rust's float operations. If a program -attempts to use a float operation that is not supported, the runtime will report -an unresolved symbol error. - -Float operations are performed via software libraries, specifically LLVM's float -built-ins. Due to the software emulated, they consume more compute units than -integer operations. In general, fixed point operations are recommended where -possible. - -The -[Solana Program Library math](https://github.com/solana-labs/solana-program-library/tree/master/libraries/math) -tests will report the performance of some math operations. To run the test, sync -the repo and run: - -```shell -cargo test-sbf -- --nocapture --test-threads=1 -``` - -Recent results show the float operations take more instructions compared to -integers equivalents. Fixed point implementations may vary but will also be less -than the float equivalents: - -```text - u64 f32 -Multiply 8 176 -Divide 9 219 -``` - -## Static writable data - -Program shared objects do not support writable shared data. Programs are shared -between multiple parallel executions using the same shared read-only code and -data. This means that developers should not include any static writable or -global variables in programs. In the future a copy-on-write mechanism could be -added to support writable data. - -## Signed division - -The SBF instruction set does not support -[signed division](https://www.kernel.org/doc/html/latest/bpf/bpf_design_QA.Html#q-why-there-is-no-bpf-sdiv-for-signed-divide-operation). -Adding a signed division instruction is a consideration. diff --git a/docs/programs/overview.md b/docs/programs/overview.md deleted file mode 100644 index 3e937a2c1..000000000 --- a/docs/programs/overview.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -title: Overview of Developing On-chain Programs -sidebarLabel: Overview -sidebarSortOrder: 0 -altRoutes: - - /docs/programs ---- - -Developers can write and deploy their own programs to the Solana blockchain. -This process can be broadly summarized into a few key steps. - - - -To quickly get started with Solana development and build your first Rust -program, take a look at these detailed quick start guides: - -- [Build and deploy your first Solana program using only your browser](/content/guides/getstarted/hello-world-in-your-browser.md). - No installation needed. -- [Setup your local environment](/docs/intro/installation) and use the local - test validator. - - - -## On-chain program development lifecycle - -1. Setup your development environment -2. Write your program -3. Compile the program -4. Generate the program's public address -5. Deploy the program - -### 1. Setup your development environment - -The most robust way of getting started with Solana development, is -[installing the Solana CLI](/docs/intro/installation.md) tools on your local -computer. This will allow you to have the most powerful development environment. - -Some developers may also opt for using -[Solana Playground](https://beta.solpg.io/), a browser based IDE. It will let -you write, build, and deploy onchain programs. All from your browser. No -installation needed. - -### 2. Write your program - -Writing Solana programs is most commonly done so using the Rust language. These -Rust programs are effectively the same as creating a traditional -[Rust library](https://doc.rust-lang.org/rust-by-example/crates/lib.html). - -> You can read more about other [supported languages](#support-languages) below. - -### 3. Compile the program - -Once the program is written, it must be complied down to -[Berkley Packet Filter](/docs/programs/faq.md#berkeley-packet-filter-bpf) -byte-code that will then be deployed to the blockchain. - -### 4. Generate the program's public address - -Using the [Solana CLI](/docs/intro/installation.md), the developer will generate -a new unique [Keypair](/docs/terminology.md#keypair) for the new program. The -public address (aka [Pubkey](/docs/terminology.md#public-key-pubkey)) from this -Keypair will be used on-chain as the program's public address (aka -[`programId`](/docs/terminology.md#program-id)). - -### 5. Deploying the program - -Then again using the CLI, the compiled program can be deployed to the selected -blockchain cluster by creating many transactions containing the program's -byte-code. Due to the transaction memory size limitations, each transaction -effectively sends small chunks of the program to the blockchain in a rapid-fire -manner. - -Once the entire program has been sent to the blockchain, a final transaction is -sent to write all of the buffered byte-code to the program's data account. This -either mark the new program as `executable`, or complete the process to upgrade -an existing program (if it already existed). - -## Support languages - -Solana programs are typically written in the -[Rust language](/docs/programs/lang-rust.md), but -[C/C++](/docs/programs/lang-c.md) are also supported. - -There are also various community driven efforts to enable writing on-chain -programs using other languages, including: - -- Python via [Seahorse](https://seahorse.dev/) (that acts as a wrapper the Rust - based Anchor framework) - -## Example programs - -You can also explore the [Program Examples](/docs/programs/examples.md) for -examples of onchain programs. - -## Limitations - -As you dive deeper into program development, it is important to understand some -of the important limitations associated with onchain programs. - -Read more details on the [Limitations](/docs/programs/limitations.md) page - -## Frequently asked questions - -Discover many of the [frequently asked questions](/docs/programs/faq.md) other -developers have about writing/understanding Solana programs. diff --git a/docs/programs/testing.md b/docs/programs/testing.md index 32d3bcdc3..2af73ebe5 100644 --- a/docs/programs/testing.md +++ b/docs/programs/testing.md @@ -1,6 +1,7 @@ --- title: "Testing with NodeJS" description: "Testing native solana programs written with rust using NodeJS" +sidebarSortOrder: 5 --- When developing programs on Solana, ensuring their correctness and reliability @@ -232,16 +233,3 @@ This is how the output looks like after running the tests for ℹ todo 0 ℹ duration_ms 63.52616 ``` - -## Next Steps - -- Checkout more testing examples from the - [Program Examples](/docs/programs/examples.md) -- You can also - use [anchor-bankrun](https://kevinheavey.github.io/solana-bankrun/tutorial/#anchor-integration) to - write tests in NodeJS for Anchor programs -- [Writing and testing your Solana programs using Rust](https://solana.com/docs/programs/lang-rust#how-to-test) - is possible with - [solana_program_test](https://docs.rs/solana-program-test/1.18.14/solana_program_test/) -- You can also write test with python for Solana programs written in Rust with - [solders.bankrun](https://kevinheavey.github.io/solders/api_reference/bankrun.html) diff --git a/docs/terminology.md b/docs/terminology.md index 2ce27df49..5f94c07bd 100644 --- a/docs/terminology.md +++ b/docs/terminology.md @@ -82,7 +82,7 @@ a block chain. ## BPF loader The Solana program that owns and loads -[BPF](/docs/programs/faq.md#berkeley-packet-filter-bpf) +[BPF](/docs/core/programs#berkeley-packet-filter-bpf) [onchain programs](#onchain-program), allowing the program to interface with the runtime. diff --git a/package.json b/package.json index f09b9b1f3..0e8656f1a 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "crowdin:download": "crowdin download && npm run prettier:i18n", "crowdin:upload": "crowdin upload sources", "browser-sync": "browser-sync start --proxy \"localhost:3000\" --files \"**/*.md\"", - "dev:sync": "yarn dev & (sleep 3 && yarn browser-sync)" + "dev:sync": "yarn dev & (sleep 5 && yarn browser-sync)" }, "dependencies": { "@crowdin/cli": "^3.18.0", From 8706897262678925710c4cd230fbeb3bd25b3516 Mon Sep 17 00:00:00 2001 From: Akojede Olorundara Date: Fri, 4 Oct 2024 05:03:58 +0100 Subject: [PATCH 094/206] Updated Intro to solana mobile (#478) * chore: updated lesson summary * improved lesson overview * improved intro to solana mobile * updated use cases * grammar restructure * updating in compliance to contribution guideline * updating in compliance to contribution guide * more descriptive variable names, handled errors, avoided repitition * fixed title * updated conclusion and included useful links * improved setup section, removed unnecesary pragraphs * minor update to ConnectionProvider function * improved some functions in .tsx files, added comments where necessary * improved basic-solana-mobile-connect.png * improved basic-solana-mobile-flow.png * improved basic-solana-mobile-transact.png * fixed content styling * replaced cryprocurrency with blockchain transactions * cryptocurrency to blockchain transactions * cleanup * improved intro to beginner-friendly standard * improved clarity * more restructuring, building a more readable flow, especially for rust beginners * minor fixes, resolved conflict * prettier:fix * prettier:fix * prettier:fix * Update content/courses/mobile/intro-to-solana-mobile.md removed redundant comment Co-authored-by: Mike MacCana * Update content/courses/mobile/intro-to-solana-mobile.md grammatical fix Co-authored-by: Mike MacCana * Update content/courses/mobile/intro-to-solana-mobile.md changed "units" to "lessons" for uniformity Co-authored-by: Mike MacCana * Update content/courses/mobile/intro-to-solana-mobile.md improved structure for easier readability Co-authored-by: Mike MacCana * Update content/courses/mobile/intro-to-solana-mobile.md removed quoted and improved tone Co-authored-by: Mike MacCana * Update content/courses/mobile/intro-to-solana-mobile.md changed grammar structure to improve clarity Co-authored-by: Mike MacCana * requested changes: removed redundant sections, typo fixes, improved clarity, used further contribution guidelines * removed backticks in titles, resolved merge conflicts * fixed broken links * revert changes in rust-acro.md * prettier fix * revert image changes * changed Solana community forum link from discord to stack exchange * added official link to install node * fix formatting * Delete content/courses/program-optimization/developer-content.code-workspace * fix links --------- Co-authored-by: Akojede Olorundara Co-authored-by: Mike MacCana --- .../courses/mobile/intro-to-solana-mobile.md | 929 +++++++++--------- 1 file changed, 461 insertions(+), 468 deletions(-) diff --git a/content/courses/mobile/intro-to-solana-mobile.md b/content/courses/mobile/intro-to-solana-mobile.md index cf6a9002b..68a5791ca 100644 --- a/content/courses/mobile/intro-to-solana-mobile.md +++ b/content/courses/mobile/intro-to-solana-mobile.md @@ -1,50 +1,65 @@ --- title: Introduction to Solana Mobile objectives: - - Explain the benefits of creating mobile-first dApp experiences + - Explain the benefits of creating mobile-first App experiences - Explain the high-level Mobile Wallet Adapter (MWA) flow - Explain the high-level differences between React and React Native - - Create a simple Android Solana dApp using React Native + - Create a simple Android Solana App using React Native description: "Learn how to build native mobile apps using blockchain functionality" --- ## Summary -- The Solana Mobile Wallet Adapter (MWA) creates a web socket connection between - mobile apps and mobile wallets, allowing native mobile apps to submit - transactions for signing -- The simplest way to get started creating Solana mobile applications is with - Solana Mobile's - [React Native packages](https://docs.solanamobile.com/react-native/setup) +- The **Solana Mobile Wallet Adapter** (**MWA**) allows mobile apps to submit + transactions for signing via a WebSocket connection to mobile wallets. +- The easiest way to start building Solana mobile applications is by using + Solana Mobile’s + [React Native packages](https://docs.solanamobile.com/react-native/setup) - `@solana-mobile/mobile-wallet-adapter-protocol` and `@solana-mobile/mobile-wallet-adapter-protocol-web3js` -- React Native is very similar to React with a few mobile quirks -## Lesson +## Lesson Overview -Solana Mobile Stack (SMS) is designed to help developers create mobile dApps -with a seamless UX. It consists of the -[Mobile Wallet Adapter (MWA)](https://docs.solanamobile.com/getting-started/overview#mobile-wallet-adapter), +In these lessons, we will develop mobile apps that interact with the Solana +network, this opens up a whole new paradigm of blockchain use cases and +behaviors. The **Solana Mobile Stack** (**SMS**) is designed to help developers +seamlessly create mobile apps. It includes the +[Mobile Wallet Adapter (MWA)](https://docs.solanamobile.com/getting-started/overview#mobile-wallet-adapter) +, a Solana Mobile SDK that uses React Native, [Seed Vault](https://docs.solanamobile.com/getting-started/overview#seed-vault), and the -[Solana dApp Store](https://docs.solanamobile.com/getting-started/overview#solana-dapp-store). - -Most relevant to your development journey is the Mobile Wallet Adapter (MWA). -The simplest way to get started is to use the Mobile Wallet Adapter with React -Native to create a simple Android app. This lesson assumes you're familiar with -React and Solana programming. If that's not the case, -[start our course from the beginning](/content/courses/intro-to-solana/intro-to-cryptography) -and come back here when you feel ready! - -### Intro To Solana Mobile - -In these units, we'll develop mobile apps that interact with the Solana network. -This opens up a whole new paradigm of crypto use cases and behaviors. +[Solana app Store](https://docs.solanamobile.com/getting-started/overview#solana-app-store). +These resources simplify mobile development with a similar experience but with +mobile-specific features. + +This lesson focuses on using React Native to create a simple Android app that +integrates with the Solana network. If you're not familiar with programming in +React or Solana, we recommend starting with our +[Intro to Solana lesson](https://github.com/solana-foundation/developer-content/tree/main/content/courses/intro-to-solana) +and returning when you're ready. If you are, let's dive in! + +## Intro to Solana Mobile + +Native mobile wallets hold your private keys and use them to sign and send +transactions just like web extension wallets. However native mobile wallets use +the +[Mobile Wallet Adapter](https://github.com/solana-mobile/mobile-wallet-adapter) +(MWA) standard instead of the +[Wallet Adapter](https://github.com/anza-xyz/wallet-adapter) to ensure any apps +can work with any wallet. + +We will dig into the specifics of the MWA in a +[later lesson](/content/courses/mobile/mwa-deep-dive), but it effectively opens +a WebSocket between applications to facilitate communication. That way a +separate app can provide the wallet app with the transaction to be signed and +sent, and the wallet app can respond with appropriate status updates. -#### Solana Mobile Use Cases +### Mobile Use Cases with Solana -Here are a few examples of what Solana mobile development can unlock: +Before development, it is important to understand the current landscape of Web3 +mobile development to foresee potential blockers and opportunities. Here are a +few examples of what Solana mobile development can unlock: **Mobile Banking and Trading (DeFi)** @@ -66,55 +81,22 @@ SMS can enable a new wave of mobile e-commerce shoppers to pay directly from their favorite Solana wallet. Imagine a world where you can use your Solana wallet as seamlessly as you can use Apple Pay. -To summarize, mobile crypto opens up many doors. Let's dive in and learn how we -can be part of it: - -#### How Solana development differs between native mobile apps and web +In summary, mobile blockchain transactions can open many opportunities. Let's +start building! -Solana wallet interaction differs slightly on mobile compared to the web. The -core wallet functionality is the same: the wallet holds your private keys and -uses them to sign and send transactions. To avoid having different interfaces -between wallets, developers abstracted that functionality into the Solana Wallet -Adapter standard. This remains the standard on the web. The mobile counterpart -is the Mobile Wallet Adapter (MWA). +### Supported Operating Systems -The differences between the two standards are due to the different construction -of web vs mobile wallets. Web wallets are just browser extensions that inject -wallet adapter functions into the `window` object of your webpage. This gives -your site access to them. Mobile wallets, however, are native applications on a -mobile operating system. There's no way to surface functions from one native -application to another. The Mobile Wallet Adapter exists to enable any app, -written in any language, to connect to a native wallet app. +Currently, the MWA only supports Android. On Android, a WebSocket connection can +persist between apps, even when the wallet app is in the background. -We'll dig into the specifics of the Mobile Wallet Adapter in a -[later lesson](/content/courses/mobile/mwa-deep-dive), but it effectively opens -a WebSocket between applications to facilitate communication. That way a -separate app can provide the wallet app with the transaction to be signed and -sent, and the wallet app can respond with appropriate status updates. - -#### Supported Operating Systems - -At the time of writing, Android is the only mobile OS supported by the Mobile -Wallet Adapter. - -On Android, a WebSocket connection can persist between apps, even when the -wallet app is in the background. - -On iOS, the lifetime of a connection between apps is purposefully limited by the -operating system. Specifically, iOS will quickly suspend connections when an app -is pushed to the background. This kills the MWA WebSocket connection. This is an -inherent design difference between iOS and Android (probably made to preserve -battery, network usage, etc). - -However, this doesn't mean that Solana dApps can't run on iOS at all. You can -still create a Mobile Web App using the -[standard wallet adapter](https://github.com/solana-labs/wallet-adapter) -library. Your users can then install a mobile-friendly wallet like -the [Glow Wallet](https://glow.app/). +On iOS, the OS quickly suspends websocket connections when an app is +backgrounded, so the standard +[Wallet Adapter](https://github.com/solana-labs/wallet-adapter) library is used +instead. The remainder of this lesson will focus on developing Android apps with the MWA. -#### Supported Frameworks +### Supported Frameworks Solana Mobile supports a number of different frameworks. Officially supported are React Native and native Android, with community SDKs for Flutter, Unity, and @@ -132,297 +114,315 @@ Unreal Engine. - [Unity](https://docs.solanamobile.com/unity/unity_sdk) - [Unreal Engine](https://docs.solanamobile.com/unreal/unreal_sdk) -To keep the development experience as close as possible to other lessons, we'll -be working exclusively with React Native. - -### From React to React Native - -React Native takes the React web framework and applies it to mobile -applications. However, while React and React Native feel very similar, there are -differences. The best way to understand these differences is to experience them -while coding. But, to give you a head start here is a list of some differences -to keep in mind: - -- React Native compiles down to native iOS and Android applications while React - compiles down to a collection of web pages. -- In React, you use JSX to program with HTML and CSS. With React Native, you use - similar syntax to manipulate native UI components. It's more like using a UI - library like Chakra or Tailwind UI. Instead of `
    `, `

    `, and `` - you'll be using ``, ``, and ``. -- Interactions are different. Instead of `onClick`, you'll use `onPress` and - other gestures. -- Many standard React and Node packages may not be compatible with React Native. - Fortunately, there are React Native counterparts to the most popular libraries - and you can often use polyfills to make Node packages available. If you're not - familiar with polyfills, take a look at the - [MDN docs](https://developer.mozilla.org/en-US/docs/Glossary/Polyfill). In - short, polyfills actively replace Node-native libraries to make them work - anywhere Node is not running. -- Setting up a development environment in React Native can be challenging. This - will require setting up Android Studio to compile to Android and XCode for - iOS. React Native has a - [really good guide](https://reactnative.dev/docs/environment-setup?guide=native) - for this. -- For regular development and testing, you'll use a physical mobile device or an - emulator to run your code. This relies on a tool called Metro that comes - pre-installed. React Native's setup guide also covers this. -- React Native gives you access to the phone's hardware that React can't - provide. This includes things like the phone's camera, accelerometer, and - more. -- React Native introduces new config files and build folders. For example, the - `ios` and `android` directories contain platform-specific information. - Additionally, there are config files like `Gemfile` and `metro.config.js`. - Generally, leave all configurations alone and just worry about writing your - code, the starting point for which will be in `App.tsx`. - -There is a learning curve, but if you know React you're not nearly as far from -being able to develop mobile apps as you think! It may feel jarring to start, -but after a few hours of React Native development, you'll start to feel much -more comfortable. You'll likely feel much more confident even after -[this lesson's lab](#lab). - -### Creating a Solana dApp with React Native - -Solana React Native dApps are virtually identical to React dApps. The primary +To keep the development experience as close as possible to other lessons, we +will be working exclusively with React Native. + +## From React to React Native + +React Native is very similar to React but designed for mobile. Here are some key +points to note: + +- React Native compiles down to native Android and iOS apps while React compiles + down to a collection of web pages. +- Instead of using web elements like `

    `, you will use mobile-native + elements like ``. +- React Native allows access to mobile hardware, such as the camera and + accelerometer, which React web apps cannot access. +- Many standard React and Node packages may not be compatible with React Native + and setting up React Native can be challenging. Fortunately, the + [React Native Docs](https://reactnative.dev/docs/environment-setup?guide=native) + contains everything you may need. +- For development, you will need to set up + [Android Studio](https://developer.android.com/studio/intro/) for Android apps + and an emulator or physical device for testing. + + +**NOTE:** There is a learning curve, but if you know React you're not nearly as far from being able to develop mobile apps as you think! It may feel jarring to start, but after a few hours of React Native development, you will start to feel much more comfortable. We have included a [Lab](#lab) section below to help you. + + +## Creating a React Native App on Solana + +Solana React Native apps are virtually identical to React apps. The primary difference is in the wallet interaction. Instead of the wallet being available -in the browser, your dApp will create an MWA session with the wallet app of your +in the browser, your app will create an MWA session with the wallet app of your choosing using a WebSocket. Fortunately, this is abstracted for you in the MWA -library. The only difference you'll need to know is anytime you need to make a -call to the wallet you'll be using the `transact` function, which we'll talk -about soon. +library. The only difference is that anytime you need to make a call to the +wallet, the `transact` function will be used, more details on this function in +later parts of this lesson. -![dApp Flow](/public/assets/courses/unboxed/basic-solana-mobile-flow.png) +![App Flow](/public/assets/courses/unboxed/basic-solana-mobile-flow.png) -#### Reading data +## Reading Data -Reading data from a Solana cluster in React Native is the exact same as in -React. You use the `useConnection` hook to grab the `Connection` object. Using -that, you can get account info. Since reading is free, we don't need to actually -connect to the wallet. +Reading data from a Solana cluster in React Native works the same way as in +React. You can use the `useConnection` hook to access the `connection` object, +which is responsible for interacting with the Solana network. -```tsx -const account = await connection.getAccountInfo(account); +In Solana, an account refers to any object stored on-chain, and is typically +referenced by a +[public key](https://solana.com/docs/terminology#public-key-pubkey). + +Here’s an example of how you can read an account information using the +`getAccountInfo` method: + +```javascript +const { connection } = useConnection(); +const publicKey = new PublicKey("your-wallet-public-key-here"); // Replace with a valid public key +const account = await connection.getAccountInfo(publicKey); ``` -If you need a refresher on this, check out our -[lesson on reading data from the blockchain](/content/courses/intro-to-solana/intro-to-reading-data). +> **NOTE:** If you need a refresher, refer to our +> [Intro to Reading Data lesson](/content/courses/intro-to-solana/intro-to-reading-data). -#### Connecting to a wallet +## Connecting to a Wallet -Writing data to the blockchain has to happen through a transaction. Transactions -have to be signed by one or more private keys and sent to an RPC provider. This -virtually always happens through a wallet application. +When writing data to the blockchain, it must be done through a **transaction**. +Transactions need to be signed by one or more secret keys (previously referred +to as private keys) and sent to an +[RPC provider](https://academy.subquery.network/subquery_network/node_operators/rpc_providers/introduction.html) +for processing. In almost all cases, this interaction is facilitated through a +wallet application. -Typical wallet interaction happens by calling out to a browser extension. On -mobile, you use a WebSocket to start an MWA session. Specifically, you use -Android intents where the dApp broadcasts its intent with the `solana-wallet://` -scheme. +### Web vs. Mobile Wallet Interactions +The websocket that connects the app and the wallet is managed using the MWA, and +initiated using **Android intents**, with the dApp broadcasting its intent using +the `solana-wallet://` scheme. ![Connecting](/public/assets/courses/unboxed/basic-solana-mobile-connect.png) -When the wallet app receives this intent, it opens a connection with the dApp -that initiated the session. Your dApp sends this intent using the `transact` -function: +When the wallet app receives the intent broadcast, it opens a WebSocket +connection with the app that initiated the session. The app initiates this +connection using the `transact` function, as shown below: ```tsx transact(async (wallet: Web3MobileWallet) => { - // Wallet Action code here -} + // Your wallet action code goes here +}); ``` -This will give you access to the `Web3MobileWallet` object. You can then use -this to send transactions to the wallet. Again, when you want to access the -wallet, it has to be through the function `transact` function's callback. +This function provides access to the `Web3MobileWallet` object, allowing you to +perform actions such as signing transactions or interacting with wallet data. +Remember, all wallet interactions must occur inside the callback of the +`transact` function. -#### Signing and sending transactions +### Signing and sending transactions -Sending a transaction happens inside the `transact` callback. The flow is as -follows: +The overall flow for signing and sending a transaction is as follows: -1. Establish a session with a wallet using `transact` which will have a callback - of `async (wallet: Web3MobileWallet) => {...}`. -2. Inside the callback, request authorization with the `wallet.authorize` or - `wallet.reauthorize` method depending on the state of the wallet. -3. Sign the transaction with `wallet.signTransactions` or sign and send with - `wallet.signAndSendTransactions`. +- Use the `transact` function to establish a session with the wallet. This + function takes an asynchronous callback: + `async (wallet: Web3MobileWallet) => {...}`. +- Inside the callback, request wallet authorization using `wallet.authorize()` + or `wallet.reauthorize()`, depending on the wallet's state (whether it has an + active session or requires reauthorization). +- Once the wallet is authorized, you can either: + - Sign the transaction using `wallet.signTransactions()`, or + - Sign and send the transaction directly using + `wallet.signAndSendTransactions()`. ![Transacting](/public/assets/courses/unboxed/basic-solana-mobile-transact.png) +To manage the wallet's authorization state, consider creating a +`useAuthorization()` hook. This hook can streamline the process of handling +authorization within your app, especially if you have multiple interactions with +the wallet. -You may want to create a `useAuthorization()` hook to -manage the wallet's authorization state. We'll practice this in the -[Lab](#lab). +> We will explore the use of this hook and practice managing the wallet's state +> in more detail during the lab exercises. Here is an example of sending a transaction using MWA: ```tsx +//import required dependencies if any + const { authorizeSession } = useAuthorization(); const { connection } = useConnection(); -const sendTransactions = (transaction: Transaction) => { - transact(async (wallet: Web3MobileWallet) => { - const latestBlockhashResult = await connection.getLatestBlockhash(); - const authResult = await authorizeSession(wallet); - - const updatedTransaction = new Transaction({ - ...transaction, - ...latestBlockhashResult, - feePayer: authResult.publicKey, - }); +const sendTransactions = async (transaction: Transaction) => { + try { + // Start a session with the wallet + await transact(async (wallet: Web3MobileWallet) => { + // Get the latest blockhash for the transaction + const { blockhash, lastValidBlockHeight } = + await connection.getLatestBlockhash(); + + // Authorize the wallet session + const authResult = await authorizeSession(wallet); + + // Create an updated transaction with the latest blockhash and feePayer + const updatedTransaction = new Transaction({ + recentBlockhash: blockhash, + feePayer: authResult.publicKey, + }).add(transaction); + + // Sign and send the transaction via the wallet + const signatures = await wallet.signAndSendTransactions({ + transactions: [updatedTransaction], + }); - const signature = await wallet.signAndSendTransactions({ - transactions: [transaction], + console.log(`Transaction successful! Signature: ${signatures[0]}`); }); - }); + } catch (error) { + console.error("Error sending transaction:", error); + throw new Error("Transaction failed"); + } }; ``` -#### Debugging - -Since two applications are involved in sending transactions, debugging can be -tricky. Specifically, you won't be able to see the wallet's debug logs the way -you can see your dApps logs. - -Fortunately, -[Logcat on Android Studio](https://developer.android.com/studio/debug/logcat) -makes it possible to see logs from all applications on your device. - -If you prefer not to use Logcat, the other method you could try is to only use -the wallet to sign transactions, and then send them in your code. This allows -you to better debug the transaction if you're running into problems. - -#### Releasing - -Deploying mobile applications can be difficult on its own. It's often even more -difficult when it's a crypto app. There are two main reasons for this: customer -safety and financial incentives. - -First, most of the mobile app marketplaces have policies restricting blockchain -involvement. Crypto is new enough that it's a regulatory wildcard. Platforms -feel they're protecting users by being strict with blockchain-related apps. - -Second, if you use crypto for "purchases" in-app, you'll be seen as -circumnavigating the platform's fee (anywhere from 15-30%). This is explicitly -against app store policies as the platform is trying to protect its revenue -stream. - -These are hurdles for sure, but there's hope. Here are some things to keep in -mind for each marketplace: - -- **App Store (iOS) -** We only talked about Android today for the technical MWA - reason. However, their policies are also some of the most strict and make it - hard for Solana dApps to exist. For now, Apple has some pretty strict - anti-crypto policies. Wallets seem to be fine, but they'll flag and likely - reject anything that seems like a purchase using crypto. -- **Google Play (Android) -** Google is generally more relaxed, but there are - still a few things to be aware of. As of this writing in November ‘23, Google - is rolling out - [new crypto policies](https://www.theverge.com/2023/7/12/23792720/android-google-play-blockchain-crypto-nft-apps) - to make it more clear what they will and will not allow. Take a look. -- **Steam -** Does not allow crypto games at all - > “built on blockchain technology that issue or allow the exchange of - > cryptocurrencies or NFTs.” -- **Download Sites / Your Site -** Depending on the target platform, you can - make your dApp available for download on your own site. However, most users - are wary of downloading mobile applications from websites. -- **dApp Store (Solana) -** Solana saw the issues with mobile dApp distribution - on other platform app stores and decided to make their own. As part of the SMS - stack, they created the - [Solana dApp Store](https://docs.solanamobile.com/getting-started/overview#solana-dapp-store). - -### Conclusion - -Getting started with mobile Solana development is fairly straightforward thanks -to SMS. While React Native is slightly different than React, the code you have -to write is more similar than different. The primary difference is that the -portion of your code that interacts with wallets will exist within the -`transact` callback. Remember to look at our other lessons if you need a -refresher on Solana development more broadly. - -## Lab - -Let's practice this together by building a simple Android mobile counter dApp -with React Native. The app will interact with the Anchor counter program that we -made in the -[Intro to client-side Anchor development](https://www.soldev.app/course/intro-to-anchor-frontend) -lesson. This dApp simply displays a counter and allows users to increment the -count through a Solana program. In this app, we'll be able to see the current -count, connect our wallet, and increment the count. We'll be doing this all on -Devnet and will be compiling only for Android. - -This program already exists and is already deployed on Devnet. Feel free to -check out the -[deployed program's code](https://github.com/Unboxed-Software/anchor-ping-frontend/tree/solution-decrement) -if you want more context. - -We'll write this application in vanilla React Native without a starting -template. Solana Mobile provides a -[React Native template](https://docs.solanamobile.com/react-native/react-native-scaffold) -that shortcuts some of the boilerplate, but there's no better way to learn than -to do something from scratch. - -#### 0. Prerequisites - -React Native allows us to write mobile applications using similar patterns as -React. However, under the hood, our React code needs to be compiled down to -languages and frameworks that work with the device's native OS. This requires a -few prerequisite setup items: - -1. [Set up a React Native dev environment](https://reactnative.dev/docs/environment-setup?guide=native#creating-a-new-application). - Go through the - [**_entire article_**](https://reactnative.dev/docs/environment-setup?guide=native#creating-a-new-application), - using Android as the target OS. For convenience, we've typed out the - high-level steps below. Keep in mind that the source article might change - from the time of writing to when you're reading this. The source article is - your source of truth here. - - 1. Install dependencies - 2. Install Android Studio - 3. Configure **ANDROID_HOME** environment variable - 4. Create a new sample project (this is only used to set up the emulator) - - 1. If you run into the error `✖ Copying template`, add the `--npm` flag - at the end - - ```bash - npx react-native@latest init AwesomeProject - ✔ Downloading template - ✖ Copying template - - npx react-native@latest init AwesomeProject --npm - ✔ Downloading template - ✔ Copying template - ``` - - 5. Run and compile the sample project on your emulator - -2. Install and run the Solana fake wallet - - 1. Install the repo - - ```bash - git clone https://github.com/solana-mobile/mobile-wallet-adapter.git - ``` - - 2. In Android - Studio, `Open project > Navigate to the cloned directory > Select mobile-wallet-adapter/android` - 3. After Android Studio finishes loading the project, select `fakewallet` in - the build/run configuration dropdown in the top right - - ![Fake Wallet](/public/assets/courses/unboxed/basic-solana-mobile-fake-wallet.png) - - 4. For debugging, you'll want to use `Logcat`. Now that your fake wallet is - running on the emulator, go to `View -> Tool Windows -> Logcat`. This will - open up a console logging out what's happening with fake wallet. - -3. (Optional) Install other - [Solana wallets](https://solana.com/ecosystem/explore?categories=wallet) on - the Google Play store. - -Lastly, if you run into Java versioning issues - you'll want to be on Java -version 11. To check what you're currently running type `java --version` in your -terminal. - -#### 1. Plan out the App's Structure +## Debugging + +Debugging can be challenging when working with Solana mobile transactions, as +two separate applications are involved: your app and the mobile wallet. Unlike +typical single-application setups, you won't have direct access to the wallet’s +logs, which makes tracking issues more complex. + +However, Android Studio’s +[Logcat](https://developer.android.com/studio/debug/logcat) provides a useful +solution - enabling you to view logs from all applications running on your +device including the wallet. By leveraging Logcat, you can monitor the +interaction between your app and the wallet, helping you identify any issues +that arise during transaction signing and submission. + +If Logcat is not your preferred tool, an alternative approach is to use the +wallet solely for signing transactions, while handling the actual transaction +submission in your app’s code. This method allows for greater control over +debugging, as you can inspect the transaction flow more thoroughly on the client +side. + +## Deploying for Solana Mobile + +Deploying mobile applications can be challenging, and the complexity increases +when dealing with blockchain-based apps. Two primary factors contribute to this +difficulty: customer safety and financial incentives. + +### Customer Safety and Regulatory Uncertainty: + +Most mobile app marketplaces, such as the Apple App Store and Google Play Store, +have policies that restrict blockchain-related apps. Since blockchain is still a +relatively new and evolving technology, platforms are cautious about regulatory +compliance. They often adopt strict guidelines to protect users from potential +risks associated with blockchain apps. + +### In-App Purchases and Platform Fees: + +Another significant challenge arises when using blockchain transactions for +in-app purchases. Many platforms impose a transaction fee on purchases made +within their apps (ranging from 15% to 30%). Payment via the blockchain is often +seen as a way to bypass these fees, which is explicitly prohibited by most app +stores. These platforms prioritize protecting their revenue streams and +therefore enforce strict policies against apps that facilitate blockchain +payments for in-app purchases. + +> While traditional app stores impose strict policies around blockchain +> transactions to protect their revenue and comply with regulations, alternative +> distribution methods like the Solana app Store offers developers a more +> flexible platform for deploying Solana-based mobile applications. This +> decentralized approach bypasses many of the restrictions seen in centralized +> app marketplaces, allowing apps to thrive in a more blockchain-friendly +> ecosystem. + +## Conclusion + +Getting started with Solana mobile development is more accessible than ever, +thanks to the Solana Mobile Stack (SMS). Although React Native introduces some +differences compared to React, much of the code you will write remains familiar, +particularly when it comes to structuring the UI and handling state. The main +distinction lies in how you interact with wallets, which requires using the +`transact` callback to establish wallet sessions, sign transactions, and +communicate with Solana’s blockchain. + +As you continue building Solana mobile apps, it's essential to keep learning and +refining your skills. Be sure to explore additional resources like: + +- [The official Solana Developer Docs](https://solana.com/docs) for in-depth + guides on Solana’s core libraries and best practices. +- [Solana Stack Exchange](https://solana.stackexchange.com/) forum for + troubleshooting, sharing insights, and staying updated on the latest ecosystem + changes. + +Mastering mobile Solana development will open up new opportunities in +decentralized finance (DeFi), gaming, and e-commerce, allowing you to build +cutting-edge applications with a seamless user experience. Stay curious and +experiment with different tools to push the boundaries of what you can achieve +with mobile apps. Let's put our knowledge to test by building a counting app +with React Native for Android OS! + +## Lab: Building a Mobile Counter app with React Native + +This app will display a counter and allow users to make increments via a +transaction on the Solana blockchain. The app will also connect to a wallet for +signing transactions. + +We will use the **Anchor framework** to interact with the on-chain counter +program. The client side has already been developed in one of our previous +lessons called +[Intro to client-side Anchor development](https://solana.com/developers/courses/onchain-development/intro-to-anchor-frontend), +feel free to check out its code for more context. + +To ensure you fully understand the core concepts, we will write this application +in vanilla React Native without a starting template. While Solana Mobile offers +templates that handle some boilerplate, building from scratch provides a much +deeper understanding. + +### Getting Started + +To get started, you will need to properly set up a React Native development +environment if you didn't already. This +[article](https://reactnative.dev/docs/set-up-your-environment) shows you how. +Remember that this step is not required if you are using a +[Framework](https://reactnative.dev/architecture/glossary#react-native-framework). + +Ensure you have [Node.js](https://nodejs.org/en/download) installed on your +system. These will manage your JavaScript packages. Install Android Studio: + +Android Studio is required to run the Android emulator and to compile your React +Native app for Android devices. Configure the ANDROID_HOME Environment Variable: + +> **NOTE:** You will need to configure the `ANDROID_HOME` environment variable +> so that your terminal can recognize Android’s SDK tools. This step is critical +> for running and building your app on Android. + +## Project Setup + +Create a Sample Project for the Emulator Setup to ensure your Android +environment is set up correctly. In your terminal, run the code below within +your preferred directory to scaffold a new React Native project, where +`SampleProject` is your preferred project name. You can open the project in +Android Studio and ensure it runs correctly on the Android emulator. + +```bash + npx react-native init SampleProject --npm +``` + +### Cloning and Running MWA + +1. Clone the repo in `SampleProject` + + ```bash + git clone https://github.com/solana-mobile/mobile-wallet-adapter.git + ``` + +2. In Android Studio, _Open project > Navigate to the cloned directory > Select + mobile-wallet-adapter/android_ +3. After Android Studio finishes loading the project, select `fakewallet` in + the build/run configuration dropdown in the top right + + ![Fake Wallet](/public/assets/courses/unboxed/basic-solana-mobile-fake-wallet.png) + +4. For easier debugging, use **Logcat**. Check the + [Logcat installation guide](https://developer.android.com/studio/debug/logcat) + if you are interested. +5. Now that your fake wallet is running on the emulator, go to _View -> Tool + Windows -> Logcat_. This will open up a console logging out what’s happening + with fake wallet. + +6. (Optional) Install other + [Solana wallets](https://play.google.com/store/search?q=solana%20wallet&c=apps) + on the Google Play store. + +Lastly, we recommend installing _java version 11_ to avoid dependency errors. To +know what version you have installed, run `java --version` in your terminal. + +### 1. Plan out the App Structure Before we do any coding, let's conceptualize the outline of the app. Again, this app will connect to and interact with the counter program we've already deployed @@ -437,7 +437,7 @@ to Devnet. To do this, we'll need the following: There will be more files and considerations, but these are the most important files we'll be creating and working with. -#### 2. Create the App +### 2. Create the App Now that we've got some of the basic setup and structure down, let's scaffold a new app with the following command: @@ -457,35 +457,36 @@ npm run android ``` This should open and run the app in your Android emulator. If you run into -problems, check to make sure you've accomplished everything in the -[prerequisites section](#0-prerequisites). +problems, check to make sure you’ve accomplished everything in the +[_Getting Started_](#getting-started) section. -#### 3. Install Dependencies +### 3. Install Dependencies -We'll need to add in our Solana dependencies. +We will need to import our Solana dependencies. [The Solana Mobile docs provide a nice list of packages](https://docs.solanamobile.com/react-native/setup) and explanations for why we need them: - `@solana-mobile/mobile-wallet-adapter-protocol`: A React Native/Javascript API enabling interaction with MWA-compatible wallets - `@solana-mobile/mobile-wallet-adapter-protocol-web3js`: A convenience wrapper - to use common primitives - from [@solana/web3.js](https://github.com/solana-labs/solana-web3.js), such - as `Transaction` and `Uint8Array` + to use common primitives from + [@solana/web3.js](https://github.com/solana-labs/solana-web3.js), such as + `Transaction` and `Uint8Array` - `@solana/web3.js`: Solana Web Library for interacting with the Solana network - through the [JSON RPC API](/docs/rpc/http/index.mdx) -- `react-native-get-random-values` Secure random number generator polyfill - for `web3.js` underlying Crypto library on React Native -- `buffer`: Buffer polyfill; also needed for `web3.js` on React Native + through th + [JSON RPC API](https://github.com/solana-foundation/developer-content/blob/main/docs/rpc/http/index.mdx) +- `@react-native-get-random-values` Secure random number generator polyfill for +- `web3.js` underlying library on React Native +- `buffer`: Buffer polyfill; also needed for `web3.js` on React Native -In addition to this list, we'll add two more packages: +In addition to this list, we will add two more packages: - `@coral-xyz/anchor`: The Anchor TS client. - `assert`: A polyfill that lets Anchor do its thing. - `text-encoding-polyfill`: A polyfill needed to create the `Program` object -If you're not familiar: polyfills actively replace Node-native libraries to make -them work anywhere Node is not running. We'll finish our polyfill setup shortly. +If you’re not familiar: polyfills provide Node-native libraries to make them +work anywhere Node is not running. We will finish our polyfill setup shortly. For now, install dependencies using the following command: ```bash @@ -500,7 +501,7 @@ npm install \ text-encoding-polyfill ``` -#### 4. Create ConnectionProvider.tsx +### 4. Create ConnectionProvider.tsx file Let's start adding our Solana functionality. Create a new folder called `components` and within it, a file called `ConnectionProvider.tsx`. This @@ -526,12 +527,11 @@ const ConnectionContext = createContext( {} as ConnectionContextState, ); -export function ConnectionProvider(props: ConnectionProviderProps) { - const { - children, - endpoint, - config = { commitment: "confirmed" }, - } = { ...props }; +export function ConnectionProvider({ + children, + endpoint, + config = { commitment: "confirmed" }, +}: ConnectionProviderProps) { const connection = useMemo( () => new Connection(endpoint, config), [config, endpoint], @@ -548,11 +548,11 @@ export const useConnection = (): ConnectionContextState => useContext(ConnectionContext); ``` -#### 5. Create AuthProvider.tsx +### 5. Create AuthProvider.tsx file -The next Solana provision we'll need is the auth provider. This is one of the -main differences between mobile and web development. What we're implementing -here is roughly equivalent to the `WalletProvider` that we're used to in web +The next Solana provision we will need is the **auth provider**. This is one of +the main differences between mobile and web development. What we’re implementing +here is roughly equivalent to the `WalletProvider` that we’re used to in web apps. However, since we're using Android and its natively installed wallets, the flow to connect and utilize them is a bit different. Most notably, we need to follow the MWA protocol. @@ -570,20 +570,20 @@ We do this by providing the following in our `AuthProvider`: - `deauthorizeSession(wallet)`: Deauthorizes the `wallet`. - `onChangeAccount`: Acts as a handler when `selectedAccount` is changed. -We're also going to throw in some utility methods: +We are also going to throw in some utility methods: - `getPublicKeyFromAddress(base64Address)`: Creates a new Public Key object from the Base64 address given from the `wallet` object - `getAuthorizationFromAuthResult`: Handles the authorization result, extracts relevant data from the result, and returns the `Authorization` context object -We'll expose all of this through a `useAuthorization` hook. +We will expose all of this through a `useAuthorization` hook. -Since this provider is the same across virtually all apps, we're going to give -you the full implementation that you can copy/paste. We'll dig into the details -of MWA in a future lesson. +Since this provider is the same across all apps, we are going to give you the +full implementation that you can copy and paste. We will dig into the details of +MWA in a future lesson. -Create the file `AuthProvider.tsx` in the `components` and paste in the +Create the file `AuthProvider.tsx` in the `components` folder and paste in the following: ```tsx @@ -601,25 +601,19 @@ import { toUint8Array } from "js-base64"; import { useState, useCallback, useMemo, ReactNode } from "react"; import React from "react"; -export const AuthUtils = { +const AuthUtils = { getAuthorizationFromAuthResult: ( authResult: AuthorizationResult, previousAccount?: Account, ): Authorization => { - let selectedAccount: Account; - if ( - //no wallet selected yet - previousAccount === null || - //the selected wallet is no longer authorized + const selectedAccount = + previousAccount === undefined || !authResult.accounts.some( ({ address }) => address === previousAccount.address, ) - ) { - const firstAccount = authResult.accounts[0]; - selectedAccount = AuthUtils.getAccountFromAuthorizedAccount(firstAccount); - } else { - selectedAccount = previousAccount; - } + ? AuthUtils.getAccountFromAuthorizedAccount(authResult.accounts[0]) + : previousAccount; + return { accounts: authResult.accounts.map( AuthUtils.getAccountFromAuthorizedAccount, @@ -631,19 +625,13 @@ export const AuthUtils = { getAccountFromAuthorizedAccount: ( authAccount: AuthorizedAccount, - ): Account => { - return { - ...authAccount, - publicKey: AuthUtils.getPublicKeyFromAddress(authAccount.address), - }; - }, - - getPublicKeyFromAddress: (address: Base64EncodedAddress) => { - return new PublicKey(toUint8Array(address)); - }, + ): Account => ({ + ...authAccount, + publicKey: new PublicKey(toUint8Array(authAccount.address)), + }), }; -export type Account = Readonly<{ +type Account = Readonly<{ address: Base64EncodedAddress; label?: string; publicKey: PublicKey; @@ -655,11 +643,11 @@ type Authorization = Readonly<{ selectedAccount: Account; }>; -export const AppIdentity = { +const APP_IDENTITY = { name: "Solana Counter Incrementor", }; -export type AuthorizationProviderContext = { +type AuthorizationProviderContext = { accounts: Account[] | null; authorizeSession: (wallet: AuthorizeAPI & ReauthorizeAPI) => Promise; deauthorizeSession: (wallet: DeauthorizeAPI) => void; @@ -669,25 +657,24 @@ export type AuthorizationProviderContext = { const AuthorizationContext = React.createContext({ accounts: null, - authorizeSession: (_wallet: AuthorizeAPI & ReauthorizeAPI) => { + authorizeSession: () => { throw new Error("Provider not initialized"); }, - deauthorizeSession: (_wallet: DeauthorizeAPI) => { + deauthorizeSession: () => { throw new Error("Provider not initialized"); }, - onChangeAccount: (_nextSelectedAccount: Account) => { + onChangeAccount: () => { throw new Error("Provider not initialized"); }, selectedAccount: null, }); -export type AuthProviderProps = { +type AuthProviderProps = { children: ReactNode; cluster: Cluster; }; -export function AuthorizationProvider(props: AuthProviderProps) { - const { children, cluster } = { ...props }; +function AuthorizationProvider({ children, cluster }: AuthProviderProps) { const [authorization, setAuthorization] = useState( null, ); @@ -699,55 +686,47 @@ export function AuthorizationProvider(props: AuthProviderProps) { authorization?.selectedAccount, ); setAuthorization(nextAuthorization); - return nextAuthorization; }, - [authorization, setAuthorization], + [authorization], ); const authorizeSession = useCallback( async (wallet: AuthorizeAPI & ReauthorizeAPI) => { - const authorizationResult = await (authorization - ? wallet.reauthorize({ + const authorizationResult = authorization + ? await wallet.reauthorize({ auth_token: authorization.authToken, - identity: AppIdentity, + identity: APP_IDENTITY, }) - : wallet.authorize({ cluster, identity: AppIdentity })); + : await wallet.authorize({ cluster, identity: APP_IDENTITY }); return (await handleAuthorizationResult(authorizationResult)) .selectedAccount; }, - [authorization, handleAuthorizationResult], + [authorization, cluster, handleAuthorizationResult], ); const deauthorizeSession = useCallback( async (wallet: DeauthorizeAPI) => { - if (authorization?.authToken === null) { - return; + if (authorization?.authToken) { + await wallet.deauthorize({ auth_token: authorization.authToken }); + setAuthorization(null); } - - await wallet.deauthorize({ auth_token: authorization.authToken }); - setAuthorization(null); }, - [authorization, setAuthorization], + [authorization], ); - const onChangeAccount = useCallback( - (nextAccount: Account) => { - setAuthorization(currentAuthorization => { - if ( - //check if the account is no longer authorized - !currentAuthorization?.accounts.some( - ({ address }) => address === nextAccount.address, - ) - ) { - throw new Error(`${nextAccount.address} is no longer authorized`); - } - + const onChangeAccount = useCallback((nextAccount: Account) => { + setAuthorization(currentAuthorization => { + if ( + currentAuthorization?.accounts.some( + ({ address }) => address === nextAccount.address, + ) + ) { return { ...currentAuthorization, selectedAccount: nextAccount }; - }); - }, - [setAuthorization], - ); + } + throw new Error(`${nextAccount.address} is no longer authorized`); + }); + }, []); const value = useMemo( () => ({ @@ -767,21 +746,28 @@ export function AuthorizationProvider(props: AuthProviderProps) { ); } -export const useAuthorization = () => React.useContext(AuthorizationContext); +const useAuthorization = () => React.useContext(AuthorizationContext); + +export { + AuthorizationProvider, + useAuthorization, + type Account, + type AuthProviderProps, + type AuthorizationProviderContext, +}; ``` -#### 6. Create ProgramProvider.tsx +### 6. Create ProgramProvider.tsx file The last provider we need is our program provider. This will expose the counter program we want to interact with. -Since we're using the Anchor TS client to interact with our program, we need the -program's IDL. Start by creating a root-level folder called `models`, then -create a new file `anchor-counter.ts`. Paste the contents of the -[Anchor Counter IDL](/public/assets/courses/unboxed/counter-rn-idl.ts) into this -new file. +Since we are using the Anchor TS client to interact with our program, we need +the program's IDL. Start by creating a root-level folder called `models`, then +create a new file `anchor-counter.ts`. Paste the contents of the Anchor Counter +IDL into this new file. -Next, create the file `ProgramProvider.tsx` inside of `components`. Inside we'll +Next, create the file `ProgramProvider.tsx` inside of components. Inside we will create the program provider to surface our program and the counter PDA: ```tsx @@ -820,8 +806,7 @@ export type ProgramProviderProps = { children: ReactNode; }; -export function ProgramProvider(props: ProgramProviderProps) { - const { children } = props; +export function ProgramProvider({ children }: ProgramProviderProps) { const { connection } = useConnection(); const [program, setProgram] = useState | null>(null); const [counterAddress, setCounterAddress] = useState(null); @@ -831,6 +816,11 @@ export function ProgramProvider(props: ProgramProviderProps) { "ALeaCzuJpZpoCgTxMjJbNjREVqSwuvYFRZUfc151AKHU", ); + // MockWallet is a placeholder wallet used for initializing the AnchorProvider. + // In a mobile app, we don't need a real wallet here because the actual signing + // will be done by the user's mobile wallet app. This mock wallet allows us to + // set up the provider without a real wallet instance. + const MockWallet = { signTransaction: () => Promise.reject(), signAllTransactions: () => Promise.reject(), @@ -875,7 +865,7 @@ export function ProgramProvider(props: ProgramProviderProps) { export const useProgram = () => useContext(ProgramContext); ``` -#### 7. Modify App.tsx +### 7. Modify App.tsx file Now that we have all our providers, let's wrap our app with them. We're going to re-write the default `App.tsx` with the following changes: @@ -907,11 +897,14 @@ export default function App() { const endpoint = clusterApiUrl(cluster); return ( + // ConnectionProvider: Manages the connection to the Solana network + // AuthorizationProvider: Handles wallet authorization + // ProgramProvider: Provides access to the Solana program @@ -921,7 +914,7 @@ export default function App() { } ``` -#### 8. Create MainScreen.tsx +### 8. Create MainScreen.tsx file Now, let's put everything together to create our UI. Create a new folder called `screens` and a new file called `MainScreen.tsx` inside of it. In this file, we @@ -935,47 +928,45 @@ to CSS. In `screens/MainScreen.tsx` paste the following: ```tsx +import React from "react"; import { StatusBar, StyleSheet, View } from "react-native"; import { CounterView } from "../components/CounterView"; import { CounterButton } from "../components/CounterButton"; -import React from "react"; -const mainScreenStyles = StyleSheet.create({ +export function MainScreen() { + return ( + + + + + + + + + + ); +} + +const styles = StyleSheet.create({ container: { height: "100%", width: "100%", backgroundColor: "lightgray", }, - - incrementButtonContainer: { position: "absolute", right: "5%", bottom: "3%" }, + incrementButtonContainer: { + position: "absolute", + right: "5%", + bottom: "3%", + }, counterContainer: { alignContent: "center", alignItems: "center", justifyContent: "center", }, }); - -export function MainScreen() { - return ( - - - - - - - - - - ); -} ``` -#### 9. Create CounterView.tsx +### 9. Create CounterView.tsx file The `CounterView` is the first of our two program-specific files. `CounterView`'s only job is to fetch and listen for updates on our `Counter` @@ -1045,7 +1036,7 @@ export function CounterView() { } ``` -#### 10. Create CounterButton.tsx +### 10. Create CounterButton.tsx file Finally, we have our last component, the `CounterButton`. This floating action button will do the following in a new function `incrementCounter`: @@ -1181,7 +1172,7 @@ export function CounterButton() { } ``` -#### 11. Build and Run +### 11. Build and Run Now it's time to test that everything works! Build and run with the following command: @@ -1200,7 +1191,7 @@ test your app: If you run into problems, here are some examples of what they could be and how to fix them: -- Application does not build → Exit Metro with ctrl+c and try again +- Application does not build → Exit Metro with _Ctrl+C_ and try again - Nothing happens when you press the `CounterButton` → Make sure you have Solana wallet installed ( like the fake wallet we installed in Prerequisites ) - You get stuck in a forever loop while calling `increment` → This is likely due @@ -1208,22 +1199,24 @@ to fix them: `CounterButton` and manually send some Devnet sol to your wallet's address (printed in the console) -That's it! You've made your first Solana Mobile dApp. If you get stuck, feel -free to check out the -[full solution code](https://github.com/Unboxed-Software/solana-react-native-counter) +That's it! You've made your first Solana Mobile app. If you get stuck, feel free +to check out the +[full solution code](https://github.com/solana-developers/react-native-counter) on the `main` branch of the repository. ## Challenge -Your challenge today is to take our app and add a decrement function. Simply add -another button and call the `decrement` function on our program. This -instruction already exists on the program and its IDL, so you simply need to -write client code to call it. +Your next challenge is to expand the app by adding a `decrement` function. You +need to create another button that will call the `decrement` method on the +Solana program. The logic for the decrement function already exists in the +program’s **IDL** (**Interface Description Language**), so your task is to write +the client-side code that interacts with it. -After you give it a try on your own, feel free to take a look at the -[solution code on the `solution` branch](https://github.com/Unboxed-Software/solana-react-native-counter/tree/solution). +Once you've completed this, you can check your solution against the solution +code available on the +[solution branch](https://github.com/solana-developers/react-native-counter). - -Push your code to GitHub and -[tell us what you thought of this lesson](https://form.typeform.com/to/IPH0UGz7#answers-lesson=c15928ce-8302-4437-9b1b-9aa1d65af864)! + +If you’ve successfully completed the lab, push your code to GitHub and share +your feedback on this lesson through this [form](https://form.typeform.com/to/IPH0UGz7#answers-lesson=c15928ce-8302-4437-9b1b-9aa1d65af864) From 32952e14aa4403f4cb729307523a4cce8822b9c4 Mon Sep 17 00:00:00 2001 From: Britt Cyr Date: Fri, 4 Oct 2024 00:22:59 -0400 Subject: [PATCH 095/206] fix basis points comment (#550) * fix basis points comment * fmt --- content/courses/token-extensions/transfer-fee.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/courses/token-extensions/transfer-fee.md b/content/courses/token-extensions/transfer-fee.md index 16cd7ff93..f7d574865 100644 --- a/content/courses/token-extensions/transfer-fee.md +++ b/content/courses/token-extensions/transfer-fee.md @@ -159,7 +159,7 @@ There are a couple of notes when transferring tokens with the `transfer fee` extension. First, the recipient is the one who "pays" for the fee. If I send 100 tokens -with basis points of 50 (5%), the recipient will receive 95 tokens (five +with basis points of 500 (5%), the recipient will receive 95 tokens (five withheld) Second, the fee is calculated not by the tokens sent, but the smallest unit of @@ -167,9 +167,9 @@ said token. In Solana programming, we always specify amounts to be transferred, minted or burned in their smallest unit. To send one SOL to someone, we actually send `1 * 10 ^ 9` lamports. Another way to look at it is if you wanted to send one US dollar, you're actually sending 100 pennies. Let's make this dollar a -token with a 50 basis points (5%) transfer fee. Sending one dollar, would result -in a five cent fee. Now let's say we have a max fee of 10 cents, this will -always be the highest fee, even if we send $10,000. +token with a 500 basis points (5%) transfer fee. Sending one dollar, would +result in a five cent fee. Now let's say we have a max fee of 10 cents, this +will always be the highest fee, even if we send $10,000. The calculation can be summed up like this: From 02ec29c39a6f67695028c12d092b06264737766e Mon Sep 17 00:00:00 2001 From: 0xCipherCoder Date: Fri, 4 Oct 2024 09:54:14 +0530 Subject: [PATCH 096/206] Native onchain development - Updated cross program invocation lesson (#493) * Updated content and code snippets as per guidelines * Updated content as per comments * Updated initialize token mint intsructions * Update cross-program-invocations.md --- .../cross-program-invocations.md | 642 ++++++++++++------ 1 file changed, 416 insertions(+), 226 deletions(-) diff --git a/content/courses/native-onchain-development/cross-program-invocations.md b/content/courses/native-onchain-development/cross-program-invocations.md index dff3df609..693c95bcd 100644 --- a/content/courses/native-onchain-development/cross-program-invocations.md +++ b/content/courses/native-onchain-development/cross-program-invocations.md @@ -5,74 +5,84 @@ objectives: - Describe how to construct and use CPIs - Explain how a program provides a signature for a PDA - Avoid common pitfalls and troubleshoot common errors associated with CPIs -description: "How to invoke functions in other Solana programs." +description: "Learn how to invoke functions in other Solana programs." --- ## Summary -- A **Cross-Program Invocation (CPI)** is a call from one program to another, - targeting a specific instruction on the program called -- CPIs are made using the commands `invoke` or `invoke_signed`, the latter being - how programs provide signatures for PDAs that they own -- CPIs make programs in the Solana ecosystem completely interoperable because - all public instructions of a program can be invoked by another program via a - CPI -- Because we have no control over the accounts and data submitted to a program, - it's important to verify all of the parameters passed into a CPI to ensure - program security +- A **Cross-Program Invocation (CPI)** is when one program calls another, + targeting a specific instruction in the called program. +- CPIs are performed using the commands `invoke` or `invoke_signed`, with the + latter enabling programs to sign on behalf of Program Derived Addresses (PDAs) + they own. +- CPIs enable Solana programs to be fully interoperable, allowing any + instruction handler to be invoked by another program via a CPI. +- CPIs are commonly used. For example, if your program transfers tokens, it will + perform a CPI to the Token or Token Extensions programs to execute the + transfer. +- Since the calling program in a CPI does not have control over the accounts or + data passed to the invoked program, it's crucial for the invoked program to + verify all parameters. This ensures that malicious or incorrect data doesn't + compromise program security. ## Lesson ### What is a CPI? -A Cross-Program Invocation (CPI) is a direct call from one program into another. -Just as any client can call any program using the JSON RPC, any program can call -any other program directly. The only requirement for invoking an instruction on -another program from within your program is that you construct the instruction -correctly. You can make CPIs to native programs, other programs you've created, -and third party programs. CPIs essentially turn the entire Solana ecosystem into -one giant API that is at your disposal as a developer. +A **Cross-Program Invocation (CPI)** is when one program directly calls another +program's instruction, similar to how a client makes calls to programs using the +JSON RPC API. In a CPI, your program can call native programs, third-party +programs, or programs you've created. CPIs allow for seamless interaction +between programs, effectively making the entire Solana ecosystem one large API +for developers. -CPIs have a similar make up to instructions that you are used to creating client -side. There are some intricacies and differences depending on if you are using -`invoke` or `invoke_signed`. We'll be covering both of these later in this -lesson. +To invoke an instruction on another program, you need to construct the +instruction correctly. The process of creating a CPI is similar to creating +instructions on the client side, but there are important distinctions when using +`invoke` or `invoke_signed`. We'll dive into both methods later in this lesson. -### How to make a CPI +### Making a Cross-Program Invocation (CPI) -CPIs are made using the -[`invoke`](https://docs.rs/solana-program/1.10.19/solana_program/program/fn.invoke.html) +To make a CPI, use either the +[`invoke`](https://docs.rs/solana-program/latest/solana_program/program/fn.invoke.html) or -[`invoke_signed`](https://docs.rs/solana-program/1.10.19/solana_program/program/fn.invoke_signed.html) -function from the `solana_program` crate. You use `invoke` to essentially pass -through the original transaction signature that was passed into your program. -You use `invoke_signed` to have your program "sign" for its PDAs. +[`invoke_signed`](https://docs.rs/solana-program/latest/solana_program/program/fn.invoke_signed.html) +functions from the `solana_program` crate. + +- Use `invoke` to pass through the original transaction signature that was + submitted to your program. +- Use `invoke_signed` when your program needs to "sign" for its Program Derived + Addresses (PDAs). ```rust -// Used when there are not signatures for PDAs needed +// Used when no signatures are required for PDAs pub fn invoke( instruction: &Instruction, account_infos: &[AccountInfo<'_>] ) -> ProgramResult -// Used when a program must provide a 'signature' for a PDA, hence the signer_seeds parameter +// Used when a program must provide a 'signature' for a PDA, utilizing the signer_seeds parameter pub fn invoke_signed( instruction: &Instruction, account_infos: &[AccountInfo<'_>], + // An array of signing PDAs, each with an array of seeds, which are an array of `u8` bytes. signers_seeds: &[&[&[u8]]] ) -> ProgramResult ``` -CPIs extend the privileges of the caller to the callee. If the instruction the -callee program is processing contains an account that was marked as a signer or -writable when originally passed into the caller program, then it will be -considered a signer or writable account in the invoked program as well. +When you make a Cross-Program Invocation (CPI), the privileges of the invoking +program are extended to the invoked program. If the invoking program's +instruction handler had accounts marked as a signer or writable when calling the +invoked program, those accounts retain their signer or writable status in the +invoked program. + + -It's important to note that you as the developer decide which accounts to pass -into the CPI. You can think of a CPI as building another instruction from -scratch with only information that was passed into your program. +As the developer, you have full control over which accounts are passed into the +CPI. You can think of constructing a CPI as building a new instruction from +scratch, but only with the data that was passed into your program. -#### CPI with `invoke` +#### CPI with invoke function ```rust invoke( @@ -85,13 +95,13 @@ invoke( )?; ``` -- `program_id` - the public key of the program you are going to invoke -- `account` - a list of account metadata as a vector. You need to include every - account that the invoked program will read or write -- `data` - a byte buffer representing the data being passed to the callee - program as a vector +- `program_id` - The public key of the program you're invoking. +- `account` - A list of account metadata as a vector. Include every account the + invoked program will read or write. +- `data` - A byte buffer representing the data passed to the invoked program as + a vector. -The `Instruction` type has the following definition: +The `Instruction` struct has the following definition: ```rust pub struct Instruction { @@ -101,23 +111,21 @@ pub struct Instruction { } ``` -Depending on the program you're making the call to, there may be a crate -available with helper functions for creating the `Instruction` object. Many -individuals and organizations create publicly available crates alongside their -programs that expose these sorts of functions to simplify calling their -programs. This is similar to the Typescript libraries we've used in this course -(e.g. [@solana/web3.js](https://solana-labs.github.io/solana-web3.js/), -[@solana/spl-token](https://solana-labs.github.io/solana-program-library/token/js/)). -For example, in this lesson's lab we'll be using the `spl_token` crate to create -minting instructions. In all other cases, you'll need to create the -`Instruction` instance from scratch. +Depending on the program you're calling, there may be a crate available with +helper functions for creating the `Instruction` object. Many individuals and +organizations provide publicly available crates alongside their programs that +expose these functions, simplifying program interaction. + +For example, in this lesson's lab, we'll be using the `spl_token` crate to +create minting instructions. In cases where no such crate is available, you'll +need to manually create the `Instruction` instance. -While the `program_id` field is fairly straightforward, the `accounts` and -`data` fields require some explanation. +While the `program_id` field is straightforward, the `accounts` and `data` +fields require further explanation. -Both the `accounts` and `data` fields are of type `Vec`, or vector. You can use +Both the `accounts` and `data` fields are of type `Vec` (vector). You can use the [`vec`](https://doc.rust-lang.org/std/macro.vec.html) macro to construct a -vector using array notation, like so: +vector using array notation, as shown below: ```rust let v = vec![1, 2, 3]; @@ -151,14 +159,16 @@ vec![ ] ``` -The final field of the instruction object is the data, as a byte buffer of -course. You can create a byte buffer in Rust using the `vec` macro again, which -has an implemented function allowing you to create a vector of certain length. -Once you have initialized an empty vector, you would construct the byte buffer -similar to how you would client-side. Determine the data required by the callee -program and the serialization format used and write your code to match. Feel -free to read up on some of the -[features of the `vec` macro available to you here](https://doc.rust-lang.org/alloc/vec/struct.Vec.html#). +The final field of the `Instruction` object is the data, represented as a byte +buffer. In Rust, you can create this buffer by using +[`Vec::with_capacity()`](https://doc.rust-lang.org/std/vec/struct.Vec.html#method.with_capacity) +to allocate space, and then populate the vector by pushing values or extending +it with slices. This allows you to construct the byte buffer incrementally, +similar to how you would on the client side. + +Determine the data required by the invoked program and the serialization format +used, then write your code to match. Feel free to read up on some of the +[features of the `vec` macro](https://doc.rust-lang.org/alloc/vec/struct.Vec.html#). ```rust let mut vec = Vec::with_capacity(3); @@ -177,19 +187,18 @@ input, iterates over the slice, clones each element, and then appends it to the In addition to the instruction, both `invoke` and `invoke_signed` also require a list of `account_info` objects. Just like the list of `AccountMeta` objects you -added to the instruction, you must include all of the accounts that the program -you're calling will read or write. +added to the instruction, you must include all the accounts that the program +you're invoking will read or write. By the time you make a CPI in your program, you should have already grabbed all the `account_info` objects that were passed into your program and stored them in variables. You'll construct your list of `account_info` objects for the CPI by -choosing which of these accounts to copy and send along. +selecting which of these accounts to copy and send along. -You can copy each `account_info` object that you need to pass into the CPI using -the +You can copy each `account_info` object you need to pass into the CPI using the [`Clone`](https://docs.rs/solana-program/1.10.19/solana_program/account_info/struct.AccountInfo.html#impl-Clone) -trait that is implemented on the `account_info` struct in the `solana_program` -crate. This `Clone` trait returns a copy of the +trait implemented on the `account_info` struct in the `solana_program` crate. +This `Clone` trait returns a copy of the [`account_info`](https://docs.rs/solana-program/1.10.19/solana_program/account_info/struct.AccountInfo.html) instance. @@ -197,7 +206,7 @@ instance. &[first_account.clone(), second_account.clone(), third_account.clone()] ``` -#### CPI with `invoke` +#### CPI with invoke With both the instruction and the list of accounts created, you can perform a call to `invoke`. @@ -214,21 +223,22 @@ invoke( ``` There's no need to include a signature because the Solana runtime passes along -the original signature passed into your program. Remember, `invoke` won't work -if a signature is required on behalf of a PDA. For that, you'll need to use +the original signature provided to your program. Remember, `invoke` won't work +if a signature is required on behalf of a PDA. In that case, you'll need to use `invoke_signed`. -#### CPI with `invoke_signed` +#### CPI with invoke_signed -Using `invoke_signed` is a little different just because there is an additional -field that requires the seeds used to derive any PDAs that must sign the -transaction. You may recall from previous lessons that PDAs do not lie on the -Ed25519 curve and, therefore, do not have a corresponding secret key. You've -been told that programs can provide signatures for their PDAs, but have not -learned how that actually happens - until now. Programs provide signatures for -their PDAs with the `invoke_signed` function. The first two fields of -`invoke_signed` are the same as `invoke`, but there is an additional -`signers_seeds` field that comes into play here. +Using `invoke_signed` is slightly different because there is an additional field +that requires the seeds used to derive any PDAs that must sign the transaction. +You may recall from previous lessons that PDAs do not lie on the Ed25519 curve +and, therefore, do not have a corresponding secret key. You've learned that +programs can provide signatures for their PDAs, but haven't yet learned how this +works—until now. Programs provide signatures for their PDAs with the +`invoke_signed` function. + +The first two fields of `invoke_signed` are the same as `invoke`, but an +additional `signers_seeds` field is required here. ```rust invoke_signed( @@ -246,38 +256,37 @@ runtime to verify that the PDA belongs to the calling program is for the calling program to supply the seeds used to generate the address in the `signers_seeds` field. -The Solana runtime will internally -call [`create_program_address`](https://docs.rs/solana-program/1.4.4/solana_program/pubkey/struct.Pubkey.html#method.create_program_address) -using the seeds provided and the `program_id` of the calling program. It can +The Solana runtime will internally call +[`create_program_address`](https://docs.rs/solana-program/latest/solana_program/pubkey/struct.Pubkey.html#method.create_program_address) +using the seeds provided and the `program_id` of the calling program. It will then compare the result against the addresses supplied in the instruction. If -any of the addresses match, then the runtime knows that indeed the program -associated with this address is the caller and thus is authorized to be a -signer. +any of the addresses match, the runtime knows that the program associated with +the address is the invoking and is authorized to be a signer. -### Best Practices and common pitfalls +### Best practices and common pitfalls #### Security checks -There are some common mistakes and things to remember when utilizing CPIs that -are important to your program's security and robustness. The first thing to -remember is that, as we know by now, we have no control over what information is -passed into our programs. For this reason, it's important to always verify the -`program_id`, accounts, and data passed into the CPI. Without these security -checks, someone could submit a transaction that invokes an instruction on a -completely different program than was expected, which is not ideal. - -Fortunately, there are inherent checks on the validity of any PDAs that are -marked as signers within the `invoke_signed` function. All other accounts and -`instruction_data` should be verified somewhere in your program code before -making the CPI. It's also important to make sure you're targeting the intended -instruction on the program you are invoking. The easiest way to do this is to -read the source code of the program you will be invoking just as you would if -you were constructing an instruction from the client side. +There are some common mistakes and important things to remember when utilizing +CPIs to ensure your program's security and robustness. First, keep in mind that +we have no control over the information passed into our programs. Therefore, +it's crucial to always verify the `program_id`, accounts, and data passed into +the CPI. Without these security checks, someone could submit a transaction that +invokes an instruction on a completely different program than expected, which is +a significant security risk. + +Fortunately, the `invoke_signed` function performs inherent checks on the +validity of any PDAs marked as signers. However, all other accounts and +`instruction_data` should be verified in your program code before making the +CPI. It's also important to ensure that you're targeting the intended +instruction in the program you're invoking. The simplest way to do this is to +review the source code of the program you're invoking, just as you would when +constructing an instruction from the client side. #### Common errors -There are some common errors you might receive when executing a CPI, they -usually mean you are constructing the CPI with incorrect information. For +There are common errors you might encounter when executing a CPI, which usually +indicate that you're constructing the CPI with incorrect information. For example, you may come across an error message similar to this: ```text @@ -285,104 +294,108 @@ EF1M4SPfKcchb6scq297y8FPCaLvj5kGjwMzjTM68wjA's signer privilege escalated Program returned error: "Cross-program invocation with unauthorized signer or writable account" ``` -This message is a little misleading, because “signer privilege escalated” does -not seem like a problem but, in reality, it means that you are incorrectly -signing for the address in the message. If you are using `invoke_signed` and -receive this error, then it likely means that the seeds you are providing are -incorrect. You can also find +This message can be misleading because "signer privilege escalated" might not +initially seem like an issue, but it actually means you are incorrectly signing +for the address in the message. If you're using `invoke_signed` and receive this +error, it's likely that the seeds you're providing are incorrect. You can check [an example transaction that failed with this error](https://explorer.solana.com/tx/3mxbShkerH9ZV1rMmvDfaAhLhJJqrmMjcsWzanjkARjBQurhf4dounrDCUkGunH1p9M4jEwef9parueyHVw6r2Et?cluster=devnet). -Another similar error is thrown when an account that's written to isn't marked -as `writable` inside the `AccountMeta` struct. +Another similar error occurs when an account is written to isn't marked as +`writable` in the `AccountMeta` struct. ```text 2qoeXa9fo8xVHzd2h9mVcueh6oK3zmAiJxCTySM5rbLZ's writable privilege escalated Program returned error: "Cross-program invocation with unauthorized signer or writable account" ``` + + Remember, any account whose data may be mutated by the program during execution -must be specified as writable. During execution, writing to an account that was -not specified as writable will cause the transaction to fail. Writing to an -account that is not owned by the program will cause the transaction to fail. Any -account whose lamport balance may be mutated by the program during execution -must be specified as writable. During execution, mutating the lamports of an -account that was not specified as writable will cause the transaction to fail. -While subtracting lamports from an account not owned by the program will cause -the transaction to fail, adding lamports to any account is allowed, as long is -it is mutable. +must be specified as `writable`. During execution, attempting to write to an +account that was not marked as `writable` will cause the transaction to fail. +Similarly, writing to an account not owned by the program will also cause the +transaction to fail. + +Any account whose lamport balance may be mutated by the program during execution +must also be specified as `writable`. Mutating the lamports of an account that +was not marked as `writable` will cause the transaction to fail. While +subtracting lamports from an account not owned by the program will cause the +transaction to fail, adding lamports to any account is allowed, as long as it is +mutable. To see this in action, view this [transaction in the explorer](https://explorer.solana.com/tx/ExB9YQJiSzTZDBqx4itPaa4TpT8VK4Adk7GU5pSoGEzNz9fa7PPZsUxssHGrBbJRnCvhoKgLCWnAycFB7VYDbBg?cluster=devnet). + ### Why CPIs matter? -CPIs are a very important feature of the Solana ecosystem and they make all -programs deployed interoperable with each other. With CPIs there is no need to -re-invent the wheel when it comes to development. This creates the opportunity -for building new protocols and applications on top of what's already been built, -just like building blocks or Lego bricks. It's important to remember that CPIs -are a two-way street and the same is true for any programs that you deploy! If -you build something cool and useful, developers have the ability to build on top -of what you've done or just plug your protocol into whatever it is that they are -building. Composability is a big part of what makes crypto so unique and CPIs -are what makes this possible on Solana. +Cross-Program Invocations (CPIs) are a crucial feature of the Solana ecosystem +because they make all deployed programs interoperable. With CPIs, there's no +need to reinvent the wheel during development, as they enable new protocols and +applications to be built on top of existing ones, much like building blocks or +Lego bricks. CPIs make composability possible, allowing developers to integrate +or build on top of your programs. If you build something cool and useful, other +developers can leverage your protocol in their projects. Composability is one of +the unique aspects of Web3, and CPIs enable this on Solana. Another important aspect of CPIs is that they allow programs to sign for their -PDAs. As you have probably noticed by now, PDAs are used very frequently in -Solana development because they allow programs to control specific addresses in -such a way that no external user can generate transactions with valid signatures -for those addresses. This can be _very_ useful for many applications in Web3 -(e.g. DeFi, NFTs, etc.) Without CPIs, PDAs would not be nearly as useful because -there would be no way for a program to sign transactions involving them - -essentially turning them black holes (once something is sent to a PDA, there -would be no way to get it back out w/o CPIs!) +PDAs. As you've likely noticed, PDAs are frequently used in Solana development +because they allow programs to control specific addresses in a way that prevents +external users from generating valid transactions with signatures for those +addresses. This feature is _extremely_ useful in many Web3 applications, such as +DeFi and NFTs. Without CPIs, PDAs would be far less useful since programs +wouldn't be able to sign transactions involving them—effectively turning them +into black holes where assets sent to a PDA couldn't be retrieved without CPIs! ## Lab -Now let's get some hands on experience with CPIs by making some additions to the -Movie Review program again. If you're dropping into this lesson without having -gone through prior lessons, the Movie Review program allows users to submit -movie reviews and have them stored in PDA accounts. +Now let's get some hands-on experience with CPIs by making some additions to the +Movie Review program. If you're dropping into this lesson without going through +the prior ones, the Movie Review program allows users to submit movie reviews, +which are stored in PDA accounts. -Last lesson, we added the ability to leave comments on other movie reviews using -PDAs. In this lesson, we're going to work on having the program mint tokens to -the reviewer or commenter anytime a review or comment is submitted. +In the +[program derived addresses lesson](/content/courses/native-onchain-development/program-derived-addresses.md), +we added the ability to leave comments on movie reviews using PDAs. In this +lesson, we'll work on having the program mint tokens to reviewers or commenters +whenever a review or comment is submitted. -To implement this, we'll have to invoke the SPL Token Program's `MintTo` -instruction using a CPI. If you need a refresher on tokens, token mints, and -minting new tokens, have a look at the -[Token Program lesson](/content/courses/tokens/token-program) before moving -forward with this lab. +To implement this, we'll invoke the SPL Token Program's `MintTo` instruction +using a CPI. If you need a refresher on tokens, token mints, and minting new +tokens, check out the +[Token Program lesson](/content/courses/tokens-and-nfts/token-program.md) before +moving forward with this lab. -#### 1. Get starter code and add dependencies +### 1. Get starter code and add dependencies -To get started, we will be using the final state of the Movie Review program -from the previous PDA lesson. So, if you just completed that lesson then you're -all set and ready to go. If you are just jumping in here, no worries, you can -[download the starter code here](https://github.com/Unboxed-Software/solana-movie-program/tree/solution-add-comments). -We'll be using the `solution-add-comments` branch as our starting point. +To get started, we'll be using the final state of the Movie Review program from +the +[previous PDA lesson](/content/courses/native-onchain-development/program-derived-addresses.md). +If you just completed that lesson, you're all set and ready to go. If you're +jumping in at this point, no worries! You can download the +[starter code from the `solution-add-comments` branch](https://github.com/solana-developers/movie-program/tree/solution-add-comments). -#### 2. Add dependencies to `Cargo.toml` +### 2. Add dependencies to Cargo.toml Before we get started we need to add two new dependencies to the `Cargo.toml` file underneath `[dependencies]`. We'll be using the `spl-token` and `spl-associated-token-account` crates in addition to the existing dependencies. -```text -spl-token = { version="~3.2.0", features = [ "no-entrypoint" ] } -spl-associated-token-account = { version="=1.0.5", features = [ "no-entrypoint" ] } +```toml +spl-token = { version="6.0.0", features = [ "no-entrypoint" ] } +spl-associated-token-account = { version="5.0.1", features = [ "no-entrypoint" ] } ``` After adding the above, run `cargo check` in your console to have cargo resolve your dependencies and ensure that you are ready to continue. Depending on your setup you may need to modify crate versions before moving on. -#### 3. Add necessary accounts to `add_movie_review` +### 3. Add necessary accounts to add_movie_review Because we want users to be minted tokens upon creating a review, it makes sense to add minting logic inside the `add_movie_review` function. Since we'll be -minting tokens, the `add_movie_review` instruction requires a few new accounts -to be passed in: +minting tokens, the `add_movie_review` instruction handler requires a few new +accounts to be passed in: - `token_mint` - the mint address of the token - `mint_auth` - address of the authority of the token mint @@ -393,7 +406,7 @@ to be passed in: We'll start by adding these new accounts to the area of the function that iterates through the passed in accounts: -```rust +```rust filename="processor.rs" // Inside add_movie_review msg!("Adding movie review..."); msg!("Title: {}", title); @@ -404,7 +417,6 @@ let account_info_iter = &mut accounts.iter(); let initializer = next_account_info(account_info_iter)?; let pda_account = next_account_info(account_info_iter)?; -let pda_counter = next_account_info(account_info_iter)?; let token_mint = next_account_info(account_info_iter)?; let mint_auth = next_account_info(account_info_iter)?; let user_ata = next_account_info(account_info_iter)?; @@ -416,12 +428,12 @@ There is no additional `instruction_data` required for the new functionality, so no changes need to be made to how data is deserialized. The only additional information that's needed is the extra accounts. -#### 4. Mint tokens to the reviewer in `add_movie_review` +### 4. Mint tokens to the reviewer in add_movie_review Before we dive into the minting logic, let's import the address of the Token program and the constant `LAMPORTS_PER_SOL` at the top of the file. -```rust +```rust filename="processor.rs" // Inside processor.rs use solana_program::native_token::LAMPORTS_PER_SOL; use spl_associated_token_account::get_associated_token_address; @@ -445,9 +457,9 @@ Let's go ahead and derive the token mint and mint authority addresses using the `find_program_address` function with the seeds “token_mint” and "token_auth," respectively. -```rust -// Mint tokens here -msg!("deriving mint authority"); +```rust filename="processor.rs" +// Mint tokens for adding a review +msg!("Deriving mint authority"); let (mint_pda, _mint_bump) = Pubkey::find_program_address(&[b"token_mint"], program_id); let (mint_auth_pda, mint_auth_bump) = Pubkey::find_program_address(&[b"token_auth"], program_id); @@ -456,7 +468,7 @@ let (mint_auth_pda, mint_auth_bump) = Next, we'll perform security checks against each of the new accounts passed into the program. Always remember to verify accounts! -```rust +```rust filename="processor.rs" if *token_mint.key != mint_pda { msg!("Incorrect token mint"); return Err(ReviewError::IncorrectAccountError.into()); @@ -468,7 +480,7 @@ if *mint_auth.key != mint_auth_pda { } if *user_ata.key != get_associated_token_address(initializer.key, token_mint.key) { - msg!("Incorrect token mint"); + msg!("Incorrect associated token account for initializer"); return Err(ReviewError::IncorrectAccountError.into()); } @@ -485,7 +497,7 @@ because it means we don't have to manually build the entire instruction from scratch. Rather, we can simply pass in the arguments required by the function. Here's the function signature: -```rust +```rust filename="processor.rs" // Inside the token program, returns an Instruction object pub fn mint_to( token_program_id: &Pubkey, @@ -501,7 +513,7 @@ Then we provide copies of the `token_mint`, `user_ata`, and `mint_auth` accounts. And, most relevant to this lesson, we provide the seeds used to find the `token_mint` address, including the bump seed. -```rust +```rust filename="processor.rs" msg!("Minting 10 tokens to User associated token account"); invoke_signed( // Instruction @@ -511,7 +523,7 @@ invoke_signed( user_ata.key, mint_auth.key, &[], - 10*LAMPORTS_PER_SOL, + 10 * LAMPORTS_PER_SOL, )?, // Account_infos &[token_mint.clone(), user_ata.clone(), mint_auth.clone()], @@ -532,18 +544,18 @@ If any of the addresses match the derived address, the runtime knows that the matching account is a PDA of this program and that the program is signing this transaction for this account. -At this point, the `add_movie_review` instruction should be fully functional and -will mint ten tokens to the reviewer when a review is created. +At this point, the `add_movie_review` instruction handler should be fully +functional and will mint ten tokens to the reviewer when a review is created. -#### 5. Repeat for `add_comment` +### 5. Repeat for add_comment Our updates to the `add_comment` function will be almost identical to what we did for the `add_movie_review` function above. The only difference is that we'll -change the amount of tokens minted for a comment from ten to five so that adding -reviews are weighted above commenting. First, update the accounts with the same +change the number of tokens minted for comment from ten to five so that adding +reviews is weighted above commenting. First, update the accounts with the same four additional accounts as in the `add_movie_review` function. -```rust +```rust filename="processor.rs" // Inside add_comment let account_info_iter = &mut accounts.iter(); @@ -562,9 +574,9 @@ Next, move to the bottom of the `add_comment` function just before the `Ok(())`. Then derive the token mint and mint authority accounts. Remember, both are PDAs derived from seeds "token_mint" and "token_authority" respectively. -```rust +```rust filename="processor.rs" // Mint tokens here -msg!("deriving mint authority"); +msg!("Deriving mint authority"); let (mint_pda, _mint_bump) = Pubkey::find_program_address(&[b"token_mint"], program_id); let (mint_auth_pda, mint_auth_bump) = Pubkey::find_program_address(&[b"token_auth"], program_id); @@ -572,7 +584,7 @@ let (mint_auth_pda, mint_auth_bump) = Next, verify that each of the new accounts is the correct account. -```rust +```rust filename="processor.rs" if *token_mint.key != mint_pda { msg!("Incorrect token mint"); return Err(ReviewError::IncorrectAccountError.into()); @@ -584,7 +596,7 @@ if *mint_auth.key != mint_auth_pda { } if *user_ata.key != get_associated_token_address(commenter.key, token_mint.key) { - msg!("Incorrect token mint"); + msg!("Incorrect associated token account for commenter"); return Err(ReviewError::IncorrectAccountError.into()); } @@ -597,7 +609,7 @@ if *token_program.key != TOKEN_PROGRAM_ID { Finally, use `invoke_signed` to send the `mint_to` instruction to the Token program, sending five tokens to the commenter. -```rust +```rust filename="processor.rs" msg!("Minting 5 tokens to User associated token account"); invoke_signed( // Instruction @@ -618,7 +630,7 @@ invoke_signed( Ok(()) ``` -#### 6. Set up the token mint +### 6. Set up the token mint We've written all the code needed to mint tokens to reviewers and commenters, but all of it assumes that there is a token mint at the PDA derived with the @@ -631,7 +643,7 @@ concepts associated with PDAs and CPIs multiple times, we're going to walk through this bit with less explanation than the prior steps. Start by adding a fourth instruction variant to the `MovieInstruction` enum in `instruction.rs`. -```rust +```rust filename="instruction.rs" pub enum MovieInstruction { AddMovieReview { title: String, @@ -651,40 +663,44 @@ pub enum MovieInstruction { ``` Be sure to add it to the `match` statement in the `unpack` function in the same -file under the variant `3`. +file under the discriminator `3`. -```rust +```rust filename="instruction.rs" impl MovieInstruction { pub fn unpack(input: &[u8]) -> Result { - let (&variant, rest) = input + let (&discriminator, rest) = input .split_first() .ok_or(ProgramError::InvalidInstructionData)?; - Ok(match variant { + + match discriminator { 0 => { - let payload = MovieReviewPayload::try_from_slice(rest).unwrap(); - Self::AddMovieReview { + let payload = MovieReviewPayload::try_from_slice(rest) + .map_err(|_| ProgramError::InvalidInstructionData)?; + Ok(Self::AddMovieReview { title: payload.title, rating: payload.rating, description: payload.description, - } + }) } 1 => { - let payload = MovieReviewPayload::try_from_slice(rest).unwrap(); - Self::UpdateMovieReview { + let payload = MovieReviewPayload::try_from_slice(rest) + .map_err(|_| ProgramError::InvalidInstructionData)?; + Ok(Self::UpdateMovieReview { title: payload.title, rating: payload.rating, description: payload.description, - } + }) } 2 => { - let payload = CommentPayload::try_from_slice(rest).unwrap(); - Self::AddComment { + let payload = CommentPayload::try_from_slice(rest) + .map_err(|_| ProgramError::InvalidInstructionData)?; + Ok(Self::AddComment { comment: payload.comment, - } + }) } - 3 => Self::InitializeMint, + 3 => Ok(Self::InitializeMint), _ => return Err(ProgramError::InvalidInstructionData), - }) + } } } ``` @@ -693,7 +709,7 @@ In the `process_instruction` function in the `processor.rs` file, add the new instruction to the `match` statement and call a function `initialize_token_mint`. -```rust +```rust filename="processor.rs" pub fn process_instruction( program_id: &Pubkey, accounts: &[AccountInfo], @@ -723,9 +739,9 @@ mint account, and then initialize the token mint. We won't explain all of this in detail, but it's worth reading through the code, especially given that the creation and initialization of the token mint both involve CPIs. Again, if you need a refresher on tokens and mints, have a look at the -[Token Program lesson](/content/courses/tokens/token-program). +[Token Program lesson](/content/courses/tokens-and-nfts/token-program.md). -```rust +```rust filename="processor.rs" pub fn initialize_token_mint(program_id: &Pubkey, accounts: &[AccountInfo]) -> ProgramResult { let account_info_iter = &mut accounts.iter(); @@ -797,19 +813,193 @@ pub fn initialize_token_mint(program_id: &Pubkey, accounts: &[AccountInfo]) -> P } ``` -#### 7. Build and deploy +### 7. Build and Deploy Now we're ready to build and deploy our program! You can build the program by -running `cargo build-bpf` and then running the command that is returned, it -should look something like `solana program deploy `. +running `cargo build-sbf`. -Before you can start testing whether or not adding a review or comment sends you -tokens, you need to initialize the program's token mint. You can use -[this script](https://github.com/Unboxed-Software/solana-movie-token-client) to -do that. Once you'd cloned that repository, replace the `PROGRAM_ID` in -`index.ts` with your program's ID. Then run `npm install` and then `npm start`. -The script assumes you're deploying to Devnet. If you're deploying locally, then -make sure to tailor the script accordingly. +```sh +cargo build-sbf +``` + +Then deploy the program by running the `solana program deploy` command. + +```sh +solana program deploy target/deploy/.so +``` + +Upon successful deployment, you'll receive a Program ID. For example: + +```sh +Program Id: AzKatnACpNwQxWRs2YyPovsGhgsYVBiTmC3TL4t72eJW +``` + +If you encounter an "insufficient funds" error during deployment, you may need +to add SOL to your deployment wallet. Use the Solana CLI to request an airdrop: + +```sh +solana airdrop 2 +``` + +After receiving the airdrop, attempt the deployment again. + + + +Ensure your Solana CLI is configured for the correct network (`Localnet`, +`devnet`, `testnet`, or `mainnet-beta`) before deploying or requesting airdrops. + + +If you encounter the following error during program deployment, it indicates +that your program size needs to be extended: + +```sh +Error: Deploying program failed: RPC response error -32002: Transaction simulation failed: Error processing Instruction 0: account data too small for instruction [3 log messages ] +``` + +To resolve this, if you're using Solana CLI version 1.18 or later, run the +following command: + +```sh +solana program extend PROGRAM_ID 20000 -u d -k KEYPAIR_FILE_PATH +``` + +Replace `PROGRAM_ID` and `KEYPAIR_FILE_PATH` with your own values. For example: + +```sh + solana program extend HMDRWmYvL2A9xVKZG8iA1ozxi4gMKiHQz9mFkURKrG4 20000 -u d -k ~/.config/solana/id.json +``` + + + +Ensure you are passing the correct Solana's JSON RPC or moniker URL parameter in +the command. + +```bash +-u, --url URL for Solana's JSON RPC or moniker (or their first letter): [mainnet-beta, testnet, devnet, localhost] +``` + + + +Before testing whether adding a review or comment sends tokens, you need to +initialize the program's token mint. + +First, create and initialize an empty NPM project, then change into the project +directory: + +```bash +mkdir movie-token-client +cd movie-token-client +npm init -y +``` + +Install all the required dependencies. + +```bash +npm i @solana/web3.js @solana-developers/helpers@2.5.2 + +npm i --save-dev esrun +``` + +Create a new file named `initialize-review-token-mint.ts`: + +```bash +touch initialize-review-token-mint.ts +``` + +Copy the code below into the newly created file. + +```typescript filename="initialize-review-token-mint.ts" +import { TOKEN_PROGRAM_ID } from "@solana/spl-token"; +import { + Connection, + LAMPORTS_PER_SOL, + PublicKey, + Transaction, + TransactionInstruction, + sendAndConfirmTransaction, + SystemProgram, + SYSVAR_RENT_PUBKEY, +} from "@solana/web3.js"; +import { + initializeKeypair, + airdropIfRequired, + getExplorerLink, +} from "@solana-developers/helpers"; + +const PROGRAM_ID = new PublicKey( + "AzKatnACpNwQxWRs2YyPovsGhgsYVBiTmC3TL4t72eJW", +); + +const LOCALHOST_RPC_URL = "http://localhost:8899"; +const AIRDROP_AMOUNT = 2 * LAMPORTS_PER_SOL; +const MINIMUM_BALANCE_FOR_RENT_EXEMPTION = 1 * LAMPORTS_PER_SOL; + +const connection = new Connection(LOCALHOST_RPC_URL); +const userKeypair = await initializeKeypair(connection); + +await airdropIfRequired( + connection, + userKeypair.publicKey, + AIRDROP_AMOUNT, + MINIMUM_BALANCE_FOR_RENT_EXEMPTION, +); + +const [tokenMintPDA] = PublicKey.findProgramAddressSync( + [Buffer.from("token_mint")], + PROGRAM_ID, +); + +const [tokenAuthPDA] = PublicKey.findProgramAddressSync( + [Buffer.from("token_auth")], + PROGRAM_ID, +); + +const INITIALIZE_MINT_INSTRUCTION = 3; + +const initializeMintInstruction = new TransactionInstruction({ + keys: [ + { pubkey: userKeypair.publicKey, isSigner: true, isWritable: false }, + { pubkey: tokenMintPDA, isSigner: false, isWritable: true }, + { pubkey: tokenAuthPDA, isSigner: false, isWritable: false }, + { pubkey: SystemProgram.programId, isSigner: false, isWritable: false }, + { pubkey: TOKEN_PROGRAM_ID, isSigner: false, isWritable: false }, + { pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false }, + ], + programId: PROGRAM_ID, + data: Buffer.from([INITIALIZE_MINT_INSTRUCTION]), +}); + +const transaction = new Transaction().add(initializeMintInstruction); + +try { + const transactionSignature = await sendAndConfirmTransaction( + connection, + transaction, + [userKeypair], + ); + const explorerLink = getExplorerLink("transaction", transactionSignature); + + console.log(`Transaction submitted: ${explorerLink}`); +} catch (error) { + if (error instanceof Error) { + throw new Error( + `Failed to initialize program token mint: ${error.message}`, + ); + } else { + throw new Error("An unknown error occurred"); + } +} +``` + +Replace `PROGRAM_ID` in `initialize-review-token-mint.ts` with your program ID. +Then run the file with: + +```bash +npx esrun initialize-review-token-mint.ts +``` + +Your token mint will now be initialized. The script assumes you're deploying to +localnet. If you're deploying to devnet, update the script accordingly. Once you've initialized your token mint, you can use the [Movie Review frontend](https://github.com/Unboxed-Software/solana-movie-frontend/tree/solution-add-tokens) @@ -821,9 +1011,8 @@ add a comment, you should receive 5 tokens. They won't have a fancy name or image since we didn't add any metadata to the token, but you get the idea. If you need more time with the concepts from this lesson or got stuck along the -way, feel free to -[take a look at the solution code](https://github.com/Unboxed-Software/solana-movie-program/tree/solution-add-tokens). -Note that the solution to this lab is on the `solution-add-tokens` branch. +way, feel free to take a look at the +[solution code in `solution-add-tokens` branch](https://github.com/solana-developers/movie-program/tree/solution-add-tokens). ## Challenge @@ -841,6 +1030,7 @@ that is possible and you now have the skills and knowledge to go and build something like it on your own! + Push your code to GitHub and [tell us what you thought of this lesson](https://form.typeform.com/to/IPH0UGz7#answers-lesson=ade5d386-809f-42c2-80eb-a6c04c471f53)! From 1e885157007dbf3827155f5307e5e9179e22dd7c Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 3 Oct 2024 21:27:54 -0700 Subject: [PATCH 097/206] onchain-development intro-to-anchor updated (#349) * onchain intro-to-onchain updated * some refactors * minor refactors * minor refactors * minor refactors * Delete content/courses/onchain-development/temp.rs * 'instruction handler' and 'instruction' terminology usage fixed --------- Co-authored-by: Mike MacCana --- .../onchain-development/intro-to-anchor.md | 245 ++++++++++++------ 1 file changed, 163 insertions(+), 82 deletions(-) diff --git a/content/courses/onchain-development/intro-to-anchor.md b/content/courses/onchain-development/intro-to-anchor.md index efda0cd27..69a4cb110 100644 --- a/content/courses/onchain-development/intro-to-anchor.md +++ b/content/courses/onchain-development/intro-to-anchor.md @@ -1,7 +1,7 @@ --- title: Intro to Anchor development objectives: - - Use the Anchor framework to build a basic program + - Use the Anchor framework to build a basic Solana program - Describe the basic structure of an Anchor program - Explain how to implement basic account validation and security checks with Anchor @@ -10,8 +10,9 @@ description: "Create your first Solana onchain program in Anchor." ## Summary -- **Programs** on Solana have **instruction handlers** that execute instruction - logic. +- **Programs** on Solana have **instruction handlers**, which are functions that + take arguments from incoming instructions. They are the entry point for any + operation in a program. - **Rust** is the most common language for building Solana programs. The **Anchor** framework takes care of common grunt work - like reading data from incoming instructions, and checking the right accounts are provided - so you @@ -19,15 +20,26 @@ description: "Create your first Solana onchain program in Anchor." ## Lesson -Solana's ability to run arbitrary executable code is part of what makes it so -powerful. Solana programs, similar to "smart contracts" in other blockchain -environments, are quite literally the backbone of the Solana ecosystem. And the -collection of programs grows daily as developers and creators dream up and -deploy new programs. +Before we begin, make sure you have Anchor installed. You can follow this lesson +on [local-setup](/content/onchain-development/local-setup.md). + +Solana's capacity to execute arbitrary code is a key part of its power. Solana +programs, (sometimes called "smart contracts"), are the very foundation of the +Solana ecosystem. And as developers and creators continuously conceive and +deploy new programs, the collection of Solana programs continues to expand +daily. + +Every popular Solana exchange, borrow-lend app, digital art auction house, perps +platform, and prediction market is a program. This lesson will give you a basic introduction to writing and deploying a Solana program using the Rust programming language and the Anchor framework. +> This and the further lessons in this course will give a good base to start +> building Solana programs with Anchor, however if you want to get more into +> Anchor, we would recommend checking out the +> [The Anchor Book](https://book.anchor-lang.com/). + ### What is Anchor? Anchor makes writing Solana programs easier, faster, and more secure, making it @@ -38,27 +50,32 @@ with writing a Solana program. ### Anchor program structure -Anchor uses macros and traits to generate boilerplate Rust code for you. These -provide a clear structure to your program so you can more easily reason about -your code. The main high-level macros and attributes are: +Anchor uses macros and traits to simplify Rust code for you. These provide a +clear structure to your program so you can focus more on its functionality. -- `declare_id` - a macro for declaring the program's onchain address +Some important macros provided by Anchor are: + +> From here on out, you'll see a lot of Rust. We assume that you are familiar +> with Rust, if not, we recommend you to check out +> [The Rust Book](https://doc.rust-lang.org/book/). + +- `declare_id!` - a macro for declaring the program’s onchain address - `#[program]` - an attribute macro used to denote the module containing the - program's instruction logic + program’s instruction handlers. - `Accounts` - a trait applied to structs representing the list of accounts - required for an instruction + required for an instruction. - `#[account]` - an attribute macro used to define custom account types for the - program + program. Let's talk about each of them before putting all the pieces together. ### Declare your program ID -The `declare_id` macro is used to specify the onchain address of the program -(i.e. the `programId`). When you build an Anchor program for the first time, the -framework will generate a new keypair. This becomes the default keypair used to -deploy the program unless specified otherwise. The corresponding public key -should be used as the `programId` specified in the `declare_id!` macro. +The `declare_id` macro sets the onchain address of the Anchor program (i.e. the +`programId`). When you create a new Anchor program, the framework generates a +default keypair. This keypair is used to deploy the program unless specified +otherwise. The public key of this keypair is used as the `programId` in the +`declare_id!` macro. ```rust declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"); @@ -67,16 +84,14 @@ declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"); ### Define instruction logic The `#[program]` attribute macro defines the module containing all of your -program's instructions. This is where you implement the business logic for each -instruction in your program. +program's instruction handlers. This is where you implement the business logic for each +operation in your program. Each public function in the module with the `#[program]` attribute will be -treated as a separate instruction. +treated as a separate instruction handler. -Each instruction function requires a parameter of type `Context` and can -optionally include additional function parameters representing instruction data. -Anchor will automatically handle instruction data deserialization so that you -can work with instruction data as Rust types. +Each instruction handler (function) requires a parameter of type `Context` and can include more parameters as needed. Anchor will automatically handle instruction data +deserialization so that you can work with instruction data as Rust types. ```rust #[program] @@ -90,13 +105,20 @@ mod program_module_name { } ``` -#### Instruction `Context` +- The `#[program]` attribute macro is used to denote the module containing the + program’s instruction logic. +- `use super::*;` is used to bring all the items from the parent module into + scope, which are needed to define the instruction logic. +- Next, there is the instruction handler function. This function just writes + some data (`instruction_data` in this case) to an account. + +### Instruction `Context` The `Context` type exposes instruction metadata and accounts to your instruction logic. ```rust -pub struct Context<'a, 'b, 'c, 'info, T> { +pub struct Context<'a, 'b, 'c, 'info, T: Bumps> { /// Currently executing program id. pub program_id: &'a Pubkey, /// Deserialized accounts. @@ -107,43 +129,55 @@ pub struct Context<'a, 'b, 'c, 'info, T> { /// Bump seeds found during constraint validation. This is provided as a /// convenience so that handlers don't have to recalculate bump seeds or /// pass them in as arguments. - pub bumps: BTreeMap, + /// Type is the bumps struct generated by #[derive(Accounts)] + pub bumps: T::Bumps, } ``` `Context` is a generic type where `T` defines the list of accounts an -instruction requires. When you use `Context`, you specify the concrete type of -`T` as a struct that adopts the `Accounts` trait (e.g. -`Context`). Through this context argument the -instruction can then access: +instruction handler requires. When you use `Context`, you specify the concrete type of +`T` as a struct that adopts the `Accounts` trait. + +The first argument of every instruction handler must be `Context`. `Context` +takes a generic of your `Accounts` struct, eg, if `AddMovieReview` was the +struct holding the accounts, the context for the `add_movie_review()` function +would be `Context`. + + + Yes, the Accounts struct is typically named the same thing as the instruction handler, just in TitleCase. Eg, the struct with the accounts for add_movie_review() is called AddMovieReview! + + +Through this context argument the instruction can then access: - The accounts passed into the instruction (`ctx.accounts`) - The program ID (`ctx.program_id`) of the executing program - The remaining accounts (`ctx.remaining_accounts`). The `remaining_accounts` is - a vector that contains all accounts that were passed into the instruction but + a vector that contains all accounts that were passed into the instruction handler but are not declared in the `Accounts` struct. - The bumps for any PDA accounts in the `Accounts` struct (`ctx.bumps`) +- The seeds for any PDA accounts in tha `Accounts` struct (`ctx.seeds`) + +> The design of Contexts can be different across different programs to serve +> their purpose; and the name of the context could be anything (not limited to +> Context) to better reflect it's usage. This example is to help understand how +> contexts work in Anchor. ### Define instruction accounts -The `Accounts` trait defines a data structure of validated accounts. Structs -adopting this trait define the list of accounts required for a given -instruction. These accounts are then exposed through an instruction's `Context` -so that manual account iteration and deserialization is no longer necessary. +The `Accounts` trait: -You typically apply the `Accounts` trait through the `derive` macro (e.g. -`#[derive(Accounts)]`). This implements an `Accounts` deserializer on the given -struct and removes the need to deserialize each account manually. +- Defines a structure of validated accounts for an instruction handler +- Makes accounts accessible through an instruction handler's `Context` +- Is typically applied using `#[derive(Accounts)]` +- Implements an `Accounts` deserializer on the struct +- Performs constraint checks for secure program execution -Implementations of the `Accounts` trait are responsible for performing all -requisite constraint checks to ensure the accounts meet the conditions required -for the program to run securely. Constraints are provided for each field using -the `#account(..)` attribute (more on that shortly). +Example: -For example, `instruction_one` requires a `Context` argument of type -`InstructionAccounts`. The `#[derive(Accounts)]` macro is used to implement the -`InstructionAccounts` struct which includes three accounts: `account_name`, -`user`, and `system_program`. +- `instruction_one` requires a `Context` +- `InstructionAccounts` struct is implemented with `#[derive(Accounts)]` +- It includes accounts like `account_name`, `user`, and `system_program` +- Constraints are specified using the `#account(..)` attribute ```rust #[program] @@ -156,25 +190,30 @@ mod program_module_name { } #[derive(Accounts)] -pub struct InstructionAccounts { - #[account(init, payer = user, space = 8 + 8)] +pub struct InstructionAccounts<'info> { + #[account( + init, + payer = user, + space = DISCRIMINATOR + AccountStruct::INIT_SPACE + )] pub account_name: Account<'info, AccountStruct>, + #[account(mut)] pub user: Signer<'info>, - pub system_program: Program<'info, System>, + pub system_program: Program<'info, System>, } ``` When `instruction_one` is invoked, the program: -- Checks that the accounts passed into the instruction match the account types +- Checks that the accounts passed into the instruction handler match the account types specified in the `InstructionAccounts` struct - Checks the accounts against any additional constraints specified -If any accounts passed into `instruction_one` fail the account validation or -security checks specified in the `InstructionAccounts` struct, then the -instruction fails before even reaching the program logic. +> If any accounts passed into `instruction_one` fail the account validation or +> security checks specified in the `InstructionAccounts` struct, then the +> instruction fails before even reaching the program logic. ### Account validation @@ -274,7 +313,11 @@ point be sure to look at the full Recall again the `account_name` field from the `InstructionAccounts` example. ```rust -#[account(init, payer = user, space = 8 + 8)] +#[account( + init, + payer = user, + space = DISCRIMINATOR + AccountStruct::INIT_SPACE +)] pub account_name: Account<'info, AccountStruct>, #[account(mut)] pub user: Signer<'info>, @@ -287,10 +330,14 @@ values: it (sets its account discriminator) - `payer` - specifies the payer for the account initialization to be the `user` account defined in the struct -- `space`- specifies that the space allocated for the account should be `8 + 8` - bytes. The first 8 bytes are for a discriminator that Anchor automatically - adds to identify the account type. The next 8 bytes allocate space for the - data stored on the account as defined in the `AccountStruct` type. +- `space`- the space allocated on the blockchain to store the account. + - `DISCRIMINATOR` is the first 8 bytes of an account, which Anchor uses to + save the type of the account. + - `AccountStruct::INIT_SPACE` is the total size of space required for all the + items in the `AccountStruct`. + - The very need of using this `space` constraint can be eliminated by using + `#[derive(InitSpace)]` macro. We'll see how to use that further in this + lesson. For `user` we use the `#[account(..)]` attribute to specify that the given account is mutable. The `user` account must be marked as mutable because @@ -344,15 +391,21 @@ As an example, let's look at `AccountStruct` used by the `account_name` of ```rust #[derive(Accounts)] pub struct InstructionAccounts { - #[account(init, payer = user, space = 8 + 8)] + #[account(init, + payer = user, + space = DISCRIMINATOR + AnchorStruct::INIT_SPACE + )] pub account_name: Account<'info, AccountStruct>, ... } #[account] +#[derive(InitSpace)] pub struct AccountStruct { data: u64 } + +const DISCRIMINATOR: usize = 8; ``` The `#[account]` attribute ensures that it can be used as an account in @@ -360,10 +413,14 @@ The `#[account]` attribute ensures that it can be used as an account in When the `account_name` account is initialized: -- The first 8 bytes is set as the `AccountStruct` discriminator +- The first 8 bytes is set as the `AccountStruct` discriminator using the + `DISCRIMINATOR` constant. - The data field of the account will match `AccountStruct` - The account owner is set as the `programId` from `declare_id` +> It is considered a good practice to use the `#[derive(InitSpace)]` macro which +> makes the code more readable and maintainable. + ### Bring it all together When you combine all of these Anchor types you end up with a complete program. @@ -393,21 +450,37 @@ mod program_module_name { // Validate incoming accounts for instructions #[derive(Accounts)] pub struct InstructionAccounts<'info> { - #[account(init, payer = user, space = 8 + 8)] + #[account(init, + payer = user, + space = DISCRIMINATOR + AccountStruct::INIT_SPACE + )] pub account_name: Account<'info, AccountStruct>, #[account(mut)] pub user: Signer<'info>, pub system_program: Program<'info, System>, - } // Define custom program account type #[account] +#[derive(InitSpace)] pub struct AccountStruct { data: u64 } + +const DISCRIMINATOR: usize = 8; ``` +#### Key takeaways: + +- The whole program structure can be broadly divided into three parts: + 1. Account constraints: define the accounts required for the instructions, as + well as rules to apply to them - e.g., whether they need to sign the + transaction, if they should be created on demand, how addresses for PDAs, + etc. + 2. Instruction handlers: implement program logic, as functions inside + the`#[program]` module. + 3. Accounts: define the format used for data accounts. + You are now ready to build your own Solana program using the Anchor framework! ## Lab @@ -444,7 +517,7 @@ Open the file `lib.rs` and look at `declare_id!`: declare_id!("BouTUP7a3MZLtXqMAm1NrkJSKwAjmid8abqiNjUyBJSr"); ``` -Run `anchor keys sync` +and then run... ```shell anchor keys sync @@ -478,7 +551,6 @@ declare_id!("your-private-key"); #[program] pub mod anchor_counter { use super::*; - } ``` @@ -489,13 +561,17 @@ type. The `Counter` struct defines one `count` field of type `u64`. This means that we can expect any new accounts initialized as a `Counter` type to have a matching data structure. The `#[account]` attribute also automatically sets the discriminator for a new account and sets the owner of the account as the -`programId` from the `declare_id!` macro. +`programId` from the `declare_id!` macro. We also use the `#[derive(InitSpace)]` +macro for convenient space allocation. ```rust #[account] +#[derive(InitSpace)] pub struct Counter { pub count: u64, } + +const DISCRIMINATOR: usize = 8; ``` #### 3. Implement `Context` type `Initialize` @@ -512,7 +588,10 @@ It'll need the following accounts: ```rust #[derive(Accounts)] pub struct Initialize<'info> { - #[account(init, payer = user, space = 8 + 8)] + #[account(init, + payer = user, + space = DISCRIMINATOR + Counter::INIT_SPACE + )] pub counter: Account<'info, Counter>, #[account(mut)] pub user: Signer<'info>, @@ -520,12 +599,11 @@ pub struct Initialize<'info> { } ``` -#### 4. Add the `initialize` instruction +#### 4. Add the `initialize` instruction handler Now that we have our `Counter` account and `Initialize` type , let's implement -the `initialize` instruction within `#[program]`. This instruction requires a -`Context` of type `Initialize` and takes no additional instruction data. In the -instruction logic, we are simply setting the `counter` account's `count` field +the `initialize` instruction handler within `#[program]`. This instruction handler requires a `Context` of type `Initialize` and takes no additional instruction data. +In the instruction logic, we are simply setting the `counter` account's `count` field to `0`. ```rust @@ -541,7 +619,7 @@ pub fn initialize(ctx: Context) -> Result<()> { #### 5. Implement `Context` type `Update` Now, using the `#[derive(Accounts)]` macro again, let's create the `Update` type -that lists the accounts that the `increment` instruction requires. It'll need +that lists the accounts that the `increment` instruction handler requires. It'll need the following accounts: - `counter` - an existing counter account to increment @@ -559,14 +637,11 @@ pub struct Update<'info> { } ``` -#### 6. Add `increment` instruction +#### 6. Add `increment` instruction handler -Lastly, within `#[program]`, let's implement an `increment` instruction to +Lastly, within `#[program]`, let's implement an `increment` instruction handler to increment the `count` once a `counter` account is initialized by the first -instruction. This instruction requires a `Context` of type `Update` (implemented -in the next step) and takes no additional instruction data. In the instruction -logic, we are simply incrementing an existing `counter` account's `count` field -by `1`. +instruction handler. This instruction handler requires a `Context` of type `Update` (implemented in the next step) and takes no additional instruction data. In the instruction logic, we are simply incrementing an existing `counter` account's `count` field by `1`. ```rust pub fn increment(ctx: Context) -> Result<()> { @@ -609,7 +684,10 @@ pub mod anchor_counter { #[derive(Accounts)] pub struct Initialize<'info> { - #[account(init, payer = user, space = 8 + 8)] + #[account(init, + payer = user, + space = DISCRIMINATOR + Counter::INIT_SPACE + )] pub counter: Account<'info, Counter>, #[account(mut)] pub user: Signer<'info>, @@ -624,9 +702,12 @@ pub struct Update<'info> { } #[account] +#[derive(InitSpace)] pub struct Counter { pub count: u64, } + +const DISCRIMINATOR: usize = 8; ``` Run `anchor build` to build the program. From 8de89f25a6ef149e010bd1c2ee12d9e321844478 Mon Sep 17 00:00:00 2001 From: 0xCipherCoder Date: Fri, 4 Oct 2024 11:02:15 +0530 Subject: [PATCH 098/206] Program Optimization - Updated Program Architecture lesson (#485) * Fixed links * Updated content and code snippets * Fixed grammar mistake * Fixed content and formatting as per comments * Added realloc related changes for account resizing * Updated content as per comment and realloc constraint --- .../program-architecture.md | 1577 ++++++++++------- 1 file changed, 985 insertions(+), 592 deletions(-) diff --git a/content/courses/program-optimization/program-architecture.md b/content/courses/program-optimization/program-architecture.md index 805888b71..e8682c8e5 100644 --- a/content/courses/program-optimization/program-architecture.md +++ b/content/courses/program-optimization/program-architecture.md @@ -13,7 +13,7 @@ description: "Design your Solana programs efficiently." - If your data accounts are too large for the Stack, wrap them in `Box` to allocate them to the Heap - Use Zero-Copy to deal with accounts that are too large for `Box` (< 10MB) -- The size and the order of fields in an account matter; put variable length +- The size and the order of fields in an account matter; put the variable length fields at the end - Solana can process in parallel, but you can still run into bottlenecks; be mindful of "shared" accounts that all users interacting with the program have @@ -31,28 +31,29 @@ with the code. And you, as the designer, need to think about: These questions are even more important when developing for a blockchain. Not only are resources more limited than in a typical computing environment, you're -also dealing with people's assets; code has a cost now. +also dealing with people's assets. We'll leave most of the asset handling discussion to -[security course lesson](/content/courses/program-security/security-intro), but -it's important to note the nature of resource limitations in Solana development. -There are, of course, limitations in a typical development environment, but -there are limitations unique to blockchain and Solana development such as how -much data can be stored in an account, the cost to store that data, and how many -compute units are available per transaction. You, the program designer, have to -be mindful of these limitations to create programs that are affordable, fast, -safe, and functional. Today we will be delving into some of the more advance -considerations that should be taken when creating Solana programs. +[security course lesson](/content/courses/program-security/security-intro.md), +but it's important to note the nature of resource limitations in Solana +development. There are, of course, limitations in a typical development +environment, but there are limitations unique to blockchain and Solana +development such as how much data can be stored in an account, the cost to store +that data, and how many compute units are available per transaction. You, the +program designer, have to be mindful of these limitations to create programs +that are affordable, fast, safe, and functional. Today we will be delving into +some of the more advanced considerations that should be taken when creating +Solana programs. ### Dealing With Large Accounts In modern application programming, we don't often have to think about the size -of the data structures we are using. You want to make a string? You can put a -4000 character limit on it if you want to avoid abuse, but it's probably not an +of the data structures we are using. Do you want to make a string? You can put a +4000-character limit on it if you want to avoid abuse, but it's probably not an issue. Want an integer? They're pretty much always 32-bit for convenience. -In high level languages, you are in the data-land-o-plenty! Now, in Solana land, -we pay per byte stored (rent) and have limits on heap, stack and account sizes. +In high-level languages, you are in the data-land-o-plenty! Now, in Solana land, +we pay per byte stored (rent) and have limits on heap, stack, and account sizes. We have to be a little more crafty with our bytes. There are two main concerns we are going to be looking at in this section: @@ -61,31 +62,32 @@ we are going to be looking at in this section: introduce you to the concept of data sizes here. 2. When operating on larger data, we run into - [Stack](https://solana.com/docs/onchain-programs/faq#stack) and - [Heap](https://solana.com/docs/onchain-programs/faq#heap-size) constraints - - to get around these, we'll look at using Box and Zero-Copy. + [Stack](https://solana.com/docs/programs/faq#stack) and + [Heap](https://solana.com/docs/programs/faq#heap-size) constraints - to get + around these, we'll look at using Box and Zero-Copy. #### Sizes -In Solana a transaction's fee payer pays for each byte stored onchain. We call -this [rent](https://solana.com/docs/core/fees). - -rent is a bit of a misnomer since it never actually gets -permanently taken. Once you deposit rent into the account, that data can stay -there forever or you can get refunded the rent if you close the account. Rent -used to be an actual thing, but now there's an enforced minimum rent exemption. -You can read about it in -[the Solana documentation](https://solana.com/docs/intro/rent). - -Rent etymology aside, putting data on the blockchain can be expensive. It's why -NFT attributes and associated files, like the image, are stored offchain. You -ultimately want to strike a balance that leaves your program highly functional -without becoming so expensive that your users don't want to pay to open the data -account. - -The first thing you need to know before you can start optimizing for space in -your program is the size of each of your structs. Below is a very helpful list -from the +In Solana, a transaction's fee payer pays for each byte stored onchain. This is +called [rent](https://solana.com/docs/core/fees#rent). + + + +Rent is a bit of a misnomer since it never gets permanently taken. Once you +deposit rent into the account, that data can stay there forever, or you can get +refunded the rent if you close the account. Previously, rent was paid in +intervals, similar to traditional rent, but now there's an enforced minimum +balance for rent exemption. You can read more about it in +[the Solana documentation](https://solana.com/docs/core/fees#rent-exempt). + + +Putting data on the blockchain can be expensive, which is why NFT attributes and +associated files, like images, are stored offchain. The goal is to strike a +balance between keeping your program highly functional and ensuring that users +aren't discouraged by the cost of storing data onchain. + +The first step in optimizing for space in your program is understanding the size +of your structs. Below is a helpful reference from the [Anchor Book](https://book.anchor-lang.com/anchor_references/space.html). @@ -110,7 +112,7 @@ from the Knowing these, start thinking about little optimizations you might take in a program. For example, if you have an integer field that will only ever reach 100, don't use a u64/i64, use a u8. Why? Because a u64 takes up 8 bytes, with a -max value of 2^64 or 1.84 \* 10^19. Thats a waste of space since you only need +max value of 2^64 or 1.84 \* 10^19. That's a waste of space since you only need to accommodate numbers up to 100. A single byte will give you a max value of 255 which, in this case, would be sufficient. Similarly, there's no reason to use i8 if you'll never have negative numbers. @@ -158,7 +160,9 @@ where that entire `SomeBigDataStruct` gets stored in memory and since 5000 bytes, or 5KB, is greater than the 4KB limit, it will throw a stack error. So how do we fix this? -The answer is the **`Box`** type! +The answer is the +[**`Box`**](https://docs.rs/anchor-lang/latest/anchor_lang/accounts/boxed/index.html) +type! ```rust #[account] @@ -175,14 +179,14 @@ pub struct SomeFunctionContext<'info> { In Anchor, **`Box`** is used to allocate the account to the Heap, not the Stack. Which is great since the Heap gives us 32KB to work with. The best part is you don't have to do anything different within the function. All you need to -do is add `Box<...>` around all of your big data accounts. +do is add `Box<…>` around all of your big data accounts. But Box is not perfect. You can still overflow the stack with sufficiently large accounts. We'll learn how to fix this in the next section. #### Zero Copy -Okay, so now you can deal with medium sized accounts using `Box`. But what if +Okay, so now you can deal with medium-sized accounts using `Box`. But what if you need to use really big accounts like the max size of 10MB? Take the following as an example: @@ -220,13 +224,13 @@ To understand what's happening here, take a look at the [rust Anchor documentation](https://docs.rs/anchor-lang/latest/anchor_lang/attr.account.html) > Other than being more efficient, the most salient benefit [`zero_copy`] -> provides is the ability to define account types larger than the max stack or -> heap size. When using borsh, the account has to be copied and deserialized -> into a new data structure and thus is constrained by stack and heap limits -> imposed by the BPF VM. With zero copy deserialization, all bytes from the -> account's backing `RefCell<&mut [u8]>` are simply re-interpreted as a -> reference to the data structure. No allocations or copies necessary. Hence the -> ability to get around stack and heap limitations. +> provides the ability to define account types larger than the max stack or heap +> size. When using borsh, the account has to be copied and deserialized into a +> new data structure and thus is constrained by stack and heap limits imposed by +> the BPF VM. With zero copy deserialization, all bytes from the account's +> backing `RefCell<&mut [u8]>` are simply re-interpreted as a reference to the +> data structure. No allocations or copies are necessary. Hence the ability to +> get around stack and heap limitations. Basically, your program never actually loads zero-copy account data into the stack or heap. It instead gets pointer access to the raw data. The @@ -244,7 +248,7 @@ pub struct ConceptZeroCopy<'info> { } ``` -Instead, your client has to create the large account and pay for it's rent in a +Instead, your client has to create a large account and pay for its rent in a separate instruction. ```typescript @@ -289,7 +293,7 @@ let some_really_big_data = &mut ctx.accounts.some_really_big_data.load_init()?; After you do that, then you can treat the account like normal! Go ahead and experiment with this in the code yourself to see everything in action! -For a better understanding on how this all works, Solana put together a really +For a better understanding of how this all works, Solana put together a really nice [video](https://www.youtube.com/watch?v=zs_yU0IuJxc&feature=youtu.be) and [code](https://github.com/solana-developers/anchor-zero-copy-example) explaining Box and Zero-Copy in vanilla Solana. @@ -297,8 +301,8 @@ Box and Zero-Copy in vanilla Solana. ### Dealing with Accounts Now that you know the nuts and bolts of space consideration on Solana, let's -look at some higher level considerations. In Solana, everything is an account, -so for the next couple sections we'll look at some account architecture +look at some higher-level considerations. In Solana, everything is an account, +so for the next couple sections, we'll look at some account architecture concepts. #### Data Order @@ -321,16 +325,17 @@ the location of `id` on the memory map. To make this more clear, observe what this account's data looks like onchain when `flags` has four items in the vector vs eight items. If you were to call `solana account ACCOUNT_KEY` you'd get a data dump like the following: +`solana account ACCOUNT_KEY` you'd get a data dump like the following: ```rust 0000: 74 e4 28 4e d9 ec 31 0a -> Account Discriminator (8) -0008: 04 00 00 00 11 22 33 44 -> Vec Size (4) | Data 4*(1) +0008: 04 00 00 00 11 22 33 44 -> Vec Size (4) | Data 4*(1) 0010: DE AD BE EF -> id (4) --- vs --- 0000: 74 e4 28 4e d9 ec 31 0a -> Account Discriminator (8) -0008: 08 00 00 00 11 22 33 44 -> Vec Size (8) | Data 4*(1) +0008: 08 00 00 00 11 22 33 44 -> Vec Size (8) | Data 4*(1) 0010: 55 66 77 88 DE AD BE EF -> Data 4*(1) | id (4) ``` @@ -344,11 +349,10 @@ the data in the `flags` field took up four more bytes. The main problem with this is lookup. When you query Solana, you use filters that look at the raw data of an account. These are called a `memcmp` filters, or memory compare filters. You give the filter an `offset` and `bytes`, and the -filter then looks directly at the memory, offsetting from the start by the -`offset` you provide, and compares the bytes in memory to the `bytes` you -provide. +filter then looks directly at the memory, offset from the start by the `offset` +you provide, and compares the bytes in memory to the `bytes` you provide. -For example, you know that the `flags` struct will always start at address +For example, you know that the `flags` struct will always start at the address 0x0008 since the first 8 bytes contain the account discriminator. Querying all accounts where the `flags` length is equal to four is possible because we _know_ that the four bytes at 0x0008 represent the length of the data in `flags`. Since @@ -368,12 +372,13 @@ const states = await program.account.badState.all([ However, if you wanted to query by the `id`, you wouldn't know what to put for the `offset` since the location of `id` is variable based on the length of `flags`. That doesn't seem very helpful. IDs are usually there to help with +`flags`. That doesn't seem very helpful. IDs are usually there to help with queries! The simple fix is to flip the order. ```rust -#[account] // Anchor hides the account disriminator +#[account] // Anchor hides the account discriminator pub struct GoodState { - pub id: u32 // 0xDEAD_BEEF + pub id: u32 // 0xDEAD_BEEF pub flags: Vec, // 0x11, 0x22, 0x33 ... } ``` @@ -383,83 +388,229 @@ accounts based on all the fields up to the first variable length field. To echo the beginning of this section: As a rule of thumb, keep all variable length structs at the end of the account. -#### For Future Use +#### Account Flexibility and Future-Proofing -In certain cases, consider adding extra, unused bytes to you accounts. These are -held in reserve for flexibility and backward compatibility. Take the following -example: +When developing Solana programs, it's crucial to design your account structures +with future upgrades and backward compatibility in mind. Solana offers powerful +features like account resizing and Anchor's `InitSpace` attribute to handle +these challenges efficiently. Let's explore a more dynamic and flexible approach +using a game state example: ```rust +use anchor_lang::prelude::*; + #[account] -pub struct GameState { +#[derive(InitSpace)] +pub struct GameState { // V1 + pub version: u8, pub health: u64, pub mana: u64, - pub event_log: Vec + pub experience: Option, + #[max_len(50)] + pub event_log: Vec } ``` -In this simple game state, a character has `health`, `mana`, and an event log. -If at some point you are making game improvements and want to add an -`experience` field, you'd hit a snag. The `experience` field should be a number -like a `u64`, which is simple enough to add. You can -[reallocate the account](/developers/courses/onchain-development/anchor-pdas) -and add space. - -However, to keep dynamic length fields, like `event_log`, at the end of the -struct, you would need to do some memory manipulation on all reallocated -accounts to move the location of `event_log`. This can be complicated and makes -querying accounts far more difficult. You'll end up in a state where -non-migrated accounts have `event_log` in one location and migrated accounts in -another. The old `GameState` without `experience` and the new `GameState` with -`experience` in it are no longer compatible. Old accounts won't serialize when -used where new accounts are expected. Queries will be far more difficult. You'll -likely need to create a migration system and ongoing logic to maintain backward -compatibility. Ultimately, it begins to seem like a bad idea. - -Fortunately, if you think ahead, you can add a `for_future_use` field that -reserves some bytes where you expect to need them most. +In this GameState, we have: + +- A `version` field to track account structure changes +- Basic character attributes (`health`, `mana`) +- An `experience` field as `Option` for backward compatibility +- An `event_log` with a specified maximum length + +Key advantages of this approach: + +1. **Automatic Space Calculation**: The `InitSpace` attribute automatically + calculates the required account space. +2. **Versioning**: The `version` field allows for easy identification of account + structure versions. +3. **Flexible Fields**: Using `Option` for new fields maintains compatibility + with older versions. +4. **Defined Limits**: The `max_len` attribute on `Vec` fields clearly + communicates size constraints. + +When you need to upgrade your account structure, such as increasing the length +of `event_log` or adding new fields, you can use a single upgrade instruction +with Anchor's `realloc` constraint: + +1. Update the `GameState` struct with new fields or increased `max_len` + attributes: + + ```rust + #[account] + #[derive(InitSpace)] + pub struct GameState { + pub version: u8, + pub health: u64, + pub mana: u64, + pub experience: Option, + #[max_len(100)] // Increased from 50 + pub event_log: Vec, + pub new_field: Option, // Added new field + } + ``` + +2. Use a single `UpgradeGameState` context for all upgrades with Anchor's + `realloc` constraint for `GameState`: + + ```rust + #[derive(Accounts)] + pub struct UpgradeGameState<'info> { + #[account( + mut, + realloc = GameState::INIT_SPACE, + realloc::payer = payer, + realloc::zero = false, + )] + pub game_state: Account<'info, GameState>, + #[account(mut)] + pub payer: Signer<'info>, + pub system_program: Program<'info, System>, + } + ``` + +3. Implement the upgrade logic in a single function: + + ```rust + pub fn upgrade_game_state(ctx: Context) -> Result<()> { + let game_state = &mut ctx.accounts.game_state; + + match game_state.version { + 1 => { + game_state.version = 2; + game_state.experience = Some(0); + msg!("Upgraded to version 2"); + }, + 2 => { + game_state.version = 3; + game_state.new_field = Some(0); + msg!("Upgraded to version 3"); + }, + _ => return Err(ErrorCode::AlreadyUpgraded.into()), + } + + Ok(()) + } + ``` + +The example to demonstrate this approach: ```rust +use anchor_lang::prelude::*; + #[account] -pub struct GameState { //V1 +#[derive(InitSpace)] +pub struct GameState { + pub version: u8, pub health: u64, pub mana: u64, - pub for_future_use: [u8; 128], - pub event_log: Vec + pub experience: Option, + #[max_len(100)] // Increased from 50 + pub event_log: Vec, + pub new_field: Option, } -``` -That way, when you go to add `experience` or something similar, it looks like -this and both the old and new accounts are compatible. +#[derive(Accounts)] +pub struct UpgradeGameState<'info> { + #[account( + mut, + realloc = GameState::INIT_SPACE, + realloc::payer = payer, + realloc::zero = false, + )] + pub game_state: Account<'info, GameState>, + #[account(mut)] + pub payer: Signer<'info>, + pub system_program: Program<'info, System>, +} -```rust -#[account] -pub struct GameState { //V2 - pub health: u64, - pub mana: u64, - pub experience: u64, - pub for_future_use: [u8; 120], - pub event_log: Vec +#[program] +pub mod your_program { + use super::*; + + // ... other instructions ... + + pub fn upgrade_game_state(ctx: Context) -> Result<()> { + let game_state = &mut ctx.accounts.game_state; + + match game_state.version { + 1 => { + game_state.version = 2; + game_state.experience = Some(0); + msg!("Upgraded to version 2"); + }, + 2 => { + game_state.version = 3; + game_state.new_field = Some(0); + msg!("Upgraded to version 3"); + }, + _ => return Err(ErrorCode::AlreadyUpgraded.into()), + } + + Ok(()) + } +} + +#[error_code] +pub enum ErrorCode { + #[msg("Account is already at the latest version")] + AlreadyUpgraded, } ``` -These extra bytes do add to the cost of using your program. However, it seems -well worth the benefit in most cases. +This approach: + +- Uses the Anchor's + [`realloc`](https://docs.rs/anchor-lang/latest/anchor_lang/derive.Accounts.html#normal-constraints) + constraint to automatically handle account resizing. +- The + [`InitSpace`](https://docs.rs/anchor-lang/latest/anchor_lang/derive.InitSpace.html) + derive macro automatically implements the `Space` trait for the `GameState` + struct. This trait includes the + [`INIT_SPACE`](https://docs.rs/anchor-lang/latest/anchor_lang/trait.Space.html#associatedconstant.INIT_SPACE) + associated constant , which calculates the total space required for the + account. +- Designates a payer for any additional rent with `realloc::payer = payer`. +- Keeps existing data with `realloc::zero = false`. + + + +Account data can be increased within a single call by up to +`solana_program::entrypoint::MAX_PERMITTED_DATA_INCREASE` bytes. -So as a general rule of thumb: anytime you think your account types have the -potential to change in a way that will require some kind of complex migration, -add in some `for_future_use` bytes. +Memory used to grow is already zero-initialized upon program entrypoint and +re-zeroing it wastes compute units. If within the same call a program reallocs +from larger to smaller and back to larger again the new space could contain +stale data. Pass `true` for `zero_init` in this case, otherwise compute units +will be wasted re-zero-initializing. + + + +While account resizing is powerful, use it judiciously. Consider the trade-offs +between frequent resizing and initial allocation based on your specific use case +and expected growth patterns. + +- Always ensure your account remains rent-exempt before resizing. +- The payer of the transaction is responsible for providing the additional + lamports. +- Consider the cost implications of frequent resizing in your program design. + + +In native Rust, you can resize accounts using the `realloc()` method. For more +details, refer to the +[account resizing program](/content/cookbook/programs/change-account-size.md). #### Data Optimization The idea here is to be aware of wasted bits. For example, if you have a field that represents the month of the year, don't use a `u64`. There will only ever +that represents the month of the year, don't use a `u64`. There will only ever be 12 months. Use a `u8`. Better yet, use a `u8` Enum and label the months. To get even more aggressive on bit savings, be careful with booleans. Look at the below struct composed of eight boolean flags. While a boolean _can_ be represented as a single bit, borsh deserialization will allocate an entire byte -to each of these fields. that means that eight booleans winds up being eight +to each of these fields. That means that eight booleans wind up being eight bytes instead of eight bits, an eight times increase in size. ```rust @@ -536,6 +687,10 @@ Depending on the seeding you can create all sorts of relationships: program. For example, if your program needs a lookup table, you could seed it with `seeds=[b"Lookup"]`. Just be careful to provide appropriate access restrictions. +- One-Per-Owner - Say you're creating a video game player account and you only + want one player account per wallet. Then you'd seed the account with + `seeds=[b"PLAYER", owner.key().as_ref()]`. This way, you'll always know where + to look for a wallet's player account **and** there can only ever be one of - One-Per-Owner - Say you're creating a video game player account and you only want one player account per wallet. Then you'd seed the account with `seeds=[b"PLAYER", owner.key().as_ref()]`. This way, you'll always know where @@ -583,7 +738,7 @@ seeds=[b"Podcast", channel_account.key().as_ref(), episode_number.to_be_bytes(). You can always find the channel account for a particular owner. And since the channel stores the number of episodes created, you always know the upper bound -of where to search for queries. Additionally you always know what index to +of where to search for queries. Additionally, you always know what index to create a new episode at: `index = episodes_created`. ```rust @@ -599,24 +754,24 @@ Podcast X: seeds=[b"Podcast", channel_account.key().as_ref(), X.to_be_bytes().as One of the main reasons to choose Solana for your blockchain environment is its parallel transaction execution. That is, Solana can run transactions in parallel as long as those transactions aren't trying to write data to the same account. -This improves program throughput out of the box, but with some proper planning +This improves program throughput out of the box, but with some proper planning, you can avoid concurrency issues and really boost your program's performance. #### Shared Accounts If you've been around crypto for a while, you may have experienced a big NFT -mint event. A new NFT project is coming out, everyone is really excited for it, -and then the candymachine goes live. It's a mad dash to click +mint event. A new NFT project is coming out, everyone is really excited about +it, and then the candymachine goes live. It's a mad dash to click `accept transaction` as fast as you can. If you were clever, you may have -written a bot to enter in the transactions faster that the website's UI could. -This mad rush to mint creates a lot of failed transactions. But why? Because -everyone is trying to write data to the same Candy Machine account. +written a bot to enter the transactions faster than the website's UI could. This +mad rush to mint creates a lot of failed transactions. But why? Because everyone +is trying to write data to the same Candy Machine account. Take a look at a simple example: Alice and Bob are trying to pay their friends Carol and Dean respectively. All -four accounts change, but neither depend on each other. Both transactions can -run at the same time. +four accounts change, but neither depends on other. Both transactions can run at +the same time. ```rust Alice -- pays --> Carol @@ -629,18 +784,18 @@ issues. ```rust Alice -- pays --> | - -- > Carol + -- > Carol Bob -- pays --- | ``` Since both of these transactions write to Carol's token account, only one of -them can go through at a time. Fortunately, Solana is wicked fast, so it'll +them can go through at a time. Fortunately, Solana is very fast, so it'll probably seem like they get paid at the same time. But what happens if more than just Alice and Bob try to pay Carol? ```rust Alice -- pays --> | - -- > Carol + -- > Carol x1000 -- pays --- | Bob -- pays --- | ``` @@ -675,7 +830,7 @@ pub struct DonationTally { } ``` -First let's look at the suboptimal solution. +First, let's look at the suboptimal solution. ```rust pub fn run_concept_shared_account_bottleneck(ctx: Context, lamports_to_donate: u64) -> Result<()> { @@ -708,7 +863,7 @@ pub fn run_concept_shared_account_bottleneck(ctx: ContextThis lab was created with Anchor version `0.28.0` in mind. -If there are problems compiling, please refer to the -[solution code](https://github.com/Unboxed-Software/anchor-rpg/tree/challenge-solution) -for the environment setup. + + +This lab was created with Anchor version `0.30.1` in mind. If there are problems +compiling, please refer to the +[solution code](https://github.com/solana-developers/anchor-rpg/tree/main) for +the environment setup. -Next, replace the program ID in `programs/rpg/lib.rs` and `Anchor.toml` with the -program ID shown when you run `anchor keys list`. +Next, run the command `anchor keys sync` that will automatically sync your +program ID. This command updates the program IDs in your program files +(including `Anchor.toml`) with the actual `pubkey` from the program keypair +file. -Finally, let's scaffold out the program in the `lib.rs` file. To make following -along easier, we're going to keep everything in one file. We'll augment this -with section comments for better organization and navigation. Copy the following +Finally, let's scaffold out the program in the `lib.rs` file. Copy the following into your file before we get started: -```rust +```rust filename="lib.rs" use anchor_lang::prelude::*; -use anchor_lang::system_program::{Transfer, transfer}; use anchor_lang::solana_program::log::sol_log_compute_units; declare_id!("YOUR_KEY_HERE__YOUR_KEY_HERE"); -// ----------- ACCOUNTS ---------- - -// ----------- GAME CONFIG ---------- - -// ----------- STATUS ---------- - -// ----------- INVENTORY ---------- - -// ----------- HELPER ---------- - -// ----------- CREATE GAME ---------- - -// ----------- CREATE PLAYER ---------- +#[program] +pub mod rpg { + use super::*; -// ----------- SPAWN MONSTER ---------- + pub fn create_game(ctx: Context, max_items_per_player: u8) -> Result<()> { + run_create_game(ctx, max_items_per_player)?; + sol_log_compute_units(); + Ok(()) + } -// ----------- ATTACK MONSTER ---------- + pub fn create_player(ctx: Context) -> Result<()> { + run_create_player(ctx)?; + sol_log_compute_units(); + Ok(()) + } -// ----------- REDEEM TO TREASURY ---------- + pub fn spawn_monster(ctx: Context) -> Result<()> { + run_spawn_monster(ctx)?; + sol_log_compute_units(); + Ok(()) + } -#[program] -pub mod rpg { - use super::*; + pub fn attack_monster(ctx: Context) -> Result<()> { + run_attack_monster(ctx)?; + sol_log_compute_units(); + Ok(()) + } + pub fn deposit_action_points(ctx: Context) -> Result<()> { + run_collect_action_points(ctx)?; + sol_log_compute_units(); + Ok(()) + } } ``` -#### 2. Create Account Structures +### 2. Create Account Structures Now that our initial setup is ready, let's create our accounts. We'll have 3: @@ -903,7 +1067,6 @@ Now that our initial setup is ready, let's create our accounts. We'll have 3: - `experience` - the player's experience - `kills` - number of monsters killed - `next_monster_index` - the index of the next monster to face - - `for_future_use` - 256 bytes reserved for future use - `inventory` - a vector of the player's inventory 3. `Monster` - A PDA account whose address is derived using the game account address, the player's wallet address, and an index (the one stored as @@ -912,21 +1075,55 @@ Now that our initial setup is ready, let's create our accounts. We'll have 3: - `game` - the game the monster is associated with - `hitpoints` - how many hit points the monster has left +This is the final project structure: + +```bash +src/ +├── constants.rs # Constants used throughout the program +├── error/ # Error module +│ ├── errors.rs # Custom error definitions +│ └── mod.rs # Module declarations for error handling +├── helpers.rs # Helper functions used across the program +├── instructions/ # Instruction handlers for different game actions +│ ├── attack_monster.rs # Handles attacking a monster +│ ├── collect_points.rs # Handles collecting points +│ ├── create_game.rs # Handles game creation +│ ├── create_player.rs # Handles player creation +│ ├── mod.rs # Module declarations for instructions +│ └── spawn_monster.rs # Handles spawning a new monster +├── lib.rs # Main entry point for the program +└── state/ # State module for game data structures + ├── game.rs # Game state representation + ├── mod.rs # Module declarations for state + ├── monster.rs # Monster state representation + └── player.rs # Player state representation +``` + When added to the program, the accounts should look like this: ```rust // ----------- ACCOUNTS ---------- -#[account] -pub struct Game { // 8 bytes - pub game_master: Pubkey, // 32 bytes - pub treasury: Pubkey, // 32 bytes - - pub action_points_collected: u64, // 8 bytes +// Inside `state/game.rs` +use anchor_lang::prelude::*; +#[account] +#[derive(InitSpace)] +pub struct Game { + pub game_master: Pubkey, + pub treasury: Pubkey, + pub action_points_collected: u64, pub game_config: GameConfig, } +#[derive(AnchorSerialize, AnchorDeserialize, Clone, InitSpace)] +pub struct GameConfig { + pub max_items_per_player: u8 +} + +// Inside `state/player.rs` +use anchor_lang::prelude::*; #[account] +#[derive(InitSpace)] pub struct Player { // 8 bytes pub player: Pubkey, // 32 bytes pub game: Pubkey, // 32 bytes @@ -939,92 +1136,125 @@ pub struct Player { // 8 bytes pub kills: u64, // 8 bytes pub next_monster_index: u64, // 8 bytes - pub for_future_use: [u8; 256], // Attack/Speed/Defense/Health/Mana?? Metadata?? - pub inventory: Vec, // Max 8 items } -#[account] -pub struct Monster { // 8 bytes - pub player: Pubkey, // 32 bytes - pub game: Pubkey, // 32 bytes +#[derive(AnchorSerialize, AnchorDeserialize, Clone, InitSpace)] +pub struct InventoryItem { + pub name: [u8; 32], // Fixed Name up to 32 bytes + pub amount: u64 +} + - pub hitpoints: u64, // 8 bytes +// Inside `state/monster.rs` +use anchor_lang::prelude::*; +#[account] +#[derive(InitSpace)] +pub struct Monster { + pub player: Pubkey, + pub game: Pubkey, + pub hitpoints: u64, } ``` There aren't a lot of complicated design decisions here, but let's talk about -the `inventory` and `for_future_use` fields on the `Player` struct. Since -`inventory` is variable in length we decided to place it at the end of the -account to make querying easier. We've also decided it's worth spending a little -extra money on rent exemption to have 256 bytes of reserved space in the -`for_future_use` field. We could exclude this and simply reallocate accounts if -we need to add fields in the future, but adding it now simplifies things for us -in the future. - -If we chose to reallocate in the future, we'd need to write more complicated -queries and likely couldn't query in a single call based on `inventory`. -Reallocating and adding a field would move the memory position of `inventory`, -leaving us to write complex logic to query accounts with various structures. +the `inventory` field on the `Player` struct. Since `inventory` is variable in +length we decided to place it at the end of the account to make querying easier. -#### 3. Create ancillary types +### 3. Create Ancillary Types The next thing we need to do is add some of the types our accounts reference that we haven't created yet. Let's start with the game config struct. Technically, this could have gone in the `Game` account, but it's nice to have some separation and encapsulation. -This struct should store the max items allowed per player and some bytes for -future use. Again, the bytes for future use here help us avoid complexity in the -future. Reallocating accounts works best when you're adding fields at the end of -an account rather than in the middle. If you anticipate adding fields in the -middle of existing date, it might make sense to add some "future use" bytes up -front. +This struct should store the max items allowed per player. -```rust +```rust filename="game.rs" // ----------- GAME CONFIG ---------- - -#[derive(Clone, AnchorSerialize, AnchorDeserialize)] +// Inside `state/game.rs` +#[derive(AnchorSerialize, AnchorDeserialize, Clone, InitSpace)] pub struct GameConfig { - pub max_items_per_player: u8, - pub for_future_use: [u64; 16], // Health of Enemies?? Experience per item?? Action Points per Action?? + pub max_items_per_player: u8 } ``` +Reallocating accounts in Solana programs has become more flexible due to +Anchor's +[`realloc`](https://docs.rs/anchor-lang/latest/anchor_lang/derive.Accounts.html#normal-constraints) +account constraint and Solana's account resizing capabilities. While adding +fields at the end of an account structure remains straightforward, modern +practices allow for more adaptable designs: + +1. Use Anchor's `realloc` constraint in the `#[account()]` attribute to specify + resizing parameters: + + ```rust + #[account( + mut, + realloc = AccountStruct::INIT_SPACE, + realloc::payer = payer, + realloc::zero = false, + )] + ``` + +2. Use Anchor's `InitSpace` attribute to automatically calculate account space. +3. For variable-length fields like `Vec` or `String`, use the `max_len` + attribute to specify maximum size. +4. When adding new fields, consider using `Option` for backward + compatibility. +5. Implement a versioning system in your account structure to manage different + layouts. +6. Ensure the payer account is mutable and a signer to cover reallocation costs: + + ```rust + #[account(mut)] + pub payer: Signer<'info>, + ``` + +This approach allows for easier account structure evolution, regardless of where +new fields are added, while maintaining efficient querying and +serialization/deserialization through Anchor's built-in capabilities. It enables +resizing accounts as needed, automatically handling rent-exemption. + Next, let's create our status flags. Remember, we _could_ store our flags as booleans but we save space by storing multiple flags in a single byte. Each flag takes up a different bit within the byte. We can use the `<<` operator to place `1` in the correct bit. -```rust +```rust filename="constants.rs" // ----------- STATUS ---------- -const IS_FROZEN_FLAG: u8 = 1 << 0; -const IS_POISONED_FLAG: u8 = 1 << 1; -const IS_BURNING_FLAG: u8 = 1 << 2; -const IS_BLESSED_FLAG: u8 = 1 << 3; -const IS_CURSED_FLAG: u8 = 1 << 4; -const IS_STUNNED_FLAG: u8 = 1 << 5; -const IS_SLOWED_FLAG: u8 = 1 << 6; -const IS_BLEEDING_FLAG: u8 = 1 << 7; -const NO_EFFECT_FLAG: u8 = 0b00000000; +pub const IS_FROZEN_FLAG: u8 = 1 << 0; +pub const IS_POISONED_FLAG: u8 = 1 << 1; +pub const IS_BURNING_FLAG: u8 = 1 << 2; +pub const IS_BLESSED_FLAG: u8 = 1 << 3; +pub const IS_CURSED_FLAG: u8 = 1 << 4; +pub const IS_STUNNED_FLAG: u8 = 1 << 5; +pub const IS_SLOWED_FLAG: u8 = 1 << 6; +pub const IS_BLEEDING_FLAG: u8 = 1 << 7; + +pub const NO_EFFECT_FLAG: u8 = 0b00000000; +pub const ANCHOR_DISCRIMINATOR: usize = 8; +pub const MAX_INVENTORY_ITEMS: usize = 8; ``` Finally, let's create our `InventoryItem`. This should have fields for the -item's name, amount, and some bytes reserved for future use. +item's name and amount. -```rust +```rust filename="player.rs" // ----------- INVENTORY ---------- -#[derive(Clone, AnchorSerialize, AnchorDeserialize)] +// Inside `state/player.rs` +#[derive(AnchorSerialize, AnchorDeserialize, Clone, InitSpace)] pub struct InventoryItem { pub name: [u8; 32], // Fixed Name up to 32 bytes - pub amount: u64, - pub for_future_use: [u8; 128], // Metadata?? // Effects // Flags? + pub amount: u64 } + ``` -#### 4. Create helper function for spending action points +### 4. Create a helper function for spending action points The last thing we'll do before writing the program's instructions is create a helper function for spending action points. Players will send action points @@ -1040,26 +1270,40 @@ that will send the lamports from that account to the treasury in one fell swoop. This alleviates any concurrency issues since every player has their own account, but also allows the program to retrieve those lamports at any time. -```rust +```rust filename="helper.rs" // ----------- HELPER ---------- +// Inside /src/helpers.rs +use anchor_lang::{prelude::*, system_program}; + +use crate::{error::RpgError, Player}; + pub fn spend_action_points<'info>( action_points: u64, player_account: &mut Account<'info, Player>, player: &AccountInfo<'info>, system_program: &AccountInfo<'info>, ) -> Result<()> { - - player_account.action_points_spent = player_account.action_points_spent.checked_add(action_points).unwrap(); - player_account.action_points_to_be_collected = player_account.action_points_to_be_collected.checked_add(action_points).unwrap(); - - let cpi_context = CpiContext::new( - system_program.clone(), - Transfer { - from: player.clone(), - to: player_account.to_account_info().clone(), - }); - transfer(cpi_context, action_points)?; + player_account.action_points_spent = player_account + .action_points_spent + .checked_add(action_points) + .ok_or(error!(RpgError::ArithmeticOverflow))?; + + player_account.action_points_to_be_collected = player_account + .action_points_to_be_collected + .checked_add(action_points) + .ok_or(error!(RpgError::ArithmeticOverflow))?; + + system_program::transfer( + CpiContext::new( + system_program.to_account_info(), + system_program::Transfer { + from: player.to_account_info(), + to: player_account.to_account_info(), + }, + ), + action_points, + )?; msg!("Minus {} action points", action_points); @@ -1067,7 +1311,7 @@ pub fn spend_action_points<'info>( } ``` -#### 5. Create Game +### 5. Create Game Our first instruction will create the `game` account. Anyone can be a `game_master` and create their own game, but once a game has been created there @@ -1077,48 +1321,54 @@ For one, the `game` account is a PDA using its `treasury` wallet. This ensures that the same `game_master` can run multiple games if they use a different treasury for each. -Also note that the `treasury` is a signer on the instruction. This is to make -sure whoever is creating the game has the private keys to the `treasury`. This -is a design decision rather than "the right way." Ultimately, it's a security -measure to ensure the game master will be able to retrieve their funds. + -```rust +The `treasury` is a signer on the instruction. This is to make sure whoever is +creating the game has the private keys to the `treasury`. This is a design +decision rather than "the right way." Ultimately, it's a security measure to +ensure the game master will be able to retrieve their funds. + +```rust filename="create_game.rs" // ----------- CREATE GAME ---------- +// Inside src/instructions/create_game.rs +use anchor_lang::prelude::*; + +use crate::{error::RpgError, Game, ANCHOR_DISCRIMINATOR}; + #[derive(Accounts)] pub struct CreateGame<'info> { #[account( init, - seeds=[b"GAME", treasury.key().as_ref()], + seeds = [b"GAME", treasury.key().as_ref()], bump, payer = game_master, - space = std::mem::size_of::()+ 8 + space = ANCHOR_DISCRIMINATOR + Game::INIT_SPACE )] pub game: Account<'info, Game>, - #[account(mut)] pub game_master: Signer<'info>, - - /// CHECK: Need to know they own the treasury pub treasury: Signer<'info>, pub system_program: Program<'info, System>, } pub fn run_create_game(ctx: Context, max_items_per_player: u8) -> Result<()> { + if max_items_per_player == 0 { + return Err(error!(RpgError::InvalidGameConfig)); + } - ctx.accounts.game.game_master = ctx.accounts.game_master.key().clone(); - ctx.accounts.game.treasury = ctx.accounts.treasury.key().clone(); - - ctx.accounts.game.action_points_collected = 0; - ctx.accounts.game.game_config.max_items_per_player = max_items_per_player; + let game = &mut ctx.accounts.game; + game.game_master = ctx.accounts.game_master.key(); + game.treasury = ctx.accounts.treasury.key(); + game.action_points_collected = 0; + game.game_config.max_items_per_player = max_items_per_player; msg!("Game created!"); - Ok(()) } ``` -#### 6. Create Player +### 6. Create Player Our second instruction will create the `player` account. There are three tradeoffs to note about this instruction: @@ -1133,62 +1383,67 @@ tradeoffs to note about this instruction: 100 lamports, but this could be something added to the game config in the future. -```rust +```rust filename="create_player.rs" // ----------- CREATE PLAYER ---------- + +// Inside src/instructions/create_player.rs +use anchor_lang::prelude::*; + +use crate::{ + error::RpgError, helpers::spend_action_points, Game, Player, ANCHOR_DISCRIMINATOR, + CREATE_PLAYER_ACTION_POINTS, NO_EFFECT_FLAG, +}; + #[derive(Accounts)] pub struct CreatePlayer<'info> { pub game: Box>, - #[account( init, - seeds=[ + seeds = [ b"PLAYER", game.key().as_ref(), player.key().as_ref() ], bump, payer = player, - space = std::mem::size_of::() + std::mem::size_of::() * game.game_config.max_items_per_player as usize + 8) - ] + space = ANCHOR_DISCRIMINATOR + Player::INIT_SPACE + )] pub player_account: Account<'info, Player>, - #[account(mut)] pub player: Signer<'info>, - pub system_program: Program<'info, System>, } pub fn run_create_player(ctx: Context) -> Result<()> { - - ctx.accounts.player_account.player = ctx.accounts.player.key().clone(); - ctx.accounts.player_account.game = ctx.accounts.game.key().clone(); - - ctx.accounts.player_account.status_flag = NO_EFFECT_FLAG; - ctx.accounts.player_account.experience = 0; - ctx.accounts.player_account.kills = 0; + let player_account = &mut ctx.accounts.player_account; + player_account.player = ctx.accounts.player.key(); + player_account.game = ctx.accounts.game.key(); + player_account.status_flag = NO_EFFECT_FLAG; + player_account.experience = 0; + player_account.kills = 0; msg!("Hero has entered the game!"); - { // Spend 100 lamports to create player - let action_points_to_spend = 100; + // Spend 100 lamports to create player + let action_points_to_spend = CREATE_PLAYER_ACTION_POINTS; - spend_action_points( - action_points_to_spend, - &mut ctx.accounts.player_account, - &ctx.accounts.player.to_account_info(), - &ctx.accounts.system_program.to_account_info() - )?; - } + spend_action_points( + action_points_to_spend, + player_account, + &ctx.accounts.player.to_account_info(), + &ctx.accounts.system_program.to_account_info(), + ) + .map_err(|_| error!(RpgError::InsufficientActionPoints))?; Ok(()) } ``` -#### 7. Spawn Monster +### 7. Spawn Monster Now that we have a way to create players, we need a way to spawn monsters for them to fight. This instruction will create a new `Monster` account whose -address is a PDA derived with the `game` account, `player` account, and an index +address is a PDA derived from the `game` account, `player` account, and an index representing the number of monsters the player has faced. There are two design decisions here we should talk about: @@ -1196,21 +1451,26 @@ decisions here we should talk about: 2. We wrap both the `game` and `player` accounts in `Box` to allocate them to the Heap -```rust +```rust filename="spawn_monster.rs" // ----------- SPAWN MONSTER ---------- + +// Inside src/instructions/spawn_monster.rs +use anchor_lang::prelude::*; + +use crate::{helpers::spend_action_points, Game, Monster, Player, SPAWN_MONSTER_ACTION_POINTS, ANCHOR_DISCRIMINATOR}; + #[derive(Accounts)] pub struct SpawnMonster<'info> { pub game: Box>, - - #[account(mut, + #[account( + mut, has_one = game, has_one = player, )] pub player_account: Box>, - #[account( init, - seeds=[ + seeds = [ b"MONSTER", game.key().as_ref(), player.key().as_ref(), @@ -1218,46 +1478,39 @@ pub struct SpawnMonster<'info> { ], bump, payer = player, - space = std::mem::size_of::() + 8) - ] + space = ANCHOR_DISCRIMINATOR + Monster::INIT_SPACE + )] pub monster: Account<'info, Monster>, - #[account(mut)] pub player: Signer<'info>, - pub system_program: Program<'info, System>, } pub fn run_spawn_monster(ctx: Context) -> Result<()> { + let monster = &mut ctx.accounts.monster; + monster.player = ctx.accounts.player.key(); + monster.game = ctx.accounts.game.key(); + monster.hitpoints = 100; - { - ctx.accounts.monster.player = ctx.accounts.player.key().clone(); - ctx.accounts.monster.game = ctx.accounts.game.key().clone(); - ctx.accounts.monster.hitpoints = 100; + let player_account = &mut ctx.accounts.player_account; + player_account.next_monster_index = player_account.next_monster_index.checked_add(1).unwrap(); - msg!("Monster Spawned!"); - } - - { - ctx.accounts.player_account.next_monster_index = ctx.accounts.player_account.next_monster_index.checked_add(1).unwrap(); - } + msg!("Monster Spawned!"); - { // Spend 5 lamports to spawn monster - let action_point_to_spend = 5; - - spend_action_points( - action_point_to_spend, - &mut ctx.accounts.player_account, - &ctx.accounts.player.to_account_info(), - &ctx.accounts.system_program.to_account_info() - )?; - } + // Spend 5 lamports to spawn monster + let action_point_to_spend = SPAWN_MONSTER_ACTION_POINTS; + spend_action_points( + action_point_to_spend, + player_account, + &ctx.accounts.player.to_account_info(), + &ctx.accounts.system_program.to_account_info(), + )?; Ok(()) } ``` -#### 8. Attack Monster +### 8. Attack Monster Now! Let's attack those monsters and start gaining some exp! @@ -1274,138 +1527,235 @@ The `saturating_add` function ensures the number will never overflow. Say the `kills` was a u8 and my current kill count was 255 (0xFF). If I killed another and added normally, e.g. `255 + 1 = 0 (0xFF + 0x01 = 0x00) = 0`, the kill count would end up as 0. `saturating_add` will keep it at its max if it's about to +would end up as 0. `saturating_add` will keep it at its max if it's about to roll over, so `255 + 1 = 255`. The `checked_add` function will throw an error if it's about to overflow. Keep this in mind when doing math in Rust. Even though `kills` is a u64 and will never roll with it's current programming, it's good +it's about to overflow. Keep this in mind when doing math in Rust. Even though +`kills` is a u64 and will never roll with it's current programming, it's good practice to use safe math and consider roll-overs. -```rust +```rust filename="attack_monster.rs" // ----------- ATTACK MONSTER ---------- + +// Inside src/instructions/attack_monster.rs +use anchor_lang::prelude::*; +use crate::{helpers::spend_action_points, Monster, Player, ATTACK_ACTION_POINTS, error::RpgError}; + #[derive(Accounts)] pub struct AttackMonster<'info> { - #[account( mut, has_one = player, )] pub player_account: Box>, - #[account( mut, has_one = player, - constraint = monster.game == player_account.game + constraint = monster.game == player_account.game @ RpgError::GameMismatch )] pub monster: Box>, - #[account(mut)] pub player: Signer<'info>, - pub system_program: Program<'info, System>, } pub fn run_attack_monster(ctx: Context) -> Result<()> { + let player_account = &mut ctx.accounts.player_account; + let monster = &mut ctx.accounts.monster; - let mut did_kill = false; - - { - let hp_before_attack = ctx.accounts.monster.hitpoints; - let hp_after_attack = ctx.accounts.monster.hitpoints.saturating_sub(1); - let damage_dealt = hp_before_attack - hp_after_attack; - ctx.accounts.monster.hitpoints = hp_after_attack; - + let hp_before_attack = monster.hitpoints; + let hp_after_attack = monster.hitpoints.saturating_sub(1); + let damage_dealt = hp_before_attack.saturating_sub(hp_after_attack); + monster.hitpoints = hp_after_attack; - - if hp_before_attack > 0 && hp_after_attack == 0 { - did_kill = true; - } - - if damage_dealt > 0 { - msg!("Damage Dealt: {}", damage_dealt); - } else { - msg!("Stop it's already dead!"); - } - } - - { - ctx.accounts.player_account.experience = ctx.accounts.player_account.experience.saturating_add(1); + if damage_dealt > 0 { + msg!("Damage Dealt: {}", damage_dealt); + player_account.experience = player_account.experience.saturating_add(1); msg!("+1 EXP"); - if did_kill { - ctx.accounts.player_account.kills = ctx.accounts.player_account.kills.saturating_add(1); + if hp_after_attack == 0 { + player_account.kills = player_account.kills.saturating_add(1); msg!("You killed the monster!"); } + } else { + msg!("Stop it's already dead!"); } - { // Spend 1 lamports to attack monster - let action_point_to_spend = 1; + // Spend 1 lamport to attack monster + let action_point_to_spend = ATTACK_ACTION_POINTS; - spend_action_points( - action_point_to_spend, - &mut ctx.accounts.player_account, - &ctx.accounts.player.to_account_info(), - &ctx.accounts.system_program.to_account_info() - )?; - } + spend_action_points( + action_point_to_spend, + player_account, + &ctx.accounts.player.to_account_info(), + &ctx.accounts.system_program.to_account_info() + )?; Ok(()) } ``` -#### Redeem to Treasury +### 9. Redeem to Treasury This is our last instruction. This instruction lets anyone send the spent `action_points` to the `treasury` wallet. Again, let's box the rpg accounts and use safe math. -```rust +```rust filename="collect_points.rs" // ----------- REDEEM TO TREASUREY ---------- + +// Inside src/instructions/collect_points.rs +use anchor_lang::prelude::*; +use crate::{error::RpgError, Game, Player}; + #[derive(Accounts)] pub struct CollectActionPoints<'info> { - #[account( mut, - has_one=treasury + has_one = treasury @ RpgError::InvalidTreasury )] pub game: Box>, - #[account( mut, - has_one=game + has_one = game @ RpgError::PlayerGameMismatch )] pub player: Box>, - #[account(mut)] /// CHECK: It's being checked in the game account - pub treasury: AccountInfo<'info>, - + pub treasury: UncheckedAccount<'info>, pub system_program: Program<'info, System>, } -// literally anyone who pays for the TX fee can run this command - give it to a clockwork bot +// Literally anyone who pays for the TX fee can run this command - give it to a clockwork bot pub fn run_collect_action_points(ctx: Context) -> Result<()> { - let transfer_amount: u64 = ctx.accounts.player.action_points_to_be_collected; + let transfer_amount = ctx.accounts.player.action_points_to_be_collected; + + // Transfer lamports from player to treasury + let player_info = ctx.accounts.player.to_account_info(); + let treasury_info = ctx.accounts.treasury.to_account_info(); + + **player_info.try_borrow_mut_lamports()? = player_info + .lamports() + .checked_sub(transfer_amount) + .ok_or(RpgError::InsufficientFunds)?; - **ctx.accounts.player.to_account_info().try_borrow_mut_lamports()? -= transfer_amount; - **ctx.accounts.treasury.to_account_info().try_borrow_mut_lamports()? += transfer_amount; + **treasury_info.try_borrow_mut_lamports()? = treasury_info + .lamports() + .checked_add(transfer_amount) + .ok_or(RpgError::ArithmeticOverflow)?; ctx.accounts.player.action_points_to_be_collected = 0; - ctx.accounts.game.action_points_collected = ctx.accounts.game.action_points_collected.checked_add(transfer_amount).unwrap(); + ctx.accounts.game.action_points_collected = ctx.accounts.game + .action_points_collected + .checked_add(transfer_amount) + .ok_or(RpgError::ArithmeticOverflow)?; - msg!("The treasury collected {} action points to treasury", transfer_amount); + msg!("The treasury collected {} action points", transfer_amount); Ok(()) } ``` -#### Putting it all Together +### 10. Error Handling + +Now, let's add all the errors that we have used till now in `errors.rs` file. + +```rust filename="errors.rs" +// ------------RPG ERRORS-------------- + +// Inside src/error/errors.rs + +use anchor_lang::prelude::*; + +#[error_code] +pub enum RpgError { + #[msg("Arithmetic overflow occurred")] + ArithmeticOverflow, + #[msg("Invalid game configuration")] + InvalidGameConfig, + #[msg("Player not found")] + PlayerNotFound, + #[msg("Monster not found")] + MonsterNotFound, + #[msg("Insufficient action points")] + InsufficientActionPoints, + #[msg("Invalid attack")] + InvalidAttack, + #[msg("Maximum inventory size reached")] + MaxInventoryReached, + #[msg("Invalid item operation")] + InvalidItemOperation, + #[msg("Monster and player are not in the same game")] + GameMismatch, + #[msg("Invalid treasury account")] + InvalidTreasury, + #[msg("Player does not belong to the specified game")] + PlayerGameMismatch, + #[msg("Insufficient funds for transfer")] + InsufficientFunds +} +``` + +### 11. Module Declarations + +We need to declare all the modules used in the project as follows: + +```rust + +// Inside src/error/mod.rs +pub mod errors; +pub use errors::RpgError; // Expose the custom error type + +// Inside src/instructions/mod.rs +pub mod attack_monster; +pub mod collect_points; +pub mod create_game; +pub mod create_player; +pub mod spawn_monster; + +pub use attack_monster::*; // Expose attack_monster functions +pub use collect_points::*; // Expose collect_points functions +pub use create_game::*; // Expose create_game functions +pub use create_player::*; // Expose create_player functions +pub use spawn_monster::*; // Expose spawn_monster functions + +// Inside src/state/mod.rs +pub mod game; +pub mod monster; +pub mod player; + +pub use game::*; // Expose game state +pub use monster::*; // Expose monster state +pub use player::*; // Expose player state +``` + +### 12. Putting it all Together Now that all of our instruction logic is written, let's add these functions to actual instructions in the program. It can also be helpful to log compute units for each instruction. -```rust +```rust filename="lib.rs" + +// Insider src/lib.rs +use anchor_lang::prelude::*; +use anchor_lang::solana_program::log::sol_log_compute_units; + +mod state; +mod instructions; +mod constants; +mod helpers; +mod error; + +use state::*; +use constants::*; +use instructions::*; + +declare_id!("5Sc3gJv4tvPiFzE75boYMJabbNRs44zRhtT23fLdKewz"); + #[program] pub mod rpg { use super::*; @@ -1439,7 +1789,6 @@ pub mod rpg { sol_log_compute_units(); Ok(()) } - } ``` @@ -1450,73 +1799,134 @@ successfully. anchor build ``` -#### Testing +### Testing -Now, let's see this baby work! +Now, let's put everything together and see it in action! -Let's set up the `tests/rpg.ts` file. We will be filling out each test in turn. -But first, we needed to set up a couple of different accounts. Mainly the -`gameMaster` and the `treasury`. +We'll begin by setting up the `tests/rpg.ts` file. We will be writing each test +step by step. But before diving into the tests, we need to initialize a few +important accounts, specifically the `gameMaster` and the `treasury` accounts. -```typescript +```typescript filename="rpg.ts" import * as anchor from "@coral-xyz/anchor"; import { Program } from "@coral-xyz/anchor"; -import { Rpg, IDL } from "../target/types/rpg"; +import { Rpg } from "../target/types/rpg"; import { assert } from "chai"; +import { + Keypair, + LAMPORTS_PER_SOL, + PublicKey, + TransactionSignature, + TransactionConfirmationStrategy, +} from "@solana/web3.js"; import NodeWallet from "@coral-xyz/anchor/dist/cjs/nodewallet"; -describe("RPG", () => { - // Configure the client to use the local cluster. - anchor.setProvider(anchor.AnchorProvider.env()); - - const program = anchor.workspace.Rpg as Program; - const wallet = anchor.workspace.Rpg.provider.wallet - .payer as anchor.web3.Keypair; - const gameMaster = wallet; - const player = wallet; - - const treasury = anchor.web3.Keypair.generate(); - - it("Create Game", async () => {}); - - it("Create Player", async () => {}); - - it("Spawn Monster", async () => {}); - - it("Attack Monster", async () => {}); - - it("Deposit Action Points", async () => {}); +const GAME_SEED = "GAME"; +const PLAYER_SEED = "PLAYER"; +const MONSTER_SEED = "MONSTER"; +const MAX_ITEMS_PER_PLAYER = 8; +const INITIAL_MONSTER_HITPOINTS = 100; +const AIRDROP_AMOUNT = 10 * LAMPORTS_PER_SOL; +const CREATE_PLAYER_ACTION_POINTS = 100; +const SPAWN_MONSTER_ACTION_POINTS = 5; +const ATTACK_MONSTER_ACTION_POINTS = 1; +const MONSTER_INDEX_BYTE_LENGTH = 8; + +const provider = anchor.AnchorProvider.env(); +anchor.setProvider(provider); + +const program = anchor.workspace.Rpg as Program; +const wallet = provider.wallet as NodeWallet; +const gameMaster = wallet; +const player = wallet; + +const treasury = Keypair.generate(); + +const findProgramAddress = (seeds: Buffer[]): [PublicKey, number] => + PublicKey.findProgramAddressSync(seeds, program.programId); + +const confirmTransaction = async ( + signature: TransactionSignature, + provider: anchor.Provider, +) => { + const latestBlockhash = await provider.connection.getLatestBlockhash(); + const confirmationStrategy: TransactionConfirmationStrategy = { + signature, + blockhash: latestBlockhash.blockhash, + lastValidBlockHeight: latestBlockhash.lastValidBlockHeight, + }; + + try { + const confirmation = + await provider.connection.confirmTransaction(confirmationStrategy); + if (confirmation.value.err) { + throw new Error( + `Transaction failed: ${confirmation.value.err.toString()}`, + ); + } + } catch (error) { + throw new Error(`Transaction confirmation failed: ${error.message}`); + } +}; + +const createGameAddress = () => + findProgramAddress([Buffer.from(GAME_SEED), treasury.publicKey.toBuffer()]); + +const createPlayerAddress = (gameAddress: PublicKey) => + findProgramAddress([ + Buffer.from(PLAYER_SEED), + gameAddress.toBuffer(), + player.publicKey.toBuffer(), + ]); + +const createMonsterAddress = ( + gameAddress: PublicKey, + monsterIndex: anchor.BN, +) => + findProgramAddress([ + Buffer.from(MONSTER_SEED), + gameAddress.toBuffer(), + player.publicKey.toBuffer(), + monsterIndex.toArrayLike(Buffer, "le", MONSTER_INDEX_BYTE_LENGTH), + ]); + +describe("RPG game", () => { + it("creates a new game", async () => {}); + + it("creates a new player", async () => {}); + + it("spawns a monster", async () => {}); + + it("attacks a monster", async () => {}); + + it("deposits action points", async () => {}); }); ``` -Now lets add in the `Create Game` test. Just call `createGame` with eight items, -be sure to pass in all the accounts, and make sure the `treasury` account signs -the transaction. +Now lets add in the `creates a new game` test. Just call `createGame` with eight +items, be sure to pass in all the accounts, and make sure the `treasury` account +signs the transaction. ```typescript -it("Create Game", async () => { - const [gameKey] = anchor.web3.PublicKey.findProgramAddressSync( - [Buffer.from("GAME"), treasury.publicKey.toBuffer()], - program.programId, - ); - - const txHash = await program.methods - .createGame( - 8, // 8 Items per player - ) - .accounts({ - game: gameKey, - gameMaster: gameMaster.publicKey, - treasury: treasury.publicKey, - systemProgram: anchor.web3.SystemProgram.programId, - }) - .signers([treasury]) - .rpc(); - - await program.provider.connection.confirmTransaction(txHash); - - // Print out if you'd like - // const account = await program.account.game.fetch(gameKey); +it("creates a new game", async () => { + try { + const [gameAddress] = createGameAddress(); + + const createGameSignature = await program.methods + .createGame(MAX_ITEMS_PER_PLAYER) + .accounts({ + game: gameAddress, + gameMaster: gameMaster.publicKey, + treasury: treasury.publicKey, + systemProgram: anchor.web3.SystemProgram.programId, + }) + .signers([treasury]) + .rpc(); + + await confirmTransaction(createGameSignature, provider); + } catch (error) { + throw new Error(`Failed to create game: ${error.message}`); + } }); ``` @@ -1531,118 +1941,91 @@ anchor test some `.pnp.*` files and no `node_modules`, you may want to call `rm -rf .pnp.*` followed by `npm i` and then `yarn install`. That should work. -Now that everything is running, let's implement the `Create Player`, -`Spawn Monster`, and `Attack Monster` tests. Run each test as you complete them -to make sure things are running smoothly. +Now that everything is running, let's implement the `creates a new player`, +`spawns a monster`, and `attacks a monster` tests. Run each test as you complete +them to make sure things are running smoothly. ```typescript -it("Create Player", async () => { - const [gameKey] = anchor.web3.PublicKey.findProgramAddressSync( - [Buffer.from("GAME"), treasury.publicKey.toBuffer()], - program.programId, - ); - - const [playerKey] = anchor.web3.PublicKey.findProgramAddressSync( - [Buffer.from("PLAYER"), gameKey.toBuffer(), player.publicKey.toBuffer()], - program.programId, - ); - - const txHash = await program.methods - .createPlayer() - .accounts({ - game: gameKey, - playerAccount: playerKey, - player: player.publicKey, - systemProgram: anchor.web3.SystemProgram.programId, - }) - .rpc(); - - await program.provider.connection.confirmTransaction(txHash); - - // Print out if you'd like - // const account = await program.account.player.fetch(playerKey); +it("creates a new player", async () => { + try { + const [gameAddress] = createGameAddress(); + const [playerAddress] = createPlayerAddress(gameAddress); + + const createPlayerSignature = await program.methods + .createPlayer() + .accounts({ + game: gameAddress, + playerAccount: playerAddress, + player: player.publicKey, + systemProgram: anchor.web3.SystemProgram.programId, + }) + .rpc(); + + await confirmTransaction(createPlayerSignature, provider); + } catch (error) { + throw new Error(`Failed to create player: ${error.message}`); + } }); -it("Spawn Monster", async () => { - const [gameKey] = anchor.web3.PublicKey.findProgramAddressSync( - [Buffer.from("GAME"), treasury.publicKey.toBuffer()], - program.programId, - ); - - const [playerKey] = anchor.web3.PublicKey.findProgramAddressSync( - [Buffer.from("PLAYER"), gameKey.toBuffer(), player.publicKey.toBuffer()], - program.programId, - ); +it("spawns a monster", async () => { + try { + const [gameAddress] = createGameAddress(); + const [playerAddress] = createPlayerAddress(gameAddress); - const playerAccount = await program.account.player.fetch(playerKey); + const playerAccount = await program.account.player.fetch(playerAddress); + const [monsterAddress] = createMonsterAddress( + gameAddress, + playerAccount.nextMonsterIndex, + ); - const [monsterKey] = anchor.web3.PublicKey.findProgramAddressSync( - [ - Buffer.from("MONSTER"), - gameKey.toBuffer(), - player.publicKey.toBuffer(), - playerAccount.nextMonsterIndex.toBuffer("le", 8), - ], - program.programId, - ); - - const txHash = await program.methods - .spawnMonster() - .accounts({ - game: gameKey, - playerAccount: playerKey, - monster: monsterKey, - player: player.publicKey, - systemProgram: anchor.web3.SystemProgram.programId, - }) - .rpc(); - - await program.provider.connection.confirmTransaction(txHash); - - // Print out if you'd like - // const account = await program.account.monster.fetch(monsterKey); + const spawnMonsterSignature = await program.methods + .spawnMonster() + .accounts({ + game: gameAddress, + playerAccount: playerAddress, + monster: monsterAddress, + player: player.publicKey, + systemProgram: anchor.web3.SystemProgram.programId, + }) + .rpc(); + + await confirmTransaction(spawnMonsterSignature, provider); + } catch (error) { + throw new Error(`Failed to spawn monster: ${error.message}`); + } }); -it("Attack Monster", async () => { - const [gameKey] = anchor.web3.PublicKey.findProgramAddressSync( - [Buffer.from("GAME"), treasury.publicKey.toBuffer()], - program.programId, - ); +it("attacks a monster", async () => { + try { + const [gameAddress] = createGameAddress(); + const [playerAddress] = createPlayerAddress(gameAddress); - const [playerKey] = anchor.web3.PublicKey.findProgramAddressSync( - [Buffer.from("PLAYER"), gameKey.toBuffer(), player.publicKey.toBuffer()], - program.programId, - ); + const playerAccount = await program.account.player.fetch(playerAddress); + const [monsterAddress] = createMonsterAddress( + gameAddress, + playerAccount.nextMonsterIndex.subn(1), + ); - // Fetch the latest monster created - const playerAccount = await program.account.player.fetch(playerKey); - const [monsterKey] = anchor.web3.PublicKey.findProgramAddressSync( - [ - Buffer.from("MONSTER"), - gameKey.toBuffer(), - player.publicKey.toBuffer(), - playerAccount.nextMonsterIndex.subn(1).toBuffer("le", 8), - ], - program.programId, - ); - - const txHash = await program.methods - .attackMonster() - .accounts({ - playerAccount: playerKey, - monster: monsterKey, - player: player.publicKey, - systemProgram: anchor.web3.SystemProgram.programId, - }) - .rpc(); - - await program.provider.connection.confirmTransaction(txHash); - - // Print out if you'd like - // const account = await program.account.monster.fetch(monsterKey); - - const monsterAccount = await program.account.monster.fetch(monsterKey); - assert(monsterAccount.hitpoints.eqn(99)); + const attackMonsterSignature = await program.methods + .attackMonster() + .accounts({ + playerAccount: playerAddress, + monster: monsterAddress, + player: player.publicKey, + systemProgram: anchor.web3.SystemProgram.programId, + }) + .rpc(); + + await confirmTransaction(attackMonsterSignature, provider); + + const monsterAccount = await program.account.monster.fetch(monsterAddress); + assert( + monsterAccount.hitpoints.eqn(INITIAL_MONSTER_HITPOINTS - 1), + "Monster hitpoints should decrease by 1 after attack", + ); + } catch (error) { + throw new Error(`Failed to attack monster: ${error.message}`); + } }); ``` @@ -1650,7 +2033,7 @@ Notice the monster that we choose to attack is `playerAccount.nextMonsterIndex.subn(1).toBuffer('le', 8)`. This allows us to attack the most recent monster spawned. Anything below the `nextMonsterIndex` should be okay. Lastly, since seeds are just an array of bytes we have to turn -the index into the u64, which is little endian `le` at 8 bytes. +the index into the u64, which is a little endian `le` at 8 bytes. Run `anchor test` to deal some damage! @@ -1662,91 +2045,101 @@ game were running continuously, it probably makes sense to use something like [clockwork](https://www.clockwork.xyz/) cron jobs. ```typescript -it("Deposit Action Points", async () => { - const [gameKey] = anchor.web3.PublicKey.findProgramAddressSync( - [Buffer.from("GAME"), treasury.publicKey.toBuffer()], - program.programId, - ); - - const [playerKey] = anchor.web3.PublicKey.findProgramAddressSync( - [Buffer.from("PLAYER"), gameKey.toBuffer(), player.publicKey.toBuffer()], - program.programId, - ); - - // To show that anyone can deposit the action points - // Ie, give this to a clockwork bot - const clockworkWallet = anchor.web3.Keypair.generate(); - - // To give it a starting balance - const clockworkProvider = new anchor.AnchorProvider( - program.provider.connection, - new NodeWallet(clockworkWallet), - anchor.AnchorProvider.defaultOptions(), - ); - const clockworkProgram = new anchor.Program( - IDL, - program.programId, - clockworkProvider, - ); - - // Have to give the accounts some lamports else the tx will fail - const amountToInitialize = 10000000000; - - const clockworkAirdropTx = - await clockworkProgram.provider.connection.requestAirdrop( - clockworkWallet.publicKey, - amountToInitialize, +it("deposits action points", async () => { + try { + const [gameAddress] = createGameAddress(); + const [playerAddress] = createPlayerAddress(gameAddress); + + // To show that anyone can deposit the action points + // Ie, give this to a clockwork bot + const clockworkWallet = anchor.web3.Keypair.generate(); + + // To give it a starting balance + const clockworkProvider = new anchor.AnchorProvider( + program.provider.connection, + new NodeWallet(clockworkWallet), + anchor.AnchorProvider.defaultOptions(), ); - await program.provider.connection.confirmTransaction( - clockworkAirdropTx, - "confirmed", - ); - const treasuryAirdropTx = - await clockworkProgram.provider.connection.requestAirdrop( + // Have to give the accounts some lamports else the tx will fail + const amountToInitialize = 10000000000; + + const clockworkAirdropTx = + await clockworkProvider.connection.requestAirdrop( + clockworkWallet.publicKey, + amountToInitialize, + ); + + await confirmTransaction(clockworkAirdropTx, clockworkProvider); + + const treasuryAirdropTx = await clockworkProvider.connection.requestAirdrop( treasury.publicKey, amountToInitialize, ); - await program.provider.connection.confirmTransaction( - treasuryAirdropTx, - "confirmed", - ); - - const txHash = await clockworkProgram.methods - .depositActionPoints() - .accounts({ - game: gameKey, - player: playerKey, - treasury: treasury.publicKey, - systemProgram: anchor.web3.SystemProgram.programId, - }) - .rpc(); - - await program.provider.connection.confirmTransaction(txHash); - - const expectedActionPoints = 100 + 5 + 1; // Player Create ( 100 ) + Monster Spawn ( 5 ) + Monster Attack ( 1 ) - const treasuryBalance = await program.provider.connection.getBalance( - treasury.publicKey, - ); - assert( - treasuryBalance == amountToInitialize + expectedActionPoints, // Player Create ( 100 ) + Monster Spawn ( 5 ) + Monster Attack ( 1 ) - ); - - const gameAccount = await program.account.game.fetch(gameKey); - assert(gameAccount.actionPointsCollected.eqn(expectedActionPoints)); - - const playerAccount = await program.account.player.fetch(playerKey); - assert(playerAccount.actionPointsSpent.eqn(expectedActionPoints)); - assert(playerAccount.actionPointsToBeCollected.eqn(0)); + + await confirmTransaction(treasuryAirdropTx, clockworkProvider); + + const depositActionPointsSignature = await program.methods + .depositActionPoints() + .accounts({ + game: gameAddress, + player: playerAddress, + treasury: treasury.publicKey, + systemProgram: anchor.web3.SystemProgram.programId, + }) + .rpc(); + + await confirmTransaction(depositActionPointsSignature, provider); + + const expectedActionPoints = + CREATE_PLAYER_ACTION_POINTS + + SPAWN_MONSTER_ACTION_POINTS + + ATTACK_MONSTER_ACTION_POINTS; + const treasuryBalance = await provider.connection.getBalance( + treasury.publicKey, + ); + assert( + treasuryBalance === AIRDROP_AMOUNT + expectedActionPoints, + "Treasury balance should match expected action points", + ); + + const gameAccount = await program.account.game.fetch(gameAddress); + assert( + gameAccount.actionPointsCollected.eqn(expectedActionPoints), + "Game action points collected should match expected", + ); + + const playerAccount = await program.account.player.fetch(playerAddress); + assert( + playerAccount.actionPointsSpent.eqn(expectedActionPoints), + "Player action points spent should match expected", + ); + assert( + playerAccount.actionPointsToBeCollected.eqn(0), + "Player should have no action points to be collected", + ); + } catch (error) { + throw new Error(`Failed to deposit action points: ${error.message}`); + } }); ``` Finally, run `anchor test` to see everything working. +```bash + +RPG game + ✔ creates a new game (317ms) + ✔ creates a new player (399ms) + ✔ spawns a monster (411ms) + ✔ attacks a monster (413ms) + ✔ deposits action points (1232ms) +``` + Congratulations! This was a lot to cover, but you now have a mini RPG game engine. If things aren't quite working, go back through the lab and find where -you went wrong. If you need, you can refer to the -[`main` branch of the solution code](https://github.com/Unboxed-Software/anchor-rpg). +you went wrong. If you need to, you can refer to the +[`main` branch of the solution code](https://github.com/solana-developers/anchor-rpg). Be sure to put these concepts into practice in your own programs. Each little optimization adds up! @@ -1754,17 +2147,17 @@ optimization adds up! ## Challenge Now it's your turn to practice independently. Go back through the lab code -looking for additional optimizations and/or expansion you can make. Think +looking for additional optimizations and/or expansions you can make. Think through new systems and features you would add and how you would optimize them. -You can find some example modifications on the `challenge-solution` branch of -the -[RPG repository](https://github.com/Unboxed-Software/anchor-rpg/tree/challenge-solution). +You can find some example modifications on the +[`challenge-solution` branch of the RPG repository](https://github.com/solana-developers/anchor-rpg/tree/challenge-solution). Finally, go through one of your own programs and think about optimizations you can make to improve memory management, storage size, and/or concurrency. + Push your code to GitHub and [tell us what you thought of this lesson](https://form.typeform.com/to/IPH0UGz7#answers-lesson=4a628916-91f5-46a9-8eb0-6ba453aa6ca6)! From a72e6ee8cdb0f785bb24f9d2a95045fddafb0a3c Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Fri, 4 Oct 2024 15:51:47 +1000 Subject: [PATCH 099/206] Prettier --- .../onchain-development/intro-to-anchor.md | 42 +++++++++++-------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/content/courses/onchain-development/intro-to-anchor.md b/content/courses/onchain-development/intro-to-anchor.md index 69a4cb110..8b30b7ab6 100644 --- a/content/courses/onchain-development/intro-to-anchor.md +++ b/content/courses/onchain-development/intro-to-anchor.md @@ -84,14 +84,16 @@ declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"); ### Define instruction logic The `#[program]` attribute macro defines the module containing all of your -program's instruction handlers. This is where you implement the business logic for each -operation in your program. +program's instruction handlers. This is where you implement the business logic +for each operation in your program. Each public function in the module with the `#[program]` attribute will be treated as a separate instruction handler. -Each instruction handler (function) requires a parameter of type `Context` and can include more parameters as needed. Anchor will automatically handle instruction data -deserialization so that you can work with instruction data as Rust types. +Each instruction handler (function) requires a parameter of type `Context` and +can include more parameters as needed. Anchor will automatically handle +instruction data deserialization so that you can work with instruction data as +Rust types. ```rust #[program] @@ -135,8 +137,8 @@ pub struct Context<'a, 'b, 'c, 'info, T: Bumps> { ``` `Context` is a generic type where `T` defines the list of accounts an -instruction handler requires. When you use `Context`, you specify the concrete type of -`T` as a struct that adopts the `Accounts` trait. +instruction handler requires. When you use `Context`, you specify the concrete +type of `T` as a struct that adopts the `Accounts` trait. The first argument of every instruction handler must be `Context`. `Context` takes a generic of your `Accounts` struct, eg, if `AddMovieReview` was the @@ -152,8 +154,8 @@ Through this context argument the instruction can then access: - The accounts passed into the instruction (`ctx.accounts`) - The program ID (`ctx.program_id`) of the executing program - The remaining accounts (`ctx.remaining_accounts`). The `remaining_accounts` is - a vector that contains all accounts that were passed into the instruction handler but - are not declared in the `Accounts` struct. + a vector that contains all accounts that were passed into the instruction + handler but are not declared in the `Accounts` struct. - The bumps for any PDA accounts in the `Accounts` struct (`ctx.bumps`) - The seeds for any PDA accounts in tha `Accounts` struct (`ctx.seeds`) @@ -207,8 +209,8 @@ pub struct InstructionAccounts<'info> { When `instruction_one` is invoked, the program: -- Checks that the accounts passed into the instruction handler match the account types - specified in the `InstructionAccounts` struct +- Checks that the accounts passed into the instruction handler match the account + types specified in the `InstructionAccounts` struct - Checks the accounts against any additional constraints specified > If any accounts passed into `instruction_one` fail the account validation or @@ -602,9 +604,10 @@ pub struct Initialize<'info> { #### 4. Add the `initialize` instruction handler Now that we have our `Counter` account and `Initialize` type , let's implement -the `initialize` instruction handler within `#[program]`. This instruction handler requires a `Context` of type `Initialize` and takes no additional instruction data. -In the instruction logic, we are simply setting the `counter` account's `count` field -to `0`. +the `initialize` instruction handler within `#[program]`. This instruction +handler requires a `Context` of type `Initialize` and takes no additional +instruction data. In the instruction logic, we are simply setting the `counter` +account's `count` field to `0`. ```rust pub fn initialize(ctx: Context) -> Result<()> { @@ -619,8 +622,8 @@ pub fn initialize(ctx: Context) -> Result<()> { #### 5. Implement `Context` type `Update` Now, using the `#[derive(Accounts)]` macro again, let's create the `Update` type -that lists the accounts that the `increment` instruction handler requires. It'll need -the following accounts: +that lists the accounts that the `increment` instruction handler requires. It'll +need the following accounts: - `counter` - an existing counter account to increment - `user` - payer for the transaction fee @@ -639,9 +642,12 @@ pub struct Update<'info> { #### 6. Add `increment` instruction handler -Lastly, within `#[program]`, let's implement an `increment` instruction handler to -increment the `count` once a `counter` account is initialized by the first -instruction handler. This instruction handler requires a `Context` of type `Update` (implemented in the next step) and takes no additional instruction data. In the instruction logic, we are simply incrementing an existing `counter` account's `count` field by `1`. +Lastly, within `#[program]`, let's implement an `increment` instruction handler +to increment the `count` once a `counter` account is initialized by the first +instruction handler. This instruction handler requires a `Context` of type +`Update` (implemented in the next step) and takes no additional instruction +data. In the instruction logic, we are simply incrementing an existing `counter` +account's `count` field by `1`. ```rust pub fn increment(ctx: Context) -> Result<()> { From 8c76f3f8abdb3385498af6dd074133af5d730d4a Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Fri, 4 Oct 2024 15:52:03 +1000 Subject: [PATCH 100/206] Add TODO --- content/courses/intro-to-solana/interact-with-wallets.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/courses/intro-to-solana/interact-with-wallets.md b/content/courses/intro-to-solana/interact-with-wallets.md index 27738df9f..960366e60 100644 --- a/content/courses/intro-to-solana/interact-with-wallets.md +++ b/content/courses/intro-to-solana/interact-with-wallets.md @@ -346,6 +346,8 @@ using in this lab. ### Download the starter code + + Download the [starter code for this project](https://github.com/Unboxed-Software/solana-ping-frontend/tree/starter). This project is a simple Next.js application. It's mostly empty except for the From 8048f51042bb9c7a07cca562858fcb2d92cdd06a Mon Sep 17 00:00:00 2001 From: wuuer Date: Fri, 4 Oct 2024 14:22:42 +0800 Subject: [PATCH 101/206] fix and improve close-mint course (#536) * Update the Token Extensions Program link * sync token-program.md from main * change "mint" to "token mint account". add a typescript code example for using an account on devnet while calling "initializeKeypair" in the section [2. Run validator node] add a typescript code example for importing our new function in the section [3. Create a mint with close authority] change "const mintInfo" to "let mintInfo" because "mintInfo" is used again in the "CLOSE MINT" code part. --------- Co-authored-by: Jeff Wood --- .../courses/token-extensions/close-mint.md | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/content/courses/token-extensions/close-mint.md b/content/courses/token-extensions/close-mint.md index 42a0df6eb..8c3cd9caa 100644 --- a/content/courses/token-extensions/close-mint.md +++ b/content/courses/token-extensions/close-mint.md @@ -198,10 +198,10 @@ await setAuthority( ## Lab -In this lab, we'll create a mint with the `close mint` extension. We will then -mint some of the tokens and see what happens when we try to close it with a -non-zero supply (hint, the close transaction will fail). Lastly, we will burn -the supply and close the account. +In this lab, we'll create a token mint account with the `close mint` extension. +We will then mint some of the tokens and see what happens when we try to close +it with a non-zero supply (hint, the close transaction will fail). Lastly, we +will burn the supply and close the account. ### 1. Getting Started @@ -304,6 +304,14 @@ running `solana config get` in your terminal. And then go to address. You can get your address from running `solana address` in your terminal. +For example, assuming `keypairPath` is `/home/.config/solana/id.json` + +```typescript +const payer = initializeKeypair(connection, { + keypairPath: "/home/.config/solana/id.json", +}); +``` + ### 3. Create a mint with close authority Let's create a closable mint by creating the function `createClosableMint` in a @@ -399,7 +407,13 @@ export async function createClosableMint( ``` Now let's call this function in `src/index.ts`. First you'll need to import our -new function. Then paste the following under the right comment section: +new function by uncommenting the 3rd line. + +```ts +import { createClosableMint } from "./create-mint"; +``` + +Then paste the following under the right comment section: ```ts // CREATE A MINT WITH CLOSE AUTHORITY @@ -470,7 +484,7 @@ Underneath the minting functions, add the following code block: /** * Get mint information to verify supply */ -const mintInfo = await getMint( +let mintInfo = await getMint( connection, mintKeypair.publicKey, "finalized", @@ -591,7 +605,7 @@ Putting this all together we get: ```ts // CLOSE MINT -const mintInfo = await getMint( +mintInfo = await getMint( connection, mintKeypair.publicKey, "finalized", From e019790d33c1b75561146c4abd4a870b9bddca1e Mon Sep 17 00:00:00 2001 From: 0xCipherCoder Date: Fri, 4 Oct 2024 12:33:19 +0530 Subject: [PATCH 102/206] Program security - Account data matching lesson updated (#440) * Added fix for code snippets and content * Update content/courses/program-security/account-data-matching.md --------- Co-authored-by: Mike MacCana --- .../program-security/account-data-matching.md | 300 ++++++++++-------- 1 file changed, 167 insertions(+), 133 deletions(-) diff --git a/content/courses/program-security/account-data-matching.md b/content/courses/program-security/account-data-matching.md index baff3b5bf..6ecb10f5a 100644 --- a/content/courses/program-security/account-data-matching.md +++ b/content/courses/program-security/account-data-matching.md @@ -12,39 +12,43 @@ description: - Use **data validation checks** to verify that account data matches an expected value. Without appropriate data validation checks, unexpected accounts may be - used in an instruction. + used in an instruction handler. - To implement data validation checks in Rust, simply compare the data stored on an account to an expected value. + ```rust if ctx.accounts.user.key() != ctx.accounts.user_data.user { return Err(ProgramError::InvalidAccountData.into()); } ``` -- In Anchor, you can use `constraint` to checks whether the given expression - evaluates to true. Alternatively, you can use `has_one` to check that a target - account field stored on the account matches the key of an account in the - `Accounts` struct. + +- In Anchor, you can use a + [`constraint`](https://www.anchor-lang.com/docs/account-constraints) to check + whether the given expression evaluates to true. Alternatively, you can use + `has_one` to check that a target account field stored on the account matches + the key of an account in the `Accounts` struct. ## Lesson Account data matching refers to data validation checks used to verify the data stored on an account matches an expected value. Data validation checks provide a way to include additional constraints to ensure the appropriate accounts are -passed into an instruction. +passed into an instruction handler. -This can be useful when accounts required by an instruction have dependencies on -values stored in other accounts or if an instruction is dependent on the data -stored in an account. +This can be useful when accounts required by an instruction handler have +dependencies on values stored in other accounts or if an instruction handler is +dependent on the data stored in an account. -#### Missing data validation check +### Missing data validation check -The example below includes an `update_admin` instruction that updates the -`admin` field stored on an `admin_config` account. +The example below includes an `update_admin` instruction handler that updates +the `admin` field stored on an `admin_config` account. -The instruction is missing a data validation check to verify the `admin` account -signing the transaction matches the `admin` stored on the `admin_config` +The instruction handler is missing a data validation check to verify the `admin` +account signing the transaction matches the `admin` stored on the `admin_config` account. This means any account signing the transaction and passed into the -instruction as the `admin` account can update the `admin_config` account. +instruction handler as the `admin` account can update the `admin_config` +account. ```rust use anchor_lang::prelude::*; @@ -67,7 +71,8 @@ pub struct UpdateAdmin<'info> { pub admin_config: Account<'info, AdminConfig>, #[account(mut)] pub admin: Signer<'info>, - pub new_admin: SystemAccount<'info>, + /// CHECK: This account will not be checked by anchor + pub new_admin: UncheckedAccount<'info>, } #[account] @@ -76,7 +81,7 @@ pub struct AdminConfig { } ``` -#### Add data validation check +### Add Data Validation Check The basic Rust approach to solve this problem is to simply compare the passed in `admin` key to the `admin` key stored in the `admin_config` account, throwing an @@ -88,9 +93,9 @@ if ctx.accounts.admin.key() != ctx.accounts.admin_config.admin { } ``` -By adding a data validation check, the `update_admin` instruction would only -process if the `admin` signer of the transaction matched the `admin` stored on -the `admin_config` account. +By adding a data validation check, the `update_admin` instruction handler would +only process if the `admin` signer of the transaction matched the `admin` stored +on the `admin_config` account. ```rust use anchor_lang::prelude::*; @@ -116,7 +121,8 @@ pub struct UpdateAdmin<'info> { pub admin_config: Account<'info, AdminConfig>, #[account(mut)] pub admin: Signer<'info>, - pub new_admin: SystemAccount<'info>, + /// CHECK: This account will not be checked by anchor + pub new_admin: UncheckedAccount<'info>, } #[account] @@ -125,11 +131,11 @@ pub struct AdminConfig { } ``` -#### Use Anchor constraints +### Use Anchor Constraints Anchor simplifies this with the `has_one` constraint. You can use the `has_one` -constraint to move the data validation check from the instruction logic to the -`UpdateAdmin` struct. +constraint to move the data validation check from the instruction handler logic +to the `UpdateAdmin` struct. In the example below, `has_one = admin` specifies that the `admin` account signing the transaction must match the `admin` field stored on the @@ -161,7 +167,8 @@ pub struct UpdateAdmin<'info> { pub admin_config: Account<'info, AdminConfig>, #[account(mut)] pub admin: Signer<'info>, - pub new_admin: SystemAccount<'info>, + /// CHECK: This account will not be checked by anchor + pub new_admin: UncheckedAccount<'info>, } #[account] @@ -185,46 +192,51 @@ pub struct UpdateAdmin<'info> { pub admin_config: Account<'info, AdminConfig>, #[account(mut)] pub admin: Signer<'info>, - pub new_admin: SystemAccount<'info>, + /// CHECK: This account will not be checked by anchor + pub new_admin: UncheckedAccount<'info>, } ``` ## Lab -For this lab we'll create a simple “vault” program similar to the program we +For this lab, we'll create a simple “vault” program similar to the program we used in the Signer Authorization lesson and the Owner Check lesson. Similar to those labs, we'll show in this lab how a missing data validation check could allow the vault to be drained. -#### 1. Starter +### 1. Starter -To get started, download the starter code from the `starter` branch of -[this repository](https://github.com/Unboxed-Software/solana-account-data-matching). +To get started, download the starter code from the +[`starter` branch of this repository](https://github.com/solana-developers/account-data-matching/tree/starter). The starter code includes a program with two instructions and the boilerplate setup for the test file. -The `initialize_vault` instruction initializes a new `Vault` account and a new -`TokenAccount`. The `Vault` account will store the address of a token account, -the authority of the vault, and a withdraw destination token account. +The `initialize_vault` instruction handler initializes a new `Vault` account and +a new `TokenAccount`. The `Vault` account will store the address of a token +account, the authority of the vault, and a withdraw destination token account. The authority of the new token account will be set as the `vault`, a PDA of the program. This allows the `vault` account to sign for the transfer of tokens from the token account. -The `insecure_withdraw` instruction transfers all the tokens in the `vault` -account's token account to a `withdraw_destination` token account. +The `insecure_withdraw` instruction handler transfers all the tokens in the +`vault` account's token account to a `withdraw_destination` token account. -Notice that this instruction \***\*does\*\*** have a signer check for + + +Notice that this instruction handler \***\*does\*\*** have a signer check for `authority` and an owner check for `vault`. However, nowhere in the account -validation or instruction logic is there code that checks that the `authority` -account passed into the instruction matches the `authority` account on the -`vault`. +validation or instruction handler logic is there code that checks that the +`authority` account passed into the instruction handler matches the `authority` +account on the `vault`. ```rust use anchor_lang::prelude::*; use anchor_spl::token::{self, Mint, Token, TokenAccount}; -declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"); +declare_id!("J89xWAprDsLAAwcTA6AhrK49UMSAYJJWdXvw4ZQK4suu"); + +pub const DISCRIMINATOR_SIZE: usize = 8; #[program] pub mod account_data_matching { @@ -240,7 +252,7 @@ pub mod account_data_matching { pub fn insecure_withdraw(ctx: Context) -> Result<()> { let amount = ctx.accounts.token_account.amount; - let seeds = &[b"vault".as_ref(), &[*ctx.bumps.get("vault").unwrap()]]; + let seeds = &[b"vault".as_ref(), &[ctx.bumps.vault]]; let signer = [&seeds[..]]; let cpi_ctx = CpiContext::new_with_signer( @@ -263,7 +275,7 @@ pub struct InitializeVault<'info> { #[account( init, payer = authority, - space = 8 + 32 + 32 + 32, + space = DISCRIMINATOR_SIZE + Vault::INIT_SPACE, seeds = [b"vault"], bump, )] @@ -306,6 +318,7 @@ pub struct InsecureWithdraw<'info> { } #[account] +#[derive(Default, InitSpace)] pub struct Vault { token_account: Pubkey, authority: Pubkey, @@ -313,64 +326,73 @@ pub struct Vault { } ``` -#### 2. Test `insecure_withdraw` instruction +### 2. Test insecure_withdraw Instruction Handler To prove that this is a problem, let's write a test where an account other than the vault's `authority` tries to withdraw from the vault. The test file includes the code to invoke the `initialize_vault` instruction -using the provider wallet as the `authority` and then mints 100 tokens to the -`vault` token account. +handler using the provider wallet as the `authority` and then mints 100 tokens +to the `vault` token account. -Add a test to invoke the `insecure_withdraw` instruction. Use -`withdrawDestinationFake` as the `withdrawDestination` account and `walletFake` -as the `authority`. Then send the transaction using `walletFake`. +Add a test to invoke the `insecure_withdraw` instruction handler. Use +`fakeWithdrawDestination` as the `withdrawDestination` account and `fakeWallet` +as the `authority`. Then send the transaction using `fakeWallet`. Since there are no checks the verify the `authority` account passed into the -instruction matches the values stored on the `vault` account initialized in the -first test, the instruction will process successfully and the tokens will be -transferred to the `withdrawDestinationFake` account. +instruction handler matches the values stored on the `vault` account initialized +in the first test, the instruction handler will process successfully and the +tokens will be transferred to the `fakeWithdrawDestination` account. ```typescript -describe("account-data-matching", () => { +describe("Account Data Matching", () => { ... - it("Insecure withdraw", async () => { - const tx = await program.methods - .insecureWithdraw() - .accounts({ - vault: vaultPDA, - tokenAccount: tokenPDA, - withdrawDestination: withdrawDestinationFake, - authority: walletFake.publicKey, - }) - .transaction() - - await anchor.web3.sendAndConfirmTransaction(connection, tx, [walletFake]) - - const balance = await connection.getTokenAccountBalance(tokenPDA) - expect(balance.value.uiAmount).to.eq(0) - }) + it("allows insecure withdrawal", async () => { + try { + const tx = await program.methods + .insecureWithdraw() + .accounts({ + vault: vaultPDA, + tokenAccount: tokenPDA, + withdrawDestination: fakeWithdrawDestination, + authority: fakeWallet.publicKey, + }) + .transaction(); + + await anchor.web3.sendAndConfirmTransaction(provider.connection, tx, [ + fakeWallet, + ]); + + const tokenAccount = await getAccount(provider.connection, tokenPDA); + expect(Number(tokenAccount.amount)).to.equal(0); + } catch (error) { + throw new Error( + `Insecure withdraw failed unexpectedly: ${error.message}`, + ); + } + }); }) ``` Run `anchor test` to see that both transactions will complete successfully. ```bash -account-data-matching - ✔ Initialize Vault (811ms) - ✔ Insecure withdraw (403ms) +Account Data Matching + ✔ initializes the vault and mints tokens (879ms) + ✔ allows insecure withdrawal (431ms) ``` -#### 3. Add `secure_withdraw` instruction +### 3. Add secure_withdraw Instruction Handler -Let's go implement a secure version of this instruction called +Let's go implement a secure version of this instruction handler called `secure_withdraw`. -This instruction will be identical to the `insecure_withdraw` instruction, -except we'll use the `has_one` constraint in the account validation struct -(`SecureWithdraw`) to check that the `authority` account passed into the -instruction matches the `authority` account on the `vault` account. That way -only the correct authority account can withdraw the vault's tokens. +This instruction handler will be identical to the `insecure_withdraw` +instruction handler, except we'll use the `has_one` constraint in the account +validation struct (`SecureWithdraw`) to check that the `authority` account +passed into the instruction handler matches the `authority` account on the +`vault` account. That way only the correct authority account can withdraw the +vault's tokens. ```rust use anchor_lang::prelude::*; @@ -378,6 +400,8 @@ use anchor_spl::token::{self, Mint, Token, TokenAccount}; declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"); +pub const DISCRIMINATOR_SIZE: usize = 8; + #[program] pub mod account_data_matching { use super::*; @@ -385,7 +409,7 @@ pub mod account_data_matching { pub fn secure_withdraw(ctx: Context) -> Result<()> { let amount = ctx.accounts.token_account.amount; - let seeds = &[b"vault".as_ref(), &[*ctx.bumps.get("vault").unwrap()]]; + let seeds = &[b"vault".as_ref(), &[ctx.bumps.vault]]; let signer = [&seeds[..]]; let cpi_ctx = CpiContext::new_with_signer( @@ -411,7 +435,6 @@ pub struct SecureWithdraw<'info> { has_one = token_account, has_one = authority, has_one = withdraw_destination, - )] pub vault: Account<'info, Vault>, #[account( @@ -427,94 +450,104 @@ pub struct SecureWithdraw<'info> { } ``` -#### 4. Test `secure_withdraw` instruction +### 4. Test secure_withdraw Instruction Handler -Now let's test the `secure_withdraw` instruction with two tests: one that uses -`walletFake` as the authority and one that uses `wallet` as the authority. We -expect the first invocation to return an error and the second to succeed. +Now let's test the `secure_withdraw` instruction handler with two tests: one +that uses `fakeWallet` as the authority and one that uses `wallet` as the +authority. We expect the first invocation to return an error and the second to +succeed. ```typescript describe("account-data-matching", () => { ... - it("Secure withdraw, expect error", async () => { + it("prevents unauthorized secure withdrawal", async () => { try { const tx = await program.methods .secureWithdraw() .accounts({ vault: vaultPDA, tokenAccount: tokenPDA, - withdrawDestination: withdrawDestinationFake, - authority: walletFake.publicKey, + withdrawDestination: fakeWithdrawDestination, + authority: fakeWallet.publicKey, }) - .transaction() + .transaction(); - await anchor.web3.sendAndConfirmTransaction(connection, tx, [walletFake]) - } catch (err) { - expect(err) - console.log(err) + await anchor.web3.sendAndConfirmTransaction(provider.connection, tx, [ + fakeWallet, + ]); + + throw new Error("Secure withdraw should have failed but didn't"); + } catch (error) { + expect(error).to.be.an("error"); + console.log("Expected error occurred:", error.message); } - }) - - it("Secure withdraw", async () => { - await spl.mintTo( - connection, - wallet.payer, - mint, - tokenPDA, - wallet.payer, - 100 - ) - - await program.methods - .secureWithdraw() - .accounts({ - vault: vaultPDA, - tokenAccount: tokenPDA, - withdrawDestination: withdrawDestination, - authority: wallet.publicKey, - }) - .rpc() - - const balance = await connection.getTokenAccountBalance(tokenPDA) - expect(balance.value.uiAmount).to.eq(0) - }) + }); + + it("allows secure withdrawal by authorized user", async () => { + try { + await new Promise((resolve) => setTimeout(resolve, 1000)); + + await mintTo( + provider.connection, + wallet.payer, + mint, + tokenPDA, + wallet.payer, + 100, + ); + + await program.methods + .secureWithdraw() + .accounts({ + vault: vaultPDA, + tokenAccount: tokenPDA, + withdrawDestination, + authority: wallet.publicKey, + }) + .rpc(); + + const tokenAccount = await getAccount(provider.connection, tokenPDA); + expect(Number(tokenAccount.amount)).to.equal(0); + } catch (error) { + throw new Error(`Secure withdraw failed unexpectedly: ${error.message}`); + } + }); }) ``` Run `anchor test` to see that the transaction using an incorrect authority -account will now return an Anchor Error while the transaction using correct -accounts completes successfully. +account will now return an Anchor Error while the transaction using the correct +accounts complete successfully. ```bash -'Program Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS invoke [1]', -'Program log: Instruction: SecureWithdraw', -'Program log: AnchorError caused by account: vault. Error Code: ConstraintHasOne. Error Number: 2001. Error Message: A has one constraint was violated.', -'Program log: Left:', -'Program log: DfLZV18rD7wCQwjYvhTFwuvLh49WSbXFeJFPQb5czifH', -'Program log: Right:', -'Program log: 5ovvmG5ntwUC7uhNWfirjBHbZD96fwuXDMGXiyMwPg87', -'Program Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS consumed 10401 of 200000 compute units', -'Program Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS failed: custom program error: 0x7d1' +"Program J89xWAprDsLAAwcTA6AhrK49UMSAYJJWdXvw4ZQK4suu invoke [1]", +"Program log: Instruction: SecureWithdraw", +"Program log: AnchorError caused by account: vault. Error Code: ConstraintHasOne. Error Number: 2001. Error Message: A has one constraint was violated.", +"Program log: Left:", +"Program log: GprrWv9r8BMxQiWea9MrbCyK7ig7Mj8CcseEbJhDDZXM", +"Program log: Right:", +"Program log: 2jTDDwaPzbpG2oFnnqtuHJpiS9k9dDVqzzfA2ofcqfFS", +"Program J89xWAprDsLAAwcTA6AhrK49UMSAYJJWdXvw4ZQK4suu consumed 11790 of 200000 compute units", +"Program J89xWAprDsLAAwcTA6AhrK49UMSAYJJWdXvw4ZQK4suu failed: custom program error: 0x7d1" ``` Note that Anchor specifies in the logs the account that causes the error (`AnchorError caused by account: vault`). ```bash -✔ Secure withdraw, expect error (77ms) -✔ Secure withdraw (10073ms) +✔ prevents unauthorized secure withdrawal +✔ allows secure withdrawal by authorized user (1713ms) ``` And just like that, you've closed up the security loophole. The theme across most of these potential exploits is that they're quite simple. However, as your -programs grow in scope and complexity, it becomse increasingly easy to miss +programs grow in scope and complexity, it becomes increasingly easy to miss possible exploits. It's great to get in a habit of writing tests that send instructions that _shouldn't_ work. The more the better. That way you catch problems before you deploy. If you want to take a look at the final solution code you can find it on the -`solution` branch of -[the repository](https://github.com/Unboxed-Software/solana-account-data-matching/tree/solution). +[`solution` branch of the repository](https://github.com/solana-developers/account-data-matching/tree/solution). ## Challenge @@ -528,6 +561,7 @@ Remember, if you find a bug or exploit in somebody else's program, please alert them! If you find one in your own program, be sure to patch it right away. + Push your code to GitHub and [tell us what you thought of this lesson](https://form.typeform.com/to/IPH0UGz7#answers-lesson=a107787e-ad33-42bb-96b3-0592efc1b92f)! From 9a4e026932ee18e98bb94ef376116346032cbd43 Mon Sep 17 00:00:00 2001 From: Dogukan Ali Gundogan <59707019+DogukanGun@users.noreply.github.com> Date: Fri, 4 Oct 2024 09:08:18 +0200 Subject: [PATCH 103/206] Update solana pay content (#345) * Update solana pay content * Update for the review * Delete unnecessary else * Prettier the code * Review update for error handling * Name fixing for content of solana pay course * Change naming at solana pay's content --- content/courses/solana-pay/solana-pay.md | 157 +++++++++++------------ 1 file changed, 75 insertions(+), 82 deletions(-) diff --git a/content/courses/solana-pay/solana-pay.md b/content/courses/solana-pay/solana-pay.md index bfacb6677..5d08a75e4 100644 --- a/content/courses/solana-pay/solana-pay.md +++ b/content/courses/solana-pay/solana-pay.md @@ -3,10 +3,9 @@ title: Solana Pay objectives: - Use the Solana Pay specification to build payment requests and initiate transactions using URLs encoded as QR codes - - Use the `@solana/pay` library to help with the creation of Solana Pay - transaction requests + - Use the `@solana/pay` library to create Solana Pay transaction requests - Partially sign transactions and implement transaction gating based on - certain conditions + specific conditions description: "How to create Solana Pay payment requests using links and QR codes." --- @@ -15,19 +14,19 @@ description: - **Solana Pay** is a specification for encoding Solana transaction requests within URLs, enabling standardized transaction requests across different - Solana apps and wallets -- **Partial signing** of transactions allows for the creation of transactions - that require multiple signatures before they are submitted to the network + Solana apps and wallets. +- **Partial signing** of transactions allows the creation of transactions that + require multiple signatures before they are submitted to the network. - **Transaction gating** involves implementing rules that determine whether - certain transactions are allowed to be processed or not, based on certain - conditions or the presence of specific data in the transaction + certain transactions are allowed to be processed, based on specific conditions + or the presence of particular data in the transaction. ## Lesson The Solana community is continually improving and expanding the network's -functionality. But that doesn't always mean developing brand new technology. +functionality. But that doesn't always mean developing brand-new technology. Sometimes it means leveraging the network's existing features in new and -interesting ways. +innovative ways. Solana Pay is a great example of this. Rather than adding new functionality to the network, Solana Pay uses the network's existing signing features in a unique @@ -38,17 +37,17 @@ Throughout this lesson, you'll learn how to use Solana Pay to create transfer and transaction requests, encode these requests as a QR code, partially sign transactions, and gate transactions based on conditions you choose. Rather than leaving it at that, we hope you'll see this as an example of leveraging existing -features in new and interesting ways, using it as a launching pad for your own +features in new and innovative ways, using it as a launching pad for your own unique client-side network interactions. ### Solana Pay The [Solana Pay specification](https://docs.solanapay.com/spec) is a set of standards that allow users to request payments and initiate transactions using -URLs in a uniform way across various Solana apps and wallets. +URLs uniformly across various Solana apps and wallets. Request URLs are prefixed with `solana:` so that platforms can direct the link -to the appropriate application. For example, on mobile a URL that starts with +to the appropriate application. For example, on mobile, a URL that starts with `solana:` will be directed to wallet applications that support the Solana Pay specification. From there, the wallet can use the remainder of the URL to appropriately handle the request. @@ -141,8 +140,8 @@ a function that handles the request and response. import { NextApiRequest, NextApiResponse } from "next"; export default async function handler( - req: NextApiRequest, - res: NextApiResponse, + request: NextApiRequest, + response: NextApiResponse, ) { // Handle the request } @@ -163,18 +162,17 @@ Building on the empty endpoint from before, that may look like this: import { NextApiRequest, NextApiResponse } from "next"; export default async function handler( - req: NextApiRequest, - res: NextApiResponse, + request: NextApiRequest, + response: NextApiResponse, ) { - if (req.method === "GET") { - return get(res); - } else { - return res.status(405).json({ error: "Method not allowed" }); + if (request.method === "GET") { + return get(response); } + return response.status(405).json({ error: "Method not allowed" }); } -function get(res: NextApiResponse) { - res.status(200).json({ +function get(response: NextApiResponse) { + response.status(200).json({ label: "Store Name", icon: "https://solana.com/src/img/branding/solanaLogoMark.svg", }); @@ -205,26 +203,26 @@ transaction and return it to the wallet for signing by: import { NextApiRequest, NextApiResponse } from "next"; export default async function handler( - req: NextApiRequest, - res: NextApiResponse, + request: NextApiRequest, + response: NextApiResponse, ) { - if (req.method === "GET") { - return get(res); - } else if (req.method === "POST") { - return post(req, res); - } else { - return res.status(405).json({ error: "Method not allowed" }); + if (request.method === "GET") { + return get(response); } + if (request.method === "POST") { + return post(request, response); + } + return response.status(405).json({ error: "Method not allowed" }); } -function get(res: NextApiResponse) { - res.status(200).json({ +function get(response: NextApiResponse) { + response.status(200).json({ label: "Store Name", icon: "https://solana.com/src/img/branding/solanaLogoMark.svg", }); } -async function post(req: PublicKey, res: PublicKey) { - const { account, reference } = req.body; +async function post(request: NextApiRequest, response: NextApiResponse) { + const { account, reference } = request.body; const connection = new Connection(clusterApiUrl("devnet")); @@ -241,14 +239,14 @@ async function post(req: PublicKey, res: PublicKey) { lamports: 0.001 * LAMPORTS_PER_SOL, }); - transaction.add(instruction); - - transaction.keys.push({ + instruction.keys.push({ pubkey: reference, isSigner: false, isWritable: false, }); + transaction.add(instruction); + const serializedTransaction = transaction.serialize({ requireAllSignatures: false, }); @@ -256,7 +254,7 @@ async function post(req: PublicKey, res: PublicKey) { const message = "Simple transfer of 0.001 SOL"; - res.send(200).json({ + response.status(200).json({ transaction: base64, message, }); @@ -495,21 +493,21 @@ variable. The first thing we'll do in this file is the following: import { NextApiRequest, NextApiResponse } from "next"; export default async function handler( - req: NextApiRequest, - res: NextApiResponse, + request: NextApiRequest, + response: NextApiResponse, ) { - if (req.method === "GET") { - return get(res); - } else if (req.method === "POST") { - return await post(req, res); - } else { - return res.status(405).json({ error: "Method not allowed" }); + if (request.method === "GET") { + return get(response); } + if (request.method === "POST") { + return await post(request, response); + } + return response.status(405).json({ error: "Method not allowed" }); } -function get(res: NextApiResponse) {} +function get(response: NextApiResponse) {} -async function post(req: NextApiRequest, res: NextApiResponse) {} +async function post(request: NextApiRequest, response: NextApiResponse) {} ``` #### 4. Update `get` function @@ -519,8 +517,8 @@ endpoint to return a label and icon. Update the `get` function to send a response with a "Scavenger Hunt!" label and a Solana logo icon. ```jsx -function get(res: NextApiResponse) { - res.status(200).json({ +function get(response: NextApiResponse) { + response.status(200).json({ label: "Scavenger Hunt!", icon: "https://solana.com/src/img/branding/solanaLogoMark.svg", }); @@ -561,35 +559,31 @@ import { NextApiRequest, NextApiResponse } from "next" import { PublicKey, Transaction } from "@solana/web3.js" ... -async function post(req: NextApiRequest, res: NextApiResponse) { - const { account } = req.body - const { reference, id } = req.query - - if (!account || !reference || !id) { - res.status(400).json({ error: "Missing required parameter(s)" }) - return - } - - try { - const transaction = await buildTransaction( - new PublicKey(account), - new PublicKey(reference), - id.toString() - ) - - res.status(200).json({ - transaction: transaction, - message: `You've found location ${id}!`, - }) - } catch (err) { - console.log(err) - let error = err as any - if (error.message) { - res.status(200).json({ transaction: "", message: error.message }) - } else { - res.status(500).json({ error: "error creating transaction" }) - } - } +async function post(request: NextApiRequest, response: NextApiResponse) { + const { account } = request.body; + const { reference, id } = request.query; + + if (!account || !reference || !id) { + response.status(400).json({ error: "Missing required parameter(s)" }); + return; + } + + try { + const transaction = await buildTransaction( + new PublicKey(account), + new PublicKey(reference), + id.toString(), + ); + + response.status(200).json({ + transaction: transaction, + message: `You've found location ${id}!`, + }); + } catch (error) { + console.log(error); + response.status(500).json({ transaction: "", message: error.message }); + return; + } } async function buildTransaction( @@ -769,9 +763,8 @@ function verifyCorrectLocation( if (!lastLocation || currentLocation.index !== lastLocation.index + 1) { return false; - } else { - return true; } + return true; } ``` From cd05d15a8933198a2db7e56134e505945e273d97 Mon Sep 17 00:00:00 2001 From: danielAsaboro Date: Fri, 4 Oct 2024 08:17:23 +0100 Subject: [PATCH 104/206] Generalized state compression (#470) * chore: updated lesson title, and summary * chore: updated lesson and theoretical overview of state compression * chore: updated lesson on concurrent merkle tree and broke it down into smaller sections for easy understanding * chore: updated lesson on data access in a state-compressed program and tooling * chore: updated lesson on indexing data for easy lookup * chore: updated lesson on creating rust types for compression development process * chore: updated lesson on initializing a new tree for compression development process * chore: updated lesson on adding hashes to the tree for compression development process * chore: updated lesson on adding hashes for compression development process * chore: updated lesson on updating and deleting hashes for compression development process * chore: updated lesson on updating and deleting hashes for compression development process * chore: updated lesson on accessing data from a client for compression development process * chore: update project setup in Lab section for Building a Note-Taking App with Generalized State Compression * chore: update step 2: define note schema in Lab section for Building a Note-Taking App with Generalized State Compression * chore: update step 3: define input account and constraints - in Lab section for Building a Note-Taking App with Generalized State Compression * chore: update step 4: create "create_note_tree" instruction - in Lab section for Building a Note-Taking App with Generalized State Compression * chore: update step 5: create "append_note_tree" instructuion - in Labs section for buiding a Note-Taking App with Generalized State Compression * chore: update step 6: create "update_note" instruction - in Lab section for Building a Note-Taking App with Generalized State Compression * chore: update step 7: "client test setup" instruction - in Lab section for Building a Note-Taking App with Generalized State Compression * fix: update step 7 for more info into the utility file provided * chore: update step 8: "write client test" instruction - in Lab section for Building a Note-Taking App with Generalized State Compression * chore: update challenge section in Lab section for Building a Note-Taking App with Generalized State Compression * fix: fixed content formatting issues * fix: used grammarly to fix grammar issues * fix: fixed on-chain to onchain * fix: fixed lack of objectives semantic tag after title section * fix: fixed description semantic tag issue * Update content/courses/state-compression/generalized-state-compression.md Fixed Merkle tree description summary Co-authored-by: Mike MacCana * fix: fixed concurrent tree explanation markdown * fix: fixed grammar issue in last intro to theoretical overview of state compression * fix deterministic with predictably * Update content/courses/state-compression/generalized-state-compression.md Co-authored-by: Mike MacCana * Update content/courses/state-compression/generalized-state-compression.md Co-authored-by: Mike MacCana * Update content/courses/state-compression/generalized-state-compression.md Co-authored-by: Mike MacCana * Update content/courses/state-compression/generalized-state-compression.md Made the intro more clearer Co-authored-by: Mike MacCana * Update content/courses/state-compression/generalized-state-compression.md reinforce that the final hash is called a Merkle root Co-authored-by: Mike MacCana * Update content/courses/state-compression/generalized-state-compression.md removed redundant explanation of merkle tree Co-authored-by: Mike MacCana * Update content/courses/state-compression/generalized-state-compression.md fixed redundant word "entire" Co-authored-by: Mike MacCana * Update content/courses/state-compression/generalized-state-compression.md called out the concurrent modifier in a merkle tree Co-authored-by: Mike MacCana * Update content/courses/state-compression/generalized-state-compression.md removed redundant establishment of concurrent merkle tree as the solution to dealing with multiple transactions in the same slot Co-authored-by: Mike MacCana * Update content/courses/state-compression/generalized-state-compression.md remove redundant explanation of a concurrent merkle tree Co-authored-by: Mike MacCana * Update content/courses/state-compression/generalized-state-compression.md corrected incorrect information of what is logged to the Noop Program Co-authored-by: Mike MacCana * Update content/courses/state-compression/generalized-state-compression.md clarified what the Solana Noop Program is to the reader Co-authored-by: Mike MacCana * Update content/courses/state-compression/generalized-state-compression.md added code blocks to file names, config option, and package names Co-authored-by: Mike MacCana * Update content/courses/state-compression/generalized-state-compression.md rename functions that handle instructions as function handlers as per the CONTRIBUTING.md guidelines Co-authored-by: Mike MacCana * fix: fixed formatting issues * fix: broke down content * fix: reflected Mikes suggestion * fix: fixed all rust content and addded extra documentation * fix: updated the client side test, and made more explicit for clarity * fix: fixed grammar issues with header semantic tag content * fix: rephrased what state compression is per mikes suggestion * fix: fix grammar and vocab issues * fix: fixed instructional handler issue * fix: fixed redundancies in test files * fix: redirected them to main branch from solution branch * fix: added package.json and yarn lock * revert: revert package json and yarn lock to main state --------- Co-authored-by: Mike MacCana --- .../generalized-state-compression.md | 1711 ++++++++++------- package.json | 2 +- yarn.lock | 2 +- 3 files changed, 998 insertions(+), 717 deletions(-) diff --git a/content/courses/state-compression/generalized-state-compression.md b/content/courses/state-compression/generalized-state-compression.md index f91169e38..4e7b04cb6 100644 --- a/content/courses/state-compression/generalized-state-compression.md +++ b/content/courses/state-compression/generalized-state-compression.md @@ -1,309 +1,374 @@ --- -title: Generalized State Compression +title: Generalized State Compression objectives + objectives: - - Explain the logic flow behind Solana state compression + - Explain the flow of Solana’s state compression logic. - Explain the difference between a Merkle tree and a concurrent Merkle tree - - Implement generic state compression in basic Solana programs + - Implement generic state compression in a basic Solana program + description: - "How state compression - the tech behind compressed NFTs - works, and how to - implement it in your own Solana programs." + Understand how state compression - the technology behind compressed NFTs works + - and learn how to apply it in your Solana programs. --- ## Summary -- State Compression on Solana is most commonly used for compressed NFTs, but - it's possible to use it for arbitrary data -- State Compression lowers the amount of data you have to store onchain by - leveraging Merkle trees. -- Merkle trees store a single hash that represents an entire binary tree of - hashes. Each leaf on a Merkle tree is a hash of that leaf's data. -- Concurrent Merkle trees are a specialized version of Merkle trees that allow - concurrent updates. -- Because data in a state-compressed program is not stored onchain, you have to - user indexers to keep an offchain cache of the data and then verify that data - against the onchain Merkle tree. +- State compression on Solana is primarily used for compressed NFTs (cNFTs), but + it can be applied to any data type +- State Compression lowers the amount of data you have to store onchain using + Merkle trees. +- A Merkle tree compresses data by hashing pairs of data repeatedly until a + single root hash is produced. This root hash is then stored onchain. +- Each leaf on a Merkle tree is a hash of that leaf’s data. +- A concurrent Merkle tree is a specialized version of a Merkle tree. Unlike a + standard Merkle tree, it allows multiple updates simultaneously without + affecting transaction validity. +- Data in a state-compressed program is not stored onchain. So you have to use + indexers to keep an offchain cache of the data. It’s this offchain cache data + that is used to then verify against the onchain Merkle tree. ## Lesson -Previously, we discussed state compression in the context of compressed NFTs. At -the time of writing, compressed NFTs represent the most common use case for -state compression, but it's possible to use state compression within any -program. In this lesson, we'll discuss state compression in more generalized -terms so that you can apply it to any of your programs. +Previously, we talked about state compression in the context of compressed NFTs. + +While compressed NFTs are the main use case for state compression, you can apply +state compression to any Solana program. In this lesson, we’ll discuss state +compression in general terms so you can use it across your Solana projects. ### A theoretical overview of state compression -In traditional programs, data is serialized (typically using borsh) and then -stored directly in an account. This allows the data to be easily read and -written through Solana programs. You can “trust” the data stored in the accounts -because it can't be modified except through the mechanisms surfaced by the -program. - -State compression effectively asserts that the most important piece of this -equation is how “trustworthy” the data is. If all we care about is the ability -to trust that data is what it claims to be, then we can actually get away with -**_not_** storing the data in an account onchain. Instead, we can store hashes -of the data where the hashes can be used to prove or verify the data. The data -hash takes up significantly less storage space than the data itself. We can then -store the actual data somewhere much cheaper and worry about verifying it -against the onchain hash when the data is accessed. - -The specific data structure used by the Solana State Compression program is a -special binary tree structure known as a **concurrent Merkle tree**. This tree -structure hashes pieces of data together in a deterministic way to compute a -single, final hash that gets stored onchain. This final hash is significantly -smaller in size than all the original data combined, hence the “compression.” -The steps to this process are: - -1. Take any piece of data -2. Create a hash of this data -3. Store this hash as a “leaf” at the bottom of the tree -4. Each leaf pair is then hashed together, creating a “branch” -5. Each branch is then hashed together -6. Continually climb the tree and hash adjacent branches together -7. Once at the top of the tree, a final ”root hash” is produced -8. Store the root hash onchain as verifiable proof of the data within each leaf -9. Anyone wanting to verify that the data they have matches the “source of - truth” can go through the same process and compare the final hash without - having to store all the data onchain - -This involves a few rather serious development tradeoffs: - -1. Since the data is no longer stored in an account onchain, it is more - difficult to access. -2. Once the data has been accessed, developers must decide how often their - applications will verify the data against the onchain hash. -3. Any changes to the data will require sending the entirety of the previously - hashed data _and_ the new data into an instruction. Developer may also have - to provide additional data relevant to the proofs required to verify the - original data against the hash. - -Each of these will be a consideration when determining **if**, **when**, and -**how** to implement state compression for your program. +Normally, data in Solana programs is serialized (usually with borsh) and stored +directly in an account. This makes it easy to read and write the data through +the program. The account data is trustworthy because only the program can modify +it. + +However to verify the integrity of the data, then there’s no need to store the +actual data onchain. Instead, we can store hashes of the data, which can be used +to prove or verify its accuracy. This is called _state compression_. + +These hashes take up far less storage space than the original data. The full +data can be stored in a cheaper, offchain location, and only needs to be +verified against the onchain hash when accessed. + +The Solana State Compression program uses a Solana State Compression program +known as a **concurrent Merkle tree**. A concurrent Merkle tree is a special +kind of binary tree that deterministically hashes data, i.e. the same inputs +will always produce the same Merkle root. + +The final hash, called a _Merkle root_, is significantly smaller in size than +all the original full data sets combined. This is why it’s called "compression". +And it’s this hash that’s stored onchain. + +**Outlined below are the steps to this process, in order:** + +1. Take a piece of data. +2. Create a hash of that data. +3. Store the hash as a "leaf" at the bottom of the tree. +4. Hash pairs of leaves together to create branches. +5. Hash pairs of branches together. +6. Repeat this process until you reach the top of the tree. +7. The top of the tree contains a final "root hash." +8. Store this root hash onchain as proof of the data. +9. To verify the data, recompute the hashes and compare the final hash to the + onchain root hash. + +This method comes with some trade-offs: + +1. The data isn’t stored onchain, so it’s harder to access. +2. Developers must decide how often to verify the data against the onchain hash. +3. If the data changes, the entire data set must be sent to the program, along + with the new data. You’ll also need proof that the data matches the hash. + +These considerations will guide you when deciding whether, when, and how to +implement state compression in your programs. With that quick overview, let’s go +into more technical detail. #### Concurrent Merkle trees -A **Merkle tree** is a binary tree structure represented by a single hash. Every -leaf node in the structure is a hash of its inner data while every branch is a -hash of its child leaf hashes. In turn, branches are also hashed together until, -eventually, one final root hash remains. - -Since the Merkle tree is represented as a single hash, any modification to leaf -data changes the root hash. This causes an issue when multiple transactions in -the same slot are attempting to modify leaf data. Since these transactions must -execute in series, all but the first will fail since the root hash and proof -passed in will have been invalidated by the first transaction to be executed. In -other words, a standard Merkle tree can only modify a single leaf per slot. In a -hypothetical state-compressed program that relies on a single Merkle tree for -its state, this severely limits throughput. - -This can be solved with a **concurrent Merkle tree**. A concurrent Merkle -tree is a Merkle tree that stores a secure changelog of the most recent changes -along with their root hash and the proof to derive it. When multiple -transactions in the same slot try to modify leaf data, the changelog can be used -as a source of truth to allow for concurrent changes to be made to the tree. - -In other words, while an account storing a Merkle tree would have only the root -hash, a concurrent Merkle tree will also contain additional data that allows -subsequent writes to successfully occur. This includes: - -1. The root hash - The same root hash that a standard Merkle tree has. -2. A changelog buffer - This buffer contains proof data pertinent to recent root - hash changes so that subsequent writes in the same slot can still be - successful. -3. A canopy - When performing an update action on any given leaf, you need the - entire proof path from that leaf to the root hash. The canopy stores - intermediate proof nodes along that path so they don't all have to be passed - into the program from the client. - -As a program architect, you control three values directly related to these three -items. Your choice determines the size of the tree, the cost to create the tree, -and the number of concurrent changes that can be made to the tree: - -1. Max depth -2. Max buffer size -3. Canopy depth - -The **max depth** is the maximum number of hops to get from any leaf to the root -of the tree. Since Merkle trees are binary trees, every leaf is connected only -to one other leaf. Max depth can then logically be used to calculate the number -of nodes for the tree with `2 ^ maxDepth`. - -The **max buffer size** is effectively the maximum number of concurrent changes -that you can make to a tree within a single slot with the root hash still being -valid. When multiple transactions are submitted in the same slot, each of which -is competing to update leafs on a standard Merkle tree, only the first to run -will be valid. This is because that “write” operation will modify the hash -stored in the account. Subsequent transactions in the same slot will be trying -to validate their data against a now-outdated hash. A concurrent Merkle tree has -a buffer so that the buffer can keep a running log of these modifications. This -allows the State Compression Program to validate multiple data writes in the -same slot because it can look up what the previous hashes were in the buffer and -compare against the appropriate hash. - -The **canopy depth** is the number of proof nodes that are stored onchain for -any given proof path. Verifying any leaf requires the complete proof path for -the tree. The complete proof path is made up of one proof node for every “layer” -of the tree, i.e. a max depth of 14 means there are 14 proof nodes. Every proof -node passed into the program adds 32 bytes to a transaction, so large trees -would quickly exceed the maximum transaction size limit. Caching proof nodes -onchain in the canopy helps improve program composability. - -Each of these three values, max depth, max buffer size, and canopy depth, comes -with a tradeoff. Increasing the value of any of these values increases the size -of the account used to store the tree, thus increasing the cost of creating the -tree. - -Choosing the max depth is fairly straightforward as it directly relates to the -number of leafs and therefore the amount of data you can store. If you need 1 -million cNFTs on a single tree where each cNFT is a leaf of the tree, find the -max depth that makes the following expression true: `2^maxDepth > 1 million`. -The answer is 20. - -Choosing a max buffer size is effectively a question of throughput: how many -concurrent writes do you need? The larger the buffer, the higher the throughput. - -Lastly, the canopy depth will determine your program's composability. State -compression pioneers have made it clear that omitting a canopy is a bad idea. -Program A can't call your state-compressed program B if doing so maxes out the -transaction size limits. Remember, program A also has required accounts and data -in addition to required proof paths, each of which take up transaction space. - -#### Data access on a state-compressed program - -A state-compressed account doesn't store the data itself. Rather, it stores the -concurrent Merkle tree structure discussed above. The raw data itself lives only -in the blockchain's cheaper **ledger state.** This makes data access somewhat -more difficult, but not impossible. - -The Solana ledger is a list of entries containing signed transactions. In -theory, this can be traced back to the genesis block. This effectively means any -data that has ever been put into a transaction exists in the ledger. - -Since the state compression hashing process occurs onchain, all the data exists -in the ledger state and could theoretically be retrieved from the original -transaction by replaying the entire chain state from the beginning. However, -it's much more straightforward (though still complicated) to have -an **indexer** track and index this data as the transactions occur. This ensures -there is an offchain “cache” of the data that anyone can access and subsequently -verify against the onchain root hash. - -This process is complex, but it will make sense after some practice. - -### State compression tooling - -The theory described above is essential to properly understanding state -compression. But you don't have to implement any of it from scratch. Brilliant -engineers have laid most of the groundwork for you in the form of the SPL State -Compression Program and the Noop Program. +Since a Merkle tree is represented as a single hash, any change to a leaf node +alters the root hash. This becomes problematic when multiple transactions in the +same slot try to update leaf data in the same slot. Since transactions are +executed serially i.e. one after the other — all but the first will fail since +the root hash and proof passed in will have been invalidated by the first +transaction executed. + +In short, a standard Merkle tree can only handle one leaf update per +[slot](https://solana.com/docs/terminology#slot). This significantly limits the +throughput in a state-compressed program that depends on a single Merkle tree +for its state. + +Thankfully, this issue can be addressed using a _concurrent_ Merkle tree. Unlike +a regular Merkle tree, a concurrent Merkle tree keeps a secure changelog of +recent updates, along with their root hash and the proof needed to derive it. +When multiple transactions in the same slot attempt to modify leaf data, the +changelog serves as a reference, enabling concurrent updates to the tree. + +How does the concurrent Merkle tree achieve this? In a standard Merkle tree, +only the root hash is stored. However, a concurrent Merkle tree includes extra +data that ensures subsequent writes can succeed. + +This includes: + +1. The root hash - The same root hash found in a regular Merkle tree. +2. A changelog buffer - A buffer containing proof data for recent root hash + changes, allowing further writes in the same slot to succeed. +3. A canopy - To update a specific leaf, you need the entire proof path from the + leaf to the root hash. The canopy stores intermediate proof nodes along this + path so that not all of them need to be sent from the client to the program. + +### Key Parameters for Configuring a Concurrent Merkle Tree + +As a developer, you are responsible for controlling three key parameters that +directly affect the tree’s size, cost, and the number of concurrent changes it +can handle: + +1. **Max Depth** +2. **Max Buffer Size** +3. **Canopy Depth** + +Let’s take a brief overview of each parameter. + +#### Max Depth + +The **max depth** determines how many levels or "hops" are required to reach the +root of the tree from any leaf. Since Merkle trees are structured as binary +trees, where each leaf is paired with only one other leaf, the max depth can be +used to calculate the total number of nodes in the tree with the formula: +`2^maxDepth`. + +Here’s a quick TypeScript function for illustration: + +```typescript +const getMaxDepth = (itemCount: number) => { + if (itemCount === 0) { + return 0; + } + return Math.ceil(Math.log2(itemCount)); +}; +``` + +A max depth of 20 would allow for over one million leaves, making it suitable +for storing large datasets like NFTs. + +#### Max Buffer Size + +The **max buffer size** controls how many concurrent updates can be made to the +tree within a single slot while keeping the root hash valid. In a standard +Merkle tree, only the first transaction in a slot would be successful since it +updates the root hash, causing all subsequent transactions to fail due to hash +mismatches. However, in a concurrent Merkle tree, the buffer maintains a log of +changes, allowing multiple transactions to update the tree simultaneously by +checking the appropriate root hash from the buffer. A larger buffer size +increases throughput by enabling more concurrent changes. + +#### Canopy Depth + +The **canopy depth** specifies how many proof nodes are stored onchain for any +given proof path. To verify any leaf in the tree, you need a complete proof +path, which includes one proof node for every layer of the tree. For a tree with +a max depth of 14, there will be 14 proof nodes in total. Each proof node adds +32 bytes to the transaction, and without careful management, large trees could +exceed the transaction size limit. + +Storing more proof nodes onchain (i.e., having a deeper canopy) allows other +programs to interact with your tree without exceeding transaction limits, but it +also uses more onchain storage. Consider the complexity of interactions with +your tree when deciding on an appropriate canopy depth. + +### Balancing Trade-offs + +These three values—max depth, max buffer size, and canopy depth—all come with +trade-offs. Increasing any of them will enlarge the account used to store the +tree, raising the cost of creating the tree. + +- **Max Depth:** This is straightforward to determine based on how much data + needs to be stored. For example, if you need to store 1 million compressed + NFTs (cNFTs), where each cNFT is a leaf, you would need a max depth of 20 + (`2^maxDepth > 1 million`). +- **Max Buffer Size:** The choice of buffer size is mainly a question of + throughput—how many concurrent updates are required? A larger buffer allows + for more updates in the same slot. +- **Canopy Depth:** A deeper canopy improves composability, enabling other + programs to interact with your state-compressed program without exceeding + transaction size limits. Omitting the canopy is discouraged, as it could cause + issues with transaction size, especially when other programs are involved. + +### Data Access in a State-Compressed Program + +In a state-compressed program, the actual data isn’t stored directly onchain. +Instead, the concurrent Merkle tree structure is stored, while the raw data +resides in the blockchain’s more affordable ledger state. This makes accessing +the data more challenging, but not impossible. + +The Solana ledger is essentially a list of entries containing signed +transactions, which can be traced back to the Genesis block theoretically. This +means any data that has ever been included in a transaction is stored in the +ledger. + +Since the state compression process happens onchain, all the data is still in +the ledger state. In theory, you could retrieve the original data by replaying +the entire chain state from the start. However, it’s far more practical (though +still somewhat complex) to use an indexer to track and index the data as the +transactions happen. This creates an offchain "cache" of the data that can be +easily accessed and verified against the onchain root hash. + +While this process may seem complex at first, it becomes clearer with practice. + +### State Compression Tooling + +While understanding the theory behind state compression is crucial, you don’t +have to build it all from scratch. Talented engineers have already developed +essential tools like the SPL State Compression Program and the Noop Program to +simplify the process. #### SPL State Compression and Noop Programs -The SPL State Compression Program exists to make the process of creating and -updating concurrent Merkle trees repeatable and composable throughout the Solana -ecosystem. It provides instructions for initializing Merkle trees, managing tree -leafs (i.e. add, update, remove data), and verifying leaf data. - -The State Compression Program also leverages a separate “no op” program whose -primary purpose is to make leaf data easier to index by logging it to the ledger -state. When you want to store compressed data, you pass it to the State -Compression program where it gets hashed and emitted as an “event” to the Noop -program. The hash gets stored in the corresponding concurrent Merkle tree, but -the raw data remains accessible through the Noop program's transaction logs. - -#### Index data for easy lookup - -Under normal conditions, you would typically access onchain data by fetching the -appropriate account. When using state compression, however, it's not so -straightforward. - -As mentioned above, the data now exists in the ledger state rather than in an -account. The easiest place to find the full data is in the logs of the Noop -instruction. Unfortunately, while this data will in a sense exist in the ledger -state forever, it will likely be inaccessible through validators after a certain -period of time. - -To save space and be more performant, validators don't retain every transaction -back to the genesis block. The specific amount of time you'll be able to access -the Noop instruction logs related to your data will vary based on the validator. -Eventually, you'll lose access to it if you're relying directly on instruction -logs. - -Technically, you *can* replay the transaction state back to the genesis block -but the average team isn't going to do that, and it certainly won't be -performant. The +The SPL State Compression Program is designed to streamline and standardize the +creation and management of concurrent Merkle trees across the Solana ecosystem. +It provides Instruction Handlers for initializing Merkle trees, handling tree +leaves (such as adding, updating, or removing data), and verifying the integrity +of leaf data. + +Additionally, the State Compression Program works in conjunction with a separate +"Noop" program. A [no-op program]() +does nothing - literally 'no operation.' The Solana Noop Program only logs data +to the ledger state, however that logging is essential to state compression: + +When you store compressed data, it’s passed to the State Compression Program, +which hashes the data and emits it as an "event" to the Noop Program. While the +hash is stored in the concurrent Merkle tree, the raw data can still be accessed +via the Noop Program’s transaction logs. + +### Indexing Data for Easy Lookup + +Typically, accessing onchain data is as simple as fetching the relevant account. +However, with state compression, it’s not that straightforward. + +As mentioned earlier, the data now resides in the ledger state rather than in an +account. The most accessible place to find the complete data is in the logs of +the Noop instruction. While this data remains in the ledger state indefinitely, +it may become inaccessible through validators after a certain period. + +Validators don’t store all transactions back to the Genesis block to save space +and improve performance. The length of time you can access Noop instruction logs +varies depending on the validator. Eventually, the logs will become unavailable +if you’re relying on direct access to them. + +In theory, it’s possible to replay transaction states back to the genesis block, +but this approach is impractical for most teams and isn’t efficient. Some RPC +providers have adopted the [Digital Asset Standard (DAS)](https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api) -has been adopted by many RPC providers to enable efficient queries of compressed -NFTs and other assets. However, at the time of writing, it doesn't support -arbitrary state compression. Instead, you have two primary options: +to enable efficient querying of compressed NFTs and other assets. However, as of +now, DAS does not support arbitrary state compression. + +You essentially have two main options: -1. Use an indexing provider that will build a custom indexing solution for your - program that observes the events sent to the Noop program and stores the +1. Use an indexing provider to create a custom indexing solution for your + program, which will monitor the events sent to the Noop program and store the relevant data offchain. -2. Create your own pseudo-indexing solution that stores transaction data - offchain. +2. Build your indexing solution that stores transaction data offchain. -For many dApps, option 2 makes plenty of sense. Larger-scale applications may -need to rely on infrastructure providers to handle their indexing. +For many dApps, option 2 can be a practical choice. Larger-scale applications, +however, may need to rely on infrastructure providers to manage their indexing +needs. -### State compression development process +### State Compression Development Process -#### Create Rust types +#### Create Rust Types -As with a typical Anchor program, one of the first things you should do is -define your program's Rust types. However, Rust types in a traditional Anchor -program often represent accounts. In a state-compressed program, your account -state will only store the Merkle tree. The more “usable” data schema will just -be serialized and logged to the Noop program. +In a typical Anchor program, developers often start by defining the Rust types +that represent accounts. For a state-compressed program, however, the focus +shifts to defining types that align with the Merkle tree structure. -This type should include all the data stored in the leaf node and any contextual -information needed to make sense of the data. For example, if you were to create -a simple messaging program, your `Message` struct might look as follows: +In state compression, your onchain account will primarily store the Merkle tree. +The more practical data will be serialized and logged to the Noop program for +easier access and management. Your Rust types should encompass all data stored +in the leaf nodes and any contextual information necessary for interpreting that +data. For instance, if you’re developing a simple messaging program, your +`Message` struct might look something like this: ```rust -#[derive(AnchorSerialize)] +const DISCRIMINATOR_SIZE: usize = 8; +const PUBKEY_SIZE: usize = 32; + +/// A log entry for messages sent between two public keys. +#[derive(AnchorSerialize, AnchorDeserialize)] pub struct MessageLog { - leaf_node: [u8; 32], // The leaf node hash - from: Pubkey, // Pubkey of the message sender - to: Pubkey, // Pubkey of the message recipient - message: String, // The message to send + /// The leaf node hash for message logging. + pub leaf_node: [u8; DISCRIMINATOR_SIZE + PUBKEY_SIZE], + /// The public key of the message sender. + pub from: Pubkey, + /// The public key of the message recipient. + pub to: Pubkey, + /// The actual message content. + pub message: String, } -impl MessageLog { - // Constructs a new message log from given leaf node and message - pub fn new(leaf_node: [u8; 32], from: Pubkey, to: Pubkey, message: String) -> Self { - Self { leaf_node, from, to, message } - } +/// Constructs a new `MessageLog`. +/// +/// # Arguments +/// +/// * `leaf_node` - A 32-byte array representing the leaf node hash. +/// * `from` - The public key of the message sender. +/// * `to` - The public key of the message recipient. +/// * `message` - The message to be sent. +/// +/// # Returns +/// +/// Returns a new `MessageLog` instance. +pub fn new_message_log(leaf_node: [u8; DISCRIMINATOR_SIZE + PUBKEY_SIZE], from: Pubkey, to: Pubkey, message: String) -> MessageLog { + MessageLog { leaf_node, from, to, message } } ``` -To be abundantly clear, **this is not an account that you will be able to read -from**. Your program will be creating an instance of this type from instruction -inputs, not constructing an instance of this type from account data that it -reads. We'll discuss how to read data in a later section. +To be absolutely clear, the **`MessageLog` is not an account you will read +from**. Instead, your program will create an instance of `MessageLog` using +inputs from Instructions Handler, rather than constructing it from data read +from an account. We will cover how to read data from compressed accounts later. -#### Initialize a new tree +#### Initialize a New Tree -Clients will create and initialize the Merkle tree account in two separate -instructions. The first is simply allocating the account by calling System -Program. The second will be an instruction that you create on a custom program -that initializes the new account. This initialization is effectively just -recording what the max depth and buffer size for the Merkle tree should be. +To set up a new Merkle tree, clients need to perform two distinct steps. -All this instruction needs to do is build a CPI to invoke the -`init_empty_merkle_tree` instruction on the State Compression Program. Since -this requires the max depth and max buffer size, these will need to be passed in -as arguments to the instruction. +1. First, they allocate the account by calling the System Program. +2. Next, they use a custom program to initialize the new account. This + initialization involves setting the maximum depth and buffer size for the + Merkle tree. -Remember, the max depth refers to the maximum number of hops to get from any -leaf to the root of the tree. Max buffer size refers to the amount of space -reserved for storing a changelog of tree updates. This changelog is used to -ensure that your tree can support concurrent updates within the same block. +The initialization Instruction Handler must create a CPI (Cross-Program +Invocation) to call the `init_empty_merkle_tree` instruction from the State +Compression Program. You’ll need to provide the maximum depth and buffer size as +arguments to this instruction Handler. -For example, if we were initializing a tree for storing messages between users, -the instruction might look like this: +- **Max depth**: Defines the maximum number of hops needed to travel from any + leaf to the root of the tree. +- **Max buffer size**: Specifies the space allocated for storing a changelog of + tree updates. This changelog is essential for supporting concurrent updates + within the same block. + +For instance, if you are initializing a tree to store messages between users, +your Instruction Handler might look like this: ```rust +/// Initializes an empty Merkle tree for storing messages with a specified depth and buffer size. +/// +/// This function creates a CPI (Cross-Program Invocation) call to initialize the Merkle tree account +/// using the provided authority and compression program. The PDA (Program Derived Address) seeds are used for +/// signing the transaction. +/// +/// # Arguments +/// +/// * `ctx` - The context containing the accounts required for Merkle tree initialization. +/// * `max_depth` - The maximum depth of the Merkle tree. +/// * `max_buffer_size` - The maximum buffer size of the Merkle tree. +/// +/// # Returns +/// +/// This function returns a `Result<()>`, indicating success or failure. +/// +/// # Errors +/// +/// This function will return an error if the CPI call to `init_empty_merkle_tree` fails. pub fn create_messages_tree( ctx: Context, max_depth: u32, // Max depth of the Merkle tree @@ -311,130 +376,185 @@ pub fn create_messages_tree( ) -> Result<()> { // Get the address for the Merkle tree account let merkle_tree = ctx.accounts.merkle_tree.key(); - // Define the seeds for pda signing - let signer_seeds: &[&[&[u8]]] = &[ + + // The seeds for PDAs signing + let signers_seeds: &[&[&[u8]]] = &[ &[ - merkle_tree.as_ref(), // The address of the Merkle tree account as a seed - &[*ctx.bumps.get("tree_authority").unwrap()], // The bump seed for the pda + merkle_tree.as_ref(), // The address of the Merkle tree account + &[*ctx.bumps.get("tree_authority").unwrap()], // The bump seed for the PDA ], ]; - // Create cpi context for init_empty_merkle_tree instruction. + // Create CPI context for `init_empty_merkle_tree` instruction handler let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.compression_program.to_account_info(), // The spl account compression program + ctx.accounts.compression_program.to_account_info(), // The SPL account compression program Initialize { authority: ctx.accounts.tree_authority.to_account_info(), // The authority for the Merkle tree, using a PDA merkle_tree: ctx.accounts.merkle_tree.to_account_info(), // The Merkle tree account to be initialized noop: ctx.accounts.log_wrapper.to_account_info(), // The noop program to log data }, - signer_seeds // The seeds for pda signing + signers_seeds // The seeds for PDAs signing ); - // CPI to initialize an empty Merkle tree with given max depth and buffer size + // CPI to initialize an empty Merkle tree with the given max depth and buffer size init_empty_merkle_tree(cpi_ctx, max_depth, max_buffer_size)?; Ok(()) } ``` -#### Add hashes to the tree - -With an initialized Merkle tree, it's possible to start adding data hashes. This -involves passing the uncompressed data to an instruction on your program that -will hash the data, log it to the Noop program, and use the State Compression -Program's `append` instruction to add the hash to the tree. The following -discuss what your instruction needs to do in depth: - -1. Use the `hashv` function from the `keccak` crate to hash the data. In most - cases, you'll want to also hash the owner or authority of the data as well to - ensure that it can only be modified by the proper authority. -2. Create a log object representing the data you wish to log to the Noop - Program, then call `wrap_application_data_v1` to issue a CPI to the Noop - program with this object. This ensures that the uncompressed data is readily - available to any client looking for it. For broad use cases like cNFTs, that - would be indexers. You might also create your own observing client to - simulate what indexers are doing but specific to your application. -3. Build and issue a CPI to the State Compression Program's `append` - instruction. This takes the hash computed in step 1 and adds it to the next - available leaf on your Merkle tree. Just as before, this requires the Merkle - tree address and the tree authority bump as signature seeds. - -When all this is put together using the messaging example, it looks something -like this: +#### Adding Hashes to the Tree + +Once the Merkle tree is initialized, you can begin adding data hashes to it. +This process involves passing the uncompressed data to an Instruction handler +within your program, which will hash the data, log it to the Noop Program, and +then use the State Compression Program’s `append` instruction to add the hash to +the tree. Here’s how the Instruction Handler operates in detail: + +1. **Hash the Data**: Use the `hashv` function from the `keccak` crate to hash + the data. It’s recommended to include the data owner or authority in the hash + to ensure that only the proper authority can modify it. +2. **Log the Data**: Create a log object representing the data you want to log + to the Noop Program. Then, call `wrap_application_data_v1` to issue a CPI + (Cross-Program Invocation) to the Noop Program with this object. This makes + the uncompressed data easily accessible to any client, such as indexers, that + may need it. You could also develop a custom client to observe and index data + for your application specifically. + +3. **Append the Hash**: Construct and issue a CPI to the State Compression + Program’s `append` Instruction. This will take the hash generated in step 1 + and append it to the next available leaf on the Merkle tree. As with previous + steps, this requires the Merkle tree address and tree authority bump as + signature seeds. + +When applied to a messaging system, the resulting implementation might look like +this: ```rust -// Instruction for appending a message to a tree. +/// Appends a message to the Merkle tree. +/// +/// This function hashes the message and the sender’s public key to create a leaf node, +/// logs the message using the noop program, and appends the leaf node to the Merkle tree. +/// +/// # Arguments +/// +/// * `ctx` - The context containing the accounts required for appending the message. +/// * `message` - The message to append to the Merkle tree. +/// +/// # Returns +/// +/// This function returns a `Result<()>`, indicating success or failure. +/// +/// # Errors +/// +/// This function will return an error if any of the CPI calls (logging or appending) fail. pub fn append_message(ctx: Context, message: String) -> Result<()> { - // Hash the message + whatever key should have update authority + // Hash the message + sender’s public key to create a leaf node let leaf_node = keccak::hashv(&[message.as_bytes(), ctx.accounts.sender.key().as_ref()]).to_bytes(); - // Create a new "message log" using the leaf node hash, sender, receipient, and message - let message_log = MessageLog::new(leaf_node.clone(), ctx.accounts.sender.key().clone(), ctx.accounts.receipient.key().clone(), message); - // Log the "message log" data using noop program + + // Create a new "MessageLog" using the leaf node hash, sender, recipient, and message + let message_log = new_message_log( + leaf_node.clone(), + ctx.accounts.sender.key().clone(), + ctx.accounts.recipient.key().clone(), + message, + ); + + // Log the "MessageLog" data using the noop program wrap_application_data_v1(message_log.try_to_vec()?, &ctx.accounts.log_wrapper)?; - // Get the address for the Merkle tree account + + // Get the Merkle tree account address let merkle_tree = ctx.accounts.merkle_tree.key(); - // Define the seeds for pda signing - let signer_seeds: &[&[&[u8]]] = &[ + + // The seeds for PDAs signing + let signers_seeds: &[&[&[u8]]] = &[ &[ merkle_tree.as_ref(), // The address of the Merkle tree account as a seed - &[*ctx.bumps.get("tree_authority").unwrap()], // The bump seed for the pda + &[*ctx.bumps.get("tree_authority").unwrap()], // The bump seed for the PDA ], ]; - // Create a new cpi context and append the leaf node to the Merkle tree. + + // Create a CPI context and append the leaf node to the Merkle tree let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.compression_program.to_account_info(), // The spl account compression program + ctx.accounts.compression_program.to_account_info(), // The SPL account compression program Modify { - authority: ctx.accounts.tree_authority.to_account_info(), // The authority for the Merkle tree, using a PDA + authority: ctx.accounts.tree_authority.to_account_info(), // Authority for the Merkle tree, using a PDA merkle_tree: ctx.accounts.merkle_tree.to_account_info(), // The Merkle tree account to be modified noop: ctx.accounts.log_wrapper.to_account_info(), // The noop program to log data }, - signer_seeds // The seeds for pda signing + signers_seeds, // The seeds for PDAs signing ); - // CPI to append the leaf node to the Merkle tree + + // CPI call to append the leaf node to the Merkle tree append(cpi_ctx, leaf_node)?; + Ok(()) } ``` -#### Update hashes +#### Updating Hashes -To update data, you need to create a new hash to replace the hash at the -relevant leaf on the Merkle tree. To do this, your program needs access to four -things: +To update a leaf in a Merkle tree, you’ll need to generate a new hash to replace +the existing one. This process requires four key inputs: -1. The index of the leaf to update +1. The index of the leaf you wish to update 2. The root hash of the Merkle tree -3. The original data you wish to modify +3. The original data you want to modify 4. The updated data -Given access to this data, a program instruction can follow very similar steps -as those used to append the initial data to the tree: - -1. **Verify update authority** - The first step is new. In most cases, you want - to verify update authority. This typically involves proving that the signer - of the `update` transaction is the true owner or authority of the leaf at the - given index. Since the data is compressed as a hash on the leaf, we can't - simply compare the `authority` public key to a stored value. Instead, we need - to compute the previous hash using the old data and the `authority` listed in - the account validation struct. We then build and issue a CPI to the State - Compression Program's `verify_leaf` instruction using our computed hash. -2. **Hash the new data** - This step is the same as the first step from - appending initial data. Use the `hashv` function from the `keccak` crate to - hash the new data and the update authority, each as their corresponding byte +Using these inputs, you can follow a series of steps similar to those used when +initially appending data to the tree: + +1. **Verify Update Authority**: The first step, unique to updates, is to verify + the authority of the entity making the update. This generally involves + checking that the signer of the `update` transaction is indeed the owner or + authority of the leaf at the specified index. Since the data in the leaf is + hashed, you can’t directly compare the authority’s public key to a stored + value. Instead, compute the previous hash using the old data and the + `authority` listed in the account validation struct. Then, invoke a CPI to + the State Compression Program’s `verify_leaf` instruction to confirm the hash + matches. + +2. **Hash the New Data**: This step mirrors the hashing process for appending + data. Use the `hashv` function from the `keccak` crate to hash the new data + and the update authority, converting each to its corresponding byte representation. -3. **Log the new data** - This step is the same as the second step from - appending initial data. Create an instance of the log struct and call - `wrap_application_data_v1` to issue a CPI to the Noop program. -4. **Replace the existing leaf hash** - This step is slightly different than the - last step of appending initial data. Build and issue a CPI to the State - Compression Program's `replace_leaf` instruction. This uses the old hash, the - new hash, and the leaf index to replace the data of the leaf at the given - index with the new hash. Just as before, this requires the Merkle tree - address and the tree authority bump as signature seeds. - -Combined into a single instruction, this process looks as follows: + +3. **Log the New Data**: As with the initial append operation, create a log + object to represent the new data, and use `wrap_application_data_v1` to + invoke the Noop Program via CPI. This ensures that the new uncompressed data + is logged and accessible offchain. + +4. **Replace the Existing Leaf Hash**: This step is slightly different from + appending new data. Here, you’ll need to invoke a CPI to the State + Compression Program’s `replace_leaf` instruction. This operation will replace + the existing hash at the specified leaf index with the new hash. You’ll need + to provide the old hash, the new hash, and the leaf index. As usual, the + Merkle tree address and tree authority bump are required as signature seeds. + +When combined, the instructions for updating a hash might look like this: ```rust +/// Updates a message in the Merkle tree. +/// +/// This function verifies the old message in the Merkle tree by checking its leaf node, +/// and then replaces it with a new message by modifying the Merkle tree’s leaf node. +/// +/// # Arguments +/// +/// * `ctx` - The context containing the accounts required for updating the message. +/// * `index` - The index of the leaf node to update. +/// * `root` - The root hash of the Merkle tree. +/// * `old_message` - The old message that is currently in the Merkle tree. +/// * `new_message` - The new message to replace the old message. +/// +/// # Returns +/// +/// This function returns a `Result<()>`, indicating success or failure. +/// +/// # Errors +/// +/// This function will return an error if verification or replacement of the Merkle tree leaf fails. pub fn update_message( ctx: Context, index: u32, @@ -442,59 +562,67 @@ pub fn update_message( old_message: String, new_message: String ) -> Result<()> { - let old_leaf = keccak - ::hashv(&[old_message.as_bytes(), ctx.accounts.sender.key().as_ref()]) - .to_bytes(); + // Hash the old message + sender’s public key to create the old leaf node + let old_leaf = keccak::hashv(&[old_message.as_bytes(), ctx.accounts.sender.key().as_ref()]).to_bytes(); + // Get the Merkle tree account address let merkle_tree = ctx.accounts.merkle_tree.key(); - // Define the seeds for pda signing - let signer_seeds: &[&[&[u8]]] = &[ + // The seeds for PDAs signing + let signers_seeds: &[&[&[u8]]] = &[ &[ merkle_tree.as_ref(), // The address of the Merkle tree account as a seed - &[*ctx.bumps.get("tree_authority").unwrap()], // The bump seed for the pda + &[*ctx.bumps.get("tree_authority").unwrap()], // The bump seed for the PDA ], ]; - // Verify Leaf + // Verify the old leaf node in the Merkle tree { + // If the old and new messages are the same, no update is needed if old_message == new_message { msg!("Messages are the same!"); return Ok(()); } + // Create CPI context for verifying the leaf node let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.compression_program.to_account_info(), // The spl account compression program + ctx.accounts.compression_program.to_account_info(), // The SPL account compression program VerifyLeaf { - merkle_tree: ctx.accounts.merkle_tree.to_account_info(), // The Merkle tree account to be modified + merkle_tree: ctx.accounts.merkle_tree.to_account_info(), // The Merkle tree account to be verified }, - signer_seeds // The seeds for pda signing + signers_seeds, // The seeds for PDAs signing ); - // Verify or Fails + + // Verify the old leaf node in the Merkle tree verify_leaf(cpi_ctx, root, old_leaf, index)?; } - let new_leaf = keccak - ::hashv(&[new_message.as_bytes(), ctx.accounts.sender.key().as_ref()]) - .to_bytes(); + // Hash the new message + sender’s public key to create the new leaf node + let new_leaf = keccak::hashv(&[new_message.as_bytes(), ctx.accounts.sender.key().as_ref()]).to_bytes(); - // Log out for indexers - let message_log = MessageLog::new(new_leaf.clone(), ctx.accounts.sender.key().clone(), ctx.accounts.recipient.key().clone(), new_message); - // Log the "message log" data using noop program + // Log the new message for indexers using the noop program + let message_log = new_message_log( + new_leaf.clone(), + ctx.accounts.sender.key().clone(), + ctx.accounts.recipient.key().clone(), + new_message, + ); wrap_application_data_v1(message_log.try_to_vec()?, &ctx.accounts.log_wrapper)?; - // replace leaf + // Replace the old leaf with the new leaf in the Merkle tree { + // Create CPI context for replacing the leaf node let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.compression_program.to_account_info(), // The spl account compression program + ctx.accounts.compression_program.to_account_info(), // The SPL account compression program Modify { authority: ctx.accounts.tree_authority.to_account_info(), // The authority for the Merkle tree, using a PDA merkle_tree: ctx.accounts.merkle_tree.to_account_info(), // The Merkle tree account to be modified noop: ctx.accounts.log_wrapper.to_account_info(), // The noop program to log data }, - signer_seeds // The seeds for pda signing + signers_seeds, // The seeds for PDAs signing ); - // CPI to append the leaf node to the Merkle tree + + // Replace the old leaf node with the new one in the Merkle tree replace_leaf(cpi_ctx, root, old_leaf, new_leaf, index)?; } @@ -502,55 +630,63 @@ pub fn update_message( } ``` -#### Delete hashes +#### Deleting Hashes -At the time of writing, the State Compression Program doesn't provide an -explicit `delete` instruction. Instead, you'll want to update leaf data with -data that indicates the data as “deleted.” The specific data will depend on your -use case and security concerns. Some may opt to set all data to 0, whereas -others might store a static string that all “deleted” items will have in common. +As of now, the State Compression Program does not have a dedicated `delete` +instruction. -#### Access data from a client +Instead, you can simulate deletion by updating the leaf data with a value that +signals it has been "deleted." -The discussion so far has covered 3 of the 4 standard CRUD procedures: Create, -Update, and Delete. What's left is one of the more difficult concepts in state -compression: reading data. +The exact value you choose will depend on your specific use case and security +requirements. For some, this may involve setting all data fields to zero, while +others might prefer storing a predefined static string that marks the leaf as +deleted. This approach allows you to handle deletions in a way that suits your +application’s needs without compromising data integrity. -Accessing data from a client is tricky primarily because the data isn't stored -in a format that is easy to access. The data hashes stored in the Merkle tree -account can't be used to reconstruct the initial data, and the data logged to -the Noop program isn't available indefinitely. +#### Accessing Data from a Client -Your best bet is one of two options: +We’ve covered creating, updating, and deleting data in state compression, but +reading data presents its unique challenges. -1. Work with an indexing provider to create a custom indexing solution for your - program, then write client-side code based on how the indexer gives you - access to the data. -2. Create your own pseudo-indexer as a lighter-weight solution. +Accessing compressed data from a client can be tricky because the Merkle tree +stores only data hashes, which cannot be used to recover the original data. +Additionally, the uncompressed data logged to the Noop program is not retained +indefinitely. -If your project is truly decentralized such that many participants will interact -with your program through means other than your own frontend, then option 2 -might not be sufficient. However, depending on the scale of the project or -whether or not you'll have control over most program access, it can be a viable -approach. +To access this data, you generally have two options: -There is no “right” way to do this. Two potential approaches are: +1. **Work with an indexing provider** to develop a custom solution tailored to + your program. This allows you to write client-side code to retrieve and + access the data based on how the indexer provides it. +2. **Create your own pseudo-indexer** to store and retrieve the data, offering a + lighter-weight solution. -1. Store the raw data in a database at the same time as sending it to the - program, along with the leaf that the data is hashed and stored to. -2. Create a server that observes your program's transactions, looks up the - associated Noop logs, decodes the logs, and stores them. +If your project is decentralized and expects widespread interaction beyond your +frontend, option 2 might not be sufficient. However, if you have control over +most program interactions, this approach can work. -We'll do a little bit of both when writing tests in this lesson's lab (though we -won't persist data in a db - it will only live in memory for the duration of the -tests). +There’s no one-size-fits-all solution here. Two potential strategies include: -The setup for this is somewhat tedious. Given a particular transaction, you can -fetch the transaction from the RPC provider, get the inner instructions -associated with the Noop program, use the `deserializeApplicationDataEvent` -function from the `@solana/spl-account-compression` JS package to get the logs, -then deserialize them using Borsh. Below is an example based on the messaging -program used above. +1. **Store raw data**: One approach is to store the raw data in a database + simultaneously by sending it to the program. This allows you to keep a record + of the data, along with the Merkle tree leaf where the data was hashed and + stored. + +2. **Create a transaction observer**: Another approach is to create a server + that observes the transactions your program executes. This server would fetch + transactions, look up the related Noop logs, decode them, and store the data. + +When writing tests in the lab, we’ll simulate both of these approaches, although +instead of using a database, the data will be stored in memory for the test’s +duration. + +The process of setting this up can be a bit complex. For a given transaction, +you’ll retrieve it from the RPC provider, extract the inner instructions related +to the Noop program, and use the `deserializeApplicationDataEvent` function from +the `@solana/spl-account-compression` JS package to decode the logs. Then, +you’ll use Borsh to deserialize the data. Here’s an example from the messaging +program to illustrate the process: ```typescript export async function getMessageLog( @@ -612,18 +748,24 @@ export async function getMessageLog( ### Conclusion -Generalized state compression can be difficult but is absolutely possible to -implement with the available tools. Additionally, the tools and programs will -only get better over time. If you come up with solutions that improve your -development experience, please share with the community! +Implementing generalized state compression may be challenging, but it is +entirely achievable using the available tools. As the ecosystem evolves, these +tools and programs will continue to improve, making the process more +streamlined. If you discover solutions that enhance your development experience, +please don’t hesitate to share them with the community! + + +Remember to write comprehensive tests for your state compression implementation. This ensures your program behaves correctly and helps catch potential issues early in the development process. + -## Lab +## Lab: Building a Note-Taking App with Generalized State Compression -Let's practice generalized state compression by creating a new Anchor program. -This program will use custom state compression to power a simple note-taking -app. +In this lab, we’ll walk through the process of developing an Anchor program that +uses custom state compression to power a basic note-taking app. This will give +you hands-on experience in working with compressed data and help reinforce key +concepts around state compression on Solana. -#### 1. Project setup +#### 1. Set up the Project Start by initializing an Anchor program: @@ -631,8 +773,9 @@ Start by initializing an Anchor program: anchor init compressed-notes ``` -We'll be using the `spl-account-compression` crate with the `cpi` feature -enabled. Let's add it as a dependency in `programs/compressed-notes/Cargo.toml`. +Next, we’ll add the `spl-account-compression` crate with the `cpi` feature +enabled. To do this, update the `Cargo.toml` file located at +`programs/compressed-notes` by adding the following dependency: ```toml [dependencies] @@ -641,9 +784,12 @@ spl-account-compression = { version="0.2.0", features = ["cpi"] } solana-program = "1.16.0" ``` -We'll be testing locally but we need both the Compression program and the Noop -program from Mainnet. We'll need to add these to the `Anchor.toml` in the root -directory so they get cloned to our local cluster. +We’ll be running tests locally, but we’ll need both the State Compression +Program and the Noop Program from the Mainnet to do so. To make sure these +programs are available on our local cluster, we need to include them in the +`Anchor.toml` file located in the root directory. Here’s how you can add them: + +In `Anchor.toml`, update the programs section with the following entries: ```toml [test.validator] @@ -656,15 +802,15 @@ address = "noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV" address = "cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK" ``` -Lastly, let's prepare the `lib.rs` file for the rest of the Demo. Remove the -`initialize` instruction and the `Initialize` accounts struct, then add the -imports shown in the code snippet below (be sure to put in **_your_** program -id): +Finally, let’s set up the `lib.rs` file for the remainder of the demo. Start by +removing the `initialize` instruction and the `Initialize` accounts struct. +Next, add the necessary imports as indicated in the code snippet, making sure to +include **_your_** program ID. ```rust use anchor_lang::{ prelude::*, - solana_program::keccak + solana_program::keccak, }; use spl_account_compression::{ Noop, @@ -676,125 +822,216 @@ use spl_account_compression::{ wrap_application_data_v1, }; -declare_id!("YOUR_KEY_GOES_HERE"); - -// STRUCTS GO HERE +// Replace with your program ID +declare_id!("PROGRAM_PUBLIC_KEY_GOES_HERE"); +/// A program that manages compressed notes using a Merkle tree for efficient storage and verification. #[program] pub mod compressed_notes { use super::*; - // FUNCTIONS GO HERE + // Define your program instructions here. + + /// Initializes a new Merkle tree for storing messages. + /// + /// This function creates a Merkle tree with the specified maximum depth and buffer size. + /// + /// # Arguments + /// + /// * `ctx` - The context containing the accounts required for initializing the tree. + /// * `max_depth` - The maximum depth of the Merkle tree. + /// * `max_buffer_size` - The maximum buffer size of the Merkle tree. + pub fn create_messages_tree( + ctx: Context, + max_depth: u32, + max_buffer_size: u32, + ) -> Result<()> { + // Tree creation logic here + Ok(()) + } + + /// Appends a new message to the Merkle tree. + /// + /// This function hashes the message and adds it as a leaf node to the tree. + /// + /// # Arguments + /// + /// * `ctx` - The context containing the accounts required for appending the message. + /// * `message` - The message to append to the Merkle tree. + pub fn append_message(ctx: Context, message: String) -> Result<()> { + // Message appending logic here + Ok(()) + } + + /// Updates an existing message in the Merkle tree. + /// + /// This function verifies the old message and replaces it with the new message in the tree. + /// + /// # Arguments + /// + /// * `ctx` - The context containing the accounts required for updating the message. + /// * `index` - The index of the message in the tree. + /// * `root` - The root of the Merkle tree. + /// * `old_message` - The old message to be replaced. + /// * `new_message` - The new message to replace the old message. + pub fn update_message( + ctx: Context, + index: u32, + root: [u8; 32], + old_message: String, + new_message: String, + ) -> Result<()> { + // Message updating logic here + Ok(()) + } + + // Add more functions as needed +} + +// Add structs for accounts, state, etc., here +/// Struct for holding the account information required for message operations. +#[derive(Accounts)] +pub struct MessageAccounts<'info> { + /// The Merkle tree account. + #[account(mut)] + pub merkle_tree: AccountInfo<'info>, + /// The authority for the Merkle tree. + pub tree_authority: AccountInfo<'info>, + /// The sender’s account. + pub sender: Signer<'info>, + /// The recipient’s account. + pub recipient: AccountInfo<'info>, + /// The compression program (Noop program). + pub compression_program: Program<'info, SplAccountCompression>, + /// The log wrapper account for logging data. + pub log_wrapper: AccountInfo<'info>, } ``` -For the rest of this Demo, we'll be making updates to the program code directly -in the `lib.rs` file. This simplifies the explanations a bit. You're welcome to -modify the structure as you will. +For the remainder of this demo, we’ll be making updates directly in the `lib.rs` +file. This approach simplifies the explanations. You can modify the structure as +needed. -Feel free to build before continuing. This ensures your environment is working -properly and shortens future build times. +It’s a good idea to build your project now to confirm that your environment is +set up correctly and to reduce build times in the future. #### 2. Define `Note` schema -Next, we're going to define what a note looks like within our program. Notes -should have the following properties: +Next, we’ll define the structure of a note within our program. Each note should +have the following attributes: -- `leaf_node` - this should be a 32-byte array representing the hash stored on - the leaf node -- `owner` - the public key of the note owner -- `note` - the string representation of the note +- `leaf_node` - a 32-byte array representing the hash stored on the leaf node. +- `owner` - the public key of the note’s owner. +- `note` - a string containing the text of the note. ```rust -#[derive(AnchorSerialize)] +#[derive(AnchorSerialize, AnchorDeserialize, Clone)] +/// A struct representing a log entry in the Merkle tree for a note. pub struct NoteLog { - leaf_node: [u8; 32], // The leaf node hash - owner: Pubkey, // Pubkey of the note owner - note: String, // The note message + /// The leaf node hash generated from the note data. + pub leaf_node: [u8; 32], + /// The public key of the note’s owner. + pub owner: Pubkey, + /// The content of the note. + pub note: String, } -impl NoteLog { - // Constructs a new note from given leaf node and message - pub fn new(leaf_node: [u8; 32], owner: Pubkey, note: String) -> Self { - Self { leaf_node, owner, note } - } +/// Constructs a new note log from a given leaf node, owner, and note message. +/// +/// # Arguments +/// +/// * `leaf_node` - A 32-byte array representing the hash of the note. +/// * `owner` - The public key of the note’s owner. +/// * `note` - The note message content. +/// +/// # Returns +/// +/// A new `NoteLog` struct containing the provided data. +pub fn create_note_log(leaf_node: [u8; 32], owner: Pubkey, note: String) -> NoteLog { + NoteLog { leaf_node, owner, note } } ``` -In a traditional Anchor program, this would be an account struct, but since -we're using state compression, our accounts won't be mirroring our native -structures. Since we don't need all the functionality of an account, we can just -use the `AnchorSerialize` derive macro rather than the `account` macro. +In a traditional Anchor program, a note would typically be represented by a +`Note` struct using the `account` macro. However, because we’re using state +compression we use `NoteLog`, a struct with the `AnchorSerialize` macro applied. -#### 3. Define input accounts and constraints +#### 3. Define Account Constraints -As luck would have it, every one of our instructions will be using the same -accounts. We'll create a single `NoteAccounts` struct for our account -validation. It'll need the following accounts: +All our instruction handlers will use the same +[account constraints](https://www.anchor-lang.com/docs/account-constraints): -- `owner` - this is the creator and owner of the note; should be a signer on the - transaction -- `tree_authority` - the authority for the Merkle tree; used for signing - compression-related CPIs -- `merkle_tree` - the address of the Merkle tree used to store the note hashes; - will be unchecked since it is validated by the State Compression Program -- `log_wrapper` - the address of the Noop Program -- `compression_program` - the address of the State Compression Program +- `owner` - The creator and owner of the note, who must sign the transaction. +- `tree_authority` - The authority for the Merkle tree, used for signing + compression-related CPIs. +- `merkle_tree` - The address of the Merkle tree where note hashes are stored; + this will be unchecked as it’s validated by the State Compression Program. +- `log_wrapper` - The address of the Noop Program. +- `compression_program` - The address of the State Compression Program. ```rust #[derive(Accounts)] +/// Accounts required for interacting with the Merkle tree for note management. pub struct NoteAccounts<'info> { - // The payer for the transaction + /// The payer for the transaction, who also owns the note. #[account(mut)] pub owner: Signer<'info>, - // The pda authority for the Merkle tree, only used for signing + /// The PDA (Program Derived Address) authority for the Merkle tree. + /// This account is only used for signing and is derived from the Merkle tree address. #[account( seeds = [merkle_tree.key().as_ref()], bump, )] pub tree_authority: SystemAccount<'info>, - // The Merkle tree account - /// CHECK: This account is validated by the spl account compression program + /// The Merkle tree account, where the notes are stored. + /// This account is validated by the SPL Account Compression program. + /// + /// The `UncheckedAccount` type is used since the account’s validation is deferred to the CPI. #[account(mut)] pub merkle_tree: UncheckedAccount<'info>, - // The noop program to log data + /// The Noop program used for logging data. + /// This is part of the SPL Account Compression stack and logs the note operations. pub log_wrapper: Program<'info, Noop>, - // The spl account compression program + /// The SPL Account Compression program used for Merkle tree operations. pub compression_program: Program<'info, SplAccountCompression>, } ``` -#### 4. Create `create_note_tree` instruction - -Next, let's create our `create_note_tree` instruction. Remember, clients will -have already allocated the Merkle tree account but will use this instruction to -initialize it. +#### 4. Create `create_note_tree` Instruction handler -All this instruction needs to do is build a CPI to invoke the -`init_empty_merkle_tree` instruction on the State Compression Program. To do -this, it needs the accounts listed in the `NoteAccounts` account validation -struct. It also needs two additional arguments: +Next, we’ll make the `create_note_tree` instruction handler, to initialize the +already allocated Merkle tree account. -1. `max_depth` - the max depth of the Merkle tree -2. `max_buffer_size` - the max buffer size of the Merkle tree +To implement this, you’ll need to build a CPI to invoke the +`init_empty_merkle_tree` instruction from the State Compression Program. The +`NoteAccounts` struct will provide the necessary accounts, but you’ll also need +to include two additional arguments: -These values are required for initializing the data on the Merkle tree account. -Remember, the max depth refers to the maximum number of hops to get from any -leaf to the root of the tree. Max buffer size refers to the amount of space -reserved for storing a changelog of tree updates. This changelog is used to -ensure that your tree can support concurrent updates within the same block. +1. **`max_depth`** - Specifies the maximum depth of the Merkle tree, indicating + the longest path from any leaf to the root. +2. **`max_buffer_size`** - Defines the maximum buffer size for the Merkle tree, + which determines the space allocated for recording tree updates. This buffer + is crucial for supporting concurrent updates within the same block. ```rust #[program] pub mod compressed_notes { use super::*; - // Instruction for creating a new note tree. + /// Instruction to create a new note tree (Merkle tree) for storing compressed notes. + /// + /// # Arguments + /// * `ctx` - The context that includes the accounts required for this transaction. + /// * `max_depth` - The maximum depth of the Merkle tree. + /// * `max_buffer_size` - The maximum buffer size of the Merkle tree. + /// + /// # Returns + /// * `Result<()>` - Returns a success or error result. pub fn create_note_tree( ctx: Context, max_depth: u32, // Max depth of the Merkle tree @@ -803,59 +1040,61 @@ pub mod compressed_notes { // Get the address for the Merkle tree account let merkle_tree = ctx.accounts.merkle_tree.key(); - // Define the seeds for pda signing - let signer_seeds: &[&[&[u8]]] = &[&[ - merkle_tree.as_ref(), // The address of the Merkle tree account as a seed - &[*ctx.bumps.get("tree_authority").unwrap()], // The bump seed for the pda + // The seeds for PDAs signing + let signers_seeds: &[&[&[u8]]] = &[&[ + merkle_tree.as_ref(), // The Merkle tree account address as the seed + &[*ctx.bumps.get("tree_authority").unwrap()], // The bump seed for the tree authority PDA ]]; - // Create cpi context for init_empty_merkle_tree instruction. + // Create a CPI (Cross-Program Invocation) context for initializing the empty Merkle tree. let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.compression_program.to_account_info(), // The spl account compression program + ctx.accounts.compression_program.to_account_info(), // The SPL Account Compression program Initialize { - authority: ctx.accounts.tree_authority.to_account_info(), // The authority for the Merkle tree, using a PDA - merkle_tree: ctx.accounts.merkle_tree.to_account_info(), // The Merkle tree account to be initialized - noop: ctx.accounts.log_wrapper.to_account_info(), // The noop program to log data + authority: ctx.accounts.tree_authority.to_account_info(), // PDA authority for the Merkle tree + merkle_tree: ctx.accounts.merkle_tree.to_account_info(), // The Merkle tree account + noop: ctx.accounts.log_wrapper.to_account_info(), // The Noop program for logging data }, - signer_seeds, // The seeds for pda signing + signers_seeds, // The seeds for PDAs signing ); - // CPI to initialize an empty Merkle tree with given max depth and buffer size + // CPI call to initialize an empty Merkle tree with the specified depth and buffer size. init_empty_merkle_tree(cpi_ctx, max_depth, max_buffer_size)?; + Ok(()) } - //... + // Additional functions for the program can go here... } ``` -Ensure that your signer seeds on the CPI include both the Merkle tree address -and the tree authority bump. - -#### 5. Create `append_note` instruction - -Now, let's create our `append_note` instruction. This instruction needs to take -the raw note as a String and compress it into a hash that we'll store on the -Merkle tree. We'll also log the note to the Noop program so the entirety of the -data exists within the chain's state. - -The steps here are as follows: - -1. Use the `hashv` function from the `keccak` crate to hash the note and owner, - each as their corresponding byte representation. It's **_crucial_** that you - hash the owner as well as the note. This is how we'll verify note ownership - before updates in the update instruction. -2. Create an instance of the `NoteLog` struct using the hash from step 1, the - owner's public key, and the raw note as a String. Then call - `wrap_application_data_v1` to issue a CPI to the Noop program, passing the - instance of `NoteLog`. This ensures the entirety of the note (not just the - hash) is readily available to any client looking for it. For broad use cases - like cNFTs, that would be indexers. You might create your observing client to - simulate what indexers are doing but for your own application. -3. Build and issue a CPI to the State Compression Program's `append` - instruction. This takes the hash computed in step 1 and adds it to the next - available leaf on your Merkle tree. Just as before, this requires the Merkle - tree address and the tree authority bump as signature seeds. +Make sure that when setting up your CPI, you include both the Merkle tree +address and the tree authority bump in the signer seeds. + +#### 5. Create `append_note` Instruction handler + +Let’s create the `append_note` instruction handler. This will compress a raw +note into a hash and store it on the Merkle tree, while also logging the note to +the Noop program to ensure all data remains available onchain. + +Here’s how to accomplish this: + +1. **Hash the Data**: Utilize the `hashv` function from the `keccak` crate to + compute a hash of the note and the owner’s public key. Both should be + converted to their byte representations. It’s essential to hash the owner + along with the note to facilitate ownership verification during updates. + +2. **Log the Data**: Create a `NoteLog` instance with the hash from step 1, the + owner’s public key, and the note as a `String`. Then, use + `wrap_application_data_v1` to issue a CPI to the Noop program with this + `NoteLog` instance. This ensures the complete note (not just the hash) is + available to clients, similar to how indexers manage cNFTs. You might also + develop an observing client to simulate indexer functionality specific to + your application. + +3. **Append to the Merkle Tree**: Build and issue a CPI to the State Compression + Program’s `append` instruction. This will add the hash from step 1 to the + next available leaf on your Merkle tree. Ensure that the Merkle tree address + and the tree authority bump are included as signature seeds. ```rust #[program] @@ -864,34 +1103,47 @@ pub mod compressed_notes { //... - // Instruction for appending a note to a tree. + /// Instruction to append a note to the Merkle tree. + /// + /// # Arguments + /// * `ctx` - The context containing accounts needed for this transaction. + /// * `note` - The note message to append as a leaf node in the Merkle tree. + /// + /// # Returns + /// * `Result<()>` - Returns a success or error result. pub fn append_note(ctx: Context, note: String) -> Result<()> { - // Hash the "note message" which will be stored as leaf node in the Merkle tree - let leaf_node = - keccak::hashv(&[note.as_bytes(), ctx.accounts.owner.key().as_ref()]).to_bytes(); - // Create a new "note log" using the leaf node hash and note. + // Step 1: Hash the note message to create a leaf node for the Merkle tree + let leaf_node = keccak::hashv(&[note.as_bytes(), ctx.accounts.owner.key().as_ref()]).to_bytes(); + + // Step 2: Create a new NoteLog instance containing the leaf node, owner, and note let note_log = NoteLog::new(leaf_node.clone(), ctx.accounts.owner.key().clone(), note); - // Log the "note log" data using noop program + + // Step 3: Log the NoteLog data using the Noop program wrap_application_data_v1(note_log.try_to_vec()?, &ctx.accounts.log_wrapper)?; - // Get the address for the Merkle tree account + + // Step 4: Get the Merkle tree account key (address) let merkle_tree = ctx.accounts.merkle_tree.key(); - // Define the seeds for pda signing - let signer_seeds: &[&[&[u8]]] = &[&[ + + // Step 5: The seeds for PDAs signing + let signers_seeds: &[&[&[u8]]] = &[&[ merkle_tree.as_ref(), // The address of the Merkle tree account as a seed - &[*ctx.bumps.get("tree_authority").unwrap()], // The bump seed for the pda + &[*ctx.bumps.get("tree_authority").unwrap()], // The bump seed for the PDA ]]; - // Create a new cpi context and append the leaf node to the Merkle tree. + + // Step 6: Create a CPI (Cross-Program Invocation) context to modify the Merkle tree let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.compression_program.to_account_info(), // The spl account compression program + ctx.accounts.compression_program.to_account_info(), // SPL Account Compression program Modify { - authority: ctx.accounts.tree_authority.to_account_info(), // The authority for the Merkle tree, using a PDA - merkle_tree: ctx.accounts.merkle_tree.to_account_info(), // The Merkle tree account to be modified - noop: ctx.accounts.log_wrapper.to_account_info(), // The noop program to log data + authority: ctx.accounts.tree_authority.to_account_info(), // The PDA authority for the + merkle_tree: ctx.accounts.merkle_tree.to_account_info(), // The Merkle tree account to modify + noop: ctx.accounts.log_wrapper.to_account_info(), // The Noop program for logging data }, - signer_seeds, // The seeds for pda signing + signers_seeds, // Seeds for PDAs with that will sign the transaction ); - // CPI to append the leaf node to the Merkle tree + + // Step 7: Append the leaf node to the Merkle tree using CPI append(cpi_ctx, leaf_node)?; + Ok(()) } @@ -899,42 +1151,42 @@ pub mod compressed_notes { } ``` -#### 6. Create `update_note` instruction - -The last instruction we'll make is the `update_note` instruction. This should -replace an existing leaf with a new hash representing the new updated note data. - -For this to work, we'll need the following parameters: - -1. `index` - the index of the leaf we are going to update -2. `root` - the root hash of the Merkle tree -3. `old_note` - the string representation of the old note we're updating -4. `new_note` - the string representation of the new note we want to update to - -Remember, the steps here are similar to `append_note`, but with some minor -additions and modifications: - -1. The first step is new. We need to first prove that the `owner` calling this - function is the true owner of the leaf at the given index. Since the data is - compressed as a hash on the leaf, we can't simply compare the `owner` public - key to a stored value. Instead, we need to compute the previous hash using - the old note data and the `owner` listed in the account validation struct. We - then build and issue a CPI to the State Compression Program's `verify_leaf` - instruction using our computed hash. -2. This step is the same as the first step from creating the `append_note` - instruction. Use the `hashv` function from the `keccak` crate to hash the new - note and its owner, each as their corresponding byte representation. -3. This step is the same as the second step from creating the `append_note` - instruction. Create an instance of the `NoteLog` struct using the hash from - step 2, the owner's public key, and the new note as a string. Then call - `wrap_application_data_v1` to issue a CPI to the Noop program, passing the - instance of `NoteLog` -4. This step is slightly different than the last step from creating the - `append_note` instruction. Build and issue a CPI to the State Compression - Program's `replace_leaf` instruction. This uses the old hash, the new hash, - and the leaf index to replace the data of the leaf at the given index with - the new hash. Just as before, this requires the Merkle tree address and the - tree authority bump as signature seeds. +#### 6. Create `update_note` Instruction Handler + +The final instruction we’ll implement is `update_note`, which will replace an +existing leaf with a new hash that represents the updated note data. + +To perform this update, you’ll need the following parameters: + +1. **Index**: The index of the leaf to be updated. +2. **Root**: The root hash of the Merkle tree. +3. **Old Note**: The string representation of the note that is being updated. +4. **New Note**: The string representation of the updated note. + +The process for this instruction is similar to `append_note`, with some +additional steps: + +1. **Verify Ownership**: Before updating, prove that the `owner` executing this + instruction is the rightful owner of the leaf at the specified index. Since + the leaf data is compressed as a hash, you can’t directly compare the + `owner`'s public key. Instead, compute the previous hash using the old note + data and the `owner` from the account validation struct. Then, use this + computed hash to build and issue a CPI to the State Compression Program’s + `verify_leaf` instruction. + +2. **Hash the New Data**: Hash the new note and the owner’s public key using the + `hashv` function from the `keccak` crate, converting each to its byte + representation. + +3. **Log the New Data**: Create a `NoteLog` instance with the new hash from step + 2, the owner’s public key, and the new note. Call `wrap_application_data_v1` + to issue a CPI to the Noop program with this `NoteLog` instance, ensuring the + updated note data is available to clients. + +4. **Replace the Leaf**: Build and issue a CPI to the State Compression + Program’s `replace_leaf` instruction. This will replace the old hash with the + new hash at the specified leaf index. Ensure the Merkle tree address and the + tree authority bump are included as signature seeds. ```rust #[program] @@ -943,85 +1195,97 @@ pub mod compressed_notes { //... - pub fn update_note( + /// Instruction to update a note in the Merkle tree. + /// + /// # Arguments + /// * `ctx` - The context containing accounts needed for this transaction. + /// * `index` - The index of the note to update in the Merkle tree. + /// * `root` - The root hash of the Merkle tree for verification. + /// * `old_note` - The current note to be updated. + /// * `new_note` - The new note that will replace the old one. + /// + /// # Returns + /// * `Result<()>` - Returns a success or error result. + pub fn update_note( ctx: Context, index: u32, root: [u8; 32], old_note: String, new_note: String, ) -> Result<()> { - let old_leaf = - keccak::hashv(&[old_note.as_bytes(), ctx.accounts.owner.key().as_ref()]).to_bytes(); + // Step 1: Hash the old note to generate the corresponding leaf node + let old_leaf = keccak::hashv(&[old_note.as_bytes(), ctx.accounts.owner.key().as_ref()]).to_bytes(); + // Step 2: Get the address of the Merkle tree account let merkle_tree = ctx.accounts.merkle_tree.key(); - // Define the seeds for pda signing - let signer_seeds: &[&[&[u8]]] = &[&[ + // Step 3: The seeds for PDAs signing + let signers_seeds: &[&[&[u8]]] = &[&[ merkle_tree.as_ref(), // The address of the Merkle tree account as a seed - &[*ctx.bumps.get("tree_authority").unwrap()], // The bump seed for the pda + &[*ctx.bumps.get("tree_authority").unwrap()], // The bump seed for the PDA ]]; - // Verify Leaf - { - if old_note == new_note { - msg!("Notes are the same!"); - return Ok(()); - } - - let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.compression_program.to_account_info(), // The spl account compression program - VerifyLeaf { - merkle_tree: ctx.accounts.merkle_tree.to_account_info(), // The Merkle tree account to be modified - }, - signer_seeds, // The seeds for pda signing - ); - // Verify or Fails - verify_leaf(cpi_ctx, root, old_leaf, index)?; + // Step 4: Check if the old note and new note are the same + if old_note == new_note { + msg!("Notes are the same!"); + return Ok(()); } - let new_leaf = - keccak::hashv(&[new_note.as_bytes(), ctx.accounts.owner.key().as_ref()]).to_bytes(); + // Step 5: Verify the leaf node in the Merkle tree + let verify_cpi_ctx = CpiContext::new_with_signer( + ctx.accounts.compression_program.to_account_info(), // The SPL account compression program + VerifyLeaf { + merkle_tree: ctx.accounts.merkle_tree.to_account_info(), // The Merkle tree account to be modified + }, + signers_seeds, // The seeds for PDAs signing + ); + // Verify or fail + verify_leaf(verify_cpi_ctx, root, old_leaf, index)?; + + // Step 6: Hash the new note to create the new leaf node + let new_leaf = keccak::hashv(&[new_note.as_bytes(), ctx.accounts.owner.key().as_ref()]).to_bytes(); - // Log out for indexers + // Step 7: Create a NoteLog entry for the new note let note_log = NoteLog::new(new_leaf.clone(), ctx.accounts.owner.key().clone(), new_note); - // Log the "note log" data using noop program + + // Step 8: Log the NoteLog data using the Noop program wrap_application_data_v1(note_log.try_to_vec()?, &ctx.accounts.log_wrapper)?; - // replace leaf - { - let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.compression_program.to_account_info(), // The spl account compression program - Modify { - authority: ctx.accounts.tree_authority.to_account_info(), // The authority for the Merkle tree, using a PDA - merkle_tree: ctx.accounts.merkle_tree.to_account_info(), // The Merkle tree account to be modified - noop: ctx.accounts.log_wrapper.to_account_info(), // The noop program to log data - }, - signer_seeds, // The seeds for pda signing - ); - // CPI to append the leaf node to the Merkle tree - replace_leaf(cpi_ctx, root, old_leaf, new_leaf, index)?; - } + // Step 9: Prepare to replace the old leaf node with the new one in the Merkle tree + let modify_cpi_ctx = CpiContext::new_with_signer( + ctx.accounts.compression_program.to_account_info(), // The SPL account compression program + Modify { + authority: ctx.accounts.tree_authority.to_account_info(), // The authority for the Merkle tree, using a PDA + merkle_tree: ctx.accounts.merkle_tree.to_account_info(), // The Merkle tree account to be modified + noop: ctx.accounts.log_wrapper.to_account_info(), // The Noop program to log data + }, + signers_seeds, // The seeds for PDAs signing + ); + + // Step 10: Replace the old leaf node with the new leaf node in the Merkle tree + replace_leaf(modify_cpi_ctx, root, old_leaf, new_leaf, index)?; Ok(()) } } ``` -#### 7. Client test setup +#### 7. Client Test Setup -We're going to write a few tests to ensure that our program works as expected. -First, let's do some setup. +To ensure our program functions correctly, we’ll set up and write some tests. +Here’s what you need to do for the setup: -We'll be using the `@solana/spl-account-compression` package. Go ahead and -install it: +1. **Install Dependencies**: We’ll be using the + `@solana/spl-account-compression` package for our tests. Install it using the + following command: ```bash yarn add @solana/spl-account-compression ``` -Next, we're going to give you the contents of a utility file we've created to -make testing easier. Create a `utils.ts` file in the `tests` directory, add in -the below, then we'll explain it. +2. **Create Utility File**: To simplify testing, we’ve provided a utility file. + Create a `utils.ts` file in the `tests` directory and add the provided + contents. We’ll go over the details of this file shortly. ```typescript import { @@ -1130,36 +1394,41 @@ export async function getNoteLog(connection: Connection, txSignature: string) { } ``` -There are 3 main things in the above file: +The `utils.ts` file contains three key components: + +1. **`NoteLog` Class**: This class represents the note log that we’ll extract + from the Noop program logs. It also includes the Borsh schema, named + `NoteLogBorshSchema`, which is used for deserialization. -1. `NoteLog` - a class representing the note log we'll find in the Noop program - logs. We've also added the borsh schema as `NoteLogBorshSchema` for - deserialization. -2. `getHash` - a function that creates a hash of the note and note owner so we - can compare it to what we find on the Merkle tree -3. `getNoteLog` - a function that looks through the provided transaction's logs, - finds the Noop program logs, then deserializes and returns the corresponding - Note log. +2. **`getHash` Function**: This function generates a hash from the note and its + owner, allowing us to compare it against the data in the Merkle tree. -#### 8. Write client tests +3. **`getNoteLog` Function**: This function searches through the transaction + logs to locate the Noop program logs then deserializes and retrieves the + corresponding `NoteLog`. -Now that we've got our packages installed and utility file ready, let's dig into -the tests themselves. We're going to create four of them: +#### 8. Write Client Tests -1. Create Note Tree - this will create the Merkle tree we'll be using to store - note hashes -2. Add Note - this will call our `append_note` instruction -3. Add Max Size Note - this will call our `append_note` instruction with a note - that maxes out the 1232 bytes allowed in a single transaction -4. Update First Note - this will call our `update_note` instruction to modify - the first note we added +With our packages and utility file set up, we’re ready to dive into writing the +tests. We will create four tests for our program: -The first test is mostly just for setup. In the last three tests, we'll be -asserting each time that the note hash on the tree matches what we would expect -given the note text and signer. +1. **Create Note Tree**: This test will initialize the Merkle tree for storing + note hashes. +2. **Add Note**: This test will invoke the `append_note` instruction to add a + note to the tree. +3. **adds max size note to the Merkle tree**: This test will also use the + `append_note` instruction, but with a note that reaches the maximum allowable + size of 1232 bytes in a single transaction. +4. **Updates the first note in the Merkle tree**: This test will use the + `update_note` instruction to modify the first note that was added. -Let's start with our imports. There are quite a few from Anchor, -`@solana/web3.js`, `@solana/spl-account-compression`, and our own utils file. +The first test is mainly for setup purposes. For the remaining three tests, we +will check that the note hash in the Merkle tree matches the expected value +based on the note content and the signer. + +We’ll start by setting up our imports. This includes a variety of components +from Anchor, `@solana/web3.js`, `@solana/spl-account-compression`, and our own +utility functions. ```typescript import * as anchor from "@coral-xyz/anchor"; @@ -1183,9 +1452,13 @@ import { getHash, getNoteLog } from "./utils"; import { assert } from "chai"; ``` -Next, we'll want to set up the state variables we'll be using throughout our -tests. This includes the default Anchor setup as well as generating a Merkle -tree keypair, the tree authority, and some notes. +Next, we’ll set up the state variables needed for our tests. This setup will +include: + +1. **Default Anchor Setup**: Configure the basic environment for Anchor testing. +2. **Merkle Tree Keypair**: Generate a keypair for the Merkle tree. +3. **Tree Authority**: Create a keypair for the authority of the Merkle tree. +4. **Notes**: Define some sample notes to use in the tests. ```typescript describe("compressed-notes", () => { @@ -1193,7 +1466,7 @@ describe("compressed-notes", () => { anchor.setProvider(provider); const connection = new Connection( provider.connection.rpcEndpoint, - "confirmed", // has to be confirmed for some of the methods below + "confirmed", ); const wallet = provider.wallet as anchor.Wallet; @@ -1203,7 +1476,6 @@ describe("compressed-notes", () => { const merkleTree = Keypair.generate(); // Derive the PDA to use as the tree authority for the Merkle tree account - // This is a PDA derived from the Note program, which allows the program to sign for appends instructions to the tree const [treeAuthority] = PublicKey.findProgramAddressSync( [merkleTree.publicKey.toBuffer()], program.programId, @@ -1213,19 +1485,23 @@ describe("compressed-notes", () => { const secondNote = "0".repeat(917); const updatedNote = "updated note"; - // TESTS GO HERE + describe("Merkle Tree Operations", () => { + // Tests will go here + }); }); ``` -Finally, let's start with the tests themselves. First the `Create Note Tree` -test. This test will do two things: +Now, let’s dive into the `Create Note Tree` test. This test will accomplish two +key tasks: -1. Allocate a new account for the Merkle tree with a max depth of 3, max buffer - size of 8, and canopy depth of 0 -2. Initialize this new account using our program's `createNoteTree` instruction +1. **Allocate a New Merkle Tree Account**: Create a new account for the Merkle + tree, specifying a max depth of 3, a max buffer size of 8, and a canopy depth + of 0. +2. **Initialize the Account**: Use our program’s `createNoteTree` instruction to + set up the newly allocated Merkle tree account. ```typescript -it("Create Note Tree", async () => { +it("creates a new note tree", async () => { const maxDepthSizePair: ValidDepthSizePair = { maxDepth: 3, maxBufferSize: 8, @@ -1233,7 +1509,7 @@ it("Create Note Tree", async () => { const canopyDepth = 0; - // instruction to create new account with required space for tree + // Instruction to create a new account with the required space for the tree const allocTreeIx = await createAllocTreeIx( connection, merkleTree.publicKey, @@ -1242,12 +1518,13 @@ it("Create Note Tree", async () => { canopyDepth, ); - // instruction to initialize the tree through the Note program + // Instruction to initialize the tree through the Note program const ix = await program.methods .createNoteTree(maxDepthSizePair.maxDepth, maxDepthSizePair.maxBufferSize) .accounts({ + owner: wallet.publicKey, merkleTree: merkleTree.publicKey, - treeAuthority: treeAuthority, + treeAuthority, logWrapper: SPL_NOOP_PROGRAM_ID, compressionProgram: SPL_ACCOUNT_COMPRESSION_PROGRAM_ID, }) @@ -1255,114 +1532,118 @@ it("Create Note Tree", async () => { const tx = new Transaction().add(allocTreeIx, ix); await sendAndConfirmTransaction(connection, tx, [wallet.payer, merkleTree]); -}); -``` -Next, we'll create the `Add Note` test. It should call `append_note` with -`firstNote`, then check that the onchain hash matches our computed hash and that -the note log matches the text of the note we passed into the instruction. + // Fetch the Merkle tree account to confirm it’s initialized + const merkleTreeAccount = + await ConcurrentMerkleTreeAccount.fromAccountAddress( + connection, + merkleTree.publicKey, + ); + assert(merkleTreeAccount, "Merkle tree should be initialized"); +}); -```typescript -it("Add Note", async () => { +it("adds a note to the Merkle tree", async () => { const txSignature = await program.methods .appendNote(firstNote) .accounts({ + owner: wallet.publicKey, merkleTree: merkleTree.publicKey, - treeAuthority: treeAuthority, + treeAuthority, logWrapper: SPL_NOOP_PROGRAM_ID, compressionProgram: SPL_ACCOUNT_COMPRESSION_PROGRAM_ID, }) .rpc(); const noteLog = await getNoteLog(connection, txSignature); - const hash = getHash(firstNote, provider.publicKey); + const hash = getHash(firstNote, wallet.publicKey); - assert(hash === Buffer.from(noteLog.leafNode).toString("hex")); - assert(firstNote === noteLog.note); + assert( + hash === Buffer.from(noteLog.leafNode).toString("hex"), + "Leaf node hash should match", + ); + assert(firstNote === noteLog.note, "Note should match the appended note"); }); -``` - -Next, we'll create the `Add Max Size Note` test. It is the same as the previous -test, but with the second note. -```typescript -it("Add Max Size Note", async () => { - // Size of note is limited by max transaction size of 1232 bytes, minus additional data required for the instruction +it("adds max size note to the Merkle tree", async () => { const txSignature = await program.methods .appendNote(secondNote) .accounts({ + owner: wallet.publicKey, merkleTree: merkleTree.publicKey, - treeAuthority: treeAuthority, + treeAuthority, logWrapper: SPL_NOOP_PROGRAM_ID, compressionProgram: SPL_ACCOUNT_COMPRESSION_PROGRAM_ID, }) .rpc(); const noteLog = await getNoteLog(connection, txSignature); - const hash = getHash(secondNote, provider.publicKey); + const hash = getHash(secondNote, wallet.publicKey); - assert(hash === Buffer.from(noteLog.leafNode).toString("hex")); - assert(secondNote === noteLog.note); + assert( + hash === Buffer.from(noteLog.leafNode).toString("hex"), + "Leaf node hash should match", + ); + assert( + secondNote === noteLog.note, + "Note should match the appended max size note", + ); }); -``` - -Lastly, we'll create the `Update First Note` test. This is slightly more complex -than adding a note. We'll do the following: -1. Get the Merkle tree root as it's required by the instruction. -2. Call the `update_note` instruction of our program, passing in the index 0 - (for the first note), the Merkle tree root, the first note, and the updated - data. Remember, it needs the first note and the root because the program must - verify the entire proof path for the note's leaf before it can be updated. - -```typescript -it("Update First Note", async () => { +it("updates the first note in the Merkle tree", async () => { const merkleTreeAccount = await ConcurrentMerkleTreeAccount.fromAccountAddress( connection, merkleTree.publicKey, ); - - const rootKey = merkleTreeAccount.tree.changeLogs[0].root; - const root = Array.from(rootKey.toBuffer()); + const root = merkleTreeAccount.getCurrentRoot(); const txSignature = await program.methods .updateNote(0, root, firstNote, updatedNote) .accounts({ + owner: wallet.publicKey, merkleTree: merkleTree.publicKey, - treeAuthority: treeAuthority, + treeAuthority, logWrapper: SPL_NOOP_PROGRAM_ID, compressionProgram: SPL_ACCOUNT_COMPRESSION_PROGRAM_ID, }) .rpc(); const noteLog = await getNoteLog(connection, txSignature); - const hash = getHash(updatedNote, provider.publicKey); + const hash = getHash(updatedNote, wallet.publicKey); - assert(hash === Buffer.from(noteLog.leafNode).toString("hex")); - assert(updatedNote === noteLog.note); + assert( + hash === Buffer.from(noteLog.leafNode).toString("hex"), + "Leaf node hash should match after update", + ); + assert( + updatedNote === noteLog.note, + "Updated note should match the logged note", + ); }); ``` -That's it, congrats! Go ahead and run `anchor test` and you should get four -passing tests. +That’s a wrap—congratulations! Run `anchor test`, and you should see all four +tests passing. -If you're running into issues, feel free to go back through some of the demo or -look at the full solution code in the +If you encounter any issues, don’t hesitate to revisit the demo or check out the +complete solution code in the [Compressed Notes repository](https://github.com/unboxed-software/anchor-compressed-notes). -## Challenge +### Challenge -Now that you've practiced the basics of state compression, add a new instruction -to the Compressed Notes program. This new instruction should allow users to -delete an existing note. keep in mind that you can't remove a leaf from the -tree, so you'll need to decide what “deleted” looks like for your program. Good -luck! +Now that you’ve got the hang of state compression, it’s time to add a new +feature to the Compressed Notes program. Your task is to implement an +instruction that allows users to delete an existing note. Keep in mind that you +can’t physically remove a leaf from the Merkle tree, so you’ll need to come up +with a method to signify that a note has been deleted. -If you'd like a very simple example of a delete function, check out the -[`solution` branch on GitHub](https://github.com/Unboxed-Software/anchor-compressed-notes/tree/solution). +Good luck, and happy coding! + +For a straightforward example of how to implement a delete function, check out +the +[`main` branch on GitHub](https://github.com/Unboxed-Software/anchor-compressed-notes/tree/main). -Push your code to GitHub and -[tell us what you thought of this lesson](https://form.typeform.com/to/IPH0UGz7#answers-lesson=60f6b072-eaeb-469c-b32e-5fea4b72d1d1)! +Push your code to GitHub and [let us know what you think of this lesson](https://form.typeform.com/to/IPH0UGz7#answers-lesson=60f6b072-eaeb-469c-b32e-5fea4b72d1d1)! +``` diff --git a/package.json b/package.json index 0e8656f1a..dfc6948f1 100644 --- a/package.json +++ b/package.json @@ -43,4 +43,4 @@ "contentlayer2": "^0.4.6", "prettier": "^3.2.4" } -} +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 31f18b656..9336a24b3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4642,4 +4642,4 @@ zod@^3.22.4: zwitch@^2.0.0, zwitch@^2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz" - integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== \ No newline at end of file From 0ebfd1e722bd1dbadc231d0e04814d35eb946a65 Mon Sep 17 00:00:00 2001 From: Adams Mercy <56839431+mercy-wumi@users.noreply.github.com> Date: Mon, 7 Oct 2024 04:16:10 +0100 Subject: [PATCH 105/206] Added argument checks - for better error display. (#475) * Added argument checks - for better error display. * Update content/courses/onchain-development/anchor-pdas.md * Update content/courses/onchain-development/anchor-pdas.md --------- Co-authored-by: Mike MacCana --- content/courses/onchain-development/anchor-pdas.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/content/courses/onchain-development/anchor-pdas.md b/content/courses/onchain-development/anchor-pdas.md index c728fe7e9..6df47a41a 100644 --- a/content/courses/onchain-development/anchor-pdas.md +++ b/content/courses/onchain-development/anchor-pdas.md @@ -592,7 +592,7 @@ public key, and the movie review's rating, title, and description. ```rust #[derive(Accounts)] -#[instruction(title:String, description:String)] +#[instruction(title:String)] pub struct AddMovieReview<'info> { #[account( init, @@ -639,6 +639,16 @@ pub mod anchor_movie_review_program { description: String, rating: u8, ) -> Result<()> { + + // We require that the rating is between 1 and 5 + require!(rating >= MIN_RATING && rating <= MAX_RATING, MovieReviewError::InvalidRating); + + // We require that the title is not longer than 20 characters + require!(title.len() <= MAX_TITLE_LENGTH, MovieReviewError::TitleTooLong); + + // We require that the description is not longer than 50 characters + require!(description.len() <= MAX_DESCRIPTION_LENGTH, MovieReviewError::DescriptionTooLong); + msg!("Movie review account space reallocated"); msg!("Title: {}", title); msg!("Description: {}", description); @@ -668,7 +678,7 @@ We'll also still need the `seeds` and `bump` constraints as we had them in ```rust #[derive(Accounts)] -#[instruction(title:String, description:String)] +#[instruction(title:String)] pub struct UpdateMovieReview<'info> { #[account( mut, From e58bbbb072d8bd838ac8bda9978ccb99099962e0 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Mon, 7 Oct 2024 17:14:45 +1100 Subject: [PATCH 106/206] Remove remaining hidden lessons as lessons are now updated --- content/courses/connecting-to-offchain-data/metadata.yml | 3 --- content/courses/native-onchain-development/metadata.yml | 3 --- 2 files changed, 6 deletions(-) diff --git a/content/courses/connecting-to-offchain-data/metadata.yml b/content/courses/connecting-to-offchain-data/metadata.yml index 2400160a0..90ac8ed84 100644 --- a/content/courses/connecting-to-offchain-data/metadata.yml +++ b/content/courses/connecting-to-offchain-data/metadata.yml @@ -5,6 +5,3 @@ lessons: - oracles - verifiable-randomness-functions priority: 20 -# Uses out of date repos -# TODO: Superteam to update -isHidden: true diff --git a/content/courses/native-onchain-development/metadata.yml b/content/courses/native-onchain-development/metadata.yml index 95dfd5b64..9d0a23347 100644 --- a/content/courses/native-onchain-development/metadata.yml +++ b/content/courses/native-onchain-development/metadata.yml @@ -12,6 +12,3 @@ lessons: - deserialize-custom-data-frontend - paging-ordering-filtering-data-frontend priority: 50 -# Uses out of date repos -# TODO: Superteam to update -isHidden: true From b96fa87a0e2023d2c89ac767cd0bef2b985e10bc Mon Sep 17 00:00:00 2001 From: Jeffrey Date: Tue, 8 Oct 2024 00:31:40 +0800 Subject: [PATCH 107/206] Fix a typo for the 'delete' instruction (#551) The description for the delete logic should be: implement the logic for the 'delete' instruction rather than ... 'update' instruction --- docs/intro/quick-start/program-derived-address.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro/quick-start/program-derived-address.md b/docs/intro/quick-start/program-derived-address.md index 49ff4ac33..4f826ad36 100644 --- a/docs/intro/quick-start/program-derived-address.md +++ b/docs/intro/quick-start/program-derived-address.md @@ -599,7 +599,7 @@ The `Delete` struct defines the accounts required for the `delete` instruction: -Next, implement the logic for the `update` instruction. +Next, implement the logic for the `delete` instruction. ```rs filename="lib.rs" pub fn delete(_ctx: Context) -> Result<()> { From 07ffcff3a50767e54ea547efa00383e0aa048ae4 Mon Sep 17 00:00:00 2001 From: migi <64385774+0xmigi@users.noreply.github.com> Date: Mon, 7 Oct 2024 14:23:21 -0400 Subject: [PATCH 108/206] Update installation.md (#552) Removed confusing misplaces 'the' in Anchor CLI installation section --- docs/intro/installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro/installation.md b/docs/intro/installation.md index 26a4653b2..bf3ddd1b5 100644 --- a/docs/intro/installation.md +++ b/docs/intro/installation.md @@ -265,7 +265,7 @@ writing Solana programs. There are two ways to install the Anchor CLI and tooling: -1. Using Anchor Version Manager (AVM) - the is the **recommended installation** +1. Using Anchor Version Manager (AVM) - is the **recommended installation** method since it simplifies updating Anchor versions in the future 2. Without AVM - this requires more a manual process to update Anchor versions later From bad7254e557738197c4273bccf5ada87bb773e9a Mon Sep 17 00:00:00 2001 From: wuuer Date: Wed, 9 Oct 2024 11:02:19 +0800 Subject: [PATCH 109/206] fix and improve token-program course (#534) * Update the Token Extensions Program link * sync token-program.md from main * add try/catch for async/await calls following CONTRIBUTING.md. delete unnecessary "!" for generating a wrong explorer link. add some missing instructions. fix a wrong ts command for the section [Create an Associated Token Account to store the tokens]. * Update content/courses/tokens-and-nfts/token-program.md Co-authored-by: Mike MacCana * Update content/courses/tokens-and-nfts/token-program.md Co-authored-by: Mike MacCana * add ".md" to the [Wallets lesson] repo link * add filenames to typescrupt code examples * fix error filename --------- Co-authored-by: Jeff Wood Co-authored-by: Mike MacCana --- .../courses/tokens-and-nfts/token-program.md | 43 +++++++++++++------ 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/content/courses/tokens-and-nfts/token-program.md b/content/courses/tokens-and-nfts/token-program.md index feb79adc9..cfcd7e625 100644 --- a/content/courses/tokens-and-nfts/token-program.md +++ b/content/courses/tokens-and-nfts/token-program.md @@ -28,7 +28,7 @@ description: - Creating Token Mints and Token Accounts requires allocating **rent** in SOL. The rent for a Token Account can be refunded when the account is closed. Additionally, tokens created with the - [Token Extensions Program](/developers/courses/token-extensions-for-mints/close-mint) + [Token Extensions Program](/content/courses/token-extensions/close-mint.md) can also close Token Mints. ### Lesson @@ -476,7 +476,7 @@ and `freezeAuthority`. Think of the token mint as the factory that makes tokens. Our `user`, as the `mintAuthority` is the person that runs the factory. -```typescript +```typescript filename="create-token-mint.ts" import { createMint } from "@solana/spl-token"; import "dotenv/config"; import { @@ -530,7 +530,7 @@ npm i @metaplex-foundation/mpl-token-metadata@2 Create a new file called `create-token-metadata.ts` -```typescript +```typescript filename="create-token-metadata.ts" // This uses "@metaplex-foundation/mpl-token-metadata@2" to create tokens import "dotenv/config"; import { @@ -617,7 +617,7 @@ const transactionLink = getExplorerLink( "devnet", ); -console.log(`✅ Transaction confirmed, explorer link is: ${transactionLink}!`); +console.log(`✅ Transaction confirmed, explorer link is: ${transactionLink}`); const tokenMintLink = getExplorerLink( "address", @@ -625,9 +625,12 @@ const tokenMintLink = getExplorerLink( "devnet", ); -console.log(`✅ Look at the token mint again: ${tokenMintLink}!`); +console.log(`✅ Look at the token mint again: ${tokenMintLink}`); ``` +Replace `YOUR_TOKEN_MINT_ADDRESS_HERE` with your address of the mint and run the +script using `npx esrun create-token-metadata.ts`. + You'll now see Solana Explorer is updated, showing the token's name and symbol on the mint! @@ -655,7 +658,7 @@ on a wallet and our mint address, making the account if it needs to. Remember to substitute in your token mint address below! -```typescript +```typescript filename="create-token-account.ts" import { getOrCreateAssociatedTokenAccount } from "@solana/spl-token"; import "dotenv/config"; import { @@ -697,7 +700,7 @@ const link = getExplorerLink( console.log(`✅ Created token Account: ${link}`); ``` -Run the script using `npx esrun create-token-mint.ts`. You should see: +Run the script using `npx esrun create-token-account.ts`. You should see: ```bash ✅ Success! Created token account: https://explorer.solana.com/address/CTjoLdEeK8rk4YWYW9ZqACyjHexbYKH3hEoagHxLVEFs?cluster=devnet @@ -707,16 +710,19 @@ Open the token account in Solana Explorer. Look at the owner - it's the account you made the ATA for! The balance will be zero, as we haven't sent any tokens there yet. Let's mint some tokens there and fix that! +Remember the address of your token account ! We'll use it to mint tokens. + #### Mint Tokens Now that we have a token mint and a token account, let's mint tokens to the token account. Recall that we set the `user` as the `mintAuthority` for the `mint` we created. -Create a function `mintTokens` that uses the `spl-token` function `mintTo` to -mint tokens: +Create an empty file called `mint-tokens.ts`. Then uses the `spl-token` function +`mintTo()` to mint tokens. Remember to substitute in your token mint address and +token account address below! -```typescript +```typescript filename="mint-tokens.ts" import { mintTo } from "@solana/spl-token"; import "dotenv/config"; import { @@ -776,7 +782,11 @@ associated token account - we can just look it up using mint of the token we want to send. Likewise, we can find (or make) an ATA for our recipient to hold this token too. -```typescript +Create an empty file called `transfer-tokens.ts`. Then replace +`YOUR_RECIPIENT_HERE` with your recipient public key and replace +`YOUR_TOKEN_MINT_ADDRESS_HERE` with your token mint address. + +```typescript filename="transfer-tokens.ts" import "dotenv/config"; import { getExplorerLink, @@ -803,7 +813,7 @@ const MINOR_UNITS_PER_MAJOR_UNITS = Math.pow(10, 2); console.log(`💸 Attempting to send 1 token to ${recipient.toBase58()}...`); -// Get or create the source and destination token accounts to store this token +// Get or create the source token account to store this token const sourceTokenAccount = await getOrCreateAssociatedTokenAccount( connection, sender, @@ -811,6 +821,7 @@ const sourceTokenAccount = await getOrCreateAssociatedTokenAccount( sender.publicKey, ); +// Get or create the destination token account to store this token const destinationTokenAccount = await getOrCreateAssociatedTokenAccount( connection, sender, @@ -830,7 +841,13 @@ const signature = await transfer( const explorerLink = getExplorerLink("transaction", signature, "devnet"); -console.log(`✅ Transaction confirmed, explorer link is: ${explorerLink}!`); +console.log(`✅ Transaction confirmed, explorer link is: ${explorerLink}`); +``` + +Run the script using `npx esrun transfer-tokens.ts`. You should see: + +```bash +✅ Transaction confirmed, explorer link is: https://explorer.solana.com/tx/SgV2j2DkaErYf7ERiB11USoZzGqAk8HPEqVJLP8HWdz9M61FSFgyEMXJycHQtfCooCAPBom7Vi3akEAwSUHQUsu?cluster=devnet ``` Open the Explorer link. You see your balance go down, and the recipient's From 7722e922af04a6120b3cb6631fab4c1f25d514e3 Mon Sep 17 00:00:00 2001 From: Mik Watkins <63586831+Mikerniker@users.noreply.github.com> Date: Thu, 10 Oct 2024 11:07:37 +0800 Subject: [PATCH 110/206] Fix broken links and terminology in mwa-deep-dive.md (#554) * changed private to secret key * fixed broken links * change crypto term to blockchain * fix prettier format * Update content/courses/mobile/mwa-deep-dive.md --------- Co-authored-by: Mike MacCana --- content/courses/mobile/mwa-deep-dive.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/content/courses/mobile/mwa-deep-dive.md b/content/courses/mobile/mwa-deep-dive.md index 08d232afe..0ceaa2fd7 100644 --- a/content/courses/mobile/mwa-deep-dive.md +++ b/content/courses/mobile/mwa-deep-dive.md @@ -23,10 +23,10 @@ description: ## Lesson Wallets exist to protect your secret keys. While some applications might have -app-specific keys, many crypto use cases rely on a single identity used across -multiple apps. In these cases, you very much want to be careful about how you -expose signing across these apps. You don't want to share your secret key with -all of them, which means you need a standard for allowing apps to submit +app-specific keys, many blockchain use cases rely on a single identity used +across multiple apps. In these cases, you very much want to be careful about how +you expose signing across these apps. You don't want to share your secret key +with all of them, which means you need a standard for allowing apps to submit transactions for signature to a secure wallet app that holds your secret key. This is where the Mobile Wallet Adapter (MWA) comes in. It's the transport layer to connect your mobile dApps to your wallet. @@ -41,7 +41,7 @@ app-wallet connection differently. At its core, a wallet app is fairly straightforward. It's a secure wrapper around your keypair. External applications can request that the wallet sign -transactions without ever having access to your private key. Both the web and +transactions without ever having access to your secret key. Both the web and mobile wallet adapters define this interaction for their respective platforms. #### How does a web wallet work? @@ -198,7 +198,7 @@ transact(async (wallet: Web3MobileWallet) => { Note that the above example does not handle errors or user rejections. In production, it's a good idea to wrap the authorization state and methods with a custom `useAuthorization` hook. For reference, we built this -[in the previous lesson](/content/courses/mobile/intro-to-solana-mobile). +[in the previous lesson](/content/courses/mobile/intro-to-solana-mobile.md). #### Interact with a wallet @@ -450,7 +450,7 @@ app-wallet relationship. Before we start programming our wallet, we need to do some setup. You will need a React Native development environment and a Solana dApp to test on. If you have completed the -[Introduction to Solana Mobile lab](/content/courses/mobile/intro-to-solana-mobile), +[Introduction to Solana Mobile lab](/content/courses/mobile/intro-to-solana-mobile.md), both of these requirements should be met and the counter app installed on your Android device/emulator. @@ -598,8 +598,8 @@ provider should generate and store a keypair. The `WalletProvider` will then return its context including the `wallet` and `connection`. The rest of the app can access this context using the `useWallet()` hook. -**_AGAIN_**, async storage is not fit to store private keys in production. -Please use something like +**_AGAIN_**, async storage is not fit to store secret keys in production. Please +use something like [Android's keystore system](https://developer.android.com/privacy-and-security/keystore). Let's create the `WalletProvider.tsx` within a new directory named `components`: @@ -1625,7 +1625,7 @@ request types: `SignMessagesRequest` and `SignTransactionsRequest`. Try to do this without help as it's great practice, but if you get stuck, check out the -[solution code on the `solution` branch](https://github.com/solana-developers/react-native-fake-solana-wallet/tree/solution). +[solution code on the repo](https://github.com/solana-developers/react-native-fake-solana-wallet). Push your code to GitHub and From af3aa317ab901d98a22787c2c06f74bbf2e3f525 Mon Sep 17 00:00:00 2001 From: Akojede Olorundara Date: Thu, 10 Oct 2024 04:10:23 +0100 Subject: [PATCH 111/206] Updated Intro to Solana mobile lesson pictures (#549) * chore: updated lesson summary * improved lesson overview * improved intro to solana mobile * updated use cases * grammar restructure * updating in compliance to contribution guideline * updating in compliance to contribution guide * more descriptive variable names, handled errors, avoided repitition * fixed title * updated conclusion and included useful links * improved setup section, removed unnecesary pragraphs * minor update to ConnectionProvider function * improved some functions in .tsx files, added comments where necessary * improved basic-solana-mobile-connect.png * improved basic-solana-mobile-flow.png * improved basic-solana-mobile-transact.png * fixed content styling * replaced cryprocurrency with blockchain transactions * cryptocurrency to blockchain transactions * cleanup * improved intro to beginner-friendly standard * improved clarity * more restructuring, building a more readable flow, especially for rust beginners * minor fixes, resolved conflict * prettier:fix * prettier:fix * prettier:fix * Update content/courses/mobile/intro-to-solana-mobile.md removed redundant comment Co-authored-by: Mike MacCana * Update content/courses/mobile/intro-to-solana-mobile.md grammatical fix Co-authored-by: Mike MacCana * Update content/courses/mobile/intro-to-solana-mobile.md changed "units" to "lessons" for uniformity Co-authored-by: Mike MacCana * Update content/courses/mobile/intro-to-solana-mobile.md improved structure for easier readability Co-authored-by: Mike MacCana * Update content/courses/mobile/intro-to-solana-mobile.md removed quoted and improved tone Co-authored-by: Mike MacCana * Update content/courses/mobile/intro-to-solana-mobile.md changed grammar structure to improve clarity Co-authored-by: Mike MacCana * requested changes: removed redundant sections, typo fixes, improved clarity, used further contribution guidelines * removed backticks in titles, resolved merge conflicts * fixed broken links * revert changes in rust-acro.md * prettier fix * revert image changes * added improved images * added improved images with whimsical per CONTRIBUTING.md * Delete content/courses/program-optimization/developer-content.code-workspace --------- Co-authored-by: Akojede Olorundara Co-authored-by: Mike MacCana --- .../courses/mobile/intro-to-solana-mobile.md | 4 ++++ .../unboxed/basic-solana-mobile-connect.png | Bin 25908 -> 43888 bytes .../unboxed/basic-solana-mobile-flow.png | Bin 52869 -> 83181 bytes .../unboxed/basic-solana-mobile-transact.png | Bin 59744 -> 158008 bytes 4 files changed, 4 insertions(+) diff --git a/content/courses/mobile/intro-to-solana-mobile.md b/content/courses/mobile/intro-to-solana-mobile.md index 68a5791ca..03971de57 100644 --- a/content/courses/mobile/intro-to-solana-mobile.md +++ b/content/courses/mobile/intro-to-solana-mobile.md @@ -335,6 +335,7 @@ refining your skills. Be sure to explore additional resources like: - [The official Solana Developer Docs](https://solana.com/docs) for in-depth guides on Solana’s core libraries and best practices. + - [Solana Stack Exchange](https://solana.stackexchange.com/) forum for troubleshooting, sharing insights, and staying updated on the latest ecosystem changes. @@ -371,6 +372,7 @@ environment if you didn't already. This Remember that this step is not required if you are using a [Framework](https://reactnative.dev/architecture/glossary#react-native-framework). + Ensure you have [Node.js](https://nodejs.org/en/download) installed on your system. These will manage your JavaScript packages. Install Android Studio: @@ -1201,6 +1203,7 @@ to fix them: That's it! You've made your first Solana Mobile app. If you get stuck, feel free to check out the + [full solution code](https://github.com/solana-developers/react-native-counter) on the `main` branch of the repository. @@ -1214,6 +1217,7 @@ the client-side code that interacts with it. Once you've completed this, you can check your solution against the solution code available on the + [solution branch](https://github.com/solana-developers/react-native-counter). diff --git a/public/assets/courses/unboxed/basic-solana-mobile-connect.png b/public/assets/courses/unboxed/basic-solana-mobile-connect.png index e54494c0615bd565bcb4fa5e520679e713aab790..6f9c619119cb09d7ba85c009b00ffa6d37f29f5f 100644 GIT binary patch literal 43888 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 bu5hm`aSgoZgs}e&1xHO;OQ~GJGWh=i_mb!U diff --git a/public/assets/courses/unboxed/basic-solana-mobile-flow.png b/public/assets/courses/unboxed/basic-solana-mobile-flow.png index a030480d605b722e3d28f6e7a1acbc2d9e002d0c..950cd2c5c0fc73403708aeae2c91ee571f0101b1 100644 GIT binary patch literal 83181 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�jJv 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

    RDtUEmF>&9C= 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

    >w`gR>5VQC$l$N`Es&7~6#5 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 MM_DH8_M>P23!1Ag$^ZZW literal 59744 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 From 800cd66f8d3335002b740d863391e9fd79967709 Mon Sep 17 00:00:00 2001 From: Denis Riabtsev <68712122+1KitCat1@users.noreply.github.com> Date: Thu, 10 Oct 2024 06:11:04 +0300 Subject: [PATCH 112/206] Update intro-to-anchor.md (#553) declare_id!("your-private-key"); It is not private key --- content/courses/onchain-development/intro-to-anchor.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/courses/onchain-development/intro-to-anchor.md b/content/courses/onchain-development/intro-to-anchor.md index 8b30b7ab6..6648bf1ea 100644 --- a/content/courses/onchain-development/intro-to-anchor.md +++ b/content/courses/onchain-development/intro-to-anchor.md @@ -548,7 +548,7 @@ following: ```rust use anchor_lang::prelude::*; -declare_id!("your-private-key"); +declare_id!("onchain-program-address"); #[program] pub mod anchor_counter { From 91ec3d190c3014ee1446fdfd9c2cff48da799458 Mon Sep 17 00:00:00 2001 From: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> Date: Fri, 11 Oct 2024 09:29:35 -0400 Subject: [PATCH 113/206] Docs missing redirects (#556) * fix: missing redirects * chore: prettier --- content/courses/mobile/intro-to-solana-mobile.md | 1 - docs/programs/anchor/index.md | 7 +++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/content/courses/mobile/intro-to-solana-mobile.md b/content/courses/mobile/intro-to-solana-mobile.md index 03971de57..37dcad0c5 100644 --- a/content/courses/mobile/intro-to-solana-mobile.md +++ b/content/courses/mobile/intro-to-solana-mobile.md @@ -372,7 +372,6 @@ environment if you didn't already. This Remember that this step is not required if you are using a [Framework](https://reactnative.dev/architecture/glossary#react-native-framework). - Ensure you have [Node.js](https://nodejs.org/en/download) installed on your system. These will manage your JavaScript packages. Install Android Studio: diff --git a/docs/programs/anchor/index.md b/docs/programs/anchor/index.md index 975568575..f48fa0fad 100644 --- a/docs/programs/anchor/index.md +++ b/docs/programs/anchor/index.md @@ -3,6 +3,13 @@ title: Getting Started with Anchor description: Getting Started with Anchor sidebarLabel: Anchor Framework sidebarSortOrder: 1 +altRoutes: + - /docs/programs/debugging + - /docs/programs/faq + - /docs/programs/lang-c + - /docs/programs/lang-rust + - /docs/programs/limitations + - /docs/programs/overview --- The Anchor framework is a tool that simplifies the process of building Solana From 17cc7d364fba8313e7fa65769d9579a57c1d8256 Mon Sep 17 00:00:00 2001 From: Ayush Date: Fri, 11 Oct 2024 19:59:22 +0530 Subject: [PATCH 114/206] Code Import (#256) * code import refactor, sync and watch mode * husky precommit lint hook * mdx support * debug support * ignore node modules * optional quotes and line chaining * husky deprecation changes * use fs/promises * ignore contributing.md * package merge resolve * ignore pnpm lock * refactor: scripts --------- Co-authored-by: nickfrosty <75431177+nickfrosty@users.noreply.github.com> --- .gitignore | 9 +- .husky/.gitignore | 1 + .husky/pre-commit | 1 + CONTRIBUTING.md | 51 ++++- code/cookbook/wallets/check-public-key.ts | 19 ++ code/package.json | 15 ++ coder.ts | 222 ++++++++++++++++++++ content/cookbook/wallets/check-publickey.md | 2 +- package.json | 30 ++- src/utils/code-import.ts | 169 +++++++++++++++ tsconfig.json | 2 +- 11 files changed, 512 insertions(+), 9 deletions(-) create mode 100644 .husky/.gitignore create mode 100755 .husky/pre-commit create mode 100644 code/cookbook/wallets/check-public-key.ts create mode 100644 code/package.json create mode 100644 coder.ts create mode 100644 src/utils/code-import.ts diff --git a/.gitignore b/.gitignore index d8fdba97c..ac91c0ca7 100644 --- a/.gitignore +++ b/.gitignore @@ -106,5 +106,12 @@ package-lock.json # translations are stored in the `i18n` via crowdin i18n + +# code-import +code/node_modules +code/package-lock.json +code/yarn.lock +code/pnpm-lock.yaml + # vscode configuration -.vscode \ No newline at end of file +.vscode diff --git a/.husky/.gitignore b/.husky/.gitignore new file mode 100644 index 000000000..31354ec13 --- /dev/null +++ b/.husky/.gitignore @@ -0,0 +1 @@ +_ diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 000000000..2312dc587 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +npx lint-staged diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index edcee7aac..2616dd370 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,6 +21,9 @@ transparent as possible, whether it's: - publicly displayed via the UI of [solana.com](https://solana.com) (located in a different repo) - content translations are supported via Crowdin +- code blocks must use code-import for file snippets (via filesystem) +- code file should be [tests](https://nodejs.org/api/test.html) and should add + code ranges instead of whole test file ## Style guidelines @@ -273,6 +276,52 @@ For images, you can use the path starting with `/public` like this: > links will be automatically adjusted to function on the website. Including > making the images viewable and removing `.md` file extensions. +### Code Blocks + +In addition to standard markdown "fenced" code blocks (i.e. using triple +backticks), the developer content repo requires the use of code-import for file +snippets. This ensures that code examples are always up-to-date with the actual +source files. + +#### Using code-import + +To use code-import, follow these steps: + +Ensure your code file is a test file located in the appropriate directory within +the repo. Use the following syntax to import code snippets: + +```javascript file="/path/to/your/file.ts#L1-L10,#L15-L20" + +``` + +This will import lines 1-10 and 15-20 from the specified file. + +Always use code ranges instead of importing whole files. This helps keep +examples concise and focused. + +#### Code-import Rules + +- The file path must start with a forward slash (/). +- You can specify multiple line ranges, separated by commas. +- Line ranges should be in ascending order and not overlap. +- Invalid ranges (e.g., #L4-L3) are not allowed. +- Line numbers start at 1, so #L0 is invalid. +- Trailing commas in the range specification are not allowed. + +Example of a valid code-import: + +```javascript file="/code/cookbook/wallets/check-public-key.ts#L1-L2,#L3-L18" + +``` + +Example of an invalid code-import: + +```javascript file=/code/cookbook/wallets/check-public-key.ts#L1-L2,#L3-L19,#L1-L3 + +``` + +This is invalid because the ranges are not in ascending order and overlap. + ### Table of contents When a content page is rendered on solana.com, a table of contents will be @@ -519,7 +568,7 @@ a list of available components content - [images](#images) - details about how to include images in a piece of content - [code blocks](#code-blocks) - additional functionality on top of standard - markdown code blocks + markdown code blocks, these support code file import from filesystem - [blockquote](#blockquote) - additional functionality on top of the standard HTML `blockquote` element - [Callout](#callout) - custom component used to render message to the reader in diff --git a/code/cookbook/wallets/check-public-key.ts b/code/cookbook/wallets/check-public-key.ts new file mode 100644 index 000000000..f5b4c8392 --- /dev/null +++ b/code/cookbook/wallets/check-public-key.ts @@ -0,0 +1,19 @@ +import { PublicKey } from "@solana/web3.js"; + +// Note that Keypair.generate() will always give a public key that is valid for users + +// Valid public key +const key = new PublicKey("5oNDL3swdJJF1g9DzJiZ4ynHXgszjAEpUkxVYejchzrY"); +// Lies on the ed25519 curve and is suitable for users +console.log(PublicKey.isOnCurve(key.toBytes())); + +// Valid public key +const offCurveAddress = new PublicKey( + "4BJXYkfvg37zEmBbsacZjeQDpTNx91KppxFJxRqrz48e", +); + +// Not on the ed25519 curve, therefore not suitable for users +console.log(PublicKey.isOnCurve(offCurveAddress.toBytes())); + +// Not a valid public key +const errorPubkey = new PublicKey("testPubkey"); diff --git a/code/package.json b/code/package.json new file mode 100644 index 000000000..4429cdec8 --- /dev/null +++ b/code/package.json @@ -0,0 +1,15 @@ +{ + "name": "code", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "@solana/web3.js": "^1.95.2" + } +} diff --git a/coder.ts b/coder.ts new file mode 100644 index 000000000..ae53d4693 --- /dev/null +++ b/coder.ts @@ -0,0 +1,222 @@ +import { promises as fs } from "node:fs"; +import path from "node:path"; +import os from "node:os"; +import { unified } from "unified"; +import remarkParse from "remark-parse"; +import remarkStringify from "remark-stringify"; +import remarkFrontmatter from "remark-frontmatter"; +import { visit } from "unist-util-visit"; +import ignore, { type Ignore } from "ignore"; +import importCode from "./src/utils/code-import"; +import chokidar from "chokidar"; + +let debugMode = false; + +const debug = (...args: string[]) => { + if (debugMode) { + console.log("[DEBUG]", ...args); + } +}; + +const hasCodeComponentWithFileMeta = async ( + filePath: string, +): Promise => { + const content = await fs.readFile(filePath, "utf8"); + let hasMatch = false; + + const tree = unified().use(remarkParse).use(remarkFrontmatter).parse(content); + + visit(tree, "code", node => { + if (node.meta?.includes("file=")) { + hasMatch = true; + return false; // Stop visiting + } + }); + + return hasMatch; +}; + +const getIgnore = async (directory: string): Promise => { + const ig = ignore(); + + try { + const gitignoreContent = await fs.readFile( + path.join(directory, ".gitignore"), + "utf8", + ); + ig.add(gitignoreContent); + // ignore all dotfiles + ig.add([".*"]); + // ignore CONTRIBUTING.md because it mentions the code component example + ig.add("CONTRIBUTING.md"); + } catch (error) { + // If .gitignore doesn't exist, just continue without it + if ((error as NodeJS.ErrnoException).code !== "ENOENT") { + throw error; + } + } + + return ig; +}; + +const getMarkdownAndMDXFiles = async (directory: string): Promise => { + const ig = await getIgnore(directory); + + const walkDir = async (dir: string): Promise => { + const entries = await fs.readdir(dir, { withFileTypes: true }); + const files = await Promise.all( + entries.map(async entry => { + const res = path.resolve(dir, entry.name); + const relativePath = path.relative(directory, res); + + if (ig.ignores(relativePath) || entry.name === ".gitignore") { + debug(`Ignoring file: ${relativePath}`); + return []; + } + + if (entry.isDirectory()) { + return walkDir(res); + } + + if ( + entry.isFile() && + (entry.name.endsWith(".md") || entry.name.endsWith(".mdx")) + ) { + if (await hasCodeComponentWithFileMeta(res)) { + debug(`Found file with code component: ${relativePath}`); + return res; + } + debug( + `Skipping file (no code component with file meta): ${relativePath}`, + ); + } + + return []; + }), + ); + return files.flat(); + }; + + return walkDir(directory); +}; + +const processContent = async ( + content: string, + filePath: string, +): Promise => { + try { + const file = await unified() + .use(remarkParse) + .use(remarkFrontmatter) + .use(importCode, { + preserveTrailingNewline: false, + removeRedundantIndentations: true, + rootDir: process.cwd(), + }) + .use(remarkStringify, { + bullet: "-", + emphasis: "*", + fences: true, + listItemIndent: "one", + rule: "-", + ruleSpaces: false, + strong: "*", + tightDefinitions: true, + }) + .process(content); + return String(file); + } catch (error) { + if ((error as NodeJS.ErrnoException).code === "ENOENT") { + throw new Error( + `File not found: ${(error as NodeJS.ErrnoException).path}`, + ); + } + throw error; + } +}; + +const processFile = async (filePath: string): Promise => { + try { + if (!(await hasCodeComponentWithFileMeta(filePath))) { + debug(`Skipping ${filePath}: No code component with file meta found.`); + return; + } + + const originalContent = await fs.readFile(filePath, "utf8"); + const processedContent = await processContent(originalContent, filePath); + if (originalContent !== processedContent) { + await fs.writeFile(filePath, processedContent); + console.log(`Updated: ${filePath}`); + } else { + debug(`No changes needed for: ${filePath}`); + } + } catch (error) { + console.error(`Error processing ${filePath}: ${(error as Error).message}`); + } +}; + +const processInChunks = async ( + items: T[], + processItem: (item: T) => Promise, + chunkSize: number, +): Promise => { + for (let i = 0; i < items.length; i += chunkSize) { + const chunk = items.slice(i, i + chunkSize); + await Promise.all(chunk.map(processItem)); + } +}; + +const watchFiles = async (directory: string): Promise => { + const watcher = chokidar.watch(["**/*.md", "**/*.mdx"], { + ignored: [ + "**.**", + /(^|[\/\\])\../, + "**/node_modules/**", + "**/.git/**", + ".gitignore", + ], // ignore dotfiles, node_modules, .git, and .gitignore + persistent: true, + cwd: directory, + }); + + console.log("Watch mode started. Waiting for file changes..."); + + watcher + .on("add", filePath => processFile(path.join(directory, filePath))) + .on("change", filePath => processFile(path.join(directory, filePath))) + .on("unlink", filePath => console.log(`File ${filePath} has been removed`)); +}; + +const main = async (): Promise => { + const filePath = process.argv[2]; + const watchMode = + process.argv.includes("--watch") || process.argv.includes("-w"); + debugMode = process.argv.includes("--debug") || process.argv.includes("-d"); + + if (debugMode) { + console.log("Debug mode enabled"); + } + + if (filePath && !watchMode && !debugMode) { + // Process single file + const absolutePath = path.resolve(process.cwd(), filePath); + console.log(`Processing single file: ${absolutePath}`); + await processFile(absolutePath); + } else if (watchMode) { + // Watch mode + await watchFiles(process.cwd()); + } else { + // Process all files + const files = await getMarkdownAndMDXFiles(process.cwd()); + const chunkSize = Math.max(1, Math.ceil(files.length / os.cpus().length)); + + console.log(`Processing ${files.length} files...`); + await processInChunks(files, processFile, chunkSize); + } + + if (!watchMode) { + console.log("Sync process completed."); + } +}; + +main().catch(console.error); diff --git a/content/cookbook/wallets/check-publickey.md b/content/cookbook/wallets/check-publickey.md index a16eb4ac5..287f64c2e 100644 --- a/content/cookbook/wallets/check-publickey.md +++ b/content/cookbook/wallets/check-publickey.md @@ -11,7 +11,7 @@ have a private key associated with them. You can check this by looking to see if the public key lies on the ed25519 curve. Only public keys that lie on the curve can be controlled by users with wallets. -```javascript file="check-public-key.ts" +```javascript file=/code/cookbook/wallets/check-public-key.ts#L1-L2,#L3-L19 import { PublicKey } from "@solana/web3.js"; // Note that Keypair.generate() will always give a public key that is valid for users diff --git a/package.json b/package.json index dfc6948f1..91ef33165 100644 --- a/package.json +++ b/package.json @@ -10,10 +10,11 @@ "scripts": { "runner": "npx ts-node -r tsconfig-paths/register", "contentlayer:build": "npx contentlayer2 build --clearCache", - "dev": "yarn contentlayer:build && next dev -p 3001", - "build": "yarn prettier:i18n && yarn contentlayer:build && next build", + "code-import": "npx esrun coder.ts", + "dev": "yarn code-import && yarn contentlayer:build && concurrently -p \"[{name}]\" -n \"code import,next dev\" -c \"bgBlue.bold,bgGreen.bold\" \"yarn code-import --watch\" \"next dev -p 3001\"", + "build": "yarn code-import && yarn prettier:i18n && yarn contentlayer:build && next build", "start": "next start -p 3001", - "test": "yarn contentlayer:build", + "test": "yarn code-import && yarn prettier && && yarn contentlayer:build", "lint": "next lint", "prettier:i18n": "prettier -cw \"i18n/**/*.{js,jsx,ts,tsx,md,css,md,mdx}\" --ignore-path \"[]\"", "prettier": "prettier -c \"./**/*.{js,jsx,ts,tsx,md,css,md,mdx}\"", @@ -21,6 +22,7 @@ "crowdin:download": "crowdin download && npm run prettier:i18n", "crowdin:upload": "crowdin upload sources", "browser-sync": "browser-sync start --proxy \"localhost:3000\" --files \"**/*.md\"", + "prepare": "node -e \"if (process.env.NODE_ENV !== 'production'){process.exit(1)} \" || husky install", "dev:sync": "yarn dev & (sleep 5 && yarn browser-sync)" }, "dependencies": { @@ -40,7 +42,25 @@ "typescript": "5.3.3" }, "devDependencies": { + "@types/mdast": "^4.0.4", + "chokidar": "^3.6.0", + "concurrently": "^8.2.2", "contentlayer2": "^0.4.6", - "prettier": "^3.2.4" + "husky": "^9.1.4", + "ignore": "^5.3.1", + "lint-staged": "^15.2.7", + "mdast": "^3.0.0", + "prettier": "^3.2.4", + "remark": "^15.0.1", + "remark-frontmatter": "^5.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "strip-indent": "^4.0.0", + "unified": "^11.0.5", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.2" + }, + "lint-staged": { + "*.{js,jsx,json,ts,tsx,md,css,md,mdx,yml,yaml}": "yarn prettier:fix" } -} \ No newline at end of file +} diff --git a/src/utils/code-import.ts b/src/utils/code-import.ts new file mode 100644 index 000000000..b31e0277a --- /dev/null +++ b/src/utils/code-import.ts @@ -0,0 +1,169 @@ +// remark-code-import +// code-import.ts +// https://github.com/kevin940726/remark-code-import +import { readFile, stat } from "node:fs/promises"; +import path from "node:path"; +import { EOL } from "node:os"; +import { visit } from "unist-util-visit"; +import stripIndent from "strip-indent"; +import type { Root, Code, Parent } from "mdast"; +import type { VFile } from "vfile"; + +interface CodeImportOptions { + async?: boolean; + preserveTrailingNewline?: boolean; + removeRedundantIndentations?: boolean; + rootDir?: string; + allowImportingFromOutside?: boolean; +} + +interface LineRange { + from: number; + to: number; +} + +function parseLineRanges(rangeString: string): LineRange[] { + const rangeRegex = /#L(\d+)(?:-L?(\d+))?/g; + const ranges: LineRange[] = []; + let match; + + while ((match = rangeRegex.exec(rangeString)) !== null) { + const [, from, to] = match; + const fromLine = parseInt(from, 10); + const toLine = to ? parseInt(to, 10) : fromLine; + + if (fromLine === 0 || toLine === 0) { + throw new Error( + `Invalid line number: Line numbers must be positive integers`, + ); + } + + if (fromLine > toLine) { + throw new Error( + `Invalid range: L${fromLine}-L${toLine}. 'from' should be less than or equal to 'to'`, + ); + } + + ranges.push({ from: fromLine, to: toLine }); + } + + // Sort ranges and check for overlaps + ranges.sort((a, b) => a.from - b.from); + for (let i = 1; i < ranges.length; i++) { + if (ranges[i].from <= ranges[i - 1].to) { + throw new Error(`Overlapping or out-of-order ranges are not allowed`); + } + } + + return ranges; +} + +function extractLines( + content: string, + ranges: LineRange[], + preserveTrailingNewline = false, +): string { + const lines = content.split(EOL); + let result: string[] = []; + + for (const range of ranges) { + if (range.to > lines.length) { + throw new Error( + `Line range exceeds file length of ${lines.length} lines`, + ); + } + result = result.concat(lines.slice(range.from - 1, range.to)); + } + + let finalResult = result.join("\n"); + if ( + preserveTrailingNewline && + content.endsWith("\n") && + !finalResult.endsWith("\n") + ) { + finalResult += "\n"; + } + + return finalResult; +} + +function importCode(options: CodeImportOptions = {}) { + const rootDir = options.rootDir || process.cwd(); + + if (!path.isAbsolute(rootDir)) { + throw new Error(`"rootDir" has to be an absolute path`); + } + + return async function transform(tree: Root, file: VFile) { + const codes: [Code, number | null, Parent][] = []; + + visit(tree, "code", (node, index, parent) => { + codes.push([node as Code, index as null | number, parent as Parent]); + }); + + for (const [node] of codes) { + const fileMeta = (node.meta || "") + .split(/(? meta.startsWith("file=")); + + if (!fileMeta) { + continue; + } + + const res = /^file=(["'])?(\/.+?)\1?(#.+)?$/.exec(fileMeta); + + if (!res) { + throw new Error( + `Unable to parse file path ${fileMeta}. File path must start with a forward slash (/)`, + ); + } + + const [, , filePath, rangeString = ""] = res; + + // Resolve the path relative to rootDir + const normalizedFilePath = path.join(rootDir, filePath.slice(1)); + const fileAbsPath = path.resolve(normalizedFilePath); + + try { + // Check if the path is a directory + const stats = await stat(fileAbsPath); + if (stats.isDirectory()) { + throw new Error(`Path is a directory, not a file`); + } + + if (!options.allowImportingFromOutside) { + const relativePathFromRootDir = path.relative(rootDir, fileAbsPath); + if ( + relativePathFromRootDir.startsWith(`..${path.sep}`) || + path.isAbsolute(relativePathFromRootDir) + ) { + throw new Error( + `Attempted to import code from "${fileAbsPath}", which is outside from the rootDir "${rootDir}"`, + ); + } + } + + const ranges = rangeString + ? parseLineRanges(rangeString) + : [{ from: 1, to: Infinity }]; + + const fileContent = await readFile(fileAbsPath, "utf8"); + node.value = extractLines( + fileContent, + ranges, + options.preserveTrailingNewline, + ); + if (options.removeRedundantIndentations) { + node.value = stripIndent(node.value); + } + } catch (error) { + throw new Error( + `Error processing ${fileAbsPath}: ${(error as Error).message}`, + ); + } + } + }; +} + +export { importCode }; +export default importCode; diff --git a/tsconfig.json b/tsconfig.json index 26231d6e6..811b9a6c6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es5", + "target": "ESNext", "lib": ["dom", "dom.iterable", "esnext"], "skipLibCheck": true, "allowJs": true, From 4f897712875de3d1f5ecf237a50873685042075b Mon Sep 17 00:00:00 2001 From: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> Date: Fri, 11 Oct 2024 11:08:09 -0400 Subject: [PATCH 115/206] fix: exclude code dir (#557) --- tsconfig.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index 811b9a6c6..d90767bb3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -18,20 +18,20 @@ "paths": { "contentlayer/generated": ["./.contentlayer/generated"], "@/*": ["./src/*"], - "@@/*": ["./*"] + "@@/*": ["./*"], }, "plugins": [ { - "name": "next" - } - ] + "name": "next", + }, + ], }, "include": [ ".contentlayer/generated", "next-env.d.ts", "**/*.ts", "**/*.tsx", - ".next/types/**/*.ts" + ".next/types/**/*.ts", ], - "exclude": ["node_modules"] + "exclude": ["node_modules", "code"], } From 25931ca86ef7dca72ea7dd3f5122a626072e019a Mon Sep 17 00:00:00 2001 From: Shivaji Raut <108468912+shivaji43@users.noreply.github.com> Date: Sun, 13 Oct 2024 12:52:23 +0530 Subject: [PATCH 116/206] Added styles in interact-with-wallet.md for wallet ui (#559) Co-authored-by: shivaji <108468912+shivaji1134@users.noreply.github.com> --- content/courses/intro-to-solana/interact-with-wallets.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/courses/intro-to-solana/interact-with-wallets.md b/content/courses/intro-to-solana/interact-with-wallets.md index 960366e60..53cdae15f 100644 --- a/content/courses/intro-to-solana/interact-with-wallets.md +++ b/content/courses/intro-to-solana/interact-with-wallets.md @@ -119,6 +119,7 @@ import { WalletProvider, } from "@solana/wallet-adapter-react"; import { clusterApiUrl } from "@solana/web3.js"; +import "@solana/wallet-adapter-react-ui/styles.css"; export const Home: NextPage = props => { const endpoint = clusterApiUrl("devnet"); @@ -173,6 +174,7 @@ import { PublicKey, SystemProgram, } from "@solana/web3.js"; +import "@solana/wallet-adapter-react-ui/styles.css"; const Home: NextPage = props => { const endpoint = clusterApiUrl("devnet"); From f015ba805f19a61535a6f1e9c27063546452dbfa Mon Sep 17 00:00:00 2001 From: Sonkeng Date: Sun, 13 Oct 2024 08:22:47 +0100 Subject: [PATCH 117/206] Fix typo in program-derived-address.md (#558) --- docs/intro/quick-start/program-derived-address.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro/quick-start/program-derived-address.md b/docs/intro/quick-start/program-derived-address.md index 4f826ad36..eba31e76e 100644 --- a/docs/intro/quick-start/program-derived-address.md +++ b/docs/intro/quick-start/program-derived-address.md @@ -525,7 +525,7 @@ The body of the function then: -Rebuld the program +Rebuild the program ```shell filename="Terminal" build From 3cc30737d29dfe3c489324305ec28ccdb3debac0 Mon Sep 17 00:00:00 2001 From: Mik Watkins <63586831+Mikerniker@users.noreply.github.com> Date: Sun, 13 Oct 2024 15:26:04 +0800 Subject: [PATCH 118/206] Fix broken links in solana-mobile-dapps-with-expo.md (#555) * fix broken link * fix broken link 2 * Fix broken link 3 * change prerequisite to getting started * adjust workding * Fix broken link 4 * adjust wording * Fix prettier --- .../mobile/solana-mobile-dapps-with-expo.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/content/courses/mobile/solana-mobile-dapps-with-expo.md b/content/courses/mobile/solana-mobile-dapps-with-expo.md index 90d1bece8..27006dd07 100644 --- a/content/courses/mobile/solana-mobile-dapps-with-expo.md +++ b/content/courses/mobile/solana-mobile-dapps-with-expo.md @@ -71,8 +71,9 @@ speakers. The libraries are intuitive and the documentation is phenomenal. #### How to create an Expo app -To get started with Expo, you first need the prerequisite setup described in the -[Introduction to Solana Mobile lesson](/content/courses/mobile/intro-to-solana-mobile). +To begin using Expo, first follow the setup instructions described in the +Getting Started section of the +[Introduction to Solana Mobile lesson](/content/courses/mobile/intro-to-solana-mobile.md). After that, you'll want to sign up for an [Expo Application Services (EAS) account](https://expo.dev/eas). @@ -266,7 +267,7 @@ diary of sorts. To mint the NFTs we'll be using Metaplex's Umi libraries along with [Pinata Cloud](https://pinata.cloud/) to store images and metadata. We are using Pinata in this tutorial, but -[there are many good solutions for store images for long-term storage](https://solana.com/developers/guides/getstarted/how-to-create-a-token#create-and-upload-image-and-offchain-metadata). +[there are many good solutions for long-term image storage](https://solana.com/developers/guides/getstarted/how-to-create-a-token#create-and-upload-image-and-offchain-metadata). All of our onchain work will be on Devnet. The first half of this lab is cobbling together the needed components to make @@ -390,8 +391,8 @@ already have a Devnet-enabled wallet installed you can skip step 0. #### 0. Install a Devnet-enabled Solana wallet -You'll need a wallet that supports Devnet to test with. In -[our Mobile Wallet Adapter lesson](/content/courses/mobile/mwa-deep-dive) we +You'll need a wallet that supports Devnet to test with. In our +[Mobile Wallet Adapter lesson](/content/courses/mobile/mwa-deep-dive.md) we created one of these. Let's install it from the repo in a different directory from our app: @@ -436,13 +437,13 @@ Solana-based apps. Create two new folders: `components` and `screens`. We are going to use some boilerplate code from the -[first Mobile lesson](/content/courses/mobile/basic-solana-mobile). We will be -copying over `components/AuthorizationProvider.tsx` and +[first Mobile lesson](/content/courses/mobile/intro-to-solana-mobile.md). We +will be copying over `components/AuthorizationProvider.tsx` and `components/ConnectionProvider.tsx`. These files provide us with a `Connection` object as well as some helper functions that authorize our dapp. Create file `components/AuthorizationProvider.tsx` and copy the contents of -[our existing Auth Provider from Github](https://raw.githubusercontent.com/solana-developers/mobile-apps-with-expo/main/components/AuthorizationProvider.tsx) +[our existing Auth Provider from Github](https://raw.githubusercontent.com/solana-developers/mobile-apps-with-expo/main/components/AuthProvider.tsx) into the new file. Secondly, create file `components/ConnectionProvider.tsx` and copy the contents @@ -943,7 +944,7 @@ This should have the following fields: function that creates a new snapshot NFT The `DigitalAsset` type comes from `@metaplex-foundation/mpl-token-metadata` -that have metadata, off-chain metadata, collection data, plugins (including +which has metadata, off-chain metadata, collection data, plugins (including Attributes), and more. ```tsx From 21cd11a1b5c51ae506ad83ff8dad3f6e3020d17a Mon Sep 17 00:00:00 2001 From: Shawaz <65177277+shawazi@users.noreply.github.com> Date: Sun, 13 Oct 2024 03:27:23 -0400 Subject: [PATCH 119/206] Remove deprecated reference to nonexistent VSCode Grammarly extension (#504) the link no longer works; further research shows LTex is a sub-par alternative users don't enjoy, but I'm not sure if there are any other options for VSCode users. https://www.reddit.com/r/vscode/comments/1crtdg8/grammarly_extension_removed/ --- CONTRIBUTING.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2616dd370..fdf3f949a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -48,9 +48,7 @@ In particular: and save the person reviewing your PR some time. We recommend [Grammarly](https://grammarly.com/). In [your Grammarly dictionary](https://account.grammarly.com/customize), you may - wish to add Solana-specific words like `lamport`, `blockhash`, etc. For VScode - users, there is a - [VScode extension for Grammarly](https://marketplace.visualstudio.com/items?itemName=znck.grammarly). + wish to add Solana-specific words like `lamport`, `blockhash`, etc. - Use US English rather than British English. Grammarly will catch this for you. - Use 'onchain' (not on-chain, definitely not smart contract) when referring to onchain apps. This comes from the Solana Foundation style guide, and is From 35a53f3e899f748d37c11bb4612dc71f8063e489 Mon Sep 17 00:00:00 2001 From: Anjor Kanekar Date: Tue, 15 Oct 2024 03:11:57 +0100 Subject: [PATCH 120/206] redundant (#563) --- .../courses/state-compression/generalized-state-compression.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/courses/state-compression/generalized-state-compression.md b/content/courses/state-compression/generalized-state-compression.md index 4e7b04cb6..49dd5a13e 100644 --- a/content/courses/state-compression/generalized-state-compression.md +++ b/content/courses/state-compression/generalized-state-compression.md @@ -50,7 +50,7 @@ These hashes take up far less storage space than the original data. The full data can be stored in a cheaper, offchain location, and only needs to be verified against the onchain hash when accessed. -The Solana State Compression program uses a Solana State Compression program +The Solana State Compression program uses a program known as a **concurrent Merkle tree**. A concurrent Merkle tree is a special kind of binary tree that deterministically hashes data, i.e. the same inputs will always produce the same Merkle root. From 68284feced5a917230b44fa9857d9e07f1814b16 Mon Sep 17 00:00:00 2001 From: Shivaji Raut <108468912+shivaji43@users.noreply.github.com> Date: Tue, 15 Oct 2024 07:44:31 +0530 Subject: [PATCH 121/206] fixing useMemo and balance in SOL (#562) * fixing useMemo and balance in SOL * imported useMemo --------- Co-authored-by: shivaji <108468912+shivaji1134@users.noreply.github.com> --- content/courses/intro-to-solana/interact-with-wallets.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/courses/intro-to-solana/interact-with-wallets.md b/content/courses/intro-to-solana/interact-with-wallets.md index 53cdae15f..76cfc9db1 100644 --- a/content/courses/intro-to-solana/interact-with-wallets.md +++ b/content/courses/intro-to-solana/interact-with-wallets.md @@ -113,7 +113,7 @@ ensure this is to wrap your entire app in `ConnectionProvider` and ```tsx import { NextPage } from "next"; -import { FC, ReactNode } from "react"; +import { FC, ReactNode, useMemo } from "react"; import { ConnectionProvider, WalletProvider, @@ -159,7 +159,7 @@ full-featured wallet experience is to use `WalletModalProvider` and ```tsx import { NextPage } from "next"; -import { FC, ReactNode } from "react"; +import { FC, ReactNode, useMemo } from "react"; import { ConnectionProvider, WalletProvider, @@ -267,7 +267,7 @@ export const BalanceDisplay: FC = () => { return (

    -

    {publicKey ? `Balance: ${balance / LAMPORTS_PER_SOL} SOL` : ""}

    +

    {publicKey ? `Balance: ${balance} SOL` : ""}

    ); }; @@ -426,7 +426,7 @@ To complete this component, add ensure proper styling and behavior of the Wallet Adapter library components. ```tsx -import { FC, ReactNode } from "react"; +import { FC, ReactNode, useMemo } from "react"; import { ConnectionProvider, WalletProvider, From 74cc35d3de8975e2e7731089b864bcb0377a16d6 Mon Sep 17 00:00:00 2001 From: John <75003086+ZYJLiu@users.noreply.github.com> Date: Wed, 16 Oct 2024 16:32:09 -0500 Subject: [PATCH 122/206] Add back lang-rust, limitation, faq pages under programs section (#567) * add back lang-rust, limitation, faq pages * prettier --- .../generalized-state-compression.md | 8 +- docs/programs/anchor/index.md | 3 - docs/programs/deploying.md | 2 +- docs/programs/faq.md | 194 +++++++++ docs/programs/lang-rust.md | 387 ++++++++++++++++++ docs/programs/limitations.md | 112 +++++ 6 files changed, 698 insertions(+), 8 deletions(-) create mode 100644 docs/programs/faq.md create mode 100644 docs/programs/lang-rust.md create mode 100644 docs/programs/limitations.md diff --git a/content/courses/state-compression/generalized-state-compression.md b/content/courses/state-compression/generalized-state-compression.md index 49dd5a13e..6a74e7c70 100644 --- a/content/courses/state-compression/generalized-state-compression.md +++ b/content/courses/state-compression/generalized-state-compression.md @@ -50,10 +50,10 @@ These hashes take up far less storage space than the original data. The full data can be stored in a cheaper, offchain location, and only needs to be verified against the onchain hash when accessed. -The Solana State Compression program uses a program -known as a **concurrent Merkle tree**. A concurrent Merkle tree is a special -kind of binary tree that deterministically hashes data, i.e. the same inputs -will always produce the same Merkle root. +The Solana State Compression program uses a program known as a **concurrent +Merkle tree**. A concurrent Merkle tree is a special kind of binary tree that +deterministically hashes data, i.e. the same inputs will always produce the same +Merkle root. The final hash, called a _Merkle root_, is significantly smaller in size than all the original full data sets combined. This is why it’s called "compression". diff --git a/docs/programs/anchor/index.md b/docs/programs/anchor/index.md index f48fa0fad..7bf499b86 100644 --- a/docs/programs/anchor/index.md +++ b/docs/programs/anchor/index.md @@ -5,10 +5,7 @@ sidebarLabel: Anchor Framework sidebarSortOrder: 1 altRoutes: - /docs/programs/debugging - - /docs/programs/faq - /docs/programs/lang-c - - /docs/programs/lang-rust - - /docs/programs/limitations - /docs/programs/overview --- diff --git a/docs/programs/deploying.md b/docs/programs/deploying.md index 934ec1925..394c4de7b 100644 --- a/docs/programs/deploying.md +++ b/docs/programs/deploying.md @@ -4,7 +4,7 @@ description: "Deploying onchain programs can be done using the Solana CLI using the Upgradable BPF loader to upload the compiled byte-code to the Solana blockchain." -sidebarSortOrder: 4 +sidebarSortOrder: 3 --- Solana onchain programs (otherwise known as "smart contracts") are stored in diff --git a/docs/programs/faq.md b/docs/programs/faq.md new file mode 100644 index 000000000..c478fa37d --- /dev/null +++ b/docs/programs/faq.md @@ -0,0 +1,194 @@ +--- +title: "FAQ" +sidebarSortOrder: 7 +--- + +Post your questions on +[StackExchange](https://solana.stackexchange.com/questions/ask). + +## Berkeley Packet Filter (BPF) + +Solana onchain programs are compiled via the +[LLVM compiler infrastructure](https://llvm.org/) to an +[Executable and Linkable Format (ELF)](https://en.wikipedia.org/wiki/Executable_and_Linkable_Format) +containing a variation of the +[Berkeley Packet Filter (BPF)](https://en.wikipedia.org/wiki/Berkeley_Packet_Filter) +bytecode. + +Because Solana uses the LLVM compiler infrastructure, a program may be written +in any programming language that can target the LLVM's BPF backend. + +BPF provides an efficient +[instruction set](https://github.com/iovisor/bpf-docs/blob/master/eBPF.md) that +can be executed in an interpreted virtual machine or as efficient just-in-time +compiled native instructions. + +## Memory map + +The virtual address memory map used by Solana SBF programs is fixed and laid out +as follows + +- Program code starts at 0x100000000 +- Stack data starts at 0x200000000 +- Heap data starts at 0x300000000 +- Program input parameters start at 0x400000000 + +The above virtual addresses are start addresses but programs are given access to +a subset of the memory map. The program will panic if it attempts to read or +write to a virtual address that it was not granted access to, and an +`AccessViolation` error will be returned that contains the address and size of +the attempted violation. + +## InvalidAccountData + +This program error can happen for a lot of reasons. Usually, it's caused by +passing an account to the program that the program is not expecting, either in +the wrong position in the instruction or an account not compatible with the +instruction being executed. + +An implementation of a program might also cause this error when performing a +cross-program instruction and forgetting to provide the account for the program +that you are calling. + +## InvalidInstructionData + +This program error can occur while trying to deserialize the instruction, check +that the structure passed in matches exactly the instruction. There may be some +padding between fields. If the program implements the Rust `Pack` trait then try +packing and unpacking the instruction type `T` to determine the exact encoding +the program expects. + +## MissingRequiredSignature + +Some instructions require the account to be a signer; this error is returned if +an account is expected to be signed but is not. + +An implementation of a program might also cause this error when performing a +[cross-program invocation](/docs/core/cpi.md) that requires a signed program +address, but the passed signer seeds passed to `invoke_signed` don't match the +signer seeds used to create the program address +[`create_program_address`](/docs/core/pda.md#createprogramaddress). + +## Stack + +SBF uses stack frames instead of a variable stack pointer. Each stack frame is +4KB in size. + +If a program violates that stack frame size, the compiler will report the +overrun as a warning. + +For example: + +```text +Error: Function _ZN16curve25519_dalek7edwards21EdwardsBasepointTable6create17h178b3d2411f7f082E Stack offset of -30728 exceeded max offset of -4096 by 26632 bytes, please minimize large stack variables +``` + +The message identifies which symbol is exceeding its stack frame, but the name +might be mangled. + +> To demangle a Rust symbol use [rustfilt](https://github.com/luser/rustfilt). + +The above warning came from a Rust program, so the demangled symbol name is: + +```shell +rustfilt _ZN16curve25519_dalek7edwards21EdwardsBasepointTable6create17h178b3d2411f7f082E +curve25519_dalek::edwards::EdwardsBasepointTable::create +``` + +The reason a warning is reported rather than an error is because some dependent +crates may include functionality that violates the stack frame restrictions even +if the program doesn't use that functionality. If the program violates the stack +size at runtime, an `AccessViolation` error will be reported. + +SBF stack frames occupy a virtual address range starting at `0x200000000`. + +## Heap size + +Programs have access to a runtime heap via the Rust `alloc` APIs. To facilitate +fast allocations, a simple 32KB bump heap is utilized. The heap does not support +`free` or `realloc`. + +Internally, programs have access to the 32KB memory region starting at virtual +address 0x300000000 and may implement a custom heap based on the program's +specific needs. + +Rust programs implement the heap directly by defining a custom +[`global_allocator`](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/entrypoint.rs#L72) + +## Loaders + +Programs are deployed with and executed by runtime loaders, currently there are +two supported loaders +[BPF Loader](https://github.com/solana-labs/solana/blob/7ddf10e602d2ed87a9e3737aa8c32f1db9f909d8/sdk/program/src/bpf_loader.rs#L17) +and +[BPF loader deprecated](https://github.com/solana-labs/solana/blob/7ddf10e602d2ed87a9e3737aa8c32f1db9f909d8/sdk/program/src/bpf_loader_deprecated.rs#L14) + +Loaders may support different application binary interfaces so developers must +write their programs for and deploy them to the same loader. If a program +written for one loader is deployed to a different one the result is usually a +`AccessViolation` error due to mismatched deserialization of the program's input +parameters. + +For all practical purposes program should always be written to target the latest +BPF loader and the latest loader is the default for the command-line interface +and the javascript APIs. + +- [Rust program entrypoints](/docs/programs/lang-rust.md#program-entrypoint) + +### Deployment + +SBF program deployment is the process of uploading a BPF shared object into a +program account's data and marking the account executable. A client breaks the +SBF shared object into smaller pieces and sends them as the instruction data of +[`Write`](https://github.com/solana-labs/solana/blob/bc7133d7526a041d1aaee807b80922baa89b6f90/sdk/program/src/loader_instruction.rs#L13) +instructions to the loader where loader writes that data into the program's +account data. Once all the pieces are received the client sends a +[`Finalize`](https://github.com/solana-labs/solana/blob/bc7133d7526a041d1aaee807b80922baa89b6f90/sdk/program/src/loader_instruction.rs#L30) +instruction to the loader, the loader then validates that the SBF data is valid +and marks the program account as _executable_. Once the program account is +marked executable, subsequent transactions may issue instructions for that +program to process. + +When an instruction is directed at an executable SBF program the loader +configures the program's execution environment, serializes the program's input +parameters, calls the program's entrypoint, and reports any errors encountered. + +For further information, see [deploying programs](/docs/programs/deploying.md). + +### Input Parameter Serialization + +SBF loaders serialize the program input parameters into a byte array that is +then passed to the program's entrypoint, where the program is responsible for +deserializing it on-chain. One of the changes between the deprecated loader and +the current loader is that the input parameters are serialized in a way that +results in various parameters falling on aligned offsets within the aligned byte +array. This allows deserialization implementations to directly reference the +byte array and provide aligned pointers to the program. + +- [Rust program parameter deserialization](/docs/programs/lang-rust.md#parameter-deserialization) + +The latest loader serializes the program input parameters as follows (all +encoding is little endian): + +- 8 bytes unsigned number of accounts +- For each account + - 1 byte indicating if this is a duplicate account, if not a duplicate then + the value is 0xff, otherwise the value is the index of the account it is a + duplicate of. + - If duplicate: 7 bytes of padding + - If not duplicate: + - 1 byte boolean, true if account is a signer + - 1 byte boolean, true if account is writable + - 1 byte boolean, true if account is executable + - 4 bytes of padding + - 32 bytes of the account public key + - 32 bytes of the account's owner public key + - 8 bytes unsigned number of lamports owned by the account + - 8 bytes unsigned number of bytes of account data + - x bytes of account data + - 10k bytes of padding, used for realloc + - enough padding to align the offset to 8 bytes. + - 8 bytes rent epoch +- 8 bytes of unsigned number of instruction data +- x bytes of instruction data +- 32 bytes of the program id diff --git a/docs/programs/lang-rust.md b/docs/programs/lang-rust.md new file mode 100644 index 000000000..503ceaccb --- /dev/null +++ b/docs/programs/lang-rust.md @@ -0,0 +1,387 @@ +--- +title: "Developing with Rust" +sidebarSortOrder: 4 +--- + +Solana supports writing onchain programs using the +[Rust](https://www.rust-lang.org/) programming language. + +- [Setup your local environment](/docs/intro/installation) and use the local + test validator. + +## Project Layout + +Solana Rust programs follow the typical +[Rust project layout](https://doc.rust-lang.org/cargo/guide/project-layout.html): + +```text +/inc/ +/src/ +/Cargo.toml +``` + +Solana Rust programs may depend directly on each other in order to gain access +to instruction helpers when making +[cross-program invocations](/docs/core/cpi.md). When doing so it's important to +not pull in the dependent program's entrypoint symbols because they may conflict +with the program's own. To avoid this, programs should define an `no-entrypoint` +feature in `Cargo.toml` and use to exclude the entrypoint. + +- [Define the feature](https://github.com/solana-labs/solana-program-library/blob/fca9836a2c8e18fc7e3595287484e9acd60a8f64/token/program/Cargo.toml#L12) +- [Exclude the entrypoint](https://github.com/solana-labs/solana-program-library/blob/fca9836a2c8e18fc7e3595287484e9acd60a8f64/token/program/src/lib.rs#L12) + +Then when other programs include this program as a dependency, they should do so +using the `no-entrypoint` feature. + +- [Include without entrypoint](https://github.com/solana-labs/solana-program-library/blob/fca9836a2c8e18fc7e3595287484e9acd60a8f64/token-swap/program/Cargo.toml#L22) + +## Project Dependencies + +At a minimum, Solana Rust programs must pull in the +[`solana-program`](https://crates.io/crates/solana-program) crate. + +Solana SBF programs have some [restrictions](#restrictions) that may prevent the +inclusion of some crates as dependencies or require special handling. + +For example: + +- Crates that require the architecture be a subset of the ones supported by the + official toolchain. There is no workaround for this unless that crate is + forked and SBF added to that those architecture checks. +- Crates may depend on `rand` which is not supported in Solana's deterministic + program environment. To include a `rand` dependent crate refer to + [Depending on Rand](#depending-on-rand). +- Crates may overflow the stack even if the stack overflowing code isn't + included in the program itself. For more information refer to + [Stack](/docs/programs/faq.md#stack). + +## How to Build + +First setup the environment: + +- Install the latest Rust stable from https://rustup.rs/ +- Install the latest [Solana command-line tools](/docs/intro/installation.md) + +The normal cargo build is available for building programs against your host +machine which can be used for unit testing: + +```shell +cargo build +``` + +To build a specific program, such as SPL Token, for the Solana SBF target which +can be deployed to the cluster: + +```shell +cd +cargo build-bpf +``` + +## How to Test + +Solana programs can be unit tested via the traditional `cargo test` mechanism by +exercising program functions directly. + +To help facilitate testing in an environment that more closely matches a live +cluster, developers can use the +[`program-test`](https://crates.io/crates/solana-program-test) crate. The +`program-test` crate starts up a local instance of the runtime and allows tests +to send multiple transactions while keeping state for the duration of the test. + +For more information the +[test in sysvar example](https://github.com/solana-labs/solana-program-library/blob/master/examples/rust/sysvar/tests/functional.rs) +shows how an instruction containing sysvar account is sent and processed by the +program. + +## Program Entrypoint + +Programs export a known entrypoint symbol which the Solana runtime looks up and +calls when invoking a program. Solana supports multiple versions of the BPF +loader and the entrypoints may vary between them. Programs must be written for +and deployed to the same loader. For more details see the +[FAQ section on Loaders](/docs/programs/faq.md#loaders). + +Currently there are two supported loaders +[BPF Loader](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/bpf_loader.rs#L17) +and +[BPF loader deprecated](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/bpf_loader_deprecated.rs#L14) + +They both have the same raw entrypoint definition, the following is the raw +symbol that the runtime looks up and calls: + +```rust +#[no_mangle] +pub unsafe extern "C" fn entrypoint(input: *mut u8) -> u64; +``` + +This entrypoint takes a generic byte array which contains the serialized program +parameters (program id, accounts, instruction data, etc...). To deserialize the +parameters each loader contains its own wrapper macro that exports the raw +entrypoint, deserializes the parameters, calls a user defined instruction +processing function, and returns the results. + +You can find the entrypoint macros here: + +- [BPF Loader's entrypoint macro](https://github.com/solana-labs/solana/blob/9b1199cdb1b391b00d510ed7fc4866bdf6ee4eb3/sdk/program/src/entrypoint.rs#L42) +- [BPF Loader deprecated's entrypoint macro](https://github.com/solana-labs/solana/blob/9b1199cdb1b391b00d510ed7fc4866bdf6ee4eb3/sdk/program/src/entrypoint_deprecated.rs#L38) + +The program defined instruction processing function that the entrypoint macros +call must be of this form: + +```rust +pub type ProcessInstruction = + fn(program_id: &Pubkey, accounts: &[AccountInfo], instruction_data: &[u8]) -> ProgramResult; +``` + +### Parameter Deserialization + +Each loader provides a helper function that deserializes the program's input +parameters into Rust types. The entrypoint macros automatically calls the +deserialization helper: + +- [BPF Loader deserialization](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/entrypoint.rs#L146) +- [BPF Loader deprecated deserialization](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/entrypoint_deprecated.rs#L57) + +Some programs may want to perform deserialization themselves and they can by +providing their own implementation of the [raw entrypoint](#program-entrypoint). +Take note that the provided deserialization functions retain references back to +the serialized byte array for variables that the program is allowed to modify +(lamports, account data). The reason for this is that upon return the loader +will read those modifications so they may be committed. If a program implements +their own deserialization function they need to ensure that any modifications +the program wishes to commit be written back into the input byte array. + +Details on how the loader serializes the program inputs can be found in the +[Input Parameter Serialization](/docs/programs/faq.md#input-parameter-serialization) +docs. + +### Data Types + +The loader's entrypoint macros call the program defined instruction processor +function with the following parameters: + +```rust +program_id: &Pubkey, +accounts: &[AccountInfo], +instruction_data: &[u8] +``` + +The program id is the public key of the currently executing program. + +The accounts is an ordered slice of the accounts referenced by the instruction +and represented as an +[AccountInfo](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/account_info.rs#L12) +structures. An account's place in the array signifies its meaning, for example, +when transferring lamports an instruction may define the first account as the +source and the second as the destination. + +The members of the `AccountInfo` structure are read-only except for `lamports` +and `data`. Both may be modified by the program in accordance with the "runtime +enforcement policy". Both of these members are protected by the Rust `RefCell` +construct, so they must be borrowed to read or write to them. The reason for +this is they both point back to the original input byte array, but there may be +multiple entries in the accounts slice that point to the same account. Using +`RefCell` ensures that the program does not accidentally perform overlapping +read/writes to the same underlying data via multiple `AccountInfo` structures. +If a program implements their own deserialization function care should be taken +to handle duplicate accounts appropriately. + +The instruction data is the general purpose byte array from the +[instruction's instruction data](/docs/core/transactions.md#instruction) being +processed. + +## Heap + +Rust programs implement the heap directly by defining a custom +[`global_allocator`](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/entrypoint.rs#L72) + +Programs may implement their own `global_allocator` based on its specific needs. +Refer to the [custom heap example](#examples) for more information. + +## Restrictions + +On-chain Rust programs support most of Rust's libstd, libcore, and liballoc, as +well as many 3rd party crates. + +There are some limitations since these programs run in a resource-constrained, +single-threaded environment, as well as being deterministic: + +- No access to + - `rand` + - `std::fs` + - `std::net` + - `std::future` + - `std::process` + - `std::sync` + - `std::task` + - `std::thread` + - `std::time` +- Limited access to: + - `std::hash` + - `std::os` +- Bincode is extremely computationally expensive in both cycles and call depth + and should be avoided +- String formatting should be avoided since it is also computationally + expensive. +- No support for `println!`, `print!`, the Solana [logging helpers](#logging) + should be used instead. +- The runtime enforces a limit on the number of instructions a program can + execute during the processing of one instruction. See + [computation budget](/docs/core/fees.md#compute-budget) for more information. + +## Depending on Rand + +Programs are constrained to run deterministically, so random numbers are not +available. Sometimes a program may depend on a crate that depends itself on +`rand` even if the program does not use any of the random number functionality. +If a program depends on `rand`, the compilation will fail because there is no +`get-random` support for Solana. The error will typically look like this: + +```shell +error: target is not supported, for more information see: https://docs.rs/getrandom/#unsupported-targets + --> /Users/jack/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.1.14/src/lib.rs:257:9 + | +257 | / compile_error!("\ +258 | | target is not supported, for more information see: \ +259 | | https://docs.rs/getrandom/#unsupported-targets\ +260 | | "); + | |___________^ +``` + +To work around this dependency issue, add the following dependency to the +program's `Cargo.toml`: + +```rust +getrandom = { version = "0.1.14", features = ["dummy"] } +``` + +or if the dependency is on getrandom v0.2 add: + +```rust +getrandom = { version = "0.2.2", features = ["custom"] } +``` + +## Logging + +Rust's `println!` macro is computationally expensive and not supported. Instead +the helper macro +[`msg!`](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/log.rs#L33) +is provided. + +`msg!` has two forms: + +```rust +msg!("A string"); +``` + +or + +```rust +msg!(0_64, 1_64, 2_64, 3_64, 4_64); +``` + +Both forms output the results to the program logs. If a program so wishes they +can emulate `println!` by using `format!`: + +```rust +msg!("Some variable: {:?}", variable); +``` + +## Panicking + +Rust's `panic!`, `assert!`, and internal panic results are printed to the +program logs by default. + +```shell +INFO solana_runtime::message_processor] Finalized account CGLhHSuWsp1gT4B7MY2KACqp9RUwQRhcUFfVSuxpSajZ +INFO solana_runtime::message_processor] Call SBF program CGLhHSuWsp1gT4B7MY2KACqp9RUwQRhcUFfVSuxpSajZ +INFO solana_runtime::message_processor] Program log: Panicked at: 'assertion failed: `(left == right)` + left: `1`, + right: `2`', rust/panic/src/lib.rs:22:5 +INFO solana_runtime::message_processor] SBF program consumed 5453 of 200000 units +INFO solana_runtime::message_processor] SBF program CGLhHSuWsp1gT4B7MY2KACqp9RUwQRhcUFfVSuxpSajZ failed: BPF program panicked +``` + +### Custom Panic Handler + +Programs can override the default panic handler by providing their own +implementation. + +First define the `custom-panic` feature in the program's `Cargo.toml` + +```rust +[features] +default = ["custom-panic"] +custom-panic = [] +``` + +Then provide a custom implementation of the panic handler: + +```rust +#[cfg(all(feature = "custom-panic", target_os = "solana"))] +#[no_mangle] +fn custom_panic(info: &core::panic::PanicInfo<'_>) { + solana_program::msg!("program custom panic enabled"); + solana_program::msg!("{}", info); +} +``` + +In the above snippit, the default implementation is shown, but developers may +replace that with something that better suits their needs. + +One of the side effects of supporting full panic messages by default is that +programs incur the cost of pulling in more of Rust's `libstd` implementation +into program's shared object. Typical programs will already be pulling in a fair +amount of `libstd` and may not notice much of an increase in the shared object +size. But programs that explicitly attempt to be very small by avoiding `libstd` +may take a significant impact (~25kb). To eliminate that impact, programs can +provide their own custom panic handler with an empty implementation. + +```rust +#[cfg(all(feature = "custom-panic", target_os = "solana"))] +#[no_mangle] +fn custom_panic(info: &core::panic::PanicInfo<'_>) { + // Do nothing to save space +} +``` + +## Compute Budget + +Use the system call `sol_remaining_compute_units()` to return a `u64` indicating +the number of compute units remaining for this transaction. + +Use the system call +[`sol_log_compute_units()`](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/log.rs#L141) +to log a message containing the remaining number of compute units the program +may consume before execution is halted + +See the [Compute Budget](/docs/core/fees.md#compute-budget) documentation for +more information. + +## ELF Dump + +The SBF shared object internals can be dumped to a text file to gain more +insight into a program's composition and what it may be doing at runtime. The +dump will contain both the ELF information as well as a list of all the symbols +and the instructions that implement them. Some of the BPF loader's error log +messages will reference specific instruction numbers where the error occurred. +These references can be looked up in the ELF dump to identify the offending +instruction and its context. + +To create a dump file: + +```shell +cd +cargo build-bpf --dump +``` + +## Examples + +The +[Solana Program Library GitHub](https://github.com/solana-labs/solana-program-library/tree/master/examples/rust) +repo contains a collection of Rust examples. + +The +[Solana Developers Program Examples GitHub](https://github.com/solana-developers/program-examples) +repo also contains a collection of beginner to intermediate Rust program +examples. diff --git a/docs/programs/limitations.md b/docs/programs/limitations.md new file mode 100644 index 000000000..1ec59ccc3 --- /dev/null +++ b/docs/programs/limitations.md @@ -0,0 +1,112 @@ +--- +title: "Limitations" +sidebarSortOrder: 6 +--- + +Developing programs on the Solana blockchain have some inherent limitation +associated with them. Below is a list of common limitation that you may run +into. + +## Rust libraries + +Since Rust based onchain programs must run be deterministic while running in a +resource-constrained, single-threaded environment, they have some limitations on +various libraries. + +On-chain Rust programs support most of Rust's libstd, libcore, and liballoc, as +well as many 3rd party crates. + +There are some limitations since these programs run in a resource-constrained, +single-threaded environment, as well as being deterministic: + +- No access to + - `rand` + - `std::fs` + - `std::net` + - `std::future` + - `std::process` + - `std::sync` + - `std::task` + - `std::thread` + - `std::time` +- Limited access to: + - `std::hash` + - `std::os` +- Bincode is extremely computationally expensive in both cycles and call depth + and should be avoided +- String formatting should be avoided since it is also computationally + expensive. +- No support for `println!`, `print!`, use the + [`msg!`](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/log.rs#L33) + macro instead. +- The runtime enforces a limit on the number of instructions a program can + execute during the processing of one instruction. See + [computation budget](/docs/core/fees.md#compute-budget) for more information. + +## Compute budget + +To prevent abuse of the blockchain's computational resources, each transaction +is allocated a [compute budget](/docs/terminology.md#compute-budget). Exceeding +this compute budget will result in the transaction failing. + +See the [computational constraints](/docs/core/fees.md#compute-budget) +documentation for more specific details. + +## Call stack depth - `CallDepthExceeded` error + +Solana programs are constrained to run quickly, and to facilitate this, the +program's call stack is limited to a max depth of **64 frames**. + +When a program exceeds the allowed call stack depth limit, it will receive the +`CallDepthExceeded` error. + +## CPI call depth - `CallDepth` error + +Cross-program invocations allow programs to invoke other programs directly, but +the depth is constrained currently to `4`. + +When a program exceeds the allowed +[cross-program invocation call depth](/docs/core/cpi.md), it will receive a +`CallDepth` error + +## Float Rust types support + +Programs support a limited subset of Rust's float operations. If a program +attempts to use a float operation that is not supported, the runtime will report +an unresolved symbol error. + +Float operations are performed via software libraries, specifically LLVM's float +built-ins. Due to the software emulated, they consume more compute units than +integer operations. In general, fixed point operations are recommended where +possible. + +The +[Solana Program Library math](https://github.com/solana-labs/solana-program-library/tree/master/libraries/math) +tests will report the performance of some math operations. To run the test, sync +the repo and run: + +```shell +cargo test-sbf -- --nocapture --test-threads=1 +``` + +Recent results show the float operations take more instructions compared to +integers equivalents. Fixed point implementations may vary but will also be less +than the float equivalents: + +```text + u64 f32 +Multiply 8 176 +Divide 9 219 +``` + +## Static writable data + +Program shared objects do not support writable shared data. Programs are shared +between multiple parallel executions using the same shared read-only code and +data. This means that developers should not include any static writable or +global variables in programs. In the future a copy-on-write mechanism could be +added to support writable data. + +## Signed division + +The SBF instruction set does not support signed division. From b3224914d99cd67a8d692dfe3e2e96d6144a55b3 Mon Sep 17 00:00:00 2001 From: acheron <98934430+acheroncrypto@users.noreply.github.com> Date: Thu, 17 Oct 2024 19:01:08 +0200 Subject: [PATCH 123/206] Remove Rust 1.79.0 section from Anchor installation (#568) --- docs/intro/installation.md | 36 ------------------------------------ 1 file changed, 36 deletions(-) diff --git a/docs/intro/installation.md b/docs/intro/installation.md index bf3ddd1b5..67bc80b21 100644 --- a/docs/intro/installation.md +++ b/docs/intro/installation.md @@ -363,42 +363,6 @@ You should see output similar to the following: anchor-cli 0.30.1 ``` -If you encounter the error `type annotations needed for Box<_>` when installing -the Anchor CLI, try changing your Rust version to 1.79.0 and attempt the -installation again. - - -`"}> - -``` - Compiling time v0.3.29 -error[E0282]: type annotations needed for `Box<_>` - --> /home/x/.cargo/registry/src/index.crates.io-6f17d22bba15001f/time-0.3.29/src/format_description/parse/mod.rs:83:9 - | -83 | let items = format_items - | ^^^^^ -... -86 | Ok(items.into()) - | ---- type must be known at this point - | -help: consider giving `items` an explicit type, where the placeholders `_` are specified - | -83 | let items: Box<_> = format_items - | ++++++++ -``` - -You can find more context regarding this error -[here](https://github.com/coral-xyz/anchor/pull/3143) - - - - -Run the following command to install Rust 1.79.0: - -```shell -rustup default 1.79.0 -``` - When installing the Anchor CLI on Linux or WSL, you may encounter this error: ``` From 4bd49e2d0dee9bb861f409e79dbbb76165e020fc Mon Sep 17 00:00:00 2001 From: migi <64385774+0xmigi@users.noreply.github.com> Date: Thu, 17 Oct 2024 14:11:03 -0400 Subject: [PATCH 124/206] Update full-stack-solana-development.md (#566) --- content/guides/getstarted/full-stack-solana-development.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/guides/getstarted/full-stack-solana-development.md b/content/guides/getstarted/full-stack-solana-development.md index d8346a050..01b6659ca 100644 --- a/content/guides/getstarted/full-stack-solana-development.md +++ b/content/guides/getstarted/full-stack-solana-development.md @@ -489,7 +489,7 @@ pub struct Counter { Make sure you go over the comments! -The `initialize` instruction instruction does only one this: it creates a new +The `initialize` instruction does only one thing: it creates a new account of the `Counter` type. To do this, we need to know who's paying, details of the account we're creating like the space and the address, and which program to use to create the account. From 75dafa840beda2d3a169a903aaba9bc491c59100 Mon Sep 17 00:00:00 2001 From: ml-james <55996732+ml-james@users.noreply.github.com> Date: Thu, 17 Oct 2024 14:16:52 -0400 Subject: [PATCH 125/206] Add solana4j (open sourced by LMAX) to the list of client-side java sdks (#565) * Add solana4j open sourced by LMAX to the list of client-side java sdks * Fix linting problems --- docs/intro/dev.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/intro/dev.md b/docs/intro/dev.md index fd3f90e24..42426b5db 100644 --- a/docs/intro/dev.md +++ b/docs/intro/dev.md @@ -68,16 +68,16 @@ If you're developing on the client-side, you can work with any programming language you're comfortable with. Solana has community-contributed SDKs to help developers interact with the Solana network in most popular languages : -| Language | SDK | -| ---------- | ------------------------------------------------------------------------------------------------------ | -| RUST | [solana_sdk](https://docs.rs/solana-sdk/latest/solana_sdk/) | -| Typescript | [@solana/web3.js](https://github.com/solana-labs/solana-web3.js) | -| Python | [solders](https://github.com/kevinheavey/solders) | -| Java | [solanaj](https://github.com/skynetcap/solanaj) | -| C++ | [solcpp](https://github.com/mschneider/solcpp) | -| Go | [solana-go](https://github.com/gagliardetto/solana-go) | -| Kotlin | [solanaKT](https://github.com/metaplex-foundation/SolanaKT) or [sol4k](https://github.com/sol4k/sol4k) | -| Dart | [solana](https://github.com/espresso-cash/espresso-cash-public/tree/master/packages/solana) | +| Language | SDK | +| ---------- | -------------------------------------------------------------------------------------------------------- | +| RUST | [solana_sdk](https://docs.rs/solana-sdk/latest/solana_sdk/) | +| Typescript | [@solana/web3.js](https://github.com/solana-labs/solana-web3.js) | +| Python | [solders](https://github.com/kevinheavey/solders) | +| Java | [solanaj](https://github.com/skynetcap/solanaj) or [solana4j](https://github.com/LMAX-Exchange/solana4j) | +| C++ | [solcpp](https://github.com/mschneider/solcpp) | +| Go | [solana-go](https://github.com/gagliardetto/solana-go) | +| Kotlin | [solanaKT](https://github.com/metaplex-foundation/SolanaKT) or [sol4k](https://github.com/sol4k/sol4k) | +| Dart | [solana](https://github.com/espresso-cash/espresso-cash-public/tree/master/packages/solana) | You'll also need a connection with an RPC to interact with the network. You can either work with a [RPC infrastructure provider](https://solana.com/rpc) or From c26566836d565d395e652535d4aaa3fae61cb92b Mon Sep 17 00:00:00 2001 From: Yong Jin Lee Date: Fri, 18 Oct 2024 03:20:37 +0900 Subject: [PATCH 126/206] Update fees.md (#564) There has been a minor grammatical error in the doc. Add "than" at line 425 of the doc. --- docs/core/fees.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/fees.md b/docs/core/fees.md index aaa988c9f..61a01b07c 100644 --- a/docs/core/fees.md +++ b/docs/core/fees.md @@ -422,7 +422,7 @@ allocates, the higher the withheld rent deposit will be. ### Rent exempt -Accounts must maintain a lamport balance greater the minimum required to store +Accounts must maintain a lamport balance greater than the minimum required to store its respective data on-chain. This is called "_rent exempt_" and that balance is called the "_minimum balance for rent exemption_". From 2d21dcd9e446e2744001a721cc46938420062b9a Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Thu, 17 Oct 2024 15:00:15 -0400 Subject: [PATCH 127/206] Fix backticks --- .../verifiable-randomness-functions.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md b/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md index e586b4090..0026bcc98 100644 --- a/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md +++ b/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md @@ -414,13 +414,13 @@ pub fn handler(ctx: Context) -> Result <()> { } ``` -Now you have randomness! Hooray! But there is one last thing we have not talked -about yet and that's how the randomness is returned. Switchboard, gives you your +Now you have randomness! Hooray! But there is one last thing we have not discussed +yet and that's how the randomness is returned. Switchboard, gives you your randomness calling -`[get_result()](https://github.com/switchboard-xyz/solana-sdk/blob/9dc3df8a5abe261e23d46d14f9e80a7032bb346c/rust/switchboard-solana/src/oracle_program/accounts/vrf.rs#L122)`. +[`get_result()`](https://github.com/switchboard-xyz/solana-sdk/blob/9dc3df8a5abe261e23d46d14f9e80a7032bb346c/rust/switchboard-solana/src/oracle_program/accounts/vrf.rs#L122). This method returns the `current_round.result` field of the `vrf` account SwitchboardDecimal format, which is really just a buffer of 32 random -`[u8](https://github.com/switchboard-xyz/solana-sdk/blob/9dc3df8a5abe261e23d46d14f9e80a7032bb346c/rust/switchboard-solana/src/oracle_program/accounts/ecvrf.rs#L65C26-L65C26)` +[`u8`](https://github.com/switchboard-xyz/solana-sdk/blob/9dc3df8a5abe261e23d46d14f9e80a7032bb346c/rust/switchboard-solana/src/oracle_program/accounts/ecvrf.rs#L65C26-L65C26) unsigned-integers. You can use these unsigned-integers however you see fit in your program, but a very common method is to treat each integer in the buffer as its own random number. For example, if you need a dice roll (1-6) just take the From 3be3a5a238d83620f1f9104025a269829b8ace85 Mon Sep 17 00:00:00 2001 From: NikitaKent <57263011+nikitakent@users.noreply.github.com> Date: Fri, 18 Oct 2024 05:42:20 +0900 Subject: [PATCH 128/206] Fix % in mkdwn (#337) "%" were not visible on Github or website due to Markdown notation syntax intricacies. Changed so that % symbol is now visible. Co-authored-by: Mike MacCana --- docs/economics/inflation/terminology.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/economics/inflation/terminology.md b/docs/economics/inflation/terminology.md index e8526d500..4b4db2af1 100644 --- a/docs/economics/inflation/terminology.md +++ b/docs/economics/inflation/terminology.md @@ -48,24 +48,24 @@ _Inflation Schedule_. - While the _Inflation Schedule_ determines how the protocol issues SOL, this neglects the concurrent elimination of tokens in the ecosystem due to various factors. The primary token burning mechanism is the burning of a portion of - each transaction fee. $50\%$ of each transaction fee is burned, with the + each transaction fee. $50$% of each transaction fee is burned, with the remaining fee retained by the validator that processes the transaction. - Additional factors such as loss of private keys and slashing events should also be considered in a holistic analysis of the _Effective Inflation Rate_. - For example, it's estimated that $10-20\%$ of all BTC have been lost and are + For example, it's estimated that $10-20$% of all BTC have been lost and are unrecoverable and that networks may experience similar yearly losses at the - rate of $1-2\%$. + rate of $1-2$%. ### Staking Yield [%] The rate of return (aka _interest_) earned on SOL staked on the network. It is often quoted as an annualized rate (e.g. "the network _staking yield_ is -currently $10\%$ per year"). +currently $10$% per year"). - _Staking yield_ is of great interest to validators and token holders who wish to delegate their tokens to avoid token dilution due to inflation (the extent of which is discussed below). -- $100\%$ of inflationary issuances are to be distributed to staked +- $100$% of inflationary issuances are to be distributed to staked token-holders in proportion to their staked SOL and to validators who charge a commission on the rewards earned by their delegated SOL. - There may be future consideration for an additional split of inflation From db6bb6bdd46aa6d6cc1c3cc0c59f32e717346650 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Thu, 17 Oct 2024 16:56:05 -0400 Subject: [PATCH 129/206] Fix percent characters properly (follow up to #337) --- docs/economics/inflation/terminology.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/economics/inflation/terminology.md b/docs/economics/inflation/terminology.md index 4b4db2af1..c6d6503f9 100644 --- a/docs/economics/inflation/terminology.md +++ b/docs/economics/inflation/terminology.md @@ -48,26 +48,26 @@ _Inflation Schedule_. - While the _Inflation Schedule_ determines how the protocol issues SOL, this neglects the concurrent elimination of tokens in the ecosystem due to various factors. The primary token burning mechanism is the burning of a portion of - each transaction fee. $50$% of each transaction fee is burned, with the + each transaction fee. 50% of each transaction fee is burned, with the remaining fee retained by the validator that processes the transaction. - Additional factors such as loss of private keys and slashing events should also be considered in a holistic analysis of the _Effective Inflation Rate_. - For example, it's estimated that $10-20$% of all BTC have been lost and are + For example, it's estimated that 10-20% of all BTC have been lost and are unrecoverable and that networks may experience similar yearly losses at the - rate of $1-2$%. + rate of 1-2%. ### Staking Yield [%] The rate of return (aka _interest_) earned on SOL staked on the network. It is often quoted as an annualized rate (e.g. "the network _staking yield_ is -currently $10$% per year"). +currently 10% per year"). - _Staking yield_ is of great interest to validators and token holders who wish to delegate their tokens to avoid token dilution due to inflation (the extent of which is discussed below). -- $100$% of inflationary issuances are to be distributed to staked - token-holders in proportion to their staked SOL and to validators who charge a - commission on the rewards earned by their delegated SOL. +- 100% of inflationary issuances are to be distributed to staked token-holders + in proportion to their staked SOL and to validators who charge a commission on + the rewards earned by their delegated SOL. - There may be future consideration for an additional split of inflation issuance with the introduction of _Archivers_ into the economy. _Archivers_ are network participants who provide a decentralized storage service and From 5dc01dd84e01f5dfcb7b0cb7947c3a533e73bba7 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Thu, 17 Oct 2024 17:19:27 -0400 Subject: [PATCH 130/206] Prettier --- .../verifiable-randomness-functions.md | 6 +++--- .../guides/getstarted/full-stack-solana-development.md | 8 ++++---- docs/core/fees.md | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md b/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md index 0026bcc98..3951a34f7 100644 --- a/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md +++ b/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md @@ -414,9 +414,9 @@ pub fn handler(ctx: Context) -> Result <()> { } ``` -Now you have randomness! Hooray! But there is one last thing we have not discussed -yet and that's how the randomness is returned. Switchboard, gives you your -randomness calling +Now you have randomness! Hooray! But there is one last thing we have not +discussed yet and that's how the randomness is returned. Switchboard, gives you +your randomness calling [`get_result()`](https://github.com/switchboard-xyz/solana-sdk/blob/9dc3df8a5abe261e23d46d14f9e80a7032bb346c/rust/switchboard-solana/src/oracle_program/accounts/vrf.rs#L122). This method returns the `current_round.result` field of the `vrf` account SwitchboardDecimal format, which is really just a buffer of 32 random diff --git a/content/guides/getstarted/full-stack-solana-development.md b/content/guides/getstarted/full-stack-solana-development.md index 01b6659ca..0923ba17b 100644 --- a/content/guides/getstarted/full-stack-solana-development.md +++ b/content/guides/getstarted/full-stack-solana-development.md @@ -489,10 +489,10 @@ pub struct Counter { Make sure you go over the comments! -The `initialize` instruction does only one thing: it creates a new -account of the `Counter` type. To do this, we need to know who's paying, details -of the account we're creating like the space and the address, and which program -to use to create the account. +The `initialize` instruction does only one thing: it creates a new account of +the `Counter` type. To do this, we need to know who's paying, details of the +account we're creating like the space and the address, and which program to use +to create the account. Let's go line by line: diff --git a/docs/core/fees.md b/docs/core/fees.md index 61a01b07c..126645e49 100644 --- a/docs/core/fees.md +++ b/docs/core/fees.md @@ -422,9 +422,9 @@ allocates, the higher the withheld rent deposit will be. ### Rent exempt -Accounts must maintain a lamport balance greater than the minimum required to store -its respective data on-chain. This is called "_rent exempt_" and that balance is -called the "_minimum balance for rent exemption_". +Accounts must maintain a lamport balance greater than the minimum required to +store its respective data on-chain. This is called "_rent exempt_" and that +balance is called the "_minimum balance for rent exemption_". > New accounts (and programs) on Solana are **REQUIRED** to be initialized with > enough lamports to become _rent exempt_. This was not always the case. From c050fd3b48e53b8a896e852b7555ecdd2a4cb53a Mon Sep 17 00:00:00 2001 From: Sal Samani <54984459+metasal1@users.noreply.github.com> Date: Sat, 19 Oct 2024 06:30:28 +1100 Subject: [PATCH 131/206] correct difficulty to match slug, corrected typo, changed to official faucet, fixed heading (in MD if 2 headings have the same name, the anchor tag will point to first link (#570) Co-authored-by: Sal Samani --- .../advanced/introduction-to-durable-nonces.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/content/guides/advanced/introduction-to-durable-nonces.md b/content/guides/advanced/introduction-to-durable-nonces.md index 536e1d440..744cb4be1 100644 --- a/content/guides/advanced/introduction-to-durable-nonces.md +++ b/content/guides/advanced/introduction-to-durable-nonces.md @@ -1,6 +1,6 @@ --- date: 2024-06-29T00:00:00Z -difficulty: intermediate +difficulty: advanced title: "Durable & Offline Transaction Signing using Nonces" description: "One-stop shop for Solana's Durable Nonces: an easy way to power your Solana @@ -219,7 +219,7 @@ AkrQn5QWLACSP5EMT2R1ZHyKaGWVFrDHJ6NL89HKtwjQ This is the base58 encoded hash that will be used in place of recent blockhashes while signing a transaction. -### Displace Nonce Account +### Display Nonce Account We can inspect the details of a Nonce Account in a prettier formatted version @@ -479,19 +479,21 @@ Voila, we've gone through a very real-life use case of Durable Nonces. Now let's see how to use them in transactions using JavaScript and the [`@solana/web3.js`](https://solana-labs.github.io/solana-web3.js/) package. -## Durable Nonces with Solana `web3.js` +## Durable Nonces with Solana Web3.js We'll use a similar example of making a simple transfer to demonstrate how to send transactions using durable nonces. -### Create Nonce Authority +### Create Nonce Authority (Web3.js) ```ts const nonceAuthKP = Keypair.generate(); -// airdrop some SOL into this account from https://solfaucet.com/ ``` -### Create Nonce Accounts +_If you need SOL, you can use the +[faucet.solana.com](https://faucet.solana.com/)_ to get some. + +### Create Nonce Accounts (Web3.js) ```ts const nonceKeypair = Keypair.generate(); @@ -533,7 +535,7 @@ const sig = await sendAndConfirmRawTransaction( console.log("Nonce initiated: ", sig); ``` -### Fetch Initialised Nonce Account +### Fetch Nonce Account (Web3.js) ```ts const accountInfo = await connection.getAccountInfo(nonceKeypair.publicKey); From 91dbe8dc8a314699d8fdf226a177afedc17c1dc7 Mon Sep 17 00:00:00 2001 From: Tim Garcia Date: Mon, 21 Oct 2024 06:48:06 -0700 Subject: [PATCH 132/206] Fixed SW QoS doc to use getClusterNodes (#578) The QUIC tpu port number was incorrectly listed in the docs. This change tells the user to get the QUIC tpu port from the getClusterNodes RPC call. --- content/guides/advanced/stake-weighted-qos.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/content/guides/advanced/stake-weighted-qos.md b/content/guides/advanced/stake-weighted-qos.md index 3a59738a8..149b5cca1 100644 --- a/content/guides/advanced/stake-weighted-qos.md +++ b/content/guides/advanced/stake-weighted-qos.md @@ -140,9 +140,8 @@ On the RPC you will have to use `--rpc-send-transaction-tpu-peer` to forward transactions to a specific leader. The exact usage would be `--rpc-send-transaction-tpu-peer HOST:PORT`. The Host is the ip address of the leader you have the `staked-nodes-overrides` enabled on and the Port is the QUIC -TPU port of that host. The QUIC TPU port number is the lowest value of your -`--dynamic-port-range` plus 9. For example, if the flag is -`--dynamic-port-range 8000-8100`, the QUIC TPU port is `8009`. +TPU port of that host. The QUIC TPU port for a leader can be identified by +making an RPC call to [getClusterNodes](/docs/rpc/http/getClusterNodes.mdx). The peering would looking like the following: From f247c8b1ac4867f3bdd145b2080b7b1d0c3cfc9c Mon Sep 17 00:00:00 2001 From: Alok Date: Mon, 21 Oct 2024 20:14:44 +0530 Subject: [PATCH 133/206] Fix: resolve type error in program initialization example (#577) Signed-off-by: alok8bb --- .../courses/onchain-development/intro-to-anchor-frontend.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/courses/onchain-development/intro-to-anchor-frontend.md b/content/courses/onchain-development/intro-to-anchor-frontend.md index c4ea5331e..f8048a458 100644 --- a/content/courses/onchain-development/intro-to-anchor-frontend.md +++ b/content/courses/onchain-development/intro-to-anchor-frontend.md @@ -414,10 +414,10 @@ const wallet = useAnchorWallet(); const provider = new AnchorProvider(connection, wallet, {}); setProvider(provider); -const program = new Program(idl as Idl) as Program; +const program = new Program(idl as CounterProgram); // we can also explicitly mention the provider -const program = new Program(idl as Idl, provider) as Program; +const program = new Program(idl as CounterProgram, provider); ``` ### Anchor `MethodsBuilder` From acf48eafa3bd02756a05472fcc21342762443d79 Mon Sep 17 00:00:00 2001 From: Mik Watkins <63586831+Mikerniker@users.noreply.github.com> Date: Mon, 21 Oct 2024 22:45:21 +0800 Subject: [PATCH 134/206] fix broken link (#576) --- content/courses/intro-to-solana/intro-to-writing-data.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/courses/intro-to-solana/intro-to-writing-data.md b/content/courses/intro-to-solana/intro-to-writing-data.md index 3bff43d78..4fde2db16 100644 --- a/content/courses/intro-to-solana/intro-to-writing-data.md +++ b/content/courses/intro-to-solana/intro-to-writing-data.md @@ -163,7 +163,7 @@ We're going to create a script to send SOL to other students. ### Basic scaffolding We'll start by using the same packages and `.env` file we made earlier in -[Intro to Cryptography](/content/courses/intro-to-solana/intro-to-cryptography). +[Intro to Cryptography](/content/courses/intro-to-solana/intro-to-cryptography.md). Create a file called `transfer.ts`: From 47f27186c919cffb0b196c1b5f1262b2164b23e7 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Mon, 21 Oct 2024 10:47:01 -0400 Subject: [PATCH 135/206] prettier --- content/courses/onchain-development/intro-to-anchor-frontend.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/courses/onchain-development/intro-to-anchor-frontend.md b/content/courses/onchain-development/intro-to-anchor-frontend.md index f8048a458..0afe4ba99 100644 --- a/content/courses/onchain-development/intro-to-anchor-frontend.md +++ b/content/courses/onchain-development/intro-to-anchor-frontend.md @@ -414,7 +414,7 @@ const wallet = useAnchorWallet(); const provider = new AnchorProvider(connection, wallet, {}); setProvider(provider); -const program = new Program(idl as CounterProgram); +const program = new Program(idl as CounterProgram); // we can also explicitly mention the provider const program = new Program(idl as CounterProgram, provider); From 767d78eb76cfc657b893b52f80ca223c7a02b878 Mon Sep 17 00:00:00 2001 From: Zhang ShengYan Date: Mon, 21 Oct 2024 23:06:44 +0800 Subject: [PATCH 136/206] fix: mint authority (#573) --- content/courses/onchain-development/anchor-cpi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/courses/onchain-development/anchor-cpi.md b/content/courses/onchain-development/anchor-cpi.md index 5c96a7456..53d396f9f 100644 --- a/content/courses/onchain-development/anchor-cpi.md +++ b/content/courses/onchain-development/anchor-cpi.md @@ -552,7 +552,7 @@ pub fn add_movie_review( CpiContext::new_with_signer( ctx.accounts.token_program.to_account_info(), MintTo { - authority: ctx.accounts.mint.to_account_info(), + authority: ctx.accounts.initializer.to_account_info(), to: ctx.accounts.token_account.to_account_info(), mint: ctx.accounts.mint.to_account_info() }, From e68cd307bdc0b5ec38bbaad363e9c4e7292ce932 Mon Sep 17 00:00:00 2001 From: Asten Date: Mon, 21 Oct 2024 23:15:44 +0800 Subject: [PATCH 137/206] Update anchor-cpi.md (#571) --- content/courses/onchain-development/anchor-cpi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/courses/onchain-development/anchor-cpi.md b/content/courses/onchain-development/anchor-cpi.md index 53d396f9f..d769d6b4b 100644 --- a/content/courses/onchain-development/anchor-cpi.md +++ b/content/courses/onchain-development/anchor-cpi.md @@ -380,7 +380,7 @@ pub struct InitializeMint<'info> { bump, payer = user, mint::decimals = 6, - mint::authority = user, + mint::authority = mint, )] pub mint: Account<'info, Mint>, #[account(mut)] From f9294e54334b93a02b1863af1b150fe1228f9db2 Mon Sep 17 00:00:00 2001 From: John <75003086+ZYJLiu@users.noreply.github.com> Date: Mon, 21 Oct 2024 11:12:12 -0500 Subject: [PATCH 138/206] update readme (#580) --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index 3ec8a498f..14bb5d91a 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,22 @@ These markdown based content posts are gathered from contributors from around the Solana ecosystem and displayed on [solana.com/developers](https://solana.com/developers) for all to learn from. +## Setup Instructions + +This repository contains only the markdown files for content. The content is +rendered through a separate UI repository. + +1. Clone this repository (developer-content) +2. Clone the UI repository: + [solana-com](https://github.com/solana-foundation/solana-com) +3. Run both repositories locally to view the rendered content + +In the solana-com repo, you must add the following `.env` variable: + +``` +NEXT_PUBLIC_DEVELOPER_CONTENT_API_URL="http://localhost:3001" +``` + ## Structure There are a few primary types of Solana Developer content within this repo: From 2f2e07f37b1a6f1d17726f0189447ecef942c263 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Mon, 21 Oct 2024 12:36:29 -0400 Subject: [PATCH 139/206] Small fixes to Anchor CPI (#579) While I was reviewing #571 - Fix circular 'remaining accounts' definition - signer_seeds is for multiple signers, not just one - Grammarly fixes --- .../courses/onchain-development/anchor-cpi.md | 59 ++++++++++--------- 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/content/courses/onchain-development/anchor-cpi.md b/content/courses/onchain-development/anchor-cpi.md index d769d6b4b..694de55c4 100644 --- a/content/courses/onchain-development/anchor-cpi.md +++ b/content/courses/onchain-development/anchor-cpi.md @@ -52,10 +52,11 @@ The `CpiContext` type specifies non-argument inputs for cross program invocations: - `accounts` - the list of accounts required for the instruction being invoked -- `remaining_accounts` - any remaining accounts +- `remaining_accounts` - accounts that are not part of this instruction but may + be used elsewhere (for example, by inner instructions) - `program` - the program ID of the program being invoked -- `signer_seeds` - if a PDA is signing, include the seeds required to derive the - PDA +- `signer_seeds` - if one or more PDAs are signing the transaction, the seeds + required to derive the PDAs ```rust pub struct CpiContext<'a, 'b, 'c, 'info, T> @@ -140,11 +141,11 @@ callee = { path = "../callee", features = ["cpi"]} By adding `features = ["cpi"]`, you enable the `cpi` feature and your program gains access to the `callee::cpi` module. -The `cpi` module turns `callee`'s instructions into Rust functions. These -functions take a `CpiContext` and any extra data needed for the instruction. -They work just like the instruction functions in your Anchor programs, but use -`CpiContext` instead of `Context`. The `cpi` module also provides the account -structs needed for these instruction handler. +The `cpi` module turns `callee`'s instruction handlers into Rust functions. +These functions take a `CpiContext` and any extra data needed for the +instruction. They work just like the instruction handlers in your Anchor +programs, but use `CpiContext` instead of `Context`. The `cpi` module also +provides the account structs needed for these instruction handler. For example, if `callee` has the instruction `do_something` that requires the accounts defined in the `DoSomething` struct, you could invoke `do_something` as @@ -179,14 +180,15 @@ pub mod lootbox_program { When the program you're calling is _not_ an Anchor program, there are two possible options: -1. It's possible that the program maintainers have published a crate with their - own helper functions for calling into their program. For example, the - `anchor_spl` crate provides helper functions that are virtually identical - from a call-site perspective to what you would get with the `cpi` module of - an Anchor program. E.g. you can mint using the +1. The program maintainers may have published a crate with their own helper + functions for calling into their program. For example, the `anchor_spl` crate + provides virtually identical helper functions from a call-site perspective to + what you would get with the `cpi` module of an Anchor program. E.g. you can + mint using the [`mint_to` helper function](https://docs.rs/anchor-spl/latest/src/anchor_spl/token.rs.html#36-58) and use the [`MintTo` accounts struct](https://docs.rs/anchor-spl/latest/anchor_spl/token/struct.MintTo.html). + ```rust token::mint_to( CpiContext::new_with_signer( @@ -204,12 +206,14 @@ possible options: amount, )?; ``` + 2. If there is no helper module for the program whose instruction(s) you need to invoke, you can fall back to using `invoke` and `invoke_signed`. In fact, the source code of the `mint_to` helper function referenced above shows an example using `invoke_signed` when given a `CpiContext`. You can follow a - similar pattern if you decide to use an accounts struct and `CpiContext` to - organize and prepare your CPI. + similar pattern if you use an accounts struct and `CpiContext` to organize + and prepare your CPI. + ```rust pub fn mint_to<'info>( ctx: CpiContext<'_foo, '_bar, '_baz, 'info, MintTo<'info>>, @@ -238,12 +242,12 @@ possible options: ### Throw errors in Anchor -We're deep enough into Anchor at this point that it's important to know how to +We're deep enough into Anchor at this point that it's essential to know how to create custom errors. Ultimately, all programs return the same error type:  [`ProgramError`](https://docs.rs/solana-program/latest/solana_program/program_error/enum.ProgramError.html). -However, when writing a program using Anchor you can use `AnchorError` as an +However, when writing a program using Anchor, you can use `AnchorError` as an abstraction on top of `ProgramError`. This abstraction provides additional information when a program fails, including: @@ -264,13 +268,13 @@ pub struct AnchorError { Anchor Errors can be divided into: - Anchor Internal Errors that the framework returns from inside its own code -- Custom errors that you the developer can create +- Custom errors that you, the developer, can create You can add errors unique to your program by using the `error_code` attribute. -Simply add this attribute to a custom `enum` type. You can then use the variants -of the `enum` as errors in your program. Additionally, you can add an error -message to each variant using the `msg` attribute. Clients can then display this -error message if the error occurs. +Simply add this attribute to a custom `enum` type. You can then use the `enum` +variants as errors in your program. Additionally, you can add an error message +to each variant using the `msg` attribute. Clients can then display this error +message if the error occurs. ```rust #[error_code] @@ -280,11 +284,10 @@ pub enum MyError { } ``` -To return a custom error you can use -the [err](https://docs.rs/anchor-lang/latest/anchor_lang/macro.err.html) or -the [error](https://docs.rs/anchor-lang/latest/anchor_lang/prelude/macro.error.html) -macro from an instruction function. These add file and line information to the -error that is then logged by Anchor to help you with debugging. +To return a custom error from an instruction handler you can use +the [err](https://docs.rs/anchor-lang/latest/anchor_lang/macro.err.html) or [error](https://docs.rs/anchor-lang/latest/anchor_lang/prelude/macro.error.html) +macro. These add helpful file and line information to the error that Anchor logs +to help with debugging: ```rust #[program] @@ -341,7 +344,7 @@ new movie review. ### Starter To get started, we will be using the final state of the Anchor Movie Review -program from the previous lesson. So, if you just completed that lesson then +program from the previous lesson. So, if you just completed that lesson, then you're all set and ready to go. If you are just jumping in here, no worries, you can [download the starter code](https://github.com/Unboxed-Software/anchor-movie-review-program/tree/solution-pdas). We'll be using the `solution-pdas` branch as our starting point. From 0b38fe36a51bb29f89e34dc3c02d48c349939260 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Mon, 21 Oct 2024 13:23:41 -0400 Subject: [PATCH 140/206] fix typo --- docs/terminology.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/terminology.md b/docs/terminology.md index 5f94c07bd..eb82266b9 100644 --- a/docs/terminology.md +++ b/docs/terminology.md @@ -49,7 +49,7 @@ For example: - The ability to mint new tokens is given to the account that is the 'mint authority' for the token mint. -- The ability to upgrade a prigram is given to the account that is the 'upgrade +- The ability to upgrade a program is given to the account that is the 'upgrade authority' of a program. ## bank state From d9a1b985aec81139a068f947f81439c3cc72824b Mon Sep 17 00:00:00 2001 From: Ayush Date: Tue, 22 Oct 2024 19:54:09 +0530 Subject: [PATCH 141/206] feat: pnpm (#581) * added pnpm * pnpm package refrences * pnpm in gh action * contributing and maintainers pnpm * action updates * uses checkout@v4 * prettier --- .github/workflows/contentlayer.yml | 16 +- .github/workflows/deploy.yml | 14 +- .github/workflows/formatting.yml | 25 +- .github/workflows/label-actions.yml | 24 +- CONTRIBUTING.md | 10 +- MAINTAINERS.md | 10 +- .../getstarted/local-rust-hello-world.md | 4 +- docs/programs/examples.md | 3 +- package.json | 12 +- pnpm-lock.yaml | 8226 +++++++++++++++++ yarn.lock | 4645 ---------- 11 files changed, 8299 insertions(+), 4690 deletions(-) create mode 100644 pnpm-lock.yaml delete mode 100644 yarn.lock diff --git a/.github/workflows/contentlayer.yml b/.github/workflows/contentlayer.yml index 3722b6d10..962162710 100644 --- a/.github/workflows/contentlayer.yml +++ b/.github/workflows/contentlayer.yml @@ -12,14 +12,20 @@ jobs: strategy: matrix: - node-version: [18.x] + node-version: [20] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 9 - name: use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - - run: npm -g i yarn - - run: yarn install - - run: yarn contentlayer:build + cache: "pnpm" + - name: Install dependencies + run: pnpm install + - name: Build contentlayer + run: pnpm contentlayer:build diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 6571551b7..906dd536d 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -15,15 +15,19 @@ jobs: deploy-production: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - name: Install Vercel CLI and Yarn - run: npm install --global vercel@latest yarn + - uses: actions/checkout@v4 + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 9 + - name: Install Vercel CLI and pnpm + run: npm install --global vercel@latest - name: Pull Vercel Environment Information run: vercel pull --yes --environment=production --token=${{secrets.VERCEL_TOKEN }} - - name: Install dependencies via yarn - run: yarn install + - name: Install dependencies via pnpm + run: pnpm install # todo: if not content files changed, skip uploading # todo: only upload the changed files - name: Upload latest content to crowdin diff --git a/.github/workflows/formatting.yml b/.github/workflows/formatting.yml index 12ce0bf7f..b9c8ad1dc 100644 --- a/.github/workflows/formatting.yml +++ b/.github/workflows/formatting.yml @@ -8,21 +8,28 @@ jobs: Format: name: Test formatting via prettier/lint... runs-on: ubuntu-latest + strategy: + matrix: + node-version: [20] steps: - name: Checkout repository - uses: actions/checkout@v2 - - name: Use Node.js node - uses: actions/setup-node@v2 + uses: actions/checkout@v4 + - name: Install pnpm + uses: pnpm/action-setup@v4 with: - node-version: "18" + version: 9 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + cache: "pnpm" - name: before_install run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p - - - name: installing yarn - run: yarn install + - name: Install dependencies + run: pnpm install - name: prettier:check - run: yarn prettier + run: pnpm prettier - name: lint - run: yarn lint + run: pnpm lint diff --git a/.github/workflows/label-actions.yml b/.github/workflows/label-actions.yml index 64d0a10e3..bf8594cfa 100644 --- a/.github/workflows/label-actions.yml +++ b/.github/workflows/label-actions.yml @@ -23,6 +23,10 @@ jobs: if: contains(github.event.pull_request.labels.*.name, 'prettier') runs-on: ubuntu-latest + strategy: + matrix: + node-version: [20] + permissions: # Give the default GITHUB_TOKEN write permission to commit and push the # added or changed files to the repository. @@ -33,10 +37,16 @@ jobs: uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} - - name: Use Node.js node - uses: actions/setup-node@v2 + - uses: actions/checkout@v4 + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 9 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v4 with: - node-version: "18" + node-version: ${{ matrix.node-version }} + cache: "pnpm" - name: before_install run: @@ -44,10 +54,10 @@ jobs: && sudo sysctl -p # perform steps to modify as desired - - name: yarn install - run: yarn install - - name: yarn prettier:fix - run: yarn prettier:fix + - name: pnpm install + run: pnpm install + - name: pnpm prettier:fix + run: pnpm prettier:fix - name: Commit changes uses: stefanzweifel/git-auto-commit-action@v5 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fdf3f949a..bb8c7c0f7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -154,14 +154,14 @@ If your editor is not configured to auto-format on save using prettier, then you can run the following command to auto-format all files in your local repo/PR: ```shell -yarn prettier:fix +pnpm prettier:fix ``` You can also run the prettier check command to see which files do not follow the prettier formatting guidelines. ```shell -yarn prettier +pnpm prettier ``` #### Rust & Anchor @@ -999,16 +999,16 @@ git clone https://github.com/solana-foundation/developer-content.git cd developer-content ``` -2. Install the dependencies via `yarn`: +2. Install the dependencies via `pnpm`: ```shell -yarn install +pnpm install ``` 3. Run the developer content API locally: ```shell -yarn dev +pnpm dev ``` > Note: The developer content API normally runs locally on port `3001` diff --git a/MAINTAINERS.md b/MAINTAINERS.md index 0d23c5ee3..5f2c1f669 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -30,7 +30,7 @@ operations. Push all the English based content to the Crowdin platform to ```shell -yarn crowdin:upload +pnpm crowdin:upload ``` ### Download the current translations @@ -38,7 +38,7 @@ yarn crowdin:upload You can download the latest translations using the crowdin cli: ```shell -yarn crowdin:download +pnpm crowdin:download ``` This will store all the translated content files inside the `i18n` directory, @@ -67,7 +67,7 @@ the translation path (`-t` flag). Be sure to include the `%locale%` wildcard in the translation path: ```shell -yarn crowdin upload -s docs/intro/installation.md -t i18n/%locale%/docs/intro/installation.md +pnpm crowdin upload -s docs/intro/installation.md -t i18n/%locale%/docs/intro/installation.md ``` To download the Crowdin formatted content, download the entire locale using the @@ -75,7 +75,7 @@ To download the Crowdin formatted content, download the entire locale using the German (DE) translated content: ```shell -yarn crowdin download -l de +pnpm crowdin download -l de ``` It may be helpful to also run the prettier formatter on the translation files, @@ -83,5 +83,5 @@ since this is normally performed by a GitHub action on deployment to catch and fix many formatting issues that Crowdin causes due to altering content: ```shell -yarn prettier:i18n +pnpm prettier:i18n ``` diff --git a/content/guides/getstarted/local-rust-hello-world.md b/content/guides/getstarted/local-rust-hello-world.md index 88b4b8692..5b87bfa4e 100644 --- a/content/guides/getstarted/local-rust-hello-world.md +++ b/content/guides/getstarted/local-rust-hello-world.md @@ -228,8 +228,8 @@ library. ### Install Node.js To use node in WSL2 on Windows, please follow this -[guide to installing node in WSL2](https://learn.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-wsl) -to install node. +[guide to installing node in WSL2](https://learn.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-wsl) to +install node. ```shell sudo apt-get install curl diff --git a/docs/programs/examples.md b/docs/programs/examples.md index 1d0c969b9..8e829521e 100644 --- a/docs/programs/examples.md +++ b/docs/programs/examples.md @@ -37,7 +37,8 @@ with README files that explain you how to run the different examples. Most examples are self-contained and are available in native Rust (ie, with no framework) and [Anchor](https://www.anchor-lang.com/docs/installation). It also contains a list of examples that we would love to -[see as contributions](https://github.com/solana-developers/program-examples?tab=readme-ov-file#examples-wed-love-to-see). +[see as contributions](https://github.com/solana-developers/program-examples?tab=readme-ov-file#examples-wed-love-to-see). + Within the repo you will find the following subfolder, each with assorted example programs within them: diff --git a/package.json b/package.json index 91ef33165..7b05ad619 100644 --- a/package.json +++ b/package.json @@ -11,10 +11,10 @@ "runner": "npx ts-node -r tsconfig-paths/register", "contentlayer:build": "npx contentlayer2 build --clearCache", "code-import": "npx esrun coder.ts", - "dev": "yarn code-import && yarn contentlayer:build && concurrently -p \"[{name}]\" -n \"code import,next dev\" -c \"bgBlue.bold,bgGreen.bold\" \"yarn code-import --watch\" \"next dev -p 3001\"", - "build": "yarn code-import && yarn prettier:i18n && yarn contentlayer:build && next build", + "dev": "pnpm code-import && pnpm contentlayer:build && concurrently -p \"[{name}]\" -n \"code import,next dev\" -c \"bgBlue.bold,bgGreen.bold\" \"pnpm code-import --watch\" \"next dev -p 3001\"", + "build": "pnpm code-import && pnpm prettier:i18n && pnpm contentlayer:build && next build", "start": "next start -p 3001", - "test": "yarn code-import && yarn prettier && && yarn contentlayer:build", + "test": "pnpm code-import && pnpm prettier && pnpm contentlayer:build", "lint": "next lint", "prettier:i18n": "prettier -cw \"i18n/**/*.{js,jsx,ts,tsx,md,css,md,mdx}\" --ignore-path \"[]\"", "prettier": "prettier -c \"./**/*.{js,jsx,ts,tsx,md,css,md,mdx}\"", @@ -22,8 +22,8 @@ "crowdin:download": "crowdin download && npm run prettier:i18n", "crowdin:upload": "crowdin upload sources", "browser-sync": "browser-sync start --proxy \"localhost:3000\" --files \"**/*.md\"", - "prepare": "node -e \"if (process.env.NODE_ENV !== 'production'){process.exit(1)} \" || husky install", - "dev:sync": "yarn dev & (sleep 5 && yarn browser-sync)" + "prepare": "husky", + "dev:sync": "pnpm dev & (sleep 5 && pnpm browser-sync)" }, "dependencies": { "@crowdin/cli": "^3.18.0", @@ -61,6 +61,6 @@ "vfile": "^6.0.2" }, "lint-staged": { - "*.{js,jsx,json,ts,tsx,md,css,md,mdx,yml,yaml}": "yarn prettier:fix" + "*.{js,jsx,json,ts,tsx,md,css,md,mdx,yml,yaml}": "pnpm prettier:fix" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 000000000..627a7b48e --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,8226 @@ +lockfileVersion: "9.0" + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + .: + dependencies: + "@crowdin/cli": + specifier: ^3.18.0 + version: 3.19.4 + "@types/node": + specifier: 20.11.17 + version: 20.11.17 + "@types/react": + specifier: 18.2.15 + version: 18.2.15 + "@types/react-dom": + specifier: 18.2.7 + version: 18.2.7 + autoprefixer: + specifier: 10.4.14 + version: 10.4.14(postcss@8.4.26) + eslint: + specifier: 8.45.0 + version: 8.45.0 + eslint-config-next: + specifier: 14.1.0 + version: 14.1.0(eslint@8.45.0)(typescript@5.3.3) + next: + specifier: 14.1.0 + version: 14.1.0(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + next-contentlayer2: + specifier: ^0.4.6 + version: 0.4.6(contentlayer2@0.4.6(esbuild@0.20.2))(esbuild@0.20.2)(next@14.1.0(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + postcss: + specifier: 8.4.26 + version: 8.4.26 + react: + specifier: 18.2.0 + version: 18.2.0 + react-dom: + specifier: 18.2.0 + version: 18.2.0(react@18.2.0) + tailwindcss: + specifier: 3.4.1 + version: 3.4.1 + typescript: + specifier: 5.3.3 + version: 5.3.3 + devDependencies: + "@types/mdast": + specifier: ^4.0.4 + version: 4.0.4 + chokidar: + specifier: ^3.6.0 + version: 3.6.0 + concurrently: + specifier: ^8.2.2 + version: 8.2.2 + contentlayer2: + specifier: ^0.4.6 + version: 0.4.6(esbuild@0.20.2) + husky: + specifier: ^9.1.4 + version: 9.1.6 + ignore: + specifier: ^5.3.1 + version: 5.3.2 + lint-staged: + specifier: ^15.2.7 + version: 15.2.10 + mdast: + specifier: ^3.0.0 + version: 3.0.0 + prettier: + specifier: ^3.2.4 + version: 3.3.3 + remark: + specifier: ^15.0.1 + version: 15.0.1 + remark-frontmatter: + specifier: ^5.0.0 + version: 5.0.0 + remark-parse: + specifier: ^11.0.0 + version: 11.0.0 + remark-stringify: + specifier: ^11.0.0 + version: 11.0.0 + strip-indent: + specifier: ^4.0.0 + version: 4.0.0 + unified: + specifier: ^11.0.5 + version: 11.0.5 + unist-util-visit: + specifier: ^5.0.0 + version: 5.0.0 + vfile: + specifier: ^6.0.2 + version: 6.0.3 + +packages: + "@alloc/quick-lru@5.2.0": + resolution: + { + integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==, + } + engines: { node: ">=10" } + + "@babel/runtime@7.25.6": + resolution: + { + integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==, + } + engines: { node: ">=6.9.0" } + + "@contentlayer2/cli@0.4.3": + resolution: + { + integrity: sha512-ZJ+Iiu2rVI50x60XoqnrsO/Q8eqFX5AlP1L0U/3ygaAas3tnOqTzQZ1UsxYQMpJzcLok24ddlhKfQKbCMUJPiQ==, + } + + "@contentlayer2/client@0.4.3": + resolution: + { + integrity: sha512-Znz6zW0ShVRq3OCQ6SwsfPQ1Wn28dQpiL33r53OjWuiirXhaSdam4MXRjYSFzCq5JK0kY6Hx0CF0fk3oVbsiVQ==, + } + + "@contentlayer2/core@0.4.3": + resolution: + { + integrity: sha512-jNagCFHLB8u/qfjoAI+JUuz3jf2hxYFYusgfh+oSq9+jHala4bbLEJOhJmmaY1Dmv2AV6BI7W8Jjy6WIu5g5Yg==, + } + peerDependencies: + esbuild: 0.17.x || 0.18.x || 0.19.x || 0.20.x + markdown-wasm: 1.x + peerDependenciesMeta: + esbuild: + optional: true + markdown-wasm: + optional: true + + "@contentlayer2/source-files@0.4.3": + resolution: + { + integrity: sha512-NaLkK9iJcjS7xdqbtEJElEXhdEXv47yj4Ju2TCiZU7/8veQQ67QwtTDesyRMSw4mBt5+hxiAcqvf0hKaHh6lxw==, + } + + "@contentlayer2/source-remote-files@0.4.3": + resolution: + { + integrity: sha512-uow1teWiAJA0WNbqqjEz4FfLPQF6BpdhRfF8JHgX7r8jzqChB5zS8bXX9xJDGhn41oEqR/FDDI1Pn7564H8lsA==, + } + + "@contentlayer2/utils@0.4.3": + resolution: + { + integrity: sha512-E360wNhvGemU1X+uhIwkzA5v+b8U5Q+Gps50uIDAVW6TWV9boUgAGPspSXXcFAIYG+H4z2eV3jTZjFCwyXGMxg==, + } + peerDependencies: + "@effect-ts/otel-node": "*" + peerDependenciesMeta: + "@effect-ts/otel-node": + optional: true + + "@crowdin/cli@3.19.4": + resolution: + { + integrity: sha512-j0SiRGKOH/Pa/TdBeIxBBRrByHPqmVqWVo/LSjnri1lLPGywjcu9kB+pib7P4wmI00jgcVu+80yGdun5zRcDNQ==, + } + hasBin: true + + "@effect-ts/core@0.60.5": + resolution: + { + integrity: sha512-qi1WrtJA90XLMnj2hnUszW9Sx4dXP03ZJtCc5DiUBIOhF4Vw7plfb65/bdBySPoC9s7zy995TdUX1XBSxUkl5w==, + } + + "@effect-ts/otel-sdk-trace-node@0.15.1": + resolution: + { + integrity: sha512-a2sF0ylmn8xOJs8fNeT/spJ1gUcsksAJCALxo9WOfuTCMtTwMVtVhCKEPEeQoL7wFqU+JgPkVdP91+FJ/Rkeow==, + } + peerDependencies: + "@effect-ts/core": ^0.60.2 + "@opentelemetry/api": ^1.4.0 + "@opentelemetry/core": ^1.13.0 + "@opentelemetry/sdk-trace-base": ^1.13.0 + "@opentelemetry/sdk-trace-node": ^1.13.0 + + "@effect-ts/otel@0.15.1": + resolution: + { + integrity: sha512-AmZJHl7t0+Peh7Yb2+hqn6r9+rd9/UfeA4AMV9h0YGTdOyouyFfD3wzWlxnAUzAQ4Lrod4kC7Noruret4EpqpA==, + } + peerDependencies: + "@effect-ts/core": ^0.60.2 + "@opentelemetry/api": ^1.4.0 + "@opentelemetry/core": ^1.13.0 + "@opentelemetry/sdk-trace-base": ^1.13.0 + + "@effect-ts/system@0.57.5": + resolution: + { + integrity: sha512-/crHGujo0xnuHIYNc1VgP0HGJGFSoSqq88JFXe6FmFyXPpWt8Xu39LyLg7rchsxfXFeEdA9CrIZvLV5eswXV5g==, + } + + "@esbuild-plugins/node-resolve@0.2.2": + resolution: + { + integrity: sha512-+t5FdX3ATQlb53UFDBRb4nqjYBz492bIrnVWvpQHpzZlu9BQL5HasMZhqc409ygUwOWCXZhrWr6NyZ6T6Y+cxw==, + } + peerDependencies: + esbuild: "*" + + "@esbuild/aix-ppc64@0.20.2": + resolution: + { + integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==, + } + engines: { node: ">=12" } + cpu: [ppc64] + os: [aix] + + "@esbuild/android-arm64@0.20.2": + resolution: + { + integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [android] + + "@esbuild/android-arm@0.20.2": + resolution: + { + integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==, + } + engines: { node: ">=12" } + cpu: [arm] + os: [android] + + "@esbuild/android-x64@0.20.2": + resolution: + { + integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [android] + + "@esbuild/darwin-arm64@0.20.2": + resolution: + { + integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [darwin] + + "@esbuild/darwin-x64@0.20.2": + resolution: + { + integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [darwin] + + "@esbuild/freebsd-arm64@0.20.2": + resolution: + { + integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [freebsd] + + "@esbuild/freebsd-x64@0.20.2": + resolution: + { + integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [freebsd] + + "@esbuild/linux-arm64@0.20.2": + resolution: + { + integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [linux] + + "@esbuild/linux-arm@0.20.2": + resolution: + { + integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==, + } + engines: { node: ">=12" } + cpu: [arm] + os: [linux] + + "@esbuild/linux-ia32@0.20.2": + resolution: + { + integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==, + } + engines: { node: ">=12" } + cpu: [ia32] + os: [linux] + + "@esbuild/linux-loong64@0.20.2": + resolution: + { + integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==, + } + engines: { node: ">=12" } + cpu: [loong64] + os: [linux] + + "@esbuild/linux-mips64el@0.20.2": + resolution: + { + integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==, + } + engines: { node: ">=12" } + cpu: [mips64el] + os: [linux] + + "@esbuild/linux-ppc64@0.20.2": + resolution: + { + integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==, + } + engines: { node: ">=12" } + cpu: [ppc64] + os: [linux] + + "@esbuild/linux-riscv64@0.20.2": + resolution: + { + integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==, + } + engines: { node: ">=12" } + cpu: [riscv64] + os: [linux] + + "@esbuild/linux-s390x@0.20.2": + resolution: + { + integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==, + } + engines: { node: ">=12" } + cpu: [s390x] + os: [linux] + + "@esbuild/linux-x64@0.20.2": + resolution: + { + integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [linux] + + "@esbuild/netbsd-x64@0.20.2": + resolution: + { + integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [netbsd] + + "@esbuild/openbsd-x64@0.20.2": + resolution: + { + integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [openbsd] + + "@esbuild/sunos-x64@0.20.2": + resolution: + { + integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [sunos] + + "@esbuild/win32-arm64@0.20.2": + resolution: + { + integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [win32] + + "@esbuild/win32-ia32@0.20.2": + resolution: + { + integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==, + } + engines: { node: ">=12" } + cpu: [ia32] + os: [win32] + + "@esbuild/win32-x64@0.20.2": + resolution: + { + integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [win32] + + "@eslint-community/eslint-utils@4.4.0": + resolution: + { + integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + "@eslint-community/regexpp@4.11.1": + resolution: + { + integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==, + } + engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } + + "@eslint/eslintrc@2.1.4": + resolution: + { + integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + + "@eslint/js@8.44.0": + resolution: + { + integrity: sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + + "@fal-works/esbuild-plugin-global-externals@2.1.2": + resolution: + { + integrity: sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==, + } + + "@grpc/grpc-js@1.11.3": + resolution: + { + integrity: sha512-i9UraDzFHMR+Iz/MhFLljT+fCpgxZ3O6CxwGJ8YuNYHJItIHUzKJpW2LvoFZNnGPwqc9iWy9RAucxV0JoR9aUQ==, + } + engines: { node: ">=12.10.0" } + + "@grpc/proto-loader@0.7.13": + resolution: + { + integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==, + } + engines: { node: ">=6" } + hasBin: true + + "@humanwhocodes/config-array@0.11.14": + resolution: + { + integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==, + } + engines: { node: ">=10.10.0" } + deprecated: Use @eslint/config-array instead + + "@humanwhocodes/module-importer@1.0.1": + resolution: + { + integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, + } + engines: { node: ">=12.22" } + + "@humanwhocodes/object-schema@2.0.3": + resolution: + { + integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==, + } + deprecated: Use @eslint/object-schema instead + + "@isaacs/cliui@8.0.2": + resolution: + { + integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, + } + engines: { node: ">=12" } + + "@jridgewell/gen-mapping@0.3.5": + resolution: + { + integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==, + } + engines: { node: ">=6.0.0" } + + "@jridgewell/resolve-uri@3.1.2": + resolution: + { + integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==, + } + engines: { node: ">=6.0.0" } + + "@jridgewell/set-array@1.2.1": + resolution: + { + integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==, + } + engines: { node: ">=6.0.0" } + + "@jridgewell/sourcemap-codec@1.5.0": + resolution: + { + integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==, + } + + "@jridgewell/trace-mapping@0.3.25": + resolution: + { + integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==, + } + + "@js-sdsl/ordered-map@4.4.2": + resolution: + { + integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==, + } + + "@js-temporal/polyfill@0.4.4": + resolution: + { + integrity: sha512-2X6bvghJ/JAoZO52lbgyAPFj8uCflhTo2g7nkFzEQdXd/D8rEeD4HtmTEpmtGCva260fcd66YNXBOYdnmHqSOg==, + } + engines: { node: ">=12" } + + "@jsonjoy.com/base64@1.1.2": + resolution: + { + integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==, + } + engines: { node: ">=10.0" } + peerDependencies: + tslib: "2" + + "@jsonjoy.com/json-pack@1.1.0": + resolution: + { + integrity: sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==, + } + engines: { node: ">=10.0" } + peerDependencies: + tslib: "2" + + "@jsonjoy.com/util@1.3.0": + resolution: + { + integrity: sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==, + } + engines: { node: ">=10.0" } + peerDependencies: + tslib: "2" + + "@mdx-js/esbuild@3.0.1": + resolution: + { + integrity: sha512-+KZbCKcRjFtRD6qzD+c70Vq/VPVt5LHFsOshNcsdcONkaLTCSjmM7/uj71i3BcP+170f+P4DwVEMtqR/k0t5aw==, + } + peerDependencies: + esbuild: ">=0.14.0" + + "@mdx-js/mdx@3.0.1": + resolution: + { + integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==, + } + + "@next/env@14.1.0": + resolution: + { + integrity: sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw==, + } + + "@next/eslint-plugin-next@14.1.0": + resolution: + { + integrity: sha512-x4FavbNEeXx/baD/zC/SdrvkjSby8nBn8KcCREqk6UuwvwoAPZmaV8TFCAuo/cpovBRTIY67mHhe86MQQm/68Q==, + } + + "@next/swc-darwin-arm64@14.1.0": + resolution: + { + integrity: sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ==, + } + engines: { node: ">= 10" } + cpu: [arm64] + os: [darwin] + + "@next/swc-darwin-x64@14.1.0": + resolution: + { + integrity: sha512-1jgudN5haWxiAl3O1ljUS2GfupPmcftu2RYJqZiMJmmbBT5M1XDffjUtRUzP4W3cBHsrvkfOFdQ71hAreNQP6g==, + } + engines: { node: ">= 10" } + cpu: [x64] + os: [darwin] + + "@next/swc-linux-arm64-gnu@14.1.0": + resolution: + { + integrity: sha512-RHo7Tcj+jllXUbK7xk2NyIDod3YcCPDZxj1WLIYxd709BQ7WuRYl3OWUNG+WUfqeQBds6kvZYlc42NJJTNi4tQ==, + } + engines: { node: ">= 10" } + cpu: [arm64] + os: [linux] + + "@next/swc-linux-arm64-musl@14.1.0": + resolution: + { + integrity: sha512-v6kP8sHYxjO8RwHmWMJSq7VZP2nYCkRVQ0qolh2l6xroe9QjbgV8siTbduED4u0hlk0+tjS6/Tuy4n5XCp+l6g==, + } + engines: { node: ">= 10" } + cpu: [arm64] + os: [linux] + + "@next/swc-linux-x64-gnu@14.1.0": + resolution: + { + integrity: sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ==, + } + engines: { node: ">= 10" } + cpu: [x64] + os: [linux] + + "@next/swc-linux-x64-musl@14.1.0": + resolution: + { + integrity: sha512-rbaIYFt2X9YZBSbH/CwGAjbBG2/MrACCVu2X0+kSykHzHnYH5FjHxwXLkcoJ10cX0aWCEynpu+rP76x0914atg==, + } + engines: { node: ">= 10" } + cpu: [x64] + os: [linux] + + "@next/swc-win32-arm64-msvc@14.1.0": + resolution: + { + integrity: sha512-o1N5TsYc8f/HpGt39OUQpQ9AKIGApd3QLueu7hXk//2xq5Z9OxmV6sQfNp8C7qYmiOlHYODOGqNNa0e9jvchGQ==, + } + engines: { node: ">= 10" } + cpu: [arm64] + os: [win32] + + "@next/swc-win32-ia32-msvc@14.1.0": + resolution: + { + integrity: sha512-XXIuB1DBRCFwNO6EEzCTMHT5pauwaSj4SWs7CYnME57eaReAKBXCnkUE80p/pAZcewm7hs+vGvNqDPacEXHVkw==, + } + engines: { node: ">= 10" } + cpu: [ia32] + os: [win32] + + "@next/swc-win32-x64-msvc@14.1.0": + resolution: + { + integrity: sha512-9WEbVRRAqJ3YFVqEZIxUqkiO8l1nool1LmNxygr5HWF8AcSYsEpneUDhmjUVJEzO2A04+oPtZdombzzPPkTtgg==, + } + engines: { node: ">= 10" } + cpu: [x64] + os: [win32] + + "@nodelib/fs.scandir@2.1.5": + resolution: + { + integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, + } + engines: { node: ">= 8" } + + "@nodelib/fs.stat@2.0.5": + resolution: + { + integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, + } + engines: { node: ">= 8" } + + "@nodelib/fs.walk@1.2.8": + resolution: + { + integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, + } + engines: { node: ">= 8" } + + "@nolyfill/is-core-module@1.0.39": + resolution: + { + integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==, + } + engines: { node: ">=12.4.0" } + + "@opentelemetry/api-logs@0.51.1": + resolution: + { + integrity: sha512-E3skn949Pk1z2XtXu/lxf6QAZpawuTM/IUEXcAzpiUkTd73Hmvw26FiN3cJuTmkpM5hZzHwkomVdtrh/n/zzwA==, + } + engines: { node: ">=14" } + + "@opentelemetry/api@1.9.0": + resolution: + { + integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==, + } + engines: { node: ">=8.0.0" } + + "@opentelemetry/context-async-hooks@1.26.0": + resolution: + { + integrity: sha512-HedpXXYzzbaoutw6DFLWLDket2FwLkLpil4hGCZ1xYEIMTcivdfwEOISgdbLEWyG3HW52gTq2V9mOVJrONgiwg==, + } + engines: { node: ">=14" } + peerDependencies: + "@opentelemetry/api": ">=1.0.0 <1.10.0" + + "@opentelemetry/core@1.24.1": + resolution: + { + integrity: sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==, + } + engines: { node: ">=14" } + peerDependencies: + "@opentelemetry/api": ">=1.0.0 <1.9.0" + + "@opentelemetry/core@1.26.0": + resolution: + { + integrity: sha512-1iKxXXE8415Cdv0yjG3G6hQnB5eVEsJce3QaawX8SjDn0mAS0ZM8fAbZZJD4ajvhC15cePvosSCut404KrIIvQ==, + } + engines: { node: ">=14" } + peerDependencies: + "@opentelemetry/api": ">=1.0.0 <1.10.0" + + "@opentelemetry/exporter-trace-otlp-grpc@0.51.1": + resolution: + { + integrity: sha512-P9+Hkszih95ITvldGZ+kXvj9HpD1QfS+PwooyHK72GYA+Bgm+yUSAsDkUkDms8+s9HW6poxURv3LcjaMuBBpVQ==, + } + engines: { node: ">=14" } + peerDependencies: + "@opentelemetry/api": ^1.0.0 + + "@opentelemetry/otlp-exporter-base@0.51.1": + resolution: + { + integrity: sha512-UYlnOYyDdzo1Gw559EHCzru0RwhvuXCwoH8jGo9J4gO1TE58GjnEmIjomMsKBCym3qWNJfIQXw+9SZCV0DdQNg==, + } + engines: { node: ">=14" } + peerDependencies: + "@opentelemetry/api": ^1.0.0 + + "@opentelemetry/otlp-grpc-exporter-base@0.51.1": + resolution: + { + integrity: sha512-ZAS+4pq8o7dsugGTwV9s6JMKSxi+guIHdn0acOv0bqj26e9pWDFx5Ky+bI0aY46uR9Y0JyXqY+KAEYM/SO3DFA==, + } + engines: { node: ">=14" } + peerDependencies: + "@opentelemetry/api": ^1.0.0 + + "@opentelemetry/otlp-transformer@0.51.1": + resolution: + { + integrity: sha512-OppYOXwV9LQqqtYUCywqoOqX/JT9LQ5/FMuPZ//eTkvuHdUC4ZMwz2c6uSoT2R90GWvvGnF1iEqTGyTT3xAt2Q==, + } + engines: { node: ">=14" } + peerDependencies: + "@opentelemetry/api": ">=1.3.0 <1.9.0" + + "@opentelemetry/propagator-b3@1.26.0": + resolution: + { + integrity: sha512-vvVkQLQ/lGGyEy9GT8uFnI047pajSOVnZI2poJqVGD3nJ+B9sFGdlHNnQKophE3lHfnIH0pw2ubrCTjZCgIj+Q==, + } + engines: { node: ">=14" } + peerDependencies: + "@opentelemetry/api": ">=1.0.0 <1.10.0" + + "@opentelemetry/propagator-jaeger@1.26.0": + resolution: + { + integrity: sha512-DelFGkCdaxA1C/QA0Xilszfr0t4YbGd3DjxiCDPh34lfnFr+VkkrjV9S8ZTJvAzfdKERXhfOxIKBoGPJwoSz7Q==, + } + engines: { node: ">=14" } + peerDependencies: + "@opentelemetry/api": ">=1.0.0 <1.10.0" + + "@opentelemetry/resources@1.24.1": + resolution: + { + integrity: sha512-cyv0MwAaPF7O86x5hk3NNgenMObeejZFLJJDVuSeSMIsknlsj3oOZzRv3qSzlwYomXsICfBeFFlxwHQte5mGXQ==, + } + engines: { node: ">=14" } + peerDependencies: + "@opentelemetry/api": ">=1.0.0 <1.9.0" + + "@opentelemetry/resources@1.26.0": + resolution: + { + integrity: sha512-CPNYchBE7MBecCSVy0HKpUISEeJOniWqcHaAHpmasZ3j9o6V3AyBzhRc90jdmemq0HOxDr6ylhUbDhBqqPpeNw==, + } + engines: { node: ">=14" } + peerDependencies: + "@opentelemetry/api": ">=1.0.0 <1.10.0" + + "@opentelemetry/sdk-logs@0.51.1": + resolution: + { + integrity: sha512-ULQQtl82b673PpZc5/0EtH4V+BrwVOgKJZEB7tYZnGTG3I98tQVk89S9/JSixomDr++F4ih+LSJTCqIKBz+MQQ==, + } + engines: { node: ">=14" } + peerDependencies: + "@opentelemetry/api": ">=1.4.0 <1.9.0" + "@opentelemetry/api-logs": ">=0.39.1" + + "@opentelemetry/sdk-metrics@1.24.1": + resolution: + { + integrity: sha512-FrAqCbbGao9iKI+Mgh+OsC9+U2YMoXnlDHe06yH7dvavCKzE3S892dGtX54+WhSFVxHR/TMRVJiK/CV93GR0TQ==, + } + engines: { node: ">=14" } + peerDependencies: + "@opentelemetry/api": ">=1.3.0 <1.9.0" + + "@opentelemetry/sdk-trace-base@1.24.1": + resolution: + { + integrity: sha512-zz+N423IcySgjihl2NfjBf0qw1RWe11XIAWVrTNOSSI6dtSPJiVom2zipFB2AEEtJWpv0Iz6DY6+TjnyTV5pWg==, + } + engines: { node: ">=14" } + peerDependencies: + "@opentelemetry/api": ">=1.0.0 <1.9.0" + + "@opentelemetry/sdk-trace-base@1.26.0": + resolution: + { + integrity: sha512-olWQldtvbK4v22ymrKLbIcBi9L2SpMO84sCPY54IVsJhP9fRsxJT194C/AVaAuJzLE30EdhhM1VmvVYR7az+cw==, + } + engines: { node: ">=14" } + peerDependencies: + "@opentelemetry/api": ">=1.0.0 <1.10.0" + + "@opentelemetry/sdk-trace-node@1.26.0": + resolution: + { + integrity: sha512-Fj5IVKrj0yeUwlewCRwzOVcr5avTuNnMHWf7GPc1t6WaT78J6CJyF3saZ/0RkZfdeNO8IcBl/bNcWMVZBMRW8Q==, + } + engines: { node: ">=14" } + peerDependencies: + "@opentelemetry/api": ">=1.0.0 <1.10.0" + + "@opentelemetry/semantic-conventions@1.24.1": + resolution: + { + integrity: sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==, + } + engines: { node: ">=14" } + + "@opentelemetry/semantic-conventions@1.27.0": + resolution: + { + integrity: sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==, + } + engines: { node: ">=14" } + + "@pkgjs/parseargs@0.11.0": + resolution: + { + integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, + } + engines: { node: ">=14" } + + "@protobufjs/aspromise@1.1.2": + resolution: + { + integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==, + } + + "@protobufjs/base64@1.1.2": + resolution: + { + integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==, + } + + "@protobufjs/codegen@2.0.4": + resolution: + { + integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==, + } + + "@protobufjs/eventemitter@1.1.0": + resolution: + { + integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==, + } + + "@protobufjs/fetch@1.1.0": + resolution: + { + integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==, + } + + "@protobufjs/float@1.0.2": + resolution: + { + integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==, + } + + "@protobufjs/inquire@1.1.0": + resolution: + { + integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==, + } + + "@protobufjs/path@1.1.2": + resolution: + { + integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==, + } + + "@protobufjs/pool@1.1.0": + resolution: + { + integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==, + } + + "@protobufjs/utf8@1.1.0": + resolution: + { + integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==, + } + + "@rtsao/scc@1.1.0": + resolution: + { + integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==, + } + + "@rushstack/eslint-patch@1.10.4": + resolution: + { + integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==, + } + + "@swc/helpers@0.5.2": + resolution: + { + integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==, + } + + "@types/acorn@4.0.6": + resolution: + { + integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==, + } + + "@types/debug@4.1.12": + resolution: + { + integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==, + } + + "@types/estree-jsx@1.0.5": + resolution: + { + integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==, + } + + "@types/estree@1.0.6": + resolution: + { + integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==, + } + + "@types/hast@3.0.4": + resolution: + { + integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==, + } + + "@types/json5@0.0.29": + resolution: + { + integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==, + } + + "@types/mdast@4.0.4": + resolution: + { + integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==, + } + + "@types/mdx@2.0.13": + resolution: + { + integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==, + } + + "@types/ms@0.7.34": + resolution: + { + integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==, + } + + "@types/node@20.11.17": + resolution: + { + integrity: sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==, + } + + "@types/prop-types@15.7.13": + resolution: + { + integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==, + } + + "@types/react-dom@18.2.7": + resolution: + { + integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==, + } + + "@types/react@18.2.15": + resolution: + { + integrity: sha512-oEjE7TQt1fFTFSbf8kkNuc798ahTUzn3Le67/PWjE8MAfYAD/qB7O8hSTcromLFqHCt9bcdOg5GXMokzTjJ5SA==, + } + + "@types/resolve@1.20.6": + resolution: + { + integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==, + } + + "@types/scheduler@0.23.0": + resolution: + { + integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==, + } + + "@types/unist@2.0.11": + resolution: + { + integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==, + } + + "@types/unist@3.0.3": + resolution: + { + integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==, + } + + "@typescript-eslint/parser@6.21.0": + resolution: + { + integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==, + } + engines: { node: ^16.0.0 || >=18.0.0 } + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: "*" + peerDependenciesMeta: + typescript: + optional: true + + "@typescript-eslint/scope-manager@6.21.0": + resolution: + { + integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==, + } + engines: { node: ^16.0.0 || >=18.0.0 } + + "@typescript-eslint/types@6.21.0": + resolution: + { + integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==, + } + engines: { node: ^16.0.0 || >=18.0.0 } + + "@typescript-eslint/typescript-estree@6.21.0": + resolution: + { + integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==, + } + engines: { node: ^16.0.0 || >=18.0.0 } + peerDependencies: + typescript: "*" + peerDependenciesMeta: + typescript: + optional: true + + "@typescript-eslint/visitor-keys@6.21.0": + resolution: + { + integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==, + } + engines: { node: ^16.0.0 || >=18.0.0 } + + "@ungap/structured-clone@1.2.0": + resolution: + { + integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==, + } + + acorn-jsx@5.3.2: + resolution: + { + integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, + } + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.12.1: + resolution: + { + integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==, + } + engines: { node: ">=0.4.0" } + hasBin: true + + ajv@6.12.6: + resolution: + { + integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, + } + + ansi-escapes@7.0.0: + resolution: + { + integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==, + } + engines: { node: ">=18" } + + ansi-regex@5.0.1: + resolution: + { + integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, + } + engines: { node: ">=8" } + + ansi-regex@6.1.0: + resolution: + { + integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==, + } + engines: { node: ">=12" } + + ansi-styles@4.3.0: + resolution: + { + integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, + } + engines: { node: ">=8" } + + ansi-styles@6.2.1: + resolution: + { + integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, + } + engines: { node: ">=12" } + + any-promise@1.3.0: + resolution: + { + integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==, + } + + anymatch@3.1.3: + resolution: + { + integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, + } + engines: { node: ">= 8" } + + arg@5.0.2: + resolution: + { + integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==, + } + + argparse@1.0.10: + resolution: + { + integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, + } + + argparse@2.0.1: + resolution: + { + integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, + } + + aria-query@5.1.3: + resolution: + { + integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==, + } + + array-buffer-byte-length@1.0.1: + resolution: + { + integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==, + } + engines: { node: ">= 0.4" } + + array-includes@3.1.8: + resolution: + { + integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==, + } + engines: { node: ">= 0.4" } + + array-timsort@1.0.3: + resolution: + { + integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==, + } + + array-union@2.1.0: + resolution: + { + integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, + } + engines: { node: ">=8" } + + array.prototype.findlast@1.2.5: + resolution: + { + integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==, + } + engines: { node: ">= 0.4" } + + array.prototype.findlastindex@1.2.5: + resolution: + { + integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==, + } + engines: { node: ">= 0.4" } + + array.prototype.flat@1.3.2: + resolution: + { + integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==, + } + engines: { node: ">= 0.4" } + + array.prototype.flatmap@1.3.2: + resolution: + { + integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==, + } + engines: { node: ">= 0.4" } + + array.prototype.tosorted@1.1.4: + resolution: + { + integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==, + } + engines: { node: ">= 0.4" } + + arraybuffer.prototype.slice@1.0.3: + resolution: + { + integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==, + } + engines: { node: ">= 0.4" } + + ast-types-flow@0.0.8: + resolution: + { + integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==, + } + + astring@1.9.0: + resolution: + { + integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==, + } + hasBin: true + + autoprefixer@10.4.14: + resolution: + { + integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==, + } + engines: { node: ^10 || ^12 || >=14 } + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + available-typed-arrays@1.0.7: + resolution: + { + integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==, + } + engines: { node: ">= 0.4" } + + axe-core@4.10.0: + resolution: + { + integrity: sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==, + } + engines: { node: ">=4" } + + axobject-query@4.1.0: + resolution: + { + integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==, + } + engines: { node: ">= 0.4" } + + bail@2.0.2: + resolution: + { + integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==, + } + + balanced-match@1.0.2: + resolution: + { + integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, + } + + binary-extensions@2.3.0: + resolution: + { + integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==, + } + engines: { node: ">=8" } + + brace-expansion@1.1.11: + resolution: + { + integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, + } + + brace-expansion@2.0.1: + resolution: + { + integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, + } + + braces@3.0.3: + resolution: + { + integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==, + } + engines: { node: ">=8" } + + browserslist@4.24.0: + resolution: + { + integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==, + } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } + hasBin: true + + buffer-crc32@0.2.13: + resolution: + { + integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==, + } + + buffer-from@1.1.2: + resolution: + { + integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, + } + + busboy@1.6.0: + resolution: + { + integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==, + } + engines: { node: ">=10.16.0" } + + call-bind@1.0.7: + resolution: + { + integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==, + } + engines: { node: ">= 0.4" } + + callsites@3.1.0: + resolution: + { + integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, + } + engines: { node: ">=6" } + + camel-case@4.1.2: + resolution: + { + integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==, + } + + camelcase-css@2.0.1: + resolution: + { + integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==, + } + engines: { node: ">= 6" } + + caniuse-lite@1.0.30001664: + resolution: + { + integrity: sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g==, + } + + ccount@2.0.1: + resolution: + { + integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==, + } + + chalk@4.1.2: + resolution: + { + integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, + } + engines: { node: ">=10" } + + chalk@5.3.0: + resolution: + { + integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==, + } + engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } + + character-entities-html4@2.1.0: + resolution: + { + integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==, + } + + character-entities-legacy@3.0.0: + resolution: + { + integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==, + } + + character-entities@2.0.2: + resolution: + { + integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==, + } + + character-reference-invalid@2.0.1: + resolution: + { + integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==, + } + + chokidar@3.6.0: + resolution: + { + integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==, + } + engines: { node: ">= 8.10.0" } + + chownr@2.0.0: + resolution: + { + integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==, + } + engines: { node: ">=10" } + + cli-cursor@5.0.0: + resolution: + { + integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==, + } + engines: { node: ">=18" } + + cli-truncate@4.0.0: + resolution: + { + integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==, + } + engines: { node: ">=18" } + + client-only@0.0.1: + resolution: + { + integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==, + } + + clipanion@3.2.1: + resolution: + { + integrity: sha512-dYFdjLb7y1ajfxQopN05mylEpK9ZX0sO1/RfMXdfmwjlIsPkbh4p7A682x++zFPLDCo1x3p82dtljHf5cW2LKA==, + } + peerDependencies: + typanion: "*" + + cliui@8.0.1: + resolution: + { + integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, + } + engines: { node: ">=12" } + + collapse-white-space@2.1.0: + resolution: + { + integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==, + } + + color-convert@2.0.1: + resolution: + { + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, + } + engines: { node: ">=7.0.0" } + + color-name@1.1.4: + resolution: + { + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, + } + + colorette@2.0.20: + resolution: + { + integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==, + } + + comma-separated-tokens@2.0.3: + resolution: + { + integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==, + } + + command-exists-promise@2.0.2: + resolution: + { + integrity: sha512-T6PB6vdFrwnHXg/I0kivM3DqaCGZLjjYSOe0a5WgFKcz1sOnmOeIjnhQPXVXX3QjVbLyTJ85lJkX6lUpukTzaA==, + } + engines: { node: ">=6" } + + commander@12.1.0: + resolution: + { + integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==, + } + engines: { node: ">=18" } + + commander@4.1.1: + resolution: + { + integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, + } + engines: { node: ">= 6" } + + comment-json@4.2.5: + resolution: + { + integrity: sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==, + } + engines: { node: ">= 6" } + + concat-map@0.0.1: + resolution: { integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= } + + concurrently@8.2.2: + resolution: + { + integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==, + } + engines: { node: ^14.13.0 || >=16.0.0 } + hasBin: true + + contentlayer2@0.4.6: + resolution: + { + integrity: sha512-EhdabpVsn8u3EkoovGrLB/sIxWUlVJGNiYal9rZn0XJRjIyncGrhz9EJ9gn+z3cRHYUdHCuCMLW/ev6isgKXYw==, + } + engines: { node: ">=14.18" } + hasBin: true + + core-util-is@1.0.3: + resolution: + { + integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, + } + + cross-spawn@7.0.3: + resolution: + { + integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, + } + engines: { node: ">= 8" } + + cssesc@3.0.0: + resolution: + { + integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, + } + engines: { node: ">=4" } + hasBin: true + + csstype@3.1.3: + resolution: + { + integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==, + } + + damerau-levenshtein@1.0.8: + resolution: + { + integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==, + } + + data-view-buffer@1.0.1: + resolution: + { + integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==, + } + engines: { node: ">= 0.4" } + + data-view-byte-length@1.0.1: + resolution: + { + integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==, + } + engines: { node: ">= 0.4" } + + data-view-byte-offset@1.0.0: + resolution: + { + integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==, + } + engines: { node: ">= 0.4" } + + date-fns@2.30.0: + resolution: + { + integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==, + } + engines: { node: ">=0.11" } + + debug@3.2.7: + resolution: + { + integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, + } + peerDependencies: + supports-color: "*" + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.7: + resolution: + { + integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==, + } + engines: { node: ">=6.0" } + peerDependencies: + supports-color: "*" + peerDependenciesMeta: + supports-color: + optional: true + + decode-named-character-reference@1.0.2: + resolution: + { + integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==, + } + + deep-equal@2.2.3: + resolution: + { + integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==, + } + engines: { node: ">= 0.4" } + + deep-is@0.1.4: + resolution: + { + integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, + } + + define-data-property@1.1.4: + resolution: + { + integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==, + } + engines: { node: ">= 0.4" } + + define-properties@1.2.1: + resolution: + { + integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==, + } + engines: { node: ">= 0.4" } + + dequal@2.0.3: + resolution: + { + integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==, + } + engines: { node: ">=6" } + + devlop@1.1.0: + resolution: + { + integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==, + } + + didyoumean@1.2.2: + resolution: + { + integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==, + } + + dir-glob@3.0.1: + resolution: + { + integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, + } + engines: { node: ">=8" } + + dlv@1.1.3: + resolution: + { + integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==, + } + + doctrine@2.1.0: + resolution: + { + integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==, + } + engines: { node: ">=0.10.0" } + + doctrine@3.0.0: + resolution: + { + integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, + } + engines: { node: ">=6.0.0" } + + eastasianwidth@0.2.0: + resolution: + { + integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, + } + + electron-to-chromium@1.5.29: + resolution: + { + integrity: sha512-PF8n2AlIhCKXQ+gTpiJi0VhcHDb69kYX4MtCiivctc2QD3XuNZ/XIOlbGzt7WAjjEev0TtaH6Cu3arZExm5DOw==, + } + + emoji-regex@10.4.0: + resolution: + { + integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==, + } + + emoji-regex@8.0.0: + resolution: + { + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, + } + + emoji-regex@9.2.2: + resolution: + { + integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, + } + + enhanced-resolve@5.17.1: + resolution: + { + integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==, + } + engines: { node: ">=10.13.0" } + + environment@1.1.0: + resolution: + { + integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==, + } + engines: { node: ">=18" } + + es-abstract@1.23.3: + resolution: + { + integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==, + } + engines: { node: ">= 0.4" } + + es-define-property@1.0.0: + resolution: + { + integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==, + } + engines: { node: ">= 0.4" } + + es-errors@1.3.0: + resolution: + { + integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==, + } + engines: { node: ">= 0.4" } + + es-get-iterator@1.1.3: + resolution: + { + integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==, + } + + es-iterator-helpers@1.0.19: + resolution: + { + integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==, + } + engines: { node: ">= 0.4" } + + es-object-atoms@1.0.0: + resolution: + { + integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==, + } + engines: { node: ">= 0.4" } + + es-set-tostringtag@2.0.3: + resolution: + { + integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==, + } + engines: { node: ">= 0.4" } + + es-shim-unscopables@1.0.2: + resolution: + { + integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==, + } + + es-to-primitive@1.2.1: + resolution: + { + integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, + } + engines: { node: ">= 0.4" } + + esbuild@0.20.2: + resolution: + { + integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==, + } + engines: { node: ">=12" } + hasBin: true + + escalade@3.2.0: + resolution: + { + integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==, + } + engines: { node: ">=6" } + + escape-string-regexp@4.0.0: + resolution: + { + integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, + } + engines: { node: ">=10" } + + escape-string-regexp@5.0.0: + resolution: + { + integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==, + } + engines: { node: ">=12" } + + eslint-config-next@14.1.0: + resolution: + { + integrity: sha512-SBX2ed7DoRFXC6CQSLc/SbLY9Ut6HxNB2wPTcoIWjUMd7aF7O/SIE7111L8FdZ9TXsNV4pulUDnfthpyPtbFUg==, + } + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: ">=3.3.1" + peerDependenciesMeta: + typescript: + optional: true + + eslint-import-resolver-node@0.3.9: + resolution: + { + integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==, + } + + eslint-import-resolver-typescript@3.6.3: + resolution: + { + integrity: sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==, + } + engines: { node: ^14.18.0 || >=16.0.0 } + peerDependencies: + eslint: "*" + eslint-plugin-import: "*" + eslint-plugin-import-x: "*" + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + + eslint-module-utils@2.12.0: + resolution: + { + integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==, + } + engines: { node: ">=4" } + peerDependencies: + "@typescript-eslint/parser": "*" + eslint: "*" + eslint-import-resolver-node: "*" + eslint-import-resolver-typescript: "*" + eslint-import-resolver-webpack: "*" + peerDependenciesMeta: + "@typescript-eslint/parser": + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-import@2.30.0: + resolution: + { + integrity: sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==, + } + engines: { node: ">=4" } + peerDependencies: + "@typescript-eslint/parser": "*" + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + "@typescript-eslint/parser": + optional: true + + eslint-plugin-jsx-a11y@6.10.0: + resolution: + { + integrity: sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg==, + } + engines: { node: ">=4.0" } + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + + eslint-plugin-react-hooks@4.6.2: + resolution: + { + integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==, + } + engines: { node: ">=10" } + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + + eslint-plugin-react@7.36.1: + resolution: + { + integrity: sha512-/qwbqNXZoq+VP30s1d4Nc1C5GTxjJQjk4Jzs4Wq2qzxFM7dSmuG2UkIjg2USMLh3A/aVcUNrK7v0J5U1XEGGwA==, + } + engines: { node: ">=4" } + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + + eslint-scope@7.2.2: + resolution: + { + integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + + eslint-visitor-keys@3.4.3: + resolution: + { + integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + + eslint@8.45.0: + resolution: + { + integrity: sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + hasBin: true + + espree@9.6.1: + resolution: + { + integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + + esprima@4.0.1: + resolution: + { + integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, + } + engines: { node: ">=4" } + hasBin: true + + esquery@1.6.0: + resolution: + { + integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==, + } + engines: { node: ">=0.10" } + + esrecurse@4.3.0: + resolution: + { + integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, + } + engines: { node: ">=4.0" } + + estraverse@5.3.0: + resolution: + { + integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, + } + engines: { node: ">=4.0" } + + estree-util-attach-comments@3.0.0: + resolution: + { + integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==, + } + + estree-util-build-jsx@3.0.1: + resolution: + { + integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==, + } + + estree-util-is-identifier-name@3.0.0: + resolution: + { + integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==, + } + + estree-util-to-js@2.0.0: + resolution: + { + integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==, + } + + estree-util-value-to-estree@3.1.2: + resolution: + { + integrity: sha512-S0gW2+XZkmsx00tU2uJ4L9hUT7IFabbml9pHh2WQqFmAbxit++YGZne0sKJbNwkj9Wvg9E4uqWl4nCIFQMmfag==, + } + + estree-util-visit@2.0.0: + resolution: + { + integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==, + } + + estree-walker@3.0.3: + resolution: + { + integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==, + } + + esutils@2.0.3: + resolution: + { + integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, + } + engines: { node: ">=0.10.0" } + + eventemitter3@5.0.1: + resolution: + { + integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==, + } + + execa@8.0.1: + resolution: + { + integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==, + } + engines: { node: ">=16.17" } + + extend-shallow@2.0.1: + resolution: + { + integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==, + } + engines: { node: ">=0.10.0" } + + extend@3.0.2: + resolution: + { + integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, + } + + fast-deep-equal@3.1.3: + resolution: + { + integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, + } + + fast-glob@3.3.2: + resolution: + { + integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==, + } + engines: { node: ">=8.6.0" } + + fast-json-stable-stringify@2.1.0: + resolution: + { + integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, + } + + fast-levenshtein@2.0.6: + resolution: + { + integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, + } + + fastq@1.17.1: + resolution: + { + integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==, + } + + fault@2.0.1: + resolution: + { + integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==, + } + + file-entry-cache@6.0.1: + resolution: + { + integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, + } + engines: { node: ^10.12.0 || >=12.0.0 } + + fill-range@7.1.1: + resolution: + { + integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==, + } + engines: { node: ">=8" } + + find-up@5.0.0: + resolution: + { + integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, + } + engines: { node: ">=10" } + + flat-cache@3.2.0: + resolution: + { + integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==, + } + engines: { node: ^10.12.0 || >=12.0.0 } + + flatted@3.3.1: + resolution: + { + integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==, + } + + for-each@0.3.3: + resolution: + { + integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, + } + + foreground-child@3.3.0: + resolution: + { + integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==, + } + engines: { node: ">=14" } + + format@0.2.2: + resolution: + { + integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==, + } + engines: { node: ">=0.4.x" } + + fraction.js@4.3.7: + resolution: + { + integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==, + } + + fs-minipass@2.1.0: + resolution: + { + integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==, + } + engines: { node: ">= 8" } + + fs.realpath@1.0.0: + resolution: + { + integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, + } + + fsevents@2.3.3: + resolution: + { + integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + os: [darwin] + + function-bind@1.1.2: + resolution: + { + integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, + } + + function.prototype.name@1.1.6: + resolution: + { + integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==, + } + engines: { node: ">= 0.4" } + + functions-have-names@1.2.3: + resolution: + { + integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, + } + + get-caller-file@2.0.5: + resolution: + { + integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, + } + engines: { node: 6.* || 8.* || >= 10.* } + + get-east-asian-width@1.2.0: + resolution: + { + integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==, + } + engines: { node: ">=18" } + + get-intrinsic@1.2.4: + resolution: + { + integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==, + } + engines: { node: ">= 0.4" } + + get-stream@8.0.1: + resolution: + { + integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==, + } + engines: { node: ">=16" } + + get-symbol-description@1.0.2: + resolution: + { + integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==, + } + engines: { node: ">= 0.4" } + + get-tsconfig@4.8.1: + resolution: + { + integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==, + } + + glob-parent@5.1.2: + resolution: + { + integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, + } + engines: { node: ">= 6" } + + glob-parent@6.0.2: + resolution: + { + integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, + } + engines: { node: ">=10.13.0" } + + glob@10.3.10: + resolution: + { + integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==, + } + engines: { node: ">=16 || 14 >=14.17" } + hasBin: true + + glob@10.4.5: + resolution: + { + integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==, + } + hasBin: true + + glob@7.2.3: + resolution: + { + integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, + } + deprecated: Glob versions prior to v9 are no longer supported + + globals@13.24.0: + resolution: + { + integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==, + } + engines: { node: ">=8" } + + globalthis@1.0.4: + resolution: + { + integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==, + } + engines: { node: ">= 0.4" } + + globby@11.1.0: + resolution: + { + integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, + } + engines: { node: ">=10" } + + gopd@1.0.1: + resolution: + { + integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, + } + + graceful-fs@4.2.11: + resolution: + { + integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, + } + + graphemer@1.4.0: + resolution: + { + integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==, + } + + gray-matter@4.0.3: + resolution: + { + integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==, + } + engines: { node: ">=6.0" } + + has-bigints@1.0.2: + resolution: + { + integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, + } + + has-flag@4.0.0: + resolution: + { + integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, + } + engines: { node: ">=8" } + + has-own-prop@2.0.0: + resolution: + { + integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==, + } + engines: { node: ">=8" } + + has-property-descriptors@1.0.2: + resolution: + { + integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==, + } + + has-proto@1.0.3: + resolution: + { + integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==, + } + engines: { node: ">= 0.4" } + + has-symbols@1.0.3: + resolution: + { + integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, + } + engines: { node: ">= 0.4" } + + has-tostringtag@1.0.2: + resolution: + { + integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==, + } + engines: { node: ">= 0.4" } + + hash-wasm@4.11.0: + resolution: + { + integrity: sha512-HVusNXlVqHe0fzIzdQOGolnFN6mX/fqcrSAOcTBXdvzrXVHwTz11vXeKRmkR5gTuwVpvHZEIyKoePDvuAR+XwQ==, + } + + hasown@2.0.2: + resolution: + { + integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==, + } + engines: { node: ">= 0.4" } + + hast-util-to-estree@3.1.0: + resolution: + { + integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==, + } + + hast-util-to-html@9.0.3: + resolution: + { + integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==, + } + + hast-util-to-jsx-runtime@2.3.0: + resolution: + { + integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==, + } + + hast-util-whitespace@3.0.0: + resolution: + { + integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==, + } + + html-void-elements@3.0.0: + resolution: + { + integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==, + } + + human-signals@5.0.0: + resolution: + { + integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==, + } + engines: { node: ">=16.17.0" } + + husky@9.1.6: + resolution: + { + integrity: sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A==, + } + engines: { node: ">=18" } + hasBin: true + + hyperdyperid@1.2.0: + resolution: + { + integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==, + } + engines: { node: ">=10.18" } + + ignore@5.3.2: + resolution: + { + integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==, + } + engines: { node: ">= 4" } + + imagescript@1.3.0: + resolution: + { + integrity: sha512-lCYzQrWzdnA68K03oMj/BUlBJrVBnslzDOgGFymAp49NmdGEJxGeN7sHh5mCva0nQkq+kkKSuru2zLf1m04+3A==, + } + engines: { node: ">=14.0.0" } + + import-fresh@3.3.0: + resolution: + { + integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, + } + engines: { node: ">=6" } + + imurmurhash@0.1.4: + resolution: + { + integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, + } + engines: { node: ">=0.8.19" } + + inflection@3.0.0: + resolution: + { + integrity: sha512-1zEJU1l19SgJlmwqsEyFTbScw/tkMHFenUo//Y0i+XEP83gDFdMvPizAD/WGcE+l1ku12PcTVHQhO6g5E0UCMw==, + } + engines: { node: ">=18.0.0" } + + inflight@1.0.6: + resolution: + { + integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, + } + deprecated: + This module is not supported, and leaks memory. Do not use it. Check out + lru-cache if you want a good and tested way to coalesce async requests by + a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: + { + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, + } + + inline-style-parser@0.1.1: + resolution: + { + integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==, + } + + inline-style-parser@0.2.4: + resolution: + { + integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==, + } + + internal-slot@1.0.7: + resolution: + { + integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==, + } + engines: { node: ">= 0.4" } + + interpret@1.4.0: + resolution: + { + integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==, + } + engines: { node: ">= 0.10" } + + is-alphabetical@2.0.1: + resolution: + { + integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==, + } + + is-alphanumerical@2.0.1: + resolution: + { + integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==, + } + + is-arguments@1.1.1: + resolution: + { + integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==, + } + engines: { node: ">= 0.4" } + + is-array-buffer@3.0.4: + resolution: + { + integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==, + } + engines: { node: ">= 0.4" } + + is-async-function@2.0.0: + resolution: + { + integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==, + } + engines: { node: ">= 0.4" } + + is-bigint@1.0.4: + resolution: + { + integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, + } + + is-binary-path@2.1.0: + resolution: + { + integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, + } + engines: { node: ">=8" } + + is-boolean-object@1.1.2: + resolution: + { + integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, + } + engines: { node: ">= 0.4" } + + is-bun-module@1.2.1: + resolution: + { + integrity: sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==, + } + + is-callable@1.2.7: + resolution: + { + integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, + } + engines: { node: ">= 0.4" } + + is-core-module@2.15.1: + resolution: + { + integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==, + } + engines: { node: ">= 0.4" } + + is-data-view@1.0.1: + resolution: + { + integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==, + } + engines: { node: ">= 0.4" } + + is-date-object@1.0.5: + resolution: + { + integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, + } + engines: { node: ">= 0.4" } + + is-decimal@2.0.1: + resolution: + { + integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==, + } + + is-extendable@0.1.1: + resolution: + { + integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==, + } + engines: { node: ">=0.10.0" } + + is-extglob@2.1.1: + resolution: + { + integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, + } + engines: { node: ">=0.10.0" } + + is-finalizationregistry@1.0.2: + resolution: + { + integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==, + } + + is-fullwidth-code-point@3.0.0: + resolution: + { + integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, + } + engines: { node: ">=8" } + + is-fullwidth-code-point@4.0.0: + resolution: + { + integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==, + } + engines: { node: ">=12" } + + is-fullwidth-code-point@5.0.0: + resolution: + { + integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==, + } + engines: { node: ">=18" } + + is-generator-function@1.0.10: + resolution: + { + integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==, + } + engines: { node: ">= 0.4" } + + is-glob@4.0.3: + resolution: + { + integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, + } + engines: { node: ">=0.10.0" } + + is-hexadecimal@2.0.1: + resolution: + { + integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==, + } + + is-map@2.0.3: + resolution: + { + integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==, + } + engines: { node: ">= 0.4" } + + is-negative-zero@2.0.3: + resolution: + { + integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==, + } + engines: { node: ">= 0.4" } + + is-number-object@1.0.7: + resolution: + { + integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, + } + engines: { node: ">= 0.4" } + + is-number@7.0.0: + resolution: + { + integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, + } + engines: { node: ">=0.12.0" } + + is-path-inside@3.0.3: + resolution: + { + integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, + } + engines: { node: ">=8" } + + is-plain-obj@4.1.0: + resolution: + { + integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==, + } + engines: { node: ">=12" } + + is-reference@3.0.2: + resolution: + { + integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==, + } + + is-regex@1.1.4: + resolution: + { + integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, + } + engines: { node: ">= 0.4" } + + is-set@2.0.3: + resolution: + { + integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==, + } + engines: { node: ">= 0.4" } + + is-shared-array-buffer@1.0.3: + resolution: + { + integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==, + } + engines: { node: ">= 0.4" } + + is-stream@3.0.0: + resolution: + { + integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + + is-string@1.0.7: + resolution: + { + integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, + } + engines: { node: ">= 0.4" } + + is-symbol@1.0.4: + resolution: + { + integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, + } + engines: { node: ">= 0.4" } + + is-typed-array@1.1.13: + resolution: + { + integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==, + } + engines: { node: ">= 0.4" } + + is-weakmap@2.0.2: + resolution: + { + integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==, + } + engines: { node: ">= 0.4" } + + is-weakref@1.0.2: + resolution: + { + integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, + } + + is-weakset@2.0.3: + resolution: + { + integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==, + } + engines: { node: ">= 0.4" } + + isarray@2.0.5: + resolution: + { + integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, + } + + isexe@2.0.0: + resolution: + { + integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, + } + + iterator.prototype@1.1.2: + resolution: + { + integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==, + } + + jackspeak@2.3.6: + resolution: + { + integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==, + } + engines: { node: ">=14" } + + jackspeak@3.4.3: + resolution: + { + integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==, + } + + jiti@1.21.6: + resolution: + { + integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==, + } + hasBin: true + + js-tokens@4.0.0: + resolution: + { + integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, + } + + js-yaml@3.14.1: + resolution: + { + integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, + } + hasBin: true + + js-yaml@4.1.0: + resolution: + { + integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, + } + hasBin: true + + jsbi@4.3.0: + resolution: + { + integrity: sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g==, + } + + json-buffer@3.0.1: + resolution: + { + integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, + } + + json-schema-traverse@0.4.1: + resolution: + { + integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, + } + + json-stable-stringify-without-jsonify@1.0.1: + resolution: + { + integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, + } + + json5@1.0.2: + resolution: + { + integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==, + } + hasBin: true + + jsx-ast-utils@3.3.5: + resolution: + { + integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==, + } + engines: { node: ">=4.0" } + + keyv@4.5.4: + resolution: + { + integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, + } + + kind-of@6.0.3: + resolution: + { + integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==, + } + engines: { node: ">=0.10.0" } + + language-subtag-registry@0.3.23: + resolution: + { + integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==, + } + + language-tags@1.0.9: + resolution: + { + integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==, + } + engines: { node: ">=0.10" } + + levn@0.4.1: + resolution: + { + integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, + } + engines: { node: ">= 0.8.0" } + + lilconfig@2.1.0: + resolution: + { + integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==, + } + engines: { node: ">=10" } + + lilconfig@3.1.2: + resolution: + { + integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==, + } + engines: { node: ">=14" } + + lines-and-columns@1.2.4: + resolution: + { + integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, + } + + lint-staged@15.2.10: + resolution: + { + integrity: sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==, + } + engines: { node: ">=18.12.0" } + hasBin: true + + listr2@8.2.4: + resolution: + { + integrity: sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==, + } + engines: { node: ">=18.0.0" } + + locate-path@6.0.0: + resolution: + { + integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, + } + engines: { node: ">=10" } + + lodash.camelcase@4.3.0: + resolution: + { + integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, + } + + lodash.merge@4.6.2: + resolution: + { + integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, + } + + lodash@4.17.21: + resolution: + { + integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, + } + + log-update@6.1.0: + resolution: + { + integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==, + } + engines: { node: ">=18" } + + long@5.2.3: + resolution: + { + integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==, + } + + longest-streak@3.1.0: + resolution: + { + integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==, + } + + loose-envify@1.4.0: + resolution: + { + integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, + } + hasBin: true + + lower-case@2.0.2: + resolution: + { + integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==, + } + + lru-cache@10.4.3: + resolution: + { + integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==, + } + + markdown-extensions@2.0.0: + resolution: + { + integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==, + } + engines: { node: ">=16" } + + mdast-util-from-markdown@2.0.1: + resolution: + { + integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==, + } + + mdast-util-frontmatter@2.0.1: + resolution: + { + integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==, + } + + mdast-util-mdx-expression@2.0.1: + resolution: + { + integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==, + } + + mdast-util-mdx-jsx@3.1.3: + resolution: + { + integrity: sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==, + } + + mdast-util-mdx@3.0.0: + resolution: + { + integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==, + } + + mdast-util-mdxjs-esm@2.0.1: + resolution: + { + integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==, + } + + mdast-util-phrasing@4.1.0: + resolution: + { + integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==, + } + + mdast-util-to-hast@13.2.0: + resolution: + { + integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==, + } + + mdast-util-to-markdown@2.1.0: + resolution: + { + integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==, + } + + mdast-util-to-string@4.0.0: + resolution: + { + integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==, + } + + mdast@3.0.0: + resolution: + { + integrity: sha512-xySmf8g4fPKMeC07jXGz971EkLbWAJ83s4US2Tj9lEdnZ142UP5grN73H1Xd3HzrdbU5o9GYYP/y8F9ZSwLE9g==, + } + deprecated: "`mdast` was renamed to `remark`" + + mdx-bundler@10.0.3: + resolution: + { + integrity: sha512-vRtVZ5t+nUP0QtoRVgjDFO10YDjRgKe/19ie0IR8FqE8SugNn5RP4sCWBPzKoEwoGbqfQOrgHy+PHCVyfaCDQQ==, + } + engines: { node: ">=18", npm: ">=6" } + peerDependencies: + esbuild: 0.* + + memfs@4.12.0: + resolution: + { + integrity: sha512-74wDsex5tQDSClVkeK1vtxqYCAgCoXxx+K4NSHzgU/muYVYByFqa+0RnrPO9NM6naWm1+G9JmZ0p6QHhXmeYfA==, + } + engines: { node: ">= 4.0.0" } + + merge-stream@2.0.0: + resolution: + { + integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, + } + + merge2@1.4.1: + resolution: + { + integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, + } + engines: { node: ">= 8" } + + micromark-core-commonmark@2.0.1: + resolution: + { + integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==, + } + + micromark-extension-frontmatter@2.0.0: + resolution: + { + integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==, + } + + micromark-extension-mdx-expression@3.0.0: + resolution: + { + integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==, + } + + micromark-extension-mdx-jsx@3.0.1: + resolution: + { + integrity: sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==, + } + + micromark-extension-mdx-md@2.0.0: + resolution: + { + integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==, + } + + micromark-extension-mdxjs-esm@3.0.0: + resolution: + { + integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==, + } + + micromark-extension-mdxjs@3.0.0: + resolution: + { + integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==, + } + + micromark-factory-destination@2.0.0: + resolution: + { + integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==, + } + + micromark-factory-label@2.0.0: + resolution: + { + integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==, + } + + micromark-factory-mdx-expression@2.0.2: + resolution: + { + integrity: sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==, + } + + micromark-factory-space@2.0.0: + resolution: + { + integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==, + } + + micromark-factory-title@2.0.0: + resolution: + { + integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==, + } + + micromark-factory-whitespace@2.0.0: + resolution: + { + integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==, + } + + micromark-util-character@2.1.0: + resolution: + { + integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==, + } + + micromark-util-chunked@2.0.0: + resolution: + { + integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==, + } + + micromark-util-classify-character@2.0.0: + resolution: + { + integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==, + } + + micromark-util-combine-extensions@2.0.0: + resolution: + { + integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==, + } + + micromark-util-decode-numeric-character-reference@2.0.1: + resolution: + { + integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==, + } + + micromark-util-decode-string@2.0.0: + resolution: + { + integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==, + } + + micromark-util-encode@2.0.0: + resolution: + { + integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==, + } + + micromark-util-events-to-acorn@2.0.2: + resolution: + { + integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==, + } + + micromark-util-html-tag-name@2.0.0: + resolution: + { + integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==, + } + + micromark-util-normalize-identifier@2.0.0: + resolution: + { + integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==, + } + + micromark-util-resolve-all@2.0.0: + resolution: + { + integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==, + } + + micromark-util-sanitize-uri@2.0.0: + resolution: + { + integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==, + } + + micromark-util-subtokenize@2.0.1: + resolution: + { + integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==, + } + + micromark-util-symbol@2.0.0: + resolution: + { + integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==, + } + + micromark-util-types@2.0.0: + resolution: + { + integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==, + } + + micromark@4.0.0: + resolution: + { + integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==, + } + + micromatch@4.0.8: + resolution: + { + integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==, + } + engines: { node: ">=8.6" } + + mimic-fn@4.0.0: + resolution: + { + integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, + } + engines: { node: ">=12" } + + mimic-function@5.0.1: + resolution: + { + integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==, + } + engines: { node: ">=18" } + + min-indent@1.0.1: + resolution: + { + integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==, + } + engines: { node: ">=4" } + + minimatch@3.1.2: + resolution: + { + integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, + } + + minimatch@9.0.3: + resolution: + { + integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==, + } + engines: { node: ">=16 || 14 >=14.17" } + + minimatch@9.0.5: + resolution: + { + integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==, + } + engines: { node: ">=16 || 14 >=14.17" } + + minimist@1.2.8: + resolution: + { + integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, + } + + minipass@3.3.6: + resolution: + { + integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==, + } + engines: { node: ">=8" } + + minipass@5.0.0: + resolution: + { + integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==, + } + engines: { node: ">=8" } + + minipass@7.1.2: + resolution: + { + integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==, + } + engines: { node: ">=16 || 14 >=14.17" } + + minizlib@2.1.2: + resolution: + { + integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==, + } + engines: { node: ">= 8" } + + mkdirp@1.0.4: + resolution: + { + integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==, + } + engines: { node: ">=10" } + hasBin: true + + ms@2.1.3: + resolution: + { + integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, + } + + mz@2.7.0: + resolution: + { + integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, + } + + nanoid@3.3.7: + resolution: + { + integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==, + } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + hasBin: true + + natural-compare@1.4.0: + resolution: + { + integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, + } + + next-contentlayer2@0.4.6: + resolution: + { + integrity: sha512-r1g/zCl3dXFfMlMI87n2+V90Jz7inMrfyRzmMSQdDfCBy3uexnsoM43wPbklza2teyd/pdfUT0I0gw/IE+YA4Q==, + } + peerDependencies: + contentlayer2: 0.4.6 + next: ^12 || ^13 || ^14 + react: "*" + react-dom: "*" + + next@14.1.0: + resolution: + { + integrity: sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==, + } + engines: { node: ">=18.17.0" } + hasBin: true + peerDependencies: + "@opentelemetry/api": ^1.1.0 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + peerDependenciesMeta: + "@opentelemetry/api": + optional: true + sass: + optional: true + + no-case@3.0.4: + resolution: + { + integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==, + } + + node-fetch@2.7.0: + resolution: + { + integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==, + } + engines: { node: 4.x || >=6.0.0 } + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-releases@2.0.18: + resolution: + { + integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==, + } + + normalize-path@3.0.0: + resolution: + { + integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, + } + engines: { node: ">=0.10.0" } + + normalize-range@0.1.2: + resolution: + { + integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==, + } + engines: { node: ">=0.10.0" } + + npm-run-path@5.3.0: + resolution: + { + integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + + object-assign@4.1.1: + resolution: + { + integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, + } + engines: { node: ">=0.10.0" } + + object-hash@3.0.0: + resolution: + { + integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==, + } + engines: { node: ">= 6" } + + object-inspect@1.13.2: + resolution: + { + integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==, + } + engines: { node: ">= 0.4" } + + object-is@1.1.6: + resolution: + { + integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==, + } + engines: { node: ">= 0.4" } + + object-keys@1.1.1: + resolution: + { + integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, + } + engines: { node: ">= 0.4" } + + object.assign@4.1.5: + resolution: + { + integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==, + } + engines: { node: ">= 0.4" } + + object.entries@1.1.8: + resolution: + { + integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==, + } + engines: { node: ">= 0.4" } + + object.fromentries@2.0.8: + resolution: + { + integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==, + } + engines: { node: ">= 0.4" } + + object.groupby@1.0.3: + resolution: + { + integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==, + } + engines: { node: ">= 0.4" } + + object.values@1.2.0: + resolution: + { + integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==, + } + engines: { node: ">= 0.4" } + + once@1.4.0: + resolution: + { + integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, + } + + onetime@6.0.0: + resolution: + { + integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, + } + engines: { node: ">=12" } + + onetime@7.0.0: + resolution: + { + integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==, + } + engines: { node: ">=18" } + + oo-ascii-tree@1.103.1: + resolution: + { + integrity: sha512-X0nmbb8xUUi637JXzCxY/K4AtO/I0fB5b7iiGaHJHu8IXBWV8TnQ4xqa0Igb/NoAg3OP2uXNhSeiTsErETOA/g==, + } + engines: { node: ">= 14.17.0" } + + optionator@0.9.4: + resolution: + { + integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==, + } + engines: { node: ">= 0.8.0" } + + p-limit@3.1.0: + resolution: + { + integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, + } + engines: { node: ">=10" } + + p-locate@5.0.0: + resolution: + { + integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, + } + engines: { node: ">=10" } + + package-json-from-dist@1.0.1: + resolution: + { + integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==, + } + + parent-module@1.0.1: + resolution: + { + integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, + } + engines: { node: ">=6" } + + parse-entities@4.0.1: + resolution: + { + integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==, + } + + pascal-case@3.1.2: + resolution: + { + integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==, + } + + path-exists@4.0.0: + resolution: + { + integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, + } + engines: { node: ">=8" } + + path-is-absolute@1.0.1: + resolution: + { + integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, + } + engines: { node: ">=0.10.0" } + + path-key@3.1.1: + resolution: + { + integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, + } + engines: { node: ">=8" } + + path-key@4.0.0: + resolution: + { + integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, + } + engines: { node: ">=12" } + + path-parse@1.0.7: + resolution: + { + integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, + } + + path-scurry@1.11.1: + resolution: + { + integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==, + } + engines: { node: ">=16 || 14 >=14.18" } + + path-type@4.0.0: + resolution: + { + integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, + } + engines: { node: ">=8" } + + pend@1.2.0: + resolution: + { + integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==, + } + + periscopic@3.1.0: + resolution: + { + integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==, + } + + picocolors@1.1.0: + resolution: + { + integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==, + } + + picomatch@2.3.1: + resolution: + { + integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, + } + engines: { node: ">=8.6" } + + pidtree@0.6.0: + resolution: + { + integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==, + } + engines: { node: ">=0.10" } + hasBin: true + + pify@2.3.0: + resolution: + { + integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, + } + engines: { node: ">=0.10.0" } + + pirates@4.0.6: + resolution: + { + integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==, + } + engines: { node: ">= 6" } + + possible-typed-array-names@1.0.0: + resolution: + { + integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==, + } + engines: { node: ">= 0.4" } + + postcss-import@15.1.0: + resolution: + { + integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==, + } + engines: { node: ">=14.0.0" } + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.0.1: + resolution: + { + integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==, + } + engines: { node: ^12 || ^14 || >= 16 } + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@4.0.2: + resolution: + { + integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==, + } + engines: { node: ">= 14" } + peerDependencies: + postcss: ">=8.0.9" + ts-node: ">=9.0.0" + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-nested@6.2.0: + resolution: + { + integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==, + } + engines: { node: ">=12.0" } + peerDependencies: + postcss: ^8.2.14 + + postcss-selector-parser@6.1.2: + resolution: + { + integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==, + } + engines: { node: ">=4" } + + postcss-value-parser@4.2.0: + resolution: + { + integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, + } + + postcss@8.4.26: + resolution: + { + integrity: sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==, + } + engines: { node: ^10 || ^12 || >=14 } + + postcss@8.4.31: + resolution: + { + integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==, + } + engines: { node: ^10 || ^12 || >=14 } + + prelude-ls@1.2.1: + resolution: + { + integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, + } + engines: { node: ">= 0.8.0" } + + prettier@3.3.3: + resolution: + { + integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==, + } + engines: { node: ">=14" } + hasBin: true + + prop-types@15.8.1: + resolution: + { + integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==, + } + + property-information@6.5.0: + resolution: + { + integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==, + } + + protobufjs@7.4.0: + resolution: + { + integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==, + } + engines: { node: ">=12.0.0" } + + punycode@2.3.1: + resolution: + { + integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, + } + engines: { node: ">=6" } + + queue-microtask@1.2.3: + resolution: + { + integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, + } + + react-dom@18.2.0: + resolution: + { + integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==, + } + peerDependencies: + react: ^18.2.0 + + react-is@16.13.1: + resolution: + { + integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, + } + + react@18.2.0: + resolution: + { + integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==, + } + engines: { node: ">=0.10.0" } + + read-cache@1.0.0: + resolution: + { + integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==, + } + + readdirp@3.6.0: + resolution: + { + integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, + } + engines: { node: ">=8.10.0" } + + rechoir@0.6.2: + resolution: + { + integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==, + } + engines: { node: ">= 0.10" } + + reflect.getprototypeof@1.0.6: + resolution: + { + integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==, + } + engines: { node: ">= 0.4" } + + regenerator-runtime@0.14.1: + resolution: + { + integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==, + } + + regexp.prototype.flags@1.5.2: + resolution: + { + integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==, + } + engines: { node: ">= 0.4" } + + rehype-stringify@10.0.0: + resolution: + { + integrity: sha512-1TX1i048LooI9QoecrXy7nGFFbFSufxVRAfc6Y9YMRAi56l+oB0zP51mLSV312uRuvVLPV1opSlJmslozR1XHQ==, + } + + remark-frontmatter@5.0.0: + resolution: + { + integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==, + } + + remark-mdx-frontmatter@4.0.0: + resolution: + { + integrity: sha512-PZzAiDGOEfv1Ua7exQ8S5kKxkD8CDaSb4nM+1Mprs6u8dyvQifakh+kCj6NovfGXW+bTvrhjaR3srzjS2qJHKg==, + } + + remark-mdx@3.0.1: + resolution: + { + integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==, + } + + remark-parse@11.0.0: + resolution: + { + integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==, + } + + remark-rehype@11.1.1: + resolution: + { + integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==, + } + + remark-stringify@11.0.0: + resolution: + { + integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==, + } + + remark@15.0.1: + resolution: + { + integrity: sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==, + } + + repeat-string@1.6.1: + resolution: + { + integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==, + } + engines: { node: ">=0.10" } + + require-directory@2.1.1: + resolution: + { + integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, + } + engines: { node: ">=0.10.0" } + + resolve-from@4.0.0: + resolution: + { + integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, + } + engines: { node: ">=4" } + + resolve-pkg-maps@1.0.0: + resolution: + { + integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==, + } + + resolve@1.22.8: + resolution: + { + integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, + } + hasBin: true + + resolve@2.0.0-next.5: + resolution: + { + integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==, + } + hasBin: true + + restore-cursor@5.1.0: + resolution: + { + integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==, + } + engines: { node: ">=18" } + + reusify@1.0.4: + resolution: + { + integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, + } + engines: { iojs: ">=1.0.0", node: ">=0.10.0" } + + rfdc@1.4.1: + resolution: + { + integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==, + } + + rimraf@3.0.2: + resolution: + { + integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, + } + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + run-parallel@1.2.0: + resolution: + { + integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, + } + + rxjs@7.8.1: + resolution: + { + integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==, + } + + safe-array-concat@1.1.2: + resolution: + { + integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==, + } + engines: { node: ">=0.4" } + + safe-regex-test@1.0.3: + resolution: + { + integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==, + } + engines: { node: ">= 0.4" } + + scheduler@0.23.2: + resolution: + { + integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==, + } + + section-matter@1.0.0: + resolution: + { + integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==, + } + engines: { node: ">=4" } + + semver@6.3.1: + resolution: + { + integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, + } + hasBin: true + + semver@7.6.3: + resolution: + { + integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==, + } + engines: { node: ">=10" } + hasBin: true + + set-function-length@1.2.2: + resolution: + { + integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==, + } + engines: { node: ">= 0.4" } + + set-function-name@2.0.2: + resolution: + { + integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==, + } + engines: { node: ">= 0.4" } + + shebang-command@2.0.0: + resolution: + { + integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, + } + engines: { node: ">=8" } + + shebang-regex@3.0.0: + resolution: + { + integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, + } + engines: { node: ">=8" } + + shell-quote@1.8.1: + resolution: + { + integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==, + } + + shelljs@0.8.5: + resolution: + { + integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==, + } + engines: { node: ">=4" } + hasBin: true + + side-channel@1.0.6: + resolution: + { + integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==, + } + engines: { node: ">= 0.4" } + + signal-exit@4.1.0: + resolution: + { + integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, + } + engines: { node: ">=14" } + + slash@3.0.0: + resolution: + { + integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, + } + engines: { node: ">=8" } + + slice-ansi@5.0.0: + resolution: + { + integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==, + } + engines: { node: ">=12" } + + slice-ansi@7.1.0: + resolution: + { + integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==, + } + engines: { node: ">=18" } + + source-map-js@1.2.1: + resolution: + { + integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==, + } + engines: { node: ">=0.10.0" } + + source-map-support@0.5.21: + resolution: + { + integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, + } + + source-map@0.6.1: + resolution: + { + integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, + } + engines: { node: ">=0.10.0" } + + source-map@0.7.4: + resolution: + { + integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==, + } + engines: { node: ">= 8" } + + space-separated-tokens@2.0.2: + resolution: + { + integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==, + } + + spawn-command@0.0.2: + resolution: + { + integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==, + } + + sprintf-js@1.0.3: + resolution: + { + integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, + } + + stop-iteration-iterator@1.0.0: + resolution: + { + integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==, + } + engines: { node: ">= 0.4" } + + streamsearch@1.1.0: + resolution: + { + integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==, + } + engines: { node: ">=10.0.0" } + + string-argv@0.3.2: + resolution: + { + integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==, + } + engines: { node: ">=0.6.19" } + + string-width@4.2.3: + resolution: + { + integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, + } + engines: { node: ">=8" } + + string-width@5.1.2: + resolution: + { + integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, + } + engines: { node: ">=12" } + + string-width@7.2.0: + resolution: + { + integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==, + } + engines: { node: ">=18" } + + string.prototype.includes@2.0.0: + resolution: + { + integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==, + } + + string.prototype.matchall@4.0.11: + resolution: + { + integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==, + } + engines: { node: ">= 0.4" } + + string.prototype.repeat@1.0.0: + resolution: + { + integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==, + } + + string.prototype.trim@1.2.9: + resolution: + { + integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==, + } + engines: { node: ">= 0.4" } + + string.prototype.trimend@1.0.8: + resolution: + { + integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==, + } + + string.prototype.trimstart@1.0.8: + resolution: + { + integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==, + } + engines: { node: ">= 0.4" } + + stringify-entities@4.0.4: + resolution: + { + integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==, + } + + strip-ansi@6.0.1: + resolution: + { + integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, + } + engines: { node: ">=8" } + + strip-ansi@7.1.0: + resolution: + { + integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, + } + engines: { node: ">=12" } + + strip-bom-string@1.0.0: + resolution: + { + integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==, + } + engines: { node: ">=0.10.0" } + + strip-bom@3.0.0: + resolution: + { + integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, + } + engines: { node: ">=4" } + + strip-final-newline@3.0.0: + resolution: + { + integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, + } + engines: { node: ">=12" } + + strip-indent@4.0.0: + resolution: + { + integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==, + } + engines: { node: ">=12" } + + strip-json-comments@3.1.1: + resolution: + { + integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, + } + engines: { node: ">=8" } + + style-to-object@0.4.4: + resolution: + { + integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==, + } + + style-to-object@1.0.8: + resolution: + { + integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==, + } + + styled-jsx@5.1.1: + resolution: + { + integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==, + } + engines: { node: ">= 12.0.0" } + peerDependencies: + "@babel/core": "*" + babel-plugin-macros: "*" + react: ">= 16.8.0 || 17.x.x || ^18.0.0-0" + peerDependenciesMeta: + "@babel/core": + optional: true + babel-plugin-macros: + optional: true + + sucrase@3.35.0: + resolution: + { + integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==, + } + engines: { node: ">=16 || 14 >=14.17" } + hasBin: true + + supports-color@7.2.0: + resolution: + { + integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, + } + engines: { node: ">=8" } + + supports-color@8.1.1: + resolution: + { + integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==, + } + engines: { node: ">=10" } + + supports-preserve-symlinks-flag@1.0.0: + resolution: + { + integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, + } + engines: { node: ">= 0.4" } + + tailwindcss@3.4.1: + resolution: + { + integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==, + } + engines: { node: ">=14.0.0" } + hasBin: true + + tapable@2.2.1: + resolution: + { + integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, + } + engines: { node: ">=6" } + + tar@6.2.1: + resolution: + { + integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==, + } + engines: { node: ">=10" } + + text-table@0.2.0: + resolution: + { + integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, + } + + thenify-all@1.6.0: + resolution: + { + integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==, + } + engines: { node: ">=0.8" } + + thenify@3.3.1: + resolution: + { + integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, + } + + thingies@1.21.0: + resolution: + { + integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==, + } + engines: { node: ">=10.18" } + peerDependencies: + tslib: ^2 + + to-regex-range@5.0.1: + resolution: + { + integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, + } + engines: { node: ">=8.0" } + + toml@3.0.0: + resolution: + { + integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==, + } + + tr46@0.0.3: + resolution: + { + integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, + } + + tree-dump@1.0.2: + resolution: + { + integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==, + } + engines: { node: ">=10.0" } + peerDependencies: + tslib: "2" + + tree-kill@1.2.2: + resolution: + { + integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==, + } + hasBin: true + + trim-lines@3.0.1: + resolution: + { + integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==, + } + + trough@2.2.0: + resolution: + { + integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==, + } + + ts-api-utils@1.3.0: + resolution: + { + integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==, + } + engines: { node: ">=16" } + peerDependencies: + typescript: ">=4.2.0" + + ts-interface-checker@0.1.13: + resolution: + { + integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, + } + + ts-pattern@5.4.0: + resolution: + { + integrity: sha512-hgfOMfjlrARCnYtGD/xEAkFHDXuSyuqjzFSltyQCbN689uNvoQL20TVN2XFcLMjfNuwSsQGU+xtH6MrjIwhwUg==, + } + + tsconfig-paths@3.15.0: + resolution: + { + integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==, + } + + tslib@2.7.0: + resolution: + { + integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==, + } + + typanion@3.14.0: + resolution: + { + integrity: sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug==, + } + + type-check@0.4.0: + resolution: + { + integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, + } + engines: { node: ">= 0.8.0" } + + type-fest@0.20.2: + resolution: + { + integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, + } + engines: { node: ">=10" } + + type-fest@4.26.1: + resolution: + { + integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==, + } + engines: { node: ">=16" } + + typed-array-buffer@1.0.2: + resolution: + { + integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==, + } + engines: { node: ">= 0.4" } + + typed-array-byte-length@1.0.1: + resolution: + { + integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==, + } + engines: { node: ">= 0.4" } + + typed-array-byte-offset@1.0.2: + resolution: + { + integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==, + } + engines: { node: ">= 0.4" } + + typed-array-length@1.0.6: + resolution: + { + integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==, + } + engines: { node: ">= 0.4" } + + typescript@5.3.3: + resolution: + { + integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==, + } + engines: { node: ">=14.17" } + hasBin: true + + unbox-primitive@1.0.2: + resolution: + { + integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, + } + + undici-types@5.26.5: + resolution: + { + integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, + } + + unified@11.0.5: + resolution: + { + integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==, + } + + unist-util-is@6.0.0: + resolution: + { + integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==, + } + + unist-util-position-from-estree@2.0.0: + resolution: + { + integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==, + } + + unist-util-position@5.0.0: + resolution: + { + integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==, + } + + unist-util-stringify-position@4.0.0: + resolution: + { + integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==, + } + + unist-util-visit-parents@6.0.1: + resolution: + { + integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==, + } + + unist-util-visit@5.0.0: + resolution: + { + integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==, + } + + update-browserslist-db@1.1.0: + resolution: + { + integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==, + } + hasBin: true + peerDependencies: + browserslist: ">= 4.21.0" + + uri-js@4.4.1: + resolution: + { + integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, + } + + util-deprecate@1.0.2: + resolution: + { + integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, + } + + uuid@9.0.1: + resolution: + { + integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==, + } + hasBin: true + + vfile-message@4.0.2: + resolution: + { + integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==, + } + + vfile@6.0.3: + resolution: + { + integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==, + } + + webidl-conversions@3.0.1: + resolution: + { + integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, + } + + whatwg-url@5.0.0: + resolution: + { + integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, + } + + which-boxed-primitive@1.0.2: + resolution: + { + integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, + } + + which-builtin-type@1.1.4: + resolution: + { + integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==, + } + engines: { node: ">= 0.4" } + + which-collection@1.0.2: + resolution: + { + integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==, + } + engines: { node: ">= 0.4" } + + which-typed-array@1.1.15: + resolution: + { + integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==, + } + engines: { node: ">= 0.4" } + + which@2.0.2: + resolution: + { + integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, + } + engines: { node: ">= 8" } + hasBin: true + + word-wrap@1.2.5: + resolution: + { + integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==, + } + engines: { node: ">=0.10.0" } + + wrap-ansi@7.0.0: + resolution: + { + integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, + } + engines: { node: ">=10" } + + wrap-ansi@8.1.0: + resolution: + { + integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==, + } + engines: { node: ">=12" } + + wrap-ansi@9.0.0: + resolution: + { + integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==, + } + engines: { node: ">=18" } + + wrappy@1.0.2: + resolution: + { + integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, + } + + y18n@5.0.8: + resolution: + { + integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, + } + engines: { node: ">=10" } + + yallist@4.0.0: + resolution: + { + integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, + } + + yaml@2.5.1: + resolution: + { + integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==, + } + engines: { node: ">= 14" } + hasBin: true + + yargs-parser@21.1.1: + resolution: + { + integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, + } + engines: { node: ">=12" } + + yargs@17.7.2: + resolution: + { + integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, + } + engines: { node: ">=12" } + + yauzl@3.1.3: + resolution: + { + integrity: sha512-JCCdmlJJWv7L0q/KylOekyRaUrdEoUxWkWVcgorosTROCFWiS9p2NNPE9Yb91ak7b1N5SxAZEliWpspbZccivw==, + } + engines: { node: ">=12" } + + yocto-queue@0.1.0: + resolution: + { + integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, + } + engines: { node: ">=10" } + + zod@3.23.8: + resolution: + { + integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==, + } + + zwitch@2.0.4: + resolution: + { + integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==, + } + +snapshots: + "@alloc/quick-lru@5.2.0": {} + + "@babel/runtime@7.25.6": + dependencies: + regenerator-runtime: 0.14.1 + + "@contentlayer2/cli@0.4.3(esbuild@0.20.2)": + dependencies: + "@contentlayer2/core": 0.4.3(esbuild@0.20.2) + "@contentlayer2/utils": 0.4.3 + clipanion: 3.2.1(typanion@3.14.0) + typanion: 3.14.0 + transitivePeerDependencies: + - "@effect-ts/otel-node" + - esbuild + - markdown-wasm + - supports-color + + "@contentlayer2/client@0.4.3(esbuild@0.20.2)": + dependencies: + "@contentlayer2/core": 0.4.3(esbuild@0.20.2) + transitivePeerDependencies: + - "@effect-ts/otel-node" + - esbuild + - markdown-wasm + - supports-color + + "@contentlayer2/core@0.4.3(esbuild@0.20.2)": + dependencies: + "@contentlayer2/utils": 0.4.3 + camel-case: 4.1.2 + comment-json: 4.2.5 + gray-matter: 4.0.3 + mdx-bundler: 10.0.3(esbuild@0.20.2) + rehype-stringify: 10.0.0 + remark-frontmatter: 5.0.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.1 + source-map-support: 0.5.21 + type-fest: 4.26.1 + unified: 11.0.5 + optionalDependencies: + esbuild: 0.20.2 + transitivePeerDependencies: + - "@effect-ts/otel-node" + - supports-color + + "@contentlayer2/source-files@0.4.3(esbuild@0.20.2)": + dependencies: + "@contentlayer2/core": 0.4.3(esbuild@0.20.2) + "@contentlayer2/utils": 0.4.3 + chokidar: 3.6.0 + fast-glob: 3.3.2 + gray-matter: 4.0.3 + imagescript: 1.3.0 + micromatch: 4.0.8 + ts-pattern: 5.4.0 + unified: 11.0.5 + yaml: 2.5.1 + zod: 3.23.8 + transitivePeerDependencies: + - "@effect-ts/otel-node" + - esbuild + - markdown-wasm + - supports-color + + "@contentlayer2/source-remote-files@0.4.3(esbuild@0.20.2)": + dependencies: + "@contentlayer2/core": 0.4.3(esbuild@0.20.2) + "@contentlayer2/source-files": 0.4.3(esbuild@0.20.2) + "@contentlayer2/utils": 0.4.3 + transitivePeerDependencies: + - "@effect-ts/otel-node" + - esbuild + - markdown-wasm + - supports-color + + "@contentlayer2/utils@0.4.3": + dependencies: + "@effect-ts/core": 0.60.5 + "@effect-ts/otel": 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0)) + "@effect-ts/otel-sdk-trace-node": 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@1.26.0(@opentelemetry/api@1.9.0)) + "@js-temporal/polyfill": 0.4.4 + "@opentelemetry/api": 1.9.0 + "@opentelemetry/core": 1.26.0(@opentelemetry/api@1.9.0) + "@opentelemetry/exporter-trace-otlp-grpc": 0.51.1(@opentelemetry/api@1.9.0) + "@opentelemetry/resources": 1.26.0(@opentelemetry/api@1.9.0) + "@opentelemetry/sdk-trace-base": 1.26.0(@opentelemetry/api@1.9.0) + "@opentelemetry/sdk-trace-node": 1.26.0(@opentelemetry/api@1.9.0) + "@opentelemetry/semantic-conventions": 1.27.0 + chokidar: 3.6.0 + hash-wasm: 4.11.0 + inflection: 3.0.0 + memfs: 4.12.0 + oo-ascii-tree: 1.103.1 + ts-pattern: 5.4.0 + type-fest: 4.26.1 + + "@crowdin/cli@3.19.4": + dependencies: + command-exists-promise: 2.0.2 + node-fetch: 2.7.0 + shelljs: 0.8.5 + tar: 6.2.1 + yauzl: 3.1.3 + transitivePeerDependencies: + - encoding + + "@effect-ts/core@0.60.5": + dependencies: + "@effect-ts/system": 0.57.5 + + "@effect-ts/otel-sdk-trace-node@0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@1.26.0(@opentelemetry/api@1.9.0))": + dependencies: + "@effect-ts/core": 0.60.5 + "@effect-ts/otel": 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0)) + "@opentelemetry/api": 1.9.0 + "@opentelemetry/core": 1.26.0(@opentelemetry/api@1.9.0) + "@opentelemetry/sdk-trace-base": 1.26.0(@opentelemetry/api@1.9.0) + "@opentelemetry/sdk-trace-node": 1.26.0(@opentelemetry/api@1.9.0) + + "@effect-ts/otel@0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))": + dependencies: + "@effect-ts/core": 0.60.5 + "@opentelemetry/api": 1.9.0 + "@opentelemetry/core": 1.26.0(@opentelemetry/api@1.9.0) + "@opentelemetry/sdk-trace-base": 1.26.0(@opentelemetry/api@1.9.0) + + "@effect-ts/system@0.57.5": {} + + "@esbuild-plugins/node-resolve@0.2.2(esbuild@0.20.2)": + dependencies: + "@types/resolve": 1.20.6 + debug: 4.3.7 + esbuild: 0.20.2 + escape-string-regexp: 4.0.0 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + "@esbuild/aix-ppc64@0.20.2": + optional: true + + "@esbuild/android-arm64@0.20.2": + optional: true + + "@esbuild/android-arm@0.20.2": + optional: true + + "@esbuild/android-x64@0.20.2": + optional: true + + "@esbuild/darwin-arm64@0.20.2": + optional: true + + "@esbuild/darwin-x64@0.20.2": + optional: true + + "@esbuild/freebsd-arm64@0.20.2": + optional: true + + "@esbuild/freebsd-x64@0.20.2": + optional: true + + "@esbuild/linux-arm64@0.20.2": + optional: true + + "@esbuild/linux-arm@0.20.2": + optional: true + + "@esbuild/linux-ia32@0.20.2": + optional: true + + "@esbuild/linux-loong64@0.20.2": + optional: true + + "@esbuild/linux-mips64el@0.20.2": + optional: true + + "@esbuild/linux-ppc64@0.20.2": + optional: true + + "@esbuild/linux-riscv64@0.20.2": + optional: true + + "@esbuild/linux-s390x@0.20.2": + optional: true + + "@esbuild/linux-x64@0.20.2": + optional: true + + "@esbuild/netbsd-x64@0.20.2": + optional: true + + "@esbuild/openbsd-x64@0.20.2": + optional: true + + "@esbuild/sunos-x64@0.20.2": + optional: true + + "@esbuild/win32-arm64@0.20.2": + optional: true + + "@esbuild/win32-ia32@0.20.2": + optional: true + + "@esbuild/win32-x64@0.20.2": + optional: true + + "@eslint-community/eslint-utils@4.4.0(eslint@8.45.0)": + dependencies: + eslint: 8.45.0 + eslint-visitor-keys: 3.4.3 + + "@eslint-community/regexpp@4.11.1": {} + + "@eslint/eslintrc@2.1.4": + dependencies: + ajv: 6.12.6 + debug: 4.3.7 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + "@eslint/js@8.44.0": {} + + "@fal-works/esbuild-plugin-global-externals@2.1.2": {} + + "@grpc/grpc-js@1.11.3": + dependencies: + "@grpc/proto-loader": 0.7.13 + "@js-sdsl/ordered-map": 4.4.2 + + "@grpc/proto-loader@0.7.13": + dependencies: + lodash.camelcase: 4.3.0 + long: 5.2.3 + protobufjs: 7.4.0 + yargs: 17.7.2 + + "@humanwhocodes/config-array@0.11.14": + dependencies: + "@humanwhocodes/object-schema": 2.0.3 + debug: 4.3.7 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + "@humanwhocodes/module-importer@1.0.1": {} + + "@humanwhocodes/object-schema@2.0.3": {} + + "@isaacs/cliui@8.0.2": + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + "@jridgewell/gen-mapping@0.3.5": + dependencies: + "@jridgewell/set-array": 1.2.1 + "@jridgewell/sourcemap-codec": 1.5.0 + "@jridgewell/trace-mapping": 0.3.25 + + "@jridgewell/resolve-uri@3.1.2": {} + + "@jridgewell/set-array@1.2.1": {} + + "@jridgewell/sourcemap-codec@1.5.0": {} + + "@jridgewell/trace-mapping@0.3.25": + dependencies: + "@jridgewell/resolve-uri": 3.1.2 + "@jridgewell/sourcemap-codec": 1.5.0 + + "@js-sdsl/ordered-map@4.4.2": {} + + "@js-temporal/polyfill@0.4.4": + dependencies: + jsbi: 4.3.0 + tslib: 2.7.0 + + "@jsonjoy.com/base64@1.1.2(tslib@2.7.0)": + dependencies: + tslib: 2.7.0 + + "@jsonjoy.com/json-pack@1.1.0(tslib@2.7.0)": + dependencies: + "@jsonjoy.com/base64": 1.1.2(tslib@2.7.0) + "@jsonjoy.com/util": 1.3.0(tslib@2.7.0) + hyperdyperid: 1.2.0 + thingies: 1.21.0(tslib@2.7.0) + tslib: 2.7.0 + + "@jsonjoy.com/util@1.3.0(tslib@2.7.0)": + dependencies: + tslib: 2.7.0 + + "@mdx-js/esbuild@3.0.1(esbuild@0.20.2)": + dependencies: + "@mdx-js/mdx": 3.0.1 + "@types/unist": 3.0.3 + esbuild: 0.20.2 + vfile: 6.0.3 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + + "@mdx-js/mdx@3.0.1": + dependencies: + "@types/estree": 1.0.6 + "@types/estree-jsx": 1.0.5 + "@types/hast": 3.0.4 + "@types/mdx": 2.0.13 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-build-jsx: 3.0.1 + estree-util-is-identifier-name: 3.0.0 + estree-util-to-js: 2.0.0 + estree-walker: 3.0.3 + hast-util-to-estree: 3.1.0 + hast-util-to-jsx-runtime: 2.3.0 + markdown-extensions: 2.0.0 + periscopic: 3.1.0 + remark-mdx: 3.0.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.1 + source-map: 0.7.4 + unified: 11.0.5 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + "@next/env@14.1.0": {} + + "@next/eslint-plugin-next@14.1.0": + dependencies: + glob: 10.3.10 + + "@next/swc-darwin-arm64@14.1.0": + optional: true + + "@next/swc-darwin-x64@14.1.0": + optional: true + + "@next/swc-linux-arm64-gnu@14.1.0": + optional: true + + "@next/swc-linux-arm64-musl@14.1.0": + optional: true + + "@next/swc-linux-x64-gnu@14.1.0": + optional: true + + "@next/swc-linux-x64-musl@14.1.0": + optional: true + + "@next/swc-win32-arm64-msvc@14.1.0": + optional: true + + "@next/swc-win32-ia32-msvc@14.1.0": + optional: true + + "@next/swc-win32-x64-msvc@14.1.0": + optional: true + + "@nodelib/fs.scandir@2.1.5": + dependencies: + "@nodelib/fs.stat": 2.0.5 + run-parallel: 1.2.0 + + "@nodelib/fs.stat@2.0.5": {} + + "@nodelib/fs.walk@1.2.8": + dependencies: + "@nodelib/fs.scandir": 2.1.5 + fastq: 1.17.1 + + "@nolyfill/is-core-module@1.0.39": {} + + "@opentelemetry/api-logs@0.51.1": + dependencies: + "@opentelemetry/api": 1.9.0 + + "@opentelemetry/api@1.9.0": {} + + "@opentelemetry/context-async-hooks@1.26.0(@opentelemetry/api@1.9.0)": + dependencies: + "@opentelemetry/api": 1.9.0 + + "@opentelemetry/core@1.24.1(@opentelemetry/api@1.9.0)": + dependencies: + "@opentelemetry/api": 1.9.0 + "@opentelemetry/semantic-conventions": 1.24.1 + + "@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0)": + dependencies: + "@opentelemetry/api": 1.9.0 + "@opentelemetry/semantic-conventions": 1.27.0 + + "@opentelemetry/exporter-trace-otlp-grpc@0.51.1(@opentelemetry/api@1.9.0)": + dependencies: + "@grpc/grpc-js": 1.11.3 + "@opentelemetry/api": 1.9.0 + "@opentelemetry/core": 1.24.1(@opentelemetry/api@1.9.0) + "@opentelemetry/otlp-grpc-exporter-base": 0.51.1(@opentelemetry/api@1.9.0) + "@opentelemetry/otlp-transformer": 0.51.1(@opentelemetry/api@1.9.0) + "@opentelemetry/resources": 1.24.1(@opentelemetry/api@1.9.0) + "@opentelemetry/sdk-trace-base": 1.24.1(@opentelemetry/api@1.9.0) + + "@opentelemetry/otlp-exporter-base@0.51.1(@opentelemetry/api@1.9.0)": + dependencies: + "@opentelemetry/api": 1.9.0 + "@opentelemetry/core": 1.24.1(@opentelemetry/api@1.9.0) + + "@opentelemetry/otlp-grpc-exporter-base@0.51.1(@opentelemetry/api@1.9.0)": + dependencies: + "@grpc/grpc-js": 1.11.3 + "@opentelemetry/api": 1.9.0 + "@opentelemetry/core": 1.24.1(@opentelemetry/api@1.9.0) + "@opentelemetry/otlp-exporter-base": 0.51.1(@opentelemetry/api@1.9.0) + protobufjs: 7.4.0 + + "@opentelemetry/otlp-transformer@0.51.1(@opentelemetry/api@1.9.0)": + dependencies: + "@opentelemetry/api": 1.9.0 + "@opentelemetry/api-logs": 0.51.1 + "@opentelemetry/core": 1.24.1(@opentelemetry/api@1.9.0) + "@opentelemetry/resources": 1.24.1(@opentelemetry/api@1.9.0) + "@opentelemetry/sdk-logs": 0.51.1(@opentelemetry/api-logs@0.51.1)(@opentelemetry/api@1.9.0) + "@opentelemetry/sdk-metrics": 1.24.1(@opentelemetry/api@1.9.0) + "@opentelemetry/sdk-trace-base": 1.24.1(@opentelemetry/api@1.9.0) + + "@opentelemetry/propagator-b3@1.26.0(@opentelemetry/api@1.9.0)": + dependencies: + "@opentelemetry/api": 1.9.0 + "@opentelemetry/core": 1.26.0(@opentelemetry/api@1.9.0) + + "@opentelemetry/propagator-jaeger@1.26.0(@opentelemetry/api@1.9.0)": + dependencies: + "@opentelemetry/api": 1.9.0 + "@opentelemetry/core": 1.26.0(@opentelemetry/api@1.9.0) + + "@opentelemetry/resources@1.24.1(@opentelemetry/api@1.9.0)": + dependencies: + "@opentelemetry/api": 1.9.0 + "@opentelemetry/core": 1.24.1(@opentelemetry/api@1.9.0) + "@opentelemetry/semantic-conventions": 1.24.1 + + "@opentelemetry/resources@1.26.0(@opentelemetry/api@1.9.0)": + dependencies: + "@opentelemetry/api": 1.9.0 + "@opentelemetry/core": 1.26.0(@opentelemetry/api@1.9.0) + "@opentelemetry/semantic-conventions": 1.27.0 + + "@opentelemetry/sdk-logs@0.51.1(@opentelemetry/api-logs@0.51.1)(@opentelemetry/api@1.9.0)": + dependencies: + "@opentelemetry/api": 1.9.0 + "@opentelemetry/api-logs": 0.51.1 + "@opentelemetry/core": 1.24.1(@opentelemetry/api@1.9.0) + "@opentelemetry/resources": 1.24.1(@opentelemetry/api@1.9.0) + + "@opentelemetry/sdk-metrics@1.24.1(@opentelemetry/api@1.9.0)": + dependencies: + "@opentelemetry/api": 1.9.0 + "@opentelemetry/core": 1.24.1(@opentelemetry/api@1.9.0) + "@opentelemetry/resources": 1.24.1(@opentelemetry/api@1.9.0) + lodash.merge: 4.6.2 + + "@opentelemetry/sdk-trace-base@1.24.1(@opentelemetry/api@1.9.0)": + dependencies: + "@opentelemetry/api": 1.9.0 + "@opentelemetry/core": 1.24.1(@opentelemetry/api@1.9.0) + "@opentelemetry/resources": 1.24.1(@opentelemetry/api@1.9.0) + "@opentelemetry/semantic-conventions": 1.24.1 + + "@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0)": + dependencies: + "@opentelemetry/api": 1.9.0 + "@opentelemetry/core": 1.26.0(@opentelemetry/api@1.9.0) + "@opentelemetry/resources": 1.26.0(@opentelemetry/api@1.9.0) + "@opentelemetry/semantic-conventions": 1.27.0 + + "@opentelemetry/sdk-trace-node@1.26.0(@opentelemetry/api@1.9.0)": + dependencies: + "@opentelemetry/api": 1.9.0 + "@opentelemetry/context-async-hooks": 1.26.0(@opentelemetry/api@1.9.0) + "@opentelemetry/core": 1.26.0(@opentelemetry/api@1.9.0) + "@opentelemetry/propagator-b3": 1.26.0(@opentelemetry/api@1.9.0) + "@opentelemetry/propagator-jaeger": 1.26.0(@opentelemetry/api@1.9.0) + "@opentelemetry/sdk-trace-base": 1.26.0(@opentelemetry/api@1.9.0) + semver: 7.6.3 + + "@opentelemetry/semantic-conventions@1.24.1": {} + + "@opentelemetry/semantic-conventions@1.27.0": {} + + "@pkgjs/parseargs@0.11.0": + optional: true + + "@protobufjs/aspromise@1.1.2": {} + + "@protobufjs/base64@1.1.2": {} + + "@protobufjs/codegen@2.0.4": {} + + "@protobufjs/eventemitter@1.1.0": {} + + "@protobufjs/fetch@1.1.0": + dependencies: + "@protobufjs/aspromise": 1.1.2 + "@protobufjs/inquire": 1.1.0 + + "@protobufjs/float@1.0.2": {} + + "@protobufjs/inquire@1.1.0": {} + + "@protobufjs/path@1.1.2": {} + + "@protobufjs/pool@1.1.0": {} + + "@protobufjs/utf8@1.1.0": {} + + "@rtsao/scc@1.1.0": {} + + "@rushstack/eslint-patch@1.10.4": {} + + "@swc/helpers@0.5.2": + dependencies: + tslib: 2.7.0 + + "@types/acorn@4.0.6": + dependencies: + "@types/estree": 1.0.6 + + "@types/debug@4.1.12": + dependencies: + "@types/ms": 0.7.34 + + "@types/estree-jsx@1.0.5": + dependencies: + "@types/estree": 1.0.6 + + "@types/estree@1.0.6": {} + + "@types/hast@3.0.4": + dependencies: + "@types/unist": 3.0.3 + + "@types/json5@0.0.29": {} + + "@types/mdast@4.0.4": + dependencies: + "@types/unist": 3.0.3 + + "@types/mdx@2.0.13": {} + + "@types/ms@0.7.34": {} + + "@types/node@20.11.17": + dependencies: + undici-types: 5.26.5 + + "@types/prop-types@15.7.13": {} + + "@types/react-dom@18.2.7": + dependencies: + "@types/react": 18.2.15 + + "@types/react@18.2.15": + dependencies: + "@types/prop-types": 15.7.13 + "@types/scheduler": 0.23.0 + csstype: 3.1.3 + + "@types/resolve@1.20.6": {} + + "@types/scheduler@0.23.0": {} + + "@types/unist@2.0.11": {} + + "@types/unist@3.0.3": {} + + "@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.3.3)": + dependencies: + "@typescript-eslint/scope-manager": 6.21.0 + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/typescript-estree": 6.21.0(typescript@5.3.3) + "@typescript-eslint/visitor-keys": 6.21.0 + debug: 4.3.7 + eslint: 8.45.0 + optionalDependencies: + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + + "@typescript-eslint/scope-manager@6.21.0": + dependencies: + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/visitor-keys": 6.21.0 + + "@typescript-eslint/types@6.21.0": {} + + "@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3)": + dependencies: + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/visitor-keys": 6.21.0 + debug: 4.3.7 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.3.3) + optionalDependencies: + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + + "@typescript-eslint/visitor-keys@6.21.0": + dependencies: + "@typescript-eslint/types": 6.21.0 + eslint-visitor-keys: 3.4.3 + + "@ungap/structured-clone@1.2.0": {} + + acorn-jsx@5.3.2(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + + acorn@8.12.1: {} + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-escapes@7.0.0: + dependencies: + environment: 1.1.0 + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@5.0.2: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + aria-query@5.1.3: + dependencies: + deep-equal: 2.2.3 + + array-buffer-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + is-array-buffer: 3.0.4 + + array-includes@3.1.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + is-string: 1.0.7 + + array-timsort@1.0.3: {} + + array-union@2.1.0: {} + + array.prototype.findlast@1.2.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + + array.prototype.findlastindex@1.2.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + + array.prototype.flat@1.3.2: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 + + array.prototype.flatmap@1.3.2: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 + + array.prototype.tosorted@1.1.4: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 + + arraybuffer.prototype.slice@1.0.3: + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 + + ast-types-flow@0.0.8: {} + + astring@1.9.0: {} + + autoprefixer@10.4.14(postcss@8.4.26): + dependencies: + browserslist: 4.24.0 + caniuse-lite: 1.0.30001664 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.0 + postcss: 8.4.26 + postcss-value-parser: 4.2.0 + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 + + axe-core@4.10.0: {} + + axobject-query@4.1.0: {} + + bail@2.0.2: {} + + balanced-match@1.0.2: {} + + binary-extensions@2.3.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.24.0: + dependencies: + caniuse-lite: 1.0.30001664 + electron-to-chromium: 1.5.29 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.24.0) + + buffer-crc32@0.2.13: {} + + buffer-from@1.1.2: {} + + busboy@1.6.0: + dependencies: + streamsearch: 1.1.0 + + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + callsites@3.1.0: {} + + camel-case@4.1.2: + dependencies: + pascal-case: 3.1.2 + tslib: 2.7.0 + + camelcase-css@2.0.1: {} + + caniuse-lite@1.0.30001664: {} + + ccount@2.0.1: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.3.0: {} + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + character-reference-invalid@2.0.1: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chownr@2.0.0: {} + + cli-cursor@5.0.0: + dependencies: + restore-cursor: 5.1.0 + + cli-truncate@4.0.0: + dependencies: + slice-ansi: 5.0.0 + string-width: 7.2.0 + + client-only@0.0.1: {} + + clipanion@3.2.1(typanion@3.14.0): + dependencies: + typanion: 3.14.0 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + collapse-white-space@2.1.0: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + colorette@2.0.20: {} + + comma-separated-tokens@2.0.3: {} + + command-exists-promise@2.0.2: {} + + commander@12.1.0: {} + + commander@4.1.1: {} + + comment-json@4.2.5: + dependencies: + array-timsort: 1.0.3 + core-util-is: 1.0.3 + esprima: 4.0.1 + has-own-prop: 2.0.0 + repeat-string: 1.6.1 + + concat-map@0.0.1: {} + + concurrently@8.2.2: + dependencies: + chalk: 4.1.2 + date-fns: 2.30.0 + lodash: 4.17.21 + rxjs: 7.8.1 + shell-quote: 1.8.1 + spawn-command: 0.0.2 + supports-color: 8.1.1 + tree-kill: 1.2.2 + yargs: 17.7.2 + + contentlayer2@0.4.6(esbuild@0.20.2): + dependencies: + "@contentlayer2/cli": 0.4.3(esbuild@0.20.2) + "@contentlayer2/client": 0.4.3(esbuild@0.20.2) + "@contentlayer2/core": 0.4.3(esbuild@0.20.2) + "@contentlayer2/source-files": 0.4.3(esbuild@0.20.2) + "@contentlayer2/source-remote-files": 0.4.3(esbuild@0.20.2) + "@contentlayer2/utils": 0.4.3 + transitivePeerDependencies: + - "@effect-ts/otel-node" + - esbuild + - markdown-wasm + - supports-color + + core-util-is@1.0.3: {} + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + cssesc@3.0.0: {} + + csstype@3.1.3: {} + + damerau-levenshtein@1.0.8: {} + + data-view-buffer@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-offset@1.0.0: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + date-fns@2.30.0: + dependencies: + "@babel/runtime": 7.25.6 + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.3.7: + dependencies: + ms: 2.1.3 + + decode-named-character-reference@1.0.2: + dependencies: + character-entities: 2.0.2 + + deep-equal@2.2.3: + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.4 + is-arguments: 1.1.1 + is-array-buffer: 3.0.4 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + isarray: 2.0.5 + object-is: 1.1.6 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + side-channel: 1.0.6 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 + + deep-is@0.1.4: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + dequal@2.0.3: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + didyoumean@1.2.2: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dlv@1.1.3: {} + + doctrine@2.1.0: + dependencies: + esutils: 2.0.3 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + eastasianwidth@0.2.0: {} + + electron-to-chromium@1.5.29: {} + + emoji-regex@10.4.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + enhanced-resolve@5.17.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + environment@1.1.0: {} + + es-abstract@1.23.3: + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.2 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 + + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + es-get-iterator@1.1.3: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.3 + is-set: 2.0.3 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + + es-iterator-helpers@1.0.19: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + iterator.prototype: 1.1.2 + safe-array-concat: 1.1.2 + + es-object-atoms@1.0.0: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.0.3: + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-shim-unscopables@1.0.2: + dependencies: + hasown: 2.0.2 + + es-to-primitive@1.2.1: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + + esbuild@0.20.2: + optionalDependencies: + "@esbuild/aix-ppc64": 0.20.2 + "@esbuild/android-arm": 0.20.2 + "@esbuild/android-arm64": 0.20.2 + "@esbuild/android-x64": 0.20.2 + "@esbuild/darwin-arm64": 0.20.2 + "@esbuild/darwin-x64": 0.20.2 + "@esbuild/freebsd-arm64": 0.20.2 + "@esbuild/freebsd-x64": 0.20.2 + "@esbuild/linux-arm": 0.20.2 + "@esbuild/linux-arm64": 0.20.2 + "@esbuild/linux-ia32": 0.20.2 + "@esbuild/linux-loong64": 0.20.2 + "@esbuild/linux-mips64el": 0.20.2 + "@esbuild/linux-ppc64": 0.20.2 + "@esbuild/linux-riscv64": 0.20.2 + "@esbuild/linux-s390x": 0.20.2 + "@esbuild/linux-x64": 0.20.2 + "@esbuild/netbsd-x64": 0.20.2 + "@esbuild/openbsd-x64": 0.20.2 + "@esbuild/sunos-x64": 0.20.2 + "@esbuild/win32-arm64": 0.20.2 + "@esbuild/win32-ia32": 0.20.2 + "@esbuild/win32-x64": 0.20.2 + + escalade@3.2.0: {} + + escape-string-regexp@4.0.0: {} + + escape-string-regexp@5.0.0: {} + + eslint-config-next@14.1.0(eslint@8.45.0)(typescript@5.3.3): + dependencies: + "@next/eslint-plugin-next": 14.1.0 + "@rushstack/eslint-patch": 1.10.4 + "@typescript-eslint/parser": 6.21.0(eslint@8.45.0)(typescript@5.3.3) + eslint: 8.45.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(eslint@8.45.0))(eslint@8.45.0) + eslint-plugin-import: 2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(eslint@8.45.0))(eslint@8.45.0))(eslint@8.45.0) + eslint-plugin-jsx-a11y: 6.10.0(eslint@8.45.0) + eslint-plugin-react: 7.36.1(eslint@8.45.0) + eslint-plugin-react-hooks: 4.6.2(eslint@8.45.0) + optionalDependencies: + typescript: 5.3.3 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.15.1 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(eslint@8.45.0))(eslint@8.45.0): + dependencies: + "@nolyfill/is-core-module": 1.0.39 + debug: 4.3.7 + enhanced-resolve: 5.17.1 + eslint: 8.45.0 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(eslint@8.45.0))(eslint@8.45.0))(eslint@8.45.0) + fast-glob: 3.3.2 + get-tsconfig: 4.8.1 + is-bun-module: 1.2.1 + is-glob: 4.0.3 + optionalDependencies: + eslint-plugin-import: 2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(eslint@8.45.0))(eslint@8.45.0))(eslint@8.45.0) + transitivePeerDependencies: + - "@typescript-eslint/parser" + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + + eslint-module-utils@2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(eslint@8.45.0))(eslint@8.45.0))(eslint@8.45.0): + dependencies: + debug: 3.2.7 + optionalDependencies: + "@typescript-eslint/parser": 6.21.0(eslint@8.45.0)(typescript@5.3.3) + eslint: 8.45.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(eslint@8.45.0))(eslint@8.45.0) + transitivePeerDependencies: + - supports-color + + eslint-plugin-import@2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(eslint@8.45.0))(eslint@8.45.0))(eslint@8.45.0): + dependencies: + "@rtsao/scc": 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.45.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.45.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(eslint@8.45.0))(eslint@8.45.0))(eslint@8.45.0) + hasown: 2.0.2 + is-core-module: 2.15.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.0 + semver: 6.3.1 + tsconfig-paths: 3.15.0 + optionalDependencies: + "@typescript-eslint/parser": 6.21.0(eslint@8.45.0)(typescript@5.3.3) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-jsx-a11y@6.10.0(eslint@8.45.0): + dependencies: + aria-query: 5.1.3 + array-includes: 3.1.8 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.8 + axe-core: 4.10.0 + axobject-query: 4.1.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + es-iterator-helpers: 1.0.19 + eslint: 8.45.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + safe-regex-test: 1.0.3 + string.prototype.includes: 2.0.0 + + eslint-plugin-react-hooks@4.6.2(eslint@8.45.0): + dependencies: + eslint: 8.45.0 + + eslint-plugin-react@7.36.1(eslint@8.45.0): + dependencies: + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.19 + eslint: 8.45.0 + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.values: 1.2.0 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.11 + string.prototype.repeat: 1.0.0 + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint@8.45.0: + dependencies: + "@eslint-community/eslint-utils": 4.4.0(eslint@8.45.0) + "@eslint-community/regexpp": 4.11.1 + "@eslint/eslintrc": 2.1.4 + "@eslint/js": 8.44.0 + "@humanwhocodes/config-array": 0.11.14 + "@humanwhocodes/module-importer": 1.0.1 + "@nodelib/fs.walk": 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.7 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + espree@9.6.1: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 3.4.3 + + esprima@4.0.1: {} + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-util-attach-comments@3.0.0: + dependencies: + "@types/estree": 1.0.6 + + estree-util-build-jsx@3.0.1: + dependencies: + "@types/estree-jsx": 1.0.5 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-walker: 3.0.3 + + estree-util-is-identifier-name@3.0.0: {} + + estree-util-to-js@2.0.0: + dependencies: + "@types/estree-jsx": 1.0.5 + astring: 1.9.0 + source-map: 0.7.4 + + estree-util-value-to-estree@3.1.2: + dependencies: + "@types/estree": 1.0.6 + + estree-util-visit@2.0.0: + dependencies: + "@types/estree-jsx": 1.0.5 + "@types/unist": 3.0.3 + + estree-walker@3.0.3: + dependencies: + "@types/estree": 1.0.6 + + esutils@2.0.3: {} + + eventemitter3@5.0.1: {} + + execa@8.0.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + + extend@3.0.2: {} + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.2: + dependencies: + "@nodelib/fs.stat": 2.0.5 + "@nodelib/fs.walk": 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + fault@2.0.1: + dependencies: + format: 0.2.2 + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@3.2.0: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + rimraf: 3.0.2 + + flatted@3.3.1: {} + + for-each@0.3.3: + dependencies: + is-callable: 1.2.7 + + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + format@0.2.2: {} + + fraction.js@4.3.7: {} + + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + function.prototype.name@1.1.6: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + functions-have-names: 1.2.3 + + functions-have-names@1.2.3: {} + + get-caller-file@2.0.5: {} + + get-east-asian-width@1.2.0: {} + + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + + get-stream@8.0.1: {} + + get-symbol-description@1.0.2: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + + get-tsconfig@4.8.1: + dependencies: + resolve-pkg-maps: 1.0.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.3.10: + dependencies: + foreground-child: 3.3.0 + jackspeak: 2.3.6 + minimatch: 9.0.5 + minipass: 7.1.2 + path-scurry: 1.11.1 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.0.1 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + gray-matter@4.0.3: + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + + has-bigints@1.0.2: {} + + has-flag@4.0.0: {} + + has-own-prop@2.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + + has-proto@1.0.3: {} + + has-symbols@1.0.3: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.0.3 + + hash-wasm@4.11.0: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hast-util-to-estree@3.1.0: + dependencies: + "@types/estree": 1.0.6 + "@types/estree-jsx": 1.0.5 + "@types/hast": 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-attach-comments: 3.0.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.1.3 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + style-to-object: 0.4.4 + unist-util-position: 5.0.0 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + + hast-util-to-html@9.0.3: + dependencies: + "@types/hast": 3.0.4 + "@types/unist": 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-to-jsx-runtime@2.3.0: + dependencies: + "@types/estree": 1.0.6 + "@types/hast": 3.0.4 + "@types/unist": 3.0.3 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.1.3 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + style-to-object: 1.0.8 + unist-util-position: 5.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + + hast-util-whitespace@3.0.0: + dependencies: + "@types/hast": 3.0.4 + + html-void-elements@3.0.0: {} + + human-signals@5.0.0: {} + + husky@9.1.6: {} + + hyperdyperid@1.2.0: {} + + ignore@5.3.2: {} + + imagescript@1.3.0: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + inflection@3.0.0: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + inline-style-parser@0.1.1: {} + + inline-style-parser@0.2.4: {} + + internal-slot@1.0.7: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.6 + + interpret@1.4.0: {} + + is-alphabetical@2.0.1: {} + + is-alphanumerical@2.0.1: + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + + is-arguments@1.1.1: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-array-buffer@3.0.4: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + + is-async-function@2.0.0: + dependencies: + has-tostringtag: 1.0.2 + + is-bigint@1.0.4: + dependencies: + has-bigints: 1.0.2 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-boolean-object@1.1.2: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-bun-module@1.2.1: + dependencies: + semver: 7.6.3 + + is-callable@1.2.7: {} + + is-core-module@2.15.1: + dependencies: + hasown: 2.0.2 + + is-data-view@1.0.1: + dependencies: + is-typed-array: 1.1.13 + + is-date-object@1.0.5: + dependencies: + has-tostringtag: 1.0.2 + + is-decimal@2.0.1: {} + + is-extendable@0.1.1: {} + + is-extglob@2.1.1: {} + + is-finalizationregistry@1.0.2: + dependencies: + call-bind: 1.0.7 + + is-fullwidth-code-point@3.0.0: {} + + is-fullwidth-code-point@4.0.0: {} + + is-fullwidth-code-point@5.0.0: + dependencies: + get-east-asian-width: 1.2.0 + + is-generator-function@1.0.10: + dependencies: + has-tostringtag: 1.0.2 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-hexadecimal@2.0.1: {} + + is-map@2.0.3: {} + + is-negative-zero@2.0.3: {} + + is-number-object@1.0.7: + dependencies: + has-tostringtag: 1.0.2 + + is-number@7.0.0: {} + + is-path-inside@3.0.3: {} + + is-plain-obj@4.1.0: {} + + is-reference@3.0.2: + dependencies: + "@types/estree": 1.0.6 + + is-regex@1.1.4: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.3: + dependencies: + call-bind: 1.0.7 + + is-stream@3.0.0: {} + + is-string@1.0.7: + dependencies: + has-tostringtag: 1.0.2 + + is-symbol@1.0.4: + dependencies: + has-symbols: 1.0.3 + + is-typed-array@1.1.13: + dependencies: + which-typed-array: 1.1.15 + + is-weakmap@2.0.2: {} + + is-weakref@1.0.2: + dependencies: + call-bind: 1.0.7 + + is-weakset@2.0.3: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + + isarray@2.0.5: {} + + isexe@2.0.0: {} + + iterator.prototype@1.1.2: + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.6 + set-function-name: 2.0.2 + + jackspeak@2.3.6: + dependencies: + "@isaacs/cliui": 8.0.2 + optionalDependencies: + "@pkgjs/parseargs": 0.11.0 + + jackspeak@3.4.3: + dependencies: + "@isaacs/cliui": 8.0.2 + optionalDependencies: + "@pkgjs/parseargs": 0.11.0 + + jiti@1.21.6: {} + + js-tokens@4.0.0: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsbi@4.3.0: {} + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + + jsx-ast-utils@3.3.5: + dependencies: + array-includes: 3.1.8 + array.prototype.flat: 1.3.2 + object.assign: 4.1.5 + object.values: 1.2.0 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kind-of@6.0.3: {} + + language-subtag-registry@0.3.23: {} + + language-tags@1.0.9: + dependencies: + language-subtag-registry: 0.3.23 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lilconfig@2.1.0: {} + + lilconfig@3.1.2: {} + + lines-and-columns@1.2.4: {} + + lint-staged@15.2.10: + dependencies: + chalk: 5.3.0 + commander: 12.1.0 + debug: 4.3.7 + execa: 8.0.1 + lilconfig: 3.1.2 + listr2: 8.2.4 + micromatch: 4.0.8 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.5.1 + transitivePeerDependencies: + - supports-color + + listr2@8.2.4: + dependencies: + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.1.0 + rfdc: 1.4.1 + wrap-ansi: 9.0.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.camelcase@4.3.0: {} + + lodash.merge@4.6.2: {} + + lodash@4.17.21: {} + + log-update@6.1.0: + dependencies: + ansi-escapes: 7.0.0 + cli-cursor: 5.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 + + long@5.2.3: {} + + longest-streak@3.1.0: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + lower-case@2.0.2: + dependencies: + tslib: 2.7.0 + + lru-cache@10.4.3: {} + + markdown-extensions@2.0.0: {} + + mdast-util-from-markdown@2.0.1: + dependencies: + "@types/mdast": 4.0.4 + "@types/unist": 3.0.3 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-string: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-frontmatter@2.0.1: + dependencies: + "@types/mdast": 4.0.4 + devlop: 1.1.0 + escape-string-regexp: 5.0.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + micromark-extension-frontmatter: 2.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-expression@2.0.1: + dependencies: + "@types/estree-jsx": 1.0.5 + "@types/hast": 3.0.4 + "@types/mdast": 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-jsx@3.1.3: + dependencies: + "@types/estree-jsx": 1.0.5 + "@types/hast": 3.0.4 + "@types/mdast": 4.0.4 + "@types/unist": 3.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + parse-entities: 4.0.1 + stringify-entities: 4.0.4 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.1 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.1.3 + mdast-util-mdxjs-esm: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-mdxjs-esm@2.0.1: + dependencies: + "@types/estree-jsx": 1.0.5 + "@types/hast": 3.0.4 + "@types/mdast": 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + "@types/mdast": 4.0.4 + unist-util-is: 6.0.0 + + mdast-util-to-hast@13.2.0: + dependencies: + "@types/hast": 3.0.4 + "@types/mdast": 4.0.4 + "@ungap/structured-clone": 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + + mdast-util-to-markdown@2.1.0: + dependencies: + "@types/mdast": 4.0.4 + "@types/unist": 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-decode-string: 2.0.0 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + "@types/mdast": 4.0.4 + + mdast@3.0.0: {} + + mdx-bundler@10.0.3(esbuild@0.20.2): + dependencies: + "@babel/runtime": 7.25.6 + "@esbuild-plugins/node-resolve": 0.2.2(esbuild@0.20.2) + "@fal-works/esbuild-plugin-global-externals": 2.1.2 + "@mdx-js/esbuild": 3.0.1(esbuild@0.20.2) + esbuild: 0.20.2 + gray-matter: 4.0.3 + remark-frontmatter: 5.0.0 + remark-mdx-frontmatter: 4.0.0 + uuid: 9.0.1 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + memfs@4.12.0: + dependencies: + "@jsonjoy.com/json-pack": 1.1.0(tslib@2.7.0) + "@jsonjoy.com/util": 1.3.0(tslib@2.7.0) + tree-dump: 1.0.2(tslib@2.7.0) + tslib: 2.7.0 + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + micromark-core-commonmark@2.0.1: + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.0 + micromark-factory-label: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-factory-title: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-html-tag-name: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-frontmatter@2.0.0: + dependencies: + fault: 2.0.1 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-mdx-expression@3.0.0: + dependencies: + "@types/estree": 1.0.6 + devlop: 1.1.0 + micromark-factory-mdx-expression: 2.0.2 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-mdx-jsx@3.0.1: + dependencies: + "@types/acorn": 4.0.6 + "@types/estree": 1.0.6 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + micromark-factory-mdx-expression: 2.0.2 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + vfile-message: 4.0.2 + + micromark-extension-mdx-md@2.0.0: + dependencies: + micromark-util-types: 2.0.0 + + micromark-extension-mdxjs-esm@3.0.0: + dependencies: + "@types/estree": 1.0.6 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + + micromark-extension-mdxjs@3.0.0: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + micromark-extension-mdx-expression: 3.0.0 + micromark-extension-mdx-jsx: 3.0.1 + micromark-extension-mdx-md: 2.0.0 + micromark-extension-mdxjs-esm: 3.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-destination@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-label@2.0.0: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-mdx-expression@2.0.2: + dependencies: + "@types/estree": 1.0.6 + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + + micromark-factory-space@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-types: 2.0.0 + + micromark-factory-title@2.0.0: + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-whitespace@2.0.0: + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-character@2.1.0: + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-chunked@2.0.0: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-classify-character@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-combine-extensions@2.0.0: + dependencies: + micromark-util-chunked: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-decode-numeric-character-reference@2.0.1: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-decode-string@2.0.0: + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-symbol: 2.0.0 + + micromark-util-encode@2.0.0: {} + + micromark-util-events-to-acorn@2.0.2: + dependencies: + "@types/acorn": 4.0.6 + "@types/estree": 1.0.6 + "@types/unist": 3.0.3 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + vfile-message: 4.0.2 + + micromark-util-html-tag-name@2.0.0: {} + + micromark-util-normalize-identifier@2.0.0: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-resolve-all@2.0.0: + dependencies: + micromark-util-types: 2.0.0 + + micromark-util-sanitize-uri@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + + micromark-util-subtokenize@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-symbol@2.0.0: {} + + micromark-util-types@2.0.0: {} + + micromark@4.0.0: + dependencies: + "@types/debug": 4.1.12 + debug: 4.3.7 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mimic-fn@4.0.0: {} + + mimic-function@5.0.1: {} + + min-indent@1.0.1: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@9.0.3: + dependencies: + brace-expansion: 2.0.1 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minimist@1.2.8: {} + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@5.0.0: {} + + minipass@7.1.2: {} + + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + + mkdirp@1.0.4: {} + + ms@2.1.3: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.7: {} + + natural-compare@1.4.0: {} + + next-contentlayer2@0.4.6(contentlayer2@0.4.6(esbuild@0.20.2))(esbuild@0.20.2)(next@14.1.0(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + dependencies: + "@contentlayer2/core": 0.4.3(esbuild@0.20.2) + "@contentlayer2/utils": 0.4.3 + contentlayer2: 0.4.6(esbuild@0.20.2) + next: 14.1.0(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - "@effect-ts/otel-node" + - esbuild + - markdown-wasm + - supports-color + + next@14.1.0(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + dependencies: + "@next/env": 14.1.0 + "@swc/helpers": 0.5.2 + busboy: 1.6.0 + caniuse-lite: 1.0.30001664 + graceful-fs: 4.2.11 + postcss: 8.4.31 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + styled-jsx: 5.1.1(react@18.2.0) + optionalDependencies: + "@next/swc-darwin-arm64": 14.1.0 + "@next/swc-darwin-x64": 14.1.0 + "@next/swc-linux-arm64-gnu": 14.1.0 + "@next/swc-linux-arm64-musl": 14.1.0 + "@next/swc-linux-x64-gnu": 14.1.0 + "@next/swc-linux-x64-musl": 14.1.0 + "@next/swc-win32-arm64-msvc": 14.1.0 + "@next/swc-win32-ia32-msvc": 14.1.0 + "@next/swc-win32-x64-msvc": 14.1.0 + "@opentelemetry/api": 1.9.0 + transitivePeerDependencies: + - "@babel/core" + - babel-plugin-macros + + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.7.0 + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-releases@2.0.18: {} + + normalize-path@3.0.0: {} + + normalize-range@0.1.2: {} + + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + + object-assign@4.1.1: {} + + object-hash@3.0.0: {} + + object-inspect@1.13.2: {} + + object-is@1.1.6: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + + object-keys@1.1.1: {} + + object.assign@4.1.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + + object.entries@1.1.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + + object.groupby@1.0.3: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + + object.values@1.2.0: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + + oo-ascii-tree@1.103.1: {} + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + package-json-from-dist@1.0.1: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-entities@4.0.1: + dependencies: + "@types/unist": 2.0.11 + character-entities: 2.0.2 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.0.2 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + + pascal-case@3.1.2: + dependencies: + no-case: 3.0.4 + tslib: 2.7.0 + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-type@4.0.0: {} + + pend@1.2.0: {} + + periscopic@3.1.0: + dependencies: + "@types/estree": 1.0.6 + estree-walker: 3.0.3 + is-reference: 3.0.2 + + picocolors@1.1.0: {} + + picomatch@2.3.1: {} + + pidtree@0.6.0: {} + + pify@2.3.0: {} + + pirates@4.0.6: {} + + possible-typed-array-names@1.0.0: {} + + postcss-import@15.1.0(postcss@8.4.26): + dependencies: + postcss: 8.4.26 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + + postcss-js@4.0.1(postcss@8.4.26): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.26 + + postcss-load-config@4.0.2(postcss@8.4.26): + dependencies: + lilconfig: 3.1.2 + yaml: 2.5.1 + optionalDependencies: + postcss: 8.4.26 + + postcss-nested@6.2.0(postcss@8.4.26): + dependencies: + postcss: 8.4.26 + postcss-selector-parser: 6.1.2 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.4.26: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.1 + + postcss@8.4.31: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prettier@3.3.3: {} + + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + property-information@6.5.0: {} + + protobufjs@7.4.0: + dependencies: + "@protobufjs/aspromise": 1.1.2 + "@protobufjs/base64": 1.1.2 + "@protobufjs/codegen": 2.0.4 + "@protobufjs/eventemitter": 1.1.0 + "@protobufjs/fetch": 1.1.0 + "@protobufjs/float": 1.0.2 + "@protobufjs/inquire": 1.1.0 + "@protobufjs/path": 1.1.2 + "@protobufjs/pool": 1.1.0 + "@protobufjs/utf8": 1.1.0 + "@types/node": 20.11.17 + long: 5.2.3 + + punycode@2.3.1: {} + + queue-microtask@1.2.3: {} + + react-dom@18.2.0(react@18.2.0): + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.2 + + react-is@16.13.1: {} + + react@18.2.0: + dependencies: + loose-envify: 1.4.0 + + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + rechoir@0.6.2: + dependencies: + resolve: 1.22.8 + + reflect.getprototypeof@1.0.6: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + which-builtin-type: 1.1.4 + + regenerator-runtime@0.14.1: {} + + regexp.prototype.flags@1.5.2: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + + rehype-stringify@10.0.0: + dependencies: + "@types/hast": 3.0.4 + hast-util-to-html: 9.0.3 + unified: 11.0.5 + + remark-frontmatter@5.0.0: + dependencies: + "@types/mdast": 4.0.4 + mdast-util-frontmatter: 2.0.1 + micromark-extension-frontmatter: 2.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-mdx-frontmatter@4.0.0: + dependencies: + "@types/mdast": 4.0.4 + estree-util-is-identifier-name: 3.0.0 + estree-util-value-to-estree: 3.1.2 + toml: 3.0.0 + unified: 11.0.5 + yaml: 2.5.1 + + remark-mdx@3.0.1: + dependencies: + mdast-util-mdx: 3.0.0 + micromark-extension-mdxjs: 3.0.0 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + "@types/mdast": 4.0.4 + mdast-util-from-markdown: 2.0.1 + micromark-util-types: 2.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-rehype@11.1.1: + dependencies: + "@types/hast": 3.0.4 + "@types/mdast": 4.0.4 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 + vfile: 6.0.3 + + remark-stringify@11.0.0: + dependencies: + "@types/mdast": 4.0.4 + mdast-util-to-markdown: 2.1.0 + unified: 11.0.5 + + remark@15.0.1: + dependencies: + "@types/mdast": 4.0.4 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + repeat-string@1.6.1: {} + + require-directory@2.1.1: {} + + resolve-from@4.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + resolve@1.22.8: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + resolve@2.0.0-next.5: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + restore-cursor@5.1.0: + dependencies: + onetime: 7.0.0 + signal-exit: 4.1.0 + + reusify@1.0.4: {} + + rfdc@1.4.1: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + rxjs@7.8.1: + dependencies: + tslib: 2.7.0 + + safe-array-concat@1.1.2: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 + + safe-regex-test@1.0.3: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-regex: 1.1.4 + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + section-matter@1.0.0: + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + + semver@6.3.1: {} + + semver@7.6.3: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shell-quote@1.8.1: {} + + shelljs@0.8.5: + dependencies: + glob: 7.2.3 + interpret: 1.4.0 + rechoir: 0.6.2 + + side-channel@1.0.6: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.2 + + signal-exit@4.1.0: {} + + slash@3.0.0: {} + + slice-ansi@5.0.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + + slice-ansi@7.1.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 + + source-map-js@1.2.1: {} + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + source-map@0.7.4: {} + + space-separated-tokens@2.0.2: {} + + spawn-command@0.0.2: {} + + sprintf-js@1.0.3: {} + + stop-iteration-iterator@1.0.0: + dependencies: + internal-slot: 1.0.7 + + streamsearch@1.1.0: {} + + string-argv@0.3.2: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.4.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + + string.prototype.includes@2.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.3 + + string.prototype.matchall@4.0.11: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.2 + set-function-name: 2.0.2 + side-channel: 1.0.6 + + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.3 + + string.prototype.trim@1.2.9: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + + string.prototype.trimend@1.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-bom-string@1.0.0: {} + + strip-bom@3.0.0: {} + + strip-final-newline@3.0.0: {} + + strip-indent@4.0.0: + dependencies: + min-indent: 1.0.1 + + strip-json-comments@3.1.1: {} + + style-to-object@0.4.4: + dependencies: + inline-style-parser: 0.1.1 + + style-to-object@1.0.8: + dependencies: + inline-style-parser: 0.2.4 + + styled-jsx@5.1.1(react@18.2.0): + dependencies: + client-only: 0.0.1 + react: 18.2.0 + + sucrase@3.35.0: + dependencies: + "@jridgewell/gen-mapping": 0.3.5 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + tailwindcss@3.4.1: + dependencies: + "@alloc/quick-lru": 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.6 + lilconfig: 2.1.0 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.0 + postcss: 8.4.26 + postcss-import: 15.1.0(postcss@8.4.26) + postcss-js: 4.0.1(postcss@8.4.26) + postcss-load-config: 4.0.2(postcss@8.4.26) + postcss-nested: 6.2.0(postcss@8.4.26) + postcss-selector-parser: 6.1.2 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + + tapable@2.2.1: {} + + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + + text-table@0.2.0: {} + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + thingies@1.21.0(tslib@2.7.0): + dependencies: + tslib: 2.7.0 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toml@3.0.0: {} + + tr46@0.0.3: {} + + tree-dump@1.0.2(tslib@2.7.0): + dependencies: + tslib: 2.7.0 + + tree-kill@1.2.2: {} + + trim-lines@3.0.1: {} + + trough@2.2.0: {} + + ts-api-utils@1.3.0(typescript@5.3.3): + dependencies: + typescript: 5.3.3 + + ts-interface-checker@0.1.13: {} + + ts-pattern@5.4.0: {} + + tsconfig-paths@3.15.0: + dependencies: + "@types/json5": 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tslib@2.7.0: {} + + typanion@3.14.0: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@0.20.2: {} + + type-fest@4.26.1: {} + + typed-array-buffer@1.0.2: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + + typed-array-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + + typed-array-byte-offset@1.0.2: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + + typed-array-length@1.0.6: + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + + typescript@5.3.3: {} + + unbox-primitive@1.0.2: + dependencies: + call-bind: 1.0.7 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + + undici-types@5.26.5: {} + + unified@11.0.5: + dependencies: + "@types/unist": 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + + unist-util-is@6.0.0: + dependencies: + "@types/unist": 3.0.3 + + unist-util-position-from-estree@2.0.0: + dependencies: + "@types/unist": 3.0.3 + + unist-util-position@5.0.0: + dependencies: + "@types/unist": 3.0.3 + + unist-util-stringify-position@4.0.0: + dependencies: + "@types/unist": 3.0.3 + + unist-util-visit-parents@6.0.1: + dependencies: + "@types/unist": 3.0.3 + unist-util-is: 6.0.0 + + unist-util-visit@5.0.0: + dependencies: + "@types/unist": 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + update-browserslist-db@1.1.0(browserslist@4.24.0): + dependencies: + browserslist: 4.24.0 + escalade: 3.2.0 + picocolors: 1.1.0 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + util-deprecate@1.0.2: {} + + uuid@9.0.1: {} + + vfile-message@4.0.2: + dependencies: + "@types/unist": 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + "@types/unist": 3.0.3 + vfile-message: 4.0.2 + + webidl-conversions@3.0.1: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + which-boxed-primitive@1.0.2: + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + + which-builtin-type@1.1.4: + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.2 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.3 + + which-typed-array@1.1.15: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + wrap-ansi@9.0.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + y18n@5.0.8: {} + + yallist@4.0.0: {} + + yaml@2.5.1: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yauzl@3.1.3: + dependencies: + buffer-crc32: 0.2.13 + pend: 1.2.0 + + yocto-queue@0.1.0: {} + + zod@3.23.8: {} + + zwitch@2.0.4: {} diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 9336a24b3..000000000 --- a/yarn.lock +++ /dev/null @@ -1,4645 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== - -"@alloc/quick-lru@^5.2.0": - version "5.2.0" - resolved "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz" - integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== - -"@babel/runtime@^7.23.2": - version "7.23.9" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz" - integrity sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw== - dependencies: - regenerator-runtime "^0.14.0" - -"@contentlayer2/cli@0.4.3": - version "0.4.3" - resolved "https://registry.npmjs.org/@contentlayer2/cli/-/cli-0.4.3.tgz" - integrity sha512-ZJ+Iiu2rVI50x60XoqnrsO/Q8eqFX5AlP1L0U/3ygaAas3tnOqTzQZ1UsxYQMpJzcLok24ddlhKfQKbCMUJPiQ== - dependencies: - "@contentlayer2/core" "0.4.3" - "@contentlayer2/utils" "0.4.3" - clipanion "^3.2.1" - typanion "^3.12.1" - -"@contentlayer2/client@0.4.3": - version "0.4.3" - resolved "https://registry.npmjs.org/@contentlayer2/client/-/client-0.4.3.tgz" - integrity sha512-Znz6zW0ShVRq3OCQ6SwsfPQ1Wn28dQpiL33r53OjWuiirXhaSdam4MXRjYSFzCq5JK0kY6Hx0CF0fk3oVbsiVQ== - dependencies: - "@contentlayer2/core" "0.4.3" - -"@contentlayer2/core@0.4.3": - version "0.4.3" - resolved "https://registry.npmjs.org/@contentlayer2/core/-/core-0.4.3.tgz" - integrity sha512-jNagCFHLB8u/qfjoAI+JUuz3jf2hxYFYusgfh+oSq9+jHala4bbLEJOhJmmaY1Dmv2AV6BI7W8Jjy6WIu5g5Yg== - dependencies: - "@contentlayer2/utils" "0.4.3" - camel-case "^4.1.2" - comment-json "^4.2.3" - esbuild "0.17.x || 0.18.x || 0.19.x || 0.20.x" - gray-matter "^4.0.3" - mdx-bundler "^10.0.2" - rehype-stringify "^10.0.0" - remark-frontmatter "^5.0.0" - remark-parse "^11.0.0" - remark-rehype "^11.1.0" - source-map-support "^0.5.21" - type-fest "^4.10.0" - unified "^11.0.4" - -"@contentlayer2/source-files@0.4.3": - version "0.4.3" - resolved "https://registry.npmjs.org/@contentlayer2/source-files/-/source-files-0.4.3.tgz" - integrity sha512-NaLkK9iJcjS7xdqbtEJElEXhdEXv47yj4Ju2TCiZU7/8veQQ67QwtTDesyRMSw4mBt5+hxiAcqvf0hKaHh6lxw== - dependencies: - "@contentlayer2/core" "0.4.3" - "@contentlayer2/utils" "0.4.3" - chokidar "^3.5.3" - fast-glob "^3.2.12" - gray-matter "^4.0.3" - imagescript "^1.2.16" - micromatch "^4.0.5" - ts-pattern "^5.0.6" - unified "^11.0.4" - yaml "^2.3.1" - zod "^3.22.4" - -"@contentlayer2/source-remote-files@0.4.3": - version "0.4.3" - resolved "https://registry.npmjs.org/@contentlayer2/source-remote-files/-/source-remote-files-0.4.3.tgz" - integrity sha512-uow1teWiAJA0WNbqqjEz4FfLPQF6BpdhRfF8JHgX7r8jzqChB5zS8bXX9xJDGhn41oEqR/FDDI1Pn7564H8lsA== - dependencies: - "@contentlayer2/core" "0.4.3" - "@contentlayer2/source-files" "0.4.3" - "@contentlayer2/utils" "0.4.3" - -"@contentlayer2/utils@0.4.3": - version "0.4.3" - resolved "https://registry.npmjs.org/@contentlayer2/utils/-/utils-0.4.3.tgz" - integrity sha512-E360wNhvGemU1X+uhIwkzA5v+b8U5Q+Gps50uIDAVW6TWV9boUgAGPspSXXcFAIYG+H4z2eV3jTZjFCwyXGMxg== - dependencies: - "@effect-ts/core" "^0.60.5" - "@effect-ts/otel" "^0.15.1" - "@effect-ts/otel-sdk-trace-node" "^0.15.1" - "@js-temporal/polyfill" "^0.4.4" - "@opentelemetry/api" "^1.8.0" - "@opentelemetry/core" "^1.24.0" - "@opentelemetry/exporter-trace-otlp-grpc" "^0.51.0" - "@opentelemetry/resources" "^1.21.0" - "@opentelemetry/sdk-trace-base" "^1.21.0" - "@opentelemetry/sdk-trace-node" "^1.21.0" - "@opentelemetry/semantic-conventions" "^1.21.0" - chokidar "^3.5.3" - hash-wasm "^4.11.0" - inflection "^3.0.0" - memfs "^4.8.2" - oo-ascii-tree "^1.94.0" - ts-pattern "^5.0.6" - type-fest "^4.10.0" - -"@crowdin/cli@^3.18.0": - version "3.18.0" - resolved "https://registry.npmjs.org/@crowdin/cli/-/cli-3.18.0.tgz" - integrity sha512-W4lvXhnAfGWxFW4L6n6tNIaXxuHO8vzRBQmbOz6OqLA7EgGLvYih0L9zeQpt9KNda66lC/iKqnA52ezTqPAEgg== - dependencies: - command-exists-promise "^2.0.2" - node-fetch "2.6.7" - shelljs "^0.8.4" - tar "^4.4.8" - yauzl "^2.10.0" - -"@effect-ts/core@^0.60.2", "@effect-ts/core@^0.60.5": - version "0.60.5" - resolved "https://registry.npmjs.org/@effect-ts/core/-/core-0.60.5.tgz" - integrity sha512-qi1WrtJA90XLMnj2hnUszW9Sx4dXP03ZJtCc5DiUBIOhF4Vw7plfb65/bdBySPoC9s7zy995TdUX1XBSxUkl5w== - dependencies: - "@effect-ts/system" "^0.57.5" - -"@effect-ts/otel-sdk-trace-node@^0.15.1": - version "0.15.1" - resolved "https://registry.npmjs.org/@effect-ts/otel-sdk-trace-node/-/otel-sdk-trace-node-0.15.1.tgz" - integrity sha512-a2sF0ylmn8xOJs8fNeT/spJ1gUcsksAJCALxo9WOfuTCMtTwMVtVhCKEPEeQoL7wFqU+JgPkVdP91+FJ/Rkeow== - dependencies: - "@effect-ts/otel" "^0.15.1" - -"@effect-ts/otel@^0.15.1": - version "0.15.1" - resolved "https://registry.npmjs.org/@effect-ts/otel/-/otel-0.15.1.tgz" - integrity sha512-AmZJHl7t0+Peh7Yb2+hqn6r9+rd9/UfeA4AMV9h0YGTdOyouyFfD3wzWlxnAUzAQ4Lrod4kC7Noruret4EpqpA== - -"@effect-ts/system@^0.57.5": - version "0.57.5" - resolved "https://registry.npmjs.org/@effect-ts/system/-/system-0.57.5.tgz" - integrity sha512-/crHGujo0xnuHIYNc1VgP0HGJGFSoSqq88JFXe6FmFyXPpWt8Xu39LyLg7rchsxfXFeEdA9CrIZvLV5eswXV5g== - -"@esbuild-plugins/node-resolve@^0.2.2": - version "0.2.2" - resolved "https://registry.npmjs.org/@esbuild-plugins/node-resolve/-/node-resolve-0.2.2.tgz" - integrity sha512-+t5FdX3ATQlb53UFDBRb4nqjYBz492bIrnVWvpQHpzZlu9BQL5HasMZhqc409ygUwOWCXZhrWr6NyZ6T6Y+cxw== - dependencies: - "@types/resolve" "^1.17.1" - debug "^4.3.1" - escape-string-regexp "^4.0.0" - resolve "^1.19.0" - -"@esbuild/linux-x64@0.20.2": - version "0.20.2" - resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz" - integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw== - -"@eslint-community/eslint-utils@^4.2.0": - version "4.4.0" - resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.4.0": - version "4.10.0" - resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz" - integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== - -"@eslint/eslintrc@^2.1.0": - version "2.1.4" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@8.44.0": - version "8.44.0" - resolved "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz" - integrity sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw== - -"@fal-works/esbuild-plugin-global-externals@^2.1.2": - version "2.1.2" - resolved "https://registry.npmjs.org/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz" - integrity sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ== - -"@grpc/grpc-js@^1.7.1": - version "1.9.14" - resolved "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.14.tgz" - integrity sha512-nOpuzZ2G3IuMFN+UPPpKrC6NsLmWsTqSsm66IRfnBt1D4pwTqE27lmbpcPM+l2Ua4gE7PfjRHI6uedAy7hoXUw== - dependencies: - "@grpc/proto-loader" "^0.7.8" - "@types/node" ">=12.12.47" - -"@grpc/proto-loader@^0.7.8": - version "0.7.10" - resolved "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.10.tgz" - integrity sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ== - dependencies: - lodash.camelcase "^4.3.0" - long "^5.0.0" - protobufjs "^7.2.4" - yargs "^17.7.2" - -"@humanwhocodes/config-array@^0.11.10": - version "0.11.14" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz" - integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== - dependencies: - "@humanwhocodes/object-schema" "^2.0.2" - debug "^4.3.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^2.0.2": - version "2.0.2" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz" - integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== - -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@^3.1.0": - version "3.1.1" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== - -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": - version "1.4.15" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== - -"@jridgewell/trace-mapping@^0.3.9": - version "0.3.22" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz" - integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@js-temporal/polyfill@^0.4.4": - version "0.4.4" - resolved "https://registry.npmjs.org/@js-temporal/polyfill/-/polyfill-0.4.4.tgz" - integrity sha512-2X6bvghJ/JAoZO52lbgyAPFj8uCflhTo2g7nkFzEQdXd/D8rEeD4HtmTEpmtGCva260fcd66YNXBOYdnmHqSOg== - dependencies: - jsbi "^4.3.0" - tslib "^2.4.1" - -"@jsonjoy.com/base64@^1.1.1": - version "1.1.2" - resolved "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz" - integrity sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA== - -"@jsonjoy.com/json-pack@^1.0.3": - version "1.0.4" - resolved "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.0.4.tgz" - integrity sha512-aOcSN4MeAtFROysrbqG137b7gaDDSmVrl5mpo6sT/w+kcXpWnzhMjmY/Fh/sDx26NBxyIE7MB1seqLeCAzy9Sg== - dependencies: - "@jsonjoy.com/base64" "^1.1.1" - "@jsonjoy.com/util" "^1.1.2" - hyperdyperid "^1.2.0" - thingies "^1.20.0" - -"@jsonjoy.com/util@^1.1.2": - version "1.2.0" - resolved "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.2.0.tgz" - integrity sha512-4B8B+3vFsY4eo33DMKyJPlQ3sBMpPFUZK2dr3O3rXrOGKKbYG44J0XSFkDo1VOQiri5HFEhIeVvItjR2xcazmg== - -"@mdx-js/esbuild@^3.0.0": - version "3.0.1" - resolved "https://registry.npmjs.org/@mdx-js/esbuild/-/esbuild-3.0.1.tgz" - integrity sha512-+KZbCKcRjFtRD6qzD+c70Vq/VPVt5LHFsOshNcsdcONkaLTCSjmM7/uj71i3BcP+170f+P4DwVEMtqR/k0t5aw== - dependencies: - "@mdx-js/mdx" "^3.0.0" - "@types/unist" "^3.0.0" - vfile "^6.0.0" - vfile-message "^4.0.0" - -"@mdx-js/mdx@^3.0.0": - version "3.0.1" - resolved "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.0.1.tgz" - integrity sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA== - dependencies: - "@types/estree" "^1.0.0" - "@types/estree-jsx" "^1.0.0" - "@types/hast" "^3.0.0" - "@types/mdx" "^2.0.0" - collapse-white-space "^2.0.0" - devlop "^1.0.0" - estree-util-build-jsx "^3.0.0" - estree-util-is-identifier-name "^3.0.0" - estree-util-to-js "^2.0.0" - estree-walker "^3.0.0" - hast-util-to-estree "^3.0.0" - hast-util-to-jsx-runtime "^2.0.0" - markdown-extensions "^2.0.0" - periscopic "^3.0.0" - remark-mdx "^3.0.0" - remark-parse "^11.0.0" - remark-rehype "^11.0.0" - source-map "^0.7.0" - unified "^11.0.0" - unist-util-position-from-estree "^2.0.0" - unist-util-stringify-position "^4.0.0" - unist-util-visit "^5.0.0" - vfile "^6.0.0" - -"@next/env@14.1.0": - version "14.1.0" - resolved "https://registry.npmjs.org/@next/env/-/env-14.1.0.tgz" - integrity sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw== - -"@next/eslint-plugin-next@14.1.0": - version "14.1.0" - resolved "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.1.0.tgz" - integrity sha512-x4FavbNEeXx/baD/zC/SdrvkjSby8nBn8KcCREqk6UuwvwoAPZmaV8TFCAuo/cpovBRTIY67mHhe86MQQm/68Q== - dependencies: - glob "10.3.10" - -"@next/swc-linux-x64-gnu@14.1.0": - version "14.1.0" - resolved "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.1.0.tgz" - integrity sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": - version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@opentelemetry/api-logs@>=0.39.1", "@opentelemetry/api-logs@0.51.1": - version "0.51.1" - resolved "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.51.1.tgz" - integrity sha512-E3skn949Pk1z2XtXu/lxf6QAZpawuTM/IUEXcAzpiUkTd73Hmvw26FiN3cJuTmkpM5hZzHwkomVdtrh/n/zzwA== - dependencies: - "@opentelemetry/api" "^1.0.0" - -"@opentelemetry/api@^1.0.0", "@opentelemetry/api@^1.1.0", "@opentelemetry/api@^1.4.0", "@opentelemetry/api@>=1.0.0 <1.10.0", "@opentelemetry/api@>=1.0.0 <1.9.0", "@opentelemetry/api@>=1.3.0 <1.9.0", "@opentelemetry/api@>=1.4.0 <1.9.0": - version "1.7.0" - resolved "https://registry.npmjs.org/@opentelemetry/api/-/api-1.7.0.tgz" - integrity sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw== - -"@opentelemetry/api@^1.8.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz" - integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg== - -"@opentelemetry/context-async-hooks@1.25.1": - version "1.25.1" - resolved "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.25.1.tgz" - integrity sha512-UW/ge9zjvAEmRWVapOP0qyCvPulWU6cQxGxDbWEFfGOj1VBBZAuOqTo3X6yWmDTD3Xe15ysCZChHncr2xFMIfQ== - -"@opentelemetry/core@^1.13.0", "@opentelemetry/core@^1.24.0", "@opentelemetry/core@1.25.1": - version "1.25.1" - resolved "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz" - integrity sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ== - dependencies: - "@opentelemetry/semantic-conventions" "1.25.1" - -"@opentelemetry/core@1.24.1": - version "1.24.1" - resolved "https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz" - integrity sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg== - dependencies: - "@opentelemetry/semantic-conventions" "1.24.1" - -"@opentelemetry/exporter-trace-otlp-grpc@^0.51.0": - version "0.51.1" - resolved "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.51.1.tgz" - integrity sha512-P9+Hkszih95ITvldGZ+kXvj9HpD1QfS+PwooyHK72GYA+Bgm+yUSAsDkUkDms8+s9HW6poxURv3LcjaMuBBpVQ== - dependencies: - "@grpc/grpc-js" "^1.7.1" - "@opentelemetry/core" "1.24.1" - "@opentelemetry/otlp-grpc-exporter-base" "0.51.1" - "@opentelemetry/otlp-transformer" "0.51.1" - "@opentelemetry/resources" "1.24.1" - "@opentelemetry/sdk-trace-base" "1.24.1" - -"@opentelemetry/otlp-exporter-base@0.51.1": - version "0.51.1" - resolved "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.51.1.tgz" - integrity sha512-UYlnOYyDdzo1Gw559EHCzru0RwhvuXCwoH8jGo9J4gO1TE58GjnEmIjomMsKBCym3qWNJfIQXw+9SZCV0DdQNg== - dependencies: - "@opentelemetry/core" "1.24.1" - -"@opentelemetry/otlp-grpc-exporter-base@0.51.1": - version "0.51.1" - resolved "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.51.1.tgz" - integrity sha512-ZAS+4pq8o7dsugGTwV9s6JMKSxi+guIHdn0acOv0bqj26e9pWDFx5Ky+bI0aY46uR9Y0JyXqY+KAEYM/SO3DFA== - dependencies: - "@grpc/grpc-js" "^1.7.1" - "@opentelemetry/core" "1.24.1" - "@opentelemetry/otlp-exporter-base" "0.51.1" - protobufjs "^7.2.3" - -"@opentelemetry/otlp-transformer@0.51.1": - version "0.51.1" - resolved "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.51.1.tgz" - integrity sha512-OppYOXwV9LQqqtYUCywqoOqX/JT9LQ5/FMuPZ//eTkvuHdUC4ZMwz2c6uSoT2R90GWvvGnF1iEqTGyTT3xAt2Q== - dependencies: - "@opentelemetry/api-logs" "0.51.1" - "@opentelemetry/core" "1.24.1" - "@opentelemetry/resources" "1.24.1" - "@opentelemetry/sdk-logs" "0.51.1" - "@opentelemetry/sdk-metrics" "1.24.1" - "@opentelemetry/sdk-trace-base" "1.24.1" - -"@opentelemetry/propagator-b3@1.25.1": - version "1.25.1" - resolved "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.25.1.tgz" - integrity sha512-p6HFscpjrv7//kE+7L+3Vn00VEDUJB0n6ZrjkTYHrJ58QZ8B3ajSJhRbCcY6guQ3PDjTbxWklyvIN2ojVbIb1A== - dependencies: - "@opentelemetry/core" "1.25.1" - -"@opentelemetry/propagator-jaeger@1.25.1": - version "1.25.1" - resolved "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.25.1.tgz" - integrity sha512-nBprRf0+jlgxks78G/xq72PipVK+4or9Ypntw0gVZYNTCSK8rg5SeaGV19tV920CMqBD/9UIOiFr23Li/Q8tiA== - dependencies: - "@opentelemetry/core" "1.25.1" - -"@opentelemetry/resources@^1.21.0", "@opentelemetry/resources@1.25.1": - version "1.25.1" - resolved "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz" - integrity sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ== - dependencies: - "@opentelemetry/core" "1.25.1" - "@opentelemetry/semantic-conventions" "1.25.1" - -"@opentelemetry/resources@1.24.1": - version "1.24.1" - resolved "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.24.1.tgz" - integrity sha512-cyv0MwAaPF7O86x5hk3NNgenMObeejZFLJJDVuSeSMIsknlsj3oOZzRv3qSzlwYomXsICfBeFFlxwHQte5mGXQ== - dependencies: - "@opentelemetry/core" "1.24.1" - "@opentelemetry/semantic-conventions" "1.24.1" - -"@opentelemetry/sdk-logs@0.51.1": - version "0.51.1" - resolved "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.51.1.tgz" - integrity sha512-ULQQtl82b673PpZc5/0EtH4V+BrwVOgKJZEB7tYZnGTG3I98tQVk89S9/JSixomDr++F4ih+LSJTCqIKBz+MQQ== - dependencies: - "@opentelemetry/core" "1.24.1" - "@opentelemetry/resources" "1.24.1" - -"@opentelemetry/sdk-metrics@1.24.1": - version "1.24.1" - resolved "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.24.1.tgz" - integrity sha512-FrAqCbbGao9iKI+Mgh+OsC9+U2YMoXnlDHe06yH7dvavCKzE3S892dGtX54+WhSFVxHR/TMRVJiK/CV93GR0TQ== - dependencies: - "@opentelemetry/core" "1.24.1" - "@opentelemetry/resources" "1.24.1" - lodash.merge "^4.6.2" - -"@opentelemetry/sdk-trace-base@^1.13.0", "@opentelemetry/sdk-trace-base@^1.21.0", "@opentelemetry/sdk-trace-base@1.25.1": - version "1.25.1" - resolved "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz" - integrity sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw== - dependencies: - "@opentelemetry/core" "1.25.1" - "@opentelemetry/resources" "1.25.1" - "@opentelemetry/semantic-conventions" "1.25.1" - -"@opentelemetry/sdk-trace-base@1.24.1": - version "1.24.1" - resolved "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.24.1.tgz" - integrity sha512-zz+N423IcySgjihl2NfjBf0qw1RWe11XIAWVrTNOSSI6dtSPJiVom2zipFB2AEEtJWpv0Iz6DY6+TjnyTV5pWg== - dependencies: - "@opentelemetry/core" "1.24.1" - "@opentelemetry/resources" "1.24.1" - "@opentelemetry/semantic-conventions" "1.24.1" - -"@opentelemetry/sdk-trace-node@^1.13.0", "@opentelemetry/sdk-trace-node@^1.21.0": - version "1.25.1" - resolved "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.25.1.tgz" - integrity sha512-nMcjFIKxnFqoez4gUmihdBrbpsEnAX/Xj16sGvZm+guceYE0NE00vLhpDVK6f3q8Q4VFI5xG8JjlXKMB/SkTTQ== - dependencies: - "@opentelemetry/context-async-hooks" "1.25.1" - "@opentelemetry/core" "1.25.1" - "@opentelemetry/propagator-b3" "1.25.1" - "@opentelemetry/propagator-jaeger" "1.25.1" - "@opentelemetry/sdk-trace-base" "1.25.1" - semver "^7.5.2" - -"@opentelemetry/semantic-conventions@^1.21.0", "@opentelemetry/semantic-conventions@1.25.1": - version "1.25.1" - resolved "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz" - integrity sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ== - -"@opentelemetry/semantic-conventions@1.24.1": - version "1.24.1" - resolved "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz" - integrity sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw== - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - -"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz" - integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== - -"@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz" - integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== - -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz" - integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== - -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz" - integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== - -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz" - integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - -"@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz" - integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== - -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz" - integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== - -"@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz" - integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== - -"@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz" - integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== - -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz" - integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== - -"@rushstack/eslint-patch@^1.3.3": - version "1.7.2" - resolved "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.7.2.tgz" - integrity sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA== - -"@swc/helpers@0.5.2": - version "0.5.2" - resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz" - integrity sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw== - dependencies: - tslib "^2.4.0" - -"@types/acorn@^4.0.0": - version "4.0.6" - resolved "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz" - integrity sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ== - dependencies: - "@types/estree" "*" - -"@types/debug@^4.0.0": - version "4.1.12" - resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz" - integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== - dependencies: - "@types/ms" "*" - -"@types/estree-jsx@^1.0.0": - version "1.0.3" - resolved "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.3.tgz" - integrity sha512-pvQ+TKeRHeiUGRhvYwRrQ/ISnohKkSJR14fT2yqyZ4e9K5vqc7hrtY2Y1Dw0ZwAzQ6DQsxsaCUuSIIi8v0Cq6w== - dependencies: - "@types/estree" "*" - -"@types/estree@*", "@types/estree@^1.0.0": - version "1.0.5" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz" - integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== - -"@types/hast@^3.0.0": - version "3.0.4" - resolved "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz" - integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== - dependencies: - "@types/unist" "*" - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== - -"@types/mdast@^4.0.0": - version "4.0.4" - resolved "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz" - integrity sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA== - dependencies: - "@types/unist" "*" - -"@types/mdx@^2.0.0": - version "2.0.10" - resolved "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.10.tgz" - integrity sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg== - -"@types/ms@*": - version "0.7.34" - resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz" - integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== - -"@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@20.11.17": - version "20.11.17" - resolved "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz" - integrity sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw== - dependencies: - undici-types "~5.26.4" - -"@types/prop-types@*": - version "15.7.11" - resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz" - integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng== - -"@types/react-dom@18.2.7": - version "18.2.7" - resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.7.tgz" - integrity sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA== - dependencies: - "@types/react" "*" - -"@types/react@*", "@types/react@18.2.15": - version "18.2.15" - resolved "https://registry.npmjs.org/@types/react/-/react-18.2.15.tgz" - integrity sha512-oEjE7TQt1fFTFSbf8kkNuc798ahTUzn3Le67/PWjE8MAfYAD/qB7O8hSTcromLFqHCt9bcdOg5GXMokzTjJ5SA== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@types/resolve@^1.17.1": - version "1.20.6" - resolved "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.6.tgz" - integrity sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ== - -"@types/scheduler@*": - version "0.16.8" - resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz" - integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== - -"@types/unist@*", "@types/unist@^3.0.0": - version "3.0.2" - resolved "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz" - integrity sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ== - -"@types/unist@^2.0.0": - version "2.0.10" - resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz" - integrity sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA== - -"@typescript-eslint/parser@^5.4.2 || ^6.0.0": - version "6.19.1" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.19.1.tgz" - integrity sha512-WEfX22ziAh6pRE9jnbkkLGp/4RhTpffr2ZK5bJ18M8mIfA8A+k97U9ZyaXCEJRlmMHh7R9MJZWXp/r73DzINVQ== - dependencies: - "@typescript-eslint/scope-manager" "6.19.1" - "@typescript-eslint/types" "6.19.1" - "@typescript-eslint/typescript-estree" "6.19.1" - "@typescript-eslint/visitor-keys" "6.19.1" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@6.19.1": - version "6.19.1" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.19.1.tgz" - integrity sha512-4CdXYjKf6/6aKNMSly/BP4iCSOpvMmqtDzRtqFyyAae3z5kkqEjKndR5vDHL8rSuMIIWP8u4Mw4VxLyxZW6D5w== - dependencies: - "@typescript-eslint/types" "6.19.1" - "@typescript-eslint/visitor-keys" "6.19.1" - -"@typescript-eslint/types@6.19.1": - version "6.19.1" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.1.tgz" - integrity sha512-6+bk6FEtBhvfYvpHsDgAL3uo4BfvnTnoge5LrrCj2eJN8g3IJdLTD4B/jK3Q6vo4Ql/Hoip9I8aB6fF+6RfDqg== - -"@typescript-eslint/typescript-estree@6.19.1": - version "6.19.1" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.1.tgz" - integrity sha512-aFdAxuhzBFRWhy+H20nYu19+Km+gFfwNO4TEqyszkMcgBDYQjmPJ61erHxuT2ESJXhlhrO7I5EFIlZ+qGR8oVA== - dependencies: - "@typescript-eslint/types" "6.19.1" - "@typescript-eslint/visitor-keys" "6.19.1" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - minimatch "9.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/visitor-keys@6.19.1": - version "6.19.1" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.1.tgz" - integrity sha512-gkdtIO+xSO/SmI0W68DBg4u1KElmIUo3vXzgHyGPs6cxgB0sa3TlptRAAE0hUY1hM6FcDKEv7aIwiTGm76cXfQ== - dependencies: - "@typescript-eslint/types" "6.19.1" - eslint-visitor-keys "^3.4.1" - -"@ungap/structured-clone@^1.0.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== - -acorn-jsx@^5.0.0, acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.0.0, acorn@^8.9.0: - version "8.11.3" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== - -ajv@^6.10.0, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - -any-promise@^1.0.0: - version "1.3.0" - resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" - integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -arg@^5.0.2: - version "5.0.2" - resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz" - integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -aria-query@^5.3.0: - version "5.3.0" - resolved "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz" - integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== - dependencies: - dequal "^2.0.3" - -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== - dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" - -array-includes@^3.1.6, array-includes@^3.1.7: - version "3.1.7" - resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz" - integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-string "^1.0.7" - -array-timsort@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz" - integrity sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array.prototype.findlastindex@^1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz" - integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" - -array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: - version "1.3.2" - resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz" - integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.3.1, array.prototype.flatmap@^1.3.2: - version "1.3.2" - resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz" - integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - -array.prototype.tosorted@^1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz" - integrity sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" - -arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== - dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" - is-shared-array-buffer "^1.0.2" - -ast-types-flow@^0.0.8: - version "0.0.8" - resolved "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz" - integrity sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ== - -astring@^1.8.0: - version "1.8.6" - resolved "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz" - integrity sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg== - -asynciterator.prototype@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz" - integrity sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg== - dependencies: - has-symbols "^1.0.3" - -autoprefixer@10.4.14: - version "10.4.14" - resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz" - integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== - dependencies: - browserslist "^4.21.5" - caniuse-lite "^1.0.30001464" - fraction.js "^4.2.0" - normalize-range "^0.1.2" - picocolors "^1.0.0" - postcss-value-parser "^4.2.0" - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -axe-core@=4.7.0: - version "4.7.0" - resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz" - integrity sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ== - -axobject-query@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz" - integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== - dependencies: - dequal "^2.0.3" - -bail@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz" - integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browserslist@^4.21.5, "browserslist@>= 4.21.0": - version "4.22.3" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz" - integrity sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A== - dependencies: - caniuse-lite "^1.0.30001580" - electron-to-chromium "^1.4.648" - node-releases "^2.0.14" - update-browserslist-db "^1.0.13" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" - integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -busboy@1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz" - integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== - dependencies: - streamsearch "^1.1.0" - -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== - dependencies: - function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camel-case@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz" - integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== - dependencies: - pascal-case "^3.1.2" - tslib "^2.0.3" - -camelcase-css@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz" - integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== - -caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001580: - version "1.0.30001580" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001580.tgz" - integrity sha512-mtj5ur2FFPZcCEpXFy8ADXbDACuNFXg6mxVDqp7tqooX6l3zwm+d8EPoeOSIFRDvHs8qu7/SLFOGniULkcH2iA== - -ccount@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz" - integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== - -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -character-entities-html4@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz" - integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== - -character-entities-legacy@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz" - integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== - -character-entities@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz" - integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== - -character-reference-invalid@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz" - integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== - -chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chownr@^1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -client-only@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz" - integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== - -clipanion@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/clipanion/-/clipanion-3.2.1.tgz" - integrity sha512-dYFdjLb7y1ajfxQopN05mylEpK9ZX0sO1/RfMXdfmwjlIsPkbh4p7A682x++zFPLDCo1x3p82dtljHf5cW2LKA== - dependencies: - typanion "^3.8.0" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -collapse-white-space@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz" - integrity sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw== - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -comma-separated-tokens@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz" - integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== - -command-exists-promise@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/command-exists-promise/-/command-exists-promise-2.0.2.tgz" - integrity sha512-T6PB6vdFrwnHXg/I0kivM3DqaCGZLjjYSOe0a5WgFKcz1sOnmOeIjnhQPXVXX3QjVbLyTJ85lJkX6lUpukTzaA== - -commander@^4.0.0: - version "4.1.1" - resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - -comment-json@^4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz" - integrity sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw== - dependencies: - array-timsort "^1.0.3" - core-util-is "^1.0.3" - esprima "^4.0.1" - has-own-prop "^2.0.0" - repeat-string "^1.6.1" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -contentlayer2@^0.4.6, contentlayer2@0.4.6: - version "0.4.6" - resolved "https://registry.npmjs.org/contentlayer2/-/contentlayer2-0.4.6.tgz" - integrity sha512-EhdabpVsn8u3EkoovGrLB/sIxWUlVJGNiYal9rZn0XJRjIyncGrhz9EJ9gn+z3cRHYUdHCuCMLW/ev6isgKXYw== - dependencies: - "@contentlayer2/cli" "0.4.3" - "@contentlayer2/client" "0.4.3" - "@contentlayer2/core" "0.4.3" - "@contentlayer2/source-files" "0.4.3" - "@contentlayer2/source-remote-files" "0.4.3" - "@contentlayer2/utils" "0.4.3" - -core-util-is@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cross-spawn@^7.0.0, cross-spawn@^7.0.2: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -csstype@^3.0.2: - version "3.1.3" - resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" - integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== - -damerau-levenshtein@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz" - integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== - -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.0.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -decode-named-character-reference@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz" - integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== - dependencies: - character-entities "^2.0.0" - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== - dependencies: - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - -define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" - integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== - dependencies: - define-data-property "^1.0.1" - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -dequal@^2.0.0, dequal@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" - integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== - -devlop@^1.0.0, devlop@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz" - integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== - dependencies: - dequal "^2.0.0" - -didyoumean@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz" - integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -dlv@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz" - integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -electron-to-chromium@^1.4.648: - version "1.4.648" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz" - integrity sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -enhanced-resolve@^5.12.0: - version "5.15.0" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz" - integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - -entities@^4.4.0: - version "4.5.0" - resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== - -es-abstract@^1.22.1: - version "1.22.3" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz" - integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== - dependencies: - array-buffer-byte-length "^1.0.0" - arraybuffer.prototype.slice "^1.0.2" - available-typed-arrays "^1.0.5" - call-bind "^1.0.5" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.6" - get-intrinsic "^1.2.2" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.12" - is-weakref "^1.0.2" - object-inspect "^1.13.1" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.1" - safe-array-concat "^1.0.1" - safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.8" - string.prototype.trimend "^1.0.7" - string.prototype.trimstart "^1.0.7" - typed-array-buffer "^1.0.0" - typed-array-byte-length "^1.0.0" - typed-array-byte-offset "^1.0.0" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.13" - -es-iterator-helpers@^1.0.12, es-iterator-helpers@^1.0.15: - version "1.0.15" - resolved "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz" - integrity sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g== - dependencies: - asynciterator.prototype "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.1" - es-abstract "^1.22.1" - es-set-tostringtag "^2.0.1" - function-bind "^1.1.1" - get-intrinsic "^1.2.1" - globalthis "^1.0.3" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - internal-slot "^1.0.5" - iterator.prototype "^1.1.2" - safe-array-concat "^1.0.1" - -es-set-tostringtag@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz" - integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== - dependencies: - get-intrinsic "^1.2.2" - has-tostringtag "^1.0.0" - hasown "^2.0.0" - -es-shim-unscopables@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz" - integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== - dependencies: - hasown "^2.0.0" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -esbuild@*, esbuild@>=0.14.0, esbuild@0.*, "esbuild@0.17.x || 0.18.x || 0.19.x || 0.20.x": - version "0.20.2" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz" - integrity sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g== - optionalDependencies: - "@esbuild/aix-ppc64" "0.20.2" - "@esbuild/android-arm" "0.20.2" - "@esbuild/android-arm64" "0.20.2" - "@esbuild/android-x64" "0.20.2" - "@esbuild/darwin-arm64" "0.20.2" - "@esbuild/darwin-x64" "0.20.2" - "@esbuild/freebsd-arm64" "0.20.2" - "@esbuild/freebsd-x64" "0.20.2" - "@esbuild/linux-arm" "0.20.2" - "@esbuild/linux-arm64" "0.20.2" - "@esbuild/linux-ia32" "0.20.2" - "@esbuild/linux-loong64" "0.20.2" - "@esbuild/linux-mips64el" "0.20.2" - "@esbuild/linux-ppc64" "0.20.2" - "@esbuild/linux-riscv64" "0.20.2" - "@esbuild/linux-s390x" "0.20.2" - "@esbuild/linux-x64" "0.20.2" - "@esbuild/netbsd-x64" "0.20.2" - "@esbuild/openbsd-x64" "0.20.2" - "@esbuild/sunos-x64" "0.20.2" - "@esbuild/win32-arm64" "0.20.2" - "@esbuild/win32-ia32" "0.20.2" - "@esbuild/win32-x64" "0.20.2" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escape-string-regexp@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz" - integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== - -eslint-config-next@14.1.0: - version "14.1.0" - resolved "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.1.0.tgz" - integrity sha512-SBX2ed7DoRFXC6CQSLc/SbLY9Ut6HxNB2wPTcoIWjUMd7aF7O/SIE7111L8FdZ9TXsNV4pulUDnfthpyPtbFUg== - dependencies: - "@next/eslint-plugin-next" "14.1.0" - "@rushstack/eslint-patch" "^1.3.3" - "@typescript-eslint/parser" "^5.4.2 || ^6.0.0" - eslint-import-resolver-node "^0.3.6" - eslint-import-resolver-typescript "^3.5.2" - eslint-plugin-import "^2.28.1" - eslint-plugin-jsx-a11y "^6.7.1" - eslint-plugin-react "^7.33.2" - eslint-plugin-react-hooks "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" - -eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.9: - version "0.3.9" - resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz" - integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== - dependencies: - debug "^3.2.7" - is-core-module "^2.13.0" - resolve "^1.22.4" - -eslint-import-resolver-typescript@^3.5.2: - version "3.6.1" - resolved "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz" - integrity sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg== - dependencies: - debug "^4.3.4" - enhanced-resolve "^5.12.0" - eslint-module-utils "^2.7.4" - fast-glob "^3.3.1" - get-tsconfig "^4.5.0" - is-core-module "^2.11.0" - is-glob "^4.0.3" - -eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: - version "2.8.0" - resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz" - integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== - dependencies: - debug "^3.2.7" - -eslint-plugin-import@*, eslint-plugin-import@^2.28.1: - version "2.29.1" - resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz" - integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== - dependencies: - array-includes "^3.1.7" - array.prototype.findlastindex "^1.2.3" - array.prototype.flat "^1.3.2" - array.prototype.flatmap "^1.3.2" - debug "^3.2.7" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.9" - eslint-module-utils "^2.8.0" - hasown "^2.0.0" - is-core-module "^2.13.1" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.fromentries "^2.0.7" - object.groupby "^1.0.1" - object.values "^1.1.7" - semver "^6.3.1" - tsconfig-paths "^3.15.0" - -eslint-plugin-jsx-a11y@^6.7.1: - version "6.8.0" - resolved "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz" - integrity sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA== - dependencies: - "@babel/runtime" "^7.23.2" - aria-query "^5.3.0" - array-includes "^3.1.7" - array.prototype.flatmap "^1.3.2" - ast-types-flow "^0.0.8" - axe-core "=4.7.0" - axobject-query "^3.2.1" - damerau-levenshtein "^1.0.8" - emoji-regex "^9.2.2" - es-iterator-helpers "^1.0.15" - hasown "^2.0.0" - jsx-ast-utils "^3.3.5" - language-tags "^1.0.9" - minimatch "^3.1.2" - object.entries "^1.1.7" - object.fromentries "^2.0.7" - -"eslint-plugin-react-hooks@^4.5.0 || 5.0.0-canary-7118f5dd7-20230705": - version "4.6.0" - resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz" - integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== - -eslint-plugin-react@^7.33.2: - version "7.33.2" - resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz" - integrity sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw== - dependencies: - array-includes "^3.1.6" - array.prototype.flatmap "^1.3.1" - array.prototype.tosorted "^1.1.1" - doctrine "^2.1.0" - es-iterator-helpers "^1.0.12" - estraverse "^5.3.0" - jsx-ast-utils "^2.4.1 || ^3.0.0" - minimatch "^3.1.2" - object.entries "^1.1.6" - object.fromentries "^2.0.6" - object.hasown "^1.1.2" - object.values "^1.1.6" - prop-types "^15.8.1" - resolve "^2.0.0-next.4" - semver "^6.3.1" - string.prototype.matchall "^4.0.8" - -eslint-scope@^7.2.0: - version "7.2.2" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: - version "3.4.3" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - -eslint@*, "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.23.0 || ^8.0.0", eslint@8.45.0: - version "8.45.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.45.0.tgz" - integrity sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.1.0" - "@eslint/js" "8.44.0" - "@humanwhocodes/config-array" "^0.11.10" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.2.0" - eslint-visitor-keys "^3.4.1" - espree "^9.6.0" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - -espree@^9.6.0: - version "9.6.1" - resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== - dependencies: - acorn "^8.9.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: - version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -estree-util-attach-comments@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz" - integrity sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw== - dependencies: - "@types/estree" "^1.0.0" - -estree-util-build-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz" - integrity sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ== - dependencies: - "@types/estree-jsx" "^1.0.0" - devlop "^1.0.0" - estree-util-is-identifier-name "^3.0.0" - estree-walker "^3.0.0" - -estree-util-is-identifier-name@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz" - integrity sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg== - -estree-util-to-js@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz" - integrity sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg== - dependencies: - "@types/estree-jsx" "^1.0.0" - astring "^1.8.0" - source-map "^0.7.0" - -estree-util-value-to-estree@^3.0.0: - version "3.1.2" - resolved "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.1.2.tgz" - integrity sha512-S0gW2+XZkmsx00tU2uJ4L9hUT7IFabbml9pHh2WQqFmAbxit++YGZne0sKJbNwkj9Wvg9E4uqWl4nCIFQMmfag== - dependencies: - "@types/estree" "^1.0.0" - -estree-util-visit@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz" - integrity sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww== - dependencies: - "@types/estree-jsx" "^1.0.0" - "@types/unist" "^3.0.0" - -estree-walker@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz" - integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== - dependencies: - "@types/estree" "^1.0.0" - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" - integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== - dependencies: - is-extendable "^0.1.0" - -extend@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.2.12, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.1: - version "3.3.2" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fastq@^1.6.0: - version "1.17.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.0.tgz" - integrity sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w== - dependencies: - reusify "^1.0.4" - -fault@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz" - integrity sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ== - dependencies: - format "^0.2.0" - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" - integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== - dependencies: - pend "~1.2.0" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.2.0" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== - dependencies: - flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" - -flatted@^3.2.9: - version "3.2.9" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz" - integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -foreground-child@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz" - integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^4.0.1" - -format@^0.2.0: - version "0.2.2" - resolved "https://registry.npmjs.org/format/-/format-0.2.2.tgz" - integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== - -fraction.js@^4.2.0: - version "4.3.7" - resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz" - integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== - -fs-minipass@^1.2.7: - version "1.2.7" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -function-bind@^1.1.1, function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -function.prototype.name@^1.1.5, function.prototype.name@^1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz" - integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - functions-have-names "^1.2.3" - -functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== - dependencies: - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -get-tsconfig@^4.5.0: - version "4.7.2" - resolved "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz" - integrity sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A== - dependencies: - resolve-pkg-maps "^1.0.0" - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^10.3.10, glob@10.3.10: - version "10.3.10" - resolved "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz" - integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== - dependencies: - foreground-child "^3.1.0" - jackspeak "^2.3.5" - minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" - -glob@^7.0.0: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^13.19.0: - version "13.24.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" - -globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== - dependencies: - define-properties "^1.1.3" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -graceful-fs@^4.2.11, graceful-fs@^4.2.4: - version "4.2.11" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - -gray-matter@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz" - integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== - dependencies: - js-yaml "^3.13.1" - kind-of "^6.0.2" - section-matter "^1.0.0" - strip-bom-string "^1.0.0" - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-own-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz" - integrity sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ== - -has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz" - integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== - dependencies: - get-intrinsic "^1.2.2" - -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -hash-wasm@^4.11.0: - version "4.11.0" - resolved "https://registry.npmjs.org/hash-wasm/-/hash-wasm-4.11.0.tgz" - integrity sha512-HVusNXlVqHe0fzIzdQOGolnFN6mX/fqcrSAOcTBXdvzrXVHwTz11vXeKRmkR5gTuwVpvHZEIyKoePDvuAR+XwQ== - -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== - dependencies: - function-bind "^1.1.2" - -hast-util-from-parse5@^8.0.0: - version "8.0.1" - resolved "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz" - integrity sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ== - dependencies: - "@types/hast" "^3.0.0" - "@types/unist" "^3.0.0" - devlop "^1.0.0" - hastscript "^8.0.0" - property-information "^6.0.0" - vfile "^6.0.0" - vfile-location "^5.0.0" - web-namespaces "^2.0.0" - -hast-util-parse-selector@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz" - integrity sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A== - dependencies: - "@types/hast" "^3.0.0" - -hast-util-raw@^9.0.0: - version "9.0.4" - resolved "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.4.tgz" - integrity sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA== - dependencies: - "@types/hast" "^3.0.0" - "@types/unist" "^3.0.0" - "@ungap/structured-clone" "^1.0.0" - hast-util-from-parse5 "^8.0.0" - hast-util-to-parse5 "^8.0.0" - html-void-elements "^3.0.0" - mdast-util-to-hast "^13.0.0" - parse5 "^7.0.0" - unist-util-position "^5.0.0" - unist-util-visit "^5.0.0" - vfile "^6.0.0" - web-namespaces "^2.0.0" - zwitch "^2.0.0" - -hast-util-to-estree@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz" - integrity sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw== - dependencies: - "@types/estree" "^1.0.0" - "@types/estree-jsx" "^1.0.0" - "@types/hast" "^3.0.0" - comma-separated-tokens "^2.0.0" - devlop "^1.0.0" - estree-util-attach-comments "^3.0.0" - estree-util-is-identifier-name "^3.0.0" - hast-util-whitespace "^3.0.0" - mdast-util-mdx-expression "^2.0.0" - mdast-util-mdx-jsx "^3.0.0" - mdast-util-mdxjs-esm "^2.0.0" - property-information "^6.0.0" - space-separated-tokens "^2.0.0" - style-to-object "^0.4.0" - unist-util-position "^5.0.0" - zwitch "^2.0.0" - -hast-util-to-html@^9.0.0: - version "9.0.1" - resolved "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.1.tgz" - integrity sha512-hZOofyZANbyWo+9RP75xIDV/gq+OUKx+T46IlwERnKmfpwp81XBFbT9mi26ws+SJchA4RVUQwIBJpqEOBhMzEQ== - dependencies: - "@types/hast" "^3.0.0" - "@types/unist" "^3.0.0" - ccount "^2.0.0" - comma-separated-tokens "^2.0.0" - hast-util-raw "^9.0.0" - hast-util-whitespace "^3.0.0" - html-void-elements "^3.0.0" - mdast-util-to-hast "^13.0.0" - property-information "^6.0.0" - space-separated-tokens "^2.0.0" - stringify-entities "^4.0.0" - zwitch "^2.0.4" - -hast-util-to-jsx-runtime@^2.0.0: - version "2.3.0" - resolved "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz" - integrity sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ== - dependencies: - "@types/estree" "^1.0.0" - "@types/hast" "^3.0.0" - "@types/unist" "^3.0.0" - comma-separated-tokens "^2.0.0" - devlop "^1.0.0" - estree-util-is-identifier-name "^3.0.0" - hast-util-whitespace "^3.0.0" - mdast-util-mdx-expression "^2.0.0" - mdast-util-mdx-jsx "^3.0.0" - mdast-util-mdxjs-esm "^2.0.0" - property-information "^6.0.0" - space-separated-tokens "^2.0.0" - style-to-object "^1.0.0" - unist-util-position "^5.0.0" - vfile-message "^4.0.0" - -hast-util-to-parse5@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz" - integrity sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw== - dependencies: - "@types/hast" "^3.0.0" - comma-separated-tokens "^2.0.0" - devlop "^1.0.0" - property-information "^6.0.0" - space-separated-tokens "^2.0.0" - web-namespaces "^2.0.0" - zwitch "^2.0.0" - -hast-util-whitespace@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz" - integrity sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw== - dependencies: - "@types/hast" "^3.0.0" - -hastscript@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz" - integrity sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw== - dependencies: - "@types/hast" "^3.0.0" - comma-separated-tokens "^2.0.0" - hast-util-parse-selector "^4.0.0" - property-information "^6.0.0" - space-separated-tokens "^2.0.0" - -html-void-elements@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz" - integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== - -hyperdyperid@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz" - integrity sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A== - -ignore@^5.2.0: - version "5.3.0" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz" - integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== - -imagescript@^1.2.16: - version "1.2.18" - resolved "https://registry.npmjs.org/imagescript/-/imagescript-1.2.18.tgz" - integrity sha512-8AwTawraXovLo2PgKvFt96SZqJDwl0CnHDyrtoPUQHMmoA7u9M8EnqFZwCofSM+Uo623Z580iKW74bs2fzjoYQ== - -import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -inflection@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/inflection/-/inflection-3.0.0.tgz" - integrity sha512-1zEJU1l19SgJlmwqsEyFTbScw/tkMHFenUo//Y0i+XEP83gDFdMvPizAD/WGcE+l1ku12PcTVHQhO6g5E0UCMw== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inline-style-parser@0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz" - integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== - -inline-style-parser@0.2.3: - version "0.2.3" - resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.3.tgz" - integrity sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g== - -internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== - dependencies: - get-intrinsic "^1.2.2" - hasown "^2.0.0" - side-channel "^1.0.4" - -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - -is-alphabetical@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz" - integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== - -is-alphanumerical@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz" - integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== - dependencies: - is-alphabetical "^2.0.0" - is-decimal "^2.0.0" - -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" - -is-async-function@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz" - integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== - dependencies: - has-tostringtag "^1.0.0" - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-core-module@^2.11.0, is-core-module@^2.13.0, is-core-module@^2.13.1: - version "2.13.1" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== - dependencies: - hasown "^2.0.0" - -is-date-object@^1.0.1, is-date-object@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-decimal@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz" - integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== - -is-extendable@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" - integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-finalizationregistry@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz" - integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== - dependencies: - call-bind "^1.0.2" - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-generator-function@^1.0.10: - version "1.0.10" - resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz" - integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== - dependencies: - has-tostringtag "^1.0.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-hexadecimal@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz" - integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== - -is-map@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz" - integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz" - integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== - -is-reference@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz" - integrity sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg== - dependencies: - "@types/estree" "*" - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-set@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz" - integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== - dependencies: - which-typed-array "^1.1.11" - -is-weakmap@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz" - integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-weakset@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz" - integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -iterator.prototype@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz" - integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w== - dependencies: - define-properties "^1.2.1" - get-intrinsic "^1.2.1" - has-symbols "^1.0.3" - reflect.getprototypeof "^1.0.4" - set-function-name "^2.0.1" - -jackspeak@^2.3.5: - version "2.3.6" - resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz" - integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - -jiti@^1.19.1: - version "1.21.0" - resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz" - integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== - -"js-tokens@^3.0.0 || ^4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -jsbi@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/jsbi/-/jsbi-4.3.0.tgz" - integrity sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g== - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -json5@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.5: - version "3.3.5" - resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz" - integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== - dependencies: - array-includes "^3.1.6" - array.prototype.flat "^1.3.1" - object.assign "^4.1.4" - object.values "^1.1.6" - -keyv@^4.5.3: - version "4.5.4" - resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -language-subtag-registry@^0.3.20: - version "0.3.22" - resolved "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz" - integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== - -language-tags@^1.0.9: - version "1.0.9" - resolved "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz" - integrity sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA== - dependencies: - language-subtag-registry "^0.3.20" - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -lilconfig@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz" - integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== - -lilconfig@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz" - integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" - integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -long@^5.0.0: - version "5.2.3" - resolved "https://registry.npmjs.org/long/-/long-5.2.3.tgz" - integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== - -longest-streak@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz" - integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== - -loose-envify@^1.1.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -"lru-cache@^9.1.1 || ^10.0.0": - version "10.2.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz" - integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== - -markdown-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz" - integrity sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q== - -mdast-util-from-markdown@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz" - integrity sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA== - dependencies: - "@types/mdast" "^4.0.0" - "@types/unist" "^3.0.0" - decode-named-character-reference "^1.0.0" - devlop "^1.0.0" - mdast-util-to-string "^4.0.0" - micromark "^4.0.0" - micromark-util-decode-numeric-character-reference "^2.0.0" - micromark-util-decode-string "^2.0.0" - micromark-util-normalize-identifier "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - unist-util-stringify-position "^4.0.0" - -mdast-util-frontmatter@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz" - integrity sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA== - dependencies: - "@types/mdast" "^4.0.0" - devlop "^1.0.0" - escape-string-regexp "^5.0.0" - mdast-util-from-markdown "^2.0.0" - mdast-util-to-markdown "^2.0.0" - micromark-extension-frontmatter "^2.0.0" - -mdast-util-mdx-expression@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz" - integrity sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw== - dependencies: - "@types/estree-jsx" "^1.0.0" - "@types/hast" "^3.0.0" - "@types/mdast" "^4.0.0" - devlop "^1.0.0" - mdast-util-from-markdown "^2.0.0" - mdast-util-to-markdown "^2.0.0" - -mdast-util-mdx-jsx@^3.0.0: - version "3.1.2" - resolved "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.2.tgz" - integrity sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA== - dependencies: - "@types/estree-jsx" "^1.0.0" - "@types/hast" "^3.0.0" - "@types/mdast" "^4.0.0" - "@types/unist" "^3.0.0" - ccount "^2.0.0" - devlop "^1.1.0" - mdast-util-from-markdown "^2.0.0" - mdast-util-to-markdown "^2.0.0" - parse-entities "^4.0.0" - stringify-entities "^4.0.0" - unist-util-remove-position "^5.0.0" - unist-util-stringify-position "^4.0.0" - vfile-message "^4.0.0" - -mdast-util-mdx@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz" - integrity sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w== - dependencies: - mdast-util-from-markdown "^2.0.0" - mdast-util-mdx-expression "^2.0.0" - mdast-util-mdx-jsx "^3.0.0" - mdast-util-mdxjs-esm "^2.0.0" - mdast-util-to-markdown "^2.0.0" - -mdast-util-mdxjs-esm@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz" - integrity sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg== - dependencies: - "@types/estree-jsx" "^1.0.0" - "@types/hast" "^3.0.0" - "@types/mdast" "^4.0.0" - devlop "^1.0.0" - mdast-util-from-markdown "^2.0.0" - mdast-util-to-markdown "^2.0.0" - -mdast-util-phrasing@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz" - integrity sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w== - dependencies: - "@types/mdast" "^4.0.0" - unist-util-is "^6.0.0" - -mdast-util-to-hast@^13.0.0: - version "13.2.0" - resolved "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz" - integrity sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA== - dependencies: - "@types/hast" "^3.0.0" - "@types/mdast" "^4.0.0" - "@ungap/structured-clone" "^1.0.0" - devlop "^1.0.0" - micromark-util-sanitize-uri "^2.0.0" - trim-lines "^3.0.0" - unist-util-position "^5.0.0" - unist-util-visit "^5.0.0" - vfile "^6.0.0" - -mdast-util-to-markdown@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz" - integrity sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ== - dependencies: - "@types/mdast" "^4.0.0" - "@types/unist" "^3.0.0" - longest-streak "^3.0.0" - mdast-util-phrasing "^4.0.0" - mdast-util-to-string "^4.0.0" - micromark-util-decode-string "^2.0.0" - unist-util-visit "^5.0.0" - zwitch "^2.0.0" - -mdast-util-to-string@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz" - integrity sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg== - dependencies: - "@types/mdast" "^4.0.0" - -mdx-bundler@^10.0.2: - version "10.0.2" - resolved "https://registry.npmjs.org/mdx-bundler/-/mdx-bundler-10.0.2.tgz" - integrity sha512-0wF0zoCv+Ms4G+eSlk/jaKYoJHc0oXBaOma3kYlFJiKq9H8h41Dd66ioDBGF4noy80Pf7KTBQlyHfEpTqVml7A== - dependencies: - "@babel/runtime" "^7.23.2" - "@esbuild-plugins/node-resolve" "^0.2.2" - "@fal-works/esbuild-plugin-global-externals" "^2.1.2" - "@mdx-js/esbuild" "^3.0.0" - gray-matter "^4.0.3" - remark-frontmatter "^5.0.0" - remark-mdx-frontmatter "^4.0.0" - uuid "^9.0.1" - vfile "^6.0.1" - -memfs@^4.8.2: - version "4.9.3" - resolved "https://registry.npmjs.org/memfs/-/memfs-4.9.3.tgz" - integrity sha512-bsYSSnirtYTWi1+OPMFb0M048evMKyUYe0EbtuGQgq6BVQM1g1W8/KIUJCCvjgI/El0j6Q4WsmMiBwLUBSw8LA== - dependencies: - "@jsonjoy.com/json-pack" "^1.0.3" - "@jsonjoy.com/util" "^1.1.2" - tree-dump "^1.0.1" - tslib "^2.0.0" - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromark-core-commonmark@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz" - integrity sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA== - dependencies: - decode-named-character-reference "^1.0.0" - devlop "^1.0.0" - micromark-factory-destination "^2.0.0" - micromark-factory-label "^2.0.0" - micromark-factory-space "^2.0.0" - micromark-factory-title "^2.0.0" - micromark-factory-whitespace "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-chunked "^2.0.0" - micromark-util-classify-character "^2.0.0" - micromark-util-html-tag-name "^2.0.0" - micromark-util-normalize-identifier "^2.0.0" - micromark-util-resolve-all "^2.0.0" - micromark-util-subtokenize "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-extension-frontmatter@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz" - integrity sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg== - dependencies: - fault "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-extension-mdx-expression@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz" - integrity sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ== - dependencies: - "@types/estree" "^1.0.0" - devlop "^1.0.0" - micromark-factory-mdx-expression "^2.0.0" - micromark-factory-space "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-events-to-acorn "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-extension-mdx-jsx@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.0.tgz" - integrity sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w== - dependencies: - "@types/acorn" "^4.0.0" - "@types/estree" "^1.0.0" - devlop "^1.0.0" - estree-util-is-identifier-name "^3.0.0" - micromark-factory-mdx-expression "^2.0.0" - micromark-factory-space "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - vfile-message "^4.0.0" - -micromark-extension-mdx-md@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz" - integrity sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ== - dependencies: - micromark-util-types "^2.0.0" - -micromark-extension-mdxjs-esm@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz" - integrity sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A== - dependencies: - "@types/estree" "^1.0.0" - devlop "^1.0.0" - micromark-core-commonmark "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-events-to-acorn "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - unist-util-position-from-estree "^2.0.0" - vfile-message "^4.0.0" - -micromark-extension-mdxjs@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz" - integrity sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ== - dependencies: - acorn "^8.0.0" - acorn-jsx "^5.0.0" - micromark-extension-mdx-expression "^3.0.0" - micromark-extension-mdx-jsx "^3.0.0" - micromark-extension-mdx-md "^2.0.0" - micromark-extension-mdxjs-esm "^3.0.0" - micromark-util-combine-extensions "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-factory-destination@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz" - integrity sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA== - dependencies: - micromark-util-character "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-factory-label@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz" - integrity sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw== - dependencies: - devlop "^1.0.0" - micromark-util-character "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-factory-mdx-expression@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.1.tgz" - integrity sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg== - dependencies: - "@types/estree" "^1.0.0" - devlop "^1.0.0" - micromark-util-character "^2.0.0" - micromark-util-events-to-acorn "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - unist-util-position-from-estree "^2.0.0" - vfile-message "^4.0.0" - -micromark-factory-space@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz" - integrity sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg== - dependencies: - micromark-util-character "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-factory-title@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz" - integrity sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A== - dependencies: - micromark-factory-space "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-factory-whitespace@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz" - integrity sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA== - dependencies: - micromark-factory-space "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-util-character@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz" - integrity sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ== - dependencies: - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-util-chunked@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz" - integrity sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg== - dependencies: - micromark-util-symbol "^2.0.0" - -micromark-util-classify-character@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz" - integrity sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw== - dependencies: - micromark-util-character "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-util-combine-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz" - integrity sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ== - dependencies: - micromark-util-chunked "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-util-decode-numeric-character-reference@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz" - integrity sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ== - dependencies: - micromark-util-symbol "^2.0.0" - -micromark-util-decode-string@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz" - integrity sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA== - dependencies: - decode-named-character-reference "^1.0.0" - micromark-util-character "^2.0.0" - micromark-util-decode-numeric-character-reference "^2.0.0" - micromark-util-symbol "^2.0.0" - -micromark-util-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz" - integrity sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA== - -micromark-util-events-to-acorn@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz" - integrity sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA== - dependencies: - "@types/acorn" "^4.0.0" - "@types/estree" "^1.0.0" - "@types/unist" "^3.0.0" - devlop "^1.0.0" - estree-util-visit "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - vfile-message "^4.0.0" - -micromark-util-html-tag-name@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz" - integrity sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw== - -micromark-util-normalize-identifier@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz" - integrity sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w== - dependencies: - micromark-util-symbol "^2.0.0" - -micromark-util-resolve-all@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz" - integrity sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA== - dependencies: - micromark-util-types "^2.0.0" - -micromark-util-sanitize-uri@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz" - integrity sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw== - dependencies: - micromark-util-character "^2.0.0" - micromark-util-encode "^2.0.0" - micromark-util-symbol "^2.0.0" - -micromark-util-subtokenize@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz" - integrity sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q== - dependencies: - devlop "^1.0.0" - micromark-util-chunked "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-util-symbol@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz" - integrity sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw== - -micromark-util-types@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz" - integrity sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w== - -micromark@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz" - integrity sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ== - dependencies: - "@types/debug" "^4.0.0" - debug "^4.0.0" - decode-named-character-reference "^1.0.0" - devlop "^1.0.0" - micromark-core-commonmark "^2.0.0" - micromark-factory-space "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-chunked "^2.0.0" - micromark-util-combine-extensions "^2.0.0" - micromark-util-decode-numeric-character-reference "^2.0.0" - micromark-util-encode "^2.0.0" - micromark-util-normalize-identifier "^2.0.0" - micromark-util-resolve-all "^2.0.0" - micromark-util-sanitize-uri "^2.0.0" - micromark-util-subtokenize "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromatch@^4.0.4, micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^9.0.1: - version "9.0.3" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - -minimatch@9.0.3: - version "9.0.3" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - -minimist@^1.2.0, minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -minipass@^2.6.0: - version "2.9.0" - resolved "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": - version "7.0.4" - resolved "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz" - integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== - -minizlib@^1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - -mkdirp@^0.5.5: - version "0.5.6" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -ms@^2.1.1, ms@2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -mz@^2.7.0: - version "2.7.0" - resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz" - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== - dependencies: - any-promise "^1.0.0" - object-assign "^4.0.1" - thenify-all "^1.0.0" - -nanoid@^3.3.6: - version "3.3.7" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz" - integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -next-contentlayer2@^0.4.6: - version "0.4.6" - resolved "https://registry.npmjs.org/next-contentlayer2/-/next-contentlayer2-0.4.6.tgz" - integrity sha512-r1g/zCl3dXFfMlMI87n2+V90Jz7inMrfyRzmMSQdDfCBy3uexnsoM43wPbklza2teyd/pdfUT0I0gw/IE+YA4Q== - dependencies: - "@contentlayer2/core" "0.4.3" - "@contentlayer2/utils" "0.4.3" - -"next@^12 || ^13 || ^14", next@14.1.0: - version "14.1.0" - resolved "https://registry.npmjs.org/next/-/next-14.1.0.tgz" - integrity sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q== - dependencies: - "@next/env" "14.1.0" - "@swc/helpers" "0.5.2" - busboy "1.6.0" - caniuse-lite "^1.0.30001579" - graceful-fs "^4.2.11" - postcss "8.4.31" - styled-jsx "5.1.1" - optionalDependencies: - "@next/swc-darwin-arm64" "14.1.0" - "@next/swc-darwin-x64" "14.1.0" - "@next/swc-linux-arm64-gnu" "14.1.0" - "@next/swc-linux-arm64-musl" "14.1.0" - "@next/swc-linux-x64-gnu" "14.1.0" - "@next/swc-linux-x64-musl" "14.1.0" - "@next/swc-win32-arm64-msvc" "14.1.0" - "@next/swc-win32-ia32-msvc" "14.1.0" - "@next/swc-win32-x64-msvc" "14.1.0" - -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - -node-fetch@2.6.7: - version "2.6.7" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - -node-releases@^2.0.14: - version "2.0.14" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz" - integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" - integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== - -object-assign@^4.0.1, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-hash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz" - integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== - -object-inspect@^1.13.1, object-inspect@^1.9.0: - version "1.13.1" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz" - integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.4: - version "4.1.5" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz" - integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== - dependencies: - call-bind "^1.0.5" - define-properties "^1.2.1" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.entries@^1.1.6, object.entries@^1.1.7: - version "1.1.7" - resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz" - integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -object.fromentries@^2.0.6, object.fromentries@^2.0.7: - version "2.0.7" - resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz" - integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -object.groupby@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz" - integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - -object.hasown@^1.1.2: - version "1.1.3" - resolved "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz" - integrity sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA== - dependencies: - define-properties "^1.2.0" - es-abstract "^1.22.1" - -object.values@^1.1.6, object.values@^1.1.7: - version "1.1.7" - resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz" - integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -oo-ascii-tree@^1.94.0: - version "1.101.0" - resolved "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.101.0.tgz" - integrity sha512-hNE9Nfvo4HLa9/dAiaiXUm64KHUvgBa7jPftsb8gZdTv1G1wSMMnd9j7SMcRzaMbDEqi+0cfgeBSIcsKy+k0vA== - -optionator@^0.9.3: - version "0.9.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== - dependencies: - "@aashutoshrathi/word-wrap" "^1.2.3" - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-entities@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz" - integrity sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w== - dependencies: - "@types/unist" "^2.0.0" - character-entities "^2.0.0" - character-entities-legacy "^3.0.0" - character-reference-invalid "^2.0.0" - decode-named-character-reference "^1.0.0" - is-alphanumerical "^2.0.0" - is-decimal "^2.0.0" - is-hexadecimal "^2.0.0" - -parse5@^7.0.0: - version "7.1.2" - resolved "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz" - integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== - dependencies: - entities "^4.4.0" - -pascal-case@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz" - integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-scurry@^1.10.1: - version "1.10.1" - resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz" - integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== - dependencies: - lru-cache "^9.1.1 || ^10.0.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" - integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== - -periscopic@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz" - integrity sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw== - dependencies: - "@types/estree" "^1.0.0" - estree-walker "^3.0.0" - is-reference "^3.0.0" - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pify@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - -pirates@^4.0.1: - version "4.0.6" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" - integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== - -postcss-import@^15.1.0: - version "15.1.0" - resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz" - integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== - dependencies: - postcss-value-parser "^4.0.0" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-js@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz" - integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== - dependencies: - camelcase-css "^2.0.1" - -postcss-load-config@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz" - integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== - dependencies: - lilconfig "^3.0.0" - yaml "^2.3.4" - -postcss-nested@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz" - integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== - dependencies: - postcss-selector-parser "^6.0.11" - -postcss-selector-parser@^6.0.11: - version "6.0.15" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz" - integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -postcss@^8.0.0, postcss@^8.1.0, postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.23, postcss@>=8.0.9, postcss@8.4.26: - version "8.4.26" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.26.tgz" - integrity sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw== - dependencies: - nanoid "^3.3.6" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -postcss@8.4.31: - version "8.4.31" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz" - integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== - dependencies: - nanoid "^3.3.6" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prettier@^3.2.4: - version "3.2.4" - resolved "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz" - integrity sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ== - -prop-types@^15.8.1: - version "15.8.1" - resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" - integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.13.1" - -property-information@^6.0.0: - version "6.4.1" - resolved "https://registry.npmjs.org/property-information/-/property-information-6.4.1.tgz" - integrity sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w== - -protobufjs@^7.2.3, protobufjs@^7.2.4: - version "7.2.6" - resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.6.tgz" - integrity sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/node" ">=13.7.0" - long "^5.0.0" - -punycode@^2.1.0: - version "2.3.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -react-dom@*, react-dom@^18.2.0, react-dom@18.2.0: - version "18.2.0" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz" - integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== - dependencies: - loose-envify "^1.1.0" - scheduler "^0.23.0" - -react-is@^16.13.1: - version "16.13.1" - resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react@*, react@^18.2.0, "react@>= 16.8.0 || 17.x.x || ^18.0.0-0", react@18.2.0: - version "18.2.0" - resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz" - integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== - dependencies: - loose-envify "^1.1.0" - -read-cache@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz" - integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== - dependencies: - pify "^2.3.0" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" - integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== - dependencies: - resolve "^1.1.6" - -reflect.getprototypeof@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz" - integrity sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - globalthis "^1.0.3" - which-builtin-type "^1.1.3" - -regenerator-runtime@^0.14.0: - version "0.14.1" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" - integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== - -regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz" - integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - set-function-name "^2.0.0" - -rehype-stringify@^10.0.0: - version "10.0.0" - resolved "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-10.0.0.tgz" - integrity sha512-1TX1i048LooI9QoecrXy7nGFFbFSufxVRAfc6Y9YMRAi56l+oB0zP51mLSV312uRuvVLPV1opSlJmslozR1XHQ== - dependencies: - "@types/hast" "^3.0.0" - hast-util-to-html "^9.0.0" - unified "^11.0.0" - -remark-frontmatter@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz" - integrity sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ== - dependencies: - "@types/mdast" "^4.0.0" - mdast-util-frontmatter "^2.0.0" - micromark-extension-frontmatter "^2.0.0" - unified "^11.0.0" - -remark-mdx-frontmatter@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/remark-mdx-frontmatter/-/remark-mdx-frontmatter-4.0.0.tgz" - integrity sha512-PZzAiDGOEfv1Ua7exQ8S5kKxkD8CDaSb4nM+1Mprs6u8dyvQifakh+kCj6NovfGXW+bTvrhjaR3srzjS2qJHKg== - dependencies: - "@types/mdast" "^4.0.0" - estree-util-is-identifier-name "^3.0.0" - estree-util-value-to-estree "^3.0.0" - toml "^3.0.0" - unified "^11.0.0" - yaml "^2.0.0" - -remark-mdx@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.0.1.tgz" - integrity sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA== - dependencies: - mdast-util-mdx "^3.0.0" - micromark-extension-mdxjs "^3.0.0" - -remark-parse@^11.0.0: - version "11.0.0" - resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz" - integrity sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA== - dependencies: - "@types/mdast" "^4.0.0" - mdast-util-from-markdown "^2.0.0" - micromark-util-types "^2.0.0" - unified "^11.0.0" - -remark-rehype@^11.0.0, remark-rehype@^11.1.0: - version "11.1.0" - resolved "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.0.tgz" - integrity sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g== - dependencies: - "@types/hast" "^3.0.0" - "@types/mdast" "^4.0.0" - mdast-util-to-hast "^13.0.0" - unified "^11.0.0" - vfile "^6.0.0" - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" - integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-pkg-maps@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz" - integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== - -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.19.0, resolve@^1.22.2, resolve@^1.22.4: - version "1.22.8" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^2.0.0-next.4: - version "2.0.0-next.5" - resolved "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz" - integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -safe-array-concat@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz" - integrity sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg== - dependencies: - call-bind "^1.0.5" - get-intrinsic "^1.2.2" - has-symbols "^1.0.3" - isarray "^2.0.5" - -safe-buffer@^5.1.2, safe-buffer@^5.2.1: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-regex-test@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.2.tgz" - integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== - dependencies: - call-bind "^1.0.5" - get-intrinsic "^1.2.2" - is-regex "^1.1.4" - -scheduler@^0.23.0: - version "0.23.0" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz" - integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== - dependencies: - loose-envify "^1.1.0" - -section-matter@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz" - integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== - dependencies: - extend-shallow "^2.0.1" - kind-of "^6.0.0" - -semver@^6.3.1: - version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.5.2, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -set-function-length@^1.1.1: - version "1.2.0" - resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz" - integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== - dependencies: - define-data-property "^1.1.1" - function-bind "^1.1.2" - get-intrinsic "^1.2.2" - gopd "^1.0.1" - has-property-descriptors "^1.0.1" - -set-function-name@^2.0.0, set-function-name@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz" - integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== - dependencies: - define-data-property "^1.0.1" - functions-have-names "^1.2.3" - has-property-descriptors "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shelljs@^0.8.4: - version "0.8.5" - resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz" - integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map-support@^0.5.21: - version "0.5.21" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.0: - version "0.7.4" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - -space-separated-tokens@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz" - integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -streamsearch@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" - integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== - -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -string.prototype.matchall@^4.0.8: - version "4.0.10" - resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz" - integrity sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - has-symbols "^1.0.3" - internal-slot "^1.0.5" - regexp.prototype.flags "^1.5.0" - set-function-name "^2.0.0" - side-channel "^1.0.4" - -string.prototype.trim@^1.2.8: - version "1.2.8" - resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz" - integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string.prototype.trimend@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz" - integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string.prototype.trimstart@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz" - integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -stringify-entities@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz" - integrity sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g== - dependencies: - character-entities-html4 "^2.0.0" - character-entities-legacy "^3.0.0" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1: - version "7.1.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== - dependencies: - ansi-regex "^6.0.1" - -strip-bom-string@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz" - integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -style-to-object@^0.4.0: - version "0.4.4" - resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz" - integrity sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg== - dependencies: - inline-style-parser "0.1.1" - -style-to-object@^1.0.0: - version "1.0.6" - resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.6.tgz" - integrity sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA== - dependencies: - inline-style-parser "0.2.3" - -styled-jsx@5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz" - integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw== - dependencies: - client-only "0.0.1" - -sucrase@^3.32.0: - version "3.35.0" - resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz" - integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== - dependencies: - "@jridgewell/gen-mapping" "^0.3.2" - commander "^4.0.0" - glob "^10.3.10" - lines-and-columns "^1.1.6" - mz "^2.7.0" - pirates "^4.0.1" - ts-interface-checker "^0.1.9" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -tailwindcss@3.4.1: - version "3.4.1" - resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz" - integrity sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA== - dependencies: - "@alloc/quick-lru" "^5.2.0" - arg "^5.0.2" - chokidar "^3.5.3" - didyoumean "^1.2.2" - dlv "^1.1.3" - fast-glob "^3.3.0" - glob-parent "^6.0.2" - is-glob "^4.0.3" - jiti "^1.19.1" - lilconfig "^2.1.0" - micromatch "^4.0.5" - normalize-path "^3.0.0" - object-hash "^3.0.0" - picocolors "^1.0.0" - postcss "^8.4.23" - postcss-import "^15.1.0" - postcss-js "^4.0.1" - postcss-load-config "^4.0.1" - postcss-nested "^6.0.1" - postcss-selector-parser "^6.0.11" - resolve "^1.22.2" - sucrase "^3.32.0" - -tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - -tar@^4.4.8: - version "4.4.19" - resolved "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz" - integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== - dependencies: - chownr "^1.1.4" - fs-minipass "^1.2.7" - minipass "^2.9.0" - minizlib "^1.3.3" - mkdirp "^0.5.5" - safe-buffer "^5.2.1" - yallist "^3.1.1" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -thenify-all@^1.0.0: - version "1.6.0" - resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz" - integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== - dependencies: - thenify ">= 3.1.0 < 4" - -"thenify@>= 3.1.0 < 4": - version "3.3.1" - resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz" - integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== - dependencies: - any-promise "^1.0.0" - -thingies@^1.20.0: - version "1.21.0" - resolved "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz" - integrity sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -tree-dump@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz" - integrity sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ== - -trim-lines@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz" - integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== - -trough@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz" - integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== - -ts-api-utils@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz" - integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== - -ts-interface-checker@^0.1.9: - version "0.1.13" - resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz" - integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== - -ts-pattern@^5.0.6: - version "5.2.0" - resolved "https://registry.npmjs.org/ts-pattern/-/ts-pattern-5.2.0.tgz" - integrity sha512-aGaSpOlDcns7ZoeG/OMftWyQG1KqPVhgplhJxNCvyIXqWrumM5uIoOSarw/hmmi/T1PnuQ/uD8NaFHvLpHicDg== - -tsconfig-paths@^3.15.0: - version "3.15.0" - resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz" - integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.2" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tslib@^2, tslib@^2.0.0, tslib@^2.0.3, tslib@^2.4.0, tslib@^2.4.1, tslib@2: - version "2.6.2" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - -typanion@^3.12.1, typanion@^3.8.0: - version "3.14.0" - resolved "https://registry.npmjs.org/typanion/-/typanion-3.14.0.tgz" - integrity sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug== - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^4.10.0: - version "4.20.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-4.20.1.tgz" - integrity sha512-R6wDsVsoS9xYOpy8vgeBlqpdOyzJ12HNfQhC/aAKWM3YoCV9TtunJzh/QpkMgeDhkoynDcw5f1y+qF9yc/HHyg== - -typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" - -typed-array-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz" - integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" - -typed-array-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz" - integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" - -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - is-typed-array "^1.1.9" - -typescript@>=3.3.1, typescript@>=4.2.0, typescript@5.3.3: - version "5.3.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz" - integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - -unified@^11.0.0, unified@^11.0.4: - version "11.0.5" - resolved "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz" - integrity sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA== - dependencies: - "@types/unist" "^3.0.0" - bail "^2.0.0" - devlop "^1.0.0" - extend "^3.0.0" - is-plain-obj "^4.0.0" - trough "^2.0.0" - vfile "^6.0.0" - -unist-util-is@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz" - integrity sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw== - dependencies: - "@types/unist" "^3.0.0" - -unist-util-position-from-estree@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz" - integrity sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ== - dependencies: - "@types/unist" "^3.0.0" - -unist-util-position@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz" - integrity sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA== - dependencies: - "@types/unist" "^3.0.0" - -unist-util-remove-position@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz" - integrity sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q== - dependencies: - "@types/unist" "^3.0.0" - unist-util-visit "^5.0.0" - -unist-util-stringify-position@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz" - integrity sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ== - dependencies: - "@types/unist" "^3.0.0" - -unist-util-visit-parents@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz" - integrity sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw== - dependencies: - "@types/unist" "^3.0.0" - unist-util-is "^6.0.0" - -unist-util-visit@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz" - integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg== - dependencies: - "@types/unist" "^3.0.0" - unist-util-is "^6.0.0" - unist-util-visit-parents "^6.0.0" - -update-browserslist-db@^1.0.13: - version "1.0.13" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz" - integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -util-deprecate@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -uuid@^9.0.1: - version "9.0.1" - resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz" - integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== - -vfile-location@^5.0.0: - version "5.0.2" - resolved "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.2.tgz" - integrity sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg== - dependencies: - "@types/unist" "^3.0.0" - vfile "^6.0.0" - -vfile-message@^4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz" - integrity sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw== - dependencies: - "@types/unist" "^3.0.0" - unist-util-stringify-position "^4.0.0" - -vfile@^6.0.0, vfile@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz" - integrity sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw== - dependencies: - "@types/unist" "^3.0.0" - unist-util-stringify-position "^4.0.0" - vfile-message "^4.0.0" - -web-namespaces@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz" - integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-builtin-type@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz" - integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw== - dependencies: - function.prototype.name "^1.1.5" - has-tostringtag "^1.0.0" - is-async-function "^2.0.0" - is-date-object "^1.0.5" - is-finalizationregistry "^1.0.2" - is-generator-function "^1.0.10" - is-regex "^1.1.4" - is-weakref "^1.0.2" - isarray "^2.0.5" - which-boxed-primitive "^1.0.2" - which-collection "^1.0.1" - which-typed-array "^1.1.9" - -which-collection@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz" - integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== - dependencies: - is-map "^2.0.1" - is-set "^2.0.1" - is-weakmap "^2.0.1" - is-weakset "^2.0.1" - -which-typed-array@^1.1.11, which-typed-array@^1.1.13, which-typed-array@^1.1.9: - version "1.1.13" - resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^3.0.0, yallist@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^2.0.0, yaml@^2.3.1, yaml@^2.3.4: - version "2.3.4" - resolved "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz" - integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs@^17.7.2: - version "17.7.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" - integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -zod@^3.22.4: - version "3.23.8" - resolved "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz" - integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== - -zwitch@^2.0.0, zwitch@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz" - integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== \ No newline at end of file From 4ff83f460f6e3f906dd03c82b2c667f1f3d44758 Mon Sep 17 00:00:00 2001 From: Mik Watkins <63586831+Mikerniker@users.noreply.github.com> Date: Tue, 22 Oct 2024 23:49:14 +0800 Subject: [PATCH 142/206] Fix broken links in intro-to-solana-mobile.md (#582) * fix broken links * reorder placement of secret keys * capitalize SOL * fix prettier * Update content/courses/mobile/intro-to-solana-mobile.md --------- Co-authored-by: Mike MacCana --- content/courses/mobile/intro-to-solana-mobile.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/content/courses/mobile/intro-to-solana-mobile.md b/content/courses/mobile/intro-to-solana-mobile.md index 37dcad0c5..dec942daa 100644 --- a/content/courses/mobile/intro-to-solana-mobile.md +++ b/content/courses/mobile/intro-to-solana-mobile.md @@ -41,17 +41,16 @@ and returning when you're ready. If you are, let's dive in! ## Intro to Solana Mobile -Native mobile wallets hold your private keys and use them to sign and send -transactions just like web extension wallets. However native mobile wallets use -the +Native mobile wallets hold your secret keys and use them to sign and send transactions just like web extension +wallets. However native mobile wallets use the [Mobile Wallet Adapter](https://github.com/solana-mobile/mobile-wallet-adapter) (MWA) standard instead of the [Wallet Adapter](https://github.com/anza-xyz/wallet-adapter) to ensure any apps can work with any wallet. We will dig into the specifics of the MWA in a -[later lesson](/content/courses/mobile/mwa-deep-dive), but it effectively opens -a WebSocket between applications to facilitate communication. That way a +[later lesson](/content/courses/mobile/mwa-deep-dive.md), but it effectively +opens a WebSocket between applications to facilitate communication. That way a separate app can provide the wallet app with the transaction to be signed and sent, and the wallet app can respond with appropriate status updates. @@ -172,13 +171,12 @@ const account = await connection.getAccountInfo(publicKey); ``` > **NOTE:** If you need a refresher, refer to our -> [Intro to Reading Data lesson](/content/courses/intro-to-solana/intro-to-reading-data). +> [Intro to Reading Data lesson](/content/courses/intro-to-solana/intro-to-reading-data.md). ## Connecting to a Wallet When writing data to the blockchain, it must be done through a **transaction**. -Transactions need to be signed by one or more secret keys (previously referred -to as private keys) and sent to an +Transactions need to be signed by one or more secret keys and sent to an [RPC provider](https://academy.subquery.network/subquery_network/node_operators/rpc_providers/introduction.html) for processing. In almost all cases, this interaction is facilitated through a wallet application. @@ -1197,7 +1195,7 @@ to fix them: wallet installed ( like the fake wallet we installed in Prerequisites ) - You get stuck in a forever loop while calling `increment` → This is likely due to you reaching a Devnet airdrop rate limit. Take out the airdrop section in - `CounterButton` and manually send some Devnet sol to your wallet's address + `CounterButton` and manually send some Devnet SOL to your wallet's address (printed in the console) That's it! You've made your first Solana Mobile app. If you get stuck, feel free From 0e11ebf6631cd1660869705b5f2aa05a8540608a Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Tue, 22 Oct 2024 16:10:44 -0400 Subject: [PATCH 143/206] Fix slightly misleading sentence in oracles lesson. --- content/courses/connecting-to-offchain-data/oracles.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/content/courses/connecting-to-offchain-data/oracles.md b/content/courses/connecting-to-offchain-data/oracles.md index 82ce77a90..d00497335 100644 --- a/content/courses/connecting-to-offchain-data/oracles.md +++ b/content/courses/connecting-to-offchain-data/oracles.md @@ -28,11 +28,8 @@ description: Access real-world data inside a Solana program. Oracles are services that provide external data to a blockchain network. Blockchains are siloed environments that do not inherently know the outside -world. This constraint limits the use cases for decentralized applications -(dApps). Oracles solve this limitation by offering a decentralized way to get -real-world data onchain. - -Oracles can provide various types of data onchain, such as: +world. Oracles solve this limitation by offering a decentralized way to get +various types of data onchain, such as: - Results of sporting events - Weather data From 326eef20af77b4d20aef021e0d1771aee8cfeaa5 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Tue, 22 Oct 2024 16:11:10 -0400 Subject: [PATCH 144/206] Prettier --- content/courses/mobile/intro-to-solana-mobile.md | 5 +++-- content/guides/getstarted/local-rust-hello-world.md | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/content/courses/mobile/intro-to-solana-mobile.md b/content/courses/mobile/intro-to-solana-mobile.md index dec942daa..0bd866010 100644 --- a/content/courses/mobile/intro-to-solana-mobile.md +++ b/content/courses/mobile/intro-to-solana-mobile.md @@ -41,8 +41,9 @@ and returning when you're ready. If you are, let's dive in! ## Intro to Solana Mobile -Native mobile wallets hold your secret keys and use them to sign and send transactions just like web extension -wallets. However native mobile wallets use the +Native mobile wallets hold your secret keys and use them to sign and send +transactions just like web extension wallets. However native mobile wallets use +the [Mobile Wallet Adapter](https://github.com/solana-mobile/mobile-wallet-adapter) (MWA) standard instead of the [Wallet Adapter](https://github.com/anza-xyz/wallet-adapter) to ensure any apps diff --git a/content/guides/getstarted/local-rust-hello-world.md b/content/guides/getstarted/local-rust-hello-world.md index 5b87bfa4e..88b4b8692 100644 --- a/content/guides/getstarted/local-rust-hello-world.md +++ b/content/guides/getstarted/local-rust-hello-world.md @@ -228,8 +228,8 @@ library. ### Install Node.js To use node in WSL2 on Windows, please follow this -[guide to installing node in WSL2](https://learn.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-wsl) to -install node. +[guide to installing node in WSL2](https://learn.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-wsl) +to install node. ```shell sudo apt-get install curl From 0951b22d1097a802a1fab74b002fb3eef31e3961 Mon Sep 17 00:00:00 2001 From: blockiosaurus <90809591+blockiosaurus@users.noreply.github.com> Date: Wed, 23 Oct 2024 15:59:51 -0400 Subject: [PATCH 145/206] Update Close Account to reflect best practices. (#583) --- content/cookbook/accounts/close-account.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/cookbook/accounts/close-account.md b/content/cookbook/accounts/close-account.md index 76f289416..a9f03248d 100644 --- a/content/cookbook/accounts/close-account.md +++ b/content/cookbook/accounts/close-account.md @@ -37,8 +37,8 @@ fn process_instruction( .unwrap(); **source_account_info.lamports.borrow_mut() = 0; - let mut source_data = source_account_info.data.borrow_mut(); - source_data.fill(0); + source_account_info.assign(&system_program::ID); + source_account_info.realloc(0, false).map_err(Into::into) Ok(()) } From f9c3c5f466f2b3588e549f45252afd4e661e6e49 Mon Sep 17 00:00:00 2001 From: John <75003086+ZYJLiu@users.noreply.github.com> Date: Wed, 23 Oct 2024 15:25:29 -0500 Subject: [PATCH 146/206] prettier linting fix (#584) --- content/guides/getstarted/local-rust-hello-world.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/guides/getstarted/local-rust-hello-world.md b/content/guides/getstarted/local-rust-hello-world.md index 88b4b8692..5b87bfa4e 100644 --- a/content/guides/getstarted/local-rust-hello-world.md +++ b/content/guides/getstarted/local-rust-hello-world.md @@ -228,8 +228,8 @@ library. ### Install Node.js To use node in WSL2 on Windows, please follow this -[guide to installing node in WSL2](https://learn.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-wsl) -to install node. +[guide to installing node in WSL2](https://learn.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-wsl) to +install node. ```shell sudo apt-get install curl From 721160502064c9cb5b9c4121733b6f2a22bead15 Mon Sep 17 00:00:00 2001 From: Jonas Hahn Date: Thu, 24 Oct 2024 18:23:05 +0200 Subject: [PATCH 147/206] feat: Create verified-builds.md (#522) * Create verified-builds.md * Update verified-builds.md * Code Review * Update verified-builds.md * Update verified-builds.md * Update verified-builds.md * Update verified-builds.md * Add Summary, Security and Disclaimer --- content/guides/advanced/verified-builds.md | 445 +++++++++++++++++++++ 1 file changed, 445 insertions(+) create mode 100644 content/guides/advanced/verified-builds.md diff --git a/content/guides/advanced/verified-builds.md b/content/guides/advanced/verified-builds.md new file mode 100644 index 000000000..1654c13a1 --- /dev/null +++ b/content/guides/advanced/verified-builds.md @@ -0,0 +1,445 @@ +--- +date: 2024-09-26T00:00:00Z +difficulty: intermediate +title: "How to Verify a Program" +description: + "Verified builds is a way to link your program to its source code and let + everyone independently verify that the program was indeed built from that + provided source code." +tags: + - web3js +keywords: + - tutorial + - verified builds + - security.txt + - verified source code + - find a programs source code + - security + - blockchain tutorial +--- + +This guide is meant to be a reference for developers who want to implement +verified builds for their programs on Solana. We will cover what verified builds +are, how to use them, special considerations, and best practices to ensure the +authenticity of your program onchain. + +# What are verified builds? + +Verified builds ensure that the executable program you deploy to Solana’s +network matches the source code in your repository. By doing this, developers +and users can have confidence that the program running onchain corresponds +exactly to the public codebase, promoting transparency and security. + +The verification process involves comparing the hash of the onchain program with +the hash of the locally built program from the source code. This ensures no +discrepancies between the two versions. + +> A While a verified build should not be considered more secure than an +> unverified build, the build enables developers to self verify the source code +> matches what is deployed onchain. Using the source code, a developer can then +> validate what the code executes when sending a transaction. + +The verified builds pipeline was thought out and is maintained by +[Ellipsis Labs](https://ellipsislabs.xyz/) and [OtterSec](https://osec.io/). For +more details, follow the guide in the +[original verified builds](https://github.com/Ellipsis-Labs/solana-verifiable-build) +repository as well and the verify build process directly into the +[Anza](https://www.anza.xyz/) tool suite, once supported there. + +# How does it work? + +The verification process is done by comparing the hash of the onchain program +with the hash of the locally built program from the source code. You build your +program in a controlled environment using the Solana Verify CLI and Docker. This +ensures that the build process is deterministic and consistent across different +systems. Once you have the executable, you can deploy it to the Solana network. +During the build process a +[PDA](https://explorer.solana.com/address/63XDCHrwZu3mXsw2RUFb4tbNpChuUHx4eA5aJMnHkpQQ/anchor-account) +of the [verify program](https://github.com/otter-sec/otter-verify) will be +created. This PDA contains all the data necessary to verify the program. The PDA +contains the program address, git url, commit hash and the arguments used to +build the program. + +Using the data in the PDA everyone can run the verify program command locally +and check if the program was built from the provided source code. Then everyone +can verify for themselves completely trustlessly or can run their own +[verify API](https://github.com/otter-sec/solana-verified-programs-api) +maintained by [OtterSec](https://github.com/otter-sec) to provide an easy access +point for users to check the verification. You can already see these +[API calls](https://verify.osec.io/status/PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY) +being used in the +[Solana Explorer](https://explorer.solana.com/address/E1fcPKuV1UJEsTJPpab2Jr8y87ZN73i4CHTPLbWQE6CA/verified-build) +and +[SolanaFM](https://solana.fm/address/E1fcPKuV1UJEsTJPpab2Jr8y87ZN73i4CHTPLbWQE6CA/transactions?cluster=mainnet-alpha), +among other places. + +# Why should I use verified builds? + +Using verified builds provides the following benefits: + +- Security: Guarantee that the program running onchain matches the source code, + preventing malicious alterations. + +- Transparency: Allows other users and developers to validate that the onchain + program is trustworthy by comparing it with the public codebase. + +- Trust: Increase user confidence, as verified builds demonstrate that your + program's onchain behavior is aligned with your public code. When building + verifiable programs, you minimize risks associated with running unauthorized + or malicious code. It also ensures you comply with best practices and give + security researchers an easy way to contact you. + +# How do I create verified builds? + +To create verified builds, you'll need to follow these steps: + +Summary: + +- Commit your code to a public repository +- Build a verified build in docker +- Deploy the verified build +- Verify the deployed program against public API + +If you verify your program which is not build in a docker container it will most +likely fail because Solana program builds are not deterministic across different +systems. + + + +### Install the Docker and Cargo + +Install the Necessary Tools Ensure you have Docker and Cargo installed. Docker +provides a controlled build environment to ensure consistency, and Cargo is used +for managing Rust packages. + +- Docker: Follow the steps on the + [Docker website](https://docs.docker.com/engine/install/) to install Docker + for your platform. Once installed, ensure the Docker service is running + following this guide further. +- Cargo: If you don’t already have Cargo installed, you can install it by + running the following command: + +```bash +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh +``` + +### Install the Solana Verify CLI + +The Solana Verify CLI is the primary tool used to verify builds. Solana Verify +CLI is currently maintained by [Ellipsis Labs](https://ellipsislabs.xyz/) and +can be installed using Cargo. + +> The verify process will soon move into the [Anza](https://www.anza.xyz/) tool +> suite. The general way of verifying builds will stay very similar though. + +You can install it by running: + +```bash +cargo install solana-verify +``` + +If you need a specific version of the CLI, you can pin the version with: + +```bash +cargo install solana-verify --version $VERSION +``` + +If desired, you can install a version directly from a specific commit: + +```bash +cargo install solana-verify --git https://github.com/Ellipsis-Labs/solana-verifiable-build --rev 13a1db2 +``` + +### Building Verifiable Programs + +To verify against a repository it needs to have a `Cargo.lock` file in the root +directory of your repo. You can use this `Cargo.toml` example as a preset: + +```toml filename="Cargo.toml" +[workspace] +members = ["program/programs/*"] +resolver = "2" +[profile.release] +overflow-checks = true +lto = "fat" +codegen-units = 1 + +[profile.release.build-override] +opt-level = 3 +incremental = false +codegen-units = 1 +``` + +With this file in place you can then run `cargo generate-lockfile` to create a +lock file. + +To verifiably build your Solana program, navigate to the directory containing +your workspace's `Cargo.toml` file and run: + +```bash +solana-verify build +``` + +This will copy your environment into a docker container and build it in a +deterministic way. + +> Make sure that you actually deploy the verified build and don't accidentally +> overwrite it with `anchor build` or `cargo build-sbf` since these will most +> likely not result into the same hash and though your verification will fail. + +For projects with multiple programs, you can build a specific program by using +the library name (not the package name): + +```bash +solana-verify build --library-name $PROGRAM_LIB_NAME +``` + +This process ensures deterministic builds and can take some time, especially on +certain systems (e.g., M1 MacBook) because it is running within a docker +container. For faster builds, using a Linux machine running x86 architecture is +recommended. + +Once the build completes, you can retrieve the hash of the executable using the +following command: + +```bash +solana-verify get-executable-hash target/deploy/$PROGRAM_LIB_NAME.so +``` + +### Deploying Verifiable Programs + +Once you have built your program and retrieved its hash, you can deploy it to +the Solana network. It is recommended to use a multi-signature or governance +solution like [Squads Protocol](https://squads.so/protocol) for safe +deployments, but you can also directly deploy with: + +```bash +solana program deploy -u $NETWORK_URL target/deploy/$PROGRAM_LIB_NAME.so --program-id $PROGRAM_ID --upgrade-authority $UPGRADE_AUTHORITY +``` + +To verify the deployed program matches the built executable, run: + +```bash +solana-verify get-program-hash -u $NETWORK_URL $PROGRAM_ID +``` + +> You may have different versions deployed on different +> [Solana clusters](/docs/core//clusters.md) (i.e. devnet, testnet, mainnet). +> Ensure you use the the correct network URL for the desired Solana cluster you +> want to verify a program against. + +### Verifying against repositories + +To verify a program against its public repository, use: + +```bash +solana-verify verify-from-repo -u $NETWORK_URL --program-id $PROGRAM_ID https://github.com/$REPO_PATH --commit-hash $COMMIT_HASH --library-name $PROGRAM_LIB_NAME --mount-path $MOUNT_PATH +``` + +> While you run the verified build in your program directory when running +> `verify-from-repo` you need to add the `mount-path`. This will be the path to +> the folder containing the `Cargo.toml` that contains your programs lib name. + +This command compares the onchain program with the executable built from the +source at the specified commit hash. + +### Verify against public API + +Finally you can also directly verify the program against anyone that is running +the verify API:: + +```bash +solana-verify verify-from-repo --remote -um --program-id PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY https://github.com/Ellipsis-Labs/phoenix-v1 +``` + +The `--remote` flag sends a build request to the OtterSec API, which triggers a +remote build of your program. Once the build is complete, the system verifies +that the onchain hash of your program matches the hash of the generated build +artifact from your repository. + +The default is the the +[OtterSec API](https://github.com/otter-sec/solana-verified-programs-api). + +Once the build is done, which takes a while, and was successful you will be able +to see your program as verified in the +[OtterSec API for single programs](https://verify.osec.io/status/PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY) +and in the +[Solana Explorer](https://explorer.solana.com/address/PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY/verified-build) +and eventually also on the community-run website +[SolanaVerify.org](https://www.solanaverify.org/) maintained by +[0xDeep](https://x.com/0xDeep) and the +[OtterSec verified programs API](https://verify.osec.io/verified-programs) and +at last in the +[Verified Programs Dune Dashboard](https://dune.com/jonashahn/verified-programs/dedf21e1-9b71-42c8-89f9-02ed94628657) +contributing to a more healthy solana ecosystem. + + + +## Example verified build + +Here’s an example of verifying the solana-games-preset with the ID +`MkabCfyUD6rBTaYHpgKBBpBo5qzWA2pK2hrGGKMurJt` using the source code from the +repository: + +```bash +solana-verify verify-from-repo -url https://api.mainnet-beta.solana.com --program-id MkabCfyUD6rBTaYHpgKBBpBo5qzWA2pK2hrGGKMurJt https://github.com/solana-developers/solana-game-preset --library-name lumberjack --mount-path program --commit-hash eaf772fd1f21fe03a9974587f5680635e970be38 +``` + +By default the `verify-from-repo` command takes the last commit on the main +branch. You can also define a certain commit in case you want to continue +working on the repository by using the `commit-hash` parameter: +`--commit-hash eaf772fd1f21fe03a9974587f5680635e970be38` + +You can also verify using Docker images for faster verification: + +```bash +solana-verify verify-from-image -e examples/hello_world/target/deploy/hello_world.so -i ellipsislabs/hello_world_verifiable_build:latest -p 2ZrriTQSVekoj414Ynysd48jyn4AX6ZF4TTJRqHfbJfn +``` + +Finally you can also directly verify the program against the OtterSec API: + +```bash +solana-verify verify-from-repo --remote -um --program-id PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY https://github.com/Ellipsis-Labs/phoenix-v1 +``` + +The `--remote` command sends a build request to the OtterSec API, which triggers +a remote build of your program. Once the build is complete, the system verifies +that the onchain hash of your program matches the hash of the generated build +artifact from your repository. + +# Conclusion + +Using [verified builds on Solana](/content/guides/advanced/verified-builds.md) +ensures the integrity and trustworthiness of your programs on the network. By +leveraging tools like the Solana Verify CLI and Docker, you can maintain +verifiable and secure builds that align with your source code. Always take the +necessary precautions to use consistent environments, and consider governance +solutions for safe upgrades and deployments. + +## Security + Disclaimer + +While verified builds are a powerful tool for ensuring the integrity of your +Solana programs it is not completely trustless in the default setup. The docker +images are build and hosted by the Ellipsis Labs team and the Solana Foundation. + +Be aware that you are building your project in a downloaded docker image and +that your whole setup gets copied into that docker image for building including +potentially sensitive information. + +If you want to have a completely trustless setup you can build the docker images +yourself and host them on your own infrastructure. This way you can be sure that +the docker images are not tampered with. You can find the scripts to create your +own docker images in the +[Verified builds repository](https://github.com/Ellipsis-Labs/solana-verifiable-build). + +Furthermore for the remote verification you are trusting the OtterSec API and +the +[Solana Explorer](https://explorer.solana.com/address/PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY) +to a certain degree. + +The API and the Solana Explorer could potentially be compromised and show you +false information. + +If you want to have a completely trustless setup you can run the +[Verify API](https://github.com/otter-sec/solana-verified-programs-api) yourself +or run the program verification locally yourself using the `verify-from-repo` +command using the on chain verify data that is saved in a +[PDA](https://explorer.solana.com/address/63XDCHrwZu3mXsw2RUFb4tbNpChuUHx4eA5aJMnHkpQQ/anchor-account) +that is derived from the programs deploy authority and the +[verify program](https://explorer.solana.com/address/verifycLy8mB96wd9wqq3WDXQwM4oU6r42Th37Db9fC). + +The verify program is deployed by the [OtterSec team](https://osec.io/) and is +not yet frozen so it can be upgraded at any time. + +The Solana Foundation, OtterSec and the Ellipsis Labs team are not responsible +for any losses or damages that may occur from using the verified builds +pipeline. + +# Security.txt for Solana programs + +In addition to verified builds you can also add a `security.txt` file to your +program. In the future, once implemented, the `security.txt` will hold the +verifier public key for easy access to the verification data stored in the +verification PDA. The PDA containing all the information needed to build and +verify a program is derived from the programs address and the verifier pubkey. +By default this is the same pubkey that built and deployed the program. But it +can also be another pubkey that can be specified in the `security.txt`. + +The `security.txt` feature allows developers to embed contact and security +information directly within their Solana smart contracts. Inspired by +[securitytxt.org](https://securitytxt.org), this approach provides a +standardized way for security researchers to reach out to project maintainers, +even if they only know the contract's address. + +## Why use security.txt? + +For many projects, especially smaller or private ones, identifying the +developers from just the contract address can be difficult and time-consuming. +Embedding a `security.txt` file within the program ensures that security +researchers can easily contact the correct people, potentially preventing +exploits and ensuring timely bug reports. + +## How to implement security.txt + +To add a `security.txt` to your Solana program, include the following steps: + +Add the `solana-security-txt` dependency to your `Cargo.toml`: + +```toml filename="Cargo.toml" +[dependencies] +solana-security-txt = "1.1.1" +``` + +Use the `security_txt!` macro in your contract to define your security +information. You can include contact details, project URLs, and even a security +policy. Here's an example: + +```rust +#[cfg(not(feature = "no-entrypoint"))] +use {default_env::default_env, solana_security_txt::security_txt}; + +#[cfg(not(feature = "no-entrypoint"))] +security_txt! { + name: "MyProject", + project_url: "https://myproject.com", + contacts: "email:security@myproject.com,discord:security#1234", + policy: "https://myproject.com/security-policy", + + // Optional Fields + preferred_languages: "en,de", + source_code: "https://github.com/solana-developers/solana-game-preset", + source_revision: "5vJwnLeyjV8uNJSp1zn7VLW8GwiQbcsQbGaVSwRmkE4r", + source_release: "", + encryption: "", + auditors: "Verifier pubkey: 5vJwnLeyjV8uNJSp1zn7VLW8GwiQbcsQbGaVSwRmkE4r", + acknowledgements: "Thank you to our bug bounty hunters!" +} +``` + +Once the `security.txt` information is embedded in your program, it can be +easily queried via tools like the Solana Explorer, ensuring that your contact +and security details are available to anyone looking to report potential issues. + +## Best practices + +- Use Links: For information likely to change (e.g., contact details), it's + recommended to link to a web page rather than hard-coding them into the + contract. This avoids the need for frequent program upgrades. + +- Verification: Before deploying, verify the format and content using the + `query-security-txt` tool, which can validate both onchain programs and local + binaries: + +```bash +query-security-txt target/bpfel-unknown-unknown/release/my_contract.so +``` + +By embedding security contact information directly into your contract, you make +it easier for researchers to reach you, fostering better security and +communication within the Solana ecosystem. + +This is +[an example of how security.txt looks in the Solana Explorer](https://explorer.solana.com/address/HPxKXnBN4vJ8RjpdqDCU7gvNQHeeyGnSviYTJ4fBrDt4/security?cluster=devnet) + +The `security.txt` project is maintained by +[Neodyme Labs](https://github.com/neodyme-labs) From 752554e52b34d99d331c6ce6fb266cfaaa99202c Mon Sep 17 00:00:00 2001 From: John <75003086+ZYJLiu@users.noreply.github.com> Date: Tue, 29 Oct 2024 10:50:35 -0500 Subject: [PATCH 148/206] add and update page descriptions (#593) --- docs/advanced/lookup-tables.md | 5 ++++- docs/advanced/retry.md | 5 +++++ docs/clients/javascript-reference.md | 3 +++ docs/clients/javascript.md | 4 ++++ docs/clients/rust.md | 1 + docs/core/accounts.md | 5 +++++ docs/core/clusters.md | 4 ++++ docs/core/cpi.md | 4 ++++ docs/core/fees.md | 6 +++--- docs/core/index.md | 5 +++-- docs/core/pda.md | 4 ++++ docs/core/programs.md | 4 ++++ docs/core/tokens.md | 4 ++++ docs/core/transactions.md | 4 ++++ docs/intro/installation.md | 6 ++++-- docs/intro/quick-start/cross-program-invocation.md | 6 ++++++ docs/intro/quick-start/deploying-programs.md | 5 +++++ docs/intro/quick-start/index.md | 4 ++++ docs/intro/quick-start/program-derived-address.md | 6 ++++++ docs/intro/quick-start/reading-from-network.md | 5 +++++ docs/intro/quick-start/writing-to-network.md | 4 ++++ docs/programs/anchor/index.md | 5 ++++- 22 files changed, 90 insertions(+), 9 deletions(-) diff --git a/docs/advanced/lookup-tables.md b/docs/advanced/lookup-tables.md index 4cc2bed60..07963c094 100644 --- a/docs/advanced/lookup-tables.md +++ b/docs/advanced/lookup-tables.md @@ -1,7 +1,10 @@ --- sidebarSortOrder: 4 title: Address Lookup Tables -description: "" +description: + Learn how to use Solana Address Lookup Tables (ALTs) to efficiently handle up + to 64 addresses per transaction. Create, extend, and utilize lookup tables + using web3.js. --- Address Lookup Tables, commonly referred to as "_lookup tables_" or "_ALTs_" for diff --git a/docs/advanced/retry.md b/docs/advanced/retry.md index 51e38f467..4af07b82c 100644 --- a/docs/advanced/retry.md +++ b/docs/advanced/retry.md @@ -3,6 +3,11 @@ sidebarSortOrder: 2 title: Retrying Transactions altRoutes: - /docs/core/transactions/retry +description: + Learn how to handle dropped transactions and implement custom retry logic on + Solana. This guide covers transaction rebroadcasting, preflight checks, and + best practices for managing transaction retries to ensure reliable transaction + processing on the Solana blockchain. --- # Retrying Transactions diff --git a/docs/clients/javascript-reference.md b/docs/clients/javascript-reference.md index 92b104638..d30829b4f 100644 --- a/docs/clients/javascript-reference.md +++ b/docs/clients/javascript-reference.md @@ -1,5 +1,8 @@ --- title: Web3.js API Examples +description: + Learn how to interact with the Solana blockchain using the @solana/web3.js + library through practical code samples and explanations. --- ## Web3 API Reference Guide diff --git a/docs/clients/javascript.md b/docs/clients/javascript.md index 1d1d678bc..27509f0b9 100644 --- a/docs/clients/javascript.md +++ b/docs/clients/javascript.md @@ -2,6 +2,10 @@ sidebarLabel: JavaScript / TypeScript title: JavaScript Client for Solana sidebarSortOrder: 2 +description: + Learn how to interact with Solana using the JavaScript/TypeScript client + library (@solana/web3.js). This guide covers wallet connections, transactions, + and custom program interactions with code examples. --- ## What is Solana-Web3.js? diff --git a/docs/clients/rust.md b/docs/clients/rust.md index 767e5626c..7dd221995 100644 --- a/docs/clients/rust.md +++ b/docs/clients/rust.md @@ -2,6 +2,7 @@ sidebarLabel: Rust title: Rust Client for Solana sidebarSortOrder: 1 +description: Learn how to use Solana's Rust crates for development. --- Solana's Rust crates are diff --git a/docs/core/accounts.md b/docs/core/accounts.md index 7a05be137..c43d7984f 100644 --- a/docs/core/accounts.md +++ b/docs/core/accounts.md @@ -2,6 +2,11 @@ sidebarSortOrder: 1 sidebarLabel: Solana Account Model title: Solana Account Model +description: + Learn about Solana's account model, including how accounts store data and + programs, rent mechanics, account ownership, and the relationship between + programs and data accounts. Understand the core concepts of Solana's key-value + storage system. --- On Solana, all data is stored in what are referred to as "accounts”. The way diff --git a/docs/core/clusters.md b/docs/core/clusters.md index 28c16e285..0c94a76ce 100644 --- a/docs/core/clusters.md +++ b/docs/core/clusters.md @@ -2,6 +2,10 @@ sidebarLabel: Clusters & Endpoints title: Clusters and Public RPC Endpoints sidebarSortOrder: 8 +description: + Learn about Solana's network clusters (Devnet, Testnet, and Mainnet Beta), + their public RPC endpoints, rate limits, and use cases. Learn how to connect + to different Solana networks for development, testing, and production. --- The Solana blockchain has several different groups of validators, known as diff --git a/docs/core/cpi.md b/docs/core/cpi.md index e330d7724..6a6add62b 100644 --- a/docs/core/cpi.md +++ b/docs/core/cpi.md @@ -2,6 +2,10 @@ title: Cross Program Invocation (CPI) sidebarLabel: Cross Program Invocation sidebarSortOrder: 6 +description: + Learn about Cross Program Invocation (CPI) on Solana - how programs can call + instructions on other programs, handle PDA signers, and compose functionality + across the Solana network. --- A Cross Program Invocation (CPI) refers to when one program invokes the diff --git a/docs/core/fees.md b/docs/core/fees.md index 126645e49..855223b99 100644 --- a/docs/core/fees.md +++ b/docs/core/fees.md @@ -2,9 +2,9 @@ title: Fees on Solana sidebarSortOrder: 3 description: - "Your guide to transaction fees on Solana -- small fees paid to process - instructions on the network, based on computation and an optional - prioritization fee." + Learn about Solana's fee structure including transaction fees, prioritization + fees, and rent costs. Understand how fees are calculated, collected and + distributed across the network. keywords: - instruction fee - processing fee diff --git a/docs/core/index.md b/docs/core/index.md index 549e9074d..83c414bda 100644 --- a/docs/core/index.md +++ b/docs/core/index.md @@ -2,8 +2,9 @@ title: Core Concepts sidebarSortOrder: 2 description: - "Understanding these core concepts are very important to maximize your success - as a Solana blockchain developer." + Learn essential Solana blockchain concepts including accounts, transactions, + programs, programd derived addresses, cross program invocations, and how + tokens work on Solana. --- Build a strong understanding of the core concepts that make Solana different diff --git a/docs/core/pda.md b/docs/core/pda.md index 2e155eb2e..6c7d5ec9d 100644 --- a/docs/core/pda.md +++ b/docs/core/pda.md @@ -2,6 +2,10 @@ title: Program Derived Address (PDA) sidebarLabel: Program Derived Address sidebarSortOrder: 5 +description: + Learn about Program Derived Addresses (PDAs) on Solana - deterministic account + addresses that enable secure program signing. Understand PDA derivation, + canonical bumps, and how to create PDA accounts. --- Program Derived Addresses (PDAs) provide developers on Solana with two main use diff --git a/docs/core/programs.md b/docs/core/programs.md index 5622a4c0d..89e34cdad 100644 --- a/docs/core/programs.md +++ b/docs/core/programs.md @@ -2,6 +2,10 @@ title: Programs sidebarLabel: Programs on Solana sidebarSortOrder: 4 +description: + Learn about Solana programs (smart contracts) and how to develop them using + Rust or the Anchor framework. Understand program deployment, upgrades, and + verification on the Solana network. --- In the Solana ecosystem, "smart contracts" are called programs. Each diff --git a/docs/core/tokens.md b/docs/core/tokens.md index 32b147741..8122b119f 100644 --- a/docs/core/tokens.md +++ b/docs/core/tokens.md @@ -1,6 +1,10 @@ --- title: "Tokens on Solana" sidebarSortOrder: 7 +description: + Learn about Solana tokens (SPL Tokens) including fungible and non-fungible + tokens, Token Program, Token Extensions Program, mint accounts, token + accounts, and practical examples for creating and managing tokens on Solana. --- Tokens are digital assets that represent ownership over diverse categories of diff --git a/docs/core/transactions.md b/docs/core/transactions.md index 560d771dd..edfd6d5f8 100644 --- a/docs/core/transactions.md +++ b/docs/core/transactions.md @@ -1,6 +1,10 @@ --- title: "Transactions and Instructions" sidebarSortOrder: 2 +description: + Learn about Solana transactions and instructions - the fundamental building + blocks for interacting with the Solana blockchain. Understand transaction + structure and instruction composition with practical examples. --- On Solana, we send [transactions](/docs/core/transactions#transaction) to diff --git a/docs/intro/installation.md b/docs/intro/installation.md index 67bc80b21..c18dabeaf 100644 --- a/docs/intro/installation.md +++ b/docs/intro/installation.md @@ -3,8 +3,10 @@ title: Installation seoTitle: Install the Solana CLI and Anchor sidebarSortOrder: 1 description: - "Easily setup your local development environment for Solana development on - Linux, Mac or Windows. Including installing Rust, the Solana CLI, and Anchor." + A comprehensive guide to setting up your local Solana development environment. + Learn how to install Rust, the Solana CLI, and Anchor Framework on Windows + (WSL), Linux, and Mac. Includes step-by-step instructions for creating + wallets, requesting airdrops, and running a local validator. altRoutes: - /developers/guides/getstarted/setup-local-development - /docs/install diff --git a/docs/intro/quick-start/cross-program-invocation.md b/docs/intro/quick-start/cross-program-invocation.md index 5bac88834..f3aafb4c9 100644 --- a/docs/intro/quick-start/cross-program-invocation.md +++ b/docs/intro/quick-start/cross-program-invocation.md @@ -2,6 +2,12 @@ sidebarLabel: Cross Program Invocation title: Cross Program Invocation sidebarSortOrder: 5 +description: + Learn how to implement Cross Program Invocations (CPIs) in Solana programs + using the Anchor framework. This tutorial demonstrates how to transfer SOL + between accounts, interact with the System Program, and handle Program Derived + Addresses (PDAs) in CPIs. Perfect for developers looking to build composable + Solana programs. --- In this section, we'll update the CRUD program from the previous PDA section to diff --git a/docs/intro/quick-start/deploying-programs.md b/docs/intro/quick-start/deploying-programs.md index 0d5dec835..57c78a01d 100644 --- a/docs/intro/quick-start/deploying-programs.md +++ b/docs/intro/quick-start/deploying-programs.md @@ -2,6 +2,11 @@ sidebarLabel: Deploying Programs title: Deploying Your First Solana Program sidebarSortOrder: 3 +description: + Learn how to build, deploy, and test your first Solana program using the + Anchor framework and Solana Playground. This beginner-friendly guide walks + through creating a simple program, deploying it to devnet, running tests, and + closing the program. --- In this section, we'll build, deploy, and test a simple Solana program using the diff --git a/docs/intro/quick-start/index.md b/docs/intro/quick-start/index.md index fa361a2d7..d62ab6542 100644 --- a/docs/intro/quick-start/index.md +++ b/docs/intro/quick-start/index.md @@ -2,6 +2,10 @@ sidebarLabel: Quick Start title: Solana Quick Start Guide sidebarSortOrder: 0 +description: + Learn Solana development basics. Create your first program, understand + accounts, send transactions, and explore PDAs and CPIs using Solana Playground + - no installation required. --- Welcome to the Solana Quick Start Guide! This hands-on guide will introduce you diff --git a/docs/intro/quick-start/program-derived-address.md b/docs/intro/quick-start/program-derived-address.md index eba31e76e..c5d4ed2cb 100644 --- a/docs/intro/quick-start/program-derived-address.md +++ b/docs/intro/quick-start/program-derived-address.md @@ -2,6 +2,12 @@ sidebarLabel: Program Derived Address title: Program Derived Address sidebarSortOrder: 4 +description: + Learn how to build a CRUD (Create, Read, Update, Delete) Solana program using + Program Derived Addresses (PDAs) and the Anchor framework. This step-by-step + guide demonstrates how to create, update, and delete on-chain message accounts + using PDAs, implement account validation, and write tests. Perfect for + developers looking to understand how to use PDAs in Solana programs. --- In this section, we'll walk through how to build a basic CRUD (Create, Read, diff --git a/docs/intro/quick-start/reading-from-network.md b/docs/intro/quick-start/reading-from-network.md index 669c5bdea..e354c28ff 100644 --- a/docs/intro/quick-start/reading-from-network.md +++ b/docs/intro/quick-start/reading-from-network.md @@ -2,6 +2,11 @@ sidebarLabel: Reading from Network title: Reading from Network sidebarSortOrder: 1 +description: + Learn how to read data from the Solana blockchain network. This guide covers + fetching wallet accounts, program accounts, and token mint accounts using + JavaScript/TypeScript, with practical examples using the Solana web3.js + library. --- Now, let's explore how to read data from the Solana network. We'll fetch a few diff --git a/docs/intro/quick-start/writing-to-network.md b/docs/intro/quick-start/writing-to-network.md index 4d28602dd..8d3e55154 100644 --- a/docs/intro/quick-start/writing-to-network.md +++ b/docs/intro/quick-start/writing-to-network.md @@ -2,6 +2,10 @@ sidebarLabel: Writing to Network title: Writing to Network sidebarSortOrder: 2 +description: + Learn how to interact with the Solana network by sending transactions and + instructions. Follow step-by-step examples to transfer SOL tokens and create + new tokens using the System Program and Token Extensions Program. --- Now that we've explored reading from the Solana network, let's learn how to diff --git a/docs/programs/anchor/index.md b/docs/programs/anchor/index.md index 7bf499b86..169fdb33c 100644 --- a/docs/programs/anchor/index.md +++ b/docs/programs/anchor/index.md @@ -1,6 +1,9 @@ --- title: Getting Started with Anchor -description: Getting Started with Anchor +description: + Learn how to build Solana programs using the Anchor framework. This + comprehensive guide covers creating, building, testing, and deploying Solana + smart contracts with Anchor. sidebarLabel: Anchor Framework sidebarSortOrder: 1 altRoutes: From a30da8316f08702c550e6f597abee828fdb2e24b Mon Sep 17 00:00:00 2001 From: Jonas Hahn Date: Wed, 30 Oct 2024 19:56:49 +0100 Subject: [PATCH 149/206] Add links to C# and gdscript sdks (#594) --- docs/intro/dev.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/intro/dev.md b/docs/intro/dev.md index 42426b5db..9dffc3bc9 100644 --- a/docs/intro/dev.md +++ b/docs/intro/dev.md @@ -78,6 +78,8 @@ developers interact with the Solana network in most popular languages : | Go | [solana-go](https://github.com/gagliardetto/solana-go) | | Kotlin | [solanaKT](https://github.com/metaplex-foundation/SolanaKT) or [sol4k](https://github.com/sol4k/sol4k) | | Dart | [solana](https://github.com/espresso-cash/espresso-cash-public/tree/master/packages/solana) | +| C# | [solnet](https://github.com/bmresearch/Solnet) | +| GdScript | [godot](https://github.com/Virus-Axel/godot-solana-sdk/) | You'll also need a connection with an RPC to interact with the network. You can either work with a [RPC infrastructure provider](https://solana.com/rpc) or From ccf3a4e2c59410802b384dee59e296fcd8c12b1c Mon Sep 17 00:00:00 2001 From: ZZ Date: Thu, 31 Oct 2024 23:14:23 +0800 Subject: [PATCH 150/206] Update subscribing-events.md (#591) wallet.publicKey is not a function --- content/cookbook/development/subscribing-events.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/cookbook/development/subscribing-events.md b/content/cookbook/development/subscribing-events.md index 2fc52b7f2..fc498b188 100644 --- a/content/cookbook/development/subscribing-events.md +++ b/content/cookbook/development/subscribing-events.md @@ -35,7 +35,7 @@ import { clusterApiUrl, Connection, Keypair } from "@solana/web3.js"; // Register a callback to listen to the wallet (ws subscription) connection.onAccountChange( - wallet.publicKey(), + wallet.publicKey, (updatedAccountInfo, context) => console.log("Updated account info: ", updatedAccountInfo), "confirmed", From 3b8e28d7bc8b3ac98b11ba7756ca5cc0bc8a0da1 Mon Sep 17 00:00:00 2001 From: Melody Serra Date: Thu, 31 Oct 2024 11:32:15 -0400 Subject: [PATCH 151/206] Update index.md (#596) added some definitions --- docs/intro/quick-start/index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/intro/quick-start/index.md b/docs/intro/quick-start/index.md index d62ab6542..efa0ef282 100644 --- a/docs/intro/quick-start/index.md +++ b/docs/intro/quick-start/index.md @@ -73,6 +73,10 @@ You should now see your wallet's address, SOL balance, and connected cluster your browser cache will remove your saved wallet. +Some definitions you may find helpful: +- *wallet address*: a unique identifier for a digital wallet, used to send or receive crypto assets on a blockchain. Each wallet address is a string of alphanumeric characters that represents a specific destination on the network. Think of it like an email address or bank account number—if someone wants to send you cryptocurrency, they need your wallet address to direct the funds. +- *connected cluster*: a set of network nodes that work together to maintain a synchronized copy of the blockchain. These clusters are essential for providing a decentralized, distributed ledger and powering the Solana network by validating transactions, securing the chain, and executing programs (smart contracts). + ### Get Devnet SOL Before we start building, we first need some devnet SOL. From 37bbb70b314109edffcf8d03fea9dac08b34ba63 Mon Sep 17 00:00:00 2001 From: John <75003086+ZYJLiu@users.noreply.github.com> Date: Tue, 5 Nov 2024 12:22:26 -0600 Subject: [PATCH 152/206] fix prettier lint error (#603) --- docs/intro/quick-start/index.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/intro/quick-start/index.md b/docs/intro/quick-start/index.md index efa0ef282..b582d3258 100644 --- a/docs/intro/quick-start/index.md +++ b/docs/intro/quick-start/index.md @@ -74,8 +74,17 @@ You should now see your wallet's address, SOL balance, and connected cluster Some definitions you may find helpful: -- *wallet address*: a unique identifier for a digital wallet, used to send or receive crypto assets on a blockchain. Each wallet address is a string of alphanumeric characters that represents a specific destination on the network. Think of it like an email address or bank account number—if someone wants to send you cryptocurrency, they need your wallet address to direct the funds. -- *connected cluster*: a set of network nodes that work together to maintain a synchronized copy of the blockchain. These clusters are essential for providing a decentralized, distributed ledger and powering the Solana network by validating transactions, securing the chain, and executing programs (smart contracts). + +- _wallet address_: a unique identifier for a digital wallet, used to send or + receive crypto assets on a blockchain. Each wallet address is a string of + alphanumeric characters that represents a specific destination on the network. + Think of it like an email address or bank account number—if someone wants to + send you cryptocurrency, they need your wallet address to direct the funds. +- _connected cluster_: a set of network nodes that work together to maintain a + synchronized copy of the blockchain. These clusters are essential for + providing a decentralized, distributed ledger and powering the Solana network + by validating transactions, securing the chain, and executing programs (smart + contracts). ### Get Devnet SOL From 349134fee654bd04025f7490c1e17716dd1b1eed Mon Sep 17 00:00:00 2001 From: John <75003086+ZYJLiu@users.noreply.github.com> Date: Tue, 5 Nov 2024 12:36:49 -0600 Subject: [PATCH 153/206] Add native rust program basics section (#602) * native rust program basics * . --- docs/programs/anchor/index.md | 2 +- docs/programs/deploying.md | 462 ++++---- docs/programs/examples.md | 2 +- docs/programs/lang-rust.md | 387 ------- docs/programs/rust/index.md | 474 ++++++++ docs/programs/rust/program-structure.md | 1407 +++++++++++++++++++++++ 6 files changed, 2153 insertions(+), 581 deletions(-) delete mode 100644 docs/programs/lang-rust.md create mode 100644 docs/programs/rust/index.md create mode 100644 docs/programs/rust/program-structure.md diff --git a/docs/programs/anchor/index.md b/docs/programs/anchor/index.md index 169fdb33c..2f66ecd0e 100644 --- a/docs/programs/anchor/index.md +++ b/docs/programs/anchor/index.md @@ -5,7 +5,7 @@ description: comprehensive guide covers creating, building, testing, and deploying Solana smart contracts with Anchor. sidebarLabel: Anchor Framework -sidebarSortOrder: 1 +sidebarSortOrder: 0 altRoutes: - /docs/programs/debugging - /docs/programs/lang-c diff --git a/docs/programs/deploying.md b/docs/programs/deploying.md index 394c4de7b..8b82817c5 100644 --- a/docs/programs/deploying.md +++ b/docs/programs/deploying.md @@ -1,25 +1,282 @@ --- title: "Deploying Programs" description: - "Deploying onchain programs can be done using the Solana CLI using the + Deploying onchain programs can be done using the Solana CLI using the Upgradable BPF loader to upload the compiled byte-code to the Solana - blockchain." -sidebarSortOrder: 3 + blockchain. +sidebarSortOrder: 2 --- -Solana onchain programs (otherwise known as "smart contracts") are stored in -"executable" accounts on Solana. These accounts are identical to any other -account but with the exception of: +Solana programs are stored in "executable" accounts on the network. These +accounts contain the program's compiled bytecode that define the instructions +users invoke to interact with the program. -- having the "executable" flag enabled, and -- the owner being assigned to a BPF loader +## CLI Commands -Besides those exceptions, they are governed by the same runtime rules as -non-executable accounts, hold SOL tokens for rent fees, and store a data buffer -which is managed by the BPF loader program. The latest BPF loader is called the -"Upgradeable BPF Loader". +The section is intented as a reference for the basic CLI commands for building +and deploying Solana programs. For a step-by-step guide on creating your first +program, start with [Developing Programs in Rust](/docs/programs/rust). -## Overview of the Upgradeable BPF Loader +### Build Program + +To build your program, use the `cargo build-sbf` command. + +```shell +cargo build-sbf +``` + +This command will: + +1. Compile your program +2. Create a `target/deploy` directory +3. Generate a `.so` file, where `` matches your + program's name in `Cargo.toml` + +The output `.so` file contains your program's compiled bytecode that will be +stored in a Solana account when you deploy your program. + +### Deploy Program + +To deploy your program, use the `solana program deploy` command followed by the +path to the `.so` file created by the `cargo build-sbf` command. + +```shell +solana program deploy ./target/deploy/your_program.so +``` + +During times of congestion, there are a few additional flags you can use to help +with program deployment. + +- `--with-compute-unit-price`: Set compute unit price for transaction, in + increments of 0.000001 lamports (micro-lamports) per compute unit. +- `--max-sign-attempts`: Maximum number of attempts to sign or resign + transactions after blockhash expiration. If any transactions sent during the + program deploy are still unconfirmed after the initially chosen recent + blockhash expires, those transactions will be resigned with a new recent + blockhash and resent. Use this setting to adjust the maximum number of + transaction signing iterations. Each blockhash is valid for about 60 seconds, + which means using the default value of 5 will lead to sending transactions for + at least 5 minutes or until all transactions are confirmed,whichever comes + first. [default: 5] +- `--use-rpc`: Send write transactions to the configured RPC instead of + validator TPUs. This flag requires a stake-weighted RPC connection. + +You can use the flags individually or combine them together. For example: + +```shell +solana program deploy ./target/deploy/your_program.so --with-compute-unit-price 10000 --max-sign-attempts 1000 --use-rpc +``` + +- Use the + [Priority Fee API by Helius](https://docs.helius.dev/guides/priority-fee-api) + to get an estimate of the priority fee to set with the + `--with-compute-unit-price` flag. + +- Get a + [stake-weighted](https://solana.com/developers/guides/advanced/stake-weighted-qos) + RPC connection from [Helius](https://www.helius.dev/) or + [Trition](https://triton.one/) to use with the `--use-rpc` flag. The + `--use-rpc` flag should only be used with a stake-weighted RPC connection. + +To update your default RPC URL with a custom RPC endpoint, use the +`solana config set` command. + +```shell +solana config set --url +``` + +You can view the list of programs you've deployed using the +`solana program show --programs` command. + +```shell +solana program show --programs +``` + +Example output: + +``` +Program Id | Slot | Authority | Balance +2w3sK6CW7Hy1Ljnz2uqPrQsg4KjNZxD4bDerXDkSX3Q1 | 133132 | 4kh6HxYZiAebF8HWLsUWod2EaQQ6iWHpHYCz8UcmFbM1 | 0.57821592 SOL +``` + +### Update Program + +A program's update authority can modify an existing Solana program by deploying +a new `.so` file to the same program ID. + +To update an existing Solana program: + +- Make changes to your program source code +- Run `cargo build-sbf` to generate an updated `.so` file +- Run `solana program deploy ./target/deploy/your_program.so` to deploy the + updated `.so` file + +The update authority can be changed using the +`solana program set-upgrade-authority` command. + +```shell +solana program set-upgrade-authority --new-upgrade-authority +``` + +### Immutable Program + +A program can be made immutable by removing its update authority. This is an +irreversible action. + +```shell +solana program set-upgrade-authority --final +``` + +You can specify that program should be immutable on deployment by setting the +`--final` flag when deploying the program. + +```shell +solana program deploy ./target/deploy/your_program.so --final +``` + +### Close Program + +You can close your Solana program to reclaim the SOL allocated to the account. +Closing a program is irreversible, so it should be done with caution. To close a +program, use the `solana program close ` command. For example: + +```shell filename="Terminal" +solana program close 4Ujf5fXfLx2PAwRqcECCLtgDxHKPznoJpa43jUBxFfMz +--bypass-warning +``` + +Example output: + +``` +Closed Program Id 4Ujf5fXfLx2PAwRqcECCLtgDxHKPznoJpa43jUBxFfMz, 0.1350588 SOL +reclaimed +``` + +Note that once a program is closed, its program ID cannot be reused. Attempting +to deploy a program with a previously closed program ID will result in an error. + +``` +Error: Program 4Ujf5fXfLx2PAwRqcECCLtgDxHKPznoJpa43jUBxFfMz has been closed, use +a new Program Id +``` + +If you need to redeploy a program after closing it, you must generate a new +program ID. To generate a new keypair for the program, run the following +command: + +```shell filename="Terminal" +solana-keygen new -o ./target/deploy/your_program-keypair.json --force +``` + +Alternatively, you can delete the existing keypair file and run +`cargo build-sbf` again, which will generate a new keypair file. + +### Program Buffer Accounts + +Deploying a program requires multiple transactions due to the 1232 byte limit +for transactions on Solana. An intermediate step of the deploy process involves +writing the program's byte-code to temporary "buffer account". + +This buffer account is automatically closed after successful program deployment. +However, if the deployment fails, the buffer account remains and you can either: + +- Continue the deployment using the existing buffer account +- Close the buffer account to reclaim the allocated SOL (rent) + +You can check if you have any open buffer accounts by using the +`solana program show --buffers` command. + +```shell +solana program show --buffers +``` + +Example output: + +``` +Buffer Address | Authority | Balance +5TRm1DxYcXLbSEbbxWcQbEUCce7L4tVgaC6e2V4G82pM | 4kh6HxYZiAebF8HWLsUWod2EaQQ6iWHpHYCz8UcmFbM1 | 0.57821592 SOL +``` + +You can continue to the deployment using +`solana program deploy --buffer `. + +For example: + +```shell +solana program deploy --buffer 5TRm1DxYcXLbSEbbxWcQbEUCce7L4tVgaC6e2V4G82pM +``` + +Expected output on successful deployment: + +``` +Program Id: 2w3sK6CW7Hy1Ljnz2uqPrQsg4KjNZxD4bDerXDkSX3Q1 + +Signature: 3fsttJFskUmvbdL5F9y8g43rgNea5tYZeVXbimfx2Up5viJnYehWe3yx45rQJc8Kjkr6nY8D4DP4V2eiSPqvWRNL +``` + +To close buffer accounts, use the `solana program close --buffers` command. + +```shell +solana program close --buffers +``` + +### ELF Dump + +The SBF shared object internals can be dumped to a text file to gain more +insight into a program's composition and what it may be doing at runtime. The +dump will contain both the ELF information as well as a list of all the symbols +and the instructions that implement them. Some of the BPF loader's error log +messages will reference specific instruction numbers where the error occurred. +These references can be looked up in the ELF dump to identify the offending +instruction and its context. + +```shell +cargo build-bpf --dump +``` + +The file will be output to `/target/deploy/your_program-dump.txt`. + +## Program Deployment Process + +Deploying a program on Solana requires multiple transactions, due to the max +size limit of 1232 bytes for Solana transactions. The Solana CLI sends these +transactions with the `solana program deploy` subcommand. The process can be +broken down into the following 3 phases: + +1. [Buffer initialization](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/cli/src/program.rs#L2113): + First, the CLI sends a transaction which + [creates a buffer account](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/cli/src/program.rs#L1903) + large enough for the byte-code being deployed. It also invokes the + [initialize buffer instruction](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/programs/bpf_loader/src/lib.rs#L320) + to set the buffer authority to restrict writes to the deployer's chosen + address. +2. [Buffer writes](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/cli/src/program.rs#L2129): + Once the buffer account is initialized, the CLI + [breaks up the program byte-code](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/cli/src/program.rs#L1940) + into ~1KB chunks and + [sends transactions at a rate of 100 transactions per second](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/client/src/tpu_client.rs#L133) + to write each chunk with + [the write buffer instruction](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/programs/bpf_loader/src/lib.rs#L334). + These transactions are sent directly to the current leader's transaction + processing (TPU) port and are processed in parallel with each other. Once all + transactions have been sent, the CLI + [polls the RPC API with batches of transaction signatures](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/client/src/tpu_client.rs#L216) + to ensure that every write was successful and confirmed. +3. [Finalization](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/cli/src/program.rs#L1807): + Once writes are completed, the CLI + [sends a final transaction](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/cli/src/program.rs#L2150) + to either + [deploy a new program](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/programs/bpf_loader/src/lib.rs#L362) + or + [upgrade an existing program](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/programs/bpf_loader/src/lib.rs#L513). + In either case, the byte-code written to the buffer account will be copied + into a program data account and verified. + +## Upgradeable BPF Loader Program + +The BPF loader program is the program that "owns" all executable accounts on +Solana. When you deploy a program, the owner of the program account is set to +the the BPF loader program. ### State accounts @@ -74,182 +331,3 @@ instructions supported by the Upgradeable BPF Loader program: 6. [Close](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/sdk/program/src/loader_upgradeable_instruction.rs#L127): Clears the data of a program data account or buffer account and reclaims the SOL used for the rent exemption deposit. - -## How `solana program deploy` works - -Deploying a program on Solana requires hundreds, if not thousands of -transactions, due to the max size limit of 1232 bytes for Solana transactions. -The Solana CLI takes care of this rapid firing of transactions with the -`solana program deploy` subcommand. The process can be broken down into the -following 3 phases: - -1. [Buffer initialization](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/cli/src/program.rs#L2113): - First, the CLI sends a transaction which - [creates a buffer account](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/cli/src/program.rs#L1903) - large enough for the byte-code being deployed. It also invokes the - [initialize buffer instruction](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/programs/bpf_loader/src/lib.rs#L320) - to set the buffer authority to restrict writes to the deployer's chosen - address. -2. [Buffer writes](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/cli/src/program.rs#L2129): - Once the buffer account is initialized, the CLI - [breaks up the program byte-code](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/cli/src/program.rs#L1940) - into ~1KB chunks and - [sends transactions at a rate of 100 transactions per second](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/client/src/tpu_client.rs#L133) - to write each chunk with - [the write buffer instruction](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/programs/bpf_loader/src/lib.rs#L334). - These transactions are sent directly to the current leader's transaction - processing (TPU) port and are processed in parallel with each other. Once all - transactions have been sent, the CLI - [polls the RPC API with batches of transaction signatures](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/client/src/tpu_client.rs#L216) - to ensure that every write was successful and confirmed. -3. [Finalization](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/cli/src/program.rs#L1807): - Once writes are completed, the CLI - [sends a final transaction](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/cli/src/program.rs#L2150) - to either - [deploy a new program](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/programs/bpf_loader/src/lib.rs#L362) - or - [upgrade an existing program](https://github.com/solana-labs/solana/blob/7409d9d2687fba21078a745842c25df805cdf105/programs/bpf_loader/src/lib.rs#L513). - In either case, the byte-code written to the buffer account will be copied - into a program data account and verified. - - - -During times of congestion it is helpful to add priority fees and increase the -max sign attempts. Using a rpc url which has -[stake weighted quality of service](https://solana.com/developers/guides/advanced/stake-weighted-qos) -enabled can also help to make program deploys more reliable. Using Solana -version ^1.18.15 is recommended. - -Example command deploying a program with the Solana CLI: - -```shell -program deploy target/deploy/your_program.so --with-compute-unit-price 10000 --max-sign-attempts 1000 --use-rpc -``` - - - -## Reclaim rent from program accounts - -The storage of data on the Solana blockchain requires the payment of -[rent](/docs/intro/rent.md), including for the byte-code for onchain programs. -Therefore as you deploy more or larger programs, the amount of rent paid to -remain rent-exempt will also become larger. - -Using the current rent cost model configuration, a rent-exempt account requires -a deposit of ~0.7 SOL per 100KB stored. These costs can have an outsized impact -on developers who deploy their own programs since -[program accounts](/docs/core/accounts.md#custom-programs) are among the largest -we typically see on Solana. - -### Reclaiming buffer accounts - -Buffer accounts are used by the Upgradeable BPF loader to temporarily store -byte-code that is in the process of being deployed on-chain. This temporary -buffer is required when upgrading programs because the currently deployed -program's byte-code cannot be affected by an in-progress upgrade. - -Unfortunately, deploys fail occasionally and instead of reusing the buffer -account, developers might retry their deployment with a new buffer and not -realize that they stored a good chunk of SOL in a forgotten buffer account from -an earlier deploy. - -Developers can check if they own any abandoned buffer accounts by using the -Solana CLI: - -```shell -solana program show --buffers --keypair ~/.config/solana/MY_KEYPAIR.json - -Buffer Address | Authority | Balance -9vXW2c3qo6DrLHa1Pkya4Mw2BWZSRYs9aoyoP3g85wCA | 2nr1bHFT86W9tGnyvmYW4vcHKsQB3sVQfnddasz4kExM | 3.41076888 SOL -``` - -And they can close those buffers to reclaim the SOL balance with the following -command: - -```shell -solana program close --buffers --keypair ~/.config/solana/MY_KEYPAIR.json -``` - -#### Fetch the owners of buffer accounts via RPC API - -The owners of all abandoned program deploy buffer accounts can be fetched via -the RPC API: - -```shell -curl http://api.mainnet-beta.solana.com -H "Content-Type: application/json" \ ---data-binary @- << EOF | jq --raw-output '.result | .[] | .account.data[0]' -{ - "jsonrpc":"2.0", "id":1, "method":"getProgramAccounts", - "params":[ - "BPFLoaderUpgradeab1e11111111111111111111111", - { - "dataSlice": {"offset": 5, "length": 32}, - "filters": [{"memcmp": {"offset": 0, "bytes": "2UzHM"}}], - "encoding": "base64" - } - ] -} -EOF -``` - -After re-encoding the base64 encoded keys into base58 and grouping by key, we -see some accounts have over 10 buffer accounts they could close, yikes! - -```shell -'BE3G2F5jKygsSNbPFKHHTxvKpuFXSumASeGweLcei6G3' => 10 buffer accounts -'EsQ179Q8ESroBnnmTDmWEV4rZLkRc3yck32PqMxypE5z' => 10 buffer accounts -'6KXtB89kAgzW7ApFzqhBg5tgnVinzP4NSXVqMAWnXcHs' => 12 buffer accounts -'FinVobfi4tbdMdfN9jhzUuDVqGXfcFnRGX57xHcTWLfW' => 15 buffer accounts -'TESAinbTL2eBLkWqyGA82y1RS6kArHvuYWfkL9dKkbs' => 42 buffer accounts -``` - -### Reclaiming program data accounts - -You may now realize that program data accounts (the accounts that store the -executable byte-code for an on-chain program) can also be closed. - -> **Note:** This does _not_ mean that _program accounts_ can be closed (those -> are immutable and can never be reclaimed, but it's fine they're pretty small). -> It's also important to keep in mind that once program data accounts are -> deleted, they can never be recreated for an existing program. Therefore, the -> corresponding program (and its program id) for any closed program data account -> is effectively disabled forever and may not be re-deployed - -While it would be uncommon for developers to need to close program data accounts -since they can be rewritten during upgrades, one potential scenario is that -since program data accounts can't be _resized_. You may wish to deploy your -program at a new address to accommodate larger executables. - -The ability to reclaim program data account rent deposits also makes testing and -experimentation on the `mainnet-beta` cluster a lot less costly since you could -reclaim everything except the transaction fees and a small amount of rent for -the program account. Lastly, this could help developers recover most of their -funds if they mistakenly deploy a program at an unintended address or on the -wrong cluster. - -To view the programs which are owned by your wallet address, you can run: - -```shell -solana -V # must be 1.7.11 or higher! -solana program show --programs --keypair ~/.config/solana/MY_KEYPAIR.json - -Program Id | Slot | Authority | Balance -CN5x9WEusU6pNH66G22SnspVx4cogWLqMfmb85Z3GW7N | 53796672 | 2nr1bHFT86W9tGnyvmYW4vcHKsQB3sVQfnddasz4kExM | 0.54397272 SOL -``` - -To close those program data accounts and reclaim their SOL balance, you can run: - -```shell -solana program close --programs --keypair ~/.config/solana/MY_KEYPAIR.json -``` - -You might be concerned about this feature allowing malicious actors to close a -program in a way that negatively impacts end users. While this is a valid -concern in general, closing program data accounts doesn't make this any more -exploitable than was already possible. - -Even without the ability to close a program data account, any upgradeable -program could be upgraded to a no-op implementation and then have its upgrade -authority cleared to make it immutable forever. This new feature for closing -program data accounts merely adds the ability to reclaim the rent deposit, -disabling a program was already technically possible. diff --git a/docs/programs/examples.md b/docs/programs/examples.md index 8e829521e..d16eaf27a 100644 --- a/docs/programs/examples.md +++ b/docs/programs/examples.md @@ -23,7 +23,7 @@ keywords: - blockchain tutorial - web3 developer - anchor -sidebarSortOrder: 2 +sidebarSortOrder: 3 --- The diff --git a/docs/programs/lang-rust.md b/docs/programs/lang-rust.md deleted file mode 100644 index 503ceaccb..000000000 --- a/docs/programs/lang-rust.md +++ /dev/null @@ -1,387 +0,0 @@ ---- -title: "Developing with Rust" -sidebarSortOrder: 4 ---- - -Solana supports writing onchain programs using the -[Rust](https://www.rust-lang.org/) programming language. - -- [Setup your local environment](/docs/intro/installation) and use the local - test validator. - -## Project Layout - -Solana Rust programs follow the typical -[Rust project layout](https://doc.rust-lang.org/cargo/guide/project-layout.html): - -```text -/inc/ -/src/ -/Cargo.toml -``` - -Solana Rust programs may depend directly on each other in order to gain access -to instruction helpers when making -[cross-program invocations](/docs/core/cpi.md). When doing so it's important to -not pull in the dependent program's entrypoint symbols because they may conflict -with the program's own. To avoid this, programs should define an `no-entrypoint` -feature in `Cargo.toml` and use to exclude the entrypoint. - -- [Define the feature](https://github.com/solana-labs/solana-program-library/blob/fca9836a2c8e18fc7e3595287484e9acd60a8f64/token/program/Cargo.toml#L12) -- [Exclude the entrypoint](https://github.com/solana-labs/solana-program-library/blob/fca9836a2c8e18fc7e3595287484e9acd60a8f64/token/program/src/lib.rs#L12) - -Then when other programs include this program as a dependency, they should do so -using the `no-entrypoint` feature. - -- [Include without entrypoint](https://github.com/solana-labs/solana-program-library/blob/fca9836a2c8e18fc7e3595287484e9acd60a8f64/token-swap/program/Cargo.toml#L22) - -## Project Dependencies - -At a minimum, Solana Rust programs must pull in the -[`solana-program`](https://crates.io/crates/solana-program) crate. - -Solana SBF programs have some [restrictions](#restrictions) that may prevent the -inclusion of some crates as dependencies or require special handling. - -For example: - -- Crates that require the architecture be a subset of the ones supported by the - official toolchain. There is no workaround for this unless that crate is - forked and SBF added to that those architecture checks. -- Crates may depend on `rand` which is not supported in Solana's deterministic - program environment. To include a `rand` dependent crate refer to - [Depending on Rand](#depending-on-rand). -- Crates may overflow the stack even if the stack overflowing code isn't - included in the program itself. For more information refer to - [Stack](/docs/programs/faq.md#stack). - -## How to Build - -First setup the environment: - -- Install the latest Rust stable from https://rustup.rs/ -- Install the latest [Solana command-line tools](/docs/intro/installation.md) - -The normal cargo build is available for building programs against your host -machine which can be used for unit testing: - -```shell -cargo build -``` - -To build a specific program, such as SPL Token, for the Solana SBF target which -can be deployed to the cluster: - -```shell -cd -cargo build-bpf -``` - -## How to Test - -Solana programs can be unit tested via the traditional `cargo test` mechanism by -exercising program functions directly. - -To help facilitate testing in an environment that more closely matches a live -cluster, developers can use the -[`program-test`](https://crates.io/crates/solana-program-test) crate. The -`program-test` crate starts up a local instance of the runtime and allows tests -to send multiple transactions while keeping state for the duration of the test. - -For more information the -[test in sysvar example](https://github.com/solana-labs/solana-program-library/blob/master/examples/rust/sysvar/tests/functional.rs) -shows how an instruction containing sysvar account is sent and processed by the -program. - -## Program Entrypoint - -Programs export a known entrypoint symbol which the Solana runtime looks up and -calls when invoking a program. Solana supports multiple versions of the BPF -loader and the entrypoints may vary between them. Programs must be written for -and deployed to the same loader. For more details see the -[FAQ section on Loaders](/docs/programs/faq.md#loaders). - -Currently there are two supported loaders -[BPF Loader](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/bpf_loader.rs#L17) -and -[BPF loader deprecated](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/bpf_loader_deprecated.rs#L14) - -They both have the same raw entrypoint definition, the following is the raw -symbol that the runtime looks up and calls: - -```rust -#[no_mangle] -pub unsafe extern "C" fn entrypoint(input: *mut u8) -> u64; -``` - -This entrypoint takes a generic byte array which contains the serialized program -parameters (program id, accounts, instruction data, etc...). To deserialize the -parameters each loader contains its own wrapper macro that exports the raw -entrypoint, deserializes the parameters, calls a user defined instruction -processing function, and returns the results. - -You can find the entrypoint macros here: - -- [BPF Loader's entrypoint macro](https://github.com/solana-labs/solana/blob/9b1199cdb1b391b00d510ed7fc4866bdf6ee4eb3/sdk/program/src/entrypoint.rs#L42) -- [BPF Loader deprecated's entrypoint macro](https://github.com/solana-labs/solana/blob/9b1199cdb1b391b00d510ed7fc4866bdf6ee4eb3/sdk/program/src/entrypoint_deprecated.rs#L38) - -The program defined instruction processing function that the entrypoint macros -call must be of this form: - -```rust -pub type ProcessInstruction = - fn(program_id: &Pubkey, accounts: &[AccountInfo], instruction_data: &[u8]) -> ProgramResult; -``` - -### Parameter Deserialization - -Each loader provides a helper function that deserializes the program's input -parameters into Rust types. The entrypoint macros automatically calls the -deserialization helper: - -- [BPF Loader deserialization](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/entrypoint.rs#L146) -- [BPF Loader deprecated deserialization](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/entrypoint_deprecated.rs#L57) - -Some programs may want to perform deserialization themselves and they can by -providing their own implementation of the [raw entrypoint](#program-entrypoint). -Take note that the provided deserialization functions retain references back to -the serialized byte array for variables that the program is allowed to modify -(lamports, account data). The reason for this is that upon return the loader -will read those modifications so they may be committed. If a program implements -their own deserialization function they need to ensure that any modifications -the program wishes to commit be written back into the input byte array. - -Details on how the loader serializes the program inputs can be found in the -[Input Parameter Serialization](/docs/programs/faq.md#input-parameter-serialization) -docs. - -### Data Types - -The loader's entrypoint macros call the program defined instruction processor -function with the following parameters: - -```rust -program_id: &Pubkey, -accounts: &[AccountInfo], -instruction_data: &[u8] -``` - -The program id is the public key of the currently executing program. - -The accounts is an ordered slice of the accounts referenced by the instruction -and represented as an -[AccountInfo](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/account_info.rs#L12) -structures. An account's place in the array signifies its meaning, for example, -when transferring lamports an instruction may define the first account as the -source and the second as the destination. - -The members of the `AccountInfo` structure are read-only except for `lamports` -and `data`. Both may be modified by the program in accordance with the "runtime -enforcement policy". Both of these members are protected by the Rust `RefCell` -construct, so they must be borrowed to read or write to them. The reason for -this is they both point back to the original input byte array, but there may be -multiple entries in the accounts slice that point to the same account. Using -`RefCell` ensures that the program does not accidentally perform overlapping -read/writes to the same underlying data via multiple `AccountInfo` structures. -If a program implements their own deserialization function care should be taken -to handle duplicate accounts appropriately. - -The instruction data is the general purpose byte array from the -[instruction's instruction data](/docs/core/transactions.md#instruction) being -processed. - -## Heap - -Rust programs implement the heap directly by defining a custom -[`global_allocator`](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/entrypoint.rs#L72) - -Programs may implement their own `global_allocator` based on its specific needs. -Refer to the [custom heap example](#examples) for more information. - -## Restrictions - -On-chain Rust programs support most of Rust's libstd, libcore, and liballoc, as -well as many 3rd party crates. - -There are some limitations since these programs run in a resource-constrained, -single-threaded environment, as well as being deterministic: - -- No access to - - `rand` - - `std::fs` - - `std::net` - - `std::future` - - `std::process` - - `std::sync` - - `std::task` - - `std::thread` - - `std::time` -- Limited access to: - - `std::hash` - - `std::os` -- Bincode is extremely computationally expensive in both cycles and call depth - and should be avoided -- String formatting should be avoided since it is also computationally - expensive. -- No support for `println!`, `print!`, the Solana [logging helpers](#logging) - should be used instead. -- The runtime enforces a limit on the number of instructions a program can - execute during the processing of one instruction. See - [computation budget](/docs/core/fees.md#compute-budget) for more information. - -## Depending on Rand - -Programs are constrained to run deterministically, so random numbers are not -available. Sometimes a program may depend on a crate that depends itself on -`rand` even if the program does not use any of the random number functionality. -If a program depends on `rand`, the compilation will fail because there is no -`get-random` support for Solana. The error will typically look like this: - -```shell -error: target is not supported, for more information see: https://docs.rs/getrandom/#unsupported-targets - --> /Users/jack/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.1.14/src/lib.rs:257:9 - | -257 | / compile_error!("\ -258 | | target is not supported, for more information see: \ -259 | | https://docs.rs/getrandom/#unsupported-targets\ -260 | | "); - | |___________^ -``` - -To work around this dependency issue, add the following dependency to the -program's `Cargo.toml`: - -```rust -getrandom = { version = "0.1.14", features = ["dummy"] } -``` - -or if the dependency is on getrandom v0.2 add: - -```rust -getrandom = { version = "0.2.2", features = ["custom"] } -``` - -## Logging - -Rust's `println!` macro is computationally expensive and not supported. Instead -the helper macro -[`msg!`](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/log.rs#L33) -is provided. - -`msg!` has two forms: - -```rust -msg!("A string"); -``` - -or - -```rust -msg!(0_64, 1_64, 2_64, 3_64, 4_64); -``` - -Both forms output the results to the program logs. If a program so wishes they -can emulate `println!` by using `format!`: - -```rust -msg!("Some variable: {:?}", variable); -``` - -## Panicking - -Rust's `panic!`, `assert!`, and internal panic results are printed to the -program logs by default. - -```shell -INFO solana_runtime::message_processor] Finalized account CGLhHSuWsp1gT4B7MY2KACqp9RUwQRhcUFfVSuxpSajZ -INFO solana_runtime::message_processor] Call SBF program CGLhHSuWsp1gT4B7MY2KACqp9RUwQRhcUFfVSuxpSajZ -INFO solana_runtime::message_processor] Program log: Panicked at: 'assertion failed: `(left == right)` - left: `1`, - right: `2`', rust/panic/src/lib.rs:22:5 -INFO solana_runtime::message_processor] SBF program consumed 5453 of 200000 units -INFO solana_runtime::message_processor] SBF program CGLhHSuWsp1gT4B7MY2KACqp9RUwQRhcUFfVSuxpSajZ failed: BPF program panicked -``` - -### Custom Panic Handler - -Programs can override the default panic handler by providing their own -implementation. - -First define the `custom-panic` feature in the program's `Cargo.toml` - -```rust -[features] -default = ["custom-panic"] -custom-panic = [] -``` - -Then provide a custom implementation of the panic handler: - -```rust -#[cfg(all(feature = "custom-panic", target_os = "solana"))] -#[no_mangle] -fn custom_panic(info: &core::panic::PanicInfo<'_>) { - solana_program::msg!("program custom panic enabled"); - solana_program::msg!("{}", info); -} -``` - -In the above snippit, the default implementation is shown, but developers may -replace that with something that better suits their needs. - -One of the side effects of supporting full panic messages by default is that -programs incur the cost of pulling in more of Rust's `libstd` implementation -into program's shared object. Typical programs will already be pulling in a fair -amount of `libstd` and may not notice much of an increase in the shared object -size. But programs that explicitly attempt to be very small by avoiding `libstd` -may take a significant impact (~25kb). To eliminate that impact, programs can -provide their own custom panic handler with an empty implementation. - -```rust -#[cfg(all(feature = "custom-panic", target_os = "solana"))] -#[no_mangle] -fn custom_panic(info: &core::panic::PanicInfo<'_>) { - // Do nothing to save space -} -``` - -## Compute Budget - -Use the system call `sol_remaining_compute_units()` to return a `u64` indicating -the number of compute units remaining for this transaction. - -Use the system call -[`sol_log_compute_units()`](https://github.com/solana-labs/solana/blob/d9b0fc0e3eec67dfe4a97d9298b15969b2804fab/sdk/program/src/log.rs#L141) -to log a message containing the remaining number of compute units the program -may consume before execution is halted - -See the [Compute Budget](/docs/core/fees.md#compute-budget) documentation for -more information. - -## ELF Dump - -The SBF shared object internals can be dumped to a text file to gain more -insight into a program's composition and what it may be doing at runtime. The -dump will contain both the ELF information as well as a list of all the symbols -and the instructions that implement them. Some of the BPF loader's error log -messages will reference specific instruction numbers where the error occurred. -These references can be looked up in the ELF dump to identify the offending -instruction and its context. - -To create a dump file: - -```shell -cd -cargo build-bpf --dump -``` - -## Examples - -The -[Solana Program Library GitHub](https://github.com/solana-labs/solana-program-library/tree/master/examples/rust) -repo contains a collection of Rust examples. - -The -[Solana Developers Program Examples GitHub](https://github.com/solana-developers/program-examples) -repo also contains a collection of beginner to intermediate Rust program -examples. diff --git a/docs/programs/rust/index.md b/docs/programs/rust/index.md new file mode 100644 index 000000000..7fe456337 --- /dev/null +++ b/docs/programs/rust/index.md @@ -0,0 +1,474 @@ +--- +title: Developing Programs in Rust +description: + Learn how to develop Solana programs using Rust, including step-by-step + instructions for creating, building, testing, and deploying smart contracts on + the Solana blockchain. +sidebarLabel: Rust Programs +sidebarSortOrder: 1 +altRoutes: + - /docs/programs/lang-rust +--- + +Solana programs are primarily developed using the Rust programming language. +This page focuses on writing Solana programs in Rust without using the Anchor +framework, an approach often referred to as writing "native Rust" programs. + +Native Rust development provides developers with direct control over their +Solana programs. However, this approach requires more manual setup and +boilerplate code compared to using the Anchor framework. This method is +recommended for developers who: + +- Seek granular control over program logic and optimizations +- Want to learn the underlying concepts before moving to higher-level frameworks + +For beginners, we recommend starting with the Anchor framework. See the +[Anchor](/docs/programs/anchor) section for more information. + +## Prerequisites + +For detailed installation instructions, visit the +[installation](/docs/intro/installation) page. + +Before you begin, ensure you have the following installed: + +- Rust: The programming language for building Solana programs. +- Solana CLI: Command-line tool for Solana development. + +## Getting Started + +The example below covers the basic steps to create your first Solana program +written in Rust. We'll create a minimal program that prints "Hello, world!" to +the program log. + + + +### Create a new Program + +First, create a new Rust project using the standard `cargo init` command with +the `--lib` flag. + +```shell filename="Terminal" +cargo init hello_world --lib +``` + +Navigate to the project directory. You should see the default `src/lib.rs` and +`Cargo.toml` files + +```shell filename="Terminal" +cd hello_world +``` + +Next, add the `solana-program` dependency. This is the minimum dependency +required to build a Solana program. + +```shell filename="Terminal" +cargo add solana-program@1.18.26 +``` + +Next, add the following snippet to `Cargo.toml`. If you don't include this +config, the `target/deploy` directory will not be generated when you build the +program. + +```toml filename="Cargo.toml" +[lib] +crate-type = ["cdylib", "lib"] +``` + +Your `Cargo.toml` file should look like the following: + +```toml filename="Cargo.toml" +[package] +name = "hello_world" +version = "0.1.0" +edition = "2021" + +[lib] +crate-type = ["cdylib", "lib"] + +[dependencies] +solana-program = "1.18.26" +``` + +Next, replace the contents of `src/lib.rs` with the following code. This is a +minimal Solana program that prints "Hello, world!" to the program log when the +program is invoked. + +The `msg!` macro is used in Solana programs to print a message to the program +log. + +```rs filename="lib.rs" +use solana_program::{ + account_info::AccountInfo, entrypoint, entrypoint::ProgramResult, msg, pubkey::Pubkey, +}; + +entrypoint!(process_instruction); + +pub fn process_instruction( + _program_id: &Pubkey, + _accounts: &[AccountInfo], + _instruction_data: &[u8], +) -> ProgramResult { + msg!("Hello, world!"); + Ok(()) +} +``` + +### Build the Program + +Next, build the program using the `cargo build-sbf` command. + +```shell filename="Terminal" +cargo build-sbf +``` + +This command generates a `target/deploy` directory containing two important +files: + +1. A `.so` file (e.g., `hello_world.so`): This is the compiled Solana program + that will be deployed to the network as a "smart contract". +2. A keypair file (e.g., `hello_world-keypair.json`): The public key of this + keypair is used as the program ID when deploying the program. + +To view the program ID, run the following command in your terminal. This command +prints the public key of the keypair at the specified file path: + +```shell filename="Terminal" +solana address -k ./target/deploy/hello_world-keypair.json +``` + +Example output: + +``` +4Ujf5fXfLx2PAwRqcECCLtgDxHKPznoJpa43jUBxFfMz +``` + +### Test the Program + +Next, test the program using the `solana-program-test` crate. Add the following +dependencies to `Cargo.toml`. + +```shell filename="Terminal" +cargo add solana-program-test@1.18.26 --dev +cargo add solana-sdk@1.18.26 --dev +cargo add tokio --dev +``` + +Add the following test to `src/lib.rs`, below the program code. This is a test +module that invokes the hello world program. + +```rs filename="lib.rs" +#[cfg(test)] +mod test { + use super::*; + use solana_program_test::*; + use solana_sdk::{signature::Signer, transaction::Transaction}; + + #[tokio::test] + async fn test_hello_world() { + let program_id = Pubkey::new_unique(); + let (mut banks_client, payer, recent_blockhash) = + ProgramTest::new("hello_world", program_id, processor!(process_instruction)) + .start() + .await; + + // Create the instruction to invoke the program + let instruction = + solana_program::instruction::Instruction::new_with_borsh(program_id, &(), vec![]); + + // Add the instruction to a new transaction + let mut transaction = Transaction::new_with_payer(&[instruction], Some(&payer.pubkey())); + transaction.sign(&[&payer], recent_blockhash); + + // Process the transaction + let transaction_result = banks_client.process_transaction(transaction).await; + assert!(transaction_result.is_ok()); + } +} +``` + +Run the test using the `cargo test-sbf` command. The program log will display +"Hello, world!". + +```shell filename="Terminal" +cargo test-sbf +``` + +Example output: + +```shell filename="Terminal" {4} /Program log: Hello, world!/ +running 1 test +[2024-10-18T21:24:54.889570000Z INFO solana_program_test] "hello_world" SBF program from /hello_world/target/deploy/hello_world.so, modified 35 seconds, 828 ms, 268 µs and 398 ns ago +[2024-10-18T21:24:54.974294000Z DEBUG solana_runtime::message_processor::stable_log] Program 1111111QLbz7JHiBTspS962RLKV8GndWFwiEaqKM invoke [1] +[2024-10-18T21:24:54.974814000Z DEBUG solana_runtime::message_processor::stable_log] Program log: Hello, world! +[2024-10-18T21:24:54.976848000Z DEBUG solana_runtime::message_processor::stable_log] Program 1111111QLbz7JHiBTspS962RLKV8GndWFwiEaqKM consumed 140 of 200000 compute units +[2024-10-18T21:24:54.976868000Z DEBUG solana_runtime::message_processor::stable_log] Program 1111111QLbz7JHiBTspS962RLKV8GndWFwiEaqKM success +test test::test_hello_world ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s +``` + +### Deploy the Program + +Next, deploy the program. When developing locally, we can use the +`solana-test-validator`. + +First, configure the Solana CLI to use the local Solana cluster. + +```shell filename="Terminal" +solana config set -ul +``` + +Example output: + +``` +Config File: /.config/solana/cli/config.yml +RPC URL: http://localhost:8899 +WebSocket URL: ws://localhost:8900/ (computed) +Keypair Path: /.config/solana/id.json +Commitment: confirmed +``` + +Open a new terminal and run the `solana-test-validators` command to start the +local validator. + +```shell filename="Terminal" +solana-test-validator +``` + +While the test validator is running, run the `solana program deploy` command in +a separate terminal to deploy the program to the local validator. + +```shell filename="Terminal" +solana program deploy ./target/deploy/hello_world.so +``` + +Example output: + +``` +Program Id: 4Ujf5fXfLx2PAwRqcECCLtgDxHKPznoJpa43jUBxFfMz +Signature: +5osMiNMiDZGM7L1e2tPHxU8wdB8gwG8fDnXLg5G7SbhwFz4dHshYgAijk4wSQL5cXiu8z1MMou5kLadAQuHp7ybH +``` + +You can inspect the program ID and transaction signature on +[Solana Explorer](https://explorer.solana.com/?cluster=custom&customUrl=http%3A%2F%2Flocalhost%3A8899). +Note that the cluster on Solana Explorer must also be localhost. The "Custom RPC +URL" option on Solana Explorer defaults to `http://localhost:8899`. + +### Invoke the Program + +Next, we'll demonstrate how to invoke the program using a Rust client. + +First create an `examples` directory and a `client.rs` file. + +```shell filename="Terminal" +mkdir -p examples +touch examples/client.rs +``` + +Add the following to `Cargo.toml`. + +```toml filename="Cargo.toml" +[[example]] +name = "client" +path = "examples/client.rs" +``` + +Add the `solana-client` dependency. + +```shell filename="Terminal" +cargo add solana-client@1.18.26 --dev +``` + +Add the following code to `examples/client.rs`. This is a Rust client script +that funds a new keypair to pay for transaction fees and then invokes the hello +world program. + +```rs filename="example/client.rs" +use solana_client::rpc_client::RpcClient; +use solana_sdk::{ + commitment_config::CommitmentConfig, + instruction::Instruction, + pubkey::Pubkey, + signature::{Keypair, Signer}, + transaction::Transaction, +}; +use std::str::FromStr; + +#[tokio::main] +async fn main() { + // Program ID (replace with your actual program ID) + let program_id = Pubkey::from_str("4Ujf5fXfLx2PAwRqcECCLtgDxHKPznoJpa43jUBxFfMz").unwrap(); + + // Connect to the Solana devnet + let rpc_url = String::from("http://127.0.0.1:8899"); + let client = RpcClient::new_with_commitment(rpc_url, CommitmentConfig::confirmed()); + + // Generate a new keypair for the payer + let payer = Keypair::new(); + + // Request airdrop + let airdrop_amount = 1_000_000_000; // 1 SOL + let signature = client + .request_airdrop(&payer.pubkey(), airdrop_amount) + .expect("Failed to request airdrop"); + + // Wait for airdrop confirmation + loop { + let confirmed = client.confirm_transaction(&signature).unwrap(); + if confirmed { + break; + } + } + + // Create the instruction + let instruction = Instruction::new_with_borsh( + program_id, + &(), // Empty instruction data + vec![], // No accounts needed + ); + + // Add the instruction to new transaction + let mut transaction = Transaction::new_with_payer(&[instruction], Some(&payer.pubkey())); + transaction.sign(&[&payer], client.get_latest_blockhash().unwrap()); + + // Send and confirm the transaction + match client.send_and_confirm_transaction(&transaction) { + Ok(signature) => println!("Transaction Signature: {}", signature), + Err(err) => eprintln!("Error sending transaction: {}", err), + } +} +``` + +Before running the script, replace the program ID in the code snippet above with +the one for your program. + +You can get your program ID by running the following command. + +```shell filename="Terminal" +solana address -k ./target/deploy/hello_world-keypair.json +``` + +```diff +#[tokio::main] +async fn main() { +- let program_id = Pubkey::from_str("4Ujf5fXfLx2PAwRqcECCLtgDxHKPznoJpa43jUBxFfMz").unwrap(); ++ let program_id = Pubkey::from_str("YOUR_PROGRAM_ID).unwrap(); + } +} +``` + +Run the client script with the following command. + +```shell filename="Terminal" +cargo run --example client +``` + +Example output: + +``` +Transaction Signature: 54TWxKi3Jsi3UTeZbhLGUFX6JQH7TspRJjRRFZ8NFnwG5BXM9udxiX77bAACjKAS9fGnVeEazrXL4SfKrW7xZFYV +``` + +You can inspect the transaction signature on +[Solana Explorer](https://explorer.solana.com/?cluster=custom&customUrl=http%3A%2F%2Flocalhost%3A8899) +(local cluster) to see "Hello, world!" in the program log. + +### Update the Program + +Solana programs can be updated by redeploying to the same program ID. Update the +program in `src/lib.rs` to print "Hello, Solana!" instead of "Hello, world!". + +```diff filename="lib.rs" +pub fn process_instruction( + _program_id: &Pubkey, + _accounts: &[AccountInfo], + _instruction_data: &[u8], +) -> ProgramResult { +- msg!("Hello, world!"); ++ msg!("Hello, Solana!"); + Ok(()) +} +``` + +Test the updated program by running the `cargo test-sbf` command. + +```shell filename="Terminal" +cargo test-sbf +``` + +You should see "Hello, Solana!" in the program log. + +```shell filename="Terminal" {4} +running 1 test +[2024-10-23T19:28:28.842639000Z INFO solana_program_test] "hello_world" SBF program from /code/misc/delete/hello_world/target/deploy/hello_world.so, modified 4 minutes, 31 seconds, 435 ms, 566 µs and 766 ns ago +[2024-10-23T19:28:28.934854000Z DEBUG solana_runtime::message_processor::stable_log] Program 1111111QLbz7JHiBTspS962RLKV8GndWFwiEaqKM invoke [1] +[2024-10-23T19:28:28.936735000Z DEBUG solana_runtime::message_processor::stable_log] Program log: Hello, Solana! +[2024-10-23T19:28:28.938774000Z DEBUG solana_runtime::message_processor::stable_log] Program 1111111QLbz7JHiBTspS962RLKV8GndWFwiEaqKM consumed 140 of 200000 compute units +[2024-10-23T19:28:28.938793000Z DEBUG solana_runtime::message_processor::stable_log] Program 1111111QLbz7JHiBTspS962RLKV8GndWFwiEaqKM success +test test::test_hello_world ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s +``` + +Run the `cargo build-sbf` command to generate an updated `.so` file. + +```shell filename="Terminal" +cargo build-sbf +``` + +Redeploy the program using the `solana program deploy` command. + +```shell filename="Terminal" +solana program deploy ./target/deploy/hello_world.so +``` + +Run the client code again and inspect the transaction signature on Solana +Explorer to see "Hello, Solana!" in the program log. + +```shell filename="Terminal" +cargo run --example client +``` + +### Close the Program + +You can close your Solana program to reclaim the SOL allocated to the account. +Closing a program is irreversible, so it should be done with caution. + +To close a program, use the `solana program close ` command. For +example: + +```shell filename="Terminal" +solana program close 4Ujf5fXfLx2PAwRqcECCLtgDxHKPznoJpa43jUBxFfMz +--bypass-warning +``` + +Example output: + +``` +Closed Program Id 4Ujf5fXfLx2PAwRqcECCLtgDxHKPznoJpa43jUBxFfMz, 0.1350588 SOL +reclaimed +``` + +Note that once a program is closed, its program ID cannot be reused. Attempting +to deploy a program with a previously closed program ID will result in an error. + +``` +Error: Program 4Ujf5fXfLx2PAwRqcECCLtgDxHKPznoJpa43jUBxFfMz has been closed, use +a new Program Id +``` + +If you need to redeploy a program with the same source code after closing a +program, you must generate a new program ID. To generate a new keypair for the +program, run the following command: + +```shell filename="Terminal" +solana-keygen new -o ./target/deploy/hello_world-keypair.json --force +``` + +Alternatively, you can delete the existing keypair file (e.g. +`./target/deploy/hello_world-keypair.json`) and run `cargo build-sbf` again, +which will generate a new keypair file. + + diff --git a/docs/programs/rust/program-structure.md b/docs/programs/rust/program-structure.md new file mode 100644 index 000000000..b07022736 --- /dev/null +++ b/docs/programs/rust/program-structure.md @@ -0,0 +1,1407 @@ +--- +title: Rust Program Structure +sidebarLabel: Program Structure +description: + Learn how to structure Solana programs in Rust, including entrypoints, state + management, instruction handling, and testing. +sidebarSortOrder: 1 +--- + +Solana programs written in Rust have minimal structural requirements, allowing +for flexibility in how code is organized. The only requirement is that a program +must have an `entrypoint`, which defines where the execution of a program +begins. + +## Program Structure + +While there are no strict rules for file structure, Solana programs typically +follow a common pattern: + +- `entrypoint.rs`: Defines the entrypoint that routes incoming instructions. +- `state.rs`: Define program-specific state (account data). +- `instructions.rs`: Defines the instructions that the program can execute. +- `processor.rs`: Defines the instruction handlers (functions) that implement + the business logic for each instruction. +- `error.rs`: Defines custom errors that the program can return. + +You can find examples in the +[Solana Program Library](https://github.com/solana-labs/solana-program-library/tree/master/token/program/src). + +## Example Program + +To demonstrate how to build a native Rust program with multiple instructions, +we'll walk through a simple counter program that implements two instructions: + +1. `InitializeCounter`: Creates and initializes a new account with an initial + value. +2. `IncrementCounter`: Increments the value stored in an existing account. + +For simplicity, the program will be implemented in a single `lib.rs` file, +though in practice you may want to split larger programs into multiple files. + + + + +```rs filename="lib.rs" +use borsh::{BorshDeserialize, BorshSerialize}; +use solana_program::{ + account_info::{next_account_info, AccountInfo}, + entrypoint, + entrypoint::ProgramResult, + msg, + program::invoke, + program_error::ProgramError, + pubkey::Pubkey, + system_instruction, + sysvar::{rent::Rent, Sysvar}, +}; + +// Program entrypoint +entrypoint!(process_instruction); + +// Function to route instructions to the correct handler +pub fn process_instruction( + program_id: &Pubkey, + accounts: &[AccountInfo], + instruction_data: &[u8], +) -> ProgramResult { + // Unpack instruction data + let instruction = CounterInstruction::unpack(instruction_data)?; + + // Match instruction type + match instruction { + CounterInstruction::InitializeCounter { initial_value } => { + process_initialize_counter(program_id, accounts, initial_value)? + } + CounterInstruction::IncrementCounter => process_increment_counter(program_id, accounts)?, + }; + Ok(()) +} + +// Instructions that our program can execute +#[derive(BorshSerialize, BorshDeserialize, Debug)] +pub enum CounterInstruction { + InitializeCounter { initial_value: u64 }, // variant 0 + IncrementCounter, // variant 1 +} + +impl CounterInstruction { + pub fn unpack(input: &[u8]) -> Result { + // Get the instruction variant from the first byte + let (&variant, rest) = input + .split_first() + .ok_or(ProgramError::InvalidInstructionData)?; + + // Match instruction type and parse the remaining bytes based on the variant + match variant { + 0 => { + // For InitializeCounter, parse a u64 from the remaining bytes + let initial_value = u64::from_le_bytes( + rest.try_into() + .map_err(|_| ProgramError::InvalidInstructionData)?, + ); + Ok(Self::InitializeCounter { initial_value }) + } + 1 => Ok(Self::IncrementCounter), // No additional data needed + _ => Err(ProgramError::InvalidInstructionData), + } + } +} + +// Initialize a new counter account +fn process_initialize_counter( + program_id: &Pubkey, + accounts: &[AccountInfo], + initial_value: u64, +) -> ProgramResult { + let accounts_iter = &mut accounts.iter(); + + let counter_account = next_account_info(accounts_iter)?; + let payer_account = next_account_info(accounts_iter)?; + let system_program = next_account_info(accounts_iter)?; + + // Size of our counter account + let account_space = 8; // Size in bytes to store a u64 + + // Calculate minimum balance for rent exemption + let rent = Rent::get()?; + let required_lamports = rent.minimum_balance(account_space); + + // Create the counter account + invoke( + &system_instruction::create_account( + payer_account.key, // Account paying for the new account + counter_account.key, // Account to be created + required_lamports, // Amount of lamports to transfer to the new account + account_space as u64, // Size in bytes to allocate for the data field + program_id, // Set program owner to our program + ), + &[ + payer_account.clone(), + counter_account.clone(), + system_program.clone(), + ], + )?; + + // Create a new CounterAccount struct with the initial value + let counter_data = CounterAccount { + count: initial_value, + }; + + // Get a mutable reference to the counter account's data + let mut account_data = &mut counter_account.data.borrow_mut()[..]; + + // Serialize the CounterAccount struct into the account's data + counter_data.serialize(&mut account_data)?; + + msg!("Counter initialized with value: {}", initial_value); + + Ok(()) +} + +// Update an existing counter's value +fn process_increment_counter(program_id: &Pubkey, accounts: &[AccountInfo]) -> ProgramResult { + let accounts_iter = &mut accounts.iter(); + let counter_account = next_account_info(accounts_iter)?; + + // Verify account ownership + if counter_account.owner != program_id { + return Err(ProgramError::IncorrectProgramId); + } + + // Mutable borrow the account data + let mut data = counter_account.data.borrow_mut(); + + // Deserialize the account data into our CounterAccount struct + let mut counter_data: CounterAccount = CounterAccount::try_from_slice(&data)?; + + // Increment the counter value + counter_data.count = counter_data + .count + .checked_add(1) + .ok_or(ProgramError::InvalidAccountData)?; + + // Serialize the updated counter data back into the account + counter_data.serialize(&mut &mut data[..])?; + + msg!("Counter incremented to: {}", counter_data.count); + Ok(()) +} + +// Struct representing our counter account's data +#[derive(BorshSerialize, BorshDeserialize, Debug)] +pub struct CounterAccount { + count: u64, +} + +#[cfg(test)] +mod test { + use super::*; + use solana_program_test::*; + use solana_sdk::{ + instruction::{AccountMeta, Instruction}, + signature::{Keypair, Signer}, + system_program, + transaction::Transaction, + }; + + #[tokio::test] + async fn test_counter_program() { + let program_id = Pubkey::new_unique(); + let (mut banks_client, payer, recent_blockhash) = ProgramTest::new( + "counter_program", + program_id, + processor!(process_instruction), + ) + .start() + .await; + + // Create a new keypair to use as the address for our counter account + let counter_keypair = Keypair::new(); + let initial_value: u64 = 42; + + // Step 1: Initialize the counter + println!("Testing counter initialization..."); + + // Create initialization instruction + let mut init_instruction_data = vec![0]; // 0 = initialize instruction + init_instruction_data.extend_from_slice(&initial_value.to_le_bytes()); + + let initialize_instruction = Instruction::new_with_bytes( + program_id, + &init_instruction_data, + vec![ + AccountMeta::new(counter_keypair.pubkey(), true), + AccountMeta::new(payer.pubkey(), true), + AccountMeta::new_readonly(system_program::id(), false), + ], + ); + + // Send transaction with initialize instruction + let mut transaction = + Transaction::new_with_payer(&[initialize_instruction], Some(&payer.pubkey())); + transaction.sign(&[&payer, &counter_keypair], recent_blockhash); + banks_client.process_transaction(transaction).await.unwrap(); + + // Check account data + let account = banks_client + .get_account(counter_keypair.pubkey()) + .await + .expect("Failed to get counter account"); + + if let Some(account_data) = account { + let counter: CounterAccount = CounterAccount::try_from_slice(&account_data.data) + .expect("Failed to deserialize counter data"); + assert_eq!(counter.count, 42); + println!( + "✅ Counter initialized successfully with value: {}", + counter.count + ); + } + + // Step 2: Increment the counter + println!("Testing counter increment..."); + + // Create increment instruction + let increment_instruction = Instruction::new_with_bytes( + program_id, + &[1], // 1 = increment instruction + vec![AccountMeta::new(counter_keypair.pubkey(), true)], + ); + + // Send transaction with increment instruction + let mut transaction = + Transaction::new_with_payer(&[increment_instruction], Some(&payer.pubkey())); + transaction.sign(&[&payer, &counter_keypair], recent_blockhash); + banks_client.process_transaction(transaction).await.unwrap(); + + // Check account data + let account = banks_client + .get_account(counter_keypair.pubkey()) + .await + .expect("Failed to get counter account"); + + if let Some(account_data) = account { + let counter: CounterAccount = CounterAccount::try_from_slice(&account_data.data) + .expect("Failed to deserialize counter data"); + assert_eq!(counter.count, 43); + println!("✅ Counter incremented successfully to: {}", counter.count); + } + } +} +``` + +```toml filename="Cargo.toml" +[package] +name = "counter_program" +version = "0.1.0" +edition = "2021" + +[lib] +crate-type = ["cdylib", "lib"] + +[dependencies] +borsh = "1.5.1" +solana-program = "1.18.26" + +[dev-dependencies] +solana-program-test = "1.18.26" +solana-sdk = "1.18.26" +tokio = "1.41.0" +``` + + + + + + +### Create a new Program + +First, create a new Rust project using the standard `cargo init` command with +the `--lib` flag. + +```shell filename="Terminal" +cargo init counter_program --lib +``` + +Navigate to the project directory. You should see the default `src/lib.rs` and +`Cargo.toml` files + +```shell filename="Terminal" +cd counter_program +``` + +Next, add the `solana-program` dependency. This is the minimum dependency +required to build a Solana program. + +```shell filename="Terminal" +cargo add solana-program@1.18.26 +``` + +Next, add the following snippet to `Cargo.toml`. If you don't include this +config, the `target/deploy` directory will not be generated when you build the +program. + +```toml filename="Cargo.toml" +[lib] +crate-type = ["cdylib", "lib"] +``` + +Your `Cargo.toml` file should look like the following: + +```toml filename="Cargo.toml" +[package] +name = "counter_program" +version = "0.1.0" +edition = "2021" + +[lib] +crate-type = ["cdylib", "lib"] + +[dependencies] +solana-program = "1.18.26" +``` + +### Program Entrypoint + +A Solana program entrypoint is the function that gets called when a program is +invoked. The entrypoint has the following raw definition and developers are free +to create their own implementation of the entrypoint function. + +For simplicity, use the +[`entrypoint!`](https://github.com/solana-labs/solana/blob/v2.0/sdk/program/src/entrypoint.rs#L124-L140) +macro from the `solana_program` crate to define the entrypoint in your program. + +```rs +#[no_mangle] +pub unsafe extern "C" fn entrypoint(input: *mut u8) -> u64; +``` + +Replace the default code in `lib.rs` with the following code. This snippet: + +1. Imports the required dependencies from `solana_program` +2. Defines the program entrypoint using the `entrypoint!` macro +3. Implements the `process_instruction` function that will route instructions to + the appropriate handler functions + +```rs filename="lib.rs" {13} /process_instruction/ +use solana_program::{ + account_info::{next_account_info, AccountInfo}, + entrypoint, + entrypoint::ProgramResult, + msg, + program::invoke, + program_error::ProgramError, + pubkey::Pubkey, + system_instruction, + sysvar::{rent::Rent, Sysvar}, +}; + +entrypoint!(process_instruction); + +pub fn process_instruction( + program_id: &Pubkey, + accounts: &[AccountInfo], + instruction_data: &[u8], +) -> ProgramResult { + // Your program logic + Ok(()) +} +``` + +The `entrypoint!` macro requires a function with the the following +[type signature](https://github.com/solana-labs/solana/blob/v2.0/sdk/program/src/entrypoint.rs#L28-L29) +as an argument: + +```rs +pub type ProcessInstruction = + fn(program_id: &Pubkey, accounts: &[AccountInfo], instruction_data: &[u8]) -> ProgramResult; +``` + +When a Solana program is invoked, the entrypoint +[deserializes](https://github.com/solana-labs/solana/blob/v2.0/sdk/program/src/entrypoint.rs#L277) +the +[input data](https://github.com/solana-labs/solana/blob/v2.0/sdk/program/src/entrypoint.rs#L129-L131) +(provided as bytes) into three values and passes them to the +[`process_instruction`](https://github.com/solana-labs/solana/blob/v2.0/sdk/program/src/entrypoint.rs#L132) +function: + +- `program_id`: The public key of the program being invoked (current program) +- `accounts`: The `AccountInfo` for accounts required by the instruction being + invoked +- `instruction_data`: Additional data passed to the program which specifies the + instruction to execute and its required arguments + +These three parameters directly correspond to the data that clients must provide +when building an instruction to invoke a program. + +### Define Program State + +When building a Solana program, you'll typically start by defining your +program's state - the data that will be stored in accounts created and owned by +your program. + +Program state is defined using Rust structs that represent the data layout of +your program's accounts. You can define multiple structs to represent different +types of accounts for your program. + +When working with accounts, you need a way to convert your program's data types +to and from the raw bytes stored in an account's data field: + +- Serialization: Converting your data types into bytes to store in an account's + data field +- Deserialization: Converting the bytes stored in an account back into your data + types + +While you can use any serialization format for Solana program development, +[Borsh](https://borsh.io/) is commonly used. To use Borsh in your Solana +program: + +1. Add the `borsh` crate as a dependency to your `Cargo.toml`: + +```shell filename="Terminal" +cargo add borsh +``` + +2. Import the Borsh traits and use the derive macro to implement the traits for + your structs: + +```rust +use borsh::{BorshSerialize, BorshDeserialize}; + +// Define struct representing our counter account's data +#[derive(BorshSerialize, BorshDeserialize, Debug)] +pub struct CounterAccount { + count: u64, +} +``` + +Add the `CounterAccount` struct to `lib.rs` to define the program state. This +struct will be used in both the initialization and increment instructions. + +```rs filename="lib.rs" {12} {25-29} +use solana_program::{ + account_info::{next_account_info, AccountInfo}, + entrypoint, + entrypoint::ProgramResult, + msg, + program::invoke, + program_error::ProgramError, + pubkey::Pubkey, + system_instruction, + sysvar::{rent::Rent, Sysvar}, +}; +use borsh::{BorshSerialize, BorshDeserialize}; + +entrypoint!(process_instruction); + +pub fn process_instruction( + program_id: &Pubkey, + accounts: &[AccountInfo], + instruction_data: &[u8], +) -> ProgramResult { + // Your program logic + Ok(()) +} + +#[derive(BorshSerialize, BorshDeserialize, Debug)] +pub struct CounterAccount { + count: u64, +} +``` + +### Define Instructions + +Instructions refer to the different operations that your Solana program can +perform. Think of them as public APIs for your program - they define what +actions users can take when interacting with your program. + +Instructions are typically defined using a Rust enum where: + +- Each enum variant represents a different instruction +- The variant's payload represents the instruction's parameters + +Note that Rust enum variants are implicitly numbered starting from 0. + +Below is an example of an enum defining two instructions: + +```rust +#[derive(BorshSerialize, BorshDeserialize, Debug)] +pub enum CounterInstruction { + InitializeCounter { initial_value: u64 }, // variant 0 + IncrementCounter, // variant 1 +} +``` + +When a client invokes your program, they must provide instruction data (as a +buffer of bytes) where: + +- The first byte identifies which instruction variant to execute (0, 1, etc.) +- The remaining bytes contain the serialized instruction parameters (if + required) + +To convert the instruction data (bytes) into a variant of the enum, it is common +to implement a helper method. This method: + +1. Splits the first byte to get the instruction variant +2. Matches on the variant and parses any additional parameters from the + remaining bytes +3. Returns the corresponding enum variant + +For example, the `unpack` method for the `CounterInstruction` enum: + +```rust +impl CounterInstruction { + pub fn unpack(input: &[u8]) -> Result { + // Get the instruction variant from the first byte + let (&variant, rest) = input + .split_first() + .ok_or(ProgramError::InvalidInstructionData)?; + + // Match instruction type and parse the remaining bytes based on the variant + match variant { + 0 => { + // For InitializeCounter, parse a u64 from the remaining bytes + let initial_value = u64::from_le_bytes( + rest.try_into() + .map_err(|_| ProgramError::InvalidInstructionData)? + ); + Ok(Self::InitializeCounter { initial_value }) + } + 1 => Ok(Self::IncrementCounter), // No additional data needed + _ => Err(ProgramError::InvalidInstructionData), + } + } +} +``` + +Add the following code to `lib.rs` to define the instructions for the counter +program. + +```rs filename="lib.rs" {18-46} +use borsh::{BorshDeserialize, BorshSerialize}; +use solana_program::{ + account_info::AccountInfo, entrypoint, entrypoint::ProgramResult, msg, + program_error::ProgramError, pubkey::Pubkey, +}; + +entrypoint!(process_instruction); + +pub fn process_instruction( + program_id: &Pubkey, + accounts: &[AccountInfo], + instruction_data: &[u8], +) -> ProgramResult { + // Your program logic + Ok(()) +} + +#[derive(BorshSerialize, BorshDeserialize, Debug)] +pub enum CounterInstruction { + InitializeCounter { initial_value: u64 }, // variant 0 + IncrementCounter, // variant 1 +} + +impl CounterInstruction { + pub fn unpack(input: &[u8]) -> Result { + // Get the instruction variant from the first byte + let (&variant, rest) = input + .split_first() + .ok_or(ProgramError::InvalidInstructionData)?; + + // Match instruction type and parse the remaining bytes based on the variant + match variant { + 0 => { + // For InitializeCounter, parse a u64 from the remaining bytes + let initial_value = u64::from_le_bytes( + rest.try_into() + .map_err(|_| ProgramError::InvalidInstructionData)?, + ); + Ok(Self::InitializeCounter { initial_value }) + } + 1 => Ok(Self::IncrementCounter), // No additional data needed + _ => Err(ProgramError::InvalidInstructionData), + } + } +} +``` + +### Instruction Handlers + +Instruction handlers refer to the functions that contain the business logic for +each instruction. It's common to name handler functions as +`process_`, but you're free to choose any naming convention. + +Add the following code to `lib.rs`. This code uses the `CounterInstruction` enum +and `unpack` method defined in the previous step to route incoming instructions +to the appropriate handler functions: + +```rs filename="lib.rs" {8-17} {20-32} /process_initialize_counter/1 /process_increment_counter/1 +entrypoint!(process_instruction); + +pub fn process_instruction( + program_id: &Pubkey, + accounts: &[AccountInfo], + instruction_data: &[u8], +) -> ProgramResult { + // Unpack instruction data + let instruction = CounterInstruction::unpack(instruction_data)?; + + // Match instruction type + match instruction { + CounterInstruction::InitializeCounter { initial_value } => { + process_initialize_counter(program_id, accounts, initial_value)? + } + CounterInstruction::IncrementCounter => process_increment_counter(program_id, accounts)?, + }; +} + +fn process_initialize_counter( + program_id: &Pubkey, + accounts: &[AccountInfo], + initial_value: u64, +) -> ProgramResult { + // Implementation details... + Ok(()) +} + +fn process_increment_counter(program_id: &Pubkey, accounts: &[AccountInfo]) -> ProgramResult { + // Implementation details... + Ok(()) +} +``` + +Next, add the implementation of the `process_initialize_counter` function. This +instruction handler: + +1. Creates and allocates space for a new account to store the counter data +2. Initializing the account data with `initial_value` passed to the instruction + + + + +The `process_initialize_counter` function requires three accounts: + +1. The counter account that will be created and initialized +2. The payer account that will fund the new account creation +3. The System Program that we invoke to create the new account + +To define the accounts required by the instruction, we create an iterator over +the `accounts` slice and use the `next_account_info` function to get each +account. The number of accounts you define are the accounts required by the +instruction. + +The order of accounts is important - when building the instruction on the client +side, accounts must be provided in the same order as it is defined in the +program for the instruction to execute successfully. + +While the variable names for the accounts have no effect on the program's +functionality, using descriptive names is recommended. + +```rs filename="lib.rs" {6-10} +fn process_initialize_counter( + program_id: &Pubkey, + accounts: &[AccountInfo], + initial_value: u64, +) -> ProgramResult { + let accounts_iter = &mut accounts.iter(); + + let counter_account = next_account_info(accounts_iter)?; + let payer_account = next_account_info(accounts_iter)?; + let system_program = next_account_info(accounts_iter)?; + + Ok(()) +} +``` + +Before creating an account, we need to: + +1. Specify the space (in bytes) to allocate to the account's data field. Since + we're storing a u64 value (`count`), we need 8 bytes. + +2. Calculate the minimum "rent" balance required. On Solana, accounts must + maintain a minimum balance of lamports (rent) based on amount of data stored + on the account. + +```rs filename="lib.rs" {12-17} +fn process_initialize_counter( + program_id: &Pubkey, + accounts: &[AccountInfo], + initial_value: u64, +) -> ProgramResult { + let accounts_iter = &mut accounts.iter(); + + let counter_account = next_account_info(accounts_iter)?; + let payer_account = next_account_info(accounts_iter)?; + let system_program = next_account_info(accounts_iter)?; + + // Size of our counter account + let account_space = 8; // Size in bytes to store a u64 + + // Calculate minimum balance for rent exemption + let rent = Rent::get()?; + let required_lamports = rent.minimum_balance(account_space); + + Ok(()) +} +``` + +Once the space is defined and rent is calculated, create the account by invoking +the System Program's `create_account` instruction. + +On Solana, new accounts can only be created by the System Program. When creating +an account, we specify the amount of bytes to allocate and the program owner of +the new account. The System Program: + +1. Creates the new account +2. Allocates the specified space for the account's data field +3. Transfers ownership to the specified program + +This ownership transfer is important because only the program owner of an +account can modify an account's data. In this case, we set our program as the +owner, which will allow us to modify the account's data to store the counter +value. + +To invoke the System Program from our program's instruction, we make a Cross +Program Invocation (CPI) via the `invoke` function. A CPI allows one program to +call instructions on other programs - in this case, the System Program's +`create_account` instruction. + +```rs filename="lib.rs" {19-33} +fn process_initialize_counter( + program_id: &Pubkey, + accounts: &[AccountInfo], + initial_value: u64, +) -> ProgramResult { + let accounts_iter = &mut accounts.iter(); + + let counter_account = next_account_info(accounts_iter)?; + let payer_account = next_account_info(accounts_iter)?; + let system_program = next_account_info(accounts_iter)?; + + // Size of our counter account + let account_space = 8; // Size in bytes to store a u64 + + // Calculate minimum balance for rent exemption + let rent = Rent::get()?; + let required_lamports = rent.minimum_balance(account_space); + + // Create the counter account + invoke( + &system_instruction::create_account( + payer_account.key, // Account paying for the new account + counter_account.key, // Account to be created + required_lamports, // Amount of lamports to transfer to the new account + account_space as u64, // Size in bytes to allocate for the data field + program_id, // Set program owner to our program + ), + &[ + payer_account.clone(), + counter_account.clone(), + system_program.clone(), + ], + )?; + + Ok(()) +} +``` + +Once the account is created, we initialize the account data by: + +1. Creating a new `CounterAccount` struct with the `initial_value` provided to + the instruction. +2. Getting a mutable reference to the new account's data field. +3. Serializing the `CounterAccount` struct into the account's data field, + effectively storing the `initial_value` on the account. + +```rs filename="lib.rs" {35-44} /inital_value/ +fn process_initialize_counter( + program_id: &Pubkey, + accounts: &[AccountInfo], + initial_value: u64, +) -> ProgramResult { + let accounts_iter = &mut accounts.iter(); + + let counter_account = next_account_info(accounts_iter)?; + let payer_account = next_account_info(accounts_iter)?; + let system_program = next_account_info(accounts_iter)?; + + // Size of our counter account + let account_space = 8; // Size in bytes to store a u64 + + // Calculate minimum balance for rent exemption + let rent = Rent::get()?; + let required_lamports = rent.minimum_balance(account_space); + + // Create the counter account + invoke( + &system_instruction::create_account( + payer_account.key, // Account paying for the new account + counter_account.key, // Account to be created + required_lamports, // Amount of lamports to transfer to the new account + account_space as u64, // Size in bytes to allocate for the data field + program_id, // Set program owner to our program + ), + &[ + payer_account.clone(), + counter_account.clone(), + system_program.clone(), + ], + )?; + + // Create a new CounterAccount struct with the initial value + let counter_data = CounterAccount { + count: initial_value, + }; + + // Get a mutable reference to the counter account's data + let mut account_data = &mut counter_account.data.borrow_mut()[..]; + + // Serialize the CounterAccount struct into the account's data + counter_data.serialize(&mut account_data)?; + + msg!("Counter initialized with value: {}", initial_value); + + Ok(()) +} +``` + + + + +```rs filename="lib.rs" +// Initialize a new counter account +fn process_initialize_counter( + program_id: &Pubkey, + accounts: &[AccountInfo], + initial_value: u64, +) -> ProgramResult { + let accounts_iter = &mut accounts.iter(); + + let counter_account = next_account_info(accounts_iter)?; + let payer_account = next_account_info(accounts_iter)?; + let system_program = next_account_info(accounts_iter)?; + + // Size of our counter account + let account_space = 8; // Size in bytes to store a u64 + + // Calculate minimum balance for rent exemption + let rent = Rent::get()?; + let required_lamports = rent.minimum_balance(account_space); + + // Create the counter account + invoke( + &system_instruction::create_account( + payer_account.key, // Account paying for the new account + counter_account.key, // Account to be created + required_lamports, // Amount of lamports to transfer to the new account + account_space as u64, // Size in bytes to allocate for the data field + program_id, // Set program owner to our program + ), + &[ + payer_account.clone(), + counter_account.clone(), + system_program.clone(), + ], + )?; + + // Create a new CounterAccount struct with the initial value + let counter_data = CounterAccount { + count: initial_value, + }; + + // Get a mutable reference to the counter account's data + let mut account_data = &mut counter_account.data.borrow_mut()[..]; + + // Serialize the CounterAccount struct into the account's data + counter_data.serialize(&mut account_data)?; + + msg!("Counter initialized with value: {}", initial_value); + + Ok(()) +} +``` + +Next, add the implementation of the `process_increment_counter` function. This +instruction increments the value of an existing counter account. + + + + +Just like the `process_initialize_counter` function, we start by creating an +iterator over the accounts. In this case, we are only expecting one account, +which is the account to be updated. + +Note that in practice, a developer must implement various security checks to +validate the accounts passed to the program. Since all accounts are provided by +the caller of the instruction, there is no guarantee that the accounts provided +are the ones the program expects. Missing account validation checks are a common +source of program vulnerabilities. + +The example below includes a check to ensure the account we're referring to as +the `counter_account` is owned by the executing program. + +```rs filename="lib.rs" {6-9} +// Update an existing counter's value +fn process_increment_counter(program_id: &Pubkey, accounts: &[AccountInfo]) -> ProgramResult { + let accounts_iter = &mut accounts.iter(); + let counter_account = next_account_info(accounts_iter)?; + + // Verify account ownership + if counter_account.owner != program_id { + return Err(ProgramError::IncorrectProgramId); + } + + Ok(()) +} +``` + +To update the account data, we: + +- Mutably borrow the existing account's data field +- Deserialize the raw bytes into our `CounterAccount` struct +- Update the `count` value +- Serialize the modified struct back into the account's data field + +```rs filename="lib.rs" {11-24} +// Update an existing counter's value +fn process_increment_counter(program_id: &Pubkey, accounts: &[AccountInfo]) -> ProgramResult { + let accounts_iter = &mut accounts.iter(); + let counter_account = next_account_info(accounts_iter)?; + + // Verify account ownership + if counter_account.owner != program_id { + return Err(ProgramError::IncorrectProgramId); + } + + // Mutable borrow the account data + let mut data = counter_account.data.borrow_mut(); + + // Deserialize the account data into our CounterAccount struct + let mut counter_data: CounterAccount = CounterAccount::try_from_slice(&data)?; + + // Increment the counter value + counter_data.count = counter_data + .count + .checked_add(1) + .ok_or(ProgramError::InvalidAccountData)?; + + // Serialize the updated counter data back into the account + counter_data.serialize(&mut &mut data[..])?; + + msg!("Counter incremented to: {}", counter_data.count); + Ok(()) +} +``` + + + + +```rs filename="lib.rs" +// Update an existing counter's value +fn process_increment_counter(program_id: &Pubkey, accounts: &[AccountInfo]) -> ProgramResult { + let accounts_iter = &mut accounts.iter(); + let counter_account = next_account_info(accounts_iter)?; + + // Verify account ownership + if counter_account.owner != program_id { + return Err(ProgramError::IncorrectProgramId); + } + + // Mutable borrow the account data + let mut data = counter_account.data.borrow_mut(); + + // Deserialize the account data into our CounterAccount struct + let mut counter_data: CounterAccount = CounterAccount::try_from_slice(&data)?; + + // Increment the counter value + counter_data.count = counter_data + .count + .checked_add(1) + .ok_or(ProgramError::InvalidAccountData)?; + + // Serialize the updated counter data back into the account + counter_data.serialize(&mut &mut data[..])?; + + msg!("Counter incremented to: {}", counter_data.count); + Ok(()) +} +``` + +### Instruction Testing + +To test the program instructions, add the following dependencies to +`Cargo.toml`. + +```shell filename="Terminal" +cargo add solana-program-test@1.18.26 --dev +cargo add solana-sdk@1.18.26 --dev +cargo add tokio --dev +``` + +Then add the following test module to `lib.rs` and run `cargo test-sbf` to +execute the tests. Optionally, use the `--nocapture` flag to see the print +statements in the output. + +```shell filename="Terminal" +cargo test-sbf -- --nocapture +``` + + + + +First, set up the test module and import required dependencies: + +```rs filename="lib.rs" +#[cfg(test)] +mod test { + use super::*; + use solana_program_test::*; + use solana_sdk::{ + instruction::{AccountMeta, Instruction}, + signature::{Keypair, Signer}, + system_program, + transaction::Transaction, + }; + + #[tokio::test] + async fn test_counter_program() { + // Test code will go here + } +} +``` + +Next, set up the test using `ProgramTest`. Then create a new keypair to use as +the address for the counter account we'll initialize and define an initial value +to set for the counter. + +```rs filename="lib.rs" +#[cfg(test)] +mod test { + use super::*; + use solana_program_test::*; + use solana_sdk::{ + instruction::{AccountMeta, Instruction}, + signature::{Keypair, Signer}, + system_program, + transaction::Transaction, + }; + + #[tokio::test] + async fn test_counter_program() { + let program_id = Pubkey::new_unique(); + let (mut banks_client, payer, recent_blockhash) = ProgramTest::new( + "counter_program", + program_id, + processor!(process_instruction), + ) + .start() + .await; + + // Create a new keypair to use as the address for our counter account + let counter_keypair = Keypair::new(); + let initial_value: u64 = 42; + } +} +``` + +When building an instruction, each account must be provided as an +[`AccountMeta`](https://github.com/solana-labs/solana/blob/v2.0/sdk/program/src/instruction.rs#L539-L545), +which specifies: + +- The account's public key (`Pubkey`) +- `is_writable`: Whether the account data will be modified +- `is_signer`: Whether the account must sign the transaction + +```rs +AccountMeta::new(account1_pubkey, true), // writable, signer +AccountMeta::new(account2_pubkey, false), // writable, not signer +AccountMeta::new_readonly(account3_pubkey, false), // not writable, not signer +AccountMeta::new_readonly(account4_pubkey, true), // writable, signer +``` + +To test the initialize instruction: + +- Create instruction data with variant 0 (`InitializeCounter`) and initial value +- Build the instruction with the program ID, instruction data, and required + accounts +- Send a transaction with the initialize instruction +- Check the account was created with the correct initial value + +```rs filename="lib.rs" {16-53} + #[tokio::test] + async fn test_counter_program() { + let program_id = Pubkey::new_unique(); + let (mut banks_client, payer, recent_blockhash) = ProgramTest::new( + "counter_program", + program_id, + processor!(process_instruction), + ) + .start() + .await; + + // Create a new keypair to use as the address for our counter account + let counter_keypair = Keypair::new(); + let initial_value: u64 = 42; + + // Step 1: Initialize the counter + println!("Testing counter initialization..."); + + // Create initialization instruction + let mut init_instruction_data = vec![0]; // 0 = initialize instruction + init_instruction_data.extend_from_slice(&initial_value.to_le_bytes()); + + let initialize_instruction = Instruction::new_with_bytes( + program_id, + &init_instruction_data, + vec![ + AccountMeta::new(counter_keypair.pubkey(), true), + AccountMeta::new(payer.pubkey(), true), + AccountMeta::new_readonly(system_program::id(), false), + ], + ); + + // Send transaction with initialize instruction + let mut transaction = + Transaction::new_with_payer(&[initialize_instruction], Some(&payer.pubkey())); + transaction.sign(&[&payer, &counter_keypair], recent_blockhash); + banks_client.process_transaction(transaction).await.unwrap(); + + // Check account data + let account = banks_client + .get_account(counter_keypair.pubkey()) + .await + .expect("Failed to get counter account"); + + if let Some(account_data) = account { + let counter: CounterAccount = CounterAccount::try_from_slice(&account_data.data) + .expect("Failed to deserialize counter data"); + assert_eq!(counter.count, 42); + println!( + "✅ Counter initialized successfully with value: {}", + counter.count + ); + } + } +``` + +To test the increment instruction: + +- Build the instruction with the program ID, instruction data, and required + accounts +- Send a transaction with the increment instruction +- Check the account was incremented to the correct value + +Note that the instruction data for the increment instruction is `[1]`, which +corresponds to variant 1 (`IncrementCounter`). Since there are no additional +parameters to the increment instruction, the data is simply the instruction +variant. + +```rs filename="lib.rs" {55-82} + #[tokio::test] + async fn test_counter_program() { + let program_id = Pubkey::new_unique(); + let (mut banks_client, payer, recent_blockhash) = ProgramTest::new( + "counter_program", + program_id, + processor!(process_instruction), + ) + .start() + .await; + + // Create a new keypair to use as the address for our counter account + let counter_keypair = Keypair::new(); + let initial_value: u64 = 42; + + // Step 1: Initialize the counter + println!("Testing counter initialization..."); + + // Create initialization instruction + let mut init_instruction_data = vec![0]; // 0 = initialize instruction + init_instruction_data.extend_from_slice(&initial_value.to_le_bytes()); + + let initialize_instruction = Instruction::new_with_bytes( + program_id, + &init_instruction_data, + vec![ + AccountMeta::new(counter_keypair.pubkey(), true), + AccountMeta::new(payer.pubkey(), true), + AccountMeta::new_readonly(system_program::id(), false), + ], + ); + + // Send transaction with initialize instruction + let mut transaction = + Transaction::new_with_payer(&[initialize_instruction], Some(&payer.pubkey())); + transaction.sign(&[&payer, &counter_keypair], recent_blockhash); + banks_client.process_transaction(transaction).await.unwrap(); + + // Check account data + let account = banks_client + .get_account(counter_keypair.pubkey()) + .await + .expect("Failed to get counter account"); + + if let Some(account_data) = account { + let counter: CounterAccount = CounterAccount::try_from_slice(&account_data.data) + .expect("Failed to deserialize counter data"); + assert_eq!(counter.count, 42); + println!( + "✅ Counter initialized successfully with value: {}", + counter.count + ); + } + + // Step 2: Increment the counter + println!("Testing counter increment..."); + + // Create increment instruction + let increment_instruction = Instruction::new_with_bytes( + program_id, + &[1], // 1 = increment instruction + vec![AccountMeta::new(counter_keypair.pubkey(), true)], + ); + + // Send transaction with increment instruction + let mut transaction = + Transaction::new_with_payer(&[increment_instruction], Some(&payer.pubkey())); + transaction.sign(&[&payer, &counter_keypair], recent_blockhash); + banks_client.process_transaction(transaction).await.unwrap(); + + // Check account data + let account = banks_client + .get_account(counter_keypair.pubkey()) + .await + .expect("Failed to get counter account"); + + if let Some(account_data) = account { + let counter: CounterAccount = CounterAccount::try_from_slice(&account_data.data) + .expect("Failed to deserialize counter data"); + assert_eq!(counter.count, 43); + println!("✅ Counter incremented successfully to: {}", counter.count); + } + } +``` + + + + +```rs filename="lib.rs" +#[cfg(test)] +mod test { + use super::*; + use solana_program_test::*; + use solana_sdk::{ + instruction::{AccountMeta, Instruction}, + signature::{Keypair, Signer}, + system_program, + transaction::Transaction, + }; + + #[tokio::test] + async fn test_counter_program() { + let program_id = Pubkey::new_unique(); + let (mut banks_client, payer, recent_blockhash) = ProgramTest::new( + "counter_program", + program_id, + processor!(process_instruction), + ) + .start() + .await; + + // Create a new keypair to use as the address for our counter account + let counter_keypair = Keypair::new(); + let initial_value: u64 = 42; + + // Step 1: Initialize the counter + println!("Testing counter initialization..."); + + // Create initialization instruction + let mut init_instruction_data = vec![0]; // 0 = initialize instruction + init_instruction_data.extend_from_slice(&initial_value.to_le_bytes()); + + let initialize_instruction = Instruction::new_with_bytes( + program_id, + &init_instruction_data, + vec![ + AccountMeta::new(counter_keypair.pubkey(), true), + AccountMeta::new(payer.pubkey(), true), + AccountMeta::new_readonly(system_program::id(), false), + ], + ); + + // Send transaction with initialize instruction + let mut transaction = + Transaction::new_with_payer(&[initialize_instruction], Some(&payer.pubkey())); + transaction.sign(&[&payer, &counter_keypair], recent_blockhash); + banks_client.process_transaction(transaction).await.unwrap(); + + // Check account data + let account = banks_client + .get_account(counter_keypair.pubkey()) + .await + .expect("Failed to get counter account"); + + if let Some(account_data) = account { + let counter: CounterAccount = CounterAccount::try_from_slice(&account_data.data) + .expect("Failed to deserialize counter data"); + assert_eq!(counter.count, 42); + println!( + "✅ Counter initialized successfully with value: {}", + counter.count + ); + } + + // Step 2: Increment the counter + println!("Testing counter increment..."); + + // Create increment instruction + let increment_instruction = Instruction::new_with_bytes( + program_id, + &[1], // 1 = increment instruction + vec![AccountMeta::new(counter_keypair.pubkey(), true)], + ); + + // Send transaction with increment instruction + let mut transaction = + Transaction::new_with_payer(&[increment_instruction], Some(&payer.pubkey())); + transaction.sign(&[&payer, &counter_keypair], recent_blockhash); + banks_client.process_transaction(transaction).await.unwrap(); + + // Check account data + let account = banks_client + .get_account(counter_keypair.pubkey()) + .await + .expect("Failed to get counter account"); + + if let Some(account_data) = account { + let counter: CounterAccount = CounterAccount::try_from_slice(&account_data.data) + .expect("Failed to deserialize counter data"); + assert_eq!(counter.count, 43); + println!("✅ Counter incremented successfully to: {}", counter.count); + } + } +} +``` + +Example output: + +```shell filename="Terminal" {6} {10} +running 1 test +[2024-10-29T20:51:13.783708000Z INFO solana_program_test] "counter_program" SBF program from /counter_program/target/deploy/counter_program.so, modified 2 seconds, 169 ms, 153 µs and 461 ns ago +[2024-10-29T20:51:13.855204000Z DEBUG solana_runtime::message_processor::stable_log] Program 1111111QLbz7JHiBTspS962RLKV8GndWFwiEaqKM invoke [1] +[2024-10-29T20:51:13.856052000Z DEBUG solana_runtime::message_processor::stable_log] Program 11111111111111111111111111111111 invoke [2] +[2024-10-29T20:51:13.856135000Z DEBUG solana_runtime::message_processor::stable_log] Program 11111111111111111111111111111111 success +[2024-10-29T20:51:13.856242000Z DEBUG solana_runtime::message_processor::stable_log] Program log: Counter initialized with value: 42 +[2024-10-29T20:51:13.856285000Z DEBUG solana_runtime::message_processor::stable_log] Program 1111111QLbz7JHiBTspS962RLKV8GndWFwiEaqKM consumed 3791 of 200000 compute units +[2024-10-29T20:51:13.856307000Z DEBUG solana_runtime::message_processor::stable_log] Program 1111111QLbz7JHiBTspS962RLKV8GndWFwiEaqKM success +[2024-10-29T20:51:13.860038000Z DEBUG solana_runtime::message_processor::stable_log] Program 1111111QLbz7JHiBTspS962RLKV8GndWFwiEaqKM invoke [1] +[2024-10-29T20:51:13.860333000Z DEBUG solana_runtime::message_processor::stable_log] Program log: Counter incremented to: 43 +[2024-10-29T20:51:13.860355000Z DEBUG solana_runtime::message_processor::stable_log] Program 1111111QLbz7JHiBTspS962RLKV8GndWFwiEaqKM consumed 756 of 200000 compute units +[2024-10-29T20:51:13.860375000Z DEBUG solana_runtime::message_processor::stable_log] Program 1111111QLbz7JHiBTspS962RLKV8GndWFwiEaqKM success +test test::test_counter_program ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s +``` + + From d7531f468b96d5a51b39a4f17c6258ad00e89996 Mon Sep 17 00:00:00 2001 From: Arnau Espin <43625217+aspnxdd@users.noreply.github.com> Date: Tue, 5 Nov 2024 19:37:28 +0100 Subject: [PATCH 154/206] feat: expand canopy depth docs (#601) --- docs/advanced/state-compression.md | 18 +++++++++++++++--- .../docs/compression/canopy-depth-1.png | Bin 0 -> 31795 bytes 2 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 public/assets/docs/compression/canopy-depth-1.png diff --git a/docs/advanced/state-compression.md b/docs/advanced/state-compression.md index 99860da5e..cdc4c8749 100644 --- a/docs/advanced/state-compression.md +++ b/docs/advanced/state-compression.md @@ -193,14 +193,14 @@ sized and set at tree creation via this `maxBufferSize` value. ### Canopy depth -The "canopy depth", sometimes called the canopy size, is the number of proof -nodes that are cached/stored on-chain for any given proof path. +The "canopy depth," also known as the canopy size, refers to the number of proof +node levels that are cached or stored onchain for a given proof path. When performing an update action on a `leaf`, like transferring ownership (e.g. selling a compressed NFT), the **complete** proof path must be used to verify original ownership of the leaf and therefore allow for the update action. This verification is performed using the **complete** proof path to correctly compute -the current `root hash` (or any cached `root hash` via the on-chain "concurrent +the current `root hash` (or any cached `root hash` via the onchain "concurrent buffer"). The larger a tree's max depth is, the more proof nodes are required to perform @@ -222,6 +222,18 @@ For example, a tree with a max depth of `14` would require `14` total proof nodes. With a canopy of `10`, only `4` proof nodes are required to be submitted per update transaction. +![Canopy depth of 1 for a Concurrent Merkle Tree of max depth of 3](/assets/docs/compression/canopy-depth-1.png) + +Consider another example, this time with a tree of max depth `3`. If we want to +apply an action to one of the tree’s leaves—such as updating `R4`—we need to +provide proofs for `L4` and `R2`. However, we can omit `R1` since it is already +cached/stored onchain due to our canopy depth of `1`, which ensures that all +nodes at level 1 (`L1` and `R1`) are stored onchain. This results in a total of +2 required proofs. + +Therefore, the number of proofs required to update a leaf is equal to the max +depth minus the canopy depth. In this example, `3 - 1 = 2`. + #### The larger the canopy depth value, the higher the cost The `canopyDepth` value is also a primary factor of cost when creating a tree diff --git a/public/assets/docs/compression/canopy-depth-1.png b/public/assets/docs/compression/canopy-depth-1.png new file mode 100644 index 0000000000000000000000000000000000000000..63bd3e31edd7e374e30a339afee99fef53b8aaa3 GIT binary patch literal 31795 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 Gr~d<~!Oe>R literal 0 HcmV?d00001 From 8c084d14f80605c784e4b961fc91ff954a0d6379 Mon Sep 17 00:00:00 2001 From: Steven Luscher Date: Wed, 6 Nov 2024 06:42:17 -0800 Subject: [PATCH 155/206] Lock web3.js to version 1.x for compatibility (#595) --- content/courses/intro-to-solana/intro-to-cryptography.md | 4 ++-- content/courses/intro-to-solana/intro-to-reading-data.md | 2 +- .../native-onchain-development/cross-program-invocations.md | 2 +- content/courses/state-compression/compressed-nfts.md | 2 +- content/courses/token-extensions/close-mint.md | 2 +- content/courses/token-extensions/default-account-state.md | 2 +- content/courses/token-extensions/immutable-owner.md | 2 +- content/courses/token-extensions/interest-bearing-token.md | 2 +- content/courses/token-extensions/non-transferable-token.md | 2 +- content/courses/token-extensions/permanent-delegate.md | 2 +- content/courses/token-extensions/required-memo.md | 2 +- content/courses/token-extensions/transfer-fee.md | 2 +- content/courses/tokens-and-nfts/nfts-with-metaplex.md | 2 +- content/courses/tokens-and-nfts/token-program.md | 2 +- content/guides/getstarted/full-stack-solana-development.md | 2 +- content/guides/getstarted/local-rust-hello-world.md | 2 +- content/guides/javascript/compressed-nfts.md | 2 +- content/guides/wallets/add-solana-wallet-adapter-to-nextjs.md | 2 +- docs/clients/javascript.md | 4 ++-- 19 files changed, 21 insertions(+), 21 deletions(-) diff --git a/content/courses/intro-to-solana/intro-to-cryptography.md b/content/courses/intro-to-solana/intro-to-cryptography.md index 396e3032a..f88af61a3 100644 --- a/content/courses/intro-to-solana/intro-to-cryptography.md +++ b/content/courses/intro-to-solana/intro-to-cryptography.md @@ -102,7 +102,7 @@ You can use the Solana blockchain from either the browser or node.js with the to install `@solana/web3.js` ```shell -npm i @solana/web3.js +npm i @solana/web3.js@1 ``` We'll cover a lot of @@ -171,7 +171,7 @@ Make a new directory, install TypeScript, Solana web3.js and esrun: mkdir generate-keypair cd generate-keypair npm init -y -npm install typescript @solana/web3.js esrun @solana-developers/helpers +npm install typescript @solana/web3.js@1 esrun @solana-developers/helpers@2 ``` Make a new file called `generate-keypair.ts` diff --git a/content/courses/intro-to-solana/intro-to-reading-data.md b/content/courses/intro-to-solana/intro-to-reading-data.md index 11c129b67..4a8dcb97a 100644 --- a/content/courses/intro-to-solana/intro-to-reading-data.md +++ b/content/courses/intro-to-solana/intro-to-reading-data.md @@ -57,7 +57,7 @@ Solana. We'll also install TypeScript and `esrun`, so we can run `.ts` files on the command line: ```bash -npm install typescript @solana/web3.js esrun +npm install typescript @solana/web3.js@1 esrun ``` ### Connect to the Network diff --git a/content/courses/native-onchain-development/cross-program-invocations.md b/content/courses/native-onchain-development/cross-program-invocations.md index 693c95bcd..ec5190f71 100644 --- a/content/courses/native-onchain-development/cross-program-invocations.md +++ b/content/courses/native-onchain-development/cross-program-invocations.md @@ -895,7 +895,7 @@ npm init -y Install all the required dependencies. ```bash -npm i @solana/web3.js @solana-developers/helpers@2.5.2 +npm i @solana/web3.js@1 @solana-developers/helpers@2.5.2 npm i --save-dev esrun ``` diff --git a/content/courses/state-compression/compressed-nfts.md b/content/courses/state-compression/compressed-nfts.md index d196ffefa..89513bc5f 100644 --- a/content/courses/state-compression/compressed-nfts.md +++ b/content/courses/state-compression/compressed-nfts.md @@ -647,7 +647,7 @@ cd cnft-demo Install all the required dependencies ```bash -npm i @solana/web3.js @solana-developers/helpers@2.5.2 @metaplex-foundation/mpl-token-metadata @metaplex-foundation/mpl-bubblegum @metaplex-foundation/digital-asset-standard-api @metaplex-foundation/umi-bundle-defaults +npm i @solana/web3.js@1 @solana-developers/helpers@2.5.2 @metaplex-foundation/mpl-token-metadata @metaplex-foundation/mpl-bubblegum @metaplex-foundation/digital-asset-standard-api @metaplex-foundation/umi-bundle-defaults npm i --save-dev esrun ``` diff --git a/content/courses/token-extensions/close-mint.md b/content/courses/token-extensions/close-mint.md index 8c3cd9caa..08ecd4ca6 100644 --- a/content/courses/token-extensions/close-mint.md +++ b/content/courses/token-extensions/close-mint.md @@ -213,7 +213,7 @@ Next, we'll need to add our dependencies. Run the following to install the required packages: ```bash -npm i @solana-developers/helpers @solana/spl-token @solana/web3.js esrun dotenv typescript +npm i @solana-developers/helpers@2 @solana/spl-token @solana/web3.js@1 esrun dotenv typescript ``` Create a directory named `src`. In this directory, create a file named diff --git a/content/courses/token-extensions/default-account-state.md b/content/courses/token-extensions/default-account-state.md index c0a19a134..2286a04bd 100644 --- a/content/courses/token-extensions/default-account-state.md +++ b/content/courses/token-extensions/default-account-state.md @@ -223,7 +223,7 @@ Next, we'll need to add our dependencies. Run the following to install the required packages: ```bash -npm i @solana-developers/helpers @solana/spl-token @solana/web3.js esrun dotenv typescript +npm i @solana-developers/helpers@2 @solana/spl-token @solana/web3.js@1 esrun dotenv typescript ``` Create a directory named `src`. In this directory, create a file named diff --git a/content/courses/token-extensions/immutable-owner.md b/content/courses/token-extensions/immutable-owner.md index d5eb17192..bfd83f4f3 100644 --- a/content/courses/token-extensions/immutable-owner.md +++ b/content/courses/token-extensions/immutable-owner.md @@ -139,7 +139,7 @@ Next, we'll need to add our dependencies. Run the following to install the required packages: ```bash -npm i @solana-developers/helpers @solana/spl-token @solana/web3.js esrun dotenv typescript +npm i @solana-developers/helpers@2 @solana/spl-token @solana/web3.js@1 esrun dotenv typescript ``` Create a directory named `src`. In this directory, create a file named diff --git a/content/courses/token-extensions/interest-bearing-token.md b/content/courses/token-extensions/interest-bearing-token.md index 29cfa7735..316d440b6 100644 --- a/content/courses/token-extensions/interest-bearing-token.md +++ b/content/courses/token-extensions/interest-bearing-token.md @@ -213,7 +213,7 @@ Next, we'll need to add our dependencies. Run the following to install the required packages: ```bash -npm i @solana-developers/helpers @solana/spl-token @solana/web3.js esrun dotenv typescript +npm i @solana-developers/helpers@2 @solana/spl-token @solana/web3.js@1 esrun dotenv typescript ``` Create a directory named `src`. In this directory, create a file named diff --git a/content/courses/token-extensions/non-transferable-token.md b/content/courses/token-extensions/non-transferable-token.md index c62ceceb0..34bc4dfe7 100644 --- a/content/courses/token-extensions/non-transferable-token.md +++ b/content/courses/token-extensions/non-transferable-token.md @@ -127,7 +127,7 @@ Next, we'll need to add our dependencies. Run the following to install the required packages: ```bash -npm i @solana-developers/helpers @solana/spl-token @solana/web3.js esrun dotenv typescript +npm i @solana-developers/helpers@2 @solana/spl-token @solana/web3.js@1 esrun dotenv typescript ``` Create a directory named `src`. In this directory, create a file named diff --git a/content/courses/token-extensions/permanent-delegate.md b/content/courses/token-extensions/permanent-delegate.md index 5576ca0af..2474c1cfe 100644 --- a/content/courses/token-extensions/permanent-delegate.md +++ b/content/courses/token-extensions/permanent-delegate.md @@ -250,7 +250,7 @@ Next, we'll need to add our dependencies. Run the following to install the required packages: ```bash -npm i @solana-developers/helpers @solana/spl-token @solana/web3.js esrun +npm i @solana-developers/helpers@2 @solana/spl-token @solana/web3.js@1 esrun ``` Create a directory named `src`. In this directory, create a file named diff --git a/content/courses/token-extensions/required-memo.md b/content/courses/token-extensions/required-memo.md index 43bab1061..54baeaeb6 100644 --- a/content/courses/token-extensions/required-memo.md +++ b/content/courses/token-extensions/required-memo.md @@ -177,7 +177,7 @@ Next, we'll need to add our dependencies. Run the following to install the required packages: ```bash -npm i @solana-developers/helpers @solana/spl-token @solana/web3.js esrun dotenv typescript +npm i @solana-developers/helpers@2 @solana/spl-token @solana/web3.js@1 esrun dotenv typescript ``` Create a directory named `src`. In this directory, create a file named diff --git a/content/courses/token-extensions/transfer-fee.md b/content/courses/token-extensions/transfer-fee.md index f7d574865..6b150d899 100644 --- a/content/courses/token-extensions/transfer-fee.md +++ b/content/courses/token-extensions/transfer-fee.md @@ -459,7 +459,7 @@ Next, we'll need to add our dependencies. Run the following to install the required packages: ```bash -npm i @solana-developers/helpers @solana/spl-token @solana/web3.js esrun dotenv typescript +npm i @solana-developers/helpers@2 @solana/spl-token @solana/web3.js@1 esrun dotenv typescript ``` Create a directory named `src`. In this directory, create a file named diff --git a/content/courses/tokens-and-nfts/nfts-with-metaplex.md b/content/courses/tokens-and-nfts/nfts-with-metaplex.md index acb80f9ef..01e9fe72d 100644 --- a/content/courses/tokens-and-nfts/nfts-with-metaplex.md +++ b/content/courses/tokens-and-nfts/nfts-with-metaplex.md @@ -345,7 +345,7 @@ Solana. To begin, make a new folder and install the relevant dependencies: ```bash -npm i @solana/web3.js npm i @solana/web3.js npm i @solana-developers/helpers npm i @metaplex-foundation/mpl-token-metadata npm i @metaplex-foundation/umi-bundle-defaults npm i @metaplex-foundation/umi-uploader-irys npm i --save-dev esrun +npm i @solana/web3.js@1 @solana-developers/helpers@2 @metaplex-foundation/mpl-token-metadata @metaplex-foundation/umi-bundle-defaults @metaplex-foundation/umi-uploader-irys esrun ``` Then create a file called `create-metaplex-collection.ts`, and add our imports: diff --git a/content/courses/tokens-and-nfts/token-program.md b/content/courses/tokens-and-nfts/token-program.md index cfcd7e625..6c05a868f 100644 --- a/content/courses/tokens-and-nfts/token-program.md +++ b/content/courses/tokens-and-nfts/token-program.md @@ -464,7 +464,7 @@ Assuming you already have a `.env` file with a `SECRET_KEY` setup per [Cryptography fundamentals](/content/courses/intro-to-solana/intro-to-cryptography.md). ```bash -npm i @solana/web3.js @solana/spl-token @solana-developers/helpers esrun +npm i @solana/web3.js@1 @solana/spl-token @solana-developers/helpers@2 esrun ``` #### Create the Token Mint diff --git a/content/guides/getstarted/full-stack-solana-development.md b/content/guides/getstarted/full-stack-solana-development.md index 0923ba17b..a6050f6b3 100644 --- a/content/guides/getstarted/full-stack-solana-development.md +++ b/content/guides/getstarted/full-stack-solana-development.md @@ -1085,7 +1085,7 @@ Throw this command into your terminal to install all the `wallet-adapter` stuff we need: ```shell -yarn add react @solana/web3.js \ +yarn add react @solana/web3.js@1 \ @solana/wallet-adapter-base @solana/wallet-adapter-react \ @solana/wallet-adapter-react-ui @solana/wallet-adapter-wallets ``` diff --git a/content/guides/getstarted/local-rust-hello-world.md b/content/guides/getstarted/local-rust-hello-world.md index 5b87bfa4e..56da11d31 100644 --- a/content/guides/getstarted/local-rust-hello-world.md +++ b/content/guides/getstarted/local-rust-hello-world.md @@ -251,7 +251,7 @@ For macOS you can Install the Solana web3.js library and the Solana helpers library: ```shell -npm install @solana/web3.js @solana-developers/helpers +npm install @solana/web3.js@1 @solana-developers/helpers@2 ``` Create a new file called `client.mjs` and add the following code: diff --git a/content/guides/javascript/compressed-nfts.md b/content/guides/javascript/compressed-nfts.md index 65f1cc431..8e0e6c214 100644 --- a/content/guides/javascript/compressed-nfts.md +++ b/content/guides/javascript/compressed-nfts.md @@ -139,7 +139,7 @@ Using your preferred package manager (e.g. npm, yarn, pnpm, etc), install these packages into your project: ```shell -yarn add @solana/web3.js @solana/spl-token @solana/spl-account-compression +yarn add @solana/web3.js@1 @solana/spl-token @solana/spl-account-compression ``` ```shell diff --git a/content/guides/wallets/add-solana-wallet-adapter-to-nextjs.md b/content/guides/wallets/add-solana-wallet-adapter-to-nextjs.md index e0e8f5d1c..867e1d038 100644 --- a/content/guides/wallets/add-solana-wallet-adapter-to-nextjs.md +++ b/content/guides/wallets/add-solana-wallet-adapter-to-nextjs.md @@ -85,7 +85,7 @@ Install these packages to your Next.js project using your preferred node package manager: ```shell -npm install @solana/web3.js \ +npm install @solana/web3.js@1 \ @solana/wallet-adapter-base \ @solana/wallet-adapter-react \ @solana/wallet-adapter-react-ui \ diff --git a/docs/clients/javascript.md b/docs/clients/javascript.md index 27509f0b9..8aeb577ab 100644 --- a/docs/clients/javascript.md +++ b/docs/clients/javascript.md @@ -34,13 +34,13 @@ For the full list of terms, see #### yarn ```shell -yarn add @solana/web3.js +yarn add @solana/web3.js@1 ``` #### npm ```shell -npm install --save @solana/web3.js +npm install --save @solana/web3.js@1 ``` #### Bundle From 8d391c4af80e76e8e90aa3c53c30fe282cafdd77 Mon Sep 17 00:00:00 2001 From: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> Date: Thu, 7 Nov 2024 10:10:28 -0500 Subject: [PATCH 156/206] feat: added tabs and v2 (#604) --- content/cookbook/wallets/create-keypair.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/content/cookbook/wallets/create-keypair.md b/content/cookbook/wallets/create-keypair.md index 9391c2b6b..5c414ce86 100644 --- a/content/cookbook/wallets/create-keypair.md +++ b/content/cookbook/wallets/create-keypair.md @@ -11,8 +11,28 @@ are [connecting to a wallet](/content/cookbook/wallets/connect-wallet-react), you do not need to worry about the keypair. Otherwise a keypair must be generated for signing transactions. + + + + +```javascript +import { generateKeyPairSigner } from "@solana/web3.js"; + +const signer = await generateKeyPairSigner(); +console.log("address: ", signer.address); +``` + + + + + ```javascript import { Keypair } from "@solana/web3.js"; const keypair = Keypair.generate(); +console.log("address:", keypair.publicKey.toBase58()); ``` + + + + From 0c069568380062359575c88785068c4cb8f30df9 Mon Sep 17 00:00:00 2001 From: Steven Luscher Date: Thu, 7 Nov 2024 11:23:32 -0800 Subject: [PATCH 157/206] Update `@solana/web3.js` documentation URLs to point at new `v1.x` folder (#606) * Update URLs to point specifically to v1 of the `@solana/web3.js` docs Read more: https://github.com/solana-labs/solana-web3.js/issues/3498 * Code formatting --- .../development/subscribing-events.md | 6 ++-- .../deserialize-custom-data-frontend.md | 2 +- .../introduction-to-durable-nonces.md | 2 +- content/guides/dapps/cash-app.md | 2 +- .../guides/getstarted/intro-to-native-rust.md | 2 +- .../solana-token-airdrop-and-faucets.md | 2 +- content/guides/javascript/compressed-nfts.md | 2 +- .../guides/javascript/get-program-accounts.md | 6 ++-- docs/advanced/actions.md | 18 +++++------ docs/advanced/lookup-tables.md | 6 ++-- docs/advanced/state-compression.md | 2 +- docs/advanced/versions.md | 9 +++--- docs/clients/javascript-reference.md | 32 +++++++++---------- docs/clients/javascript.md | 2 +- docs/core/fees.md | 2 +- 15 files changed, 48 insertions(+), 47 deletions(-) diff --git a/content/cookbook/development/subscribing-events.md b/content/cookbook/development/subscribing-events.md index fc498b188..8cc158a3d 100644 --- a/content/cookbook/development/subscribing-events.md +++ b/content/cookbook/development/subscribing-events.md @@ -9,7 +9,7 @@ Instead of pinging a typical HTTP endpoint at an interval to get frequent updates, you can instead receive those updates only when they happen. Solana's web3 -[`Connection`](https://solana-labs.github.io/solana-web3.js/classes/Connection.html) +[`Connection`](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Connection.html) under the hood generates a websocket endpoint and registers a websocket client when you create a new `Connection` instance (see source code [here](https://github.com/solana-labs/solana-web3.js/blob/45923ca00e4cc1ed079d8e55ecbee83e5b4dc174/src/connection.ts#L2100)). @@ -18,9 +18,9 @@ The `Connection` class exposes pub/sub methods - they all start with `on`, like event emitters. When you call these listener methods, it registers a new subscription to the websocket client of that `Connection` instance. The example pub/sub method we use below is -[`onAccountChange`](https://solana-labs.github.io/solana-web3.js/classes/Connection.html#onAccountChange). +[`onAccountChange`](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Connection.html#onAccountChange). The callback will provide the updated state data through arguments (see -[`AccountChangeCallback`](https://solana-labs.github.io/solana-web3.js/modules.html#AccountChangeCallback) +[`AccountChangeCallback`](https://solana-labs.github.io/solana-web3.js/v1.x/types/AccountChangeCallback.html) as an example). ```typescript filename="subscribe-to-events.ts" diff --git a/content/courses/native-onchain-development/deserialize-custom-data-frontend.md b/content/courses/native-onchain-development/deserialize-custom-data-frontend.md index a9a57d73a..9d2bf2b27 100644 --- a/content/courses/native-onchain-development/deserialize-custom-data-frontend.md +++ b/content/courses/native-onchain-development/deserialize-custom-data-frontend.md @@ -52,7 +52,7 @@ can be signed for by the program address used to create them. PDAs and the data inside them can be consistently found based on the program address, bump, and seeds. To find a PDA, the program ID and seeds of the developer's choice (like a string of text) are passed through the -[`findProgramAddress()`](https://solana-labs.github.io/solana-web3.js/classes/PublicKey.html#findProgramAddress) +[`findProgramAddress()`](https://solana-labs.github.io/solana-web3.js/v1.x/classes/PublicKey.html#findProgramAddress) function. Let's have a look at some examples... diff --git a/content/guides/advanced/introduction-to-durable-nonces.md b/content/guides/advanced/introduction-to-durable-nonces.md index 744cb4be1..cdabdad89 100644 --- a/content/guides/advanced/introduction-to-durable-nonces.md +++ b/content/guides/advanced/introduction-to-durable-nonces.md @@ -477,7 +477,7 @@ as we discussed before. This is done to avoid using the same nonce again. Voila, we've gone through a very real-life use case of Durable Nonces. Now let's see how to use them in transactions using JavaScript and the -[`@solana/web3.js`](https://solana-labs.github.io/solana-web3.js/) package. +[`@solana/web3.js`](https://solana-labs.github.io/solana-web3.js/v1.x/) package. ## Durable Nonces with Solana Web3.js diff --git a/content/guides/dapps/cash-app.md b/content/guides/dapps/cash-app.md index a15a8a8b5..4a495f82d 100644 --- a/content/guides/dapps/cash-app.md +++ b/content/guides/dapps/cash-app.md @@ -1494,7 +1494,7 @@ const withdrawInstruction = await program.methods **Additional documentation:** - [Transactions and Instructions](https://solana.com/docs/core/transactions) -- [Connection Class](https://solana-labs.github.io/solana-web3.js/classes/Connection.html) +- [Connection Class](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Connection.html) - Library for [wallets](https://github.com/solana-mobile/mobile-wallet-adapter/tree/main/android/walletlib) to provide the Mobile Wallet Adapter transaction signing services to dapps diff --git a/content/guides/getstarted/intro-to-native-rust.md b/content/guides/getstarted/intro-to-native-rust.md index 6f5125e6b..ed8d95b7b 100644 --- a/content/guides/getstarted/intro-to-native-rust.md +++ b/content/guides/getstarted/intro-to-native-rust.md @@ -326,7 +326,7 @@ pub struct NewAccount { Interacting with Solana programs written in native Rust involves directly building the -[`TransactionInstruction`](https://solana-labs.github.io/solana-web3.js/classes/TransactionInstruction.html). +[`TransactionInstruction`](https://solana-labs.github.io/solana-web3.js/v1.x/classes/TransactionInstruction.html). Similarly, fetching and deserializing account data requires creating a schema compatible with the on-chain program's data structures. diff --git a/content/guides/getstarted/solana-token-airdrop-and-faucets.md b/content/guides/getstarted/solana-token-airdrop-and-faucets.md index 3ae24e1ca..ec9f527db 100644 --- a/content/guides/getstarted/solana-token-airdrop-and-faucets.md +++ b/content/guides/getstarted/solana-token-airdrop-and-faucets.md @@ -43,7 +43,7 @@ connection.requestAirdrop(); ``` See more: -[`requestAirdrop()`](https://solana-labs.github.io/solana-web3.js/classes/Connection.html#requestAirdrop) +[`requestAirdrop()`](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Connection.html#requestAirdrop) documentation inside web3.js. ## 2. Web Faucet diff --git a/content/guides/javascript/compressed-nfts.md b/content/guides/javascript/compressed-nfts.md index 8e0e6c214..b2b899d85 100644 --- a/content/guides/javascript/compressed-nfts.md +++ b/content/guides/javascript/compressed-nfts.md @@ -808,7 +808,7 @@ helper function. Since each of these hash values resemble and are formatted similar to PublicKeys, we can use the -[`PublicKey`](https://solana-labs.github.io/solana-web3.js/classes/PublicKey.html) +[`PublicKey`](https://solana-labs.github.io/solana-web3.js/v1.x/classes/PublicKey.html) class in web3.js to convert them into an accepted byte array format. #### Send the transaction diff --git a/content/guides/javascript/get-program-accounts.md b/content/guides/javascript/get-program-accounts.md index dedc4c497..fdad11bb4 100644 --- a/content/guides/javascript/get-program-accounts.md +++ b/content/guides/javascript/get-program-accounts.md @@ -34,7 +34,7 @@ The `getProgramAccounts` RPC method has the following syntax: [State commitment](/docs/rpc/index.mdx#configuring-state-commitment) - (optional) `encoding`: `string` - Encoding for account data, either: `base58`, `base64`, or `jsonParsed`. Note, web3js users should instead use - [`getParsedProgramAccounts`](https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts) + [`getParsedProgramAccounts`](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Connection.html#getParsedProgramAccounts) - (optional) `dataSlice`: `object` - Limit the returned account data based on: - `offset`: `number` - Number of bytes into account data to begin returning - `length`: `number` - Number of bytes of account data to return @@ -307,5 +307,5 @@ interested in. ## Other Resources - [RPC API Documentation](https://solana.com/docs/rpc/http/getprogramaccounts) -- [web3.js documentation](https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getProgramAccounts) -- [getParsedProgramAccounts documentation](https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getParsedProgramAccounts) +- [web3.js documentation](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Connection.html#getProgramAccounts) +- [getParsedProgramAccounts documentation](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Connection.html#getParsedProgramAccounts) diff --git a/docs/advanced/actions.md b/docs/advanced/actions.md index 3aa38118d..f0f5e2d2e 100644 --- a/docs/advanced/actions.md +++ b/docs/advanced/actions.md @@ -816,9 +816,9 @@ export interface ActionPostResponse { ``` - `transaction` - The value must be a base64-encoded - [serialized transaction](https://solana-labs.github.io/solana-web3.js/classes/Transaction.html#serialize). + [serialized transaction](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Transaction.html#serialize). The client must base64-decode the transaction and - [deserialize it](https://solana-labs.github.io/solana-web3.js/classes/Transaction.html#from). + [deserialize it](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Transaction.html#from). - `message` - The value must be a UTF-8 string that describes the nature of the transaction included in the response. The client should display this value to @@ -839,16 +839,16 @@ export interface ActionPostResponse { #### POST Response - Transaction If the transaction -[`signatures`](https://solana-labs.github.io/solana-web3.js/classes/Transaction.html#signatures) +[`signatures`](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Transaction.html#signatures) are empty or the transaction has NOT been partially signed: - The client must ignore the - [`feePayer`](https://solana-labs.github.io/solana-web3.js/classes/Transaction.html#feePayer) + [`feePayer`](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Transaction.html#feePayer) in the transaction and set the `feePayer` to the `account` in the request. - The client must ignore the - [`recentBlockhash`](https://solana-labs.github.io/solana-web3.js/classes/Transaction.html#recentBlockhash) + [`recentBlockhash`](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Transaction.html#recentBlockhash) in the transaction and set the `recentBlockhash` to the - [latest blockhash](https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getLatestBlockhash). + [latest blockhash](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Connection.html#getLatestBlockhash). - The client must serialize and deserialize the transaction before signing it. This ensures consistent ordering of the account keys, as a workaround for [this issue](https://github.com/solana-labs/solana/issues/21722). @@ -856,9 +856,9 @@ are empty or the transaction has NOT been partially signed: If the transaction has been partially signed: - The client must NOT alter the - [`feePayer`](https://solana-labs.github.io/solana-web3.js/classes/Transaction.html#feePayer) + [`feePayer`](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Transaction.html#feePayer) or - [`recentBlockhash`](https://solana-labs.github.io/solana-web3.js/classes/Transaction.html#recentBlockhash) + [`recentBlockhash`](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Transaction.html#recentBlockhash) as this would invalidate any existing signatures. - The client must verify existing signatures, and if any are invalid, the client must reject the transaction as **malformed**. @@ -1189,7 +1189,7 @@ string with each separated by a semi-colon. No other data should be included with Identifier Message's Memo instruction. The `identity` and the `reference` should be included as read-only, non-signer -[keys](https://solana-labs.github.io/solana-web3.js/classes/TransactionInstruction.html#keys) +[keys](https://solana-labs.github.io/solana-web3.js/v1.x/classes/TransactionInstruction.html#keys) in the transaction on an instruction that is NOT the Identifier Message Memo instruction. diff --git a/docs/advanced/lookup-tables.md b/docs/advanced/lookup-tables.md index 07963c094..354d72004 100644 --- a/docs/advanced/lookup-tables.md +++ b/docs/advanced/lookup-tables.md @@ -39,7 +39,7 @@ Creating a new lookup table with the `@solana/web3.js` library is similar to the older `legacy` transactions, but with some differences. Using the `@solana/web3.js` library, you can use the -[`createLookupTable`](https://solana-labs.github.io/solana-web3.js/classes/AddressLookupTableProgram.html#createLookupTable) +[`createLookupTable`](https://solana-labs.github.io/solana-web3.js/v1.x/classes/AddressLookupTableProgram.html#createLookupTable) function to construct the instruction needed to create a new lookup table, as well as determine its address: @@ -75,7 +75,7 @@ console.log("lookup table address:", lookupTableAddress.toBase58()); Adding addresses to a lookup table is known as "_extending_". Using the `@solana/web3.js` library, you can create a new _extend_ instruction using the -[`extendLookupTable`](https://solana-labs.github.io/solana-web3.js/classes/AddressLookupTableProgram.html#extendLookupTable) +[`extendLookupTable`](https://solana-labs.github.io/solana-web3.js/v1.x/classes/AddressLookupTableProgram.html#extendLookupTable) method: ```js @@ -109,7 +109,7 @@ Enabling up to 64 addresses in those future transactions. Similar to requesting another account (or PDA) from the cluster, you can fetch a complete Address Lookup Table with the -[`getAddressLookupTable`](https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getAddressLookupTable) +[`getAddressLookupTable`](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Connection.html#getAddressLookupTable) method: ```js diff --git a/docs/advanced/state-compression.md b/docs/advanced/state-compression.md index cdc4c8749..786c16237 100644 --- a/docs/advanced/state-compression.md +++ b/docs/advanced/state-compression.md @@ -279,7 +279,7 @@ package, developers can use the function to calculate the required space for a given tree size parameters. Then using the -[`getMinimumBalanceForRentExemption`](https://solana-labs.github.io/solana-web3.js/classes/Connection.html#getMinimumBalanceForRentExemption) +[`getMinimumBalanceForRentExemption`](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Connection.html#getMinimumBalanceForRentExemption) function to get the final cost (in lamports) to allocate the required space for the tree on-chain. diff --git a/docs/advanced/versions.md b/docs/advanced/versions.md index fea794409..501b4aa84 100644 --- a/docs/advanced/versions.md +++ b/docs/advanced/versions.md @@ -45,13 +45,14 @@ transaction is returned when `legacy` is selected) ## How to set max supported version You can set the `maxSupportedTransactionVersion` using both the -[`@solana/web3.js`](https://solana-labs.github.io/solana-web3.js/) library and -JSON formatted requests directly to an RPC endpoint. +[`@solana/web3.js`](https://solana-labs.github.io/solana-web3.js/v1.x/) library +and JSON formatted requests directly to an RPC endpoint. ### Using web3.js -Using the [`@solana/web3.js`](https://solana-labs.github.io/solana-web3.js/) -library, you can retrieve the most recent block or get a specific transaction: +Using the +[`@solana/web3.js`](https://solana-labs.github.io/solana-web3.js/v1.x/) library, +you can retrieve the most recent block or get a specific transaction: ```js // connect to the `devnet` cluster and get the current `slot` diff --git a/docs/clients/javascript-reference.md b/docs/clients/javascript-reference.md index d30829b4f..cfa80f396 100644 --- a/docs/clients/javascript-reference.md +++ b/docs/clients/javascript-reference.md @@ -11,13 +11,13 @@ The `@solana/web3.js` library is a package that has coverage over the [Solana JSON RPC API](/docs/rpc). You can find the full documentation for the `@solana/web3.js` library -[here](https://solana-labs.github.io/solana-web3.js/). +[here](https://solana-labs.github.io/solana-web3.js/v1.x/). ## General ### Connection -[Source Documentation](https://solana-labs.github.io/solana-web3.js/classes/Connection.html) +[Source Documentation](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Connection.html) Connection is used to interact with the [Solana JSON RPC](/docs/rpc). You can use Connection to confirm transactions, get account info, and more. @@ -62,12 +62,12 @@ console.log(slotLeader); ``` The above example shows only a few of the methods on Connection. Please see the -[source generated docs](https://solana-labs.github.io/solana-web3.js/classes/Connection.html) +[source generated docs](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Connection.html) for the full list. ### Transaction -[Source Documentation](https://solana-labs.github.io/solana-web3.js/classes/Transaction.html) +[Source Documentation](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Transaction.html) A transaction is used to interact with programs on the Solana blockchain. These transactions are constructed with TransactionInstructions, containing all the @@ -142,7 +142,7 @@ await web3.sendAndConfirmRawTransaction(connection, rawTransaction); ### Keypair -[Source Documentation](https://solana-labs.github.io/solana-web3.js/classes/Keypair.html) +[Source Documentation](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Keypair.html) The keypair is used to create an account with a public key and secret key within Solana. You can either generate, generate from a seed, or create from a secret @@ -214,7 +214,7 @@ entropy. Do not share your seed. Treat the seed like you would a private key. ### PublicKey -[Source Documentation](https://solana-labs.github.io/solana-web3.js/classes/PublicKey.html) +[Source Documentation](https://solana-labs.github.io/solana-web3.js/v1.x/classes/PublicKey.html) PublicKey is used throughout `@solana/web3.js` in transactions, keypairs, and programs. You require publickey when listing each account in a transaction and @@ -260,7 +260,7 @@ console.log(`Valid Program Address: ${validProgramAddress}`); ### SystemProgram -[Source Documentation](https://solana-labs.github.io/solana-web3.js/classes/SystemProgram.html) +[Source Documentation](https://solana-labs.github.io/solana-web3.js/v1.x/classes/SystemProgram.html) The SystemProgram grants the ability to create accounts, allocate account data, assign an account to programs, work with nonce accounts, and transfer lamports. @@ -358,7 +358,7 @@ await web3.sendAndConfirmTransaction(connection, assignTransaction, [ ### Secp256k1Program -[Source Documentation](https://solana-labs.github.io/solana-web3.js/classes/Secp256k1Program.html) +[Source Documentation](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Secp256k1Program.html) The Secp256k1Program is used to verify Secp256k1 signatures, which are used by both Bitcoin and Ethereum. @@ -421,7 +421,7 @@ await web3.sendAndConfirmTransaction(connection, transaction, [fromPublicKey]); ### Message -[Source Documentation](https://solana-labs.github.io/solana-web3.js/classes/Message.html) +[Source Documentation](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Message.html) Message is used as another way to construct transactions. You can construct a message using the accounts, header, instructions, and recentBlockhash that are a @@ -487,7 +487,7 @@ await web3.sendAndConfirmTransaction(connection, transaction, [fromPublicKey]); ### Struct -[Source Documentation](https://solana-labs.github.io/solana-web3.js/classes/Struct.html) +[Source Documentation](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Struct.html) The struct class is used to create Rust compatible structs in javascript. This class is only compatible with Borsh encoded Rust structs. @@ -517,7 +517,7 @@ export class Fee extends Struct { ### Enum -[Source Documentation](https://solana-labs.github.io/solana-web3.js/classes/Enum.html) +[Source Documentation](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Enum.html) The Enum class is used to represent a Rust compatible Enum in javascript. The enum will just be a string representation if logged but can be properly @@ -547,7 +547,7 @@ export class AccountType extends Enum {} ### NonceAccount -[Source Documentation](https://solana-labs.github.io/solana-web3.js/classes/NonceAccount.html) +[Source Documentation](https://solana-labs.github.io/solana-web3.js/v1.x/classes/NonceAccount.html) Normally a transaction is rejected if a transaction's `recentBlockhash` field is too old. To provide for certain custodial services, Nonce Accounts are used. @@ -637,7 +637,7 @@ offline with the nonce in place of the `recentBlockhash`. ### VoteAccount -[Source Documentation](https://solana-labs.github.io/solana-web3.js/classes/VoteAccount.html) +[Source Documentation](https://solana-labs.github.io/solana-web3.js/v1.x/classes/VoteAccount.html) Vote account is an object that grants the capability of decoding vote accounts from the native vote account program on the network. @@ -711,7 +711,7 @@ VoteAccount { ### StakeProgram -[Source Documentation](https://solana-labs.github.io/solana-web3.js/classes/StakeProgram.html) +[Source Documentation](https://solana-labs.github.io/solana-web3.js/v1.x/classes/StakeProgram.html) The StakeProgram facilitates staking SOL and delegating them to any validators on the network. You can use StakeProgram to create a stake account, stake some @@ -811,7 +811,7 @@ await web3.sendAndConfirmTransaction(connection, withdrawTransaction, [ ### Authorized -[Source Documentation](https://solana-labs.github.io/solana-web3.js/classes/Authorized.html) +[Source Documentation](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Authorized.html) Authorized is an object used when creating an authorized account for staking within Solana. You can designate a `staker` and `withdrawer` separately, @@ -822,7 +822,7 @@ You can find more usage of the `Authorized` object under ### Lockup -[Source Documentation](https://solana-labs.github.io/solana-web3.js/classes/Lockup.html) +[Source Documentation](https://solana-labs.github.io/solana-web3.js/v1.x/classes/Lockup.html) Lockup is used in conjunction with the [StakeProgram](/docs/clients/javascript.md#StakeProgram) to create an account. diff --git a/docs/clients/javascript.md b/docs/clients/javascript.md index 8aeb577ab..6d4932896 100644 --- a/docs/clients/javascript.md +++ b/docs/clients/javascript.md @@ -14,7 +14,7 @@ The Solana-Web3.js library aims to provide complete coverage of Solana. The library was built on top of the [Solana JSON RPC API](/docs/rpc). You can find the full documentation for the `@solana/web3.js` library -[here](https://solana-labs.github.io/solana-web3.js/). +[here](https://solana-labs.github.io/solana-web3.js/v1.x/). ## Common Terminology diff --git a/docs/core/fees.md b/docs/core/fees.md index 855223b99..d4d098cb7 100644 --- a/docs/core/fees.md +++ b/docs/core/fees.md @@ -338,7 +338,7 @@ let instruction = ComputeBudgetInstruction::set_compute_unit_price(1); #### Javascript The `@solana/web3.js` library includes functions within the -[`ComputeBudgetProgram`](https://solana-labs.github.io/solana-web3.js/classes/ComputeBudgetProgram.html) +[`ComputeBudgetProgram`](https://solana-labs.github.io/solana-web3.js/v1.x/classes/ComputeBudgetProgram.html) class to craft instructions for setting the _compute unit limit_ and _compute unit price_: From 820f70650cf32414d0ff626bae8c5e142c34d1c1 Mon Sep 17 00:00:00 2001 From: Steven Luscher Date: Fri, 8 Nov 2024 13:58:53 -0800 Subject: [PATCH 158/206] s/Ever/Every/ (#608) Typo in `create-keypair.md`. --- content/cookbook/wallets/create-keypair.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/cookbook/wallets/create-keypair.md b/content/cookbook/wallets/create-keypair.md index 5c414ce86..d8d6b360e 100644 --- a/content/cookbook/wallets/create-keypair.md +++ b/content/cookbook/wallets/create-keypair.md @@ -2,7 +2,7 @@ title: How to Create a Keypair sidebarSortOrder: 1 description: - "Ever transaction requires a signature from a keypair on Solana. Learn how to + "Every transaction requires a signature from a keypair on Solana. Learn how to create Keypairs on Solana." --- From ca7f951ca58281c83bbd1f951d8b1d0f64b76b9a Mon Sep 17 00:00:00 2001 From: Melody Serra Date: Tue, 12 Nov 2024 14:26:28 -0500 Subject: [PATCH 159/206] Update reading-from-network.md (#598) * Update reading-from-network.md added definition for deserialization * Update docs/intro/quick-start/reading-from-network.md Co-authored-by: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> --------- Co-authored-by: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> --- docs/intro/quick-start/reading-from-network.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/intro/quick-start/reading-from-network.md b/docs/intro/quick-start/reading-from-network.md index e354c28ff..268f06a2a 100644 --- a/docs/intro/quick-start/reading-from-network.md +++ b/docs/intro/quick-start/reading-from-network.md @@ -318,6 +318,14 @@ To read the `data` field from any account, you need to deserialize the data buffer into the expected data type. This is often done using helper functions from client libraries for a particular program. +**Deserialization** is the process of converting data from a stored format (like +raw bytes or JSON) back into a usable, structured format in a program. In +blockchain, it involves taking raw, encoded data from the network and +transforming it back into objects, classes, or readable structures so developers +can access and manipulate specific information within a program. Deserialization +is essential for interpreting account or transaction data received from a +network in a form that a program can process and display meaningfully. + Open this next [example](https://beta.solpg.io/6671cd8acffcf4b13384d19b) in Solana Playground. You'll see this code: From cf0ca9273ea6037b4ea44df0c739eb6cec53976d Mon Sep 17 00:00:00 2001 From: MP <163126871+mp-freatic@users.noreply.github.com> Date: Wed, 13 Nov 2024 17:48:40 +0100 Subject: [PATCH 160/206] Adding documentation for events discriminator (#613) --- docs/programs/anchor/idl.md | 53 +++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/docs/programs/anchor/idl.md b/docs/programs/anchor/idl.md index 924980b42..2df2e37a3 100644 --- a/docs/programs/anchor/idl.md +++ b/docs/programs/anchor/idl.md @@ -459,5 +459,58 @@ Note that different programs using identical account names will generate the same discriminator. When deserializing account data, Anchor programs will also check an account is owned by the expected program for a specified account type. + + + +The event discriminator is used to identify the specific event type when +deserializing on-chain data on event emission. + +```json filename="IDL" {4} + "events": [ + { + "name": "NewEvent", + "discriminator": [113, 21, 185, 70, 164, 99, 232, 201] + } + ] +``` + +The discriminator for an event is the first 8 bytes of the Sha256 hash of the +prefix `event` plus the event name. + +For example: + +``` +sha256("event:NewEvent") +``` + +Hexadecimal output: + +``` +71 15 b9 46 a4 63 e8 c9 2a 3c 4d 83 87 16 cd 9b 66 28 cb e2 cb 7c 5d 70 59 f3 42 2b dc 35 03 53 +``` + +The first 8 bytes are used as the discriminator for the account. + +Hex to decimal gives us: + +``` +71 = 113 +15 = 21 +b9 = 185 +46 = 70 +a4 = 164 +63 = 99 +e8 = 232 +c9 = 201 +``` + +You can find the implementation of the discriminator generation in the Anchor +codebase +[here](https://github.com/coral-xyz/anchor/blob/v0.30.1/lang/attribute/event/src/lib.rs#L23-L27). + +Note that different programs using identical event names will generate the same +discriminator. When deserializing event data, Anchor programs will also check an +event is owned by the expected program for a specified event type. + From 0bb54fdd7a2a2c2c34bec954cf401c360ed52c77 Mon Sep 17 00:00:00 2001 From: Jeeyong Um Date: Thu, 14 Nov 2024 01:49:51 +0900 Subject: [PATCH 161/206] Update sendTransaction.mdx (#611) --- docs/rpc/http/sendTransaction.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/rpc/http/sendTransaction.mdx b/docs/rpc/http/sendTransaction.mdx index 08e63e327..123b5afe9 100644 --- a/docs/rpc/http/sendTransaction.mdx +++ b/docs/rpc/http/sendTransaction.mdx @@ -19,8 +19,8 @@ cluster. While the rpc service will reasonably retry to submit it, the transaction could be rejected if transaction's `recent_blockhash` expires before it lands. -Use [`getSignatureStatuses`](#getsignaturestatuses) to ensure a transaction is -processed and confirmed. +Use [`getSignatureStatuses`](/docs/rpc/http/getSignatureStatuses) to ensure a +transaction is processed and confirmed. Before submitting, the following preflight checks are performed: From 309471cdf5af701e0c91c346e12730742a80e91b Mon Sep 17 00:00:00 2001 From: Jonas Hahn Date: Wed, 13 Nov 2024 21:58:10 +0100 Subject: [PATCH 162/206] Update verified-builds.md (#614) * Update verified-builds.md * Update verified-builds.md * Update verified-builds.md * Update content/guides/advanced/verified-builds.md * Update content/guides/advanced/verified-builds.md --------- Co-authored-by: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> --- content/guides/advanced/verified-builds.md | 49 +++++++++++++++------- 1 file changed, 34 insertions(+), 15 deletions(-) diff --git a/content/guides/advanced/verified-builds.md b/content/guides/advanced/verified-builds.md index 1654c13a1..a9cdb053d 100644 --- a/content/guides/advanced/verified-builds.md +++ b/content/guides/advanced/verified-builds.md @@ -34,10 +34,10 @@ The verification process involves comparing the hash of the onchain program with the hash of the locally built program from the source code. This ensures no discrepancies between the two versions. -> A While a verified build should not be considered more secure than an -> unverified build, the build enables developers to self verify the source code -> matches what is deployed onchain. Using the source code, a developer can then -> validate what the code executes when sending a transaction. +> While a verified build should not be considered more secure than an unverified +> build, the build enables developers to self verify the source code matches +> what is deployed onchain. Using the source code, a developer can then validate +> what the code executes when sending a transaction. The verified builds pipeline was thought out and is maintained by [Ellipsis Labs](https://ellipsislabs.xyz/) and [OtterSec](https://osec.io/). For @@ -87,7 +87,13 @@ Using verified builds provides the following benefits: program's onchain behavior is aligned with your public code. When building verifiable programs, you minimize risks associated with running unauthorized or malicious code. It also ensures you comply with best practices and give - security researchers an easy way to contact you. + security researchers an easy way to contact you. Also wallets and other tools + can allow transactions from your program more easily as long as it is + verified. + +- Discoverability: When you provide a verified build of you program everyone can + find your source code, docs, program SDK or IDL and they can also easily + contact you via github in case there is an issue. # How do I create verified builds? @@ -106,9 +112,9 @@ systems. -### Install the Docker and Cargo +### Install Docker and Cargo -Install the Necessary Tools Ensure you have Docker and Cargo installed. Docker +Install the necessary tools ensure you have Docker and Cargo installed. Docker provides a controlled build environment to ensure consistency, and Cargo is used for managing Rust packages. @@ -225,8 +231,8 @@ solana-verify get-program-hash -u $NETWORK_URL $PROGRAM_ID > You may have different versions deployed on different > [Solana clusters](/docs/core//clusters.md) (i.e. devnet, testnet, mainnet). -> Ensure you use the the correct network URL for the desired Solana cluster you -> want to verify a program against. +> Ensure you use the correct network URL for the desired Solana cluster you want +> to verify a program against. ### Verifying against repositories @@ -243,6 +249,12 @@ solana-verify verify-from-repo -u $NETWORK_URL --program-id $PROGRAM_ID https:// This command compares the onchain program with the executable built from the source at the specified commit hash. +At the end the command will ask you if you want to upload your verification data +onchain. If you do that the Solana Explorer will immediately show your program's +verification data. Until it was verified by a remote build it will show as +unverified. Learn how you can verify your program against a public API in the +next step. + ### Verify against public API Finally you can also directly verify the program against anyone that is running @@ -252,6 +264,10 @@ the verify API:: solana-verify verify-from-repo --remote -um --program-id PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY https://github.com/Ellipsis-Labs/phoenix-v1 ``` +> It is recommended to use a payed RPC Url because otherwise you may run into +> rate limits of the free RPCs. So instead of `-um` you can use +> `--url yourRpcUrl` for a more reliable verification. + The `--remote` flag sends a build request to the OtterSec API, which triggers a remote build of your program. Once the build is complete, the system verifies that the onchain hash of your program matches the hash of the generated build @@ -271,7 +287,7 @@ and eventually also on the community-run website [OtterSec verified programs API](https://verify.osec.io/verified-programs) and at last in the [Verified Programs Dune Dashboard](https://dune.com/jonashahn/verified-programs/dedf21e1-9b71-42c8-89f9-02ed94628657) -contributing to a more healthy solana ecosystem. +contributing to a more healthy Solana ecosystem. @@ -310,7 +326,8 @@ artifact from your repository. # Conclusion Using [verified builds on Solana](/content/guides/advanced/verified-builds.md) -ensures the integrity and trustworthiness of your programs on the network. By +ensures the integrity and trustworthiness of your programs on the network and +allow developers to find your SDKs directly from a Solana Explorer. By leveraging tools like the Solana Verify CLI and Docker, you can maintain verifiable and secure builds that align with your source code. Always take the necessary precautions to use consistent environments, and consider governance @@ -320,7 +337,7 @@ solutions for safe upgrades and deployments. While verified builds are a powerful tool for ensuring the integrity of your Solana programs it is not completely trustless in the default setup. The docker -images are build and hosted by the Ellipsis Labs team and the Solana Foundation. +images are built and hosted by the Solana Foundation. Be aware that you are building your project in a downloaded docker image and that your whole setup gets copied into that docker image for building including @@ -330,15 +347,17 @@ If you want to have a completely trustless setup you can build the docker images yourself and host them on your own infrastructure. This way you can be sure that the docker images are not tampered with. You can find the scripts to create your own docker images in the -[Verified builds repository](https://github.com/Ellipsis-Labs/solana-verifiable-build). +[Verified builds repository](https://github.com/Ellipsis-Labs/solana-verifiable-build) +and you can fork it and run the github actions yourself or validate that they +are correct. Furthermore for the remote verification you are trusting the OtterSec API and the [Solana Explorer](https://explorer.solana.com/address/PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY) to a certain degree. -The API and the Solana Explorer could potentially be compromised and show you -false information. +The API or Solana Explorer may potentially display incorrect information if +compromised. If you want to have a completely trustless setup you can run the [Verify API](https://github.com/otter-sec/solana-verified-programs-api) yourself From fb827fa289b071703a8dbdca747ba5b968146fc2 Mon Sep 17 00:00:00 2001 From: Brevis Date: Thu, 14 Nov 2024 19:45:00 +0400 Subject: [PATCH 163/206] Fix: correct typo "tha" to "the" (#607) --- content/courses/onchain-development/intro-to-anchor.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/courses/onchain-development/intro-to-anchor.md b/content/courses/onchain-development/intro-to-anchor.md index 6648bf1ea..4813ef35b 100644 --- a/content/courses/onchain-development/intro-to-anchor.md +++ b/content/courses/onchain-development/intro-to-anchor.md @@ -157,7 +157,7 @@ Through this context argument the instruction can then access: a vector that contains all accounts that were passed into the instruction handler but are not declared in the `Accounts` struct. - The bumps for any PDA accounts in the `Accounts` struct (`ctx.bumps`) -- The seeds for any PDA accounts in tha `Accounts` struct (`ctx.seeds`) +- The seeds for any PDA accounts in the `Accounts` struct (`ctx.seeds`) > The design of Contexts can be different across different programs to serve > their purpose; and the name of the context could be anything (not limited to From ccc3a8597af4cd536e4e4980054021c104f67193 Mon Sep 17 00:00:00 2001 From: 0xPraedico Date: Thu, 14 Nov 2024 16:45:41 +0100 Subject: [PATCH 164/206] Fix: eliminated repeated text in program-architecture.md (#609) --- content/courses/program-optimization/program-architecture.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/content/courses/program-optimization/program-architecture.md b/content/courses/program-optimization/program-architecture.md index e8682c8e5..119732abc 100644 --- a/content/courses/program-optimization/program-architecture.md +++ b/content/courses/program-optimization/program-architecture.md @@ -691,11 +691,6 @@ Depending on the seeding you can create all sorts of relationships: want one player account per wallet. Then you'd seed the account with `seeds=[b"PLAYER", owner.key().as_ref()]`. This way, you'll always know where to look for a wallet's player account **and** there can only ever be one of -- One-Per-Owner - Say you're creating a video game player account and you only - want one player account per wallet. Then you'd seed the account with - `seeds=[b"PLAYER", owner.key().as_ref()]`. This way, you'll always know where - to look for a wallet's player account **and** there can only ever be one of - them. - Multiple-Per-Owner - Okay, but what if you want multiple accounts per wallet? Say you want to mint podcast episodes. Then you could seed your `Podcast` account like this: From 333ef60a8c9f1e5db6187901e249e0c90e12173d Mon Sep 17 00:00:00 2001 From: Will Frost <37545822+Frostist@users.noreply.github.com> Date: Thu, 14 Nov 2024 17:46:24 +0200 Subject: [PATCH 165/206] Update intro-to-anchor.md (#605) Updated local-setup button to work, currently takes you to dead link. Also updated Header's "Add constraints with #[account(..)] " and "#[account] " As they both didn't work on the side bar. --- content/courses/onchain-development/intro-to-anchor.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/courses/onchain-development/intro-to-anchor.md b/content/courses/onchain-development/intro-to-anchor.md index 4813ef35b..76aff362d 100644 --- a/content/courses/onchain-development/intro-to-anchor.md +++ b/content/courses/onchain-development/intro-to-anchor.md @@ -21,7 +21,7 @@ description: "Create your first Solana onchain program in Anchor." ## Lesson Before we begin, make sure you have Anchor installed. You can follow this lesson -on [local-setup](/content/onchain-development/local-setup.md). +on [local-setup](/developers/courses/onchain-development/local-setup.md). Solana's capacity to execute arbitrary code is a key part of its power. Solana programs, (sometimes called "smart contracts"), are the very foundation of the @@ -305,7 +305,7 @@ account_info.key == expected_program account_info.executable == true ``` -### Add constraints with `#[account(..)]` +### Add constraints with Account The `#[account(..)]` attribute macro is used to apply constraints to accounts. We'll go over a few constraint examples in this and future lessons, but at some @@ -354,7 +354,7 @@ pub user: Signer<'info>, Note that the `init` constraint placed on `account_name` automatically includes a `mut` constraint so that both `account_name` and `user` are mutable accounts. -### `#[account]` +### Account The `#[account]` attribute is applied to structs representing the data structure of a Solana account. It implements the following traits: From 84f2bd2d6fafe5d08cde28f42e02334f467bd35d Mon Sep 17 00:00:00 2001 From: Jonas Hahn Date: Mon, 18 Nov 2024 17:16:03 +0100 Subject: [PATCH 166/206] Add cargo.toml explanation and example programs (#617) * Add cargo.toml explanation and example programs * Update content/guides/advanced/verified-builds.md * Update content/guides/advanced/verified-builds.md * Update content/guides/advanced/verified-builds.md --------- Co-authored-by: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> --- content/guides/advanced/verified-builds.md | 141 +++++++++++++++++---- 1 file changed, 115 insertions(+), 26 deletions(-) diff --git a/content/guides/advanced/verified-builds.md b/content/guides/advanced/verified-builds.md index a9cdb053d..f87473775 100644 --- a/content/guides/advanced/verified-builds.md +++ b/content/guides/advanced/verified-builds.md @@ -156,15 +156,23 @@ If desired, you can install a version directly from a specific commit: cargo install solana-verify --git https://github.com/Ellipsis-Labs/solana-verifiable-build --rev 13a1db2 ``` -### Building Verifiable Programs +### Prepare project To verify against a repository it needs to have a `Cargo.lock` file in the root -directory of your repo. You can use this `Cargo.toml` example as a preset: +directory of your repository. If you only have one program in your repository +and a `cargo.lock` file in your root you can directly go to the next step and +build your program. + +If your program is in a subfolder and you have a rust workspace you need to +create a workspace `Cargo.toml` file in the root directory of your repository. + +You can use this `Cargo.toml` example as a preset: ```toml filename="Cargo.toml" [workspace] members = ["program/programs/*"] resolver = "2" + [profile.release] overflow-checks = true lto = "fat" @@ -176,8 +184,41 @@ incremental = false codegen-units = 1 ``` -With this file in place you can then run `cargo generate-lockfile` to create a -lock file. +Make sure that your program is in the `workspace/members` array and that the +`Cargo.toml` of your program has the correct `lib` name configured. + +> Important is the `lib name` not the package name! + +Something like this: + +```toml filename="waffle/Cargo.toml" +[package] +name = "waffle" +version = "0.1.0" +edition = "2021" + +[lib] +name = "waffle" +crate-type = ["cdylib", "lib"] + +[dependencies] +solana-program = "2.1.0" +``` + +In this [repository](https://github.com/solana-developers/verified-program) you +can see an example of a workspace with a program in a subfolder. Notice also +that when the program is in a subfolder you later need to add this folder as +`--mount-path` to the `verify-from-repo` command. + +In this [repository](https://github.com/solana-developers/solana-game-preset) +you can find an anchor example. In this +[repository](https://github.com/solana-developers/verified-program-root) you can +find a native rust example. + +With this `Cargo.toml` file in place you can then run `cargo generate-lockfile` +to create a lock file and continue to building your program. + +### Building Verifiable Programs To verifiably build your Solana program, navigate to the directory containing your workspace's `Cargo.toml` file and run: @@ -220,9 +261,12 @@ solution like [Squads Protocol](https://squads.so/protocol) for safe deployments, but you can also directly deploy with: ```bash -solana program deploy -u $NETWORK_URL target/deploy/$PROGRAM_LIB_NAME.so --program-id $PROGRAM_ID --upgrade-authority $UPGRADE_AUTHORITY +solana program deploy -u $NETWORK_URL target/deploy/$PROGRAM_LIB_NAME.so --program-id $PROGRAM_ID --with-compute-unit-price 50000 --max-sign-attempts 100 --use-rpc ``` +A currently fitting low priority fee you can request from your rpc provider for +example [Quicknode](https://www.quicknode.com/gas-tracker/solana). + To verify the deployed program matches the built executable, run: ```bash @@ -232,7 +276,14 @@ solana-verify get-program-hash -u $NETWORK_URL $PROGRAM_ID > You may have different versions deployed on different > [Solana clusters](/docs/core//clusters.md) (i.e. devnet, testnet, mainnet). > Ensure you use the correct network URL for the desired Solana cluster you want -> to verify a program against. +> to verify a program against. Remote verification will only work on mainnet. + +Now you can already get the hash of your program and compare it to your binary +hash from earlier if you want: + +```bash +solana-verify get-program-hash $PROGRAM_ID +``` ### Verifying against repositories @@ -242,12 +293,13 @@ To verify a program against its public repository, use: solana-verify verify-from-repo -u $NETWORK_URL --program-id $PROGRAM_ID https://github.com/$REPO_PATH --commit-hash $COMMIT_HASH --library-name $PROGRAM_LIB_NAME --mount-path $MOUNT_PATH ``` -> While you run the verified build in your program directory when running -> `verify-from-repo` you need to add the `mount-path`. This will be the path to -> the folder containing the `Cargo.toml` that contains your programs lib name. +> While you run the verified build in your program directory, when running +> `verify-from-repo` you need to add the `--mount-path` flag. This will be the +> path to the folder containing the `Cargo.toml` that contains your program's +> library name. -This command compares the onchain program with the executable built from the -source at the specified commit hash. +This command compares the onchain program hash with the executable hash built +from the source at the specified commit hash. At the end the command will ask you if you want to upload your verification data onchain. If you do that the Solana Explorer will immediately show your program's @@ -255,6 +307,9 @@ verification data. Until it was verified by a remote build it will show as unverified. Learn how you can verify your program against a public API in the next step. +If you want to lock the verification to a certain release, you can append the +`--commit-hash` flag to the command. + ### Verify against public API Finally you can also directly verify the program against anyone that is running @@ -265,7 +320,7 @@ solana-verify verify-from-repo --remote -um --program-id PhoeNiXZ8ByJGLkxNfZRnkU ``` > It is recommended to use a payed RPC Url because otherwise you may run into -> rate limits of the free RPCs. So instead of `-um` you can use +> rate limits of the free RPCs. So instead of `-um` you should use > `--url yourRpcUrl` for a more reliable verification. The `--remote` flag sends a build request to the OtterSec API, which triggers a @@ -273,14 +328,16 @@ remote build of your program. Once the build is complete, the system verifies that the onchain hash of your program matches the hash of the generated build artifact from your repository. -The default is the the +The default is the [OtterSec API](https://github.com/otter-sec/solana-verified-programs-api). Once the build is done, which takes a while, and was successful you will be able to see your program as verified in the [OtterSec API for single programs](https://verify.osec.io/status/PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY) and in the -[Solana Explorer](https://explorer.solana.com/address/PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY/verified-build) +[Solana Explorer](https://explorer.solana.com/address/PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY/verified-build), +[SolanaFM](https://solana.fm/address/PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY?cluster=mainnet-alpha), +[SolScan](https://solscan.io/account/PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY#programVerification) and eventually also on the community-run website [SolanaVerify.org](https://www.solanaverify.org/) maintained by [0xDeep](https://x.com/0xDeep) and the @@ -291,31 +348,63 @@ contributing to a more healthy Solana ecosystem. -## Example verified build +## Verify from docker image -Here’s an example of verifying the solana-games-preset with the ID -`MkabCfyUD6rBTaYHpgKBBpBo5qzWA2pK2hrGGKMurJt` using the source code from the -repository: +You can also verify your program against a docker image by running the following +command: ```bash -solana-verify verify-from-repo -url https://api.mainnet-beta.solana.com --program-id MkabCfyUD6rBTaYHpgKBBpBo5qzWA2pK2hrGGKMurJt https://github.com/solana-developers/solana-game-preset --library-name lumberjack --mount-path program --commit-hash eaf772fd1f21fe03a9974587f5680635e970be38 +solana-verify verify-from-image -e +examples/hello_world/target/deploy/hello_world.so -i +ellipsislabs/hello_world_verifiable_build:latest -p +2ZrriTQSVekoj414Ynysd48jyn4AX6ZF4TTJRqHfbJfn ``` -By default the `verify-from-repo` command takes the last commit on the main -branch. You can also define a certain commit in case you want to continue -working on the repository by using the `commit-hash` parameter: -`--commit-hash eaf772fd1f21fe03a9974587f5680635e970be38` +This command loads up the image stored at +`ellipsislabs/hello_world_verifiable_build:latest`, and verifies that the hash +of the executable path in the container is the same as the hash of the on-chain +program supplied to the command. Because the build was already uploaded to an +image, there is no need for a full rebuild of the executable which can take a +long time. + +The Dockerfile that creates the image +`ellipsislabs/hello_world_verifiable_build:latest` can be found in the ellipsis +labs repository +[/examples/hello_world](https://github.com/Ellipsis-Labs/solana-verifiable-build/tree/master/examples/hello_world). -You can also verify using Docker images for faster verification: +Below is the expected output: ```bash -solana-verify verify-from-image -e examples/hello_world/target/deploy/hello_world.so -i ellipsislabs/hello_world_verifiable_build:latest -p 2ZrriTQSVekoj414Ynysd48jyn4AX6ZF4TTJRqHfbJfn +Verifying image: "ellipsislabs/hello_world_verifiable_build:latest", on network +"https://api.mainnet-beta.solana.com" against program ID +2ZrriTQSVekoj414Ynysd48jyn4AX6ZF4TTJRqHfbJfn Executable path in container: +"examples/hello_world/target/deploy/hello_world.so" + +Executable hash: +08d91368d349c2b56c712422f6d274a1e8f1946ff2ecd1dc3efc3ebace52a760 Program hash: +08d91368d349c2b56c712422f6d274a1e8f1946ff2ecd1dc3efc3ebace52a760 Executable +matches on-chain program data ✅ ``` +## Example verified build + +Here’s an example of verifying an example program with the ID +`FWEYpBAf9WsemQiNbAewhyESfR38GBBHLrCaU3MpEKWv` using the source code from this +[repository](https://github.com/solana-developers/verified-program): + +```bash +solana-verify verify-from-repo https://github.com/solana-developers/verified-program --url YOUR-RPC-URL --program-id FWEYpBAf9WsemQiNbAewhyESfR38GBBHLrCaU3MpEKWv --mount-path waffle --library-name waffle --commit-hash 5b82b86f02afbde330dff3e1847bed2d42069f4e +``` + +By default the `verify-from-repo` command takes the last commit on the main +branch. You can also define a certain commit in case you want to continue +working on the repository by using the `commit-hash` parameter: +`--commit-hash 5b82b86f02afbde330dff3e1847bed2d42069f4e` + Finally you can also directly verify the program against the OtterSec API: ```bash -solana-verify verify-from-repo --remote -um --program-id PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY https://github.com/Ellipsis-Labs/phoenix-v1 +solana-verify verify-from-repo https://github.com/solana-developers/verified-program --url YOUR-RPC-URL --remote --program-id FWEYpBAf9WsemQiNbAewhyESfR38GBBHLrCaU3MpEKWv --mount-path waffle --library-name waffle --commit-hash 5b82b86f02afbde330dff3e1847bed2d42069f4e ``` The `--remote` command sends a build request to the OtterSec API, which triggers From 49334368e64023e605c61efdaa6db5121de882ec Mon Sep 17 00:00:00 2001 From: Melody Serra Date: Mon, 18 Nov 2024 11:17:51 -0500 Subject: [PATCH 167/206] Update clusters.md (#619) added a table and some high level info on clusters, if you could double check that I used the right endpoints in the table, if you decide it's helpful, that would be so great --- docs/core/clusters.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/core/clusters.md b/docs/core/clusters.md index 0c94a76ce..100f5a489 100644 --- a/docs/core/clusters.md +++ b/docs/core/clusters.md @@ -39,6 +39,21 @@ An example of some of these Solana blockchain explorers include: - [http://solanabeach.io/](http://solanabeach.io/). - [http://validators.app/](http://validators.app/). +## On a high level + +- Mainnet: Live production environment for deployed applications. +- Devnet: Testing with public accessibility for developers experimenting with their applications. +- Testnet: Stress-testing for network upgrades and validator performance. + +**Example use cases**: You may want to debug a new program on Devnet or verify performance metrics on Testnet before Mainnet deployment. + +| **Cluster** | **Endpoint** | **Purpose** | **Notes** | +|---------------|----------------------------------|---------------------------------------------|-------------------------------------| +| Mainnet | `https://api.mainnet-beta.solana.com` | Live production environment | Requires SOL for transactions | +| Devnet | `https://api.devnet.solana.com` | Public testing and development | Free SOL airdrop for testing | +| Testnet | `https://api.testnet.solana.com` | Validator and stress testing | May have intermittent downtime | + + ## Devnet Devnet serves as a playground for anyone who wants to take Solana for a test From 5eb7bb53e20ad09cfa0dfadf1dac9a774c76f2ef Mon Sep 17 00:00:00 2001 From: jeon3029 Date: Tue, 19 Nov 2024 01:18:36 +0900 Subject: [PATCH 168/206] fix nfts with metaplex code name (#620) Co-authored-by: taejoon.jeon --- content/courses/tokens-and-nfts/nfts-with-metaplex.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/courses/tokens-and-nfts/nfts-with-metaplex.md b/content/courses/tokens-and-nfts/nfts-with-metaplex.md index 01e9fe72d..be6ce5a75 100644 --- a/content/courses/tokens-and-nfts/nfts-with-metaplex.md +++ b/content/courses/tokens-and-nfts/nfts-with-metaplex.md @@ -348,7 +348,7 @@ To begin, make a new folder and install the relevant dependencies: npm i @solana/web3.js@1 @solana-developers/helpers@2 @metaplex-foundation/mpl-token-metadata @metaplex-foundation/umi-bundle-defaults @metaplex-foundation/umi-uploader-irys esrun ``` -Then create a file called `create-metaplex-collection.ts`, and add our imports: +Then create a file called `create-metaplex-nft-collection.ts`, and add our imports: ```typescript import { @@ -698,7 +698,7 @@ await airdropIfRequired( const umi = createUmi(connection); -// Substitute in your collection NFT address from create-metaplex-collection.ts +// Substitute in your collection NFT address from create-metaplex-nft-collection.ts const collectionAddress = UMIPublicKey(""); // Substitute in your NFT address from create-metaplex-nft.ts From 44e44fac0a84185614aba735c5f3ba958f54d61d Mon Sep 17 00:00:00 2001 From: Sal Samani <54984459+metasal1@users.noreply.github.com> Date: Wed, 20 Nov 2024 01:34:10 +1100 Subject: [PATCH 169/206] Add example for Minimum Rent Exemption (#621) * correct difficulty to match slug, corrected typo, changed to official faucet, fixed heading (in MD if 2 headings have the same name, the anchor tag will point to first link * added v2 example for v2 * added check on curve example --------- Co-authored-by: Sal Samani --- content/cookbook/accounts/calculate-rent.md | 34 +++++++++++++++++-- content/cookbook/wallets/check-publickey.md | 36 ++++++++++++++++++++- 2 files changed, 66 insertions(+), 4 deletions(-) diff --git a/content/cookbook/accounts/calculate-rent.md b/content/cookbook/accounts/calculate-rent.md index 0ab617489..087e2aa96 100644 --- a/content/cookbook/accounts/calculate-rent.md +++ b/content/cookbook/accounts/calculate-rent.md @@ -2,15 +2,39 @@ title: How to Calculate Account Creation Cost sidebarSortOrder: 2 description: - "Every time you create an account, that creation costs a small amount of SOL. - Learn how to calculate how much an account costs at creation." + "Every time you create an account, that creation costs an amount of SOL. Learn + how to calculate how much an account costs at creation." --- Keeping accounts alive on Solana incurs a storage cost called rent. For the calculation, you need to consider the amount of data you intend to store in the account. Rent can be reclaimed in full if the account is closed. -```typescript filename="calculate-rent.ts" + + + + +```typescript +import { createSolanaRpc } from "@solana/web3.js"; + +(async () => { + const rpc = createSolanaRpc("https://api.devnet.solana.com"); + // length of data in bytes in the account to calculate rent for + const dataLength = 1500; + const rentExemptionAmount = await rpc + .getMinimumBalanceForRentExemption(BigInt(dataLength)) + .send(); + console.log({ + rentExemptionAmount, + }); +})(); +``` + + + + + +```typescript import { Connection, clusterApiUrl } from "@solana/web3.js"; (async () => { @@ -25,3 +49,7 @@ import { Connection, clusterApiUrl } from "@solana/web3.js"; }); })(); ``` + + + + diff --git a/content/cookbook/wallets/check-publickey.md b/content/cookbook/wallets/check-publickey.md index 287f64c2e..ddfc94b0c 100644 --- a/content/cookbook/wallets/check-publickey.md +++ b/content/cookbook/wallets/check-publickey.md @@ -11,7 +11,36 @@ have a private key associated with them. You can check this by looking to see if the public key lies on the ed25519 curve. Only public keys that lie on the curve can be controlled by users with wallets. -```javascript file=/code/cookbook/wallets/check-public-key.ts#L1-L2,#L3-L19 + + + + +```typescript +import { isAddress } from "@solana/web3.js"; + +// Note that generateKeyPair() will always give a public key that is valid for users + +// Valid public key +const key = "5oNDL3swdJJF1g9DzJiZ4ynHXgszjAEpUkxVYejchzrY"; + +// Lies on the ed25519 curve and is suitable for users +console.log("Valid Address: ", isAddress(key)); + +// // Valid public key +const offCurveAddress = "4BJXYkfvg37zEmBbsacZjeQDpTNx91KppxFJxRqrz48e"; + +// // Not on the ed25519 curve, therefore not suitable for users +console.log("Valid Off Curve Address: ", isAddress(offCurveAddress)); + +// // Not a valid public key +const errorPubkey = "testPubkey"; +console.log("Invalid Address: ", isAddress(errorPubkey)); +``` + + + + +```typescript import { PublicKey } from "@solana/web3.js"; // Note that Keypair.generate() will always give a public key that is valid for users @@ -31,4 +60,9 @@ console.log(PublicKey.isOnCurve(offCurveAddress.toBytes())); // Not a valid public key const errorPubkey = new PublicKey("testPubkey"); +console.log(PublicKey.isOnCurve(errorPubkey.toBytes())); +``` + + + ``` From d4f4e74654772672cdb09a627658fbe347d6ac7c Mon Sep 17 00:00:00 2001 From: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> Date: Tue, 19 Nov 2024 09:45:28 -0500 Subject: [PATCH 170/206] Cookbook v2 snippets (#625) * feat: calculate rent * feat: get balance * feat: create account * chore: prettier --- content/cookbook/accounts/calculate-rent.md | 39 ++-- content/cookbook/accounts/create-account.md | 168 +++++++++++++----- .../cookbook/accounts/get-account-balance.md | 36 +++- .../tokens-and-nfts/nfts-with-metaplex.md | 3 +- docs/core/clusters.md | 17 +- 5 files changed, 183 insertions(+), 80 deletions(-) diff --git a/content/cookbook/accounts/calculate-rent.md b/content/cookbook/accounts/calculate-rent.md index 087e2aa96..3d2fcdffe 100644 --- a/content/cookbook/accounts/calculate-rent.md +++ b/content/cookbook/accounts/calculate-rent.md @@ -14,20 +14,15 @@ account. Rent can be reclaimed in full if the account is closed. -```typescript +```typescript filename="calculate-rent.ts" import { createSolanaRpc } from "@solana/web3.js"; -(async () => { - const rpc = createSolanaRpc("https://api.devnet.solana.com"); - // length of data in bytes in the account to calculate rent for - const dataLength = 1500; - const rentExemptionAmount = await rpc - .getMinimumBalanceForRentExemption(BigInt(dataLength)) - .send(); - console.log({ - rentExemptionAmount, - }); -})(); +const rpc = createSolanaRpc("https://api.devnet.solana.com"); +// 1.5k bytes +const space = 1500n; + +const lamports = await rpc.getMinimumBalanceForRentExemption(space).send(); +console.log("Minimum balance for rent exception:", lamports); ``` @@ -37,17 +32,15 @@ import { createSolanaRpc } from "@solana/web3.js"; ```typescript import { Connection, clusterApiUrl } from "@solana/web3.js"; -(async () => { - const connection = new Connection(clusterApiUrl("devnet"), "confirmed"); - - // length of data in bytes in the account to calculate rent for - const dataLength = 1500; - const rentExemptionAmount = - await connection.getMinimumBalanceForRentExemption(dataLength); - console.log({ - rentExemptionAmount, - }); -})(); +const connection = new Connection(clusterApiUrl("devnet"), "confirmed"); + +// length of data in bytes in the account to calculate rent for +const dataLength = 1500; +const rentExemptionAmount = + await connection.getMinimumBalanceForRentExemption(dataLength); +console.log({ + rentExemptionAmount, +}); ``` diff --git a/content/cookbook/accounts/create-account.md b/content/cookbook/accounts/create-account.md index f1a570b64..9ed042bf3 100644 --- a/content/cookbook/accounts/create-account.md +++ b/content/cookbook/accounts/create-account.md @@ -7,10 +7,96 @@ description: --- Creating an account requires using the System Program `createAccount` -instruction. The Solana runtime will grant the owner of an account, access to -write to its data or transfer lamports. When creating an account, we have to -preallocate a fixed storage space in bytes (space) and enough lamports to cover -the rent. +instruction. The Solana runtime will grant the owner program of an account, +access to write to its data or transfer lamports. When creating an account, we +have to preallocate a fixed storage space in bytes (space) and enough lamports +to cover the rent. + + + + + +```typescript filename="create-account.ts" +import { + pipe, + createSolanaRpc, + appendTransactionMessageInstructions, + createSolanaRpcSubscriptions, + createTransactionMessage, + generateKeyPairSigner, + getSignatureFromTransaction, + sendAndConfirmTransactionFactory, + setTransactionMessageFeePayerSigner, + setTransactionMessageLifetimeUsingBlockhash, + signTransactionMessageWithSigners, +} from "@solana/web3.js"; +import { getSetComputeUnitPriceInstruction } from "@solana-program/compute-budget"; +import { + getCreateAccountInstruction, + SYSTEM_PROGRAM_ADDRESS, +} from "@solana-program/system"; + +const rpc = createSolanaRpc("https://api.devnet.solana.com"); +const rpcSubscriptions = createSolanaRpcSubscriptions( + "wss://api.devnet.solana.com", +); + +const sendAndConfirmTransaction = sendAndConfirmTransactionFactory({ + rpc, + rpcSubscriptions, +}); + +const space = 0n; // any extra space in the account +const rentLamports = await rpc.getMinimumBalanceForRentExemption(space).send(); +console.log("Minimum balance for rent exception:", rentLamports); + +// todo: load your own signer with SOL +const signer = await generateKeyPairSigner(); + +// generate a new keypair and address to create +const newAccountKeypair = await generateKeyPairSigner(); +console.log("New account address:", newAccountKeypair.address); + +const { value: latestBlockhash } = await rpc.getLatestBlockhash().send(); + +const transactionMessage = pipe( + createTransactionMessage({ version: "legacy" }), + tx => setTransactionMessageFeePayerSigner(signer, tx), + tx => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, tx), + tx => + appendTransactionMessageInstructions( + [ + // add a priority fee + getSetComputeUnitPriceInstruction({ + microLamports: 200_000, + }), + // create the new account + getCreateAccountInstruction({ + lamports: rentLamports, + newAccount: newAccountKeypair, + payer: signer, + space: space, + // "wallet" accounts are owned by the system program + programAddress: SYSTEM_PROGRAM_ADDRESS, + }), + ], + tx, + ), +); + +const signedTransaction = + await signTransactionMessageWithSigners(transactionMessage); +const signature = getSignatureFromTransaction(signedTransaction); + +await sendAndConfirmTransaction(signedTransaction, { + commitment: "confirmed", +}); +console.log("Signature:", signature); +``` + + + + ```typescript filename="create-account.ts" import { @@ -23,40 +109,42 @@ import { LAMPORTS_PER_SOL, } from "@solana/web3.js"; -(async () => { - const connection = new Connection(clusterApiUrl("devnet"), "confirmed"); - const fromPubkey = Keypair.generate(); - - // Airdrop SOL for transferring lamports to the created account - const airdropSignature = await connection.requestAirdrop( - fromPubkey.publicKey, - LAMPORTS_PER_SOL, - ); - await connection.confirmTransaction(airdropSignature); - - // amount of space to reserve for the account - const space = 0; - - // Seed the created account with lamports for rent exemption - const rentExemptionAmount = - await connection.getMinimumBalanceForRentExemption(space); - - const newAccountPubkey = Keypair.generate(); - const createAccountParams = { - fromPubkey: fromPubkey.publicKey, - newAccountPubkey: newAccountPubkey.publicKey, - lamports: rentExemptionAmount, - space, - programId: SystemProgram.programId, - }; - - const createAccountTransaction = new Transaction().add( - SystemProgram.createAccount(createAccountParams), - ); - - await sendAndConfirmTransaction(connection, createAccountTransaction, [ - fromPubkey, - newAccountPubkey, - ]); -})(); +const connection = new Connection(clusterApiUrl("devnet"), "confirmed"); +const fromPubkey = Keypair.generate(); + +// Airdrop SOL for transferring lamports to the created account +const airdropSignature = await connection.requestAirdrop( + fromPubkey.publicKey, + LAMPORTS_PER_SOL, +); +await connection.confirmTransaction(airdropSignature); + +// amount of space to reserve for the account +const space = 0; + +// Seed the created account with lamports for rent exemption +const rentExemptionAmount = + await connection.getMinimumBalanceForRentExemption(space); + +const newAccountPubkey = Keypair.generate(); +const createAccountParams = { + fromPubkey: fromPubkey.publicKey, + newAccountPubkey: newAccountPubkey.publicKey, + lamports: rentExemptionAmount, + space, + programId: SystemProgram.programId, +}; + +const createAccountTransaction = new Transaction().add( + SystemProgram.createAccount(createAccountParams), +); + +await sendAndConfirmTransaction(connection, createAccountTransaction, [ + fromPubkey, + newAccountPubkey, +]); ``` + + + + diff --git a/content/cookbook/accounts/get-account-balance.md b/content/cookbook/accounts/get-account-balance.md index 98a077947..f1c657bd1 100644 --- a/content/cookbook/accounts/get-account-balance.md +++ b/content/cookbook/accounts/get-account-balance.md @@ -6,7 +6,26 @@ description: that account balance on Solana." --- -```typescript filename="get-account-balance.ts" {13} + + + + +```typescript filename="get-account-balance.ts" +import { address, createSolanaRpc } from "@solana/web3.js"; + +const rpc = createSolanaRpc("https://api.devnet.solana.com"); +const LAMPORTS_PER_SOL = 1_000_000_000; // 1 billion lamports per SOL + +const wallet = address("nicktrLHhYzLmoVbuZQzHUTicd2sfP571orwo9jfc8c"); +const { value: balance } = await rpc.getBalance(wallet).send(); +console.log(`Balance: ${Number(balance) / LAMPORTS_PER_SOL} SOL`); +``` + + + + + +```typescript filename="get-account-balance.ts" import { clusterApiUrl, Connection, @@ -14,12 +33,13 @@ import { LAMPORTS_PER_SOL, } from "@solana/web3.js"; -(async () => { - const connection = new Connection(clusterApiUrl("devnet"), "confirmed"); +const connection = new Connection(clusterApiUrl("devnet"), "confirmed"); +const wallet = new PublicKey("nicktrLHhYzLmoVbuZQzHUTicd2sfP571orwo9jfc8c"); - let wallet = new PublicKey("G2FAbFQPFa5qKXCetoFZQEvF9BVvCKbvUZvodpVidnoY"); - console.log( - `${(await connection.getBalance(wallet)) / LAMPORTS_PER_SOL} SOL`, - ); -})(); +const balance = await connection.getBalance(wallet); +console.log(`Balance: ${balance / LAMPORTS_PER_SOL} SOL`); ``` + + + + diff --git a/content/courses/tokens-and-nfts/nfts-with-metaplex.md b/content/courses/tokens-and-nfts/nfts-with-metaplex.md index be6ce5a75..f5b929b5c 100644 --- a/content/courses/tokens-and-nfts/nfts-with-metaplex.md +++ b/content/courses/tokens-and-nfts/nfts-with-metaplex.md @@ -348,7 +348,8 @@ To begin, make a new folder and install the relevant dependencies: npm i @solana/web3.js@1 @solana-developers/helpers@2 @metaplex-foundation/mpl-token-metadata @metaplex-foundation/umi-bundle-defaults @metaplex-foundation/umi-uploader-irys esrun ``` -Then create a file called `create-metaplex-nft-collection.ts`, and add our imports: +Then create a file called `create-metaplex-nft-collection.ts`, and add our +imports: ```typescript import { diff --git a/docs/core/clusters.md b/docs/core/clusters.md index 100f5a489..c7b59ee60 100644 --- a/docs/core/clusters.md +++ b/docs/core/clusters.md @@ -42,17 +42,18 @@ An example of some of these Solana blockchain explorers include: ## On a high level - Mainnet: Live production environment for deployed applications. -- Devnet: Testing with public accessibility for developers experimenting with their applications. +- Devnet: Testing with public accessibility for developers experimenting with + their applications. - Testnet: Stress-testing for network upgrades and validator performance. -**Example use cases**: You may want to debug a new program on Devnet or verify performance metrics on Testnet before Mainnet deployment. - -| **Cluster** | **Endpoint** | **Purpose** | **Notes** | -|---------------|----------------------------------|---------------------------------------------|-------------------------------------| -| Mainnet | `https://api.mainnet-beta.solana.com` | Live production environment | Requires SOL for transactions | -| Devnet | `https://api.devnet.solana.com` | Public testing and development | Free SOL airdrop for testing | -| Testnet | `https://api.testnet.solana.com` | Validator and stress testing | May have intermittent downtime | +**Example use cases**: You may want to debug a new program on Devnet or verify +performance metrics on Testnet before Mainnet deployment. +| **Cluster** | **Endpoint** | **Purpose** | **Notes** | +| ----------- | ------------------------------------- | ------------------------------ | ------------------------------ | +| Mainnet | `https://api.mainnet-beta.solana.com` | Live production environment | Requires SOL for transactions | +| Devnet | `https://api.devnet.solana.com` | Public testing and development | Free SOL airdrop for testing | +| Testnet | `https://api.testnet.solana.com` | Validator and stress testing | May have intermittent downtime | ## Devnet From 87d2c566ddc4abd3c0ee67838431835d425fdcfa Mon Sep 17 00:00:00 2001 From: Oxy <76278067+oxy-Op@users.noreply.github.com> Date: Tue, 19 Nov 2024 21:25:46 +0530 Subject: [PATCH 171/206] Update program-architecture.md (#618) Remove duplicated line --- content/courses/program-optimization/program-architecture.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/content/courses/program-optimization/program-architecture.md b/content/courses/program-optimization/program-architecture.md index 119732abc..ba1f6e2f3 100644 --- a/content/courses/program-optimization/program-architecture.md +++ b/content/courses/program-optimization/program-architecture.md @@ -1526,8 +1526,6 @@ would end up as 0. `saturating_add` will keep it at its max if it's about to roll over, so `255 + 1 = 255`. The `checked_add` function will throw an error if it's about to overflow. Keep this in mind when doing math in Rust. Even though `kills` is a u64 and will never roll with it's current programming, it's good -it's about to overflow. Keep this in mind when doing math in Rust. Even though -`kills` is a u64 and will never roll with it's current programming, it's good practice to use safe math and consider roll-overs. ```rust filename="attack_monster.rs" From 94944cbac592a3fce8f59e198e355f39040a94fe Mon Sep 17 00:00:00 2001 From: nickfrosty <75431177+nickfrosty@users.noreply.github.com> Date: Tue, 19 Nov 2024 10:58:06 -0500 Subject: [PATCH 172/206] update codeowners --- CODEOWNERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CODEOWNERS b/CODEOWNERS index 0b5b1e443..157608479 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -3,10 +3,10 @@ # These global owners will be the default owners for everything in # the repo. Unless a later match takes precedence, will be requested for # review when someone opens a pull request. -* @nickfrosty +* @ZYJLiu # This list owns any file in the `/docs` directory in the root of # the repository and any of its subdirectories. # /docs/ @nickfrosty -/content/courses/ @mikemaccana +/docs/ @ZYJLiu From 99ec3dd089055ef8b75efedc8d55eb73a165c734 Mon Sep 17 00:00:00 2001 From: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> Date: Tue, 19 Nov 2024 11:48:34 -0500 Subject: [PATCH 173/206] fix: fix space label (#628) --- docs/rpc/http/getAccountInfo.mdx | 17 ++++-------- docs/rpc/http/getMultipleAccounts.mdx | 22 +++++++-------- docs/rpc/http/getProgramAccounts.mdx | 2 +- docs/rpc/http/getTokenAccountsByDelegate.mdx | 2 +- docs/rpc/http/getTokenAccountsByOwner.mdx | 29 +++++++++----------- 5 files changed, 31 insertions(+), 41 deletions(-) diff --git a/docs/rpc/http/getAccountInfo.mdx b/docs/rpc/http/getAccountInfo.mdx index 5f3caa40c..e9c32a550 100644 --- a/docs/rpc/http/getAccountInfo.mdx +++ b/docs/rpc/http/getAccountInfo.mdx @@ -90,7 +90,7 @@ The result will be an RpcResponse JSON object with `value` equal to: \(and is strictly read-only\) - `rentEpoch: ` - the epoch at which this account will next owe rent, as u64 - - `size: ` - the data size of the account + - `space: ` - the data size of the account @@ -120,19 +120,14 @@ curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" - { "jsonrpc": "2.0", "result": { - "context": { - "slot": 1 - }, + "context": { "apiVersion": "2.0.15", "slot": 341197053 }, "value": { - "data": [ - "11116bv5nS2h3y12kD1yUKeMZvGcKLSjQgX6BeV7u1FrjeJcKfsHRTPuR3oZ1EioKtYGiYxpxMG5vpbZLsbcBYBEmZZcMKaSoGx9JZeAuWf", - "base58" - ], + "data": ["", "base58"], "executable": false, - "lamports": 1000000000, + "lamports": 88849814690250, "owner": "11111111111111111111111111111111", - "rentEpoch": 2, - "space": 80 + "rentEpoch": 18446744073709551615, + "space": 0 } }, "id": 1 diff --git a/docs/rpc/http/getMultipleAccounts.mdx b/docs/rpc/http/getMultipleAccounts.mdx index 6bbe97cd5..1d67e8839 100644 --- a/docs/rpc/http/getMultipleAccounts.mdx +++ b/docs/rpc/http/getMultipleAccounts.mdx @@ -93,7 +93,7 @@ The result will be a JSON object with `value` equal to an array of: \(and is strictly read-only\) - `rentEpoch: ` - the epoch at which this account will next owe rent, as u64 - - `space: ` - the data size of the account + - `size: ` - the data size of the account @@ -126,24 +126,22 @@ curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" - { "jsonrpc": "2.0", "result": { - "context": { - "slot": 1 - }, + "context": { "apiVersion": "2.0.15", "slot": 341197247 }, "value": [ { - "data": ["", "base64"], + "data": ["", "base58"], "executable": false, - "lamports": 1000000000, + "lamports": 88849814690250, "owner": "11111111111111111111111111111111", - "rentEpoch": 2, - "space": 16 + "rentEpoch": 18446744073709551615, + "space": 0 }, { - "data": ["", "base64"], + "data": ["", "base58"], "executable": false, - "lamports": 5000000000, - "owner": "11111111111111111111111111111111", - "rentEpoch": 2, + "lamports": 998763433, + "owner": "2WRuhE4GJFoE23DYzp2ij6ZnuQ8p9mJeU6gDgfsjR4or", + "rentEpoch": 18446744073709551615, "space": 0 } ] diff --git a/docs/rpc/http/getProgramAccounts.mdx b/docs/rpc/http/getProgramAccounts.mdx index 79b37ad3e..5ff5d1bee 100644 --- a/docs/rpc/http/getProgramAccounts.mdx +++ b/docs/rpc/http/getProgramAccounts.mdx @@ -119,7 +119,7 @@ The resultant response array will contain: \(and is strictly read-only\) - `rentEpoch: ` - the epoch at which this account will next owe rent, as u64 - - `size: ` - the data size of the account + - `space: ` - the data size of the account diff --git a/docs/rpc/http/getTokenAccountsByDelegate.mdx b/docs/rpc/http/getTokenAccountsByDelegate.mdx index 480f90564..f706bd2b6 100644 --- a/docs/rpc/http/getTokenAccountsByDelegate.mdx +++ b/docs/rpc/http/getTokenAccountsByDelegate.mdx @@ -101,7 +101,7 @@ JSON objects, which will contain: (and is strictly read-only\) - `rentEpoch: ` - the epoch at which this account will next owe rent, as u64 - - `size: ` - the data size of the account + - `space: ` - the data size of the account When the data is requested with the `jsonParsed` encoding a format similar to that of the [Token Balances Structure](/docs/rpc/json-structures#token-balances) diff --git a/docs/rpc/http/getTokenAccountsByOwner.mdx b/docs/rpc/http/getTokenAccountsByOwner.mdx index d60af8eb0..46b4558dc 100644 --- a/docs/rpc/http/getTokenAccountsByOwner.mdx +++ b/docs/rpc/http/getTokenAccountsByOwner.mdx @@ -101,7 +101,7 @@ JSON objects, which will contain: \(and is strictly read-only\) - `rentEpoch: ` - the epoch at which this account will next owe rent, as u64 - - `size: ` - the data size of the account + - `space: ` - the data size of the account When the data is requested with the `jsonParsed` encoding a format similar to that of the [Token Balances Structure](/docs/rpc/json-structures#token-balances) @@ -137,13 +137,9 @@ curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" - ```json { - "id": 1, "jsonrpc": "2.0", "result": { - "context": { - "apiVersion": "2.0.8", - "slot": 329669901 - }, + "context": { "apiVersion": "2.0.15", "slot": 341197933 }, "value": [ { "account": { @@ -151,14 +147,14 @@ curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" - "parsed": { "info": { "isNative": false, - "mint": "BejB75Gmq8btLboHx7yffWcurHVBv5xvKcnY1fBYxnvf", + "mint": "2cHr7QS3xfuSV8wdxo3ztuF4xbiarF6Nrgx3qpx3HzXR", "owner": "A1TMhSGzQxMr1TboBKtgixKz1sS6REASMxPo1qsyTSJd", "state": "initialized", "tokenAmount": { - "amount": "10000000000000", - "decimals": 9, - "uiAmount": 10000, - "uiAmountString": "10000" + "amount": "420000000000000", + "decimals": 6, + "uiAmount": 420000000.0, + "uiAmountString": "420000000" } }, "type": "account" @@ -172,7 +168,7 @@ curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" - "rentEpoch": 18446744073709551615, "space": 165 }, - "pubkey": "5HvuXcy57o41qtGBBJM7dRN9DS6G3jd9KEhHt4eYqJmB" + "pubkey": "BGocb4GEpbTFm8UFV2VsDSaBXHELPfAXrvd4vtt8QWrA" }, { "account": { @@ -180,13 +176,13 @@ curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" - "parsed": { "info": { "isNative": false, - "mint": "FSX34rYUJ4zfdD7z4p3L1Fd1pGiiErusaSNTfgKqhep6", + "mint": "4KVSsAtsG8JByKfB2jYWgGwvVR9WcBSUfsqpTSL9c3Jr", "owner": "A1TMhSGzQxMr1TboBKtgixKz1sS6REASMxPo1qsyTSJd", "state": "initialized", "tokenAmount": { "amount": "10000000000000", "decimals": 9, - "uiAmount": 10000, + "uiAmount": 10000.0, "uiAmountString": "10000" } }, @@ -201,10 +197,11 @@ curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" - "rentEpoch": 18446744073709551615, "space": 165 }, - "pubkey": "HvTGvCP4tg2wVdFtqZCTdMPHDXmkYwNAxaTBCHabqh2X" + "pubkey": "9PwCPoWJ75LSgZeGMubXBdufYMVd66HrcF78QzW6ZHkV" } ] - } + }, + "id": 1 } ``` From eeed93b2552c66800b13ecf3465da0dcbbe5afa7 Mon Sep 17 00:00:00 2001 From: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> Date: Tue, 19 Nov 2024 12:16:36 -0500 Subject: [PATCH 174/206] fix: typo (#629) --- docs/rpc/http/getMultipleAccounts.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/rpc/http/getMultipleAccounts.mdx b/docs/rpc/http/getMultipleAccounts.mdx index 1d67e8839..7d8bcee79 100644 --- a/docs/rpc/http/getMultipleAccounts.mdx +++ b/docs/rpc/http/getMultipleAccounts.mdx @@ -93,7 +93,7 @@ The result will be a JSON object with `value` equal to an array of: \(and is strictly read-only\) - `rentEpoch: ` - the epoch at which this account will next owe rent, as u64 - - `size: ` - the data size of the account + - `space: ` - the data size of the account From 30b60bbdab25e33b45e552fce1bbc82a43bf8464 Mon Sep 17 00:00:00 2001 From: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> Date: Tue, 19 Nov 2024 14:00:15 -0500 Subject: [PATCH 175/206] docs: added note (#630) --- content/cookbook/accounts/get-account-balance.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/content/cookbook/accounts/get-account-balance.md b/content/cookbook/accounts/get-account-balance.md index f1c657bd1..8720ef709 100644 --- a/content/cookbook/accounts/get-account-balance.md +++ b/content/cookbook/accounts/get-account-balance.md @@ -21,6 +21,12 @@ const { value: balance } = await rpc.getBalance(wallet).send(); console.log(`Balance: ${Number(balance) / LAMPORTS_PER_SOL} SOL`); ``` +> As of `v2.0.0`, developers can use the default configurations within the main +> library (`@solana/web3.js`) or import any of its subpackages where better +> composition or more granular control over the imports is desired. See +> [Tree-Shakability](https://github.com/solana-labs/solana-web3.js?tab=readme-ov-file#tree-shakability) +> for more information. + From 490197bf43c934056d8dec7d7b3f94379ce0073e Mon Sep 17 00:00:00 2001 From: The Maker <168169829+adpthegreat@users.noreply.github.com> Date: Tue, 19 Nov 2024 22:11:45 +0100 Subject: [PATCH 176/206] [cookbook] update landing page (#633) * feat:added table of contents to index.md * fixed file links, ran prettier:lint * fixed links, removed header * feat:added /content/cookbook/ to links * fixed broken links and mislabeled clients --- content/cookbook/index.md | 99 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 98 insertions(+), 1 deletion(-) diff --git a/content/cookbook/index.md b/content/cookbook/index.md index bb214fbb6..d985bbdf9 100644 --- a/content/cookbook/index.md +++ b/content/cookbook/index.md @@ -7,7 +7,104 @@ description: references for building on Solana." --- -The _Solana Cookbook_ is a developer resource that provides examples and +The Solana Cookbook is a developer resource that provides examples and references for building applications on Solana. Each example and reference will focus on specific aspects of Solana development while providing additional details and usage examples. + +## Development Guides + +Development guides help developers set up and interact with the Solana ecosystem +using various tools and clients. + +| Guide | Client | Description | +| ------------------------------------------------------------------------------------------------------- | ---------- | ------------------------------------------ | +| [How to Start a Local Validator](/content/cookbook/development/start-local-validator.md) | Solana CLI | Set up and run a local Solana validator | +| [Connecting to a Solana Environment](/content/cookbook/development/connect-environment.md) | web3.js | Connect to different Solana networks | +| [Getting Test SOL](/content/cookbook/development/test-sol.md) | web3.js | Obtain SOL tokens for testing | +| [Subscribing to Events](/content/cookbook/development/subscribing-events.md) | web3.js | Listen to Solana program events | +| [Using Mainnet Accounts and Programs](/content/cookbook/development/using-mainnet-accounts-programs.md) | Solana CLI | Work with production accounts and programs | + +## Wallet Management + +Learn how to create, restore, and manage Solana wallets using various tools and +libraries. + +| Guide | Client | Description | +| ---------------------------------------------------------------------------------------------- | -------------- | ----------------------------------- | +| [How to Create a Keypair](/content/cookbook/wallets/create-keypair.md) | web3.js | Generate new Solana keypairs | +| [How to Restore a Keypair](/content/cookbook/wallets/restore-keypair.md) | web3.js | Recover existing keypairs | +| [How to Verify a Keypair](/content/cookbook/wallets/verify-keypair.md) | web3.js | Validate keypair authenticity | +| [How to Validate a Public Key](/content/cookbook/wallets/check-publickey.md) | web3.js | Check public key validity | +| [How to Generate Mnemonics for Keypairs](/content/cookbook/wallets/generate-mnemonic.md) | bip39 | Create seed phrases | +| [How to Restore a Keypair from a Mnemonic](/content/cookbook/wallets/restore-from-mnemonic.md) | web3.js, bip39 | Recover keypairs using seed phrases | +| [How to Generate a Vanity Address](/content/cookbook/wallets/generate-vanity-address.md) | Solana CLI | Create custom addresses | +| [How to Sign and Verify a Message](/content/cookbook/wallets/sign-message.md) | web3.js | Message signing and verification | +| [How to Connect a Wallet with React](/content/cookbook/wallets/connect-wallet-react.md) | React, web3.js | Integrate wallets in React apps | + +## Transaction Operations + +Explore various transaction-related operations on the Solana blockchain. + +| Guide | Client | Description | +| ------------------------------------------------------------------------------------------------ | ------- | ------------------------------ | +| [How to Send SOL](/content/cookbook/transactions/send-sol.md) | web3.js | Transfer SOL between accounts | +| [How to Send Tokens](/content/cookbook/transactions/send-tokens.md) | web3.js | Transfer SPL tokens | +| [How to Calculate Transaction Cost](/content/cookbook/transactions/calculate-cost.md) | web3.js | Estimate transaction fees | +| [How to Add a Memo to a Transaction](/content/cookbook/transactions/add-memo.md) | web3.js | Include memos in transactions | +| [How to Add Priority Fees to a Transaction](/content/cookbook/transactions/add-priority-fees.md) | web3.js | Set transaction priorities | +| [How to Optimize Compute Requested](/content/cookbook/transactions/optimize-compute.md) | web3.js | Improve transaction efficiency | +| [Offline Transactions](/content/cookbook/transactions/offline-transactions.md) | web3.js | Handle offline operations | + +## Account Management + +Learn how to manage Solana accounts effectively. + +| Guide | Client | Description | +| -------------------------------------------------------------------------------------- | ------------- | -------------------------- | +| [How to Create an Account](/content/cookbook/accounts/create-account.md) | web3.js | Create new Solana accounts | +| [How to Calculate Account Creation Cost](/content/cookbook/accounts/calculate-rent.md) | web3.js | Estimate account costs | +| [How to Create a PDA's Account](/content/cookbook/accounts/create-pda-account.md) | web3.js, Rust | Work with PDAs | +| [How to Sign with a PDA's Account](/content/cookbook/accounts/sign-with-pda.md) | Rust | PDA signing operations | +| [How to Close an Account](/content/cookbook/accounts/close-account.md) | Rust | Remove accounts | +| [How to Get Account Balance](/content/cookbook/accounts/get-account-balance.md) | web3.js | Check account balances | + +## Program Development + +Develop Solana programs with these comprehensive guides. + +| Guide | Client | Description | +| -------------------------------------------------------------------------------------------- | ------ | ---------------------------- | +| [How to Transfer SOL in a Solana Program](/content/cookbook/programs/transfer-sol.md) | Rust | Program-based SOL transfers | +| [How to Get Clock in a Program](/content/cookbook/programs/clock.md) | Rust | Access program clock | +| [How to Change Account Size](/content/cookbook/programs/change-account-size.md) | Rust | Modify account sizes | +| [How to Do Cross Program Invocation](/content/cookbook/programs/cross-program-invocation.md) | Rust | CPI operations | +| [How to Create a Program Derived Address](/content/cookbook/programs/create-pda.md) | Rust | Generate PDAs | +| [How to Read Accounts in a Program](/content/cookbook/programs/read-accounts.md) | Rust | Account data access | +| [Reading Multiple Instructions](/content/cookbook/programs/read-multiple-instructions.md) | Rust | Handle multiple instructions | +| [How to Verify Accounts in a Solana Program](/content/cookbook/programs/verify-accounts.md) | Rust | Account verification | + +## Token Operations + +Comprehensive guides for working with tokens on Solana. + +| Guide | Client | Description | +| --------------------------------------------------------------------------------------------------------- | ------------- | ------------------------------ | +| [How to Create a Token](/content/cookbook/tokens/create-mint-account.md) | web3.js | Create new tokens | +| [How to Get a Token Mint](/content/cookbook/tokens/get-token-mint.md) | web3.js | Access token mints | +| [How to Create a Token Account](/content/cookbook/tokens/create-token-account.md) | web3.js | Set up token accounts | +| [How to Get a Token Account](/content/cookbook/tokens/get-token-account.md) | web3.js | Retrieve token accounts | +| [How to Get a Token Account's Balance](/content/cookbook/tokens/get-token-balance.md) | web3.js, rust | Check token balances | +| [How to Mint Tokens](/content/cookbook/tokens/mint-tokens.md) | web3.js | Create new tokens | +| [How to Transfer Tokens](/content/cookbook/tokens/transfer-tokens.md) | web3.js | Move tokens between accounts | +| [How to Burn Tokens](/content/cookbook/tokens/burn-tokens.md) | web3.js | Remove tokens from circulation | +| [How to Close Token Accounts](/content/cookbook/tokens/close-token-accounts.md) | web3.js | Clean up token accounts | +| [How to Set Authority on Token Accounts or Mints](/content/cookbook/tokens/set-update-token-authority.md) | web3.js | Manage token permissions | +| [How to Delegate Token Accounts](/content/cookbook/tokens/approve-token-delegate.md) | web3.js | Set up token delegation | +| [How to Revoke a Token Delegate](/content/cookbook/tokens/revoke-token-delegate.md) | web3.js | Remove delegates | +| [How to Use Wrapped SOL](/content/cookbook/tokens/manage-wrapped-sol.md) | web3.js | Work with wrapped SOL | +| [How to Get All Token Accounts by Authority](/content/cookbook/tokens/get-all-token-accounts.md) | web3.js | List token accounts | +| [How to Create an NFT](/content/cookbook/tokens/create-nft.md) | web3.js | Mint NFTs | +| [How to Fetch the NFT Metadata](/content/cookbook/tokens/fetch-nft-metadata.md) | Javascript | Fetch NFT metadata | +| [How to Get the Owner of an NFT](/content/cookbook/tokens/get-nft-owner.md) | web3.js | Find NFT ownership | +| [How to Get All NFTs from a Wallet](/content/cookbook/tokens/fetch-all-nfts.md) | web3.js | List wallet NFTs | From c5e5b90a2cca5202a5c5d2ff2408dbe7ad4486e0 Mon Sep 17 00:00:00 2001 From: Apaar Date: Thu, 21 Nov 2024 01:54:23 +0530 Subject: [PATCH 177/206] Update create-pda.md for spell check (#637) Line 131 -- // Airdop to Payer ++// Airdrop to Payer --- content/cookbook/programs/create-pda.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/cookbook/programs/create-pda.md b/content/cookbook/programs/create-pda.md index a991fd856..c8e1be78b 100644 --- a/content/cookbook/programs/create-pda.md +++ b/content/cookbook/programs/create-pda.md @@ -128,7 +128,7 @@ const PAYER_KEYPAIR = Keypair.generate(); "6eW5nnSosr2LpkUGCdznsjRGDhVb26tLmiM1P8RV1QQp", ); - // Airdop to Payer + // Airdrop to Payer await connection.confirmTransaction( { blockhash: latestBlockHash.blockhash, From 458d3929edd6cce8400795a308c9e880211de245 Mon Sep 17 00:00:00 2001 From: metasal <54984459+metasal1@users.noreply.github.com> Date: Fri, 22 Nov 2024 04:38:57 +1100 Subject: [PATCH 178/206] Update sign-message.md updated to include v2 example (#640) --- content/cookbook/wallets/sign-message.md | 41 ++++++++++++++++++++---- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/content/cookbook/wallets/sign-message.md b/content/cookbook/wallets/sign-message.md index d491d7a97..fe6488b23 100644 --- a/content/cookbook/wallets/sign-message.md +++ b/content/cookbook/wallets/sign-message.md @@ -4,14 +4,40 @@ sidebarSortOrder: 6 description: "Learn how to sign messages on Solana." --- -The primary function of a keypair is to sign messages and enable verification of -the signature. Verification of a signature allows the recipient to be sure that -the data was signed by the owner of a specific private key. +The primary function of a keypair is to sign messages, transactions and enable +verification of the signature. Verification of a signature allows the recipient +to be sure that the data was signed by the owner of a specific private key. -To do so, we can use the [TweetNaCl](https://www.npmjs.com/package/tweetnacl) -crypto library: + -```typescript filename="sign-message.ts" +```typescript +import { + generateKeyPair, + signBytes, + verifySignature, + getUtf8Encoder, + getBase58Decoder, +} from "@solana/web3.js"; + +const keys = await generateKeyPair(); +const message = getUtf8Encoder().encode("Hello, World!"); +const signedBytes = await signBytes(keys.privateKey, message); + +const decoded = getBase58Decoder().decode(signedBytes); +console.log("Signature:", decoded); + +const verified = await verifySignature(keys.publicKey, signedBytes, message); +console.log("Verified:", verified); +``` + + + + + +In Solana Web3.js v1, we can use the +[TweetNaCl](https://www.npmjs.com/package/tweetnacl) crypto library: + +```typescript import { Keypair } from "@solana/web3.js"; import nacl from "tweetnacl"; import { decodeUTF8 } from "tweetnacl-util"; @@ -37,3 +63,6 @@ const result = nacl.sign.detached.verify( console.log(result); ``` + + + From bd1c34b5da2a5a79ad9756895122ed78a77dccb5 Mon Sep 17 00:00:00 2001 From: metasal <54984459+metasal1@users.noreply.github.com> Date: Fri, 22 Nov 2024 04:48:29 +1100 Subject: [PATCH 179/206] Update restore-keypair.md to include v2 examples (#638) * Update restore-keypair.md to include v2 examples * Update restore-keypair.md updated formatting --- content/cookbook/wallets/restore-keypair.md | 77 ++++++++++++++++----- 1 file changed, 61 insertions(+), 16 deletions(-) diff --git a/content/cookbook/wallets/restore-keypair.md b/content/cookbook/wallets/restore-keypair.md index 7cb5d570f..9832f48a7 100644 --- a/content/cookbook/wallets/restore-keypair.md +++ b/content/cookbook/wallets/restore-keypair.md @@ -9,28 +9,73 @@ secret to test out your dApp. ## From Bytes -```typescript filename="restore-keypair-from-bytes.ts" + + + + +```typescript + +import { createKeyPairFromBytes } from "@solana/web3.js"; + +const keypairBytes = new Uint8Array([ 174, 47, 154, 16, 202, 193, 206, 113, +199, 190, 53, 133, 169, 175, 31, 56, 222, 53, 138, 189, 224, 216, 117, 173, +10, 149, 53, 45, 73, 251, 237, 246, 15, 185, 186, 82, 177, 240, 148, 69, +241, 227, 167, 80, 141, 89, 240, 121, 121, 35, 172, 247, 68, 251, 226, 218, +48, 63, 176, 109, 168, 89, 238, 135 ]); + +const keypair = await createKeyPairFromBytes(keypairBytes); + +``` + + + + +```typescript + import { Keypair } from "@solana/web3.js"; -const keypair = Keypair.fromSecretKey( - Uint8Array.from([ - 174, 47, 154, 16, 202, 193, 206, 113, 199, 190, 53, 133, 169, 175, 31, 56, - 222, 53, 138, 189, 224, 216, 117, 173, 10, 149, 53, 45, 73, 251, 237, 246, - 15, 185, 186, 82, 177, 240, 148, 69, 241, 227, 167, 80, 141, 89, 240, 121, - 121, 35, 172, 247, 68, 251, 226, 218, 48, 63, 176, 109, 168, 89, 238, 135, - ]), -); +const keypairBytes = Uint8Array.from([ 174, 47, 154, 16, +202, 193, 206, 113, 199, 190, 53, 133, 169, 175, 31, 56, 222, 53, 138, 189, +224, 216, 117, 173, 10, 149, 53, 45, 73, 251, 237, 246, 15, 185, 186, 82, +177, 240, 148, 69, 241, 227, 167, 80, 141, 89, 240, 121, 121, 35, 172, 247, +68, 251, 226, 218, 48, 63, 176, 109, 168, 89, 238, 135 ]), + +const keypair = Keypair.fromSecretKey( keypairBytes ); + ``` -## From base58 String + + + +## From Base58 String + + + + + +```typescript + +import { createKeyPairFromBytes, getBase58Codec } from "@solana/web3.js"; + +const keypairBase58 = "5MaiiCavjCmn9Hs1o3eznqDEhRwxo7pXiAYez7keQUviUkauRiTMD8DrESdrNjN8zd9mTmVhRvBJeg5vhyvgrAhG"; +const keypairBytes = getBase58Codec().decode(keypairBase58); +const keypair = await createKeyPairFromBytes(keypairBytes); + +``` + + + + +```typescript -```typescript filename="restore-keypair-from-base58.ts import { Keypair } from "@solana/web3.js"; import * as bs58 from "bs58"; -const keypair = Keypair.fromSecretKey( - bs58.decode( - "5MaiiCavjCmn9Hs1o3eznqDEhRwxo7pXiAYez7keQUviUkauRiTMD8DrESdrNjN8zd9mTmVhRvBJeg5vhyvgrAhG", - ), -); +const keypairBase58 = "5MaiiCavjCmn9Hs1o3eznqDEhRwxo7pXiAYez7keQUviUkauRiTMD8DrESdrNjN8zd9mTmVhRvBJeg5vhyvgrAhG"; +const keypairBytes = bs58.decode(keypairBase58); +const keypair = Keypair.fromSecretKey(keypairBytes); + ``` + + + From ed7bf3c3c876b1c30d003c216b20ba58924f663f Mon Sep 17 00:00:00 2001 From: metasal <54984459+metasal1@users.noreply.github.com> Date: Fri, 22 Nov 2024 04:48:55 +1100 Subject: [PATCH 180/206] Update connect-wallet-react.md (#639) added info about v2 updated link titles to match removed excessive inline comments --- .../cookbook/wallets/connect-wallet-react.md | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/content/cookbook/wallets/connect-wallet-react.md b/content/cookbook/wallets/connect-wallet-react.md index 39714d811..53288a670 100644 --- a/content/cookbook/wallets/connect-wallet-react.md +++ b/content/cookbook/wallets/connect-wallet-react.md @@ -7,12 +7,14 @@ description: --- Solana's [wallet-adapter](https://github.com/anza-xyz/wallet-adapter) library -make it easy to manage wallet connections client-side. For a full length guide, +makes it easy to manage wallet connections client-side. For a full length guide, check out -[how to add wallet-adapter to nextjs](/content/guides/wallets/add-solana-wallet-adapter-to-nextjs.md). +[Add Solana Wallet Adapter to a NextJS application](/content/guides/wallets/add-solana-wallet-adapter-to-nextjs.md). ## How to Connect to a Wallet with React +> Currently, `create-solana-dapp` only works with Solana Web3.js v1. + For quick setup with React use: ```bash @@ -28,7 +30,7 @@ npm install --save \ @solana/wallet-adapter-react \ @solana/wallet-adapter-react-ui \ @solana/wallet-adapter-wallets \ - @solana/web3.js \ + @solana/web3.js@1 \ react ``` @@ -59,18 +61,6 @@ export const Wallet: FC = () => { const wallets = useMemo( () => [ - /** - * Wallets that implement either of these standards will be available automatically. - * - * - Solana Mobile Stack Mobile Wallet Adapter Protocol - * (https://github.com/solana-mobile/mobile-wallet-adapter) - * - Solana Wallet Standard - * (https://github.com/anza-xyz/wallet-standard) - * - * If you wish to support a wallet that supports neither of those standards, - * instantiate its legacy wallet adapter here. Common legacy adapters can be found - * in the npm package `@solana/wallet-adapter-wallets`. - */ new UnsafeBurnerWalletAdapter(), ], // eslint-disable-next-line react-hooks/exhaustive-deps From 5d4d64c845990a7bd01c777f2896bacfac682585 Mon Sep 17 00:00:00 2001 From: metasal <54984459+metasal1@users.noreply.github.com> Date: Fri, 22 Nov 2024 05:04:12 +1100 Subject: [PATCH 181/206] Update check-publickey.md to include web3.js v2 example (#622) * Update check-publickey.md to include web3.js v2 example * Update content/cookbook/wallets/check-publickey.md Co-authored-by: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> --------- Co-authored-by: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> Co-authored-by: John <75003086+ZYJLiu@users.noreply.github.com> --- content/cookbook/wallets/check-publickey.md | 1 - 1 file changed, 1 deletion(-) diff --git a/content/cookbook/wallets/check-publickey.md b/content/cookbook/wallets/check-publickey.md index ddfc94b0c..3aa440c73 100644 --- a/content/cookbook/wallets/check-publickey.md +++ b/content/cookbook/wallets/check-publickey.md @@ -65,4 +65,3 @@ console.log(PublicKey.isOnCurve(errorPubkey.toBytes())); -``` From 0823b6a09d1a1bf1aa4f6e46940dd22ce0cfc2c1 Mon Sep 17 00:00:00 2001 From: Jonas Hahn Date: Thu, 21 Nov 2024 19:06:15 +0100 Subject: [PATCH 182/206] Add web3jsV2 examples (#610) * Add web3jsV2 examples * Code review * Update add-priority-fees.md * Fix formatting * Update add-priority-fees.md --------- Co-authored-by: nickfrosty <75431177+nickfrosty@users.noreply.github.com> --- .../development/load-keypair-from-file.md | 87 ++++++++++ content/cookbook/transactions/add-memo.md | 127 ++++++++++++++- .../transactions/add-priority-fees.md | 126 +++++++++++++++ .../cookbook/transactions/calculate-cost.md | 151 +++++++++++++++++- content/cookbook/transactions/send-sol.md | 125 +++++++++++++++ 5 files changed, 612 insertions(+), 4 deletions(-) create mode 100644 content/cookbook/development/load-keypair-from-file.md diff --git a/content/cookbook/development/load-keypair-from-file.md b/content/cookbook/development/load-keypair-from-file.md new file mode 100644 index 000000000..b7ada9236 --- /dev/null +++ b/content/cookbook/development/load-keypair-from-file.md @@ -0,0 +1,87 @@ +--- +title: Load a local json file keypair +sidebarSortOrder: 6 +description: "Learn how to load a keypair from file." +--- + +When running your local project you probably want to use a file json keypair. +This can be very useful for all the cookbook examples as well. You can grind +yourself a keypair using `solana-keygen grind --starts-with a23:1` and then load +and use this one for your projects using the `loadKeypairFromFile` function. + +```typescript filename="load-keypair-from-file.ts" +import { + airdropFactory, + createKeyPairFromBytes, + createSolanaRpc, + createSolanaRpcSubscriptions, + devnet, + generateKeyPair, + getAddressFromPublicKey, + lamports, +} from "@solana/web3.js"; +import fs from "fs"; +import path from "path"; +import os from "os"; + +// The new library takes a brand-new approach to Solana key pairs and addresses, +// which will feel quite different from the classes PublicKey and Keypair from version 1.x. +// All key operations now use the native Ed25519 implementation in JavaScript’s +// Web Crypto API. +async function createKeypair() { + const newKeypair: CryptoKeyPair = await generateKeyPair(); + const publicAddress = await getAddressFromPublicKey(newKeypair.publicKey); + + console.log(`Public key: ${publicAddress}`); +} + +export async function loadDefaultKeypair(): Promise { + return await loadKeypairFromFile("~/.config/solana/id.json"); +} + +export async function loadDefaultKeypairWithAirdrop( + cluster: string, +): Promise { + const keypair = await loadDefaultKeypair(); + const rpc = createSolanaRpc(devnet(`https://api.${cluster}.solana.com`)); + const rpcSubscriptions = createSolanaRpcSubscriptions( + devnet(`wss://api.${cluster}.solana.com`), + ); + try { + const result = await rpc + .getBalance(await getAddressFromPublicKey(keypair.publicKey)) + .send(); + + console.log(`Balance: ${result.value} lamports`); + if (result.value < lamports(500_000n)) { + console.log(`Balance low requesting airdrop`); + const airdrop = airdropFactory({ rpc, rpcSubscriptions }); + await airdrop({ + commitment: "confirmed", + lamports: lamports(1000_000n), + recipientAddress: await getAddressFromPublicKey(keypair.publicKey), + }); + } + } catch (err) { + console.error("Error fetching balance:", err); + } + return keypair; +} + +export async function loadKeypairFromFile( + filePath: string, +): Promise { + // This is here so you can also load the default keypair from the file system. + const resolvedPath = path.resolve( + filePath.startsWith("~") ? filePath.replace("~", os.homedir()) : filePath, + ); + const loadedKeyBytes = Uint8Array.from( + JSON.parse(fs.readFileSync(resolvedPath, "utf8")), + ); + // Here you can also set the second parameter to true in case you need to extract your private key. + const keypair = await createKeyPairFromBytes(loadedKeyBytes); + return keypair; +} + +createKeypair(); +``` diff --git a/content/cookbook/transactions/add-memo.md b/content/cookbook/transactions/add-memo.md index 93deb235e..490566307 100644 --- a/content/cookbook/transactions/add-memo.md +++ b/content/cookbook/transactions/add-memo.md @@ -6,9 +6,126 @@ description: how to add a memo to your transactions on Solana." --- -Any transaction can add a message making use of the memo program. Currently the -programID from the Memo Program has to be added manually -`MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr`. +Any transaction can add a message making use of the memo program. In web3.js@1 +the programID from the Memo Program has to be added manually +`MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr` in V2 you can use +`getAddMemoInstruction`. + + + + + +```typescript filename="add-memo.ts" {61-72} +import { + airdropFactory, + appendTransactionMessageInstructions, + createSolanaRpc, + createSolanaRpcSubscriptions, + createTransactionMessage, + devnet, + generateKeyPairSigner, + getComputeUnitEstimateForTransactionMessageFactory, + getSignatureFromTransaction, + lamports, + pipe, + prependTransactionMessageInstructions, + sendAndConfirmTransactionFactory, + setTransactionMessageFeePayerSigner, + setTransactionMessageLifetimeUsingBlockhash, + signTransactionMessageWithSigners, + type Transaction, +} from "@solana/web3.js"; +import { + getSetComputeUnitLimitInstruction, + getSetComputeUnitPriceInstruction, +} from "@solana-program/compute-budget"; +import { getAddMemoInstruction } from "@solana-program/memo"; + +async function writeMemo(message: string) { + // Create an RPC. + const CLUSTER = "devnet"; + const rpc = createSolanaRpc(devnet(`https://api.${CLUSTER}.solana.com`)); + const rpcSubscriptions = createSolanaRpcSubscriptions( + devnet(`wss://api.${CLUSTER}.solana.com`), + ); + + // Create an airdrop function. + const airdrop = airdropFactory({ rpc, rpcSubscriptions }); + + // Create a utility that estimates a transaction message's compute consumption. + const getComputeUnitEstimate = + getComputeUnitEstimateForTransactionMessageFactory({ rpc }); + + // Create a transaction sending function. + const sendAndConfirmTransaction = sendAndConfirmTransactionFactory({ + rpc, + rpcSubscriptions, + }); + + // Create and fund an account. + const keypairSigner = await generateKeyPairSigner(); + console.log("Created an account with address", keypairSigner.address); + console.log("Requesting airdrop"); + await airdrop({ + commitment: "confirmed", + lamports: lamports(1000_000n), + recipientAddress: keypairSigner.address, + }); + console.log("Airdrop confirmed"); + + // Create a memo transaction. + console.log("Creating a memo transaction"); + const { value: latestBlockhash } = await rpc.getLatestBlockhash().send(); + const transactionMessage = pipe( + createTransactionMessage({ version: "legacy" }), + m => setTransactionMessageFeePayerSigner(keypairSigner, m), + m => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, m), + m => + appendTransactionMessageInstructions( + [ + getSetComputeUnitPriceInstruction({ microLamports: 5000n }), + getAddMemoInstruction({ memo: message }), + ], + m, + ), + ); + + // Figure out how many compute units to budget for this transaction + // so that you can right-size the compute budget to maximize the + // chance that it will be selected for inclusion into a block. + console.log("Estimating the compute consumption of the transaction"); + const estimatedComputeUnits = + await getComputeUnitEstimate(transactionMessage); + console.log( + `Transaction is estimated to consume ${estimatedComputeUnits} compute units`, + ); + const budgetedTransactionMessage = prependTransactionMessageInstructions( + [getSetComputeUnitLimitInstruction({ units: estimatedComputeUnits })], + transactionMessage, + ); + + // Sign and send the transaction. + console.log("Signing and sending the transaction"); + const signedTx = await signTransactionMessageWithSigners( + budgetedTransactionMessage, + ); + const signature = getSignatureFromTransaction(signedTx); + console.log( + "Sending transaction https://explorer.solana.com/tx/" + + signature + + "/?cluster=" + + CLUSTER, + ); + await sendAndConfirmTransaction(signedTx, { commitment: "confirmed" }); + console.log("Transaction confirmed"); +} + +writeMemo("Hello, Solana!"); +``` + + + + ```typescript filename="add-memo.ts" {38-46} import { @@ -63,3 +180,7 @@ import { ]); })(); ``` + + + + diff --git a/content/cookbook/transactions/add-priority-fees.md b/content/cookbook/transactions/add-priority-fees.md index a10b49b42..ea02cb42f 100644 --- a/content/cookbook/transactions/add-priority-fees.md +++ b/content/cookbook/transactions/add-priority-fees.md @@ -29,6 +29,128 @@ compute budget. The value provided will replace the default value. Transactions should request the minimum amount of CU required for execution to maximize throughput, or minimize fees. + + + + +```typescript filename="add-priority-fees.ts" {61-72} {37-38} {77-87} +import { + airdropFactory, + appendTransactionMessageInstructions, + createSolanaRpc, + createSolanaRpcSubscriptions, + createTransactionMessage, + devnet, + generateKeyPairSigner, + getComputeUnitEstimateForTransactionMessageFactory, + getSignatureFromTransaction, + lamports, + pipe, + prependTransactionMessageInstructions, + sendAndConfirmTransactionFactory, + setTransactionMessageFeePayerSigner, + setTransactionMessageLifetimeUsingBlockhash, + signTransactionMessageWithSigners, +} from "@solana/web3.js"; +import { + getSetComputeUnitLimitInstruction, + getSetComputeUnitPriceInstruction, +} from "@solana-program/compute-budget"; +import { getAddMemoInstruction } from "@solana-program/memo"; + +async function writeMemoWithPriorityFees(message: string) { + // Create an RPC. + const CLUSTER = "devnet"; + const rpc = createSolanaRpc(devnet(`https://api.${CLUSTER}.solana.com`)); + const rpcSubscriptions = createSolanaRpcSubscriptions( + devnet(`wss://api.${CLUSTER}.solana.com`), + ); + + // Create an airdrop function. + const airdrop = airdropFactory({ rpc, rpcSubscriptions }); + + // Create a utility that estimates a transaction message's compute consumption. + const getComputeUnitEstimate = + getComputeUnitEstimateForTransactionMessageFactory({ rpc }); + + // Create a transaction sending function. + const sendAndConfirmTransaction = sendAndConfirmTransactionFactory({ + rpc, + rpcSubscriptions, + }); + + // Create and fund an account. + const keypairSigner = await generateKeyPairSigner(); + console.log("Created an account with address", keypairSigner.address); + console.log("Requesting airdrop"); + await airdrop({ + commitment: "confirmed", + lamports: lamports(1000_000n), + recipientAddress: keypairSigner.address, + }); + console.log("Airdrop confirmed"); + + // Create a memo transaction. + console.log("Creating a memo transaction"); + const { value: latestBlockhash } = await rpc.getLatestBlockhash().send(); + const transactionMessage = pipe( + createTransactionMessage({ version: "legacy" }), + m => setTransactionMessageFeePayerSigner(keypairSigner, m), + m => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, m), + m => + appendTransactionMessageInstructions( + [ + getSetComputeUnitPriceInstruction({ microLamports: 5000n }), + getAddMemoInstruction({ memo: message }), + ], + m, + ), + ); + + // Figure out how many compute units to budget for this transaction + // so that you can right-size the compute budget to maximize the + // chance that it will be selected for inclusion into a block. + console.log("Estimating the compute consumption of the transaction"); + var estimatedComputeUnits = await getComputeUnitEstimate(transactionMessage); + // While these estimates are quite accurate they are not perfect. So you may want to add a + // buffer if you expect that the transaction may consume more compute units than estimated. + // Its not possible to exactly know what the transaction will consume when + // you send it in the future. The state may change. You can add a buffer to the estimate to account for this. + // estimatedComputeUnits += 1000; + // estimatedComputeUnits *= 1.1; + // You can read more about the issue here: https://github.com/solana-labs/solana-web3.js/tree/master/packages/library#getcomputeunitestimatefortransactionmessagefactoryrpc + + console.log( + `Transaction is estimated to consume ${estimatedComputeUnits} compute units`, + ); + const budgetedTransactionMessage = prependTransactionMessageInstructions( + [getSetComputeUnitLimitInstruction({ units: estimatedComputeUnits })], + transactionMessage, + ); + + // Sign and send the transaction. + console.log("Signing and sending the transaction"); + const signedTx = await signTransactionMessageWithSigners( + budgetedTransactionMessage, + ); + const signature = getSignatureFromTransaction(signedTx); + console.log( + "Sending transaction https://explorer.solana.com/tx/" + + signature + + "/?cluster=" + + CLUSTER, + ); + await sendAndConfirmTransaction(signedTx, { commitment: "confirmed" }); + console.log("Transaction confirmed"); +} + +writeMemoWithPriorityFees("Hello, priority fees!"); +``` + + + + + ```typescript filename="add-priority-fees.ts" {25-28, 30-33} import { BN } from "@coral-xyz/anchor"; import { @@ -85,3 +207,7 @@ import { console.log(result); })(); ``` + + + + diff --git a/content/cookbook/transactions/calculate-cost.md b/content/cookbook/transactions/calculate-cost.md index 015a5824e..9bf42df2f 100644 --- a/content/cookbook/transactions/calculate-cost.md +++ b/content/cookbook/transactions/calculate-cost.md @@ -11,7 +11,152 @@ transaction cost. As long as you are not creating an account, this will be the base transaction cost. To find out more about costs to create an account, check out [calculating rent costs](/content/cookbook/accounts/calculate-rent.md). -```typescript filename="calculate-cost.ts" + + + + +```typescript filename="calculate-cost.ts" {101-118} +import { + airdropFactory, + appendTransactionMessageInstructions, + compileTransactionMessage, + createSignerFromKeyPair, + createSolanaRpc, + createSolanaRpcSubscriptions, + createTransactionMessage, + devnet, + generateKeyPairSigner, + getBase64Decoder, + getCompiledTransactionMessageEncoder, + getComputeUnitEstimateForTransactionMessageFactory, + getSignatureFromTransaction, + lamports, + pipe, + prependTransactionMessageInstructions, + sendAndConfirmTransactionFactory, + setTransactionMessageFeePayerSigner, + setTransactionMessageLifetimeUsingBlockhash, + signTransactionMessageWithSigners, + type TransactionMessageBytesBase64, +} from "@solana/web3.js"; +import { + getSetComputeUnitLimitInstruction, + getSetComputeUnitPriceInstruction, +} from "@solana-program/compute-budget"; +import { getAddMemoInstruction } from "@solana-program/memo"; +import { loadDefaultKeypairWithAirdrop } from "./CreateKeypair"; + +async function calculateCost(message: string) { + // Create an RPC. + const CLUSTER = "devnet"; + const rpc = createSolanaRpc(devnet(`https://api.${CLUSTER}.solana.com`)); + const rpcSubscriptions = createSolanaRpcSubscriptions( + devnet(`wss://api.${CLUSTER}.solana.com`), + ); + + // Create a utility that estimates a transaction message's compute consumption. + const getComputeUnitEstimate = + getComputeUnitEstimateForTransactionMessageFactory({ rpc }); + + // Create a transaction sending function. + const sendAndConfirmTransaction = sendAndConfirmTransactionFactory({ + rpc, + rpcSubscriptions, + }); + + // Create an airdrop function. + const airdrop = airdropFactory({ rpc, rpcSubscriptions }); + + // Create and fund an account. + const signer = await generateKeyPairSigner(); + console.log("Created an account with address", signer.address); + console.log("Requesting airdrop"); + await airdrop({ + commitment: "confirmed", + lamports: lamports(1000_000n), + recipientAddress: signer.address, + }); + console.log("Airdrop confirmed"); + + // Create a memo transaction. + console.log("Creating a memo transaction"); + const { value: latestBlockhash } = await rpc.getLatestBlockhash().send(); + const transactionMessage = pipe( + createTransactionMessage({ version: "legacy" }), + m => setTransactionMessageFeePayerSigner(signer, m), + m => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, m), + m => + appendTransactionMessageInstructions( + [ + getSetComputeUnitPriceInstruction({ microLamports: 5000n }), + getAddMemoInstruction({ memo: message }), + ], + m, + ), + ); + + // Figure out how many compute units to budget for this transaction + // so that you can right-size the compute budget to maximize the + // chance that it will be selected for inclusion into a block. + console.log("Estimating the compute consumption of the transaction"); + const estimatedComputeUnits = + await getComputeUnitEstimate(transactionMessage); + console.log( + `Transaction is estimated to consume ${estimatedComputeUnits} compute units`, + ); + + const budgetedTransactionMessage = prependTransactionMessageInstructions( + [getSetComputeUnitLimitInstruction({ units: estimatedComputeUnits })], + transactionMessage, + ); + + const base64EncodedMessage = pipe( + // Start with the message you want the fee for. + budgetedTransactionMessage, + + // Compile it. + compileTransactionMessage, + + // Convert the compiled message into a byte array. + getCompiledTransactionMessageEncoder().encode, + + // Encode that byte array as a base64 string. + getBase64Decoder().decode, + ) as TransactionMessageBytesBase64; + + const transactionCost = await rpc + .getFeeForMessage(base64EncodedMessage) + .send(); + + console.log( + "Transaction is estimated to cost " + transactionCost.value + " lamports", + ); + + // Sign and send the transaction. + console.log("Signing and sending the transaction"); + const signedTx = await signTransactionMessageWithSigners( + budgetedTransactionMessage, + ); + const signature = getSignatureFromTransaction(signedTx); + console.log( + "Sending transaction https://explorer.solana.com/tx/" + + signature + + "/?cluster=" + + CLUSTER, + ); + await sendAndConfirmTransaction(signedTx, { commitment: "confirmed" }); + console.log("Transaction confirmed"); + // Transaction is estimated to consume 6236 compute units + // Transaction is estimated to cost 5032 lamports +} + +calculateCost("Hello, Fees!"); +``` + + + + +```typescript filename="calculate-cost.ts {108-111}" import { clusterApiUrl, Connection, @@ -65,3 +210,7 @@ import bs58 from "bs58"; // Estimated SOL transfer cost: 5000 lamports })(); ``` + + + + diff --git a/content/cookbook/transactions/send-sol.md b/content/cookbook/transactions/send-sol.md index 5cfe36ee0..67003ef34 100644 --- a/content/cookbook/transactions/send-sol.md +++ b/content/cookbook/transactions/send-sol.md @@ -8,6 +8,127 @@ description: To send SOL, you will need to interact with the [SystemProgram][1]. + + + + +```typescript filename="send-sol.ts" {70-74} +import { + address, + airdropFactory, + appendTransactionMessageInstructions, + createSolanaRpc, + createSolanaRpcSubscriptions, + createTransactionMessage, + devnet, + generateKeyPairSigner, + getComputeUnitEstimateForTransactionMessageFactory, + getSignatureFromTransaction, + lamports, + pipe, + prependTransactionMessageInstructions, + sendAndConfirmTransactionFactory, + setTransactionMessageFeePayerSigner, + setTransactionMessageLifetimeUsingBlockhash, + signTransactionMessageWithSigners, +} from "@solana/web3.js"; +import { + getSetComputeUnitLimitInstruction, + getSetComputeUnitPriceInstruction, +} from "@solana-program/compute-budget"; +import { getAddMemoInstruction } from "@solana-program/memo"; +import { getTransferSolInstruction } from "@solana-program/system"; + +async function transferSol() { + // Create an RPC. Use localnet for solana-test-validator. This will get you easier airdrops. + const CLUSTER = "devnet"; + const rpc = createSolanaRpc(devnet(`https://api.${CLUSTER}.solana.com`)); + const rpcSubscriptions = createSolanaRpcSubscriptions( + devnet(`wss://api.${CLUSTER}.solana.com`), + ); + + // Create an airdrop function. + const airdrop = airdropFactory({ rpc, rpcSubscriptions }); + + // Create a utility that estimates a transaction message's compute consumption. + const getComputeUnitEstimate = + getComputeUnitEstimateForTransactionMessageFactory({ rpc }); + + // Create a transaction sending function. + const sendAndConfirmTransaction = sendAndConfirmTransactionFactory({ + rpc, + rpcSubscriptions, + }); + + // Create and fund an account. + const keypairSigner = await generateKeyPairSigner(); + console.log("Created an account with address", keypairSigner.address); + console.log("Requesting airdrop"); + await airdrop({ + commitment: "confirmed", + lamports: lamports(1000_000n), + recipientAddress: keypairSigner.address, + }); + console.log("Airdrop confirmed"); + + // Create a memo transaction. + console.log("Creating a memo transaction"); + const { value: latestBlockhash } = await rpc.getLatestBlockhash().send(); + const transactionMessage = pipe( + createTransactionMessage({ version: "legacy" }), + m => setTransactionMessageFeePayerSigner(keypairSigner, m), + m => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, m), + m => + appendTransactionMessageInstructions( + [ + getSetComputeUnitPriceInstruction({ microLamports: 5000n }), + getTransferSolInstruction({ + source: keypairSigner, + destination: address("web3Qm5PuFapMJqe6PWRWfRBarkeqE2ZC8Eew3zwHH2"), + amount: lamports(1_000n), + }), + ], + m, + ), + ); + + // Figure out how many compute units to budget for this transaction + // so that you can right-size the compute budget to maximize the + // chance that it will be selected for inclusion into a block. + console.log("Estimating the compute consumption of the transaction"); + const estimatedComputeUnits = + await getComputeUnitEstimate(transactionMessage); + console.log( + `Transaction is estimated to consume ${estimatedComputeUnits} compute units`, + ); + const budgetedTransactionMessage = prependTransactionMessageInstructions( + [getSetComputeUnitLimitInstruction({ units: estimatedComputeUnits })], + transactionMessage, + ); + + // Sign and send the transaction. + console.log("Signing and sending the transaction"); + const signedTx = await signTransactionMessageWithSigners( + budgetedTransactionMessage, + ); + const signature = getSignatureFromTransaction(signedTx); + console.log( + "Sending transaction https://explorer.solana.com/tx/" + + signature + + "/?cluster=" + + CLUSTER, + ); + await sendAndConfirmTransaction(signedTx, { commitment: "confirmed" }); + console.log("Transaction confirmed"); +} + +transferSol(); +``` + + + + + ```typescript filename="send-sol.ts" {28-38} import { Connection, @@ -50,4 +171,8 @@ import { })(); ``` + + + + [1]: https://docs.solanalabs.com/runtime/programs#system-program From 3609f5be2fd94a596ef010fdbef22d074cd48cac Mon Sep 17 00:00:00 2001 From: John <75003086+ZYJLiu@users.noreply.github.com> Date: Thu, 21 Nov 2024 12:39:59 -0600 Subject: [PATCH 183/206] minor updates to web3js v2 examples (#642) * prettier fix * send-sol * load-keypair-from-file * connect-wallet-react --- .../development/load-keypair-from-file.md | 21 ++++---- content/cookbook/transactions/send-sol.md | 4 +- .../cookbook/wallets/connect-wallet-react.md | 5 ++ content/cookbook/wallets/restore-keypair.md | 52 +++++++++---------- 4 files changed, 41 insertions(+), 41 deletions(-) diff --git a/content/cookbook/development/load-keypair-from-file.md b/content/cookbook/development/load-keypair-from-file.md index b7ada9236..6c7083cbc 100644 --- a/content/cookbook/development/load-keypair-from-file.md +++ b/content/cookbook/development/load-keypair-from-file.md @@ -12,12 +12,13 @@ and use this one for your projects using the `loadKeypairFromFile` function. ```typescript filename="load-keypair-from-file.ts" import { airdropFactory, - createKeyPairFromBytes, + createKeyPairSignerFromBytes, createSolanaRpc, createSolanaRpcSubscriptions, devnet, generateKeyPair, getAddressFromPublicKey, + KeyPairSigner, lamports, } from "@solana/web3.js"; import fs from "fs"; @@ -35,22 +36,20 @@ async function createKeypair() { console.log(`Public key: ${publicAddress}`); } -export async function loadDefaultKeypair(): Promise { +export async function loadDefaultKeypair(): Promise> { return await loadKeypairFromFile("~/.config/solana/id.json"); } export async function loadDefaultKeypairWithAirdrop( cluster: string, -): Promise { +): Promise> { const keypair = await loadDefaultKeypair(); const rpc = createSolanaRpc(devnet(`https://api.${cluster}.solana.com`)); const rpcSubscriptions = createSolanaRpcSubscriptions( devnet(`wss://api.${cluster}.solana.com`), ); try { - const result = await rpc - .getBalance(await getAddressFromPublicKey(keypair.publicKey)) - .send(); + const result = await rpc.getBalance(keypair.address).send(); console.log(`Balance: ${result.value} lamports`); if (result.value < lamports(500_000n)) { @@ -58,8 +57,8 @@ export async function loadDefaultKeypairWithAirdrop( const airdrop = airdropFactory({ rpc, rpcSubscriptions }); await airdrop({ commitment: "confirmed", - lamports: lamports(1000_000n), - recipientAddress: await getAddressFromPublicKey(keypair.publicKey), + lamports: lamports(1_000_000_000n), + recipientAddress: keypair.address, }); } } catch (err) { @@ -70,7 +69,7 @@ export async function loadDefaultKeypairWithAirdrop( export async function loadKeypairFromFile( filePath: string, -): Promise { +): Promise> { // This is here so you can also load the default keypair from the file system. const resolvedPath = path.resolve( filePath.startsWith("~") ? filePath.replace("~", os.homedir()) : filePath, @@ -79,8 +78,8 @@ export async function loadKeypairFromFile( JSON.parse(fs.readFileSync(resolvedPath, "utf8")), ); // Here you can also set the second parameter to true in case you need to extract your private key. - const keypair = await createKeyPairFromBytes(loadedKeyBytes); - return keypair; + const keypairSigner = await createKeyPairSignerFromBytes(loadedKeyBytes); + return keypairSigner; } createKeypair(); diff --git a/content/cookbook/transactions/send-sol.md b/content/cookbook/transactions/send-sol.md index 67003ef34..c79c8ae79 100644 --- a/content/cookbook/transactions/send-sol.md +++ b/content/cookbook/transactions/send-sol.md @@ -66,7 +66,7 @@ async function transferSol() { console.log("Requesting airdrop"); await airdrop({ commitment: "confirmed", - lamports: lamports(1000_000n), + lamports: lamports(1_000_000_000n), recipientAddress: keypairSigner.address, }); console.log("Airdrop confirmed"); @@ -85,7 +85,7 @@ async function transferSol() { getTransferSolInstruction({ source: keypairSigner, destination: address("web3Qm5PuFapMJqe6PWRWfRBarkeqE2ZC8Eew3zwHH2"), - amount: lamports(1_000n), + amount: lamports(1_000_000n), }), ], m, diff --git a/content/cookbook/wallets/connect-wallet-react.md b/content/cookbook/wallets/connect-wallet-react.md index 53288a670..2ddde85c0 100644 --- a/content/cookbook/wallets/connect-wallet-react.md +++ b/content/cookbook/wallets/connect-wallet-react.md @@ -11,6 +11,11 @@ makes it easy to manage wallet connections client-side. For a full length guide, check out [Add Solana Wallet Adapter to a NextJS application](/content/guides/wallets/add-solana-wallet-adapter-to-nextjs.md). +> For web3.js v2, please reference the +> [react example](https://github.com/solana-labs/solana-web3.js/tree/master/examples/react-app) +> from the +> [Anza Web3js v2 Blog](https://www.anza.xyz/blog/solana-web3-js-2-release). + ## How to Connect to a Wallet with React > Currently, `create-solana-dapp` only works with Solana Web3.js v1. diff --git a/content/cookbook/wallets/restore-keypair.md b/content/cookbook/wallets/restore-keypair.md index 9832f48a7..61aaba7e8 100644 --- a/content/cookbook/wallets/restore-keypair.md +++ b/content/cookbook/wallets/restore-keypair.md @@ -12,36 +12,34 @@ secret to test out your dApp. - -```typescript +```typescript import { createKeyPairFromBytes } from "@solana/web3.js"; -const keypairBytes = new Uint8Array([ 174, 47, 154, 16, 202, 193, 206, 113, -199, 190, 53, 133, 169, 175, 31, 56, 222, 53, 138, 189, 224, 216, 117, 173, -10, 149, 53, 45, 73, 251, 237, 246, 15, 185, 186, 82, 177, 240, 148, 69, -241, 227, 167, 80, 141, 89, 240, 121, 121, 35, 172, 247, 68, 251, 226, 218, -48, 63, 176, 109, 168, 89, 238, 135 ]); +const keypairBytes = new Uint8Array([ + 174, 47, 154, 16, 202, 193, 206, 113, 199, 190, 53, 133, 169, 175, 31, 56, + 222, 53, 138, 189, 224, 216, 117, 173, 10, 149, 53, 45, 73, 251, 237, 246, 15, + 185, 186, 82, 177, 240, 148, 69, 241, 227, 167, 80, 141, 89, 240, 121, 121, + 35, 172, 247, 68, 251, 226, 218, 48, 63, 176, 109, 168, 89, 238, 135, +]); const keypair = await createKeyPairFromBytes(keypairBytes); - ``` - + - -```typescript +```typescript import { Keypair } from "@solana/web3.js"; -const keypairBytes = Uint8Array.from([ 174, 47, 154, 16, -202, 193, 206, 113, 199, 190, 53, 133, 169, 175, 31, 56, 222, 53, 138, 189, -224, 216, 117, 173, 10, 149, 53, 45, 73, 251, 237, 246, 15, 185, 186, 82, -177, 240, 148, 69, 241, 227, 167, 80, 141, 89, 240, 121, 121, 35, 172, 247, -68, 251, 226, 218, 48, 63, 176, 109, 168, 89, 238, 135 ]), - -const keypair = Keypair.fromSecretKey( keypairBytes ); +const keypairBytes = Uint8Array.from([ + 174, 47, 154, 16, 202, 193, 206, 113, 199, 190, 53, 133, 169, 175, 31, 56, + 222, 53, 138, 189, 224, 216, 117, 173, 10, 149, 53, 45, 73, 251, 237, 246, 15, + 185, 186, 82, 177, 240, 148, 69, 241, 227, 167, 80, 141, 89, 240, 121, 121, + 35, 172, 247, 68, 251, 226, 218, 48, 63, 176, 109, 168, 89, 238, 135, +]); +const keypair = Keypair.fromSecretKey(keypairBytes); ``` @@ -52,29 +50,27 @@ const keypair = Keypair.fromSecretKey( keypairBytes ); - -```typescript +```typescript import { createKeyPairFromBytes, getBase58Codec } from "@solana/web3.js"; -const keypairBase58 = "5MaiiCavjCmn9Hs1o3eznqDEhRwxo7pXiAYez7keQUviUkauRiTMD8DrESdrNjN8zd9mTmVhRvBJeg5vhyvgrAhG"; -const keypairBytes = getBase58Codec().decode(keypairBase58); +const keypairBase58 = + "5MaiiCavjCmn9Hs1o3eznqDEhRwxo7pXiAYez7keQUviUkauRiTMD8DrESdrNjN8zd9mTmVhRvBJeg5vhyvgrAhG"; +const keypairBytes = getBase58Codec().decode(keypairBase58); const keypair = await createKeyPairFromBytes(keypairBytes); - ``` - + - -```typescript +```typescript import { Keypair } from "@solana/web3.js"; import * as bs58 from "bs58"; -const keypairBase58 = "5MaiiCavjCmn9Hs1o3eznqDEhRwxo7pXiAYez7keQUviUkauRiTMD8DrESdrNjN8zd9mTmVhRvBJeg5vhyvgrAhG"; +const keypairBase58 = + "5MaiiCavjCmn9Hs1o3eznqDEhRwxo7pXiAYez7keQUviUkauRiTMD8DrESdrNjN8zd9mTmVhRvBJeg5vhyvgrAhG"; const keypairBytes = bs58.decode(keypairBase58); const keypair = Keypair.fromSecretKey(keypairBytes); - ``` From 811442293af96fe225382c2cd5b457e54e93340a Mon Sep 17 00:00:00 2001 From: enekoox Date: Sat, 23 Nov 2024 00:42:09 +0100 Subject: [PATCH 184/206] removing comma which makes JSON example as invalid (#641) --- docs/rpc/http/simulateTransaction.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/rpc/http/simulateTransaction.mdx b/docs/rpc/http/simulateTransaction.mdx index c211772f0..9eae131f9 100644 --- a/docs/rpc/http/simulateTransaction.mdx +++ b/docs/rpc/http/simulateTransaction.mdx @@ -157,7 +157,7 @@ curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" - "params": [ "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEDArczbMia1tLmq7zz4DinMNN0pJ1JtLdqIJPUw3YrGCzYAMHBsgN27lcgB6H2WQvFgyZuJYHa46puOQo9yQ8CVQbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp20C7Wj2aiuk5TReAXo+VTVg8QTHjs0UjNMMKCvpzZ+ABAgEBARU=", { - "encoding":"base64", + "encoding":"base64" } ] } From 430c80d8990db587021610049c352f720469e052 Mon Sep 17 00:00:00 2001 From: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> Date: Fri, 22 Nov 2024 21:07:32 -0500 Subject: [PATCH 185/206] feat: make all rpc curl requests silent (#644) --- docs/rpc/deprecated/getConfirmedBlock.mdx | 2 +- docs/rpc/deprecated/getConfirmedBlocks.mdx | 2 +- docs/rpc/deprecated/getConfirmedBlocksWithLimit.mdx | 2 +- docs/rpc/deprecated/getConfirmedSignaturesForAddress2.mdx | 2 +- docs/rpc/deprecated/getConfirmedTransaction.mdx | 2 +- docs/rpc/deprecated/getFeeCalculatorForBlockhash.mdx | 2 +- docs/rpc/deprecated/getFeeRateGovernor.mdx | 2 +- docs/rpc/deprecated/getFees.mdx | 2 +- docs/rpc/deprecated/getRecentBlockhash.mdx | 2 +- docs/rpc/deprecated/getSnapshotSlot.mdx | 2 +- docs/rpc/deprecated/getStakeActivation.mdx | 2 +- docs/rpc/http/getAccountInfo.mdx | 2 +- docs/rpc/http/getBalance.mdx | 2 +- docs/rpc/http/getBlock.mdx | 2 +- docs/rpc/http/getBlockCommitment.mdx | 2 +- docs/rpc/http/getBlockHeight.mdx | 2 +- docs/rpc/http/getBlockProduction.mdx | 2 +- docs/rpc/http/getBlockTime.mdx | 2 +- docs/rpc/http/getBlocks.mdx | 2 +- docs/rpc/http/getBlocksWithLimit.mdx | 2 +- docs/rpc/http/getClusterNodes.mdx | 2 +- docs/rpc/http/getEpochInfo.mdx | 2 +- docs/rpc/http/getEpochSchedule.mdx | 2 +- docs/rpc/http/getFeeForMessage.mdx | 2 +- docs/rpc/http/getFirstAvailableBlock.mdx | 2 +- docs/rpc/http/getGenesisHash.mdx | 2 +- docs/rpc/http/getHealth.mdx | 2 +- docs/rpc/http/getHighestSnapshotSlot.mdx | 2 +- docs/rpc/http/getIdentity.mdx | 2 +- docs/rpc/http/getInflationGovernor.mdx | 2 +- docs/rpc/http/getInflationRate.mdx | 2 +- docs/rpc/http/getInflationReward.mdx | 2 +- docs/rpc/http/getLargestAccounts.mdx | 2 +- docs/rpc/http/getLatestBlockhash.mdx | 2 +- docs/rpc/http/getLeaderSchedule.mdx | 2 +- docs/rpc/http/getMaxRetransmitSlot.mdx | 2 +- docs/rpc/http/getMaxShredInsertSlot.mdx | 2 +- docs/rpc/http/getMinimumBalanceForRentExemption.mdx | 2 +- docs/rpc/http/getMultipleAccounts.mdx | 2 +- docs/rpc/http/getProgramAccounts.mdx | 2 +- docs/rpc/http/getRecentPerformanceSamples.mdx | 5 +++-- docs/rpc/http/getRecentPrioritizationFees.mdx | 2 +- docs/rpc/http/getSignatureStatuses.mdx | 2 +- docs/rpc/http/getSignaturesForAddress.mdx | 2 +- docs/rpc/http/getSlot.mdx | 2 +- docs/rpc/http/getSlotLeader.mdx | 2 +- docs/rpc/http/getSlotLeaders.mdx | 2 +- docs/rpc/http/getStakeMinimumDelegation.mdx | 2 +- docs/rpc/http/getSupply.mdx | 2 +- docs/rpc/http/getTokenAccountBalance.mdx | 2 +- docs/rpc/http/getTokenAccountsByDelegate.mdx | 2 +- docs/rpc/http/getTokenAccountsByOwner.mdx | 2 +- docs/rpc/http/getTokenLargestAccounts.mdx | 2 +- docs/rpc/http/getTokenSupply.mdx | 2 +- docs/rpc/http/getTransaction.mdx | 2 +- docs/rpc/http/getTransactionCount.mdx | 2 +- docs/rpc/http/getVersion.mdx | 2 +- docs/rpc/http/getVoteAccounts.mdx | 2 +- docs/rpc/http/index.mdx | 4 ++-- docs/rpc/http/isBlockhashValid.mdx | 2 +- docs/rpc/http/minimumLedgerSlot.mdx | 2 +- docs/rpc/http/requestAirdrop.mdx | 2 +- docs/rpc/http/sendTransaction.mdx | 2 +- docs/rpc/http/simulateTransaction.mdx | 2 +- 64 files changed, 67 insertions(+), 66 deletions(-) diff --git a/docs/rpc/deprecated/getConfirmedBlock.mdx b/docs/rpc/deprecated/getConfirmedBlock.mdx index 42179d731..d9236f130 100644 --- a/docs/rpc/deprecated/getConfirmedBlock.mdx +++ b/docs/rpc/deprecated/getConfirmedBlock.mdx @@ -152,7 +152,7 @@ The result field will be an object with the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, "method": "getConfirmedBlock", diff --git a/docs/rpc/deprecated/getConfirmedBlocks.mdx b/docs/rpc/deprecated/getConfirmedBlocks.mdx index 4070da744..2e4cc769b 100644 --- a/docs/rpc/deprecated/getConfirmedBlocks.mdx +++ b/docs/rpc/deprecated/getConfirmedBlocks.mdx @@ -50,7 +50,7 @@ block, inclusive. Max range allowed is 500,000 slots. ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' {"jsonrpc": "2.0","id":1,"method":"getConfirmedBlocks","params":[5, 10]} ' ``` diff --git a/docs/rpc/deprecated/getConfirmedBlocksWithLimit.mdx b/docs/rpc/deprecated/getConfirmedBlocksWithLimit.mdx index 003014196..21efd752f 100644 --- a/docs/rpc/deprecated/getConfirmedBlocksWithLimit.mdx +++ b/docs/rpc/deprecated/getConfirmedBlocksWithLimit.mdx @@ -53,7 +53,7 @@ starting at `start_slot` for up to `limit` blocks, inclusive. ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, "method": "getConfirmedBlocksWithLimit", diff --git a/docs/rpc/deprecated/getConfirmedSignaturesForAddress2.mdx b/docs/rpc/deprecated/getConfirmedSignaturesForAddress2.mdx index 1960df880..5db4d57a0 100644 --- a/docs/rpc/deprecated/getConfirmedSignaturesForAddress2.mdx +++ b/docs/rpc/deprecated/getConfirmedSignaturesForAddress2.mdx @@ -83,7 +83,7 @@ fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, diff --git a/docs/rpc/deprecated/getConfirmedTransaction.mdx b/docs/rpc/deprecated/getConfirmedTransaction.mdx index a60762801..3a96d97c3 100644 --- a/docs/rpc/deprecated/getConfirmedTransaction.mdx +++ b/docs/rpc/deprecated/getConfirmedTransaction.mdx @@ -108,7 +108,7 @@ Encoding format for Account data ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, diff --git a/docs/rpc/deprecated/getFeeCalculatorForBlockhash.mdx b/docs/rpc/deprecated/getFeeCalculatorForBlockhash.mdx index e071dadd8..75d6093e0 100644 --- a/docs/rpc/deprecated/getFeeCalculatorForBlockhash.mdx +++ b/docs/rpc/deprecated/getFeeCalculatorForBlockhash.mdx @@ -59,7 +59,7 @@ The result will be an RpcResponse JSON object with `value` equal to: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, diff --git a/docs/rpc/deprecated/getFeeRateGovernor.mdx b/docs/rpc/deprecated/getFeeRateGovernor.mdx index 3a1a748b9..292be480e 100644 --- a/docs/rpc/deprecated/getFeeRateGovernor.mdx +++ b/docs/rpc/deprecated/getFeeRateGovernor.mdx @@ -42,7 +42,7 @@ with the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' {"jsonrpc":"2.0","id":1, "method":"getFeeRateGovernor"} ' ``` diff --git a/docs/rpc/deprecated/getFees.mdx b/docs/rpc/deprecated/getFees.mdx index 7ff41b570..30f0a2435 100644 --- a/docs/rpc/deprecated/getFees.mdx +++ b/docs/rpc/deprecated/getFees.mdx @@ -60,7 +60,7 @@ with the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc":"2.0", "id": 1, "method":"getFees"} ' ``` diff --git a/docs/rpc/deprecated/getRecentBlockhash.mdx b/docs/rpc/deprecated/getRecentBlockhash.mdx index f5d06254f..5668aa90a 100644 --- a/docs/rpc/deprecated/getRecentBlockhash.mdx +++ b/docs/rpc/deprecated/getRecentBlockhash.mdx @@ -56,7 +56,7 @@ FeeCalculator JSON object. ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' {"jsonrpc":"2.0","id":1, "method":"getRecentBlockhash"} ' ``` diff --git a/docs/rpc/deprecated/getSnapshotSlot.mdx b/docs/rpc/deprecated/getSnapshotSlot.mdx index e2b35fa5b..6b4d83fc7 100644 --- a/docs/rpc/deprecated/getSnapshotSlot.mdx +++ b/docs/rpc/deprecated/getSnapshotSlot.mdx @@ -33,7 +33,7 @@ Returns the highest slot that the node has a snapshot for ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' {"jsonrpc":"2.0","id":1, "method":"getSnapshotSlot"} ' ``` diff --git a/docs/rpc/deprecated/getStakeActivation.mdx b/docs/rpc/deprecated/getStakeActivation.mdx index 2c7654cb4..c0a808703 100644 --- a/docs/rpc/deprecated/getStakeActivation.mdx +++ b/docs/rpc/deprecated/getStakeActivation.mdx @@ -64,7 +64,7 @@ The result will be a JSON object with the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, diff --git a/docs/rpc/http/getAccountInfo.mdx b/docs/rpc/http/getAccountInfo.mdx index e9c32a550..a96d9ebb2 100644 --- a/docs/rpc/http/getAccountInfo.mdx +++ b/docs/rpc/http/getAccountInfo.mdx @@ -99,7 +99,7 @@ The result will be an RpcResponse JSON object with `value` equal to: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, diff --git a/docs/rpc/http/getBalance.mdx b/docs/rpc/http/getBalance.mdx index 7105ed15d..514f653cf 100644 --- a/docs/rpc/http/getBalance.mdx +++ b/docs/rpc/http/getBalance.mdx @@ -47,7 +47,7 @@ balance ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, "method": "getBalance", diff --git a/docs/rpc/http/getBlock.mdx b/docs/rpc/http/getBlock.mdx index 559bd6273..d75329dc4 100644 --- a/docs/rpc/http/getBlock.mdx +++ b/docs/rpc/http/getBlock.mdx @@ -205,7 +205,7 @@ The result field will be an object with the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0","id":1, "method":"getBlock", diff --git a/docs/rpc/http/getBlockCommitment.mdx b/docs/rpc/http/getBlockCommitment.mdx index 54ecfe5bd..3d4446da0 100644 --- a/docs/rpc/http/getBlockCommitment.mdx +++ b/docs/rpc/http/getBlockCommitment.mdx @@ -36,7 +36,7 @@ The result field will be a JSON object containing: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, "method": "getBlockCommitment", diff --git a/docs/rpc/http/getBlockHeight.mdx b/docs/rpc/http/getBlockHeight.mdx index 3d48fcdfc..8be00d7b0 100644 --- a/docs/rpc/http/getBlockHeight.mdx +++ b/docs/rpc/http/getBlockHeight.mdx @@ -42,7 +42,7 @@ Configuration object containing the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc":"2.0","id":1, "method":"getBlockHeight" diff --git a/docs/rpc/http/getBlockProduction.mdx b/docs/rpc/http/getBlockProduction.mdx index 6e79849e8..90d03b34f 100644 --- a/docs/rpc/http/getBlockProduction.mdx +++ b/docs/rpc/http/getBlockProduction.mdx @@ -62,7 +62,7 @@ The result will be an RpcResponse JSON object with `value` equal to: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' {"jsonrpc":"2.0","id":1, "method":"getBlockProduction"} ' ``` diff --git a/docs/rpc/http/getBlockTime.mdx b/docs/rpc/http/getBlockTime.mdx index f8a92ac1f..c0435fab4 100644 --- a/docs/rpc/http/getBlockTime.mdx +++ b/docs/rpc/http/getBlockTime.mdx @@ -37,7 +37,7 @@ Returns the estimated production time of a block. ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc":"2.0", "id":1, "method": "getBlockTime", diff --git a/docs/rpc/http/getBlocks.mdx b/docs/rpc/http/getBlocks.mdx index 59cb0c1b6..3967e2a85 100644 --- a/docs/rpc/http/getBlocks.mdx +++ b/docs/rpc/http/getBlocks.mdx @@ -54,7 +54,7 @@ block, inclusive. Max range allowed is 500,000 slots. ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, "method": "getBlocks", diff --git a/docs/rpc/http/getBlocksWithLimit.mdx b/docs/rpc/http/getBlocksWithLimit.mdx index dd432d759..f86b888bc 100644 --- a/docs/rpc/http/getBlocksWithLimit.mdx +++ b/docs/rpc/http/getBlocksWithLimit.mdx @@ -53,7 +53,7 @@ starting at `start_slot` for up to `limit` blocks, inclusive. ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id":1, diff --git a/docs/rpc/http/getClusterNodes.mdx b/docs/rpc/http/getClusterNodes.mdx index 647753ccb..18e685a75 100644 --- a/docs/rpc/http/getClusterNodes.mdx +++ b/docs/rpc/http/getClusterNodes.mdx @@ -39,7 +39,7 @@ fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, "method": "getClusterNodes" diff --git a/docs/rpc/http/getEpochInfo.mdx b/docs/rpc/http/getEpochInfo.mdx index 97fbdc91f..ce4f696e6 100644 --- a/docs/rpc/http/getEpochInfo.mdx +++ b/docs/rpc/http/getEpochInfo.mdx @@ -50,7 +50,7 @@ The result field will be an object with the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' {"jsonrpc":"2.0","id":1, "method":"getEpochInfo"} ' ``` diff --git a/docs/rpc/http/getEpochSchedule.mdx b/docs/rpc/http/getEpochSchedule.mdx index 37f3b34ca..46f61341f 100644 --- a/docs/rpc/http/getEpochSchedule.mdx +++ b/docs/rpc/http/getEpochSchedule.mdx @@ -36,7 +36,7 @@ The result field will be an object with the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc":"2.0","id":1, "method":"getEpochSchedule" diff --git a/docs/rpc/http/getFeeForMessage.mdx b/docs/rpc/http/getFeeForMessage.mdx index 8c42926d4..3c2ee74be 100644 --- a/docs/rpc/http/getFeeForMessage.mdx +++ b/docs/rpc/http/getFeeForMessage.mdx @@ -51,7 +51,7 @@ Configuration object containing the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "id":1, "jsonrpc":"2.0", diff --git a/docs/rpc/http/getFirstAvailableBlock.mdx b/docs/rpc/http/getFirstAvailableBlock.mdx index 7df457c80..c21af52eb 100644 --- a/docs/rpc/http/getFirstAvailableBlock.mdx +++ b/docs/rpc/http/getFirstAvailableBlock.mdx @@ -27,7 +27,7 @@ ledger ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc":"2.0","id":1, "method":"getFirstAvailableBlock" diff --git a/docs/rpc/http/getGenesisHash.mdx b/docs/rpc/http/getGenesisHash.mdx index 565c65e24..e7f537644 100644 --- a/docs/rpc/http/getGenesisHash.mdx +++ b/docs/rpc/http/getGenesisHash.mdx @@ -26,7 +26,7 @@ Returns the genesis hash ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' {"jsonrpc":"2.0","id":1, "method":"getGenesisHash"} ' ``` diff --git a/docs/rpc/http/getHealth.mdx b/docs/rpc/http/getHealth.mdx index c036737b5..48952db2c 100644 --- a/docs/rpc/http/getHealth.mdx +++ b/docs/rpc/http/getHealth.mdx @@ -31,7 +31,7 @@ of the error response are **UNSTABLE** and may change in the future ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' {"jsonrpc":"2.0","id":1, "method":"getHealth"} ' ``` diff --git a/docs/rpc/http/getHighestSnapshotSlot.mdx b/docs/rpc/http/getHighestSnapshotSlot.mdx index 6822dfbbd..e851c05a0 100644 --- a/docs/rpc/http/getHighestSnapshotSlot.mdx +++ b/docs/rpc/http/getHighestSnapshotSlot.mdx @@ -41,7 +41,7 @@ fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' {"jsonrpc":"2.0","id":1,"method":"getHighestSnapshotSlot"} ' ``` diff --git a/docs/rpc/http/getIdentity.mdx b/docs/rpc/http/getIdentity.mdx index ae835488a..a027615ad 100644 --- a/docs/rpc/http/getIdentity.mdx +++ b/docs/rpc/http/getIdentity.mdx @@ -29,7 +29,7 @@ The result field will be a JSON object with the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' {"jsonrpc":"2.0","id":1, "method":"getIdentity"} ' ``` diff --git a/docs/rpc/http/getInflationGovernor.mdx b/docs/rpc/http/getInflationGovernor.mdx index 8d4624307..e93e7bd5e 100644 --- a/docs/rpc/http/getInflationGovernor.mdx +++ b/docs/rpc/http/getInflationGovernor.mdx @@ -46,7 +46,7 @@ The result field will be a JSON object with the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' {"jsonrpc":"2.0","id":1, "method":"getInflationGovernor"} ' ``` diff --git a/docs/rpc/http/getInflationRate.mdx b/docs/rpc/http/getInflationRate.mdx index 4901da3ca..78120b0c0 100644 --- a/docs/rpc/http/getInflationRate.mdx +++ b/docs/rpc/http/getInflationRate.mdx @@ -32,7 +32,7 @@ The result field will be a JSON object with the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' {"jsonrpc":"2.0","id":1, "method":"getInflationRate"} ' ``` diff --git a/docs/rpc/http/getInflationReward.mdx b/docs/rpc/http/getInflationReward.mdx index 677b69b9f..ebde5bc1b 100644 --- a/docs/rpc/http/getInflationReward.mdx +++ b/docs/rpc/http/getInflationReward.mdx @@ -58,7 +58,7 @@ The result field will be a JSON array with the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, diff --git a/docs/rpc/http/getLargestAccounts.mdx b/docs/rpc/http/getLargestAccounts.mdx index c513f1393..6ca86f8a3 100644 --- a/docs/rpc/http/getLargestAccounts.mdx +++ b/docs/rpc/http/getLargestAccounts.mdx @@ -49,7 +49,7 @@ The result will be an RpcResponse JSON object with `value` equal to an array of ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' {"jsonrpc":"2.0","id":1, "method":"getLargestAccounts"} ' ``` diff --git a/docs/rpc/http/getLatestBlockhash.mdx b/docs/rpc/http/getLatestBlockhash.mdx index a91818b8c..b43940402 100644 --- a/docs/rpc/http/getLatestBlockhash.mdx +++ b/docs/rpc/http/getLatestBlockhash.mdx @@ -54,7 +54,7 @@ object including: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "id":1, "jsonrpc":"2.0", diff --git a/docs/rpc/http/getLeaderSchedule.mdx b/docs/rpc/http/getLeaderSchedule.mdx index 26dee13c9..4ba0a3bc3 100644 --- a/docs/rpc/http/getLeaderSchedule.mdx +++ b/docs/rpc/http/getLeaderSchedule.mdx @@ -57,7 +57,7 @@ Returns a result with one of the two following values: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, diff --git a/docs/rpc/http/getMaxRetransmitSlot.mdx b/docs/rpc/http/getMaxRetransmitSlot.mdx index 717a767a7..b1f2a1847 100644 --- a/docs/rpc/http/getMaxRetransmitSlot.mdx +++ b/docs/rpc/http/getMaxRetransmitSlot.mdx @@ -27,7 +27,7 @@ Get the max slot seen from retransmit stage. ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' {"jsonrpc":"2.0","id":1, "method":"getMaxRetransmitSlot"} ' ``` diff --git a/docs/rpc/http/getMaxShredInsertSlot.mdx b/docs/rpc/http/getMaxShredInsertSlot.mdx index 64981ff07..059c0fd1d 100644 --- a/docs/rpc/http/getMaxShredInsertSlot.mdx +++ b/docs/rpc/http/getMaxShredInsertSlot.mdx @@ -27,7 +27,7 @@ Get the max slot seen from after shred insert. ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' {"jsonrpc":"2.0","id":1, "method":"getMaxShredInsertSlot"} ' ``` diff --git a/docs/rpc/http/getMinimumBalanceForRentExemption.mdx b/docs/rpc/http/getMinimumBalanceForRentExemption.mdx index 87c1bf861..11ef41b38 100644 --- a/docs/rpc/http/getMinimumBalanceForRentExemption.mdx +++ b/docs/rpc/http/getMinimumBalanceForRentExemption.mdx @@ -42,7 +42,7 @@ Configuration object containing the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, "method": "getMinimumBalanceForRentExemption", diff --git a/docs/rpc/http/getMultipleAccounts.mdx b/docs/rpc/http/getMultipleAccounts.mdx index 7d8bcee79..ce9312bdc 100644 --- a/docs/rpc/http/getMultipleAccounts.mdx +++ b/docs/rpc/http/getMultipleAccounts.mdx @@ -102,7 +102,7 @@ The result will be a JSON object with `value` equal to an array of: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, diff --git a/docs/rpc/http/getProgramAccounts.mdx b/docs/rpc/http/getProgramAccounts.mdx index 5ff5d1bee..dd59c122d 100644 --- a/docs/rpc/http/getProgramAccounts.mdx +++ b/docs/rpc/http/getProgramAccounts.mdx @@ -128,7 +128,7 @@ The resultant response array will contain: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, diff --git a/docs/rpc/http/getRecentPerformanceSamples.mdx b/docs/rpc/http/getRecentPerformanceSamples.mdx index 670491666..2c431533c 100644 --- a/docs/rpc/http/getRecentPerformanceSamples.mdx +++ b/docs/rpc/http/getRecentPerformanceSamples.mdx @@ -48,11 +48,12 @@ An array of `RpcPerfSample` with the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc":"2.0", "id":1, "method": "getRecentPerformanceSamples", - "params": [4]} + "params": [4] + } ' ``` diff --git a/docs/rpc/http/getRecentPrioritizationFees.mdx b/docs/rpc/http/getRecentPrioritizationFees.mdx index 8860cf925..25359e528 100644 --- a/docs/rpc/http/getRecentPrioritizationFees.mdx +++ b/docs/rpc/http/getRecentPrioritizationFees.mdx @@ -47,7 +47,7 @@ An array of `RpcPrioritizationFee` with the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc":"2.0", "id":1, "method": "getRecentPrioritizationFees", diff --git a/docs/rpc/http/getSignatureStatuses.mdx b/docs/rpc/http/getSignatureStatuses.mdx index 6c4258ba7..bf101e360 100644 --- a/docs/rpc/http/getSignatureStatuses.mdx +++ b/docs/rpc/http/getSignatureStatuses.mdx @@ -68,7 +68,7 @@ An array of `RpcResponse` consisting of either: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, diff --git a/docs/rpc/http/getSignaturesForAddress.mdx b/docs/rpc/http/getSignaturesForAddress.mdx index 33373bf27..2587fa931 100644 --- a/docs/rpc/http/getSignaturesForAddress.mdx +++ b/docs/rpc/http/getSignaturesForAddress.mdx @@ -78,7 +78,7 @@ containing transaction signature information with the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, diff --git a/docs/rpc/http/getSlot.mdx b/docs/rpc/http/getSlot.mdx index 266f30702..504c6c323 100644 --- a/docs/rpc/http/getSlot.mdx +++ b/docs/rpc/http/getSlot.mdx @@ -43,7 +43,7 @@ Configuration object containing the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' {"jsonrpc":"2.0","id":1, "method":"getSlot"} ' ``` diff --git a/docs/rpc/http/getSlotLeader.mdx b/docs/rpc/http/getSlotLeader.mdx index b0fa2e787..355c9c024 100644 --- a/docs/rpc/http/getSlotLeader.mdx +++ b/docs/rpc/http/getSlotLeader.mdx @@ -42,7 +42,7 @@ Configuration object containing the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' {"jsonrpc":"2.0","id":1, "method":"getSlotLeader"} ' ``` diff --git a/docs/rpc/http/getSlotLeaders.mdx b/docs/rpc/http/getSlotLeaders.mdx index cf1975d69..2b095babd 100644 --- a/docs/rpc/http/getSlotLeaders.mdx +++ b/docs/rpc/http/getSlotLeaders.mdx @@ -37,7 +37,7 @@ If the current slot is `#99` - query the next `10` leaders with the following request: ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc":"2.0", "id": 1, "method": "getSlotLeaders", diff --git a/docs/rpc/http/getStakeMinimumDelegation.mdx b/docs/rpc/http/getStakeMinimumDelegation.mdx index 9383f0ec7..b98f1a359 100644 --- a/docs/rpc/http/getStakeMinimumDelegation.mdx +++ b/docs/rpc/http/getStakeMinimumDelegation.mdx @@ -40,7 +40,7 @@ The result will be an RpcResponse JSON object with `value` equal to: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc":"2.0", "id":1, "method": "getStakeMinimumDelegation" diff --git a/docs/rpc/http/getSupply.mdx b/docs/rpc/http/getSupply.mdx index 814993916..ebd60fa00 100644 --- a/docs/rpc/http/getSupply.mdx +++ b/docs/rpc/http/getSupply.mdx @@ -50,7 +50,7 @@ object containing: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' {"jsonrpc":"2.0", "id":1, "method":"getSupply"} ' ``` diff --git a/docs/rpc/http/getTokenAccountBalance.mdx b/docs/rpc/http/getTokenAccountBalance.mdx index 74dd8558d..dfef4c521 100644 --- a/docs/rpc/http/getTokenAccountBalance.mdx +++ b/docs/rpc/http/getTokenAccountBalance.mdx @@ -55,7 +55,7 @@ from [getBlock](/docs/rpc/http/getblock) follows a similar structure. ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, "method": "getTokenAccountBalance", diff --git a/docs/rpc/http/getTokenAccountsByDelegate.mdx b/docs/rpc/http/getTokenAccountsByDelegate.mdx index f706bd2b6..619f743ac 100644 --- a/docs/rpc/http/getTokenAccountsByDelegate.mdx +++ b/docs/rpc/http/getTokenAccountsByDelegate.mdx @@ -115,7 +115,7 @@ can be expected inside the structure, both for the `tokenAmount` and the ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, diff --git a/docs/rpc/http/getTokenAccountsByOwner.mdx b/docs/rpc/http/getTokenAccountsByOwner.mdx index 46b4558dc..a6d1677b2 100644 --- a/docs/rpc/http/getTokenAccountsByOwner.mdx +++ b/docs/rpc/http/getTokenAccountsByOwner.mdx @@ -115,7 +115,7 @@ can be expected inside the structure, both for the `tokenAmount` and the ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, diff --git a/docs/rpc/http/getTokenLargestAccounts.mdx b/docs/rpc/http/getTokenLargestAccounts.mdx index 570c8dd68..3702a0ad7 100644 --- a/docs/rpc/http/getTokenLargestAccounts.mdx +++ b/docs/rpc/http/getTokenLargestAccounts.mdx @@ -52,7 +52,7 @@ JSON objects containing: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, "method": "getTokenLargestAccounts", diff --git a/docs/rpc/http/getTokenSupply.mdx b/docs/rpc/http/getTokenSupply.mdx index f49ae5ecc..193f79d48 100644 --- a/docs/rpc/http/getTokenSupply.mdx +++ b/docs/rpc/http/getTokenSupply.mdx @@ -51,7 +51,7 @@ object containing: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, "method": "getTokenSupply", diff --git a/docs/rpc/http/getTransaction.mdx b/docs/rpc/http/getTransaction.mdx index 164b7ea1a..1fa973600 100644 --- a/docs/rpc/http/getTransaction.mdx +++ b/docs/rpc/http/getTransaction.mdx @@ -143,7 +143,7 @@ Encoding for the returned Transaction ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, diff --git a/docs/rpc/http/getTransactionCount.mdx b/docs/rpc/http/getTransactionCount.mdx index c466131a8..d3b07b6c7 100644 --- a/docs/rpc/http/getTransactionCount.mdx +++ b/docs/rpc/http/getTransactionCount.mdx @@ -42,7 +42,7 @@ Configuration object containing the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' {"jsonrpc":"2.0","id":1, "method":"getTransactionCount"} ' ``` diff --git a/docs/rpc/http/getVersion.mdx b/docs/rpc/http/getVersion.mdx index e71f85c99..5aeb25ea1 100644 --- a/docs/rpc/http/getVersion.mdx +++ b/docs/rpc/http/getVersion.mdx @@ -31,7 +31,7 @@ The result field will be a JSON object with the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' {"jsonrpc":"2.0","id":1, "method":"getVersion"} ' ``` diff --git a/docs/rpc/http/getVoteAccounts.mdx b/docs/rpc/http/getVoteAccounts.mdx index 322b0ce68..2ba1257d8 100644 --- a/docs/rpc/http/getVoteAccounts.mdx +++ b/docs/rpc/http/getVoteAccounts.mdx @@ -69,7 +69,7 @@ each containing an array of JSON objects with the following sub fields: Restrict results to a single validator vote account: ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, diff --git a/docs/rpc/http/index.mdx b/docs/rpc/http/index.mdx index db962ca73..ddcaa9649 100644 --- a/docs/rpc/http/index.mdx +++ b/docs/rpc/http/index.mdx @@ -36,7 +36,7 @@ fields: Example using curl: ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, @@ -64,7 +64,7 @@ The commitment parameter should be included as the last element in the `params` array: ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, diff --git a/docs/rpc/http/isBlockhashValid.mdx b/docs/rpc/http/isBlockhashValid.mdx index 76eb165c7..c9e951f67 100644 --- a/docs/rpc/http/isBlockhashValid.mdx +++ b/docs/rpc/http/isBlockhashValid.mdx @@ -52,7 +52,7 @@ Configuration object containing the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "id":45, "jsonrpc":"2.0", diff --git a/docs/rpc/http/minimumLedgerSlot.mdx b/docs/rpc/http/minimumLedgerSlot.mdx index 73d5d40c4..d4596b0cb 100644 --- a/docs/rpc/http/minimumLedgerSlot.mdx +++ b/docs/rpc/http/minimumLedgerSlot.mdx @@ -32,7 +32,7 @@ Returns the lowest slot that the node has information about in its ledger. ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' {"jsonrpc":"2.0","id":1, "method":"minimumLedgerSlot"} ' ``` diff --git a/docs/rpc/http/requestAirdrop.mdx b/docs/rpc/http/requestAirdrop.mdx index b6181d644..b2ff929ad 100644 --- a/docs/rpc/http/requestAirdrop.mdx +++ b/docs/rpc/http/requestAirdrop.mdx @@ -46,7 +46,7 @@ Configuration object containing the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, "method": "requestAirdrop", diff --git a/docs/rpc/http/sendTransaction.mdx b/docs/rpc/http/sendTransaction.mdx index 123b5afe9..d77f578d0 100644 --- a/docs/rpc/http/sendTransaction.mdx +++ b/docs/rpc/http/sendTransaction.mdx @@ -99,7 +99,7 @@ encoded string ([transaction id](/docs/terminology.md#transaction-id)) ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, diff --git a/docs/rpc/http/simulateTransaction.mdx b/docs/rpc/http/simulateTransaction.mdx index 9eae131f9..8256f7d72 100644 --- a/docs/rpc/http/simulateTransaction.mdx +++ b/docs/rpc/http/simulateTransaction.mdx @@ -149,7 +149,7 @@ with the following fields: ### Code sample ```shell -curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d ' +curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, From 462c9a11bd89d0af362c1c5185141988a3973d29 Mon Sep 17 00:00:00 2001 From: Sebastian Banescu Date: Sat, 23 Nov 2024 03:08:23 +0100 Subject: [PATCH 186/206] Fixing compile error in Anchor CPI lesson (#636) * Fixing compile error in Anchor CPI lesson * Fixed prettier error --- content/courses/onchain-development/anchor-cpi.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/content/courses/onchain-development/anchor-cpi.md b/content/courses/onchain-development/anchor-cpi.md index 694de55c4..03c219be5 100644 --- a/content/courses/onchain-development/anchor-cpi.md +++ b/content/courses/onchain-development/anchor-cpi.md @@ -362,6 +362,17 @@ anchor-lang = { version = "0.30.1", features = ["init-if-needed"] } anchor-spl = "0.30.1" ``` +Since we are adding `anchor-spl` as a dependency we also need to add the +`idl-build` for it in the features section of `Cargo.toml`. This is because all +types that will be used in the `Accounts` structures that we are adding in this +lesson require the `IdlBuild` trait implementation to generate an IDL. + +```rust +[features] +# All lines remain unchanged, except for this idl-build line +idl-build = ["anchor-lang/idl-build", "anchor-spl/idl-build"] +``` + ### Initialize reward token Next, navigate to `lib.rs` and implement the `InitializeMint` context type and From 5f8e3ff74e8378ef22bb8a7ee3549d7978b853bc Mon Sep 17 00:00:00 2001 From: Sebastian Banescu Date: Sat, 23 Nov 2024 03:09:58 +0100 Subject: [PATCH 187/206] Small typos in anchor-cpi.md leading to failing tests (#635) * Small typos in anchor-cpi.md Found these small typos while I was going through this lesson. * Fixed typo leading to failing tests at the end of the lab --- content/courses/onchain-development/anchor-cpi.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/courses/onchain-development/anchor-cpi.md b/content/courses/onchain-development/anchor-cpi.md index 03c219be5..83286aebd 100644 --- a/content/courses/onchain-development/anchor-cpi.md +++ b/content/courses/onchain-development/anchor-cpi.md @@ -145,7 +145,7 @@ The `cpi` module turns `callee`'s instruction handlers into Rust functions. These functions take a `CpiContext` and any extra data needed for the instruction. They work just like the instruction handlers in your Anchor programs, but use `CpiContext` instead of `Context`. The `cpi` module also -provides the account structs needed for these instruction handler. +provides the account structs needed for these instruction handlers. For example, if `callee` has the instruction `do_something` that requires the accounts defined in the `DoSomething` struct, you could invoke `do_something` as @@ -394,7 +394,7 @@ pub struct InitializeMint<'info> { bump, payer = user, mint::decimals = 6, - mint::authority = mint, + mint::authority = user, )] pub mint: Account<'info, Mint>, #[account(mut)] @@ -672,7 +672,7 @@ it("Initializes the reward token", async () => { }); ``` -Notice that we didn't have to add `.accounts` because they call be inferred, +Notice that we didn't have to add `.accounts` because they can be inferred, including the `mint` account (assuming you have seed inference enabled). Next, update the test for the `addMovieReview` instruction. The primary From 5c50116a5986bca461df3ffbfee0de991c734263 Mon Sep 17 00:00:00 2001 From: Ezekiel Victor <102771161+McEazy2700@users.noreply.github.com> Date: Sat, 23 Nov 2024 17:23:30 +0100 Subject: [PATCH 188/206] Update grammar on dev.md (#645) --- docs/intro/dev.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro/dev.md b/docs/intro/dev.md index 9dffc3bc9..24dcec050 100644 --- a/docs/intro/dev.md +++ b/docs/intro/dev.md @@ -55,7 +55,7 @@ interact with your application onchain instead of just on the frontend. Developing on Solana still has CI/CD pipelines, testing, debugging tools, a frontend and backend, and anything you'd find in a normal development flow. -## What You'll Need Get Started +## What You'll Need to Get Started To get started with Solana development, you'll need different tools based on whether you are developing for client-side, onchain programs, or both. From 18599de0393104763175b3029c5eaacb7c7f792f Mon Sep 17 00:00:00 2001 From: Hung Chu Date: Sat, 23 Nov 2024 23:26:22 +0700 Subject: [PATCH 189/206] fix typo in intro-to-custom-onchain-programs.md (#615) * fix typo in intro-to-custom-onchain-programs.md * fix style issue * fix style issue --------- Co-authored-by: Hung Chu --- .../intro-to-solana/intro-to-custom-onchain-programs.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/content/courses/intro-to-solana/intro-to-custom-onchain-programs.md b/content/courses/intro-to-solana/intro-to-custom-onchain-programs.md index 8ad09db6e..d0c2adc8f 100644 --- a/content/courses/intro-to-solana/intro-to-custom-onchain-programs.md +++ b/content/courses/intro-to-solana/intro-to-custom-onchain-programs.md @@ -145,12 +145,9 @@ also have. Let's add the string versions of both of those as constants at the top of the file: ```typescript -const PING_PROGRAM_ADDRESS = new web3.PublicKey( - "ChT1B39WKLS8qUrkLvFDXMhEJ4F1XZzwUNHUt4AU9aVa", -); -const PING_PROGRAM_DATA_ADDRESS = new web3.PublicKey( - "Ah9K7dQ8EHaZqcAsgBW8w37yN2eAy3koFmUn4x3CJtod", -); +const PING_PROGRAM_ADDRESS = "ChT1B39WKLS8qUrkLvFDXMhEJ4F1XZzwUNHUt4AU9aVa"; +const PING_PROGRAM_DATA_ADDRESS = + "Ah9K7dQ8EHaZqcAsgBW8w37yN2eAy3koFmUn4x3CJtod"; ``` Now let's create a new transaction, then initialize a `PublicKey` for the From 2d1ddc57e939293d60f969391204484978bb53d7 Mon Sep 17 00:00:00 2001 From: Eloi Date: Sat, 23 Nov 2024 17:27:55 +0100 Subject: [PATCH 190/206] Update pda.md (#592) improving Keypoint description of PDAs --- docs/core/pda.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/pda.md b/docs/core/pda.md index 6c7d5ec9d..76f369b02 100644 --- a/docs/core/pda.md +++ b/docs/core/pda.md @@ -46,7 +46,7 @@ anything built at that location. - PDAs are addresses that fall off the Ed25519 curve and have no corresponding private key. -- Solana programs can programmatically "sign" for PDAs that are derived using +- Solana programs can programmatically "sign" on behalf of PDAs that are derived using its program ID. - Deriving a PDA does not automatically create an on-chain account. From d34ec8cb138e6bc8303fc2c4891140b513e1f253 Mon Sep 17 00:00:00 2001 From: Zhang ShengYan Date: Sun, 24 Nov 2024 00:39:07 +0800 Subject: [PATCH 191/206] Trivial fixes (#586) * fix: remove * fix: add hyper link for exclusive-tests --- content/courses/program-optimization/program-architecture.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/content/courses/program-optimization/program-architecture.md b/content/courses/program-optimization/program-architecture.md index ba1f6e2f3..2eaa0bd57 100644 --- a/content/courses/program-optimization/program-architecture.md +++ b/content/courses/program-optimization/program-architecture.md @@ -929,7 +929,7 @@ Each concept has an accompanying program and test file. For example, the **program -** `programs/architecture/src/concepts/sizes.rs` -**test -** `cd tests/sizes.ts` +**test -** `tests/sizes.ts` Now that you've read about each of these concepts, feel free to jump into the code to experiment a little. You can change existing values, try to break the @@ -940,7 +940,8 @@ You can fork and/or clone to get started. Before building and running the test suite, remember to update the `lib.rs` and `Anchor.toml` with your local program ID. -You can run the entire test suite or add `.only` to the `describe` call in a +You can run the entire test suite or +[add `.only` to the `describe` call](https://mochajs.org/#exclusive-tests) in a specific test file to only run that file's tests. Feel free to customize it and make it your own. From 1351f02aebffb84cde2110e870f3ac2e09a0c72e Mon Sep 17 00:00:00 2001 From: nickfrosty <75431177+nickfrosty@users.noreply.github.com> Date: Mon, 25 Nov 2024 18:33:54 -0500 Subject: [PATCH 192/206] ci: prettier and stale actions --- .github/label-actions.yml | 4 +- .github/workflows/label-actions.yml | 72 +++------------------ .github/workflows/prettier-label-action.yml | 64 ++++++++++++++++++ .github/workflows/stale.yml | 37 +++++++++++ 4 files changed, 112 insertions(+), 65 deletions(-) create mode 100644 .github/workflows/prettier-label-action.yml create mode 100644 .github/workflows/stale.yml diff --git a/.github/label-actions.yml b/.github/label-actions.yml index 0226a174c..ec2760e5a 100644 --- a/.github/label-actions.yml +++ b/.github/label-actions.yml @@ -13,6 +13,6 @@ solved: # Close the discussion close: true # Set a close reason - close-reason: 'resolved' + close-reason: "resolved" # Lock the discussion - lock: true \ No newline at end of file + lock: true diff --git a/.github/workflows/label-actions.yml b/.github/workflows/label-actions.yml index bf8594cfa..1584ad4c8 100644 --- a/.github/workflows/label-actions.yml +++ b/.github/workflows/label-actions.yml @@ -1,73 +1,19 @@ name: "Label Actions" -# env: -# GH_PERSONAL_ACCESS_TOKEN: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} +env: + GH_PERSONAL_ACCESS_TOKEN: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} on: - pull_request_target: + issues: + types: [labeled, unlabeled] + pull_request: types: [labeled, unlabeled] - # issues: - # types: [labeled, unlabeled] - # discussion: - # types: [labeled, unlabeled] - -permissions: - contents: read - issues: write - pull-requests: write - discussions: write jobs: - # run the local prettier config on the PR - prettier: - if: contains(github.event.pull_request.labels.*.name, 'prettier') - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [20] - - permissions: - # Give the default GITHUB_TOKEN write permission to commit and push the - # added or changed files to the repository. - contents: write - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha }} - - uses: actions/checkout@v4 - - name: Install pnpm - uses: pnpm/action-setup@v4 - with: - version: 9 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v4 - with: - node-version: ${{ matrix.node-version }} - cache: "pnpm" - - - name: before_install - run: - echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf - && sudo sysctl -p - - # perform steps to modify as desired - - name: pnpm install - run: pnpm install - - name: pnpm prettier:fix - run: pnpm prettier:fix - - - name: Commit changes - uses: stefanzweifel/git-auto-commit-action@v5 - with: - commit_message: "chore: prettier" - - action: + label-actions: runs-on: ubuntu-latest steps: - - uses: dessant/label-actions@v4 + - uses: dessant/label-actions@v3 with: - # github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} - config-path: ".github/label-actions.yml" + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + config-path: .github/label-actions.yml diff --git a/.github/workflows/prettier-label-action.yml b/.github/workflows/prettier-label-action.yml new file mode 100644 index 000000000..11167df94 --- /dev/null +++ b/.github/workflows/prettier-label-action.yml @@ -0,0 +1,64 @@ +name: Prettier Formatting on Label + +env: + GH_PERSONAL_ACCESS_TOKEN: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + +on: + pull_request: + types: [labeled] + +jobs: + prettier-format: + # Only run if the 'prettier' label is added + if: ${{ contains(github.event.pull_request.labels.*.name, 'prettier') }} + runs-on: ubuntu-latest + steps: + # Checkout the PR branch + - uses: actions/checkout@v4 + with: + ref: ${{ github.head_ref }} + # Use a token that allows pushing to the PR branch + token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + + # Setup Node.js (required for Prettier) + - uses: actions/setup-node@v4 + with: + node-version: "lts/*" + + # Install Prettier + - name: Install Prettier + run: npm install --save-dev --save-exact prettier + + # Run Prettier using the repo's config + - name: Run Prettier + run: npx prettier --write . + + # Check if there are any changes + - name: Check for changes + id: check-changes + run: | + git diff --quiet || echo "changes=true" >> $GITHUB_OUTPUT + + # Commit and push changes if any + - name: Commit changes + if: steps.check-changes.outputs.changes == 'true' + run: | + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git add . + git commit -m "[chore] automatic prettier formatting" + git push + + # Remove the label after formatting + - name: Remove formatting label + if: always() + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + script: | + github.rest.issues.removeLabel({ + owner: context.repo.owner, + repo: context.repo.name, + issue_number: context.issue.number, + name: 'prettier' + }) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 000000000..8b7e30a3e --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,37 @@ +name: Mark Stale Issues and PRs + +on: + schedule: + # Run daily at midnight + - cron: "0 0 * * *" + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v9 + with: + # Issues configuration + stale-issue-message: + "This issue has been automatically marked as stale because it has + not had recent activity. Remove stale label or comment or this will + be closed in 5 days." + stale-issue-label: "no-issue-activity" + days-before-issue-stale: 30 # Mark as stale after 30 days of inactivity + days-before-issue-close: 5 # Close 5 days after being marked stale + + # Pull Request configuration + stale-pr-message: + "This pull request has been automatically marked as stale because it + has not had recent activity. Remove stale label or comment or this + will be closed in 7 days." + stale-pr-label: "no-pr-activity" + days-before-pr-stale: 21 # Mark PRs as stale after 21 days + days-before-pr-close: 7 # Close PRs 7 days after being marked stale + + # Exempt labels and other configurations + exempt-issue-labels: "bug,enhancement,in-progress,not-stale" + exempt-pr-labels: "work-in-progress,review-needed,not-stale" + + # Optional: Dry run to test configuration + dry-run: true From 5e92757a238df205d8b1dfa7c99312b2dd2452fd Mon Sep 17 00:00:00 2001 From: nickfrosty <75431177+nickfrosty@users.noreply.github.com> Date: Mon, 25 Nov 2024 18:41:39 -0500 Subject: [PATCH 193/206] fix: token name --- .github/workflows/label-actions.yml | 5 +---- .github/workflows/prettier-label-action.yml | 6 +++--- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/label-actions.yml b/.github/workflows/label-actions.yml index 1584ad4c8..692cbb2e1 100644 --- a/.github/workflows/label-actions.yml +++ b/.github/workflows/label-actions.yml @@ -1,8 +1,5 @@ name: "Label Actions" -env: - GH_PERSONAL_ACCESS_TOKEN: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} - on: issues: types: [labeled, unlabeled] @@ -15,5 +12,5 @@ jobs: steps: - uses: dessant/label-actions@v3 with: - github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} config-path: .github/label-actions.yml diff --git a/.github/workflows/prettier-label-action.yml b/.github/workflows/prettier-label-action.yml index 11167df94..55ef23e29 100644 --- a/.github/workflows/prettier-label-action.yml +++ b/.github/workflows/prettier-label-action.yml @@ -1,7 +1,7 @@ name: Prettier Formatting on Label env: - GH_PERSONAL_ACCESS_TOKEN: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + GH_PERSONAL_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} on: pull_request: @@ -18,7 +18,7 @@ jobs: with: ref: ${{ github.head_ref }} # Use a token that allows pushing to the PR branch - token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + token: ${{ secrets.GITHUB_TOKEN }} # Setup Node.js (required for Prettier) - uses: actions/setup-node@v4 @@ -54,7 +54,7 @@ jobs: if: always() uses: actions/github-script@v7 with: - github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} script: | github.rest.issues.removeLabel({ owner: context.repo.owner, From 96ea62ef13cf5ec958ad4ba59b222e75aa20d59d Mon Sep 17 00:00:00 2001 From: nickfrosty <75431177+nickfrosty@users.noreply.github.com> Date: Mon, 25 Nov 2024 19:37:17 -0500 Subject: [PATCH 194/206] fix: action --- .github/workflows/prettier-label-action.yml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/prettier-label-action.yml b/.github/workflows/prettier-label-action.yml index 55ef23e29..c3833c5f6 100644 --- a/.github/workflows/prettier-label-action.yml +++ b/.github/workflows/prettier-label-action.yml @@ -1,7 +1,9 @@ name: Prettier Formatting on Label -env: - GH_PERSONAL_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# Explicitly set permissions +permissions: + contents: write + pull-requests: write on: pull_request: @@ -16,9 +18,12 @@ jobs: # Checkout the PR branch - uses: actions/checkout@v4 with: - ref: ${{ github.head_ref }} - # Use a token that allows pushing to the PR branch + # Use the full PR head reference + ref: ${{ github.event.pull_request.head.ref }} + # Use the full repository name + repository: ${{ github.event.pull_request.head.repo.full_name }} token: ${{ secrets.GITHUB_TOKEN }} + fetch-depth: 0 # Setup Node.js (required for Prettier) - uses: actions/setup-node@v4 @@ -47,7 +52,7 @@ jobs: git config --local user.name "GitHub Action" git add . git commit -m "[chore] automatic prettier formatting" - git push + git push origin HEAD:${{ github.event.pull_request.head.ref }} # Remove the label after formatting - name: Remove formatting label From 54dde8233cf5f78ddf92a37268a532723ca8bb48 Mon Sep 17 00:00:00 2001 From: nickfrosty <75431177+nickfrosty@users.noreply.github.com> Date: Mon, 25 Nov 2024 19:43:22 -0500 Subject: [PATCH 195/206] fix: actions --- .github/workflows/contentlayer.yml | 2 -- .github/workflows/prettier-label-action.yml | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/contentlayer.yml b/.github/workflows/contentlayer.yml index 962162710..6371b2ead 100644 --- a/.github/workflows/contentlayer.yml +++ b/.github/workflows/contentlayer.yml @@ -1,8 +1,6 @@ name: Contentlayer Markdown Formatting on: - push: - branches: [main] pull_request: branches: [main] diff --git a/.github/workflows/prettier-label-action.yml b/.github/workflows/prettier-label-action.yml index c3833c5f6..eece5a0e4 100644 --- a/.github/workflows/prettier-label-action.yml +++ b/.github/workflows/prettier-label-action.yml @@ -63,7 +63,7 @@ jobs: script: | github.rest.issues.removeLabel({ owner: context.repo.owner, - repo: context.repo.name, + repo: context.repo.repo, issue_number: context.issue.number, name: 'prettier' }) From 8f3549f17c051175a0935424db0c066bca5b4fc9 Mon Sep 17 00:00:00 2001 From: nickfrosty <75431177+nickfrosty@users.noreply.github.com> Date: Mon, 25 Nov 2024 19:55:07 -0500 Subject: [PATCH 196/206] fix: action --- .github/workflows/prettier-label-action.yml | 25 +++++++++++---------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/.github/workflows/prettier-label-action.yml b/.github/workflows/prettier-label-action.yml index eece5a0e4..ac7c8775b 100644 --- a/.github/workflows/prettier-label-action.yml +++ b/.github/workflows/prettier-label-action.yml @@ -55,15 +55,16 @@ jobs: git push origin HEAD:${{ github.event.pull_request.head.ref }} # Remove the label after formatting - - name: Remove formatting label - if: always() - uses: actions/github-script@v7 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - script: | - github.rest.issues.removeLabel({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.issue.number, - name: 'prettier' - }) + # todo: label removal is flaky, disabled for now + # - name: Remove formatting label + # if: always() + # uses: actions/github-script@v7 + # with: + # github-token: ${{ secrets.GITHUB_TOKEN }} + # script: | + # github.rest.issues.removeLabel({ + # owner: context.repo.owner, + # repo: context.repo.repo, + # issue_number: context.issue.number, + # name: 'prettier' + # }) From a5a689d21aeebea40d85010d96b31347a8732ef2 Mon Sep 17 00:00:00 2001 From: melonges Date: Tue, 26 Nov 2024 03:58:18 +0300 Subject: [PATCH 197/206] Update verifiable-randomness-functions.md (#647) --- .../verifiable-randomness-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md b/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md index 3951a34f7..e868ee073 100644 --- a/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md +++ b/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md @@ -939,7 +939,7 @@ pub struct RequestRandomnessParams { Now, we can work on the logic of this instruction. The logic should gather all of the accounts needed and pass them to -`[VrfRequestRandomness](https://github.com/switchboard-xyz/solana-sdk/blob/fbef37e4a78cbd8b8b6346fcb96af1e20204b861/rust/switchboard-solana/src/oracle_program/instructions/vrf_request_randomness.rs#L8)`, +[VrfRequestRandomness](https://github.com/switchboard-xyz/solana-sdk/blob/fbef37e4a78cbd8b8b6346fcb96af1e20204b861/rust/switchboard-solana/src/oracle_program/instructions/vrf_request_randomness.rs#L8), which is a really nice struct from Switchboard. Then we'll sign the request and send it on it's way. From 0a6a045cef7824fc767fdc818ca93d6f936803ba Mon Sep 17 00:00:00 2001 From: Pavel Zaborskii Date: Tue, 26 Nov 2024 02:03:55 +0100 Subject: [PATCH 198/206] Update docs for higher accuracy and quality of information (#648) * actions.md * lookup-tables.md * retry.md * state-compression.md * confirmation.md --- docs/advanced/actions.md | 10 +++++----- docs/advanced/confirmation.md | 2 +- docs/advanced/lookup-tables.md | 2 +- docs/advanced/retry.md | 2 +- docs/advanced/state-compression.md | 10 +++++----- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/advanced/actions.md b/docs/advanced/actions.md index f0f5e2d2e..d6bd51e61 100644 --- a/docs/advanced/actions.md +++ b/docs/advanced/actions.md @@ -510,7 +510,7 @@ export interface ActionParameter { The `pattern` should be a string equivalent of a valid regular expression. This regular expression pattern should by used by blink-clients to validate user -input before before making the POST request. If the `pattern` is not a valid +input before making the POST request. If the `pattern` is not a valid regular expression, it should be ignored by clients. The `patternDescription` is a human readable description of the expected input @@ -592,7 +592,7 @@ user input elements are also supported: - `textarea` - equivalent of HTML [textarea element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea). - Allowing the user provide multi-line input. + Allowing the user to provide multi-line input. - `select` - equivalent of HTML [select element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select), allowing the user to experience a “dropdown” style field. The Action API @@ -971,7 +971,7 @@ clients in one of the following ways: UI with the included Action metadata, but will not allow the user to execute further actions. -If no `links.next` is not provided, blink clients should assume the current +If `links.next` is not provided, blink clients should assume the current action is final action in the chain, presenting their "completed" UI state after the transaction is confirmed. @@ -1070,7 +1070,7 @@ The following table outlines the syntax for path matching patterns: ### Rules Examples -The following example demonstrates an exact match rule to map requests requests +The following example demonstrates an exact match rule to map requests to `/buy` from your site's root to the exact path `/api/buy` relative to your site's root: @@ -1210,7 +1210,7 @@ associated with the Action Provider in a multi-step process: 3. Verify the specific transaction is the first on-chain occurrence of the `reference` on-chain: - If this transaction is the first occurrence, the transaction is considered - verified and can a safely attributed to the Action Provider. + verified and can be safely attributed to the Action Provider. - If this transaction is NOT the first occurrence, it is considered invalid and therefore not attributed to the Action Provider. diff --git a/docs/advanced/confirmation.md b/docs/advanced/confirmation.md index b26144204..35d4df0bb 100644 --- a/docs/advanced/confirmation.md +++ b/docs/advanced/confirmation.md @@ -153,7 +153,7 @@ processed transactions. ### Other blockchains -Solana's approach of prevent double processing is quite different from other +Solana's approach to prevent double processing is quite different from other blockchains. For example, Ethereum tracks a counter (nonce) for each transaction sender and will only process transactions that use the next valid nonce. diff --git a/docs/advanced/lookup-tables.md b/docs/advanced/lookup-tables.md index 354d72004..e88f26e52 100644 --- a/docs/advanced/lookup-tables.md +++ b/docs/advanced/lookup-tables.md @@ -147,7 +147,7 @@ utilize the onchain lookup capabilities. Just like older `legacy` transactions, you can create all the [instructions](/docs/terminology.md#instruction) your transaction will execute onchain. You can then provide an array of these instructions to the -[Message](/docs/terminology.md#message) used in the `v0 transaction. +[Message](/docs/terminology.md#message) used in the `v0` transaction. > NOTE: The instructions used inside a `v0` transaction can be constructed using > the same methods and functions used to create the instructions in the past. diff --git a/docs/advanced/retry.md b/docs/advanced/retry.md index 4af07b82c..eb650a099 100644 --- a/docs/advanced/retry.md +++ b/docs/advanced/retry.md @@ -142,7 +142,7 @@ transaction submission if developers enable ![Transaction dropped via an RPC Pool](/assets/docs/rt-dropped-via-rpc-pool.png) -Temporarily network forks can also result in dropped transactions. If a +Temporary network forks can also result in dropped transactions. If a validator is slow to replay its blocks within the Banking Stage, it may end up creating a minority fork. When a client builds a transaction, it's possible for the transaction to reference a `recentBlockhash` that only exists on the diff --git a/docs/advanced/state-compression.md b/docs/advanced/state-compression.md index 786c16237..b0cc2e34a 100644 --- a/docs/advanced/state-compression.md +++ b/docs/advanced/state-compression.md @@ -32,9 +32,9 @@ These _trees_ are created in this "_deterministic_" process by: - taking any piece of data - creating a hash of this data -- storing this hash as a `leaf` the bottom of the tree -- each `leaf` pair is then hash together, creating a `branch` -- each `branch` is then hash together +- storing this hash as a `leaf` at the bottom of the tree +- each `leaf` pair is then hashed together, creating a `branch` +- each `branch` is then hashed together - continually climbing the tree and hashing adjacent branches together - once at the top of the tree, a final `root hash` is produced @@ -94,7 +94,7 @@ In high throughput applications, like within the [Solana runtime](/docs/core/fees.md), requests to change an on-chain _traditional merkle tree_ could be received by validators in relatively rapid succession (e.g. within the same slot). Each leaf data change would still be -required to performed in series. Resulting in each subsequent request for change +required to be performed in series. Resulting in each subsequent request for change to fail, due to the root hash and proof being invalidated by the previous change request in the slot. @@ -175,7 +175,7 @@ We must use a `maxDepth` of `14` to ensure we can store all of our data. The `maxDepth` value will be one of the primary drivers of cost when creating a tree since you will pay this cost upfront at tree creation. The higher the max -tree depth depth, the more data fingerprints (aka hashes) you can store, the +tree depth, the more data fingerprints (aka hashes) you can store, the higher the cost. ### Max buffer size From 1427fe36cd06f9cb978fcd9539c9f46677657552 Mon Sep 17 00:00:00 2001 From: nickfrosty <75431177+nickfrosty@users.noreply.github.com> Date: Mon, 25 Nov 2024 20:04:27 -0500 Subject: [PATCH 199/206] chore: prettier --- docs/advanced/actions.md | 15 +++++++-------- docs/advanced/retry.md | 14 +++++++------- docs/advanced/state-compression.md | 10 +++++----- docs/core/pda.md | 4 ++-- tsconfig.json | 12 ++++++------ 5 files changed, 27 insertions(+), 28 deletions(-) diff --git a/docs/advanced/actions.md b/docs/advanced/actions.md index d6bd51e61..40703a55b 100644 --- a/docs/advanced/actions.md +++ b/docs/advanced/actions.md @@ -510,8 +510,8 @@ export interface ActionParameter { The `pattern` should be a string equivalent of a valid regular expression. This regular expression pattern should by used by blink-clients to validate user -input before making the POST request. If the `pattern` is not a valid -regular expression, it should be ignored by clients. +input before making the POST request. If the `pattern` is not a valid regular +expression, it should be ignored by clients. The `patternDescription` is a human readable description of the expected input requests from the user. If `pattern` is provided, the `patternDescription` is @@ -971,9 +971,9 @@ clients in one of the following ways: UI with the included Action metadata, but will not allow the user to execute further actions. -If `links.next` is not provided, blink clients should assume the current -action is final action in the chain, presenting their "completed" UI state after -the transaction is confirmed. +If `links.next` is not provided, blink clients should assume the current action +is final action in the chain, presenting their "completed" UI state after the +transaction is confirmed. ## actions.json @@ -1070,9 +1070,8 @@ The following table outlines the syntax for path matching patterns: ### Rules Examples -The following example demonstrates an exact match rule to map requests -to `/buy` from your site's root to the exact path `/api/buy` relative to your -site's root: +The following example demonstrates an exact match rule to map requests to `/buy` +from your site's root to the exact path `/api/buy` relative to your site's root: ```json filename="actions.json" { diff --git a/docs/advanced/retry.md b/docs/advanced/retry.md index eb650a099..dfea6dac3 100644 --- a/docs/advanced/retry.md +++ b/docs/advanced/retry.md @@ -142,13 +142,13 @@ transaction submission if developers enable ![Transaction dropped via an RPC Pool](/assets/docs/rt-dropped-via-rpc-pool.png) -Temporary network forks can also result in dropped transactions. If a -validator is slow to replay its blocks within the Banking Stage, it may end up -creating a minority fork. When a client builds a transaction, it's possible for -the transaction to reference a `recentBlockhash` that only exists on the -minority fork. After the transaction is submitted, the cluster can then switch -away from its minority fork before the transaction is processed. In this -scenario, the transaction is dropped due to the blockhash not being found. +Temporary network forks can also result in dropped transactions. If a validator +is slow to replay its blocks within the Banking Stage, it may end up creating a +minority fork. When a client builds a transaction, it's possible for the +transaction to reference a `recentBlockhash` that only exists on the minority +fork. After the transaction is submitted, the cluster can then switch away from +its minority fork before the transaction is processed. In this scenario, the +transaction is dropped due to the blockhash not being found. ![Transaction dropped due to minority fork (before processed)](/assets/docs/rt-dropped-minority-fork-pre-process.png) diff --git a/docs/advanced/state-compression.md b/docs/advanced/state-compression.md index b0cc2e34a..5e01a602e 100644 --- a/docs/advanced/state-compression.md +++ b/docs/advanced/state-compression.md @@ -94,9 +94,9 @@ In high throughput applications, like within the [Solana runtime](/docs/core/fees.md), requests to change an on-chain _traditional merkle tree_ could be received by validators in relatively rapid succession (e.g. within the same slot). Each leaf data change would still be -required to be performed in series. Resulting in each subsequent request for change -to fail, due to the root hash and proof being invalidated by the previous change -request in the slot. +required to be performed in series. Resulting in each subsequent request for +change to fail, due to the root hash and proof being invalidated by the previous +change request in the slot. Enter, Concurrent merkle trees. @@ -175,8 +175,8 @@ We must use a `maxDepth` of `14` to ensure we can store all of our data. The `maxDepth` value will be one of the primary drivers of cost when creating a tree since you will pay this cost upfront at tree creation. The higher the max -tree depth, the more data fingerprints (aka hashes) you can store, the -higher the cost. +tree depth, the more data fingerprints (aka hashes) you can store, the higher +the cost. ### Max buffer size diff --git a/docs/core/pda.md b/docs/core/pda.md index 76f369b02..2d0330554 100644 --- a/docs/core/pda.md +++ b/docs/core/pda.md @@ -46,8 +46,8 @@ anything built at that location. - PDAs are addresses that fall off the Ed25519 curve and have no corresponding private key. -- Solana programs can programmatically "sign" on behalf of PDAs that are derived using - its program ID. +- Solana programs can programmatically "sign" on behalf of PDAs that are derived + using its program ID. - Deriving a PDA does not automatically create an on-chain account. diff --git a/tsconfig.json b/tsconfig.json index d90767bb3..5f9e81ca6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -18,20 +18,20 @@ "paths": { "contentlayer/generated": ["./.contentlayer/generated"], "@/*": ["./src/*"], - "@@/*": ["./*"], + "@@/*": ["./*"] }, "plugins": [ { - "name": "next", - }, - ], + "name": "next" + } + ] }, "include": [ ".contentlayer/generated", "next-env.d.ts", "**/*.ts", "**/*.tsx", - ".next/types/**/*.ts", + ".next/types/**/*.ts" ], - "exclude": ["node_modules", "code"], + "exclude": ["node_modules", "code"] } From 2fa7d0948bdabd8f2261cc4c14d116f83dfc29f5 Mon Sep 17 00:00:00 2001 From: nickfrosty <75431177+nickfrosty@users.noreply.github.com> Date: Mon, 25 Nov 2024 20:16:01 -0500 Subject: [PATCH 200/206] fix: broken link and typos --- content/cookbook/tokens/approve-token-delegate.md | 4 ++-- content/cookbook/tokens/burn-tokens.md | 4 ++-- content/cookbook/tokens/create-mint-account.md | 2 +- content/cookbook/tokens/set-update-token-authority.md | 2 +- content/cookbook/tokens/transfer-tokens.md | 4 ++-- content/cookbook/transactions/offline-transactions.md | 8 ++++---- content/courses/connecting-to-offchain-data/oracles.md | 4 ++-- .../verifiable-randomness-functions.md | 2 +- content/guides/getstarted/scaffold-nextjs-anchor.md | 2 +- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/content/cookbook/tokens/approve-token-delegate.md b/content/cookbook/tokens/approve-token-delegate.md index f2697b028..b64d457b1 100644 --- a/content/cookbook/tokens/approve-token-delegate.md +++ b/content/cookbook/tokens/approve-token-delegate.md @@ -62,7 +62,7 @@ import bs58 from "bs58"; tokenAccountPubkey, // token account randomGuy.publicKey, // delegate alice, // owner of token account - 1e8, // amount, if your deciamls is 8, 10^8 for 1 token + 1e8, // amount, if your decimals is 8, 10^8 for 1 token 8, // decimals ); console.log(`txhash: ${txhash}`); @@ -77,7 +77,7 @@ import bs58 from "bs58"; mintPubkey, // mint randomGuy.publicKey, // delegate alice.publicKey, // owner of token account - 1e8, // amount, if your deciamls is 8, 10^8 for 1 token + 1e8, // amount, if your decimals is 8, 10^8 for 1 token 8, // decimals ), ); diff --git a/content/cookbook/tokens/burn-tokens.md b/content/cookbook/tokens/burn-tokens.md index e5e997939..486b297af 100644 --- a/content/cookbook/tokens/burn-tokens.md +++ b/content/cookbook/tokens/burn-tokens.md @@ -52,7 +52,7 @@ import bs58 from "bs58"; tokenAccountPubkey, // token account mintPubkey, // mint alice, // owner - 1e8, // amount, if your deciamls is 8, 10^8 for 1 token + 1e8, // amount, if your decimals is 8, 10^8 for 1 token 8, ); console.log(`txhash: ${txhash}`); @@ -67,7 +67,7 @@ import bs58 from "bs58"; tokenAccountPubkey, // token account mintPubkey, // mint alice.publicKey, // owner of token account - 1e8, // amount, if your deciamls is 8, 10^8 for 1 token + 1e8, // amount, if your decimals is 8, 10^8 for 1 token 8, // decimals ), ); diff --git a/content/cookbook/tokens/create-mint-account.md b/content/cookbook/tokens/create-mint-account.md index bf12c0ce1..a65119321 100644 --- a/content/cookbook/tokens/create-mint-account.md +++ b/content/cookbook/tokens/create-mint-account.md @@ -48,7 +48,7 @@ import bs58 from "bs58"; // 1) use build-in function let mintPubkey = await createMint( - connection, // conneciton + connection, // connection feePayer, // fee payer alice.publicKey, // mint authority alice.publicKey, // freeze authority (you can use `null` to disable it. when you disable it, you can't turn it on again) diff --git a/content/cookbook/tokens/set-update-token-authority.md b/content/cookbook/tokens/set-update-token-authority.md index d7ca156e1..032b64358 100644 --- a/content/cookbook/tokens/set-update-token-authority.md +++ b/content/cookbook/tokens/set-update-token-authority.md @@ -83,7 +83,7 @@ import bs58 from "bs58"; { let tx = new Transaction().add( createSetAuthorityInstruction( - mintPubkey, // mint acocunt || token account + mintPubkey, // mint account || token account alice.publicKey, // current auth AuthorityType.MintTokens, // authority type feePayer.publicKey, // new auth (you can pass `null` to close it) diff --git a/content/cookbook/tokens/transfer-tokens.md b/content/cookbook/tokens/transfer-tokens.md index 87a046660..29e120d34 100644 --- a/content/cookbook/tokens/transfer-tokens.md +++ b/content/cookbook/tokens/transfer-tokens.md @@ -60,7 +60,7 @@ import bs58 from "bs58"; mintPubkey, // mint tokenAccountYPubkey, // to (should be a token account) alice, // from's owner - 1e8, // amount, if your deciamls is 8, send 10^8 for 1 token + 1e8, // amount, if your decimals is 8, send 10^8 for 1 token 8, // decimals ); console.log(`txhash: ${txhash}`); @@ -76,7 +76,7 @@ import bs58 from "bs58"; mintPubkey, // mint tokenAccountYPubkey, // to (should be a token account) alice.publicKey, // from's owner - 1e8, // amount, if your deciamls is 8, send 10^8 for 1 token + 1e8, // amount, if your decimals is 8, send 10^8 for 1 token 8, // decimals ), ); diff --git a/content/cookbook/transactions/offline-transactions.md b/content/cookbook/transactions/offline-transactions.md index 3d95e4ca1..793f66d2c 100644 --- a/content/cookbook/transactions/offline-transactions.md +++ b/content/cookbook/transactions/offline-transactions.md @@ -22,7 +22,7 @@ import { import * as nacl from "tweetnacl"; import * as bs58 from "bs58"; -// to complete a offline transaction, I will seperate them into four steps +// to complete a offline transaction, I will separate them into four steps // 1. Create Transaction // 2. Sign Transaction // 3. Recover Transaction @@ -65,7 +65,7 @@ import * as bs58 from "bs58"; ); let aliceSignature = nacl.sign.detached(realDataNeedToSign, alice.secretKey); - // 3. Recover Tranasction + // 3. Recover Transaction // you can verify signatures before you recovering the transaction let verifyFeePayerSignatureResult = nacl.sign.detached.verify( @@ -83,7 +83,7 @@ import * as bs58 from "bs58"; console.log(`verify alice signature: ${verifyAliceSignatureResult}`); // there are two ways you can recover the tx - // 3.a Recover Tranasction (use populate then addSignauture) + // 3.a Recover Transaction (use populate then addSignature) { let recoverTx = Transaction.populate(Message.from(realDataNeedToSign)); recoverTx.addSignature(feePayer.publicKey, Buffer.from(feePayerSignature)); @@ -97,7 +97,7 @@ import * as bs58 from "bs58"; // or - // 3.b. Recover Tranasction (use populate with signature) + // 3.b. Recover Transaction (use populate with signature) { let recoverTx = Transaction.populate(Message.from(realDataNeedToSign), [ bs58.encode(feePayerSignature), diff --git a/content/courses/connecting-to-offchain-data/oracles.md b/content/courses/connecting-to-offchain-data/oracles.md index d00497335..53cd16797 100644 --- a/content/courses/connecting-to-offchain-data/oracles.md +++ b/content/courses/connecting-to-offchain-data/oracles.md @@ -1268,7 +1268,7 @@ describe("burry-escrow", () => { if (solPrice === null) { throw new Error("Aggregator holds no value"); } - // Although `SOL_USD_SWITCHBOARD_FEED` is not changing we are changing the unlockPrice in test as given below to simulate the escrow behaviour + // Although `SOL_USD_SWITCHBOARD_FEED` is not changing we are changing the unlockPrice in test as given below to simulate the escrow behavior const unlockPrice = solPrice.minus(PRICE_OFFSET).toNumber(); await createAndVerifyEscrow(unlockPrice); @@ -1332,7 +1332,7 @@ describe("burry-escrow", () => { if (solPrice === null) { throw new Error("Aggregator holds no value"); } - // Although `SOL_USD_SWITCHBOARD_FEED` is not changing we are changing the unlockPrice in test as given below to simulate the escrow behaviour + // Although `SOL_USD_SWITCHBOARD_FEED` is not changing we are changing the unlockPrice in test as given below to simulate the escrow behavior const unlockPrice = solPrice.plus(PRICE_OFFSET).toNumber(); await createAndVerifyEscrow(unlockPrice); }); diff --git a/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md b/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md index e868ee073..7f9eb3af1 100644 --- a/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md +++ b/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md @@ -199,7 +199,7 @@ Lastly, the `callback` field is where you define the callback instruction the Switchboard program should invoke once the randomness result has be verified. The `callback` field is of type -`[CallbackZC](https://github.com/switchboard-xyz/solana-sdk/blob/9dc3df8a5abe261e23d46d14f9e80a7032bb346c/rust/switchboard-solana/src/oracle_program/accounts/ecvrf.rs#L25)`. +[`CallbackZC`](https://github.com/switchboard-xyz/solana-sdk/blob/9dc3df8a5abe261e23d46d14f9e80a7032bb346c/rust/switchboard-solana/src/oracle_program/accounts/ecvrf.rs#L25). ```rust #[zero_copy(unsafe)] diff --git a/content/guides/getstarted/scaffold-nextjs-anchor.md b/content/guides/getstarted/scaffold-nextjs-anchor.md index 95729eb8d..6af833062 100644 --- a/content/guides/getstarted/scaffold-nextjs-anchor.md +++ b/content/guides/getstarted/scaffold-nextjs-anchor.md @@ -255,7 +255,7 @@ supports shared layouts, nested routing, loading states, and error handling. The `solana-provider.tsx` already has all the wallet features you need, It handles auto connects of Solana wallet easily, and you can move to multiple components of your web application with the wallet states managed. This NextJS -app is using `[@tanstack/react-query](`https://tanstack.com/query/latest)` to +app is using [`@tanstack/react-query`](https://tanstack.com/query/latest) to fetch, cache, synchronize, and update server state in your web applications easily. React-Query here is used for all the data fetching needs, like a hook for `useGetBalance` to get the balance of your wallet, `useTransferSol` to From ddf329e266c28561e9ee7bbce9a64fa0d0fdd2ae Mon Sep 17 00:00:00 2001 From: Sebastian Banescu Date: Tue, 26 Nov 2024 12:46:09 +0100 Subject: [PATCH 201/206] Small typo in signer-auth.md (#649) --- content/courses/program-security/signer-auth.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/courses/program-security/signer-auth.md b/content/courses/program-security/signer-auth.md index 34777b07f..3257e3bdc 100644 --- a/content/courses/program-security/signer-auth.md +++ b/content/courses/program-security/signer-auth.md @@ -198,8 +198,8 @@ performed. ### Using Anchor's `#[account(signer)]` Constraint While the `Signer` account type is useful, it doesn't perform other ownership or -type checks, limiting its use in instruction handler logic. The -[anchor's `#[account(signer)]`](https://www.anchor-lang.com/docs/account-constraints) +type checks, limiting its use in instruction handler logic. +[Anchor's `#[account(signer)]`](https://www.anchor-lang.com/docs/account-constraints) constraint addresses this by verifying that the account signed the transaction while allowing access to its underlying data. From 6c5b4cd402539745222694a2ec2f0068834b0cd8 Mon Sep 17 00:00:00 2001 From: Pablo Adell Date: Tue, 26 Nov 2024 23:42:52 +0100 Subject: [PATCH 202/206] Fix ID types to match JSON-RPC 2.0 spec (#569) * Update index.mdx updating description of id key according to [`JSON RPC 2.0` standard](https://www.jsonrpc.org/specification#request_object) * Update index.mdx * Update docs/rpc/http/index.mdx * Update index.mdx Updating description based on specification --------- Co-authored-by: Mike MacCana --- docs/rpc/http/index.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/rpc/http/index.mdx b/docs/rpc/http/index.mdx index ddcaa9649..0392e5605 100644 --- a/docs/rpc/http/index.mdx +++ b/docs/rpc/http/index.mdx @@ -29,7 +29,9 @@ To make a JSON-RPC request, send an HTTP POST request with a fields: - `jsonrpc: ` - set to `"2.0"` -- `id: ` - a unique client-generated identifying integer +- `id: ` - a unique identifier for the request, + generated by the client. Typically a string or number, though null is + technically allowed but not advised - `method: ` - a string containing the method to be invoked - `params: ` - a JSON array of ordered parameter values From d4aa648fd0a00f5f0429adee1555aa767959772f Mon Sep 17 00:00:00 2001 From: Melody Serra Date: Tue, 26 Nov 2024 17:56:30 -0500 Subject: [PATCH 203/206] Update reading-from-network.md (#599) * Update reading-from-network.md why behind buffering this way * Update docs/intro/quick-start/reading-from-network.md Co-authored-by: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> * fix: spacing --------- Co-authored-by: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com> --- docs/intro/quick-start/reading-from-network.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/intro/quick-start/reading-from-network.md b/docs/intro/quick-start/reading-from-network.md index 268f06a2a..e65d0abdb 100644 --- a/docs/intro/quick-start/reading-from-network.md +++ b/docs/intro/quick-start/reading-from-network.md @@ -129,6 +129,11 @@ Let's break down the fields in the output: - `data` - This field contains what we generally refer to as the account "data". For a wallet, it's empty (0 bytes), but other accounts use this field to store any arbitrary data as a serialized buffer of bytes. + +> When data is "buffered" in this way, it maintains its integrity and can be +> later deserialized back into its original form for use in applications. This +> process is widely used in blockchain for efficient data handling. + - `executable` - A flag that indicates whether the account is an executable program. For wallets and any accounts that store state, this is `false`. - `owner` - This field shows which program controls the account. For wallets, From 56f457afd3674d0e915c569503a1a679db9774c6 Mon Sep 17 00:00:00 2001 From: Chii Yuen Date: Wed, 27 Nov 2024 07:00:01 +0800 Subject: [PATCH 204/206] fix: readme typos (#587) * fix: typo filename "anchor init --template=multiple" generates "error.rs", not "errors.rs" * feat: update dependencies * fix: typo link * fix: code indent --- .../connecting-to-offchain-data/oracles.md | 6 +++--- .../verifiable-randomness-functions.md | 20 +++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/content/courses/connecting-to-offchain-data/oracles.md b/content/courses/connecting-to-offchain-data/oracles.md index 53cd16797..80d79798f 100644 --- a/content/courses/connecting-to-offchain-data/oracles.md +++ b/content/courses/connecting-to-offchain-data/oracles.md @@ -717,7 +717,7 @@ within the `programs/burry-escrow` directory: ├── Xargo.toml └── src ├── constants.rs - ├── errors.rs + ├── error.rs ├── instructions │ ├── deposit.rs │ ├── mod.rs @@ -798,9 +798,9 @@ pub const SOL_USDC_FEED: &str = "GvDMxPzN1sCj7L26YDK2HnMRXEQmQ2aemov8YBtPS7vR"; ### 5. Errors Next, let's define the custom errors we'll use throughout the program. Inside -the `errors.rs` file, paste the following: +the `error.rs` file, paste the following: -```rust filename="errors.rs" +```rust filename="error.rs" use anchor_lang::prelude::*; #[error_code] diff --git a/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md b/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md index 7f9eb3af1..70fc691af 100644 --- a/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md +++ b/content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md @@ -485,8 +485,8 @@ in our `Cargo.toml` file. ```typescript [dependencies] -anchor-lang = "0.28.0" -anchor-spl = "0.28.0" +anchor-lang = "0.30.1" +anchor-spl = "0.30.1" switchboard-v2 = "0.4.0" ``` @@ -535,7 +535,7 @@ mod burry_escrow { init_vrf_client_handler(ctx) } - pub fn get_out_of_jail(ctx: Context, params: RequestRandomnessParams) -> Result<()>{ + pub fn get_out_of_jail(ctx: Context, params: RequestRandomnessParams) -> Result<()>{ get_out_of_jail_handler(ctx, params) } @@ -592,7 +592,7 @@ about `zero_copy`, take a look at our pub struct VrfClientState { pub bump: u8, pub result_buffer: [u8; 32], - pub dice_type: u8, // 6 sided + pub dice_type: u8, // 6 sided pub die_result_1: u8, pub die_result_2: u8, pub timestamp: i64, @@ -638,10 +638,10 @@ pub struct VrfClientState { } ``` -#### 5. Errors.rs +#### 5. Error.rs Next, let's take a quick pit stop and add one last error -`InvalidVrfAuthorityError` to `errors.rs`. We'll use this when the VRF authority +`InvalidVrfAuthorityError` to `error.rs`. We'll use this when the VRF authority is incorrect. ```rust @@ -758,7 +758,7 @@ pub struct InitVrfClient<'info> { #[account( init, seeds = [ - VRF_STATE_SEED, + VRF_STATE_SEED, user.key.as_ref(), escrow_account.key().as_ref(), vrf.key().as_ref(), @@ -971,7 +971,7 @@ pub fn get_out_of_jail_handler(ctx: Context, params: RequestR let escrow_key = ctx.accounts.escrow_account.key(); let user_key = ctx.accounts.user.key(); let state_seeds: &[&[&[u8]]] = &[&[ - &VRF_STATE_SEED, + &VRF_STATE_SEED, user_key.as_ref(), escrow_key.as_ref(), vrf_key.as_ref(), @@ -1048,7 +1048,7 @@ the randomness in the account. ```rust // inside consume_randomness.rs -pub fn consume_randomness_handler(ctx: Context) -> Result <()> { +pub fn consume_randomness_handler(ctx: Context) -> Result<()> { msg!("Consuming randomness..."); let vrf = ctx.accounts.vrf.load()?; @@ -1070,7 +1070,7 @@ randomness and dice rolls within it. We also want to check that the randomness is stale. ```rust -pub fn consume_randomness_handler(ctx: Context) -> Result <()> { +pub fn consume_randomness_handler(ctx: Context) -> Result<()> { msg!("Successfully consumed randomness."); let vrf = ctx.accounts.vrf.load()?; From ed684d0fcd44be5f9b8e61fbaa736a1fc0c6b191 Mon Sep 17 00:00:00 2001 From: metasal <54984459+metasal1@users.noreply.github.com> Date: Sat, 30 Nov 2024 07:56:15 +1100 Subject: [PATCH 205/206] Correct meaning of IDL (#657) --- docs/programs/anchor/idl.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/programs/anchor/idl.md b/docs/programs/anchor/idl.md index 2df2e37a3..79e42c8f7 100644 --- a/docs/programs/anchor/idl.md +++ b/docs/programs/anchor/idl.md @@ -1,13 +1,13 @@ --- title: IDL File description: - Learn about the Interface Description Language (IDL) file in Anchor, its + Learn about the Interface Definition Language (IDL) file in Anchor, its purpose, benefits, and how it simplifies program-client interactions sidebarLabel: IDL File sidebarSortOrder: 2 --- -An Interface Description Language (IDL) file provides a standardized JSON file +An Interface Definition Language (IDL) file provides a standardized JSON file describing the program's instructions and accounts. This file simplifies the process of integrating your on-chain program with client applications. From a7d36edb90f739537be0b2959bc70864eae02c52 Mon Sep 17 00:00:00 2001 From: Nate <37544626+NaeNate@users.noreply.github.com> Date: Sun, 1 Dec 2024 15:18:15 -0800 Subject: [PATCH 206/206] Update installation.md (#659) --- docs/intro/installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro/installation.md b/docs/intro/installation.md index c18dabeaf..0f155d59c 100644 --- a/docs/intro/installation.md +++ b/docs/intro/installation.md @@ -504,7 +504,7 @@ Keypair Path: /Users/test/.config/solana/id.json Commitment: confirmed ``` -The RPC URL and Websocket URL specific the Solana cluster the CLI will make +The RPC URL and Websocket URL specify the Solana cluster the CLI will make requests to. By default this will be mainnet-beta. You can update the Solana CLI cluster using the following commands: