From 6bbf63fe695a3a97c91da5c3a214fafa83fabfa7 Mon Sep 17 00:00:00 2001 From: Oluwatomilola Date: Tue, 3 Mar 2026 02:02:46 +0100 Subject: [PATCH 1/6] feat: integrate savings widget --- .gitignore | 3 +- src/components/Faq/Faq.tsx | 2 +- src/components/Faq/copies.tsx | 41 +++++++++ src/components/SideBar.tsx | 5 + src/index.tsx | 3 +- src/language/locales/af/catalog.po | 20 ++-- src/language/locales/ar/catalog.po | 20 ++-- src/language/locales/ca/catalog.po | 20 ++-- src/language/locales/cs/catalog.po | 20 ++-- src/language/locales/da/catalog.po | 20 ++-- src/language/locales/de/catalog.po | 20 ++-- src/language/locales/el/catalog.po | 20 ++-- src/language/locales/en/catalog.po | 20 ++-- src/language/locales/es-419/catalog.po | 20 ++-- src/language/locales/es/catalog.po | 20 ++-- src/language/locales/fi/catalog.po | 20 ++-- src/language/locales/fr/catalog.po | 20 ++-- src/language/locales/he/catalog.po | 20 ++-- src/language/locales/hi/catalog.po | 20 ++-- src/language/locales/hu/catalog.po | 20 ++-- src/language/locales/it/catalog.po | 20 ++-- src/language/locales/ja/catalog.po | 20 ++-- src/language/locales/ko/catalog.po | 20 ++-- src/language/locales/nl/catalog.po | 20 ++-- src/language/locales/no/catalog.po | 20 ++-- src/language/locales/pl/catalog.po | 20 ++-- src/language/locales/pt-BR/catalog.po | 20 ++-- src/language/locales/pt/catalog.po | 20 ++-- src/language/locales/ro/catalog.po | 20 ++-- src/language/locales/ru/catalog.po | 20 ++-- src/language/locales/sr/catalog.po | 20 ++-- src/language/locales/sv/catalog.po | 20 ++-- src/language/locales/tr/catalog.po | 20 ++-- src/language/locales/uk/catalog.po | 20 ++-- src/language/locales/vi/catalog.po | 20 ++-- src/language/locales/zh-CN/catalog.po | 20 ++-- src/language/locales/zh-TW/catalog.po | 20 ++-- src/language/locales/zh/catalog.po | 20 ++-- src/pages/gd/Savings/index.tsx | 121 +++++++++++++++++++++++++ src/routes.tsx | 2 + 40 files changed, 636 insertions(+), 201 deletions(-) create mode 100644 src/pages/gd/Savings/index.tsx diff --git a/.gitignore b/.gitignore index 62c301dde..b1cf1d2a9 100644 --- a/.gitignore +++ b/.gitignore @@ -56,4 +56,5 @@ deploy.sh yalc.lock .continueignore analice.html -e2e.log \ No newline at end of file +e2e.logTEST_SAVINGS_INTEGRATION.html +TEST_SAVINGS_INTEGRATION.html diff --git a/src/components/Faq/Faq.tsx b/src/components/Faq/Faq.tsx index 057ea04ec..194d68cf1 100644 --- a/src/components/Faq/Faq.tsx +++ b/src/components/Faq/Faq.tsx @@ -7,7 +7,7 @@ import MarkDown from '@ronradtke/react-native-markdown-display' import { faqs } from './copies' -export type FaqType = 'swap' | 'buy' | 'bridge' | 'goodid' | 'claim' | 'reserve' +export type FaqType = 'swap' | 'buy' | 'bridge' | 'goodid' | 'claim' | 'reserve' | 'savings' const FaqItem = ({ id, question, answer, links, AltLink }) => { const { isDesktopView } = useScreenSize() diff --git a/src/components/Faq/copies.tsx b/src/components/Faq/copies.tsx index 18e3f10e1..e28fbb944 100644 --- a/src/components/Faq/copies.tsx +++ b/src/components/Faq/copies.tsx @@ -342,6 +342,46 @@ const faqReserveCopy: FaqItemCopy[] = [ }, ] +const faqSavingsCopy: FaqItemCopy[] = [ + { + id: 'whatissavings', + question: `What is Savings?`, + answer: `Savings is a way to earn rewards by lending or staking your GoodDollars. You can lock your digital assets and generate passive income over time through yield-bearing products.`, + }, + { + id: 'howsavingswork', + question: `How does Savings work?`, + answer: `When you use the Savings product, your assets are deposited into a yield-generating protocol. Your funds work for you by earning rewards, which are added to your balance periodically. The exact mechanism depends on the underlying savings product.`, + }, + { + id: 'savingrisk', + question: `What are the risks of using Savings?`, + answer: `Savings products carry smart contract risk and market risk. Please review the terms and risks of the specific savings protocol before depositing. Your funds are subject to the security of the underlying smart contracts.`, + }, + { + id: 'withdrawsavings', + question: `Can I withdraw my funds anytime?`, + answer: `Withdrawal terms depend on the specific savings product. Some products may have lock-up periods or redemption schedules. Check the product details for specific terms before depositing.`, + }, + { + id: 'savingyield', + question: `How is my yield calculated?`, + answer: `Yield is calculated based on the APY (Annual Percentage Yield) advertised by the savings product. Your actual returns depend on the amount deposited, duration, and any applicable fees or terms.`, + }, + { + id: 'savingsfees', + question: `Are there fees for using Savings?`, + answer: `Fees may apply depending on the specific savings product. You can review the fee structure and APY details of each product before making a deposit. GoodDapp may not charge additional fees on top of protocol fees.`, + links: [ + { + href: 'https://docs.gooddollar.org/savings', + text: 'To learn more about Savings products, visit the', + linkText: 'GoodDollar Documentation', + }, + ], + }, +] + export const faqs = { swap: faqSwapCopy, buy: faqBuyCopy, @@ -349,4 +389,5 @@ export const faqs = { goodid: faqGoodIDCopy, claim: faqClaimCopy, reserve: faqReserveCopy, + savings: faqSavingsCopy, } diff --git a/src/components/SideBar.tsx b/src/components/SideBar.tsx index 1a68825b2..34434f7c4 100644 --- a/src/components/SideBar.tsx +++ b/src/components/SideBar.tsx @@ -174,6 +174,11 @@ export default function SideBar({ mobile, closeSidebar }: { mobile?: boolean; cl text: 'Claim', show: true, }, + { + route: '/savings', + text: 'Savings', + show: true, + }, { route: '/news', text: 'News', diff --git a/src/index.tsx b/src/index.tsx index 0e3552bb0..9232dcd72 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -85,9 +85,10 @@ const enableServiceWorker = const ProviderWrapper = ({ children }) => ( diff --git a/src/language/locales/af/catalog.po b/src/language/locales/af/catalog.po index 40c750d67..b25ebf9c3 100644 --- a/src/language/locales/af/catalog.po +++ b/src/language/locales/af/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "misluk om te laai" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "Glip Verdraagsaamheid" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "Transaksie is gestuur na die blockchain" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "Kyk op verkenner" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/ar/catalog.po b/src/language/locales/ar/catalog.po index 440f0c38d..ff65b275b 100644 --- a/src/language/locales/ar/catalog.po +++ b/src/language/locales/ar/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "فشل التحميل" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "تسامح الانزلاق" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "تم إرسال المعاملة إلى blockchain" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "عرض على المستكشف" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/ca/catalog.po b/src/language/locales/ca/catalog.po index a31e3ae2e..b007f56e0 100644 --- a/src/language/locales/ca/catalog.po +++ b/src/language/locales/ca/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/cs/catalog.po b/src/language/locales/cs/catalog.po index 694122b18..c525376d7 100644 --- a/src/language/locales/cs/catalog.po +++ b/src/language/locales/cs/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/da/catalog.po b/src/language/locales/da/catalog.po index 4b8fa643c..7e9a6479a 100644 --- a/src/language/locales/da/catalog.po +++ b/src/language/locales/da/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/de/catalog.po b/src/language/locales/de/catalog.po index 9eafb12f3..c57c6fc10 100644 --- a/src/language/locales/de/catalog.po +++ b/src/language/locales/de/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "Laden fehlgeschlagen" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "Schlupftoleranz" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "Die Transaktion wurde an den Blockchain geschickt" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "Ansicht auf Explorer" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "Rücknahme von Mitteln von {0}" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/el/catalog.po b/src/language/locales/el/catalog.po index 0b300365c..372889dc3 100644 --- a/src/language/locales/el/catalog.po +++ b/src/language/locales/el/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/en/catalog.po b/src/language/locales/en/catalog.po index 51490f8ab..7f28cf042 100644 --- a/src/language/locales/en/catalog.po +++ b/src/language/locales/en/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/es-419/catalog.po b/src/language/locales/es-419/catalog.po index 3bd8ac058..4eb37d02b 100644 --- a/src/language/locales/es-419/catalog.po +++ b/src/language/locales/es-419/catalog.po @@ -304,6 +304,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "" @@ -373,7 +381,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -615,7 +623,7 @@ msgstr "" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -856,11 +864,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -874,7 +882,7 @@ msgstr "" msgid "View on explorer" msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -933,7 +941,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/es/catalog.po b/src/language/locales/es/catalog.po index 96814ede8..712bc9730 100644 --- a/src/language/locales/es/catalog.po +++ b/src/language/locales/es/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "falló al cargar" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "Tolerancia al deslizamiento" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "La transacción fue enviada al bloque de bloques." msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "Ver en el explorador" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "Retiró fondos de {0}" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/fi/catalog.po b/src/language/locales/fi/catalog.po index 12ec0f1e4..398c834e9 100644 --- a/src/language/locales/fi/catalog.po +++ b/src/language/locales/fi/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/fr/catalog.po b/src/language/locales/fr/catalog.po index a245575ab..da98915c3 100644 --- a/src/language/locales/fr/catalog.po +++ b/src/language/locales/fr/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "échec du chargement" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "Tolérance de slippage" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "Voir sur l'explorateur" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "A retiré des fonds de {0}" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/he/catalog.po b/src/language/locales/he/catalog.po index ec574a1e0..8fda79720 100644 --- a/src/language/locales/he/catalog.po +++ b/src/language/locales/he/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "נכשלה בטעינה" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "תנודת מחיר מקובלת" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "העסקה נשלחה אל בלוקשין" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "הצג על אקספלורר" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "משכו כספים מ {0}" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/hi/catalog.po b/src/language/locales/hi/catalog.po index d4b84d6b8..4716be939 100644 --- a/src/language/locales/hi/catalog.po +++ b/src/language/locales/hi/catalog.po @@ -1709,6 +1709,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "लोड करने में विफल" @@ -1778,7 +1786,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -2038,7 +2046,7 @@ msgstr "स्लिपेज टॉलरेंस" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -2291,11 +2299,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -2313,7 +2321,7 @@ msgstr "एक्सप्लोरर पर देखें" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -2396,7 +2404,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/hu/catalog.po b/src/language/locales/hu/catalog.po index a6e77a8f0..4fcf49e00 100644 --- a/src/language/locales/hu/catalog.po +++ b/src/language/locales/hu/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/it/catalog.po b/src/language/locales/it/catalog.po index 1f20a1a1d..f3b369744 100644 --- a/src/language/locales/it/catalog.po +++ b/src/language/locales/it/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "impossibile caricare" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "Tolleranza slippage" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "La transazione è stata inviata al blockchain" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "Visualizza sull'explorer" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "Ritirato i fondi da {0}" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/ja/catalog.po b/src/language/locales/ja/catalog.po index ffd8e3d58..6be45fac7 100644 --- a/src/language/locales/ja/catalog.po +++ b/src/language/locales/ja/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "読み込みに失敗しました" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "スリッページ許容値" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "エクスプローラーで表示" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "{0}から資金を撤回しました" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/ko/catalog.po b/src/language/locales/ko/catalog.po index 0675a5dc9..9bcad4dfd 100644 --- a/src/language/locales/ko/catalog.po +++ b/src/language/locales/ko/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "불러 오지 못했습니다" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "미끄러짐 공차" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "탐색기에서보기" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "{0}에서 철수 된 자금" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/nl/catalog.po b/src/language/locales/nl/catalog.po index d52a26c37..ebf9384f7 100644 --- a/src/language/locales/nl/catalog.po +++ b/src/language/locales/nl/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/no/catalog.po b/src/language/locales/no/catalog.po index 3d9e92f3a..7956951ae 100644 --- a/src/language/locales/no/catalog.po +++ b/src/language/locales/no/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/pl/catalog.po b/src/language/locales/pl/catalog.po index 65d919504..8d1a322fb 100644 --- a/src/language/locales/pl/catalog.po +++ b/src/language/locales/pl/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/pt-BR/catalog.po b/src/language/locales/pt-BR/catalog.po index 469b934d5..006711011 100644 --- a/src/language/locales/pt-BR/catalog.po +++ b/src/language/locales/pt-BR/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "Falha ao carregar" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "Tolerância de deslizamento" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "Ver no explorer" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/pt/catalog.po b/src/language/locales/pt/catalog.po index ffa132cc1..91d3a7cbf 100644 --- a/src/language/locales/pt/catalog.po +++ b/src/language/locales/pt/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/ro/catalog.po b/src/language/locales/ro/catalog.po index 0e9b881ce..9a3481157 100644 --- a/src/language/locales/ro/catalog.po +++ b/src/language/locales/ro/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "incarcarea a esuat" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "Toleranță la alunecare" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "Tranzacția a fost trimisă la blockchain" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "Vizualizare pe explorator" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "A retras fonduri de la {0}" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/ru/catalog.po b/src/language/locales/ru/catalog.po index d1ad7dadf..ae1f4f0b9 100644 --- a/src/language/locales/ru/catalog.po +++ b/src/language/locales/ru/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "ошибка загрузки" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "Допуск по проскальзыванию" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "Транзакция была отправлена в блокчане" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "Посмотреть в проводнике" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "Вышли средства из {0}" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/sr/catalog.po b/src/language/locales/sr/catalog.po index d1bf75405..9cc0eb746 100644 --- a/src/language/locales/sr/catalog.po +++ b/src/language/locales/sr/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/sv/catalog.po b/src/language/locales/sv/catalog.po index 6d5961c64..501f60b6a 100644 --- a/src/language/locales/sv/catalog.po +++ b/src/language/locales/sv/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/tr/catalog.po b/src/language/locales/tr/catalog.po index ac9d715a7..0f34c435e 100644 --- a/src/language/locales/tr/catalog.po +++ b/src/language/locales/tr/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/uk/catalog.po b/src/language/locales/uk/catalog.po index 395b6652c..9391426fc 100644 --- a/src/language/locales/uk/catalog.po +++ b/src/language/locales/uk/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/vi/catalog.po b/src/language/locales/vi/catalog.po index ea3c6114e..df54f784f 100644 --- a/src/language/locales/vi/catalog.po +++ b/src/language/locales/vi/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "không tải được" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "Khả năng chịu trượt" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "Giao dịch đã được gửi đến Blockchain" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "Xem trên explorer" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "Đã rút tiền từ {0}" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/zh-CN/catalog.po b/src/language/locales/zh-CN/catalog.po index 898118bbc..20c5bf14b 100644 --- a/src/language/locales/zh-CN/catalog.po +++ b/src/language/locales/zh-CN/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "加载失败" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "可容忍滑点" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "交易被发送到区块链" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "在浏览器查看" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "退出{0}的资金" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/zh-TW/catalog.po b/src/language/locales/zh-TW/catalog.po index d9a03f6f8..c0a13800d 100644 --- a/src/language/locales/zh-TW/catalog.po +++ b/src/language/locales/zh-TW/catalog.po @@ -2954,6 +2954,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "加載失敗" @@ -3023,7 +3031,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -3283,7 +3291,7 @@ msgstr "可容忍滑點" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3536,11 +3544,11 @@ msgstr "交易被發送到區塊鏈" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3558,7 +3566,7 @@ msgstr "在瀏覽器查看" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3641,7 +3649,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "退出{0}的資金" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/language/locales/zh/catalog.po b/src/language/locales/zh/catalog.po index 01c920bdc..d0830f330 100644 --- a/src/language/locales/zh/catalog.po +++ b/src/language/locales/zh/catalog.po @@ -2425,6 +2425,14 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" +#: src/pages/gd/Savings/index.tsx:14 +msgid "" +"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Savings provides a simple way to generate yield on your digital assets.\n" +"Securely lock your assets and watch them grow over time.\n" +"Please be patient, loading information may take some time." +msgstr "" + #: src/components/Gas/index.tsx:12 msgid "failed to load" msgstr "" @@ -2494,7 +2502,7 @@ msgstr "" msgid "GoodDollar creates free money as a public good, G$ tokens, which you can collect daily." msgstr "" -#: src/components/SideBar.tsx:230 +#: src/components/SideBar.tsx:235 msgid "GoodDollar Main Bridge" msgstr "" @@ -2754,7 +2762,7 @@ msgstr "" msgid "Social APY" msgstr "" -#: src/components/SideBar.tsx:237 +#: src/components/SideBar.tsx:242 msgid "Squid Router" msgstr "" @@ -3007,11 +3015,11 @@ msgstr "" msgid "TYPE" msgstr "" -#: src/components/SideBar.tsx:206 +#: src/components/SideBar.tsx:211 msgid "Uniswap (Celo)" msgstr "" -#: src/components/SideBar.tsx:193 +#: src/components/SideBar.tsx:198 msgid "Uniswap (widget)" msgstr "" @@ -3029,7 +3037,7 @@ msgstr "" #~ msgid "View transaction on explorer" #~ msgstr "" -#: src/components/SideBar.tsx:199 +#: src/components/SideBar.tsx:204 msgid "Voltage Finance (Fuse)" msgstr "" @@ -3112,7 +3120,7 @@ msgstr "" msgid "Withdrew funds from {0}" msgstr "" -#: src/components/SideBar.tsx:213 +#: src/components/SideBar.tsx:218 msgid "Xswap (XDC)" msgstr "" diff --git a/src/pages/gd/Savings/index.tsx b/src/pages/gd/Savings/index.tsx new file mode 100644 index 000000000..582023536 --- /dev/null +++ b/src/pages/gd/Savings/index.tsx @@ -0,0 +1,121 @@ +import React, { useEffect, useRef, useState } from 'react' +import { VStack, Text, useBreakpointValue, Spinner } from 'native-base' +import { i18n } from '@lingui/core' +import { t } from '@lingui/macro' +import { useEthers } from '@usedapp/core' + +import { PageLayout } from 'components/Layout/PageLayout' + +const SavingsExplanation = () => ( + + + {i18n._( + t`Earn rewards by saving your GoodDollars with Ubeswap savings products! +Savings provides a simple way to generate yield on your digital assets. +Securely lock your assets and watch them grow over time. +Please be patient, loading information may take some time.` + )} + + +) + +const SavingsWidgetContainer: React.FC = () => { + const containerRef = useRef(null) + const [isLoading, setIsLoading] = useState(true) + const [hasError, setHasError] = useState(false) + const { account } = useEthers() + + const containerStyles = useBreakpointValue({ + base: { + maxWidth: 350, + }, + sm: { + maxWidth: '100%', + }, + }) + + useEffect(() => { + const loadWidget = async () => { + try { + setIsLoading(true) + setHasError(false) + + // Try to load the savings widget script from CDN + // The widget is available as a web component from GoodSDKs/savings-widget + const script = document.createElement('script') + script.src = 'https://unpkg.com/@gooddollar/savings-widget@latest/dist/index.js' + script.async = true + script.defer = true + + script.onload = () => { + setIsLoading(false) + } + + script.onerror = () => { + console.error('Failed to load savings widget from CDN') + setHasError(true) + setIsLoading(false) + } + + if (containerRef.current) { + containerRef.current.appendChild(script) + } + } catch (error) { + console.error('Error loading savings widget:', error) + setHasError(true) + setIsLoading(false) + } + } + + loadWidget() + + return () => { + // Cleanup + if (containerRef.current) { + const scripts = containerRef.current.querySelectorAll('script') + scripts.forEach((script) => script.remove()) + } + } + }, [account]) + + return ( + + {isLoading && ( + + + + Loading savings widget... + + + )} + {hasError && ( + + + Unable to load the savings widget. Please try again later. + + + )} +
+ + ) +} + +const Savings: React.FC = () => { + return ( + + + + + ) +} + +export default Savings + diff --git a/src/routes.tsx b/src/routes.tsx index fc89552ec..f8c9afd4c 100644 --- a/src/routes.tsx +++ b/src/routes.tsx @@ -16,6 +16,7 @@ const MicroBridge = lazy(() => import('./pages/gd/MicroBridge')) const Claim = lazy(() => import('./pages/gd/Claim/')) const GoodId = lazy(() => import('./pages/gd/GoodId')) const BuyGd = lazy(() => import('./pages/gd/BuyGD')) +const Savings = lazy(() => import('./pages/gd/Savings')) const NewsFeedPage = lazy(() => import('./pages/gd/News')) const RoutesWrapper = () => { @@ -54,6 +55,7 @@ function Routes(): JSX.Element { + From a7e9668e82d5e561fa4f834c90d9dc48e7ed0589 Mon Sep 17 00:00:00 2001 From: Oluwatomilola Date: Tue, 3 Mar 2026 02:18:51 +0100 Subject: [PATCH 2/6] feat: integrate ubeswap savings widget #619 - Add Savings page component with widget integration - Add /savings route to router - Add Savings menu item to sidebar - Add 6 FAQ items for Savings section - Use split-screen layout matching other pages --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index b1cf1d2a9..791e3f0b7 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,6 @@ yalc.lock analice.html e2e.logTEST_SAVINGS_INTEGRATION.html TEST_SAVINGS_INTEGRATION.html +SAVINGS_INTEGRATION_TEST.html +catalog.po +src/language/locales/sr/catalog.po \ No newline at end of file From 98b06328fef3774a8f7ea89409490cf4850b23a5 Mon Sep 17 00:00:00 2001 From: Oluwatomilola Date: Thu, 5 Mar 2026 18:09:24 +0100 Subject: [PATCH 3/6] feat: integrate savings widget --- public/index.global.js | 544 +++++++++++++++++++++++++ src/language/locales/af/catalog.po | 12 +- src/language/locales/ar/catalog.po | 12 +- src/language/locales/ca/catalog.po | 12 +- src/language/locales/cs/catalog.po | 12 +- src/language/locales/da/catalog.po | 12 +- src/language/locales/de/catalog.po | 12 +- src/language/locales/el/catalog.po | 12 +- src/language/locales/en/catalog.po | 12 +- src/language/locales/es-419/catalog.po | 12 +- src/language/locales/es/catalog.po | 12 +- src/language/locales/fi/catalog.po | 12 +- src/language/locales/fr/catalog.po | 12 +- src/language/locales/he/catalog.po | 12 +- src/language/locales/hi/catalog.po | 12 +- src/language/locales/hu/catalog.po | 12 +- src/language/locales/it/catalog.po | 12 +- src/language/locales/ja/catalog.po | 12 +- src/language/locales/ko/catalog.po | 12 +- src/language/locales/nl/catalog.po | 12 +- src/language/locales/no/catalog.po | 12 +- src/language/locales/pl/catalog.po | 12 +- src/language/locales/pt-BR/catalog.po | 12 +- src/language/locales/pt/catalog.po | 12 +- src/language/locales/ro/catalog.po | 12 +- src/language/locales/ru/catalog.po | 12 +- src/language/locales/sr/catalog.po | 12 +- src/language/locales/sv/catalog.po | 12 +- src/language/locales/tr/catalog.po | 12 +- src/language/locales/uk/catalog.po | 12 +- src/language/locales/vi/catalog.po | 12 +- src/language/locales/zh-CN/catalog.po | 12 +- src/language/locales/zh-TW/catalog.po | 12 +- src/language/locales/zh/catalog.po | 12 +- src/pages/Savings/index.global.js | 544 +++++++++++++++++++++++++ src/pages/gd/Savings/index.tsx | 111 +++-- 36 files changed, 1506 insertions(+), 89 deletions(-) create mode 100644 public/index.global.js create mode 100644 src/pages/Savings/index.global.js diff --git a/public/index.global.js b/public/index.global.js new file mode 100644 index 000000000..cb78b2bb7 --- /dev/null +++ b/public/index.global.js @@ -0,0 +1,544 @@ +"use strict";var GooddollarSavingsWidget=(()=>{var $i=Object.defineProperty;var wl=Object.getOwnPropertyDescriptor;var z0=Object.getOwnPropertyNames;var U0=Object.prototype.hasOwnProperty;var E=(e,t)=>()=>(e&&(t=e(e=0)),t);var np=(e,t)=>{for(var r in t)$i(e,r,{get:t[r],enumerable:!0})},L0=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of z0(t))!U0.call(e,o)&&o!==r&&$i(e,o,{get:()=>t[o],enumerable:!(n=wl(t,o))||n.enumerable});return e};var H0=e=>L0($i({},"__esModule",{value:!0}),e),Oe=(e,t,r,n)=>{for(var o=n>1?void 0:n?wl(t,r):t,s=e.length-1,i;s>=0;s--)(i=e[s])&&(o=(n?i(t,r,o):i(o))||o);return n&&o&&$i(t,r,o),o};var zl,Ul=E(()=>{"use strict";zl="1.0.8"});var Ae,qn=E(()=>{"use strict";Ul();Ae=class e extends Error{constructor(t,r={}){let n=r.cause instanceof e?r.cause.details:r.cause?.message?r.cause.message:r.details,o=r.cause instanceof e&&r.cause.docsPath||r.docsPath,s=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...o?[`Docs: https://abitype.dev${o}`]:[],...n?[`Details: ${n}`]:[],`Version: abitype@${zl}`].join(` +`);super(s),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),r.cause&&(this.cause=r.cause),this.details=n,this.docsPath=o,this.metaMessages=r.metaMessages,this.shortMessage=t}}});function at(e,t){return e.exec(t)?.groups}var xp,bp,Li,Ps=E(()=>{"use strict";xp=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,bp=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,Li=/^\(.+?\).*?$/});function Hi(e){let t=e.type;if(Ll.test(e.type)&&"components"in e){t="(";let r=e.components.length;for(let o=0;o{"use strict";Ps();Ll=/^tuple(?(\[(\d*)\])*)$/});function Vn(e){let t="",r=e.length;for(let n=0;n{"use strict";Hl()});function dn(e){return e.type==="function"?`function ${e.name}(${Vn(e.inputs)})${e.stateMutability&&e.stateMutability!=="nonpayable"?` ${e.stateMutability}`:""}${e.outputs?.length?` returns (${Vn(e.outputs)})`:""}`:e.type==="event"?`event ${e.name}(${Vn(e.inputs)})`:e.type==="error"?`error ${e.name}(${Vn(e.inputs)})`:e.type==="constructor"?`constructor(${Vn(e.inputs)})${e.stateMutability==="payable"?" payable":""}`:e.type==="fallback"?`fallback() external${e.stateMutability==="payable"?" payable":""}`:"receive() external payable"}var jl=E(()=>{"use strict";Dl()});function Vl(e){return ql.test(e)}function Gl(e){return at(ql,e)}function Kl(e){return Wl.test(e)}function Yl(e){return at(Wl,e)}function Jl(e){return Zl.test(e)}function Xl(e){return at(Zl,e)}function Gn(e){return Ql.test(e)}function em(e){return at(Ql,e)}function rm(e){return tm.test(e)}function nm(e){return at(tm,e)}function sm(e){return om.test(e)}function im(e){return at(om,e)}function am(e){return nb.test(e)}var ql,Wl,Zl,Ql,tm,om,nb,cm,Di,ks=E(()=>{"use strict";Ps();ql=/^error (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)$/;Wl=/^event (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)$/;Zl=/^function (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)(?: (?external|public{1}))?(?: (?pure|view|nonpayable|payable{1}))?(?: returns\s?\((?.*?)\))?$/;Ql=/^struct (?[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?.*?)\}$/;tm=/^constructor\((?.*?)\)(?:\s(?payable{1}))?$/;om=/^fallback\(\) external(?:\s(?payable{1}))?$/;nb=/^receive\(\) external payable$/;cm=new Set(["indexed"]),Di=new Set(["calldata","memory","storage"])});var ji,qi,Vi,Gi=E(()=>{"use strict";qn();ji=class extends Ae{constructor({signature:t}){super("Failed to parse ABI item.",{details:`parseAbiItem(${JSON.stringify(t,null,2)})`,docsPath:"/api/human#parseabiitem-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiItemError"})}},qi=class extends Ae{constructor({type:t}){super("Unknown type.",{metaMessages:[`Type "${t}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}},Vi=class extends Ae{constructor({type:t}){super("Unknown type.",{metaMessages:[`Type "${t}" is not a valid ABI type.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}}});var Wi,Ki,Yi,Zi,Ji,gp=E(()=>{"use strict";qn();Wi=class extends Ae{constructor({param:t}){super("Invalid ABI parameter.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}},Ki=class extends Ae{constructor({param:t,name:r}){super("Invalid ABI parameter.",{details:t,metaMessages:[`"${r}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}},Yi=class extends Ae{constructor({param:t,type:r,modifier:n}){super("Invalid ABI parameter.",{details:t,metaMessages:[`Modifier "${n}" not allowed${r?` in "${r}" type`:""}.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}},Zi=class extends Ae{constructor({param:t,type:r,modifier:n}){super("Invalid ABI parameter.",{details:t,metaMessages:[`Modifier "${n}" not allowed${r?` in "${r}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${n}" was given.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}},Ji=class extends Ae{constructor({abiParameter:t}){super("Invalid ABI parameter.",{details:JSON.stringify(t,null,2),metaMessages:["ABI parameter type is invalid."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}}});var zt,Xi,Qi,wp=E(()=>{"use strict";qn();zt=class extends Ae{constructor({signature:t,type:r}){super(`Invalid ${r} signature.`,{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}},Xi=class extends Ae{constructor({signature:t}){super("Unknown signature.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}},Qi=class extends Ae{constructor({signature:t}){super("Invalid struct signature.",{details:t,metaMessages:["No properties exist."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}}});var ea,um=E(()=>{"use strict";qn();ea=class extends Ae{constructor({type:t}){super("Circular reference detected.",{metaMessages:[`Struct "${t}" is a circular reference.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}}});var ta,pm=E(()=>{"use strict";qn();ta=class extends Ae{constructor({current:t,depth:r}){super("Unbalanced parentheses.",{metaMessages:[`"${t.trim()}" has too many ${r>0?"opening":"closing"} parentheses.`],details:`Depth "${r}"`}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}}});function fm(e,t,r){let n="";if(r)for(let o of Object.entries(r)){if(!o)continue;let s="";for(let i of o[1])s+=`[${i.type}${i.name?`:${i.name}`:""}]`;n+=`(${o[0]}{${s}})`}return t?`${t}:${e}${n}`:e}var ra,lm=E(()=>{"use strict";ra=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]])});function Bs(e,t={}){if(Jl(e))return ob(e,t);if(Kl(e))return sb(e,t);if(Vl(e))return ib(e,t);if(rm(e))return ab(e,t);if(sm(e))return cb(e);if(am(e))return{type:"receive",stateMutability:"payable"};throw new Xi({signature:e})}function ob(e,t={}){let r=Xl(e);if(!r)throw new zt({signature:e,type:"function"});let n=Tt(r.parameters),o=[],s=n.length;for(let a=0;a{"use strict";Ps();Gi();gp();wp();pm();lm();ks();ub=/^(?[a-zA-Z$_][a-zA-Z0-9$_]*)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,pb=/^\((?.+?)\)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,fb=/^u?int$/;lb=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/});function oa(e){let t={},r=e.length;for(let i=0;i{"use strict";Ps();Gi();gp();wp();um();ks();na();hb=/^(?[a-zA-Z$_][a-zA-Z0-9$_]*)(?(?:\[\d*?\])+?)?$/});function sa(e){let t=oa(e),r=[],n=e.length;for(let o=0;o{"use strict";ks();Ep();na()});function ia(e){let t;if(typeof e=="string")t=Bs(e);else{let r=oa(e),n=e.length;for(let o=0;o{"use strict";Gi();ks();Ep();na()});var aa=E(()=>{"use strict";jl();dm();hm()});function Ce(e,{includeName:t=!1}={}){if(e.type!=="function"&&e.type!=="event"&&e.type!=="error")throw new ca(e.type);return`${e.name}(${Rs(e.inputs,{includeName:t})})`}function Rs(e,{includeName:t=!1}={}){return e?e.map(r=>xb(r,{includeName:t})).join(t?", ":","):""}function xb(e,{includeName:t}){return e.type.startsWith("tuple")?`(${Rs(e.components,{includeName:t})})${e.type.slice(5)}`:e.type+(t&&e.name?` ${e.name}`:"")}var tr=E(()=>{"use strict";ye()});function we(e,{strict:t=!0}={}){return!e||typeof e!="string"?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}var St=E(()=>{"use strict"});function ee(e){return we(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}var mt=E(()=>{"use strict";St()});var Ap,ym=E(()=>{"use strict";Ap="2.28.4"});function xm(e,t){return t?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause!==void 0?xm(e.cause,t):t?null:e}var Tp,g,W=E(()=>{"use strict";ym();Tp={getDocsUrl:({docsBaseUrl:e,docsPath:t="",docsSlug:r})=>t?`${e??"https://viem.sh"}${t}${r?`#${r}`:""}`:void 0,version:`viem@${Ap}`},g=class e extends Error{constructor(t,r={}){let n=r.cause instanceof e?r.cause.details:r.cause?.message?r.cause.message:r.details,o=r.cause instanceof e&&r.cause.docsPath||r.docsPath,s=Tp.getDocsUrl?.({...r,docsPath:o}),i=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...s?[`Docs: ${s}`]:[],...n?[`Details: ${n}`]:[],...Tp.version?[`Version: ${Tp.version}`]:[]].join(` +`);super(i,r.cause?{cause:r.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=n,this.docsPath=o,this.metaMessages=r.metaMessages,this.name=r.name??this.name,this.shortMessage=t,this.version=Ap}walk(t){return xm(this,t)}}});var ua,_s,Wn,dt,pa,fa,la,ma,$s,Kn,da,Yn,Ns,Ct,Zn,ha,ya,xa,It,Ut,ba,ga,Jn,ca,ye=E(()=>{"use strict";tr();mt();W();ua=class extends g{constructor({docsPath:t}){super(["A constructor was not found on the ABI.","Make sure you are using the correct ABI and that the constructor exists on it."].join(` +`),{docsPath:t,name:"AbiConstructorNotFoundError"})}},_s=class extends g{constructor({docsPath:t}){super(["Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.","Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists."].join(` +`),{docsPath:t,name:"AbiConstructorParamsNotFoundError"})}},Wn=class extends g{constructor({data:t,params:r,size:n}){super([`Data size of ${n} bytes is too small for given parameters.`].join(` +`),{metaMessages:[`Params: (${Rs(r,{includeName:!0})})`,`Data: ${t} (${n} bytes)`],name:"AbiDecodingDataSizeTooSmallError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=t,this.params=r,this.size=n}},dt=class extends g{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.',{name:"AbiDecodingZeroDataError"})}},pa=class extends g{constructor({expectedLength:t,givenLength:r,type:n}){super([`ABI encoding array length mismatch for type ${n}.`,`Expected length: ${t}`,`Given length: ${r}`].join(` +`),{name:"AbiEncodingArrayLengthMismatchError"})}},fa=class extends g{constructor({expectedSize:t,value:r}){super(`Size of bytes "${r}" (bytes${ee(r)}) does not match expected size (bytes${t}).`,{name:"AbiEncodingBytesSizeMismatchError"})}},la=class extends g{constructor({expectedLength:t,givenLength:r}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${t}`,`Given length (values): ${r}`].join(` +`),{name:"AbiEncodingLengthMismatchError"})}},ma=class extends g{constructor(t,{docsPath:r}){super([`Arguments (\`args\`) were provided to "${t}", but "${t}" on the ABI does not contain any parameters (\`inputs\`).`,"Cannot encode error result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the inputs exist on it."].join(` +`),{docsPath:r,name:"AbiErrorInputsNotFoundError"})}},$s=class extends g{constructor(t,{docsPath:r}={}){super([`Error ${t?`"${t}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it."].join(` +`),{docsPath:r,name:"AbiErrorNotFoundError"})}},Kn=class extends g{constructor(t,{docsPath:r}){super([`Encoded error signature "${t}" not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${t}.`].join(` +`),{docsPath:r,name:"AbiErrorSignatureNotFoundError"}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.signature=t}},da=class extends g{constructor({docsPath:t}){super("Cannot extract event signature from empty topics.",{docsPath:t,name:"AbiEventSignatureEmptyTopicsError"})}},Yn=class extends g{constructor(t,{docsPath:r}){super([`Encoded event signature "${t}" not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${t}.`].join(` +`),{docsPath:r,name:"AbiEventSignatureNotFoundError"})}},Ns=class extends g{constructor(t,{docsPath:r}={}){super([`Event ${t?`"${t}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it."].join(` +`),{docsPath:r,name:"AbiEventNotFoundError"})}},Ct=class extends g{constructor(t,{docsPath:r}={}){super([`Function ${t?`"${t}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it."].join(` +`),{docsPath:r,name:"AbiFunctionNotFoundError"})}},Zn=class extends g{constructor(t,{docsPath:r}){super([`Function "${t}" does not contain any \`outputs\` on ABI.`,"Cannot decode function result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the function exists on it."].join(` +`),{docsPath:r,name:"AbiFunctionOutputsNotFoundError"})}},ha=class extends g{constructor(t,{docsPath:r}){super([`Encoded function signature "${t}" not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${t}.`].join(` +`),{docsPath:r,name:"AbiFunctionSignatureNotFoundError"})}},ya=class extends g{constructor(t,r){super("Found ambiguous types in overloaded ABI items.",{metaMessages:[`\`${t.type}\` in \`${Ce(t.abiItem)}\`, and`,`\`${r.type}\` in \`${Ce(r.abiItem)}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."],name:"AbiItemAmbiguityError"})}},xa=class extends g{constructor({expectedSize:t,givenSize:r}){super(`Expected bytes${t}, got bytes${r}.`,{name:"BytesSizeMismatchError"})}},It=class extends g{constructor({abiItem:t,data:r,params:n,size:o}){super([`Data size of ${o} bytes is too small for non-indexed event parameters.`].join(` +`),{metaMessages:[`Params: (${Rs(n,{includeName:!0})})`,`Data: ${r} (${o} bytes)`],name:"DecodeLogDataMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=t,this.data=r,this.params=n,this.size=o}},Ut=class extends g{constructor({abiItem:t,param:r}){super([`Expected a topic for indexed event parameter${r.name?` "${r.name}"`:""} on event "${Ce(t,{includeName:!0})}".`].join(` +`),{name:"DecodeLogTopicsMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=t}},ba=class extends g{constructor(t,{docsPath:r}){super([`Type "${t}" is not a valid encoding type.`,"Please provide a valid ABI type."].join(` +`),{docsPath:r,name:"InvalidAbiEncodingType"})}},ga=class extends g{constructor(t,{docsPath:r}){super([`Type "${t}" is not a valid decoding type.`,"Please provide a valid ABI type."].join(` +`),{docsPath:r,name:"InvalidAbiDecodingType"})}},Jn=class extends g{constructor(t){super([`Value "${t}" is not a valid array.`].join(` +`),{name:"InvalidArrayError"})}},ca=class extends g{constructor(t){super([`"${t}" is not a valid definition type.`,'Valid types: "function", "event", "error"'].join(` +`),{name:"InvalidDefinitionTypeError"})}}});var Fs,Os,Ms,va=E(()=>{"use strict";W();Fs=class extends g{constructor({offset:t,position:r,size:n}){super(`Slice ${r==="start"?"starting":"ending"} at offset "${t}" is out-of-bounds (size: ${n}).`,{name:"SliceOffsetOutOfBoundsError"})}},Os=class extends g{constructor({size:t,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${t}) exceeds padding size (${r}).`,{name:"SizeExceedsPaddingSizeError"})}},Ms=class extends g{constructor({size:t,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} is expected to be ${r} ${n} long, but is ${t} ${n} long.`,{name:"InvalidBytesLengthError"})}}});function Sr(e,{dir:t,size:r=32}={}){return typeof e=="string"?rr(e,{dir:t,size:r}):bb(e,{dir:t,size:r})}function rr(e,{dir:t,size:r=32}={}){if(r===null)return e;let n=e.replace("0x","");if(n.length>r*2)throw new Os({size:Math.ceil(n.length/2),targetSize:r,type:"hex"});return`0x${n[t==="right"?"padEnd":"padStart"](r*2,"0")}`}function bb(e,{dir:t,size:r=32}={}){if(r===null)return e;if(e.length>r)throw new Os({size:e.length,targetSize:r,type:"bytes"});let n=new Uint8Array(r);for(let o=0;o{"use strict";va()});var Xn,Aa,Ta,Sa,zs=E(()=>{"use strict";W();Xn=class extends g{constructor({max:t,min:r,signed:n,size:o,value:s}){super(`Number "${s}" is not in safe ${o?`${o*8}-bit ${n?"signed":"unsigned"} `:""}integer range ${t?`(${r} to ${t})`:`(above ${r})`}`,{name:"IntegerOutOfRangeError"})}},Aa=class extends g{constructor(t){super(`Bytes value "${t}" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`,{name:"InvalidBytesBooleanError"})}},Ta=class extends g{constructor(t){super(`Hex value "${t}" is not a valid boolean. The hex value must be "0x0" (false) or "0x1" (true).`,{name:"InvalidHexBooleanError"})}},Sa=class extends g{constructor({givenSize:t,maxSize:r}){super(`Size cannot exceed ${r} bytes. Given size: ${t} bytes.`,{name:"SizeOverflowError"})}}});function Ie(e,{dir:t="left"}={}){let r=typeof e=="string"?e.replace("0x",""):e,n=0;for(let o=0;o{"use strict"});function Qe(e,{size:t}){if(ee(e)>t)throw new Sa({givenSize:ee(e),maxSize:t})}function he(e,t={}){let{signed:r}=t;t.size&&Qe(e,{size:t.size});let n=BigInt(e);if(!r)return n;let o=(e.length-2)/2,s=(1n<{"use strict";zs();mt();hn()});function z(e,t={}){return typeof e=="number"||typeof e=="bigint"?_(e,t):typeof e=="string"?Lt(e,t):typeof e=="boolean"?Cp(e,t):te(e,t)}function Cp(e,t={}){let r=`0x${Number(e)}`;return typeof t.size=="number"?(Qe(r,{size:t.size}),Sr(r,{size:t.size})):r}function te(e,t={}){let r="";for(let o=0;os||o{"use strict";zs();Ea();He();gb=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));wb=new TextEncoder});function ht(e,t={}){return typeof e=="number"||typeof e=="bigint"?Ab(e,t):typeof e=="boolean"?Eb(e,t):we(e)?Pe(e,t):Pt(e,t)}function Eb(e,t={}){let r=new Uint8Array(1);return r[0]=Number(e),typeof t.size=="number"?(Qe(r,{size:t.size}),Sr(r,{size:t.size})):r}function bm(e){if(e>=nr.zero&&e<=nr.nine)return e-nr.zero;if(e>=nr.A&&e<=nr.F)return e-(nr.A-10);if(e>=nr.a&&e<=nr.f)return e-(nr.a-10)}function Pe(e,t={}){let r=e;t.size&&(Qe(r,{size:t.size}),r=Sr(r,{dir:"right",size:t.size}));let n=r.slice(2);n.length%2&&(n=`0${n}`);let o=n.length/2,s=new Uint8Array(o);for(let i=0,a=0;i{"use strict";W();St();Ea();He();V();vb=new TextEncoder;nr={zero:48,nine:57,A:65,F:70,a:97,f:102}});function Us(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function Tb(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Cr(e,...t){if(!Tb(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function gm(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Us(e.outputLen),Us(e.blockLen)}function or(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Ca(e,t){Cr(e);let r=t.outputLen;if(e.length{"use strict"});function Sb(e,t=!1){return t?{h:Number(e&Ia),l:Number(e>>wm&Ia)}:{h:Number(e>>wm&Ia)|0,l:Number(e&Ia)|0}}function vm(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let o=0;o{"use strict";Ia=BigInt(4294967295),wm=BigInt(32);Em=(e,t,r)=>e<>>32-r,Am=(e,t,r)=>t<>>32-r,Tm=(e,t,r)=>t<>>64-r,Sm=(e,t,r)=>e<>>64-r});var yn,Im=E(()=>{"use strict";yn=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0});function Pm(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Pa(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function kt(e,t){return e<<32-t|e>>>t}function Cb(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function Pp(e){for(let t=0;te().update(Pr(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function Bm(e){let t=(n,o)=>e(o).update(Pr(n)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=n=>e(n),t}function Ba(e=32){if(yn&&typeof yn.getRandomValues=="function")return yn.getRandomValues(new Uint8Array(e));if(yn&&typeof yn.randomBytes=="function")return Uint8Array.from(yn.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}var Ip,DA,Ir,xn=E(()=>{"use strict";Im();Ls();Ip=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;DA=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function";Ir=class{clone(){return this._cloneInto()}}});function Fb(e,t=24){let r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let i=0;i<10;i++)r[i]=e[i]^e[i+10]^e[i+20]^e[i+30]^e[i+40];for(let i=0;i<10;i+=2){let a=(i+8)%10,c=(i+2)%10,u=r[c],p=r[c+1],f=Rm(u,p,1)^r[a],l=_m(u,p,1)^r[a+1];for(let m=0;m<50;m+=10)e[i+m]^=f,e[i+m+1]^=l}let o=e[2],s=e[3];for(let i=0;i<24;i++){let a=Nm[i],c=Rm(o,s,a),u=_m(o,s,a),p=$m[i];o=e[p],s=e[p+1],e[p]=c,e[p+1]=u}for(let i=0;i<50;i+=10){for(let a=0;a<10;a++)r[a]=e[i+a];for(let a=0;a<10;a++)e[i+a]^=~r[(a+2)%10]&r[(a+4)%10]}e[0]^=$b[n],e[1]^=Nb[n]}r.fill(0)}var $m,Nm,Fm,Pb,Hs,kb,Bb,Rb,_b,$b,Nb,Rm,_m,Ra,kr,WA,KA,YA,ZA,JA,Om,XA,QA,Mm,eT,tT,zm=E(()=>{"use strict";Ls();Cm();xn();$m=[],Nm=[],Fm=[],Pb=BigInt(0),Hs=BigInt(1),kb=BigInt(2),Bb=BigInt(7),Rb=BigInt(256),_b=BigInt(113);for(let e=0,t=Hs,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],$m.push(2*(5*n+r)),Nm.push((e+1)*(e+2)/2%64);let o=Pb;for(let s=0;s<7;s++)t=(t<>Bb)*_b)%Rb,t&kb&&(o^=Hs<<(Hs<r>32?Tm(e,t,r):Em(e,t,r),_m=(e,t,r)=>r>32?Sm(e,t,r):Am(e,t,r);Ra=class e extends Ir{constructor(t,r,n,o=!1,s=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=t,this.suffix=r,this.outputLen=n,this.enableXOF=o,this.rounds=s,Us(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=Pm(this.state)}keccak(){Ip||Pp(this.state32),Fb(this.state32,this.rounds),Ip||Pp(this.state32),this.posOut=0,this.pos=0}update(t){or(this);let{blockLen:r,state:n}=this;t=Pr(t);let o=t.length;for(let s=0;s=n&&this.keccak();let i=Math.min(n-this.posOut,s-o);t.set(r.subarray(this.posOut,this.posOut+i),o),this.posOut+=i,o+=i}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return Us(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(Ca(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){let{blockLen:r,suffix:n,outputLen:o,rounds:s,enableXOF:i}=this;return t||(t=new e(r,n,o,i,s)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=s,t.suffix=n,t.outputLen=o,t.enableXOF=i,t.destroyed=this.destroyed,t}},kr=(e,t,r)=>ka(()=>new Ra(t,e,r)),WA=kr(6,144,224/8),KA=kr(6,136,256/8),YA=kr(6,104,384/8),ZA=kr(6,72,512/8),JA=kr(1,144,224/8),Om=kr(1,136,256/8),XA=kr(1,104,384/8),QA=kr(1,72,512/8),Mm=(e,t,r)=>Bm((n={})=>new Ra(t,e,n.dkLen===void 0?r:n.dkLen,!0)),eT=Mm(31,168,128/8),tT=Mm(31,136,256/8)});function ue(e,t){let r=t||"hex",n=Om(we(e,{strict:!1})?ht(e):e);return r==="bytes"?n:z(n)}var Bt=E(()=>{"use strict";zm();St();ze();V()});function Um(e){return Ob(e)}var Ob,Lm=E(()=>{"use strict";ze();Bt();Ob=e=>ue(ht(e))});function Hm(e){let t=!0,r="",n=0,o="",s=!1;for(let i=0;i{"use strict";W()});var jm,qm=E(()=>{"use strict";aa();Dm();jm=e=>{let t=typeof e=="string"?e:dn(e);return Hm(t)}});function _a(e){return Um(jm(e))}var kp=E(()=>{"use strict";Lm();qm()});var Br,Ds=E(()=>{"use strict";kp();Br=_a});var ae,Rt=E(()=>{"use strict";W();ae=class extends g{constructor({address:t}){super(`Address "${t}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}});var Ht,js=E(()=>{"use strict";Ht=class extends Map{constructor(t){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=t}get(t){let r=super.get(t);return super.has(t)&&r!==void 0&&(this.delete(t),super.set(t,r)),r}set(t,r){if(super.set(t,r),this.maxSize&&this.size>this.maxSize){let n=this.keys().next().value;n&&this.delete(n)}return this}}});function sr(e,t){if(Bp.has(`${e}.${t}`))return Bp.get(`${e}.${t}`);let r=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),n=ue(Pt(r),"bytes"),o=(t?r.substring(`${t}0x`.length):r).split("");for(let i=0;i<40;i+=2)n[i>>1]>>4>=8&&o[i]&&(o[i]=o[i].toUpperCase()),(n[i>>1]&15)>=8&&o[i+1]&&(o[i+1]=o[i+1].toUpperCase());let s=`0x${o.join("")}`;return Bp.set(`${e}.${t}`,s),s}function $a(e,t){if(!re(e,{strict:!1}))throw new ae({address:e});return sr(e,t)}var Bp,bn=E(()=>{"use strict";Rt();ze();Bt();js();yt();Bp=new Ht(8192)});function re(e,t){let{strict:r=!0}=t??{},n=`${e}.${r}`;if(Rp.has(n))return Rp.get(n);let o=Mb.test(e)?e.toLowerCase()===e?!0:r?sr(e)===e:!0:!1;return Rp.set(n,o),o}var Mb,Rp,yt=E(()=>{"use strict";js();bn();Mb=/^0x[a-fA-F0-9]{40}$/,Rp=new Ht(8192)});function Ze(e){return typeof e[0]=="string"?Te(e):zb(e)}function zb(e){let t=0;for(let o of e)t+=o.length;let r=new Uint8Array(t),n=0;for(let o of e)r.set(o,n),n+=o.length;return r}function Te(e){return`0x${e.reduce((t,r)=>t+r.replace("0x",""),"")}`}var et=E(()=>{"use strict"});function xt(e,t,r,{strict:n}={}){return we(e,{strict:!1})?$p(e,t,r,{strict:n}):_p(e,t,r,{strict:n})}function Vm(e,t){if(typeof t=="number"&&t>0&&t>ee(e)-1)throw new Fs({offset:t,position:"start",size:ee(e)})}function Gm(e,t,r){if(typeof t=="number"&&typeof r=="number"&&ee(e)!==r-t)throw new Fs({offset:r,position:"end",size:ee(e)})}function _p(e,t,r,{strict:n}={}){Vm(e,t);let o=e.slice(t,r);return n&&Gm(o,t,r),o}function $p(e,t,r,{strict:n}={}){Vm(e,t);let o=`0x${e.replace("0x","").slice((t??0)*2,(r??e.length)*2)}`;return n&&Gm(o,t,r),o}var Rr=E(()=>{"use strict";va();St();mt()});var Wm,Na,Np=E(()=>{"use strict";Wm=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Na=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/});function De(e,t){if(e.length!==t.length)throw new la({expectedLength:e.length,givenLength:t.length});let r=Ub({params:e,values:t}),n=Op(r);return n.length===0?"0x":n}function Ub({params:e,values:t}){let r=[];for(let n=0;n0?Ze([a,i]):a}}if(o)return{dynamic:!0,encoded:i}}return{dynamic:!1,encoded:Ze(s.map(({encoded:i})=>i))}}function Db(e,{param:t}){let[,r]=t.type.split("bytes"),n=ee(e);if(!r){let o=e;return n%32!==0&&(o=rr(o,{dir:"right",size:Math.ceil((e.length-2)/2/32)*32})),{dynamic:!0,encoded:Ze([rr(_(n,{size:32})),o])}}if(n!==Number.parseInt(r))throw new fa({expectedSize:Number.parseInt(r),value:e});return{dynamic:!1,encoded:rr(e,{dir:"right"})}}function jb(e){if(typeof e!="boolean")throw new g(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:rr(Cp(e))}}function qb(e,{signed:t,size:r=256}){if(typeof r=="number"){let n=2n**(BigInt(r)-(t?1n:0n))-1n,o=t?-n-1n:0n;if(e>n||eo))}}function Fa(e){let t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}var Dt=E(()=>{"use strict";ye();Rt();W();zs();yt();et();Ea();mt();Rr();V();Np()});var jt,Qn=E(()=>{"use strict";Rr();kp();jt=e=>xt(_a(e),0,4)});function tt(e){let{abi:t,args:r=[],name:n}=e,o=we(n,{strict:!1}),s=t.filter(a=>o?a.type==="function"?jt(a)===n:a.type==="event"?Br(a)===n:!1:"name"in a&&a.name===n);if(s.length===0)return;if(s.length===1)return s[0];let i;for(let a of s){if(!("inputs"in a))continue;if(!r||r.length===0){if(!a.inputs||a.inputs.length===0)return a;continue}if(!a.inputs||a.inputs.length===0||a.inputs.length!==r.length)continue;if(r.every((u,p)=>{let f="inputs"in a&&a.inputs[p];return f?Mp(u,f):!1})){if(i&&"inputs"in i&&i.inputs){let u=Km(a.inputs,i.inputs,r);if(u)throw new ya({abiItem:a,type:u[0]},{abiItem:i,type:u[1]})}i=a}}return i||s[0]}function Mp(e,t){let r=typeof e,n=t.type;switch(n){case"address":return re(e,{strict:!1});case"bool":return r==="boolean";case"function":return r==="string";case"string":return r==="string";default:return n==="tuple"&&"components"in t?Object.values(t.components).every((o,s)=>Mp(Object.values(e)[s],o)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(n)?r==="number"||r==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(n)?r==="string"||e instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(n)?Array.isArray(e)&&e.every(o=>Mp(o,{...t,type:n.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function Km(e,t,r){for(let n in e){let o=e[n],s=t[n];if(o.type==="tuple"&&s.type==="tuple"&&"components"in o&&"components"in s)return Km(o.components,s.components,r[n]);let i=[o.type,s.type];if(i.includes("address")&&i.includes("bytes20")?!0:i.includes("address")&&i.includes("string")?re(r[n],{strict:!1}):i.includes("address")&&i.includes("bytes")?re(r[n],{strict:!1}):!1)return i}}var _r=E(()=>{"use strict";ye();St();yt();Ds();Qn()});function K(e){return typeof e=="string"?{address:e,type:"json-rpc"}:e}var ve=E(()=>{"use strict"});function Xm(e){let{abi:t,args:r,functionName:n}=e,o=t[0];if(n){let s=tt({abi:t,args:r,name:n});if(!s)throw new Ct(n,{docsPath:Jm});o=s}if(o.type!=="function")throw new Ct(void 0,{docsPath:Jm});return{abi:[o],functionName:jt(Ce(o))}}var Jm,Qm=E(()=>{"use strict";ye();Qn();tr();_r();Jm="/docs/contract/encodeFunctionData"});function de(e){let{args:t}=e,{abi:r,functionName:n}=e.abi.length===1&&e.functionName?.startsWith("0x")?e:Xm(e),o=r[0],s=n,i="inputs"in o&&o.inputs?De(o.inputs,t??[]):void 0;return Te([s,i??"0x"])}var ct=E(()=>{"use strict";et();Dt();Qm()});var Ma,za,ed,qs=E(()=>{"use strict";Ma={1:"An `assert` condition failed.",17:"Arithmetic operation resulted in underflow or overflow.",18:"Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).",33:"Attempted to convert to an invalid type.",34:"Attempted to access a storage byte array that is incorrectly encoded.",49:"Performed `.pop()` on an empty array",50:"Array index is out of bounds.",65:"Allocated too much memory or created an array which is too large.",81:"Attempted to call a zero-initialized variable of internal function type."},za={inputs:[{name:"message",type:"string"}],name:"Error",type:"error"},ed={inputs:[{name:"reason",type:"uint256"}],name:"Panic",type:"error"}});var Vs,eo,Ua,zp=E(()=>{"use strict";W();Vs=class extends g{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`,{name:"NegativeOffsetError"})}},eo=class extends g{constructor({length:t,position:r}){super(`Position \`${r}\` is out of bounds (\`0 < position < ${t}\`).`,{name:"PositionOutOfBoundsError"})}},Ua=class extends g{constructor({count:t,limit:r}){super(`Recursive read limit of \`${r}\` exceeded (recursive read count: \`${t}\`).`,{name:"RecursiveReadLimitExceededError"})}}});function to(e,{recursiveReadLimit:t=8192}={}){let r=Object.create(Wb);return r.bytes=e,r.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=t,r}var Wb,La=E(()=>{"use strict";zp();Wb={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new Ua({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new eo({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new Vs({offset:e});let t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new Vs({offset:e});let t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){let t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){let r=t??this.position;return this.assertPosition(r+e-1),this.bytes.subarray(r,r+e)},inspectUint8(e){let t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){let t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){let t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){let t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();let e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();let r=this.inspectBytes(e);return this.position+=t??e,r},readUint8(){this.assertReadLimit(),this._touch();let e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();let e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();let e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();let e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){let t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;let e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}}});function td(e,t={}){typeof t.size<"u"&&Qe(e,{size:t.size});let r=te(e,t);return he(r,t)}function rd(e,t={}){let r=e;if(typeof t.size<"u"&&(Qe(r,{size:t.size}),r=Ie(r)),r.length>1||r[0]>1)throw new Aa(r);return!!r[0]}function Vt(e,t={}){typeof t.size<"u"&&Qe(e,{size:t.size});let r=te(e,t);return xe(r,t)}function nd(e,t={}){let r=e;return typeof t.size<"u"&&(Qe(r,{size:t.size}),r=Ie(r,{dir:"right"})),new TextDecoder().decode(r)}var od=E(()=>{"use strict";zs();hn();He();V()});function ir(e,t){let r=typeof t=="string"?Pe(t):t,n=to(r);if(ee(r)===0&&e.length>0)throw new dt;if(ee(t)&&ee(t)<32)throw new Wn({data:typeof t=="string"?t:te(t),params:e,size:ee(t)});let o=0,s=[];for(let i=0;i48?td(o,{signed:r}):Vt(o,{signed:r}),32]}function Qb(e,t,{staticPosition:r}){let n=t.components.length===0||t.components.some(({name:i})=>!i),o=n?[]:{},s=0;if(Gs(t)){let i=Vt(e.readBytes(Up)),a=r+i;for(let c=0;c{"use strict";ye();bn();La();mt();Rr();hn();od();ze();V();Dt();sd=32,Up=32});function Ha(e){let{abi:t,data:r}=e,n=xt(r,0,4);if(n==="0x")throw new dt;let s=[...t||[],za,ed].find(i=>i.type==="error"&&n===jt(Ce(i)));if(!s)throw new Kn(n,{docsPath:"/docs/contract/decodeErrorResult"});return{abiItem:s,args:"inputs"in s&&s.inputs&&s.inputs.length>0?ir(s.inputs,xt(r,4)):void 0,errorName:s.name}}var Lp=E(()=>{"use strict";qs();ye();Rr();Qn();Ws();tr()});var X,qe=E(()=>{"use strict";X=(e,t,r)=>JSON.stringify(e,(n,o)=>{let s=typeof o=="bigint"?o.toString():o;return typeof t=="function"?t(n,s):s},r)});function Hp({abiItem:e,args:t,includeFunctionName:r=!0,includeName:n=!1}){if("name"in e&&"inputs"in e&&e.inputs)return`${r?e.name:""}(${e.inputs.map((o,s)=>`${n&&o.name?`${o.name}: `:""}${typeof t[s]=="object"?X(t[s]):t[s]}`).join(", ")})`}var id=E(()=>{"use strict";qe()});var Da,ad,ja=E(()=>{"use strict";Da={gwei:9,wei:18},ad={ether:-9,wei:9}});function qa(e,t){let r=e.toString(),n=r.startsWith("-");n&&(r=r.slice(1)),r=r.padStart(t,"0");let[o,s]=[r.slice(0,r.length-t),r.slice(r.length-t)];return s=s.replace(/(0+)$/,""),`${n?"-":""}${o||"0"}${s?`.${s}`:""}`}var Dp=E(()=>{"use strict"});function ar(e,t="wei"){return qa(e,Da[t])}var Ks=E(()=>{"use strict";ja();Dp()});function ke(e,t="wei"){return qa(e,ad[t])}var no=E(()=>{"use strict";ja();Dp()});function cd(e){return e.reduce((t,{slot:r,value:n})=>`${t} ${r}: ${n} +`,"")}function ud(e){return e.reduce((t,{address:r,...n})=>{let o=`${t} ${r}: +`;return n.nonce&&(o+=` nonce: ${n.nonce} +`),n.balance&&(o+=` balance: ${n.balance} +`),n.code&&(o+=` code: ${n.code} +`),n.state&&(o+=` state: +`,o+=cd(n.state)),n.stateDiff&&(o+=` stateDiff: +`,o+=cd(n.stateDiff)),o},` State Override: +`).slice(0,-1)}var Va,Ga,jp=E(()=>{"use strict";W();Va=class extends g{constructor({address:t}){super(`State for account "${t}" is set multiple times.`,{name:"AccountStateConflictError"})}},Ga=class extends g{constructor(){super("state and stateDiff are set on the same account.",{name:"StateAssignmentConflictError"})}}});function gn(e){let t=Object.entries(e).map(([n,o])=>o===void 0||o===!1?null:[n,o]).filter(Boolean),r=t.reduce((n,[o])=>Math.max(n,o.length),0);return t.map(([n,o])=>` ${`${n}:`.padEnd(r+1)} ${o}`).join(` +`)}var Wa,Ka,Ya,Za,Ja,oo,so,Xa,_t=E(()=>{"use strict";Ks();no();W();Wa=class extends g{constructor(){super(["Cannot specify both a `gasPrice` and a `maxFeePerGas`/`maxPriorityFeePerGas`.","Use `maxFeePerGas`/`maxPriorityFeePerGas` for EIP-1559 compatible networks, and `gasPrice` for others."].join(` +`),{name:"FeeConflictError"})}},Ka=class extends g{constructor({v:t}){super(`Invalid \`v\` value "${t}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}},Ya=class extends g{constructor({transaction:t}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",gn(t),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}},Za=class extends g{constructor({storageKey:t}){super(`Size for storage key "${t}" is invalid. Expected 32 bytes. Got ${Math.floor((t.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}},Ja=class extends g{constructor(t,{account:r,docsPath:n,chain:o,data:s,gas:i,gasPrice:a,maxFeePerGas:c,maxPriorityFeePerGas:u,nonce:p,to:f,value:l}){let m=gn({chain:o&&`${o?.name} (id: ${o?.id})`,from:r?.address,to:f,value:typeof l<"u"&&`${ar(l)} ${o?.nativeCurrency?.symbol||"ETH"}`,data:s,gas:i,gasPrice:typeof a<"u"&&`${ke(a)} gwei`,maxFeePerGas:typeof c<"u"&&`${ke(c)} gwei`,maxPriorityFeePerGas:typeof u<"u"&&`${ke(u)} gwei`,nonce:p});super(t.shortMessage,{cause:t,docsPath:n,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Request Arguments:",m].filter(Boolean),name:"TransactionExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}},oo=class extends g{constructor({blockHash:t,blockNumber:r,blockTag:n,hash:o,index:s}){let i="Transaction";n&&s!==void 0&&(i=`Transaction at block time "${n}" at index "${s}"`),t&&s!==void 0&&(i=`Transaction at block hash "${t}" at index "${s}"`),r&&s!==void 0&&(i=`Transaction at block number "${r}" at index "${s}"`),o&&(i=`Transaction with hash "${o}"`),super(`${i} could not be found.`,{name:"TransactionNotFoundError"})}},so=class extends g{constructor({hash:t}){super(`Transaction receipt with hash "${t}" could not be found. The Transaction may not be processed on a block yet.`,{name:"TransactionReceiptNotFoundError"})}},Xa=class extends g{constructor({hash:t}){super(`Timed out while waiting for transaction with hash "${t}" to be confirmed.`,{name:"WaitForTransactionReceiptTimeoutError"})}}});var pd,wn,Qa=E(()=>{"use strict";pd=e=>e,wn=e=>e});var io,ec,vn,tc,rc,Gt,Nr=E(()=>{"use strict";ve();qs();Lp();tr();id();_r();Ks();no();ye();W();jp();_t();Qa();io=class extends g{constructor(t,{account:r,docsPath:n,chain:o,data:s,gas:i,gasPrice:a,maxFeePerGas:c,maxPriorityFeePerGas:u,nonce:p,to:f,value:l,stateOverride:m}){let y=r?K(r):void 0,x=gn({from:y?.address,to:f,value:typeof l<"u"&&`${ar(l)} ${o?.nativeCurrency?.symbol||"ETH"}`,data:s,gas:i,gasPrice:typeof a<"u"&&`${ke(a)} gwei`,maxFeePerGas:typeof c<"u"&&`${ke(c)} gwei`,maxPriorityFeePerGas:typeof u<"u"&&`${ke(u)} gwei`,nonce:p});m&&(x+=` +${ud(m)}`),super(t.shortMessage,{cause:t,docsPath:n,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Raw Call Arguments:",x].filter(Boolean),name:"CallExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}},ec=class extends g{constructor(t,{abi:r,args:n,contractAddress:o,docsPath:s,functionName:i,sender:a}){let c=tt({abi:r,args:n,name:i}),u=c?Hp({abiItem:c,args:n,includeFunctionName:!1,includeName:!1}):void 0,p=c?Ce(c,{includeName:!0}):void 0,f=gn({address:o&&pd(o),function:p,args:u&&u!=="()"&&`${[...Array(i?.length??0).keys()].map(()=>" ").join("")}${u}`,sender:a});super(t.shortMessage||`An unknown error occurred while executing the contract function "${i}".`,{cause:t,docsPath:s,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],f&&"Contract Call:",f].filter(Boolean),name:"ContractFunctionExecutionError"}),Object.defineProperty(this,"abi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"args",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"contractAddress",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"formattedArgs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"functionName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sender",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abi=r,this.args=n,this.cause=t,this.contractAddress=o,this.functionName=i,this.sender=a}},vn=class extends g{constructor({abi:t,data:r,functionName:n,message:o}){let s,i,a,c;if(r&&r!=="0x")try{i=Ha({abi:t,data:r});let{abiItem:p,errorName:f,args:l}=i;if(f==="Error")c=l[0];else if(f==="Panic"){let[m]=l;c=Ma[m]}else{let m=p?Ce(p,{includeName:!0}):void 0,y=p&&l?Hp({abiItem:p,args:l,includeFunctionName:!1,includeName:!1}):void 0;a=[m?`Error: ${m}`:"",y&&y!=="()"?` ${[...Array(f?.length??0).keys()].map(()=>" ").join("")}${y}`:""]}}catch(p){s=p}else o&&(c=o);let u;s instanceof Kn&&(u=s.signature,a=[`Unable to decode signature "${u}" as it was not found on the provided ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${u}.`]),super(c&&c!=="execution reverted"||u?[`The contract function "${n}" reverted with the following ${u?"signature":"reason"}:`,c||u].join(` +`):`The contract function "${n}" reverted.`,{cause:s,metaMessages:a,name:"ContractFunctionRevertedError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reason",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=i,this.raw=r,this.reason=c,this.signature=u}},tc=class extends g{constructor({functionName:t}){super(`The contract function "${t}" returned no data ("0x").`,{metaMessages:["This could be due to any of the following:",` - The contract does not have the function "${t}",`," - The parameters passed to the contract function may be invalid, or"," - The address is not a contract."],name:"ContractFunctionZeroDataError"})}},rc=class extends g{constructor({factory:t}){super(`Deployment for counterfactual contract call failed${t?` for factory "${t}".`:""}`,{metaMessages:["Please ensure:","- The `factory` is a valid contract deployment factory (ie. Create2 Factory, ERC-4337 Factory, etc).","- The `factoryData` is a valid encoded function call for contract deployment function on the factory."],name:"CounterfactualDeploymentFailedError"})}},Gt=class extends g{constructor({data:t,message:r}){super(r||"",{name:"RawContractError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=t}}});var bt,Fr,Ys,En=E(()=>{"use strict";qe();W();Qa();bt=class extends g{constructor({body:t,cause:r,details:n,headers:o,status:s,url:i}){super("HTTP request failed.",{cause:r,details:n,metaMessages:[s&&`Status: ${s}`,`URL: ${wn(i)}`,t&&`Request body: ${X(t)}`].filter(Boolean),name:"HttpRequestError"}),Object.defineProperty(this,"body",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.body=t,this.headers=o,this.status=s,this.url=i}},Fr=class extends g{constructor({body:t,error:r,url:n}){super("RPC Request failed.",{cause:r,details:r.message,metaMessages:[`URL: ${wn(n)}`,`Request body: ${X(t)}`],name:"RpcRequestError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=r.code,this.data=r.data}},Ys=class extends g{constructor({body:t,url:r}){super("The request took too long to respond.",{details:"The request timed out.",metaMessages:[`URL: ${wn(r)}`,`Request body: ${X(t)}`],name:"TimeoutError"})}}});var tg,Ve,Je,ao,co,uo,po,cr,Wt,fo,lo,mo,Or,An,ho,Tn,yo,xo,bo,go,wo,vo,Eo,Ao,To,So,Co,Io,nc,Zs=E(()=>{"use strict";W();En();tg=-1,Ve=class extends g{constructor(t,{code:r,docsPath:n,metaMessages:o,name:s,shortMessage:i}){super(i,{cause:t,docsPath:n,metaMessages:o||t?.metaMessages,name:s||"RpcError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=s||t.name,this.code=t instanceof Fr?t.code:r??tg}},Je=class extends Ve{constructor(t,r){super(t,r),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=r.data}},ao=class e extends Ve{constructor(t){super(t,{code:e.code,name:"ParseRpcError",shortMessage:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text."})}};Object.defineProperty(ao,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700});co=class e extends Ve{constructor(t){super(t,{code:e.code,name:"InvalidRequestRpcError",shortMessage:"JSON is not a valid request object."})}};Object.defineProperty(co,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600});uo=class e extends Ve{constructor(t,{method:r}={}){super(t,{code:e.code,name:"MethodNotFoundRpcError",shortMessage:`The method${r?` "${r}"`:""} does not exist / is not available.`})}};Object.defineProperty(uo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601});po=class e extends Ve{constructor(t){super(t,{code:e.code,name:"InvalidParamsRpcError",shortMessage:["Invalid parameters were provided to the RPC method.","Double check you have provided the correct parameters."].join(` +`)})}};Object.defineProperty(po,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602});cr=class e extends Ve{constructor(t){super(t,{code:e.code,name:"InternalRpcError",shortMessage:"An internal error was received."})}};Object.defineProperty(cr,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603});Wt=class e extends Ve{constructor(t){super(t,{code:e.code,name:"InvalidInputRpcError",shortMessage:["Missing or invalid parameters.","Double check you have provided the correct parameters."].join(` +`)})}};Object.defineProperty(Wt,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32e3});fo=class e extends Ve{constructor(t){super(t,{code:e.code,name:"ResourceNotFoundRpcError",shortMessage:"Requested resource not found."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ResourceNotFoundRpcError"})}};Object.defineProperty(fo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001});lo=class e extends Ve{constructor(t){super(t,{code:e.code,name:"ResourceUnavailableRpcError",shortMessage:"Requested resource not available."})}};Object.defineProperty(lo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002});mo=class e extends Ve{constructor(t){super(t,{code:e.code,name:"TransactionRejectedRpcError",shortMessage:"Transaction creation failed."})}};Object.defineProperty(mo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003});Or=class e extends Ve{constructor(t,{method:r}={}){super(t,{code:e.code,name:"MethodNotSupportedRpcError",shortMessage:`Method${r?` "${r}"`:""} is not supported.`})}};Object.defineProperty(Or,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004});An=class e extends Ve{constructor(t){super(t,{code:e.code,name:"LimitExceededRpcError",shortMessage:"Request exceeds defined limit."})}};Object.defineProperty(An,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005});ho=class e extends Ve{constructor(t){super(t,{code:e.code,name:"JsonRpcVersionUnsupportedError",shortMessage:"Version of JSON-RPC protocol is not supported."})}};Object.defineProperty(ho,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006});Tn=class e extends Je{constructor(t){super(t,{code:e.code,name:"UserRejectedRequestError",shortMessage:"User rejected the request."})}};Object.defineProperty(Tn,"code",{enumerable:!0,configurable:!0,writable:!0,value:4001});yo=class e extends Je{constructor(t){super(t,{code:e.code,name:"UnauthorizedProviderError",shortMessage:"The requested method and/or account has not been authorized by the user."})}};Object.defineProperty(yo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4100});xo=class e extends Je{constructor(t,{method:r}={}){super(t,{code:e.code,name:"UnsupportedProviderMethodError",shortMessage:`The Provider does not support the requested method${r?` " ${r}"`:""}.`})}};Object.defineProperty(xo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4200});bo=class e extends Je{constructor(t){super(t,{code:e.code,name:"ProviderDisconnectedError",shortMessage:"The Provider is disconnected from all chains."})}};Object.defineProperty(bo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4900});go=class e extends Je{constructor(t){super(t,{code:e.code,name:"ChainDisconnectedError",shortMessage:"The Provider is not connected to the requested chain."})}};Object.defineProperty(go,"code",{enumerable:!0,configurable:!0,writable:!0,value:4901});wo=class e extends Je{constructor(t){super(t,{code:e.code,name:"SwitchChainError",shortMessage:"An error occurred when attempting to switch chain."})}};Object.defineProperty(wo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4902});vo=class e extends Je{constructor(t){super(t,{code:e.code,name:"UnsupportedNonOptionalCapabilityError",shortMessage:"This Wallet does not support a capability that was not marked as optional."})}};Object.defineProperty(vo,"code",{enumerable:!0,configurable:!0,writable:!0,value:5700});Eo=class e extends Je{constructor(t){super(t,{code:e.code,name:"UnsupportedChainIdError",shortMessage:"This Wallet does not support the requested chain ID."})}};Object.defineProperty(Eo,"code",{enumerable:!0,configurable:!0,writable:!0,value:5710});Ao=class e extends Je{constructor(t){super(t,{code:e.code,name:"DuplicateIdError",shortMessage:"There is already a bundle submitted with this ID."})}};Object.defineProperty(Ao,"code",{enumerable:!0,configurable:!0,writable:!0,value:5720});To=class e extends Je{constructor(t){super(t,{code:e.code,name:"UnknownBundleIdError",shortMessage:"This bundle id is unknown / has not been submitted"})}};Object.defineProperty(To,"code",{enumerable:!0,configurable:!0,writable:!0,value:5730});So=class e extends Je{constructor(t){super(t,{code:e.code,name:"BundleTooLargeError",shortMessage:"The call bundle is too large for the Wallet to process."})}};Object.defineProperty(So,"code",{enumerable:!0,configurable:!0,writable:!0,value:5740});Co=class e extends Je{constructor(t){super(t,{code:e.code,name:"AtomicReadyWalletRejectedUpgradeError",shortMessage:"The Wallet can support atomicity after an upgrade, but the user rejected the upgrade."})}};Object.defineProperty(Co,"code",{enumerable:!0,configurable:!0,writable:!0,value:5750});Io=class e extends Je{constructor(t){super(t,{code:e.code,name:"AtomicityNotSupportedError",shortMessage:"The wallet does not support atomic execution but the request requires it."})}};Object.defineProperty(Io,"code",{enumerable:!0,configurable:!0,writable:!0,value:5760});nc=class extends Ve{constructor(t){super(t,{name:"UnknownRpcError",shortMessage:"An unknown RPC error occurred."})}}});function ng(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let o=BigInt(32),s=BigInt(4294967295),i=Number(r>>o&s),a=Number(r&s),c=n?4:0,u=n?0:4;e.setUint32(t+c,i,n),e.setUint32(t+u,a,n)}function ld(e,t,r){return e&t^~e&r}function md(e,t,r){return e&t^e&r^t&r}var oc,dd=E(()=>{"use strict";Ls();xn();oc=class extends Ir{constructor(t,r,n,o){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(t),this.view=Pa(this.buffer)}update(t){or(this);let{view:r,buffer:n,blockLen:o}=this;t=Pr(t);let s=t.length;for(let i=0;io-i&&(this.process(n,0),i=0);for(let f=i;fp.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;f{"use strict";dd();xn();og=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Mr=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),zr=new Uint32Array(64),qp=class extends oc{constructor(t=32){super(64,t,8,!1),this.A=Mr[0]|0,this.B=Mr[1]|0,this.C=Mr[2]|0,this.D=Mr[3]|0,this.E=Mr[4]|0,this.F=Mr[5]|0,this.G=Mr[6]|0,this.H=Mr[7]|0}get(){let{A:t,B:r,C:n,D:o,E:s,F:i,G:a,H:c}=this;return[t,r,n,o,s,i,a,c]}set(t,r,n,o,s,i,a,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=o|0,this.E=s|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,r){for(let f=0;f<16;f++,r+=4)zr[f]=t.getUint32(r,!1);for(let f=16;f<64;f++){let l=zr[f-15],m=zr[f-2],y=kt(l,7)^kt(l,18)^l>>>3,x=kt(m,17)^kt(m,19)^m>>>10;zr[f]=x+zr[f-7]+y+zr[f-16]|0}let{A:n,B:o,C:s,D:i,E:a,F:c,G:u,H:p}=this;for(let f=0;f<64;f++){let l=kt(a,6)^kt(a,11)^kt(a,25),m=p+l+ld(a,c,u)+og[f]+zr[f]|0,x=(kt(n,2)^kt(n,13)^kt(n,22))+md(n,o,s)|0;p=u,u=c,c=a,a=i+m|0,i=s,s=o,o=n,n=m+x|0}n=n+this.A|0,o=o+this.B|0,s=s+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,p=p+this.H|0,this.set(n,o,s,i,a,c,u,p)}roundClean(){zr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},Ur=ka(()=>new qp)});var hd=E(()=>{"use strict";Vp()});var sc,Gp,yd=E(()=>{"use strict";Ls();xn();sc=class extends Ir{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,gm(t);let n=Pr(r);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let o=this.blockLen,s=new Uint8Array(o);s.set(n.length>o?t.create().update(n).digest():n);for(let i=0;inew sc(e,t).update(r).digest();Gp.create=(e,t)=>new sc(e,t)});function Sn(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function pr(e){if(!Sn(e))throw new Error("Uint8Array expected")}function Po(e,t){if(typeof t!="boolean")throw new Error(e+" boolean expected, got "+t)}function Js(e){let t=e.toString(16);return t.length&1?"0"+t:t}function gd(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?Zp:BigInt("0x"+e)}function ko(e){if(pr(e),wd)return e.toHex();let t="";for(let r=0;r=ur._0&&e<=ur._9)return e-ur._0;if(e>=ur.A&&e<=ur.F)return e-(ur.A-10);if(e>=ur.a&&e<=ur.f)return e-(ur.a-10)}function Xs(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(wd)return Uint8Array.fromHex(e);let t=e.length,r=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(r);for(let o=0,s=0;oZp;e>>=Yp,t+=1);return t}function Ed(e,t,r){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof r!="function")throw new Error("hmacFn must be a function");let n=Kp(e),o=Kp(e),s=0,i=()=>{n.fill(1),o.fill(0),s=0},a=(...f)=>r(o,n,...f),c=(f=Kp(0))=>{o=a(bd([0]),f),n=a(),f.length!==0&&(o=a(bd([1]),f),n=a())},u=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let f=0,l=[];for(;f{i(),c(f);let m;for(;!(m=l(u()));)c();return i(),m}}function lr(e,t,r={}){let n=(o,s,i)=>{let a=ig[s];if(typeof a!="function")throw new Error("invalid validator function");let c=e[o];if(!(i&&c===void 0)&&!a(c,e))throw new Error("param "+String(o)+" is invalid. Expected "+s+", got "+c)};for(let[o,s]of Object.entries(t))n(o,s,!1);for(let[o,s]of Object.entries(r))n(o,s,!0);return e}function Qp(e){let t=new WeakMap;return(r,...n)=>{let o=t.get(r);if(o!==void 0)return o;let s=e(r,...n);return t.set(r,s),s}}var Zp,Yp,wd,sg,ur,Wp,In,Kp,bd,ig,Bo=E(()=>{"use strict";Zp=BigInt(0),Yp=BigInt(1);wd=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",sg=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));ur={_0:48,_9:57,A:65,F:70,a:97,f:102};Wp=e=>typeof e=="bigint"&&Zp<=e;In=e=>(Yp<new Uint8Array(e),bd=e=>Uint8Array.from(e);ig={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||Sn(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)}});function Ee(e,t){let r=e%t;return r>=Re?r:t+r}function pg(e,t,r){if(tRe;)t&be&&(n=n*e%r),e=e*e%r,t>>=be;return n}function pt(e,t,r){let n=e;for(;t-- >Re;)n*=n,n%=r;return n}function ac(e,t){if(e===Re)throw new Error("invert: expected non-zero number");if(t<=Re)throw new Error("invert: expected positive modulus, got "+t);let r=Ee(e,t),n=t,o=Re,s=be,i=be,a=Re;for(;r!==Re;){let u=n/r,p=n%r,f=o-i*u,l=s-a*u;n=r,r=p,o=i,s=a,i=f,a=l}if(n!==be)throw new Error("invert: does not exist");return Ee(o,t)}function fg(e){let t=(e-be)/Pn,r,n,o;for(r=e-be,n=0;r%Pn===Re;r/=Pn,n++);for(o=Pn;o1e3)throw new Error("Cannot find square root: likely non-prime P");if(n===1){let i=(e+be)/ef;return function(c,u){let p=c.pow(u,i);if(!c.eql(c.sqr(p),u))throw new Error("Cannot find square root");return p}}let s=(r+be)/Pn;return function(a,c){if(a.pow(c,t)===a.neg(a.ONE))throw new Error("Cannot find square root");let u=n,p=a.pow(a.mul(a.ONE,o),r),f=a.pow(c,s),l=a.pow(c,r);for(;!a.eql(l,a.ONE);){if(a.eql(l,a.ZERO))return a.ZERO;let m=1;for(let x=a.sqr(l);m(n[o]="function",n),t);return lr(e,r)}function dg(e,t,r){if(rRe;)r&be&&(n=e.mul(n,o)),o=e.sqr(o),r>>=be;return n}function hg(e,t){let r=new Array(t.length),n=t.reduce((s,i,a)=>e.is0(i)?s:(r[a]=s,e.mul(s,i)),e.ONE),o=e.inv(n);return t.reduceRight((s,i,a)=>e.is0(i)?s:(r[a]=e.mul(s,r[a]),e.mul(s,i)),o),r}function tf(e,t){let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function uc(e,t,r=!1,n={}){if(e<=Re)throw new Error("invalid field: expected ORDER > 0, got "+e);let{nBitLength:o,nByteLength:s}=tf(e,t);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let i,a=Object.freeze({ORDER:e,isLE:r,BITS:o,BYTES:s,MASK:In(o),ZERO:Re,ONE:be,create:c=>Ee(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof c);return Re<=c&&cc===Re,isOdd:c=>(c&be)===be,neg:c=>Ee(-c,e),eql:(c,u)=>c===u,sqr:c=>Ee(c*c,e),add:(c,u)=>Ee(c+u,e),sub:(c,u)=>Ee(c-u,e),mul:(c,u)=>Ee(c*u,e),pow:(c,u)=>dg(a,c,u),div:(c,u)=>Ee(c*ac(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>ac(c,e),sqrt:n.sqrt||(c=>(i||(i=lg(e)),i(a,c))),invertBatch:c=>hg(a,c),cmov:(c,u,p)=>p?u:c,toBytes:c=>r?Xp(c,s):Kt(c,s),fromBytes:c=>{if(c.length!==s)throw new Error("Field.fromBytes: expected "+s+" bytes, got "+c.length);return r?Jp(c):rt(c)}});return Object.freeze(a)}function Sd(e){if(typeof e!="bigint")throw new Error("field order must be bigint");let t=e.toString(2).length;return Math.ceil(t/8)}function rf(e){let t=Sd(e);return t+Math.ceil(t/2)}function Cd(e,t,r=!1){let n=e.length,o=Sd(t),s=rf(t);if(n<16||n1024)throw new Error("expected "+s+"-1024 bytes of input, got "+n);let i=r?Jp(e):rt(e),a=Ee(i,t-be)+be;return r?Xp(a,o):Kt(a,o)}var Re,be,Pn,ag,ef,Ad,Td,cg,ug,mg,Qs=E(()=>{"use strict";Bo();Re=BigInt(0),be=BigInt(1),Pn=BigInt(2),ag=BigInt(3),ef=BigInt(4),Ad=BigInt(5),Td=BigInt(8),cg=BigInt(9),ug=BigInt(16);mg=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"]});function nf(e,t){let r=t.negate();return e?r:t}function kd(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function of(e,t){kd(e,t);let r=Math.ceil(t/e)+1,n=2**(e-1),o=2**e,s=In(e),i=BigInt(e);return{windows:r,windowSize:n,mask:s,maxNumber:o,shiftBy:i}}function Pd(e,t,r){let{windowSize:n,mask:o,maxNumber:s,shiftBy:i}=r,a=Number(e&o),c=e>>i;a>n&&(a-=s,c+=cf);let u=t*n,p=u+Math.abs(a)-1,f=a===0,l=a<0,m=t%2!==0;return{nextN:c,offset:p,isZero:f,isNeg:l,isNegF:m,offsetF:u}}function yg(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((r,n)=>{if(!(r instanceof t))throw new Error("invalid point at index "+n)})}function xg(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((r,n)=>{if(!t.isValid(r))throw new Error("invalid scalar at index "+n)})}function af(e){return Bd.get(e)||1}function Rd(e,t){return{constTimeNegate:nf,hasPrecomputes(r){return af(r)!==1},unsafeLadder(r,n,o=e.ZERO){let s=r;for(;n>Id;)n&cf&&(o=o.add(s)),s=s.double(),n>>=cf;return o},precomputeWindow(r,n){let{windows:o,windowSize:s}=of(n,t),i=[],a=r,c=a;for(let u=0;u12?s-3:s>4?s-2:s?2:1,a=In(i),c=new Array(Number(a)+1).fill(o),u=Math.floor((t.BITS-1)/i)*i,p=o;for(let f=u;f>=0;f-=i){c.fill(o);for(let m=0;m>BigInt(f)&a);c[x]=c[x].add(r[m])}let l=o;for(let m=c.length-1,y=o;m>0;m--)y=y.add(c[m]),l=l.add(y);if(p=p.add(l),f!==0)for(let m=0;m{"use strict";Qs();Bo();Id=BigInt(0),cf=BigInt(1);sf=new WeakMap,Bd=new WeakMap});function Nd(e){e.lowS!==void 0&&Po("lowS",e.lowS),e.prehash!==void 0&&Po("prehash",e.prehash)}function bg(e){let t=uf(e);lr(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:r,Fp:n,a:o}=t;if(r){if(!n.eql(o,n.ZERO))throw new Error("invalid endomorphism, can only be defined for Koblitz curves that have a=0");if(typeof r!="object"||typeof r.beta!="bigint"||typeof r.splitScalar!="function")throw new Error("invalid endomorphism, expected beta: bigint and splitScalar: function")}return Object.freeze({...t})}function gg(e){let t=bg(e),{Fp:r}=t,n=uc(t.n,t.nBitLength),o=t.toBytes||((x,d,h)=>{let b=d.toAffine();return Xe(Uint8Array.from([4]),r.toBytes(b.x),r.toBytes(b.y))}),s=t.fromBytes||(x=>{let d=x.subarray(1),h=r.fromBytes(d.subarray(0,r.BYTES)),b=r.fromBytes(d.subarray(r.BYTES,2*r.BYTES));return{x:h,y:b}});function i(x){let{a:d,b:h}=t,b=r.sqr(x),v=r.mul(b,x);return r.add(r.add(v,r.mul(x,d)),h)}if(!r.eql(r.sqr(t.Gy),i(t.Gx)))throw new Error("bad generator point: equation left != right");function a(x){return Cn(x,ce,t.n)}function c(x){let{allowedPrivateKeyLengths:d,nByteLength:h,wrapPrivateKey:b,n:v}=t;if(d&&typeof x!="bigint"){if(Sn(x)&&(x=ko(x)),typeof x!="string"||!d.includes(x.length))throw new Error("invalid private key");x=x.padStart(h*2,"0")}let A;try{A=typeof x=="bigint"?x:rt(Be("private key",x,h))}catch{throw new Error("invalid private key, expected hex or "+h+" bytes, got "+typeof x)}return b&&(A=Ee(A,v)),fr("private key",A,ce,v),A}function u(x){if(!(x instanceof l))throw new Error("ProjectivePoint expected")}let p=Qp((x,d)=>{let{px:h,py:b,pz:v}=x;if(r.eql(v,r.ONE))return{x:h,y:b};let A=x.is0();d==null&&(d=A?r.ONE:r.inv(v));let k=r.mul(h,d),S=r.mul(b,d),T=r.mul(v,d);if(A)return{x:r.ZERO,y:r.ZERO};if(!r.eql(T,r.ONE))throw new Error("invZ was invalid");return{x:k,y:S}}),f=Qp(x=>{if(x.is0()){if(t.allowInfinityPoint&&!r.is0(x.py))return;throw new Error("bad point: ZERO")}let{x:d,y:h}=x.toAffine();if(!r.isValid(d)||!r.isValid(h))throw new Error("bad point: x or y not FE");let b=r.sqr(h),v=i(d);if(!r.eql(b,v))throw new Error("bad point: equation left != right");if(!x.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class l{constructor(d,h,b){if(d==null||!r.isValid(d))throw new Error("x required");if(h==null||!r.isValid(h))throw new Error("y required");if(b==null||!r.isValid(b))throw new Error("z required");this.px=d,this.py=h,this.pz=b,Object.freeze(this)}static fromAffine(d){let{x:h,y:b}=d||{};if(!d||!r.isValid(h)||!r.isValid(b))throw new Error("invalid affine point");if(d instanceof l)throw new Error("projective point not allowed");let v=A=>r.eql(A,r.ZERO);return v(h)&&v(b)?l.ZERO:new l(h,b,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(d){let h=r.invertBatch(d.map(b=>b.pz));return d.map((b,v)=>b.toAffine(h[v])).map(l.fromAffine)}static fromHex(d){let h=l.fromAffine(s(Be("pointHex",d)));return h.assertValidity(),h}static fromPrivateKey(d){return l.BASE.multiply(c(d))}static msm(d,h){return _d(l,n,d,h)}_setWindowSize(d){y.setWindowSize(this,d)}assertValidity(){f(this)}hasEvenY(){let{y:d}=this.toAffine();if(r.isOdd)return!r.isOdd(d);throw new Error("Field doesn't support isOdd")}equals(d){u(d);let{px:h,py:b,pz:v}=this,{px:A,py:k,pz:S}=d,T=r.eql(r.mul(h,S),r.mul(A,v)),B=r.eql(r.mul(b,S),r.mul(k,v));return T&&B}negate(){return new l(this.px,r.neg(this.py),this.pz)}double(){let{a:d,b:h}=t,b=r.mul(h,pc),{px:v,py:A,pz:k}=this,S=r.ZERO,T=r.ZERO,B=r.ZERO,P=r.mul(v,v),H=r.mul(A,A),U=r.mul(k,k),L=r.mul(v,A);return L=r.add(L,L),B=r.mul(v,k),B=r.add(B,B),S=r.mul(d,B),T=r.mul(b,U),T=r.add(S,T),S=r.sub(H,T),T=r.add(H,T),T=r.mul(S,T),S=r.mul(L,S),B=r.mul(b,B),U=r.mul(d,U),L=r.sub(P,U),L=r.mul(d,L),L=r.add(L,B),B=r.add(P,P),P=r.add(B,P),P=r.add(P,U),P=r.mul(P,L),T=r.add(T,P),U=r.mul(A,k),U=r.add(U,U),P=r.mul(U,L),S=r.sub(S,P),B=r.mul(U,H),B=r.add(B,B),B=r.add(B,B),new l(S,T,B)}add(d){u(d);let{px:h,py:b,pz:v}=this,{px:A,py:k,pz:S}=d,T=r.ZERO,B=r.ZERO,P=r.ZERO,H=t.a,U=r.mul(t.b,pc),L=r.mul(h,A),ne=r.mul(b,k),R=r.mul(v,S),O=r.add(h,b),N=r.add(A,k);O=r.mul(O,N),N=r.add(L,ne),O=r.sub(O,N),N=r.add(h,v);let q=r.add(A,S);return N=r.mul(N,q),q=r.add(L,R),N=r.sub(N,q),q=r.add(b,v),T=r.add(k,S),q=r.mul(q,T),T=r.add(ne,R),q=r.sub(q,T),P=r.mul(H,N),T=r.mul(U,R),P=r.add(T,P),T=r.sub(ne,P),P=r.add(ne,P),B=r.mul(T,P),ne=r.add(L,L),ne=r.add(ne,L),R=r.mul(H,R),N=r.mul(U,N),ne=r.add(ne,R),R=r.sub(L,R),R=r.mul(H,R),N=r.add(N,R),L=r.mul(ne,N),B=r.add(B,L),L=r.mul(q,N),T=r.mul(O,T),T=r.sub(T,L),L=r.mul(O,ne),P=r.mul(q,P),P=r.add(P,L),new l(T,B,P)}subtract(d){return this.add(d.negate())}is0(){return this.equals(l.ZERO)}wNAF(d){return y.wNAFCached(this,d,l.normalizeZ)}multiplyUnsafe(d){let{endo:h,n:b}=t;fr("scalar",d,$t,b);let v=l.ZERO;if(d===$t)return v;if(this.is0()||d===ce)return this;if(!h||y.hasPrecomputes(this))return y.wNAFCachedUnsafe(this,d,l.normalizeZ);let{k1neg:A,k1:k,k2neg:S,k2:T}=h.splitScalar(d),B=v,P=v,H=this;for(;k>$t||T>$t;)k&ce&&(B=B.add(H)),T&ce&&(P=P.add(H)),H=H.double(),k>>=ce,T>>=ce;return A&&(B=B.negate()),S&&(P=P.negate()),P=new l(r.mul(P.px,h.beta),P.py,P.pz),B.add(P)}multiply(d){let{endo:h,n:b}=t;fr("scalar",d,ce,b);let v,A;if(h){let{k1neg:k,k1:S,k2neg:T,k2:B}=h.splitScalar(d),{p:P,f:H}=this.wNAF(S),{p:U,f:L}=this.wNAF(B);P=y.constTimeNegate(k,P),U=y.constTimeNegate(T,U),U=new l(r.mul(U.px,h.beta),U.py,U.pz),v=P.add(U),A=H.add(L)}else{let{p:k,f:S}=this.wNAF(d);v=k,A=S}return l.normalizeZ([v,A])[0]}multiplyAndAddUnsafe(d,h,b){let v=l.BASE,A=(S,T)=>T===$t||T===ce||!S.equals(v)?S.multiplyUnsafe(T):S.multiply(T),k=A(this,h).add(A(d,b));return k.is0()?void 0:k}toAffine(d){return p(this,d)}isTorsionFree(){let{h:d,isTorsionFree:h}=t;if(d===ce)return!0;if(h)return h(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:d,clearCofactor:h}=t;return d===ce?this:h?h(l,this):this.multiplyUnsafe(t.h)}toRawBytes(d=!0){return Po("isCompressed",d),this.assertValidity(),o(l,this,d)}toHex(d=!0){return Po("isCompressed",d),ko(this.toRawBytes(d))}}l.BASE=new l(t.Gx,t.Gy,r.ONE),l.ZERO=new l(r.ZERO,r.ONE,r.ZERO);let m=t.nBitLength,y=Rd(l,t.endo?Math.ceil(m/2):m);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:i,isWithinCurveOrder:a}}function wg(e){let t=uf(e);return lr(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function Od(e){let t=wg(e),{Fp:r,n}=t,o=r.BYTES+1,s=2*r.BYTES+1;function i(R){return Ee(R,n)}function a(R){return ac(R,n)}let{ProjectivePoint:c,normPrivateKeyToScalar:u,weierstrassEquation:p,isWithinCurveOrder:f}=gg({...t,toBytes(R,O,N){let q=O.toAffine(),D=r.toBytes(q.x),F=Xe;return Po("isCompressed",N),N?F(Uint8Array.from([O.hasEvenY()?2:3]),D):F(Uint8Array.from([4]),D,r.toBytes(q.y))},fromBytes(R){let O=R.length,N=R[0],q=R.subarray(1);if(O===o&&(N===2||N===3)){let D=rt(q);if(!Cn(D,ce,r.ORDER))throw new Error("Point is not on curve");let F=p(D),Q;try{Q=r.sqrt(F)}catch(I){let G=I instanceof Error?": "+I.message:"";throw new Error("Point is not on curve"+G)}let fe=(Q&ce)===ce;return(N&1)===1!==fe&&(Q=r.neg(Q)),{x:D,y:Q}}else if(O===s&&N===4){let D=r.fromBytes(q.subarray(0,r.BYTES)),F=r.fromBytes(q.subarray(r.BYTES,2*r.BYTES));return{x:D,y:F}}else{let D=o,F=s;throw new Error("invalid Point, expected length of "+D+", or uncompressed "+F+", got "+O)}}}),l=R=>ko(Kt(R,t.nByteLength));function m(R){let O=n>>ce;return R>O}function y(R){return m(R)?i(-R):R}let x=(R,O,N)=>rt(R.slice(O,N));class d{constructor(O,N,q){fr("r",O,ce,n),fr("s",N,ce,n),this.r=O,this.s=N,q!=null&&(this.recovery=q),Object.freeze(this)}static fromCompact(O){let N=t.nByteLength;return O=Be("compactSignature",O,N*2),new d(x(O,0,N),x(O,N,2*N))}static fromDER(O){let{r:N,s:q}=mr.toSig(Be("DER",O));return new d(N,q)}assertValidity(){}addRecoveryBit(O){return new d(this.r,this.s,O)}recoverPublicKey(O){let{r:N,s:q,recovery:D}=this,F=S(Be("msgHash",O));if(D==null||![0,1,2,3].includes(D))throw new Error("recovery id invalid");let Q=D===2||D===3?N+t.n:N;if(Q>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let fe=(D&1)===0?"02":"03",w=c.fromHex(fe+l(Q)),I=a(Q),G=i(-F*I),Z=i(q*I),Y=c.BASE.multiplyAndAddUnsafe(w,G,Z);if(!Y)throw new Error("point at infinify");return Y.assertValidity(),Y}hasHighS(){return m(this.s)}normalizeS(){return this.hasHighS()?new d(this.r,i(-this.s),this.recovery):this}toDERRawBytes(){return Xs(this.toDERHex())}toDERHex(){return mr.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Xs(this.toCompactHex())}toCompactHex(){return l(this.r)+l(this.s)}}let h={isValidPrivateKey(R){try{return u(R),!0}catch{return!1}},normPrivateKeyToScalar:u,randomPrivateKey:()=>{let R=rf(t.n);return Cd(t.randomBytes(R),t.n)},precompute(R=8,O=c.BASE){return O._setWindowSize(R),O.multiply(BigInt(3)),O}};function b(R,O=!0){return c.fromPrivateKey(R).toRawBytes(O)}function v(R){let O=Sn(R),N=typeof R=="string",q=(O||N)&&R.length;return O?q===o||q===s:N?q===2*o||q===2*s:R instanceof c}function A(R,O,N=!0){if(v(R))throw new Error("first arg must be private key");if(!v(O))throw new Error("second arg must be public key");return c.fromHex(O).multiply(u(R)).toRawBytes(N)}let k=t.bits2int||function(R){if(R.length>8192)throw new Error("input is too large");let O=rt(R),N=R.length*8-t.nBitLength;return N>0?O>>BigInt(N):O},S=t.bits2int_modN||function(R){return i(k(R))},T=In(t.nBitLength);function B(R){return fr("num < 2^"+t.nBitLength,R,$t,T),Kt(R,t.nByteLength)}function P(R,O,N=H){if(["recovered","canonical"].some(se=>se in N))throw new Error("sign() legacy options not supported");let{hash:q,randomBytes:D}=t,{lowS:F,prehash:Q,extraEntropy:fe}=N;F==null&&(F=!0),R=Be("msgHash",R),Nd(N),Q&&(R=Be("prehashed msgHash",q(R)));let w=S(R),I=u(O),G=[B(I),B(w)];if(fe!=null&&fe!==!1){let se=fe===!0?D(r.BYTES):fe;G.push(Be("extraEntropy",se))}let Z=Xe(...G),Y=w;function le(se){let ie=k(se);if(!f(ie))return;let pe=a(ie),$e=c.BASE.multiply(ie).toAffine(),gr=i($e.x);if(gr===$t)return;let zn=i(pe*i(Y+gr*I));if(zn===$t)return;let cn=($e.x===gr?0:2)|Number($e.y&ce),rp=zn;return F&&m(zn)&&(rp=y(zn),cn^=1),new d(gr,rp,cn)}return{seed:Z,k2sig:le}}let H={lowS:t.lowS,prehash:!1},U={lowS:t.lowS,prehash:!1};function L(R,O,N=H){let{seed:q,k2sig:D}=P(R,O,N),F=t;return Ed(F.hash.outputLen,F.nByteLength,F.hmac)(q,D)}c.BASE._setWindowSize(8);function ne(R,O,N,q=U){let D=R;O=Be("msgHash",O),N=Be("publicKey",N);let{lowS:F,prehash:Q,format:fe}=q;if(Nd(q),"strict"in q)throw new Error("options.strict was renamed to lowS");if(fe!==void 0&&fe!=="compact"&&fe!=="der")throw new Error("format must be compact or der");let w=typeof D=="string"||Sn(D),I=!w&&!fe&&typeof D=="object"&&D!==null&&typeof D.r=="bigint"&&typeof D.s=="bigint";if(!w&&!I)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let G,Z;try{if(I&&(G=new d(D.r,D.s)),w){try{fe!=="compact"&&(G=d.fromDER(D))}catch(cn){if(!(cn instanceof mr.Err))throw cn}!G&&fe!=="der"&&(G=d.fromCompact(D))}Z=c.fromHex(N)}catch{return!1}if(!G||F&&G.hasHighS())return!1;Q&&(O=t.hash(O));let{r:Y,s:le}=G,se=S(O),ie=a(le),pe=i(se*ie),$e=i(Y*ie),gr=c.BASE.multiplyAndAddUnsafe(Z,pe,$e)?.toAffine();return gr?i(gr.x)===Y:!1}return{CURVE:t,getPublicKey:b,getSharedSecret:A,sign:L,verify:ne,ProjectivePoint:c,Signature:d,utils:h}}function vg(e,t){let r=e.ORDER,n=$t;for(let y=r-ce;y%Lr===$t;y/=Lr)n+=ce;let o=n,s=Lr<{let d=f,h=e.pow(x,u),b=e.sqr(h);b=e.mul(b,x);let v=e.mul(y,b);v=e.pow(v,c),v=e.mul(v,h),h=e.mul(v,x),b=e.mul(v,y);let A=e.mul(b,h);v=e.pow(A,p);let k=e.eql(v,e.ONE);h=e.mul(b,l),v=e.mul(A,d),b=e.cmov(h,b,k),A=e.cmov(v,A,k);for(let S=o;S>ce;S--){let T=S-Lr;T=Lr<{let b=e.sqr(h),v=e.mul(d,h);b=e.mul(b,v);let A=e.pow(b,y);A=e.mul(A,v);let k=e.mul(A,x),S=e.mul(e.sqr(A),h),T=e.eql(S,d),B=e.cmov(k,A,T);return{isValid:T,value:B}}}return m}function Md(e,t){if(cc(e),!e.isValid(t.A)||!e.isValid(t.B)||!e.isValid(t.Z))throw new Error("mapToCurveSimpleSWU: invalid opts");let r=vg(e,t.Z);if(!e.isOdd)throw new Error("Fp.isOdd is not implemented!");return n=>{let o,s,i,a,c,u,p,f;o=e.sqr(n),o=e.mul(o,t.Z),s=e.sqr(o),s=e.add(s,o),i=e.add(s,e.ONE),i=e.mul(i,t.B),a=e.cmov(t.Z,e.neg(s),!e.eql(s,e.ZERO)),a=e.mul(a,t.A),s=e.sqr(i),u=e.sqr(a),c=e.mul(u,t.A),s=e.add(s,c),s=e.mul(s,i),u=e.mul(u,a),c=e.mul(u,t.B),s=e.add(s,c),p=e.mul(o,i);let{isValid:l,value:m}=r(s,u);f=e.mul(o,n),f=e.mul(f,m),p=e.cmov(p,i,l),f=e.cmov(f,m,l);let y=e.isOdd(n)===e.isOdd(f);return f=e.cmov(e.neg(f),f,y),p=e.div(p,a),{x:p,y:f}}}var pf,mr,$t,ce,Lr,pc,Fd,ff=E(()=>{"use strict";$d();Qs();Bo();pf=class extends Error{constructor(t=""){super(t)}},mr={Err:pf,_tlv:{encode:(e,t)=>{let{Err:r}=mr;if(e<0||e>256)throw new r("tlv.encode: wrong tag");if(t.length&1)throw new r("tlv.encode: unpadded data");let n=t.length/2,o=Js(n);if(o.length/2&128)throw new r("tlv.encode: long form length too big");let s=n>127?Js(o.length/2|128):"";return Js(e)+s+o+t},decode(e,t){let{Err:r}=mr,n=0;if(e<0||e>256)throw new r("tlv.encode: wrong tag");if(t.length<2||t[n++]!==e)throw new r("tlv.decode: wrong tlv");let o=t[n++],s=!!(o&128),i=0;if(!s)i=o;else{let c=o&127;if(!c)throw new r("tlv.decode(long): indefinite length not supported");if(c>4)throw new r("tlv.decode(long): byte length is too big");let u=t.subarray(n,n+c);if(u.length!==c)throw new r("tlv.decode: length bytes not complete");if(u[0]===0)throw new r("tlv.decode(long): zero leftmost byte");for(let p of u)i=i<<8|p;if(n+=c,i<128)throw new r("tlv.decode(long): not minimal encoding")}let a=t.subarray(n,n+i);if(a.length!==i)throw new r("tlv.decode: wrong value length");return{v:a,l:t.subarray(n+i)}}},_int:{encode(e){let{Err:t}=mr;if(e<$t)throw new t("integer: negative integers are not allowed");let r=Js(e);if(Number.parseInt(r[0],16)&8&&(r="00"+r),r.length&1)throw new t("unexpected DER parsing assertion: unpadded hex");return r},decode(e){let{Err:t}=mr;if(e[0]&128)throw new t("invalid signature integer: negative");if(e[0]===0&&!(e[1]&128))throw new t("invalid signature integer: unnecessary leading zero");return rt(e)}},toSig(e){let{Err:t,_int:r,_tlv:n}=mr,o=Be("signature",e),{v:s,l:i}=n.decode(48,o);if(i.length)throw new t("invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,s),{v:u,l:p}=n.decode(2,c);if(p.length)throw new t("invalid signature: left bytes after parsing");return{r:r.decode(a),s:r.decode(u)}},hexFromSig(e){let{_tlv:t,_int:r}=mr,n=t.encode(2,r.encode(e.r)),o=t.encode(2,r.encode(e.s)),s=n+o;return t.encode(48,s)}},$t=BigInt(0),ce=BigInt(1),Lr=BigInt(2),pc=BigInt(3),Fd=BigInt(4)});function Eg(e){return{hash:e,hmac:(t,...r)=>Gp(e,t,km(...r)),randomBytes:Ba}}function zd(e,t){let r=n=>Od({...e,...Eg(n)});return{...r(t),create:r}}var Ud=E(()=>{"use strict";yd();xn();ff();});function Hr(e,t){if(ei(e),ei(t),e<0||e>=1<<8*t)throw new Error("invalid I2OSP input: "+e);let r=Array.from({length:t}).fill(0);for(let n=t-1;n>=0;n--)r[n]=e&255,e>>>=8;return new Uint8Array(r)}function Tg(e,t){let r=new Uint8Array(e.length);for(let n=0;n255&&(t=n(Xe(ic("H2C-OVERSIZE-DST-"),t)));let{outputLen:o,blockLen:s}=n,i=Math.ceil(r/o);if(r>65535||i>255)throw new Error("expand_message_xmd: invalid lenInBytes");let a=Xe(t,Hr(t.length,1)),c=Hr(0,s),u=Hr(r,2),p=new Array(i),f=n(Xe(c,e,u,Hr(0,1),a));p[0]=n(Xe(f,Hr(1,1),a));for(let m=1;m<=i;m++){let y=[Tg(f,p[m-1]),Hr(m+1,1),a];p[m]=n(Xe(...y))}return Xe(...p).slice(0,r)}function Cg(e,t,r,n,o){if(pr(e),pr(t),ei(r),t.length>255){let s=Math.ceil(2*n/8);t=o.create({dkLen:s}).update(ic("H2C-OVERSIZE-DST-")).update(t).digest()}if(r>65535||t.length>255)throw new Error("expand_message_xof: invalid lenInBytes");return o.create({dkLen:r}).update(e).update(Hr(r,2)).update(t).update(Hr(t.length,1)).digest()}function Ld(e,t,r){lr(r,{DST:"stringOrUint8Array",p:"bigint",m:"isSafeInteger",k:"isSafeInteger",hash:"hash"});let{p:n,k:o,m:s,hash:i,expand:a,DST:c}=r;pr(e),ei(t);let u=typeof c=="string"?ic(c):c,p=n.toString(2).length,f=Math.ceil((p+o)/8),l=t*s*f,m;if(a==="xmd")m=Sg(e,u,l,i);else if(a==="xof")m=Cg(e,u,l,o,i);else if(a==="_internal_pass")m=e;else throw new Error('expand must be "xmd" or "xof"');let y=new Array(t);for(let x=0;xArray.from(n).reverse());return(n,o)=>{let[s,i,a,c]=r.map(u=>u.reduce((p,f)=>e.add(e.mul(p,n),f)));if(e.is0(i)||e.is0(c))throw new Error("bad point: ZERO");return n=e.div(s,i),o=e.mul(o,e.div(a,c)),{x:n,y:o}}}function Dd(e,t,r){if(typeof t!="function")throw new Error("mapToCurve() must be defined");return{hashToCurve(n,o){let s=Ld(n,2,{...r,DST:r.DST,...o}),i=e.fromAffine(t(s[0])),a=e.fromAffine(t(s[1])),c=i.add(a).clearCofactor();return c.assertValidity(),c},encodeToCurve(n,o){let s=Ld(n,1,{...r,DST:r.encodeDST,...o}),i=e.fromAffine(t(s[0])).clearCofactor();return i.assertValidity(),i},mapToCurve(n){if(!Array.isArray(n))throw new Error("mapToCurve: expected array of bigints");for(let s of n)if(typeof s!="bigint")throw new Error("mapToCurve: expected array of bigints");let o=e.fromAffine(t(n)).clearCofactor();return o.assertValidity(),o}}}var Ag,jd=E(()=>{"use strict";Qs();Bo();Ag=rt});var Xd={};np(Xd,{encodeToCurve:()=>Ng,hashToCurve:()=>$g,schnorr:()=>Bg,secp256k1:()=>kn});function Gd(e){let t=ni,r=BigInt(3),n=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,p=u*u*e%t,f=pt(p,r,t)*p%t,l=pt(f,r,t)*p%t,m=pt(l,lc,t)*u%t,y=pt(m,o,t)*m%t,x=pt(y,s,t)*y%t,d=pt(x,a,t)*x%t,h=pt(d,c,t)*d%t,b=pt(h,a,t)*x%t,v=pt(b,r,t)*p%t,A=pt(v,i,t)*y%t,k=pt(A,n,t)*u%t,S=pt(k,lc,t);if(!Dr.eql(Dr.sqr(S),e))throw new Error("Cannot find square root");return S}function mc(e,...t){let r=Vd[e];if(r===void 0){let n=Ur(Uint8Array.from(e,o=>o.charCodeAt(0)));r=Xe(n,n),Vd[e]=r}return Ur(Xe(r,...t))}function df(e){let t=kn.utils.normPrivateKeyToScalar(e),r=yf.fromPrivateKey(t);return{scalar:r.hasEvenY()?t:ri(-t),bytes:hf(r)}}function Kd(e){fr("x",e,ti,ni);let t=lf(e*e),r=lf(t*e+BigInt(7)),n=Gd(r);n%lc!==Wd&&(n=lf(-n));let o=new yf(e,n,ti);return o.assertValidity(),o}function Yd(...e){return ri(Ro(mc("BIP0340/challenge",...e)))}function Pg(e){return df(e).bytes}function kg(e,t,r=Ba(32)){let n=Be("message",e),{bytes:o,scalar:s}=df(t),i=Be("auxRand",r,32),a=mf(s^Ro(mc("BIP0340/aux",i))),c=mc("BIP0340/nonce",a,o,n),u=ri(Ro(c));if(u===Wd)throw new Error("sign failed: k is zero");let{bytes:p,scalar:f}=df(u),l=Yd(p,o,n),m=new Uint8Array(64);if(m.set(p,0),m.set(mf(ri(f+l*s)),32),!Zd(m,n,o))throw new Error("sign: Invalid signature produced");return m}function Zd(e,t,r){let n=Be("signature",e,64),o=Be("message",t),s=Be("publicKey",r,32);try{let i=Kd(Ro(s)),a=Ro(n.subarray(0,32));if(!Cn(a,ti,ni))return!1;let c=Ro(n.subarray(32,64));if(!Cn(c,ti,fc))return!1;let u=Yd(mf(a),hf(i),o),p=Ig(i,c,ri(-u));return!(!p||!p.hasEvenY()||p.toAffine().x!==a)}catch{return!1}}var ni,fc,ti,lc,qd,Dr,kn,Wd,Vd,hf,mf,lf,ri,yf,Ig,Ro,Bg,Rg,_g,Jd,$g,Ng,xf=E(()=>{"use strict";hd();xn();Ud();jd();Qs();Bo();ff();ni=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),fc=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),ti=BigInt(1),lc=BigInt(2),qd=(e,t)=>(e+t/lc)/t;Dr=uc(ni,void 0,void 0,{sqrt:Gd}),kn=zd({a:BigInt(0),b:BigInt(7),Fp:Dr,n:fc,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=fc,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-ti*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),o=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=r,i=BigInt("0x100000000000000000000000000000000"),a=qd(s*e,t),c=qd(-n*e,t),u=Ee(e-a*r-c*o,t),p=Ee(-a*n-c*s,t),f=u>i,l=p>i;if(f&&(u=t-u),l&&(p=t-p),u>i||p>i)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:f,k1:u,k2neg:l,k2:p}}}},Ur),Wd=BigInt(0),Vd={};hf=e=>e.toRawBytes(!0).slice(1),mf=e=>Kt(e,32),lf=e=>Ee(e,ni),ri=e=>Ee(e,fc),yf=kn.ProjectivePoint,Ig=(e,t,r)=>yf.BASE.multiplyAndAddUnsafe(e,t,r);Ro=rt;Bg={getPublicKey:Pg,sign:kg,verify:Zd,utils:{randomPrivateKey:kn.utils.randomPrivateKey,lift_x:Kd,pointToBytes:hf,numberToBytesBE:Kt,bytesToNumberBE:rt,taggedHash:mc,mod:Ee}},Rg=Hd(Dr,[["0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7","0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581","0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262","0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c"],["0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b","0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14","0x0000000000000000000000000000000000000000000000000000000000000001"],["0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c","0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3","0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931","0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84"],["0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b","0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573","0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f","0x0000000000000000000000000000000000000000000000000000000000000001"]].map(e=>e.map(t=>BigInt(t)))),_g=Md(Dr,{A:BigInt("0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533"),B:BigInt("1771"),Z:Dr.create(BigInt("-11"))}),Jd=Dd(kn.ProjectivePoint,e=>{let{x:t,y:r}=_g(Dr.create(e[0]));return Rg(t,r)},{DST:"secp256k1_XMD:SHA-256_SSWU_RO_",encodeDST:"secp256k1_XMD:SHA-256_SSWU_NU_",p:Dr.ORDER,m:1,k:128,expand:"xmd",hash:Ur}),$g=Jd.hashToCurve,Ng=Jd.encodeToCurve});var dr,nt,_o,$o,No,Fo,Oo,Mo,zo,Uo,gt,wt,hr=E(()=>{"use strict";no();W();dr=class extends g{constructor({cause:t,message:r}={}){let n=r?.replace("execution reverted: ","")?.replace("execution reverted","");super(`Execution reverted ${n?`with reason: ${n}`:"for an unknown reason"}.`,{cause:t,name:"ExecutionRevertedError"})}};Object.defineProperty(dr,"code",{enumerable:!0,configurable:!0,writable:!0,value:3});Object.defineProperty(dr,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted/});nt=class extends g{constructor({cause:t,maxFeePerGas:r}={}){super(`The fee cap (\`maxFeePerGas\`${r?` = ${ke(r)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:t,name:"FeeCapTooHighError"})}};Object.defineProperty(nt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});_o=class extends g{constructor({cause:t,maxFeePerGas:r}={}){super(`The fee cap (\`maxFeePerGas\`${r?` = ${ke(r)}`:""} gwei) cannot be lower than the block base fee.`,{cause:t,name:"FeeCapTooLowError"})}};Object.defineProperty(_o,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/});$o=class extends g{constructor({cause:t,nonce:r}={}){super(`Nonce provided for the transaction ${r?`(${r}) `:""}is higher than the next one expected.`,{cause:t,name:"NonceTooHighError"})}};Object.defineProperty($o,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});No=class extends g{constructor({cause:t,nonce:r}={}){super([`Nonce provided for the transaction ${r?`(${r}) `:""}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join(` +`),{cause:t,name:"NonceTooLowError"})}};Object.defineProperty(No,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/});Fo=class extends g{constructor({cause:t,nonce:r}={}){super(`Nonce provided for the transaction ${r?`(${r}) `:""}exceeds the maximum allowed nonce.`,{cause:t,name:"NonceMaxValueError"})}};Object.defineProperty(Fo,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/});Oo=class extends g{constructor({cause:t}={}){super(["The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."].join(` +`),{cause:t,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."],name:"InsufficientFundsError"})}};Object.defineProperty(Oo,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/});Mo=class extends g{constructor({cause:t,gas:r}={}){super(`The amount of gas ${r?`(${r}) `:""}provided for the transaction exceeds the limit allowed for the block.`,{cause:t,name:"IntrinsicGasTooHighError"})}};Object.defineProperty(Mo,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});zo=class extends g{constructor({cause:t,gas:r}={}){super(`The amount of gas ${r?`(${r}) `:""}provided for the transaction is too low.`,{cause:t,name:"IntrinsicGasTooLowError"})}};Object.defineProperty(zo,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});Uo=class extends g{constructor({cause:t}){super("The transaction type is not supported for this chain.",{cause:t,name:"TransactionTypeNotSupportedError"})}};Object.defineProperty(Uo,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});gt=class extends g{constructor({cause:t,maxPriorityFeePerGas:r,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${r?` = ${ke(r)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${ke(n)} gwei`:""}).`].join(` +`),{cause:t,name:"TipAboveFeeCapError"})}};Object.defineProperty(gt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});wt=class extends g{constructor({cause:t}){super(`An error occurred while executing: ${t?.shortMessage}`,{cause:t,name:"UnknownNodeError"})}}});function jr(e,t){let r=(e.details||"").toLowerCase(),n=e instanceof g?e.walk(o=>o?.code===dr.code):e;return n instanceof g?new dr({cause:e,message:n.details}):dr.nodeMessage.test(r)?new dr({cause:e,message:e.details}):nt.nodeMessage.test(r)?new nt({cause:e,maxFeePerGas:t?.maxFeePerGas}):_o.nodeMessage.test(r)?new _o({cause:e,maxFeePerGas:t?.maxFeePerGas}):$o.nodeMessage.test(r)?new $o({cause:e,nonce:t?.nonce}):No.nodeMessage.test(r)?new No({cause:e,nonce:t?.nonce}):Fo.nodeMessage.test(r)?new Fo({cause:e,nonce:t?.nonce}):Oo.nodeMessage.test(r)?new Oo({cause:e}):Mo.nodeMessage.test(r)?new Mo({cause:e,gas:t?.gas}):zo.nodeMessage.test(r)?new zo({cause:e,gas:t?.gas}):Uo.nodeMessage.test(r)?new Uo({cause:e}):gt.nodeMessage.test(r)?new gt({cause:e,maxFeePerGas:t?.maxFeePerGas,maxPriorityFeePerGas:t?.maxPriorityFeePerGas}):new wt({cause:e})}var oi=E(()=>{"use strict";W();hr()});function qr(e,{format:t}){if(!t)return{};let r={};function n(s){let i=Object.keys(s);for(let a of i)a in e&&(r[a]=e[a]),s[a]&&typeof s[a]=="object"&&!Array.isArray(s[a])&&n(s[a])}let o=t(e||{});return n(o),r}var si=E(()=>{"use strict"});function Lo(e,t){return({exclude:r,format:n})=>({exclude:r,format:o=>{let s=t(o);if(r)for(let i of r)delete s[i];return{...s,...n(o)}},type:e})}var xc=E(()=>{"use strict"});function lt(e){let t={};return typeof e.authorizationList<"u"&&(t.authorizationList=zg(e.authorizationList)),typeof e.accessList<"u"&&(t.accessList=e.accessList),typeof e.blobVersionedHashes<"u"&&(t.blobVersionedHashes=e.blobVersionedHashes),typeof e.blobs<"u"&&(typeof e.blobs[0]!="string"?t.blobs=e.blobs.map(r=>te(r)):t.blobs=e.blobs),typeof e.data<"u"&&(t.data=e.data),typeof e.from<"u"&&(t.from=e.from),typeof e.gas<"u"&&(t.gas=_(e.gas)),typeof e.gasPrice<"u"&&(t.gasPrice=_(e.gasPrice)),typeof e.maxFeePerBlobGas<"u"&&(t.maxFeePerBlobGas=_(e.maxFeePerBlobGas)),typeof e.maxFeePerGas<"u"&&(t.maxFeePerGas=_(e.maxFeePerGas)),typeof e.maxPriorityFeePerGas<"u"&&(t.maxPriorityFeePerGas=_(e.maxPriorityFeePerGas)),typeof e.nonce<"u"&&(t.nonce=_(e.nonce)),typeof e.to<"u"&&(t.to=e.to),typeof e.type<"u"&&(t.type=Mg[e.type]),typeof e.value<"u"&&(t.value=_(e.value)),t}function zg(e){return e.map(t=>({address:t.address,r:t.r?_(BigInt(t.r)):t.r,s:t.s?_(BigInt(t.s)):t.s,chainId:_(t.chainId),nonce:_(t.nonce),...typeof t.yParity<"u"?{yParity:_(t.yParity)}:{},...typeof t.v<"u"&&typeof t.yParity>"u"?{v:_(t.v)}:{}}))}var Mg,sh,Vr=E(()=>{"use strict";V();xc();Mg={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"};sh=Lo("transactionRequest",lt)});function ih(e){if(!(!e||e.length===0))return e.reduce((t,{slot:r,value:n})=>{if(r.length!==66)throw new Ms({size:r.length,targetSize:66,type:"hex"});if(n.length!==66)throw new Ms({size:n.length,targetSize:66,type:"hex"});return t[r]=n,t},{})}function Ug(e){let{balance:t,nonce:r,state:n,stateDiff:o,code:s}=e,i={};if(s!==void 0&&(i.code=s),t!==void 0&&(i.balance=_(t)),r!==void 0&&(i.nonce=_(r)),n!==void 0&&(i.state=ih(n)),o!==void 0){if(i.state)throw new Ga;i.stateDiff=ih(o)}return i}function Ho(e){if(!e)return;let t={};for(let{address:r,...n}of e){if(!re(r,{strict:!1}))throw new ae({address:r});if(t[r])throw new Va({address:r});t[r]=Ug(n)}return t}var bc=E(()=>{"use strict";Rt();va();jp();yt();V()});var PI,kI,BI,RI,_I,$I,NI,FI,OI,MI,zI,UI,LI,HI,DI,jI,qI,VI,GI,WI,KI,YI,ZI,JI,XI,QI,eP,tP,rP,nP,oP,sP,iP,aP,cP,uP,pP,fP,lP,mP,dP,hP,yP,xP,bP,gP,wP,vP,EP,AP,TP,SP,CP,IP,PP,kP,BP,RP,_P,$P,NP,FP,OP,MP,zP,UP,LP,HP,DP,jP,qP,VP,GP,WP,KP,YP,ZP,JP,XP,QP,ek,tk,rk,nk,ok,sk,ik,ak,ck,uk,pk,fk,lk,mk,dk,Gr,gc=E(()=>{"use strict";PI=2n**(8n-1n)-1n,kI=2n**(16n-1n)-1n,BI=2n**(24n-1n)-1n,RI=2n**(32n-1n)-1n,_I=2n**(40n-1n)-1n,$I=2n**(48n-1n)-1n,NI=2n**(56n-1n)-1n,FI=2n**(64n-1n)-1n,OI=2n**(72n-1n)-1n,MI=2n**(80n-1n)-1n,zI=2n**(88n-1n)-1n,UI=2n**(96n-1n)-1n,LI=2n**(104n-1n)-1n,HI=2n**(112n-1n)-1n,DI=2n**(120n-1n)-1n,jI=2n**(128n-1n)-1n,qI=2n**(136n-1n)-1n,VI=2n**(144n-1n)-1n,GI=2n**(152n-1n)-1n,WI=2n**(160n-1n)-1n,KI=2n**(168n-1n)-1n,YI=2n**(176n-1n)-1n,ZI=2n**(184n-1n)-1n,JI=2n**(192n-1n)-1n,XI=2n**(200n-1n)-1n,QI=2n**(208n-1n)-1n,eP=2n**(216n-1n)-1n,tP=2n**(224n-1n)-1n,rP=2n**(232n-1n)-1n,nP=2n**(240n-1n)-1n,oP=2n**(248n-1n)-1n,sP=2n**(256n-1n)-1n,iP=-(2n**(8n-1n)),aP=-(2n**(16n-1n)),cP=-(2n**(24n-1n)),uP=-(2n**(32n-1n)),pP=-(2n**(40n-1n)),fP=-(2n**(48n-1n)),lP=-(2n**(56n-1n)),mP=-(2n**(64n-1n)),dP=-(2n**(72n-1n)),hP=-(2n**(80n-1n)),yP=-(2n**(88n-1n)),xP=-(2n**(96n-1n)),bP=-(2n**(104n-1n)),gP=-(2n**(112n-1n)),wP=-(2n**(120n-1n)),vP=-(2n**(128n-1n)),EP=-(2n**(136n-1n)),AP=-(2n**(144n-1n)),TP=-(2n**(152n-1n)),SP=-(2n**(160n-1n)),CP=-(2n**(168n-1n)),IP=-(2n**(176n-1n)),PP=-(2n**(184n-1n)),kP=-(2n**(192n-1n)),BP=-(2n**(200n-1n)),RP=-(2n**(208n-1n)),_P=-(2n**(216n-1n)),$P=-(2n**(224n-1n)),NP=-(2n**(232n-1n)),FP=-(2n**(240n-1n)),OP=-(2n**(248n-1n)),MP=-(2n**(256n-1n)),zP=2n**8n-1n,UP=2n**16n-1n,LP=2n**24n-1n,HP=2n**32n-1n,DP=2n**40n-1n,jP=2n**48n-1n,qP=2n**56n-1n,VP=2n**64n-1n,GP=2n**72n-1n,WP=2n**80n-1n,KP=2n**88n-1n,YP=2n**96n-1n,ZP=2n**104n-1n,JP=2n**112n-1n,XP=2n**120n-1n,QP=2n**128n-1n,ek=2n**136n-1n,tk=2n**144n-1n,rk=2n**152n-1n,nk=2n**160n-1n,ok=2n**168n-1n,sk=2n**176n-1n,ik=2n**184n-1n,ak=2n**192n-1n,ck=2n**200n-1n,uk=2n**208n-1n,pk=2n**216n-1n,fk=2n**224n-1n,lk=2n**232n-1n,mk=2n**240n-1n,dk=2n**248n-1n,Gr=2n**256n-1n});function ot(e){let{account:t,gasPrice:r,maxFeePerGas:n,maxPriorityFeePerGas:o,to:s}=e,i=t?K(t):void 0;if(i&&!re(i.address))throw new ae({address:i.address});if(s&&!re(s))throw new ae({address:s});if(typeof r<"u"&&(typeof n<"u"||typeof o<"u"))throw new Wa;if(n&&n>Gr)throw new nt({maxFeePerGas:n});if(o&&n&&o>n)throw new gt({maxFeePerGas:n,maxPriorityFeePerGas:o})}var Wr=E(()=>{"use strict";ve();gc();Rt();hr();_t();yt()});function Yt(e,t){if(!re(e,{strict:!1}))throw new ae({address:e});if(!re(t,{strict:!1}))throw new ae({address:t});return e.toLowerCase()===t.toLowerCase()}var Yo=E(()=>{"use strict";Rt();yt()});function st(e){let{abi:t,args:r,functionName:n,data:o}=e,s=t[0];if(n){let a=tt({abi:t,args:r,name:n});if(!a)throw new Ct(n,{docsPath:vf});s=a}if(s.type!=="function")throw new Ct(void 0,{docsPath:vf});if(!s.outputs)throw new Zn(s.name,{docsPath:vf});let i=ir(s.outputs,o);if(i&&i.length>1)return i;if(i&&i.length===1)return i[0]}var vf,Zr=E(()=>{"use strict";ye();Ws();_r();vf="/docs/contract/decodeFunctionResult"});var ai,Rc,xh,_c,bh,Ef,Af,Tf,Jr=E(()=>{"use strict";ai=[{inputs:[{components:[{name:"target",type:"address"},{name:"allowFailure",type:"bool"},{name:"callData",type:"bytes"}],name:"calls",type:"tuple[]"}],name:"aggregate3",outputs:[{components:[{name:"success",type:"bool"},{name:"returnData",type:"bytes"}],name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"}],Rc=[{name:"query",type:"function",stateMutability:"view",inputs:[{type:"tuple[]",name:"queries",components:[{type:"address",name:"sender"},{type:"string[]",name:"urls"},{type:"bytes",name:"data"}]}],outputs:[{type:"bool[]",name:"failures"},{type:"bytes[]",name:"responses"}]},{name:"HttpError",type:"error",inputs:[{type:"uint16",name:"status"},{type:"string",name:"message"}]}],xh=[{inputs:[],name:"ResolverNotFound",type:"error"},{inputs:[],name:"ResolverWildcardNotSupported",type:"error"},{inputs:[],name:"ResolverNotContract",type:"error"},{inputs:[{name:"returnData",type:"bytes"}],name:"ResolverError",type:"error"},{inputs:[{components:[{name:"status",type:"uint16"},{name:"message",type:"string"}],name:"errors",type:"tuple[]"}],name:"HttpError",type:"error"}],_c=[...xh,{name:"resolve",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes"},{name:"data",type:"bytes"}],outputs:[{name:"",type:"bytes"},{name:"address",type:"address"}]},{name:"resolve",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes"},{name:"data",type:"bytes"},{name:"gateways",type:"string[]"}],outputs:[{name:"",type:"bytes"},{name:"address",type:"address"}]}],bh=[...xh,{name:"reverse",type:"function",stateMutability:"view",inputs:[{type:"bytes",name:"reverseName"}],outputs:[{type:"string",name:"resolvedName"},{type:"address",name:"resolvedAddress"},{type:"address",name:"reverseResolver"},{type:"address",name:"resolver"}]},{name:"reverse",type:"function",stateMutability:"view",inputs:[{type:"bytes",name:"reverseName"},{type:"string[]",name:"gateways"}],outputs:[{type:"string",name:"resolvedName"},{type:"address",name:"resolvedAddress"},{type:"address",name:"reverseResolver"},{type:"address",name:"resolver"}]}],Ef=[{name:"text",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"key",type:"string"}],outputs:[{name:"",type:"string"}]}],Af=[{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"}],outputs:[{name:"",type:"address"}]},{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"coinType",type:"uint256"}],outputs:[{name:"",type:"bytes"}]}],Tf=[{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],outputs:[{type:"bool"}],stateMutability:"nonpayable",type:"function",name:"isValidSig"}]});var gh,wh=E(()=>{"use strict";gh="0x82ad56cb"});var $c,vh,Eh,Nc=E(()=>{"use strict";$c="0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe",vh="0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe",Eh="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572"});var Rn,Fc,Oc,ci,yr,Qo=E(()=>{"use strict";W();Rn=class extends g{constructor({blockNumber:t,chain:r,contract:n}){super(`Chain "${r.name}" does not support contract "${n.name}".`,{metaMessages:["This could be due to any of the following:",...t&&n.blockCreated&&n.blockCreated>t?[`- The contract "${n.name}" was not deployed until block ${n.blockCreated} (current block ${t}).`]:[`- The chain does not have the contract "${n.name}" configured.`]],name:"ChainDoesNotSupportContract"})}},Fc=class extends g{constructor({chain:t,currentChainId:r}){super(`The current chain of the wallet (id: ${r}) does not match the target chain for the transaction (id: ${t.id} \u2013 ${t.name}).`,{metaMessages:[`Current Chain ID: ${r}`,`Expected Chain ID: ${t.id} \u2013 ${t.name}`],name:"ChainMismatchError"})}},Oc=class extends g{constructor(){super(["No chain was provided to the request.","Please provide a chain with the `chain` argument on the Action, or by supplying a `chain` to WalletClient."].join(` +`),{name:"ChainNotFoundError"})}},ci=class extends g{constructor(){super("No chain was provided to the Client.",{name:"ClientChainNotConfiguredError"})}},yr=class extends g{constructor({chainId:t}){super(typeof t=="number"?`Chain ID "${t}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}});function _n(e){let{abi:t,args:r,bytecode:n}=e;if(!r||r.length===0)return n;let o=t.find(i=>"type"in i&&i.type==="constructor");if(!o)throw new ua({docsPath:Sf});if(!("inputs"in o))throw new _s({docsPath:Sf});if(!o.inputs||o.inputs.length===0)throw new _s({docsPath:Sf});let s=De(o.inputs,r);return Te([n,s])}var Sf,Mc=E(()=>{"use strict";ye();et();Dt();Sf="/docs/contract/encodeDeployData"});function Et({blockNumber:e,chain:t,contract:r}){let n=t?.contracts?.[r];if(!n)throw new Rn({chain:t,contract:{name:r}});if(e&&n.blockCreated&&n.blockCreated>e)throw new Rn({blockNumber:e,chain:t,contract:{name:r,blockCreated:n.blockCreated}});return n.address}var $n=E(()=>{"use strict";Qo()});function zc(e,{docsPath:t,...r}){let n=(()=>{let o=jr(e,r);return o instanceof wt?e:o})();return new io(n,{docsPath:t,...r})}var Cf=E(()=>{"use strict";Nr();hr();oi()});function es(){let e=()=>{},t=()=>{};return{promise:new Promise((n,o)=>{e=n,t=o}),resolve:e,reject:t}}var Uc=E(()=>{"use strict"});function Lc({fn:e,id:t,shouldSplitBatch:r,wait:n=0,sort:o}){let s=async()=>{let p=c();i();let f=p.map(({args:l})=>l);f.length!==0&&e(f).then(l=>{o&&Array.isArray(l)&&l.sort(o);for(let m=0;m{for(let m=0;mIf.delete(t),a=()=>c().map(({args:p})=>p),c=()=>If.get(t)||[],u=p=>If.set(t,[...c(),p]);return{flush:i,async schedule(p){let{promise:f,resolve:l,reject:m}=es();return r?.([...a(),p])&&s(),c().length>0?(u({args:p,resolve:l,reject:m}),f):(u({args:p,resolve:l,reject:m}),setTimeout(s,n),f)}}}var If,Pf=E(()=>{"use strict";Uc();If=new Map});var Hc,Dc,jc,Ah=E(()=>{"use strict";qe();W();Qa();Hc=class extends g{constructor({callbackSelector:t,cause:r,data:n,extraData:o,sender:s,urls:i}){super(r.shortMessage||"An error occurred while fetching for an offchain result.",{cause:r,metaMessages:[...r.metaMessages||[],r.metaMessages?.length?"":[],"Offchain Gateway Call:",i&&[" Gateway URL(s):",...i.map(a=>` ${wn(a)}`)],` Sender: ${s}`,` Data: ${n}`,` Callback selector: ${t}`,` Extra data: ${o}`].flat(),name:"OffchainLookupError"})}},Dc=class extends g{constructor({result:t,url:r}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${wn(r)}`,`Response: ${X(t)}`],name:"OffchainLookupResponseMalformedError"})}},jc=class extends g{constructor({sender:t,to:r}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${r}`,`OffchainLookup sender address: ${t}`],name:"OffchainLookupSenderMismatchError"})}}});function Th(e){let{abi:t,data:r}=e,n=xt(r,0,4),o=t.find(s=>s.type==="function"&&n===jt(Ce(s)));if(!o)throw new ha(n,{docsPath:"/docs/contract/decodeFunctionData"});return{functionName:o.name,args:"inputs"in o&&o.inputs&&o.inputs.length>0?ir(o.inputs,xt(r,4)):void 0}}var Sh=E(()=>{"use strict";ye();Rr();Qn();Ws();tr()});function Bf(e){let{abi:t,errorName:r,args:n}=e,o=t[0];if(r){let c=tt({abi:t,args:n,name:r});if(!c)throw new $s(r,{docsPath:kf});o=c}if(o.type!=="error")throw new $s(void 0,{docsPath:kf});let s=Ce(o),i=jt(s),a="0x";if(n&&n.length>0){if(!o.inputs)throw new ma(o.name,{docsPath:kf});a=De(o.inputs,n)}return Te([i,a])}var kf,Ch=E(()=>{"use strict";ye();et();Qn();Dt();tr();_r();kf="/docs/contract/encodeErrorResult"});function Ih(e){let{abi:t,functionName:r,result:n}=e,o=t[0];if(r){let i=tt({abi:t,name:r});if(!i)throw new Ct(r,{docsPath:Rf});o=i}if(o.type!=="function")throw new Ct(void 0,{docsPath:Rf});if(!o.outputs)throw new Zn(o.name,{docsPath:Rf});let s=(()=>{if(o.outputs.length===0)return[];if(o.outputs.length===1)return[n];if(Array.isArray(n))return n;throw new Jn(n)})();return De(o.outputs,s)}var Rf,Ph=E(()=>{"use strict";ye();Dt();_r();Rf="/docs/contract/encodeFunctionResult"});async function kh(e){let{data:t,ccipRequest:r}=e,{args:[n]}=Th({abi:Rc,data:t}),o=[],s=[];return await Promise.all(n.map(async(i,a)=>{try{s[a]=await r(i),o[a]=!1}catch(c){o[a]=!0,s[a]=Vg(c)}})),Ih({abi:Rc,functionName:"query",result:[o,s]})}function Vg(e){return e.name==="HttpRequestError"&&e.status?Bf({abi:Rc,errorName:"HttpError",args:[e.status,e.shortMessage]}):Bf({abi:[za],errorName:"Error",args:["shortMessage"in e?e.shortMessage:e.message]})}var ts,qc=E(()=>{"use strict";Jr();qs();Sh();Ch();Ph();ts="x-batch-gateway:true"});var _h={};np(_h,{ccipRequest:()=>Rh,offchainLookup:()=>Wg,offchainLookupAbiItem:()=>Bh,offchainLookupSignature:()=>Gg});async function Wg(e,{blockNumber:t,blockTag:r,data:n,to:o}){let{args:s}=Ha({data:n,abi:[Bh]}),[i,a,c,u,p]=s,{ccipRead:f}=e,l=f&&typeof f?.request=="function"?f.request:Rh;try{if(!Yt(o,i))throw new jc({sender:i,to:o});let m=a.includes(ts)?await kh({data:c,ccipRequest:l}):await l({data:c,sender:i,urls:a}),{data:y}=await Zt(e,{blockNumber:t,blockTag:r,data:Ze([u,De([{type:"bytes"},{type:"bytes"}],[m,p])]),to:o});return y}catch(m){throw new Hc({callbackSelector:u,cause:m,data:n,extraData:p,sender:i,urls:a})}}async function Rh({data:e,sender:t,urls:r}){let n=new Error("An unknown error occurred.");for(let o=0;o{"use strict";rs();Ah();En();Lp();Dt();Yo();et();St();qc();qe();Gg="0x556f1830",Bh={name:"OffchainLookup",type:"error",inputs:[{name:"sender",type:"address"},{name:"urls",type:"string[]"},{name:"callData",type:"bytes"},{name:"callbackFunction",type:"bytes4"},{name:"extraData",type:"bytes"}]}});async function Zt(e,t){let{account:r=e.account,batch:n=!!e.batch?.multicall,blockNumber:o,blockTag:s="latest",accessList:i,blobs:a,code:c,data:u,factory:p,factoryData:f,gas:l,gasPrice:m,maxFeePerBlobGas:y,maxFeePerGas:x,maxPriorityFeePerGas:d,nonce:h,to:b,value:v,stateOverride:A,...k}=t,S=r?K(r):void 0;if(c&&(p||f))throw new g("Cannot provide both `code` & `factory`/`factoryData` as parameters.");if(c&&b)throw new g("Cannot provide both `code` & `to` as parameters.");let T=c&&u,B=p&&f&&b&&u,P=T||B,H=T?Zg({code:c,data:u}):B?Jg({data:u,factory:p,factoryData:f,to:b}):u;try{ot(t);let L=(o?_(o):void 0)||s,ne=Ho(A),R=e.chain?.formatters?.transactionRequest?.format,N=(R||lt)({...qr(k,{format:R}),from:S?.address,accessList:i,blobs:a,data:H,gas:l,gasPrice:m,maxFeePerBlobGas:y,maxFeePerGas:x,maxPriorityFeePerGas:d,nonce:h,to:P?void 0:b,value:v});if(n&&Kg({request:N})&&!ne)try{return await Yg(e,{...N,blockNumber:o,blockTag:s})}catch(D){if(!(D instanceof ci)&&!(D instanceof Rn))throw D}let q=await e.request({method:"eth_call",params:ne?[N,L,ne]:[N,L]});return q==="0x"?{data:void 0}:{data:q}}catch(U){let L=Xg(U),{offchainLookup:ne,offchainLookupSignature:R}=await Promise.resolve().then(()=>($h(),_h));if(e.ccipRead!==!1&&L?.slice(0,10)===R&&b)return{data:await ne(e,{data:L,to:b})};throw P&&L?.slice(0,10)==="0x101bb98d"?new rc({factory:p}):zc(U,{...t,account:S,chain:e.chain})}}function Kg({request:e}){let{data:t,to:r,...n}=e;return!(!t||t.startsWith(gh)||!r||Object.values(n).filter(o=>typeof o<"u").length>0)}async function Yg(e,t){let{batchSize:r=1024,wait:n=0}=typeof e.batch?.multicall=="object"?e.batch.multicall:{},{blockNumber:o,blockTag:s="latest",data:i,multicallAddress:a,to:c}=t,u=a;if(!u){if(!e.chain)throw new ci;u=Et({blockNumber:o,chain:e.chain,contract:"multicall3"})}let f=(o?_(o):void 0)||s,{schedule:l}=Lc({id:`${e.uid}.${f}`,wait:n,shouldSplitBatch(x){return x.reduce((h,{data:b})=>h+(b.length-2),0)>r*2},fn:async x=>{let d=x.map(v=>({allowFailure:!0,callData:v.data,target:v.to})),h=de({abi:ai,args:[d],functionName:"aggregate3"}),b=await e.request({method:"eth_call",params:[{data:h,to:u},f]});return st({abi:ai,args:[d],functionName:"aggregate3",data:b||"0x"})}}),[{returnData:m,success:y}]=await l({data:i,to:c});if(!y)throw new Gt({data:m});return m==="0x"?{data:void 0}:{data:m}}function Zg(e){let{code:t,data:r}=e;return _n({abi:sa(["constructor(bytes, bytes)"]),bytecode:$c,args:[t,r]})}function Jg(e){let{data:t,factory:r,factoryData:n,to:o}=e;return _n({abi:sa(["constructor(address, bytes, address, bytes)"]),bytecode:vh,args:[o,t,r,n]})}function Xg(e){if(!(e instanceof g))return;let t=e.walk();return typeof t?.data=="object"?t.data?.data:t.data}var rs=E(()=>{"use strict";aa();ve();Jr();wh();Nc();W();Qo();Nr();Zr();Mc();ct();$n();V();Cf();si();Vr();Pf();bc();Wr()});var e0,t0=E(()=>{"use strict";e0="1.0.8"});var _e,xs=E(()=>{"use strict";t0();_e=class e extends Error{constructor(t,r={}){let n=r.cause instanceof e?r.cause.details:r.cause?.message?r.cause.message:r.details,o=r.cause instanceof e&&r.cause.docsPath||r.docsPath,s=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...o?[`Docs: https://abitype.dev${o}`]:[],...n?[`Details: ${n}`]:[],`Version: abitype@${e0}`].join(` +`);super(s),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),r.cause&&(this.cause=r.cause),this.details=n,this.docsPath=o,this.metaMessages=r.metaMessages,this.shortMessage=t}}});function Ft(e,t){return e.exec(t)?.groups}var ul,pl,Ku,Yu=E(()=>{"use strict";ul=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,pl=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,Ku=/^\(.+?\).*?$/});function n0(e){return r0.test(e)}function o0(e){return Ft(r0,e)}function i0(e){return s0.test(e)}function a0(e){return Ft(s0,e)}function u0(e){return c0.test(e)}function p0(e){return Ft(c0,e)}function Zu(e){return f0.test(e)}function l0(e){return Ft(f0,e)}function d0(e){return m0.test(e)}function h0(e){return Ft(m0,e)}function x0(e){return y0.test(e)}function b0(e){return Ft(y0,e)}function g0(e){return Cw.test(e)}var r0,s0,c0,f0,m0,y0,Cw,w0,Ju,Xu=E(()=>{"use strict";Yu();r0=/^error (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)$/;s0=/^event (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)$/;c0=/^function (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)(?: (?external|public{1}))?(?: (?pure|view|nonpayable|payable{1}))?(?: returns\s?\((?.*?)\))?$/;f0=/^struct (?[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?.*?)\}$/;m0=/^constructor\((?.*?)\)(?:\s(?payable{1}))?$/;y0=/^fallback\(\) external(?:\s(?payable{1}))?$/;Cw=/^receive\(\) external payable$/;w0=new Set(["indexed"]),Ju=new Set(["calldata","memory","storage"])});var wi,Qu,fl=E(()=>{"use strict";xs();wi=class extends _e{constructor({type:t}){super("Unknown type.",{metaMessages:[`Type "${t}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}},Qu=class extends _e{constructor({type:t}){super("Unknown type.",{metaMessages:[`Type "${t}" is not a valid ABI type.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}}});var vi,Ei,Ai,Ti,Si,ll=E(()=>{"use strict";xs();vi=class extends _e{constructor({param:t}){super("Invalid ABI parameter.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}},Ei=class extends _e{constructor({param:t,name:r}){super("Invalid ABI parameter.",{details:t,metaMessages:[`"${r}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}},Ai=class extends _e{constructor({param:t,type:r,modifier:n}){super("Invalid ABI parameter.",{details:t,metaMessages:[`Modifier "${n}" not allowed${r?` in "${r}" type`:""}.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}},Ti=class extends _e{constructor({param:t,type:r,modifier:n}){super("Invalid ABI parameter.",{details:t,metaMessages:[`Modifier "${n}" not allowed${r?` in "${r}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${n}" was given.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}},Si=class extends _e{constructor({abiParameter:t}){super("Invalid ABI parameter.",{details:JSON.stringify(t,null,2),metaMessages:["ABI parameter type is invalid."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}}});var Ot,Ci,Ii,ml=E(()=>{"use strict";xs();Ot=class extends _e{constructor({signature:t,type:r}){super(`Invalid ${r} signature.`,{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}},Ci=class extends _e{constructor({signature:t}){super("Unknown signature.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}},Ii=class extends _e{constructor({signature:t}){super("Invalid struct signature.",{details:t,metaMessages:["No properties exist."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}}});var Pi,v0=E(()=>{"use strict";xs();Pi=class extends _e{constructor({type:t}){super("Circular reference detected.",{metaMessages:[`Struct "${t}" is a circular reference.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}}});var ki,E0=E(()=>{"use strict";xs();ki=class extends _e{constructor({current:t,depth:r}){super("Unbalanced parentheses.",{metaMessages:[`"${t.trim()}" has too many ${r>0?"opening":"closing"} parentheses.`],details:`Depth "${r}"`}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}}});function A0(e,t,r){let n="";if(r)for(let o of Object.entries(r)){if(!o)continue;let s="";for(let i of o[1])s+=`[${i.type}${i.name?`:${i.name}`:""}]`;n+=`(${o[0]}{${s}})`}return t?`${t}:${e}${n}`:e}var ep,T0=E(()=>{"use strict";ep=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]])});function S0(e,t={}){if(u0(e))return Iw(e,t);if(i0(e))return Pw(e,t);if(n0(e))return kw(e,t);if(d0(e))return Bw(e,t);if(x0(e))return Rw(e);if(g0(e))return{type:"receive",stateMutability:"payable"};throw new Ci({signature:e})}function Iw(e,t={}){let r=p0(e);if(!r)throw new Ot({signature:e,type:"function"});let n=Mt(r.parameters),o=[],s=n.length;for(let a=0;a{"use strict";Yu();fl();ll();ml();E0();T0();Xu();_w=/^(?[a-zA-Z$_][a-zA-Z0-9$_]*)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,$w=/^\((?.+?)\)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,Nw=/^u?int$/;Fw=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/});function C0(e){let t={},r=e.length;for(let i=0;i{"use strict";Yu();fl();ll();ml();v0();Xu();hl();zw=/^(?[a-zA-Z$_][a-zA-Z0-9$_]*)(?(?:\[\d*?\])+?)?$/});function Bi(e){let t=C0(e),r=[],n=e.length;for(let o=0;o{"use strict";Xu();P0();hl()});var B0=E(()=>{"use strict";k0()});var R0,_0=E(()=>{"use strict";R0={gwei:9,wei:18}});function $0(e,t){let r=e.toString(),n=r.startsWith("-");n&&(r=r.slice(1)),r=r.padStart(t,"0");let[o,s]=[r.slice(0,r.length-t),r.slice(r.length-t)];return s=s.replace(/(0+)$/,""),`${n?"-":""}${o||"0"}${s?`.${s}`:""}`}var N0=E(()=>{"use strict"});function yl(e,t="wei"){return $0(e,R0[t])}var F0=E(()=>{"use strict";_0();N0()});var Zw={};np(Zw,{GooddollarSavingsWidget:()=>ge});var Ni=globalThis,Fi=Ni.ShadowRoot&&(Ni.ShadyCSS===void 0||Ni.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,op=Symbol(),vl=new WeakMap,gs=class{constructor(t,r,n){if(this._$cssResult$=!0,n!==op)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=r}get styleSheet(){let t=this.o,r=this.t;if(Fi&&t===void 0){let n=r!==void 0&&r.length===1;n&&(t=vl.get(r)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),n&&vl.set(r,t))}return t}toString(){return this.cssText}},El=e=>new gs(typeof e=="string"?e:e+"",void 0,op),sp=(e,...t)=>{let r=e.length===1?e[0]:t.reduce((n,o,s)=>n+(i=>{if(i._$cssResult$===!0)return i.cssText;if(typeof i=="number")return i;throw Error("Value passed to 'css' function must be a 'css' function result: "+i+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(o)+e[s+1],e[0]);return new gs(r,e,op)},Al=(e,t)=>{if(Fi)e.adoptedStyleSheets=t.map(r=>r instanceof CSSStyleSheet?r:r.styleSheet);else for(let r of t){let n=document.createElement("style"),o=Ni.litNonce;o!==void 0&&n.setAttribute("nonce",o),n.textContent=r.cssText,e.appendChild(n)}},ip=Fi?e=>e:e=>e instanceof CSSStyleSheet?(t=>{let r="";for(let n of t.cssRules)r+=n.cssText;return El(r)})(e):e;var{is:D0,defineProperty:j0,getOwnPropertyDescriptor:q0,getOwnPropertyNames:V0,getOwnPropertySymbols:G0,getPrototypeOf:W0}=Object,Oi=globalThis,Tl=Oi.trustedTypes,K0=Tl?Tl.emptyScript:"",Y0=Oi.reactiveElementPolyfillSupport,ws=(e,t)=>e,vs={toAttribute(e,t){switch(t){case Boolean:e=e?K0:null;break;case Object:case Array:e=e==null?e:JSON.stringify(e)}return e},fromAttribute(e,t){let r=e;switch(t){case Boolean:r=e!==null;break;case Number:r=e===null?null:Number(e);break;case Object:case Array:try{r=JSON.parse(e)}catch{r=null}}return r}},Mi=(e,t)=>!D0(e,t),Sl={attribute:!0,type:String,converter:vs,reflect:!1,useDefault:!1,hasChanged:Mi};Symbol.metadata??=Symbol("metadata"),Oi.litPropertyMetadata??=new WeakMap;var er=class extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,r=Sl){if(r.state&&(r.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((r=Object.create(r)).wrapped=!0),this.elementProperties.set(t,r),!r.noAccessor){let n=Symbol(),o=this.getPropertyDescriptor(t,n,r);o!==void 0&&j0(this.prototype,t,o)}}static getPropertyDescriptor(t,r,n){let{get:o,set:s}=q0(this.prototype,t)??{get(){return this[r]},set(i){this[r]=i}};return{get:o,set(i){let a=o?.call(this);s?.call(this,i),this.requestUpdate(t,a,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??Sl}static _$Ei(){if(this.hasOwnProperty(ws("elementProperties")))return;let t=W0(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(ws("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(ws("properties"))){let r=this.properties,n=[...V0(r),...G0(r)];for(let o of n)this.createProperty(o,r[o])}let t=this[Symbol.metadata];if(t!==null){let r=litPropertyMetadata.get(t);if(r!==void 0)for(let[n,o]of r)this.elementProperties.set(n,o)}this._$Eh=new Map;for(let[r,n]of this.elementProperties){let o=this._$Eu(r,n);o!==void 0&&this._$Eh.set(o,r)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){let r=[];if(Array.isArray(t)){let n=new Set(t.flat(1/0).reverse());for(let o of n)r.unshift(ip(o))}else t!==void 0&&r.push(ip(t));return r}static _$Eu(t,r){let n=r.attribute;return n===!1?void 0:typeof n=="string"?n:typeof t=="string"?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),this.renderRoot!==void 0&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){let t=new Map,r=this.constructor.elementProperties;for(let n of r.keys())this.hasOwnProperty(n)&&(t.set(n,this[n]),delete this[n]);t.size>0&&(this._$Ep=t)}createRenderRoot(){let t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return Al(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,r,n){this._$AK(t,n)}_$ET(t,r){let n=this.constructor.elementProperties.get(t),o=this.constructor._$Eu(t,n);if(o!==void 0&&n.reflect===!0){let s=(n.converter?.toAttribute!==void 0?n.converter:vs).toAttribute(r,n.type);this._$Em=t,s==null?this.removeAttribute(o):this.setAttribute(o,s),this._$Em=null}}_$AK(t,r){let n=this.constructor,o=n._$Eh.get(t);if(o!==void 0&&this._$Em!==o){let s=n.getPropertyOptions(o),i=typeof s.converter=="function"?{fromAttribute:s.converter}:s.converter?.fromAttribute!==void 0?s.converter:vs;this._$Em=o;let a=i.fromAttribute(r,s.type);this[o]=a??this._$Ej?.get(o)??a,this._$Em=null}}requestUpdate(t,r,n){if(t!==void 0){let o=this.constructor,s=this[t];if(n??=o.getPropertyOptions(t),!((n.hasChanged??Mi)(s,r)||n.useDefault&&n.reflect&&s===this._$Ej?.get(t)&&!this.hasAttribute(o._$Eu(t,n))))return;this.C(t,r,n)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(t,r,{useDefault:n,reflect:o,wrapped:s},i){n&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,i??r??this[t]),s!==!0||i!==void 0)||(this._$AL.has(t)||(this.hasUpdated||n||(r=void 0),this._$AL.set(t,r)),o===!0&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(r){Promise.reject(r)}let t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(let[o,s]of this._$Ep)this[o]=s;this._$Ep=void 0}let n=this.constructor.elementProperties;if(n.size>0)for(let[o,s]of n){let{wrapped:i}=s,a=this[o];i!==!0||this._$AL.has(o)||a===void 0||this.C(o,void 0,s,a)}}let t=!1,r=this._$AL;try{t=this.shouldUpdate(r),t?(this.willUpdate(r),this._$EO?.forEach(n=>n.hostUpdate?.()),this.update(r)):this._$EM()}catch(n){throw t=!1,this._$EM(),n}t&&this._$AE(r)}willUpdate(t){}_$AE(t){this._$EO?.forEach(r=>r.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(r=>this._$ET(r,this[r])),this._$EM()}updated(t){}firstUpdated(t){}};er.elementStyles=[],er.shadowRootOptions={mode:"open"},er[ws("elementProperties")]=new Map,er[ws("finalized")]=new Map,Y0?.({ReactiveElement:er}),(Oi.reactiveElementVersions??=[]).push("2.1.1");var mp=globalThis,zi=mp.trustedTypes,Cl=zi?zi.createPolicy("lit-html",{createHTML:e=>e}):void 0,_l="$lit$",vr=`lit$${Math.random().toFixed(9).slice(2)}$`,$l="?"+vr,Z0=`<${$l}>`,ln=document,As=()=>ln.createComment(""),Ts=e=>e===null||typeof e!="object"&&typeof e!="function",dp=Array.isArray,J0=e=>dp(e)||typeof e?.[Symbol.iterator]=="function",ap=`[ +\f\r]`,Es=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Il=/-->/g,Pl=/>/g,pn=RegExp(`>|${ap}(?:([^\\s"'>=/]+)(${ap}*=${ap}*(?:[^ +\f\r"'\`<>=]|("|')|))|$)`,"g"),kl=/'/g,Bl=/"/g,Nl=/^(?:script|style|textarea|title)$/i,hp=e=>(t,...r)=>({_$litType$:e,strings:t,values:r}),Er=hp(1),xE=hp(2),bE=hp(3),mn=Symbol.for("lit-noChange"),Me=Symbol.for("lit-nothing"),Rl=new WeakMap,fn=ln.createTreeWalker(ln,129);function Fl(e,t){if(!dp(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return Cl!==void 0?Cl.createHTML(t):t}var X0=(e,t)=>{let r=e.length-1,n=[],o,s=t===2?"":t===3?"":"",i=Es;for(let a=0;a"?(i=o??Es,f=-1):p[1]===void 0?f=-2:(f=i.lastIndex-p[2].length,u=p[1],i=p[3]===void 0?pn:p[3]==='"'?Bl:kl):i===Bl||i===kl?i=pn:i===Il||i===Pl?i=Es:(i=pn,o=void 0);let m=i===pn&&e[a+1].startsWith("/>")?" ":"";s+=i===Es?c+Z0:f>=0?(n.push(u),c.slice(0,f)+_l+c.slice(f)+vr+m):c+vr+(f===-2?a:m)}return[Fl(e,s+(e[r]||"")+(t===2?"":t===3?"":"")),n]},Ss=class e{constructor({strings:t,_$litType$:r},n){let o;this.parts=[];let s=0,i=0,a=t.length-1,c=this.parts,[u,p]=X0(t,r);if(this.el=e.createElement(u,n),fn.currentNode=this.el.content,r===2||r===3){let f=this.el.content.firstChild;f.replaceWith(...f.childNodes)}for(;(o=fn.nextNode())!==null&&c.length0){o.textContent=zi?zi.emptyScript:"";for(let m=0;m2||n[0]!==""||n[1]!==""?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=Me}_$AI(t,r=this,n,o){let s=this.strings,i=!1;if(s===void 0)t=Dn(this,t,r,0),i=!Ts(t)||t!==this._$AH&&t!==mn,i&&(this._$AH=t);else{let a=t,c,u;for(t=s[0],c=0;c{let n=r?.renderBefore??t,o=n._$litPart$;if(o===void 0){let s=r?.renderBefore??null;n._$litPart$=o=new Cs(t.insertBefore(As(),s),s,void 0,r??{})}return o._$AI(e),o};var yp=globalThis,Ar=class extends er{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){let r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=Ol(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return mn}};Ar._$litElement$=!0,Ar.finalized=!0,yp.litElementHydrateSupport?.({LitElement:Ar});var eb=yp.litElementPolyfillSupport;eb?.({LitElement:Ar});(yp.litElementVersions??=[]).push("4.2.1");var Ml=e=>(t,r)=>{r!==void 0?r.addInitializer(()=>{customElements.define(e,t)}):customElements.define(e,t)};var tb={attribute:!0,type:String,converter:vs,reflect:!1,hasChanged:Mi},rb=(e=tb,t,r)=>{let{kind:n,metadata:o}=r,s=globalThis.litPropertyMetadata.get(o);if(s===void 0&&globalThis.litPropertyMetadata.set(o,s=new Map),n==="setter"&&((e=Object.create(e)).wrapped=!0),s.set(r.name,e),n==="accessor"){let{name:i}=r;return{set(a){let c=t.get.call(this);t.set.call(this,a),this.requestUpdate(i,c,e)},init(a){return a!==void 0&&this.C(i,void 0,e,a),a}}}if(n==="setter"){let{name:i}=r;return function(a){let c=this[i];t.call(this,a),this.requestUpdate(i,c,e)}}throw Error("Unsupported decorator location: "+n)};function Is(e){return(t,r)=>typeof r=="object"?rb(e,t,r):((n,o,s)=>{let i=o.hasOwnProperty(s);return o.constructor.createProperty(s,n),i?Object.getOwnPropertyDescriptor(o,s):void 0})(e,t,r)}function Ye(e){return Is({...e,state:!0,attribute:!1})}function $(e,t,r){let n=e[t.name];if(typeof n=="function")return n;let o=e[r];return typeof o=="function"?o:s=>t(e,s)}ye();W();var wa=class extends g{constructor(t){super(`Filter type "${t}" is not supported.`,{name:"FilterTypeNotSupportedError"})}};ze();Bt();Ds();Dt();tr();_r();var Ym="/docs/contract/encodeEventTopics";function qt(e){let{abi:t,eventName:r,args:n}=e,o=t[0];if(r){let c=tt({abi:t,name:r});if(!c)throw new Ns(r,{docsPath:Ym});o=c}if(o.type!=="event")throw new Ns(void 0,{docsPath:Ym});let s=Ce(o),i=Br(s),a=[];if(n&&"inputs"in o){let c=o.inputs?.filter(p=>"indexed"in p&&p.indexed),u=Array.isArray(n)?n:Object.values(n).length>0?c?.map(p=>n[p.name])??[]:[];u.length>0&&(a=c?.map((p,f)=>Array.isArray(u[f])?u[f].map((l,m)=>Zm({param:p,value:u[f][m]})):typeof u[f]<"u"&&u[f]!==null?Zm({param:p,value:u[f]}):null)??[])}return[i,...a]}function Zm({param:e,value:t}){if(e.type==="string"||e.type==="bytes")return ue(ht(t));if(e.type==="tuple"||e.type.match(/^(.*)\[(\d+)?\]$/))throw new wa(e.type);return De([e],[t])}V();function $r(e,{method:t}){let r={};return e.transport.type==="fallback"&&e.transport.onResponse?.(({method:n,response:o,status:s,transport:i})=>{s==="success"&&t===n&&(r[o]=i.request)}),n=>r[n]||e.request}async function Oa(e,t){let{address:r,abi:n,args:o,eventName:s,fromBlock:i,strict:a,toBlock:c}=t,u=$r(e,{method:"eth_newFilter"}),p=s?qt({abi:n,args:o,eventName:s}):void 0,f=await e.request({method:"eth_newFilter",params:[{address:r,fromBlock:typeof i=="bigint"?_(i):i,toBlock:typeof c=="bigint"?_(c):c,topics:p}]});return{abi:n,args:o,eventName:s,id:f,request:u(f),strict:!!a,type:"event"}}ve();ct();ye();W();Nr();En();Zs();var rg=3;function ut(e,{abi:t,address:r,args:n,docsPath:o,functionName:s,sender:i}){let a=e instanceof Gt?e:e instanceof g?e.walk(y=>"data"in y)||e.walk():{},{code:c,data:u,details:p,message:f,shortMessage:l}=a,m=e instanceof dt?new tc({functionName:s}):[rg,cr.code].includes(c)&&(u||p||f||l)?new vn({abi:t,data:typeof u=="object"?u.data:u,functionName:s,message:a instanceof Fr?p:l??f}):e;return new ec(m,{abi:t,args:n,contractAddress:r,docsPath:o,functionName:s,sender:i})}ve();W();bn();Bt();function fd(e){let t=ue(`0x${e.substring(4)}`).substring(26);return sr(`0x${t}`)}St();mt();He();V();async function eh({hash:e,signature:t}){let r=we(e)?e:z(e),{secp256k1:n}=await Promise.resolve().then(()=>(xf(),Xd));return`0x${(()=>{if(typeof t=="object"&&"r"in t&&"s"in t){let{r:u,s:p,v:f,yParity:l}=t,m=Number(l??f),y=Qd(m);return new n.Signature(he(u),he(p)).addRecoveryBit(y)}let i=we(t)?t:z(t);if(ee(i)!==65)throw new Error("invalid signature length");let a=xe(`0x${i.slice(130)}`),c=Qd(a);return n.Signature.fromCompact(i.substring(2,130)).addRecoveryBit(c)})().recoverPublicKey(r.substring(2)).toHex(!1)}`}function Qd(e){if(e===0||e===1)return e;if(e===27)return 0;if(e===28)return 1;throw new Error("Invalid yParityOrV value")}async function dc({hash:e,signature:t}){return fd(await eh({hash:e,signature:t}))}et();ze();V();W();La();ze();V();function ft(e,t="hex"){let r=th(e),n=to(new Uint8Array(r.length));return r.encode(n),t==="hex"?te(n.bytes):n.bytes}function th(e){return Array.isArray(e)?Fg(e.map(t=>th(t))):Og(e)}function Fg(e){let t=e.reduce((o,s)=>o+s.length,0),r=rh(t);return{length:t<=55?1+t:1+r+t,encode(o){t<=55?o.pushByte(192+t):(o.pushByte(247+r),r===1?o.pushUint8(t):r===2?o.pushUint16(t):r===3?o.pushUint24(t):o.pushUint32(t));for(let{encode:s}of e)s(o)}}}function Og(e){let t=typeof e=="string"?Pe(e):e,r=rh(t.length);return{length:t.length===1&&t[0]<128?1:t.length<=55?1+t.length:1+r+t.length,encode(o){t.length===1&&t[0]<128?o.pushBytes(t):t.length<=55?(o.pushByte(128+t.length),o.pushBytes(t)):(o.pushByte(183+r),r===1?o.pushUint8(t.length):r===2?o.pushUint16(t.length):r===3?o.pushUint24(t.length):o.pushUint32(t.length),o.pushBytes(t))}}}function rh(e){if(e<2**8)return 1;if(e<2**16)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new g("Length is too large.")}Bt();function nh(e){let{chainId:t,nonce:r,to:n}=e,o=e.contractAddress??e.address,s=ue(Te(["0x05",ft([t?_(t):"0x",o,r?_(r):"0x"])]));return n==="bytes"?Pe(s):s}async function hc(e){let{authorization:t,signature:r}=e;return dc({hash:nh(t),signature:r??t})}V();Ks();no();W();_t();var yc=class extends g{constructor(t,{account:r,docsPath:n,chain:o,data:s,gas:i,gasPrice:a,maxFeePerGas:c,maxPriorityFeePerGas:u,nonce:p,to:f,value:l}){let m=gn({from:r?.address,to:f,value:typeof l<"u"&&`${ar(l)} ${o?.nativeCurrency?.symbol||"ETH"}`,data:s,gas:i,gasPrice:typeof a<"u"&&`${ke(a)} gwei`,maxFeePerGas:typeof c<"u"&&`${ke(c)} gwei`,maxPriorityFeePerGas:typeof u<"u"&&`${ke(u)} gwei`,nonce:p});super(t.shortMessage,{cause:t,docsPath:n,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Estimate Gas Arguments:",m].filter(Boolean),name:"EstimateGasExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}};hr();oi();function oh(e,{docsPath:t,...r}){let n=(()=>{let o=jr(e,r);return o instanceof wt?e:o})();return new yc(n,{docsPath:t,...r})}si();Vr();bc();Wr();ve();no();W();var wc=class extends g{constructor(){super("`baseFeeMultiplier` must be greater than 1.",{name:"BaseFeeScalarError"})}},Kr=class extends g{constructor(){super("Chain does not support EIP-1559 fees.",{name:"Eip1559FeesNotSupportedError"})}},vc=class extends g{constructor({maxPriorityFeePerGas:t}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${ke(t)} gwei).`,{name:"MaxFeePerGasTooLowError"})}};He();W();var Do=class extends g{constructor({blockHash:t,blockNumber:r}){let n="Block";t&&(n=`Block at hash "${t}"`),r&&(n=`Block at number "${r}"`),super(`${n} could not be found.`,{name:"BlockNotFoundError"})}};V();xc();He();xc();var bf={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function Bn(e){let t={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?xe(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?xe(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?bf[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(t.authorizationList=Lg(e.authorizationList)),t.yParity=(()=>{if(e.yParity)return Number(e.yParity);if(typeof t.v=="bigint"){if(t.v===0n||t.v===27n)return 0;if(t.v===1n||t.v===28n)return 1;if(t.v>=35n)return t.v%2n===0n?1:0}})(),t.type==="legacy"&&(delete t.accessList,delete t.maxFeePerBlobGas,delete t.maxFeePerGas,delete t.maxPriorityFeePerGas,delete t.yParity),t.type==="eip2930"&&(delete t.maxFeePerBlobGas,delete t.maxFeePerGas,delete t.maxPriorityFeePerGas),t.type==="eip1559"&&delete t.maxFeePerBlobGas,t}var ah=Lo("transaction",Bn);function Lg(e){return e.map(t=>({address:t.address,chainId:Number(t.chainId),nonce:Number(t.nonce),r:t.r,s:t.s,yParity:Number(t.yParity)}))}function ii(e){let t=(e.transactions??[]).map(r=>typeof r=="string"?r:Bn(r));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:t,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}var ch=Lo("block",ii);async function Ge(e,{blockHash:t,blockNumber:r,blockTag:n,includeTransactions:o}={}){let s=n??"latest",i=o??!1,a=r!==void 0?_(r):void 0,c=null;if(t?c=await e.request({method:"eth_getBlockByHash",params:[t,i]},{dedupe:!0}):c=await e.request({method:"eth_getBlockByNumber",params:[a||s,i]},{dedupe:!!a}),!c)throw new Do({blockHash:t,blockNumber:r});return(e.chain?.formatters?.block?.format||ii)(c)}async function jo(e){let t=await e.request({method:"eth_gasPrice"});return BigInt(t)}async function uh(e,t){return gf(e,t)}async function gf(e,t){let{block:r,chain:n=e.chain,request:o}=t||{};try{let s=n?.fees?.maxPriorityFeePerGas??n?.fees?.defaultPriorityFee;if(typeof s=="function"){let a=r||await $(e,Ge,"getBlock")({}),c=await s({block:a,client:e,request:o});if(c===null)throw new Error;return c}if(typeof s<"u")return s;let i=await e.request({method:"eth_maxPriorityFeePerGas"});return he(i)}catch{let[s,i]=await Promise.all([r?Promise.resolve(r):$(e,Ge,"getBlock")({}),$(e,jo,"getGasPrice")({})]);if(typeof s.baseFeePerGas!="bigint")throw new Kr;let a=i-s.baseFeePerGas;return a<0n?0n:a}}async function ph(e,t){return Ec(e,t)}async function Ec(e,t){let{block:r,chain:n=e.chain,request:o,type:s="eip1559"}=t||{},i=await(async()=>typeof n?.fees?.baseFeeMultiplier=="function"?n.fees.baseFeeMultiplier({block:r,client:e,request:o}):n?.fees?.baseFeeMultiplier??1.2)();if(i<1)throw new wc;let c=10**(i.toString().split(".")[1]?.length??0),u=l=>l*BigInt(Math.ceil(i*c))/BigInt(c),p=r||await $(e,Ge,"getBlock")({});if(typeof n?.fees?.estimateFeesPerGas=="function"){let l=await n.fees.estimateFeesPerGas({block:r,client:e,multiply:u,request:o,type:s});if(l!==null)return l}if(s==="eip1559"){if(typeof p.baseFeePerGas!="bigint")throw new Kr;let l=typeof o?.maxPriorityFeePerGas=="bigint"?o.maxPriorityFeePerGas:await gf(e,{block:p,chain:n,request:o}),m=u(p.baseFeePerGas);return{maxFeePerGas:o?.maxFeePerGas??m+l,maxPriorityFeePerGas:l}}return{gasPrice:o?.gasPrice??u(await $(e,jo,"getGasPrice")({}))}}He();V();async function qo(e,{address:t,blockTag:r="latest",blockNumber:n}){let o=await e.request({method:"eth_getTransactionCount",params:[t,n?_(n):r]},{dedupe:!!n});return xe(o)}ze();V();function Vo(e){let{kzg:t}=e,r=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),n=typeof e.blobs[0]=="string"?e.blobs.map(s=>Pe(s)):e.blobs,o=[];for(let s of n)o.push(Uint8Array.from(t.blobToKzgCommitment(s)));return r==="bytes"?o:o.map(s=>te(s))}ze();V();function Go(e){let{kzg:t}=e,r=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),n=typeof e.blobs[0]=="string"?e.blobs.map(i=>Pe(i)):e.blobs,o=typeof e.commitments[0]=="string"?e.commitments.map(i=>Pe(i)):e.commitments,s=[];for(let i=0;ite(i))}V();Vp();St();ze();V();function fh(e,t){let r=t||"hex",n=Ur(we(e,{strict:!1})?ht(e):e);return r==="bytes"?n:z(n)}function lh(e){let{commitment:t,version:r=1}=e,n=e.to??(typeof t=="string"?"hex":"bytes"),o=fh(t,"bytes");return o.set([r],0),n==="bytes"?o:te(o)}function Ac(e){let{commitments:t,version:r}=e,n=e.to??(typeof t[0]=="string"?"hex":"bytes"),o=[];for(let s of t)o.push(lh({commitment:s,to:n,version:r}));return o}W();var Tc=class extends g{constructor({maxSize:t,size:r}){super("Blob size is too large.",{metaMessages:[`Max: ${t} bytes`,`Given: ${r} bytes`],name:"BlobSizeTooLargeError"})}},Wo=class extends g{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}},Sc=class extends g{constructor({hash:t,size:r}){super(`Versioned hash "${t}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${r}`],name:"InvalidVersionedHashSizeError"})}},Cc=class extends g{constructor({hash:t,version:r}){super(`Versioned hash "${t}" version is invalid.`,{metaMessages:[`Expected: ${1}`,`Received: ${r}`],name:"InvalidVersionedHashVersionError"})}};La();mt();ze();V();function mh(e){let t=e.to??(typeof e.data=="string"?"hex":"bytes"),r=typeof e.data=="string"?Pe(e.data):e.data,n=ee(r);if(!n)throw new Wo;if(n>761855)throw new Tc({maxSize:761855,size:n});let o=[],s=!0,i=0;for(;s;){let a=to(new Uint8Array(131072)),c=0;for(;c<4096;){let u=r.slice(i,i+31);if(a.pushByte(0),a.pushBytes(u),u.length<31){a.pushByte(128),s=!1;break}c++,i+=31}o.push(a)}return t==="bytes"?o.map(a=>a.bytes):o.map(a=>te(a.bytes))}function Ic(e){let{data:t,kzg:r,to:n}=e,o=e.blobs??mh({data:t,to:n}),s=e.commitments??Vo({blobs:o,kzg:r,to:n}),i=e.proofs??Go({blobs:o,commitments:s,kzg:r,to:n}),a=[];for(let c=0;c"u"&&f)if(c){let h=await d();l.nonce=await c.consume({address:f.address,chainId:h,client:e})}else l.nonce=await $(e,qo,"getTransactionCount")({address:f.address,blockTag:"pending"});if((u.includes("blobVersionedHashes")||u.includes("sidecars"))&&n&&i){let h=Vo({blobs:n,kzg:i});if(u.includes("blobVersionedHashes")){let b=Ac({commitments:h,to:"hex"});l.blobVersionedHashes=b}if(u.includes("sidecars")){let b=Go({blobs:n,commitments:h,kzg:i}),v=Ic({blobs:n,commitments:h,proofs:b,to:"hex"});l.sidecars=v}}if(u.includes("chainId")&&(l.chainId=await d()),(u.includes("fees")||u.includes("type"))&&typeof p>"u")try{l.type=Pc(l)}catch{let h=dh.get(e.uid);typeof h>"u"&&(h=typeof(await y())?.baseFeePerGas=="bigint",dh.set(e.uid,h)),l.type=h?"eip1559":"legacy"}if(u.includes("fees"))if(l.type!=="legacy"&&l.type!=="eip2930"){if(typeof l.maxFeePerGas>"u"||typeof l.maxPriorityFeePerGas>"u"){let h=await y(),{maxFeePerGas:b,maxPriorityFeePerGas:v}=await Ec(e,{block:h,chain:o,request:l});if(typeof t.maxPriorityFeePerGas>"u"&&t.maxFeePerGas&&t.maxFeePerGas"u"){let h=await y(),{gasPrice:b}=await Ec(e,{block:h,chain:o,request:l,type:"legacy"});l.gasPrice=b}}return u.includes("gas")&&typeof s>"u"&&(l.gas=await $(e,Ko,"estimateGas")({...l,account:f&&{address:f.address,type:"json-rpc"}})),ot(l),delete l.parameters,l}V();async function kc(e,{address:t,blockNumber:r,blockTag:n="latest"}){let o=r?_(r):void 0,s=await e.request({method:"eth_getBalance",params:[t,o||n]});return BigInt(s)}async function Ko(e,t){let{account:r=e.account}=t,n=r?K(r):void 0;try{let L=function(R){let{block:O,request:N,rpcStateOverride:q}=R;return e.request({method:"eth_estimateGas",params:q?[N,O??"latest",q]:O?[N,O]:[N]})};var o=L;let{accessList:s,authorizationList:i,blobs:a,blobVersionedHashes:c,blockNumber:u,blockTag:p,data:f,gas:l,gasPrice:m,maxFeePerBlobGas:y,maxFeePerGas:x,maxPriorityFeePerGas:d,nonce:h,value:b,stateOverride:v,...A}=await Yr(e,{...t,parameters:n?.type==="local"?void 0:["blobVersionedHashes"]}),S=(u?_(u):void 0)||p,T=Ho(v),B=await(async()=>{if(A.to)return A.to;if(i&&i.length>0)return await hc({authorization:i[0]}).catch(()=>{throw new g("`to` is required. Could not infer from `authorizationList`")})})();ot(t);let P=e.chain?.formatters?.transactionRequest?.format,U=(P||lt)({...qr(A,{format:P}),from:n?.address,accessList:s,authorizationList:i,blobs:a,blobVersionedHashes:c,data:f,gas:l,gasPrice:m,maxFeePerBlobGas:y,maxFeePerGas:x,maxPriorityFeePerGas:d,nonce:h,to:B,value:b}),ne=BigInt(await L({block:S,request:U,rpcStateOverride:T}));if(i){let R=await kc(e,{address:U.from}),O=await Promise.all(i.map(async N=>{let{address:q}=N,D=await L({block:S,request:{authorizationList:void 0,data:f,from:n?.address,to:q,value:_(R)},rpcStateOverride:T}).catch(()=>100000n);return 2n*BigInt(D)}));ne+=O.reduce((N,q)=>N+q,0n)}return ne}catch(s){throw oh(s,{...t,account:n,chain:e.chain})}}async function hh(e,t){let{abi:r,address:n,args:o,functionName:s,dataSuffix:i,...a}=t,c=de({abi:r,args:o,functionName:s});try{return await $(e,Ko,"estimateGas")({data:`${c}${i?i.replace("0x",""):""}`,to:n,...a})}catch(u){let p=a.account?K(a.account):void 0;throw ut(u,{abi:r,address:n,args:o,docsPath:"/docs/contract/estimateContractGas",functionName:s,sender:p?.address})}}_r();ye();Yo();ze();Bt();Ds();ye();mt();Ds();zp();Ws();tr();var yh="/docs/contract/decodeEventLog";function Zo(e){let{abi:t,data:r,strict:n,topics:o}=e,s=n??!0,[i,...a]=o;if(!i)throw new da({docsPath:yh});let c=t.length===1?t[0]:t.find(x=>x.type==="event"&&i===Br(Ce(x)));if(!(c&&"name"in c)||c.type!=="event")throw new Yn(i,{docsPath:yh});let{name:u,inputs:p}=c,f=p?.some(x=>!("name"in x&&x.name)),l=f?[]:{},m=p.filter(x=>"indexed"in x&&x.indexed);for(let x=0;x!("indexed"in x&&x.indexed));if(y.length>0){if(r&&r!=="0x")try{let x=ir(y,r);if(x)if(f)l=[...l,...x];else for(let d=0;d0?l:void 0}}function jg({param:e,value:t}){return e.type==="string"||e.type==="bytes"||e.type==="tuple"||e.type.match(/^(.*)\[(\d+)?\]$/)?t:(ir([e],t)||[])[0]}function Jo(e){let{abi:t,args:r,logs:n,strict:o=!0}=e,s=(()=>{if(e.eventName)return Array.isArray(e.eventName)?e.eventName:[e.eventName]})();return n.map(i=>{try{let a=t.find(u=>u.type==="event"&&i.topics[0]===Br(u));if(!a)return null;let c=Zo({...i,abi:[a],strict:o});return s&&!s.includes(c.eventName)||!qg({args:c.args,inputs:a.inputs,matchArgs:r})?null:{...c,...i}}catch(a){let c,u;if(a instanceof Yn)return null;if(a instanceof It||a instanceof Ut){if(o)return null;c=a.abiItem.name,u=a.abiItem.inputs?.some(p=>!("name"in p&&p.name))}return{...i,args:u?[]:{},eventName:c}}}).filter(Boolean)}function qg(e){let{args:t,inputs:r,matchArgs:n}=e;if(!n)return!0;if(!t)return!1;function o(s,i,a){try{return s.type==="address"?Yt(i,a):s.type==="string"||s.type==="bytes"?ue(ht(i))===a:i===a}catch{return!1}}return Array.isArray(t)&&Array.isArray(n)?n.every((s,i)=>{if(s==null)return!0;let a=r[i];return a?(Array.isArray(s)?s:[s]).some(u=>o(a,u,t[i])):!1}):typeof t=="object"&&!Array.isArray(t)&&typeof n=="object"&&!Array.isArray(n)?Object.entries(n).every(([s,i])=>{if(i==null)return!0;let a=r.find(u=>u.name===s);return a?(Array.isArray(i)?i:[i]).some(u=>o(a,u,t[s])):!1}):!1}V();function We(e,{args:t,eventName:r}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...r?{args:t,eventName:r}:{}}}async function Xo(e,{address:t,blockHash:r,fromBlock:n,toBlock:o,event:s,events:i,args:a,strict:c}={}){let u=c??!1,p=i??(s?[s]:void 0),f=[];p&&(f=[p.flatMap(x=>qt({abi:[x],eventName:x.name,args:i?void 0:a}))],s&&(f=f[0]));let l;r?l=await e.request({method:"eth_getLogs",params:[{address:t,topics:f,blockHash:r}]}):l=await e.request({method:"eth_getLogs",params:[{address:t,topics:f,fromBlock:typeof n=="bigint"?_(n):n,toBlock:typeof o=="bigint"?_(o):o}]});let m=l.map(y=>We(y));return p?Jo({abi:p,args:a,logs:m,strict:u}):m}async function Bc(e,t){let{abi:r,address:n,args:o,blockHash:s,eventName:i,fromBlock:a,toBlock:c,strict:u}=t,p=i?tt({abi:r,name:i}):void 0,f=p?void 0:r.filter(l=>l.type==="event");return $(e,Xo,"getLogs")({address:n,args:o,blockHash:s,event:p,events:f,fromBlock:a,toBlock:c,strict:u})}Zr();ct();rs();async function je(e,t){let{abi:r,address:n,args:o,functionName:s,...i}=t,a=de({abi:r,args:o,functionName:s});try{let{data:c}=await $(e,Zt,"call")({...i,data:a,to:n});return st({abi:r,args:o,functionName:s,data:c||"0x"})}catch(c){throw ut(c,{abi:r,address:n,args:o,docsPath:"/docs/contract/readContract",functionName:s})}}ve();Zr();ct();rs();async function Nh(e,t){let{abi:r,address:n,args:o,dataSuffix:s,functionName:i,...a}=t,c=a.account?K(a.account):e.account,u=de({abi:r,args:o,functionName:i});try{let{data:p}=await $(e,Zt,"call")({batch:!1,data:`${u}${s?s.replace("0x",""):""}`,to:n,...a,account:c}),f=st({abi:r,args:o,functionName:i,data:p||"0x"}),l=r.filter(m=>"name"in m&&m.name===t.functionName);return{result:f,request:{abi:l,address:n,args:o,dataSuffix:s,functionName:i,...a,account:c}}}catch(p){throw ut(p,{abi:r,address:n,args:o,docsPath:"/docs/contract/simulateContract",functionName:i,sender:c?.address})}}ye();Zs();var _f=new Map,Fh=new Map,Qg=0;function Ke(e,t,r){let n=++Qg,o=()=>_f.get(e)||[],s=()=>{let p=o();_f.set(e,p.filter(f=>f.id!==n))},i=()=>{let p=o();if(!p.some(l=>l.id===n))return;let f=Fh.get(e);p.length===1&&f&&f(),s()},a=o();if(_f.set(e,[...a,{id:n,fns:t}]),a&&a.length>0)return i;let c={};for(let p in t)c[p]=(...f)=>{let l=o();if(l.length!==0)for(let m of l)m.fns[p]?.(...f)};let u=r(c);return typeof u=="function"&&Fh.set(e,u),i}async function ui(e){return new Promise(t=>setTimeout(t,e))}function At(e,{emitOnBegin:t,initialWaitTime:r,interval:n}){let o=!0,s=()=>o=!1;return(async()=>{let a;t&&(a=await e({unpoll:s}));let c=await r?.(a)??n;await ui(c);let u=async()=>{o&&(await e({unpoll:s}),await ui(n),u())};u()})(),s}qe();var e1=new Map,t1=new Map;function Oh(e){let t=(o,s)=>({clear:()=>s.delete(o),get:()=>s.get(o),set:i=>s.set(o,i)}),r=t(e,e1),n=t(e,t1);return{clear:()=>{r.clear(),n.clear()},promise:r,response:n}}async function Mh(e,{cacheKey:t,cacheTime:r=Number.POSITIVE_INFINITY}){let n=Oh(t),o=n.response.get();if(o&&r>0&&new Date().getTime()-o.created.getTime()`blockNumber.${e}`;async function Jt(e,{cacheTime:t=e.cacheTime}={}){let r=await Mh(()=>e.request({method:"eth_blockNumber"}),{cacheKey:r1(e.uid),cacheTime:t});return BigInt(r)}async function Xr(e,{filter:t}){let r="strict"in t&&t.strict,n=await t.request({method:"eth_getFilterChanges",params:[t.id]});if(typeof n[0]=="string")return n;let o=n.map(s=>We(s));return!("abi"in t)||!t.abi?o:Jo({abi:t.abi,logs:o,strict:r})}async function Qr(e,{filter:t}){return t.request({method:"eth_uninstallFilter",params:[t.id]})}function zh(e,t){let{abi:r,address:n,args:o,batch:s=!0,eventName:i,fromBlock:a,onError:c,onLogs:u,poll:p,pollingInterval:f=e.pollingInterval,strict:l}=t;return(typeof p<"u"?p:typeof a=="bigint"?!0:!(e.transport.type==="webSocket"||e.transport.type==="fallback"&&e.transport.transports[0].config.type==="webSocket"))?(()=>{let d=l??!1,h=X(["watchContractEvent",n,o,s,e.uid,i,f,d,a]);return Ke(h,{onLogs:u,onError:c},b=>{let v;a!==void 0&&(v=a-1n);let A,k=!1,S=At(async()=>{if(!k){try{A=await $(e,Oa,"createContractEventFilter")({abi:r,address:n,args:o,eventName:i,strict:d,fromBlock:a})}catch{}k=!0;return}try{let T;if(A)T=await $(e,Xr,"getFilterChanges")({filter:A});else{let B=await $(e,Jt,"getBlockNumber")({});v&&v{A&&await $(e,Qr,"uninstallFilter")({filter:A}),S()}})})():(()=>{let d=l??!1,h=X(["watchContractEvent",n,o,s,e.uid,i,f,d]),b=!0,v=()=>b=!1;return Ke(h,{onLogs:u,onError:c},A=>((async()=>{try{let k=(()=>{if(e.transport.type==="fallback"){let B=e.transport.transports.find(P=>P.config.type==="webSocket");return B?B.value:e.transport}return e.transport})(),S=i?qt({abi:r,eventName:i,args:o}):[],{unsubscribe:T}=await k.subscribe({params:["logs",{address:n,topics:S}],onData(B){if(!b)return;let P=B.result;try{let{eventName:H,args:U}=Zo({abi:r,data:P.data,topics:P.topics,strict:l}),L=We(P,{args:U,eventName:H});A.onLogs([L])}catch(H){let U,L;if(H instanceof It||H instanceof Ut){if(l)return;U=H.abiItem.name,L=H.abiItem.inputs?.some(R=>!("name"in R&&R.name))}let ne=We(P,{args:L?[]:{},eventName:U});A.onLogs([ne])}},onError(B){A.onError?.(B)}});v=T,b||v()}catch(k){c?.(k)}})(),()=>v()))})()}ve();W();var Ue=class extends g{constructor({docsPath:t}={}){super(["Could not find an Account to execute with this Action.","Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the Client."].join(` +`),{docsPath:t,docsSlug:"account",name:"AccountNotFoundError"})}},en=class extends g{constructor({docsPath:t,metaMessages:r,type:n}){super(`Account type "${n}" is not supported.`,{docsPath:t,metaMessages:r,name:"AccountTypeNotSupportedError"})}};ct();ve();W();Qo();function Vc({chain:e,currentChainId:t}){if(!e)throw new Oc;if(t!==e.id)throw new Fc({chain:e,currentChainId:t})}hr();_t();oi();function Gc(e,{docsPath:t,...r}){let n=(()=>{let o=jr(e,r);return o instanceof wt?e:o})();return new Ja(n,{docsPath:t,...r})}si();Vr();js();Wr();async function ns(e,{serializedTransaction:t}){return e.request({method:"eth_sendRawTransaction",params:[t]},{retryCount:0})}var $f=new Ht(128);async function os(e,t){let{account:r=e.account,chain:n=e.chain,accessList:o,authorizationList:s,blobs:i,data:a,gas:c,gasPrice:u,maxFeePerBlobGas:p,maxFeePerGas:f,maxPriorityFeePerGas:l,nonce:m,type:y,value:x,...d}=t;if(typeof r>"u")throw new Ue({docsPath:"/docs/actions/wallet/sendTransaction"});let h=r?K(r):null;try{ot(t);let b=await(async()=>{if(t.to)return t.to;if(t.to!==null&&s&&s.length>0)return await hc({authorization:s[0]}).catch(()=>{throw new g("`to` is required. Could not infer from `authorizationList`.")})})();if(h?.type==="json-rpc"||h===null){let v;n!==null&&(v=await $(e,vt,"getChainId")({}),Vc({currentChainId:v,chain:n}));let A=e.chain?.formatters?.transactionRequest?.format,S=(A||lt)({...qr(d,{format:A}),accessList:o,authorizationList:s,blobs:i,chainId:v,data:a,from:h?.address,gas:c,gasPrice:u,maxFeePerBlobGas:p,maxFeePerGas:f,maxPriorityFeePerGas:l,nonce:m,to:b,type:y,value:x}),T=$f.get(e.uid),B=T?"wallet_sendTransaction":"eth_sendTransaction";try{return await e.request({method:B,params:[S]},{retryCount:0})}catch(P){if(T===!1)throw P;let H=P;if(H.name==="InvalidInputRpcError"||H.name==="InvalidParamsRpcError"||H.name==="MethodNotFoundRpcError"||H.name==="MethodNotSupportedRpcError")return await e.request({method:"wallet_sendTransaction",params:[S]},{retryCount:0}).then(U=>($f.set(e.uid,!0),U)).catch(U=>{let L=U;throw L.name==="MethodNotFoundRpcError"||L.name==="MethodNotSupportedRpcError"?($f.set(e.uid,!1),H):L});throw H}}if(h?.type==="local"){let v=await $(e,Yr,"prepareTransactionRequest")({account:h,accessList:o,authorizationList:s,blobs:i,chain:n,data:a,gas:c,gasPrice:u,maxFeePerBlobGas:p,maxFeePerGas:f,maxPriorityFeePerGas:l,nonce:m,nonceManager:h.nonceManager,parameters:[...wf,"sidecars"],type:y,value:x,...d,to:b}),A=n?.serializers?.transaction,k=await h.signTransaction(v,{serializer:A});return await $(e,ns,"sendRawTransaction")({serializedTransaction:k})}throw h?.type==="smart"?new en({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"}):new en({docsPath:"/docs/actions/wallet/sendTransaction",type:h?.type})}catch(b){throw b instanceof en?b:Gc(b,{...t,account:h,chain:t.chain||void 0})}}async function Uh(e,t){let{abi:r,account:n=e.account,address:o,args:s,dataSuffix:i,functionName:a,...c}=t;if(typeof n>"u")throw new Ue({docsPath:"/docs/contract/writeContract"});let u=n?K(n):null,p=de({abi:r,args:s,functionName:a});try{return await $(e,os,"sendTransaction")({data:`${p}${i?i.replace("0x",""):""}`,to:o,account:u,...c})}catch(f){throw ut(f,{abi:r,address:o,args:s,docsPath:"/docs/contract/writeContract",functionName:a,sender:u?.address})}}W();Uc();qe();He();He();var Nf={"0x0":"reverted","0x1":"success"};function Lh(e){let t={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map(r=>We(r)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?xe(e.transactionIndex):null,status:e.status?Nf[e.status]:null,type:e.type?bf[e.type]||e.type:null};return e.blobGasPrice&&(t.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(t.blobGasUsed=BigInt(e.blobGasUsed)),t}async function Wc(e,t){let{atomic:r=!1,chainId:n,receipts:o,version:s="2.0.0",...i}=await e.request({method:"wallet_getCallsStatus",params:[t.id]}),[a,c]=(()=>{let u=i.status;return u>=100&&u<200?["pending",u]:u>=200&&u<300?["success",u]:u>=300&&u<700?["failure",u]:u==="CONFIRMED"?["success",200]:u==="PENDING"?["pending",100]:[void 0,u]})();return{...i,atomic:r,chainId:n?xe(n):void 0,receipts:o?.map(u=>({...u,blockNumber:he(u.blockNumber),gasUsed:he(u.gasUsed),status:Nf[u.status]}))??[],statusCode:c,status:a,version:s}}async function Hh(e,t){let{id:r,pollingInterval:n=e.pollingInterval,status:o=({statusCode:l})=>l>=200,timeout:s=6e4}=t,i=X(["waitForCallsStatus",e.uid,r]),{promise:a,resolve:c,reject:u}=es(),p,f=Ke(i,{resolve:c,reject:u},l=>{let m=At(async()=>{let y=x=>{clearTimeout(p),m(),x(),f()};try{let x=await Wc(e,{id:r});if(!o(x))return;y(()=>l.resolve(x))}catch(x){y(()=>l.reject(x))}},{interval:n,emitOnBegin:!0});return m});return p=s?setTimeout(()=>{f(),clearTimeout(p),u(new Ff({id:r}))},s):void 0,await a}var Ff=class extends g{constructor({id:t}){super(`Timed out while waiting for call bundle with id "${t}" to be confirmed.`,{name:"WaitForCallsStatusTimeoutError"})}};ve();var Kc=256,Yc;function Zc(e=11){if(!Yc||Kc+e>256*2){Yc="",Kc=0;for(let t=0;t<256;t++)Yc+=(256+Math.random()*256|0).toString(16).substring(1)}return Yc.substring(Kc,Kc+++e)}function Jc(e){let{batch:t,cacheTime:r=e.pollingInterval??4e3,ccipRead:n,key:o="base",name:s="Base Client",pollingInterval:i=4e3,type:a="base"}=e,c=e.chain,u=e.account?K(e.account):void 0,{config:p,request:f,value:l}=e.transport({chain:c,pollingInterval:i}),m={...p,...l},y={account:u,batch:t,cacheTime:r,ccipRead:n,chain:c,key:o,name:s,pollingInterval:i,request:f,transport:m,type:a,uid:Zc()};function x(d){return h=>{let b=h(d);for(let A in y)delete b[A];let v={...d,...b};return Object.assign(v,{extend:x(v)})}}return Object.assign(y,{extend:x(y)})}W();En();Zs();V();js();var Xc=new Ht(8192);function Dh(e,{enabled:t=!0,id:r}){if(!t||!r)return e();if(Xc.get(r))return Xc.get(r);let n=e().finally(()=>Xc.delete(r));return Xc.set(r,n),n}function pi(e,{delay:t=100,retryCount:r=2,shouldRetry:n=()=>!0}={}){return new Promise((o,s)=>{let i=async({count:a=0}={})=>{let c=async({error:u})=>{let p=typeof t=="function"?t({count:a,error:u}):t;p&&await ui(p),i({count:a+1})};try{let u=await e();o(u)}catch(u){if(a{let{dedupe:o=!1,methods:s,retryDelay:i=150,retryCount:a=3,uid:c}={...t,...n},{method:u}=r;if(s?.exclude?.includes(u))throw new Or(new Error("method not supported"),{method:u});if(s?.include&&!s.include.includes(u))throw new Or(new Error("method not supported"),{method:u});let p=o?Lt(`${c}.${X(r)}`):void 0;return Dh(()=>pi(async()=>{try{return await e(r)}catch(f){let l=f;switch(l.code){case ao.code:throw new ao(l);case co.code:throw new co(l);case uo.code:throw new uo(l,{method:r.method});case po.code:throw new po(l);case cr.code:throw new cr(l);case Wt.code:throw new Wt(l);case fo.code:throw new fo(l);case lo.code:throw new lo(l);case mo.code:throw new mo(l);case Or.code:throw new Or(l,{method:r.method});case An.code:throw new An(l);case ho.code:throw new ho(l);case Tn.code:throw new Tn(l);case yo.code:throw new yo(l);case xo.code:throw new xo(l);case bo.code:throw new bo(l);case go.code:throw new go(l);case wo.code:throw new wo(l);case vo.code:throw new vo(l);case Eo.code:throw new Eo(l);case Ao.code:throw new Ao(l);case To.code:throw new To(l);case So.code:throw new So(l);case Co.code:throw new Co(l);case Io.code:throw new Io(l);case 5e3:throw new Tn(l);default:throw f instanceof g?f:new nc(l)}}},{delay:({count:f,error:l})=>{if(l&&l instanceof bt){let m=l?.headers?.get("Retry-After");if(m?.match(/\d/))return Number.parseInt(m)*1e3}return~~(1<n1(f)}),{enabled:o,id:p})}}function n1(e){return"code"in e&&typeof e.code=="number"?e.code===-1||e.code===An.code||e.code===cr.code:e instanceof bt&&e.status?e.status===403||e.status===408||e.status===413||e.status===429||e.status===500||e.status===502||e.status===503||e.status===504:!0}function Qc({key:e,methods:t,name:r,request:n,retryCount:o=3,retryDelay:s=150,timeout:i,type:a},c){let u=Zc();return{config:{key:e,methods:t,name:r,request:n,retryCount:o,retryDelay:s,timeout:i,type:a},request:jh(n,{methods:t,retryCount:o,retryDelay:s,uid:u}),value:c}}function Of(e,t={}){let{key:r="custom",methods:n,name:o="Custom Provider",retryDelay:s}=t;return({retryCount:i})=>Qc({key:r,methods:n,name:o,request:e.request.bind(e),retryCount:t.retryCount??i,retryDelay:s,type:"custom"})}En();W();var eu=class extends g{constructor(){super("No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.",{docsPath:"/docs/clients/intro",name:"UrlRequiredError"})}};Pf();En();function qh(e,{errorInstance:t=new Error("timed out"),timeout:r,signal:n}){return new Promise((o,s)=>{(async()=>{let i;try{let a=new AbortController;r>0&&(i=setTimeout(()=>{n?a.abort():s(t)},r)),o(await e({signal:a?.signal||null}))}catch(a){a?.name==="AbortError"&&s(t),s(a)}finally{clearTimeout(i)}})()})}qe();function o1(){return{current:0,take(){return this.current++},reset(){this.current=0}}}var Mf=o1();function Vh(e,t={}){return{async request(r){let{body:n,onRequest:o=t.onRequest,onResponse:s=t.onResponse,timeout:i=t.timeout??1e4}=r,a={...t.fetchOptions??{},...r.fetchOptions??{}},{headers:c,method:u,signal:p}=a;try{let f=await qh(async({signal:m})=>{let y={...a,body:Array.isArray(n)?X(n.map(b=>({jsonrpc:"2.0",id:b.id??Mf.take(),...b}))):X({jsonrpc:"2.0",id:n.id??Mf.take(),...n}),headers:{"Content-Type":"application/json",...c},method:u||"POST",signal:p||(i>0?m:null)},x=new Request(e,y),d=await o?.(x,y)??{...y,url:e};return await fetch(d.url??e,d)},{errorInstance:new Ys({body:n,url:e}),timeout:i,signal:!0});s&&await s(f);let l;if(f.headers.get("Content-Type")?.startsWith("application/json"))l=await f.json();else{l=await f.text();try{l=JSON.parse(l||"{}")}catch(m){if(f.ok)throw m;l={error:l}}}if(!f.ok)throw new bt({body:n,details:X(l.error)||f.statusText,headers:f.headers,status:f.status,url:e});return l}catch(f){throw f instanceof bt||f instanceof Ys?f:new bt({body:n,cause:f,url:e})}}}}function zf(e,t={}){let{batch:r,fetchOptions:n,key:o="http",methods:s,name:i="HTTP JSON-RPC",onFetchRequest:a,onFetchResponse:c,retryDelay:u,raw:p}=t;return({chain:f,retryCount:l,timeout:m})=>{let{batchSize:y=1e3,wait:x=0}=typeof r=="object"?r:{},d=t.retryCount??l,h=m??t.timeout??1e4,b=e||f?.rpcUrls.default.http[0];if(!b)throw new eu;let v=Vh(b,{fetchOptions:n,onRequest:a,onResponse:c,timeout:h});return Qc({key:o,methods:s,name:i,async request({method:A,params:k}){let S={method:A,params:k},{schedule:T}=Lc({id:b,wait:x,shouldSplitBatch(U){return U.length>y},fn:U=>v.request({body:U}),sort:(U,L)=>U.id-L.id}),B=async U=>r?T(U):[await v.request({body:U})],[{error:P,result:H}]=await B(S);if(p)return{error:P,result:H};if(P)throw new Fr({body:S,error:P,url:b});return H},retryCount:d,retryDelay:u,timeout:h,type:"http"},{fetchOptions:n,url:b})}}Jr();Zr();ct();$n();hn();V();qs();W();Nr();function ss(e,t){if(!(e instanceof g))return!1;let r=e.walk(n=>n instanceof vn);return r instanceof vn?!!(r.data?.errorName==="ResolverNotFound"||r.data?.errorName==="ResolverWildcardNotSupported"||r.data?.errorName==="ResolverNotContract"||r.data?.errorName==="ResolverError"||r.data?.errorName==="HttpError"||r.reason?.includes("Wildcard on non-extended resolvers is not supported")||t==="reverse"&&r.reason===Ma[50]):!1}qc();et();ze();V();Bt();St();function tu(e){if(e.length!==66||e.indexOf("[")!==0||e.indexOf("]")!==65)return null;let t=`0x${e.slice(1,65)}`;return we(t)?t:null}function is(e){let t=new Uint8Array(32).fill(0);if(!e)return te(t);let r=e.split(".");for(let n=r.length-1;n>=0;n-=1){let o=tu(r[n]),s=o?ht(o):ue(Pt(r[n]),"bytes");t=ue(Ze([t,s]),"bytes")}return te(t)}ze();function Gh(e){return`[${e.slice(2)}]`}ze();V();Bt();function Wh(e){let t=new Uint8Array(32).fill(0);return e?tu(e)||ue(Pt(e)):te(t)}function tn(e){let t=e.replace(/^\.|\.$/gm,"");if(t.length===0)return new Uint8Array(1);let r=new Uint8Array(Pt(t).byteLength+2),n=0,o=t.split(".");for(let s=0;s255&&(i=Pt(Gh(Wh(o[s])))),r[n]=i.length,r.set(i,n+1),n+=i.length+1}return r.byteLength!==n+1?r.slice(0,n+1):r}async function Kh(e,t){let{blockNumber:r,blockTag:n,coinType:o,name:s,gatewayUrls:i,strict:a}=t,{chain:c}=e,u=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!c)throw new Error("client chain not configured. universalResolverAddress is required.");return Et({blockNumber:r,chain:c,contract:"ensUniversalResolver"})})(),p=c?.ensTlds;if(p&&!p.some(f=>s.endsWith(f)))return null;try{let f=de({abi:Af,functionName:"addr",...o!=null?{args:[is(s),BigInt(o)]}:{args:[is(s)]}}),l={address:u,abi:_c,functionName:"resolve",args:[z(tn(s)),f,i??[ts]],blockNumber:r,blockTag:n},y=await $(e,je,"readContract")(l);if(y[0]==="0x")return null;let x=st({abi:Af,args:o!=null?[is(s),BigInt(o)]:void 0,functionName:"addr",data:y[0]});return x==="0x"||Ie(x)==="0x00"?null:x}catch(f){if(a)throw f;if(ss(f,"resolve"))return null;throw f}}W();var ru=class extends g{constructor({data:t}){super("Unable to extract image from metadata. The metadata may be malformed or invalid.",{metaMessages:["- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.","",`Provided data: ${JSON.stringify(t)}`],name:"EnsAvatarInvalidMetadataError"})}},rn=class extends g{constructor({reason:t}){super(`ENS NFT avatar URI is invalid. ${t}`,{name:"EnsAvatarInvalidNftUriError"})}},as=class extends g{constructor({uri:t}){super(`Unable to resolve ENS avatar URI "${t}". The URI may be malformed, invalid, or does not respond with a valid image.`,{name:"EnsAvatarUriResolutionError"})}},nu=class extends g{constructor({namespace:t}){super(`ENS NFT avatar namespace "${t}" is not supported. Must be "erc721" or "erc1155".`,{name:"EnsAvatarUnsupportedNamespaceError"})}};var s1=/(?https?:\/\/[^\/]*|ipfs:\/|ipns:\/|ar:\/)?(?\/)?(?ipfs\/|ipns\/)?(?[\w\-.]+)(?\/.*)?/,i1=/^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\/(?[\w\-.]+))?(?\/.*)?$/,a1=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,c1=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;async function u1(e){try{let t=await fetch(e,{method:"HEAD"});return t.status===200?t.headers.get("content-type")?.startsWith("image/"):!1}catch(t){return typeof t=="object"&&typeof t.response<"u"||!globalThis.hasOwnProperty("Image")?!1:new Promise(r=>{let n=new Image;n.onload=()=>{r(!0)},n.onerror=()=>{r(!1)},n.src=e})}}function Yh(e,t){return e?e.endsWith("/")?e.slice(0,-1):e:t}function Uf({uri:e,gatewayUrls:t}){let r=a1.test(e);if(r)return{uri:e,isOnChain:!0,isEncoded:r};let n=Yh(t?.ipfs,"https://ipfs.io"),o=Yh(t?.arweave,"https://arweave.net"),s=e.match(s1),{protocol:i,subpath:a,target:c,subtarget:u=""}=s?.groups||{},p=i==="ipns:/"||a==="ipns/",f=i==="ipfs:/"||a==="ipfs/"||i1.test(e);if(e.startsWith("http")&&!p&&!f){let m=e;return t?.arweave&&(m=e.replace(/https:\/\/arweave.net/g,t?.arweave)),{uri:m,isOnChain:!1,isEncoded:!1}}if((p||f)&&c)return{uri:`${n}/${p?"ipns":"ipfs"}/${c}${u}`,isOnChain:!1,isEncoded:!1};if(i==="ar:/"&&c)return{uri:`${o}/${c}${u||""}`,isOnChain:!1,isEncoded:!1};let l=e.replace(c1,"");if(l.startsWith("o.json());return await ou({gatewayUrls:e,uri:Lf(r)})}catch{throw new as({uri:t})}}async function ou({gatewayUrls:e,uri:t}){let{uri:r,isOnChain:n}=Uf({uri:t,gatewayUrls:e});if(n||await u1(r))return r;throw new as({uri:t})}function Jh(e){let t=e;t.startsWith("did:nft:")&&(t=t.replace("did:nft:","").replace(/_/g,"/"));let[r,n,o]=t.split("/"),[s,i]=r.split(":"),[a,c]=n.split(":");if(!s||s.toLowerCase()!=="eip155")throw new rn({reason:"Only EIP-155 supported"});if(!i)throw new rn({reason:"Chain ID not found"});if(!c)throw new rn({reason:"Contract address not found"});if(!o)throw new rn({reason:"Token ID not found"});if(!a)throw new rn({reason:"ERC namespace not found"});return{chainID:Number.parseInt(i),namespace:a.toLowerCase(),contractAddress:c,tokenID:o}}async function Xh(e,{nft:t}){if(t.namespace==="erc721")return je(e,{address:t.contractAddress,abi:[{name:"tokenURI",type:"function",stateMutability:"view",inputs:[{name:"tokenId",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"tokenURI",args:[BigInt(t.tokenID)]});if(t.namespace==="erc1155")return je(e,{address:t.contractAddress,abi:[{name:"uri",type:"function",stateMutability:"view",inputs:[{name:"_id",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"uri",args:[BigInt(t.tokenID)]});throw new nu({namespace:t.namespace})}async function Qh(e,{gatewayUrls:t,record:r}){return/eip155:/i.test(r)?p1(e,{gatewayUrls:t,record:r}):ou({uri:r,gatewayUrls:t})}async function p1(e,{gatewayUrls:t,record:r}){let n=Jh(r),o=await Xh(e,{nft:n}),{uri:s,isOnChain:i,isEncoded:a}=Uf({uri:o,gatewayUrls:t});if(i&&(s.includes("data:application/json;base64,")||s.startsWith("{"))){let u=a?atob(s.replace("data:application/json;base64,","")):s,p=JSON.parse(u);return ou({uri:Lf(p),gatewayUrls:t})}let c=n.tokenID;return n.namespace==="erc1155"&&(c=c.replace("0x","").padStart(64,"0")),Zh({gatewayUrls:t,uri:s.replace(/(?:0x)?{id}/,c)})}Jr();Zr();ct();$n();V();qc();async function su(e,t){let{blockNumber:r,blockTag:n,key:o,name:s,gatewayUrls:i,strict:a}=t,{chain:c}=e,u=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!c)throw new Error("client chain not configured. universalResolverAddress is required.");return Et({blockNumber:r,chain:c,contract:"ensUniversalResolver"})})(),p=c?.ensTlds;if(p&&!p.some(f=>s.endsWith(f)))return null;try{let f={address:u,abi:_c,functionName:"resolve",args:[z(tn(s)),de({abi:Ef,functionName:"text",args:[is(s),o]}),i??[ts]],blockNumber:r,blockTag:n},m=await $(e,je,"readContract")(f);if(m[0]==="0x")return null;let y=st({abi:Ef,functionName:"text",data:m[0]});return y===""?null:y}catch(f){if(a)throw f;if(ss(f,"resolve"))return null;throw f}}async function ey(e,{blockNumber:t,blockTag:r,assetGatewayUrls:n,name:o,gatewayUrls:s,strict:i,universalResolverAddress:a}){let c=await $(e,su,"getEnsText")({blockNumber:t,blockTag:r,key:"avatar",name:o,universalResolverAddress:a,gatewayUrls:s,strict:i});if(!c)return null;try{return await Qh(e,{record:c,gatewayUrls:n})}catch{return null}}Jr();$n();V();async function ty(e,{address:t,blockNumber:r,blockTag:n,gatewayUrls:o,strict:s,universalResolverAddress:i}){let a=i;if(!a){if(!e.chain)throw new Error("client chain not configured. universalResolverAddress is required.");a=Et({blockNumber:r,chain:e.chain,contract:"ensUniversalResolver"})}let c=`${t.toLowerCase().substring(2)}.addr.reverse`;try{let u={address:a,abi:bh,functionName:"reverse",args:[z(tn(c))],blockNumber:r,blockTag:n},p=$(e,je,"readContract"),[f,l]=o?await p({...u,args:[...u.args,o]}):await p(u);return t.toLowerCase()!==l.toLowerCase()?null:f}catch(u){if(s)throw u;if(ss(u,"reverse"))return null;throw u}}$n();V();async function ry(e,t){let{blockNumber:r,blockTag:n,name:o}=t,{chain:s}=e,i=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!s)throw new Error("client chain not configured. universalResolverAddress is required.");return Et({blockNumber:r,chain:s,contract:"ensUniversalResolver"})})(),a=s?.ensTlds;if(a&&!a.some(u=>o.endsWith(u)))throw new Error(`${o} is not a valid ENS TLD (${a?.join(", ")}) for chain "${s.name}" (id: ${s.id}).`);let[c]=await $(e,je,"readContract")({address:i,abi:[{inputs:[{type:"bytes"}],name:"findResolver",outputs:[{type:"address"},{type:"bytes32"}],stateMutability:"view",type:"function"}],functionName:"findResolver",args:[z(tn(o))],blockNumber:r,blockTag:n});return c}rs();ve();V();Cf();si();Vr();Wr();async function iu(e,t){let{account:r=e.account,blockNumber:n,blockTag:o="latest",blobs:s,data:i,gas:a,gasPrice:c,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:f,to:l,value:m,...y}=t,x=r?K(r):void 0;try{ot(t);let h=(n?_(n):void 0)||o,b=e.chain?.formatters?.transactionRequest?.format,A=(b||lt)({...qr(y,{format:b}),from:x?.address,blobs:s,data:i,gas:a,gasPrice:c,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:f,to:l,value:m}),k=await e.request({method:"eth_createAccessList",params:[A,h]});return{accessList:k.accessList,gasUsed:BigInt(k.gasUsed)}}catch(d){throw zc(d,{...t,account:x,chain:e.chain})}}async function ny(e){let t=$r(e,{method:"eth_newBlockFilter"}),r=await e.request({method:"eth_newBlockFilter"});return{id:r,request:t(r),type:"block"}}V();async function au(e,{address:t,args:r,event:n,events:o,fromBlock:s,strict:i,toBlock:a}={}){let c=o??(n?[n]:void 0),u=$r(e,{method:"eth_newFilter"}),p=[];c&&(p=[c.flatMap(m=>qt({abi:[m],eventName:m.name,args:r}))],n&&(p=p[0]));let f=await e.request({method:"eth_newFilter",params:[{address:t,fromBlock:typeof s=="bigint"?_(s):s,toBlock:typeof a=="bigint"?_(a):a,...p.length?{topics:p}:{}}]});return{abi:c,args:r,eventName:n?n.name:void 0,fromBlock:s,id:f,request:u(f),strict:!!i,toBlock:a,type:"event"}}async function cu(e){let t=$r(e,{method:"eth_newPendingTransactionFilter"}),r=await e.request({method:"eth_newPendingTransactionFilter"});return{id:r,request:t(r),type:"transaction"}}async function oy(e){let t=await e.request({method:"eth_blobBaseFee"});return BigInt(t)}He();V();async function sy(e,{blockHash:t,blockNumber:r,blockTag:n="latest"}={}){let o=r!==void 0?_(r):void 0,s;return t?s=await e.request({method:"eth_getBlockTransactionCountByHash",params:[t]},{dedupe:!0}):s=await e.request({method:"eth_getBlockTransactionCountByNumber",params:[o||n]},{dedupe:!!o}),xe(s)}V();async function Hf(e,{address:t,blockNumber:r,blockTag:n="latest"}){let o=r!==void 0?_(r):void 0,s=await e.request({method:"eth_getCode",params:[t,o||n]},{dedupe:!!o});if(s!=="0x")return s}W();var uu=class extends g{constructor({address:t}){super(`No EIP-712 domain found on contract "${t}".`,{metaMessages:["Ensure that:",`- The contract is deployed at the address "${t}".`,"- `eip712Domain()` function exists on the contract.","- `eip712Domain()` function matches signature to ERC-5267 specification."],name:"Eip712DomainNotFoundError"})}};async function iy(e,t){let{address:r,factory:n,factoryData:o}=t;try{let[s,i,a,c,u,p,f]=await $(e,je,"readContract")({abi:f1,address:r,functionName:"eip712Domain",factory:n,factoryData:o});return{domain:{name:i,version:a,chainId:Number(c),verifyingContract:u,salt:p},extensions:f,fields:s}}catch(s){let i=s;throw i.name==="ContractFunctionExecutionError"&&i.cause.name==="ContractFunctionZeroDataError"?new uu({address:r}):i}}var f1=[{inputs:[],name:"eip712Domain",outputs:[{name:"fields",type:"bytes1"},{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"},{name:"salt",type:"bytes32"},{name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"}];V();function ay(e){return{baseFeePerGas:e.baseFeePerGas.map(t=>BigInt(t)),gasUsedRatio:e.gasUsedRatio,oldestBlock:BigInt(e.oldestBlock),reward:e.reward?.map(t=>t.map(r=>BigInt(r)))}}async function cy(e,{blockCount:t,blockNumber:r,blockTag:n="latest",rewardPercentiles:o}){let s=r?_(r):void 0,i=await e.request({method:"eth_feeHistory",params:[_(t),s||n,o]},{dedupe:!!s});return ay(i)}async function uy(e,{filter:t}){let r=t.strict??!1,o=(await t.request({method:"eth_getFilterLogs",params:[t.id]})).map(s=>We(s));return t.abi?Jo({abi:t.abi,logs:o,strict:r}):o}V();function py(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}ye();Rt();qe();W();var pu=class extends g{constructor({domain:t}){super(`Invalid domain "${X(t)}".`,{metaMessages:["Must be a valid EIP-712 domain."]})}},fu=class extends g{constructor({primaryType:t,types:r}){super(`Invalid primary type \`${t}\` must be one of \`${JSON.stringify(Object.keys(r))}\`.`,{docsPath:"/api/glossary/Errors#typeddatainvalidprimarytypeerror",metaMessages:["Check that the primary type is a key in `types`."]})}},lu=class extends g{constructor({type:t}){super(`Struct type "${t}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."],name:"InvalidStructTypeError"})}};yt();mt();V();Np();Dt();et();V();Bt();function fy(e){let{domain:t={},message:r,primaryType:n}=e,o={EIP712Domain:du({domain:t}),...e.types};mu({domain:t,message:r,primaryType:n,types:o});let s=["0x1901"];return t&&s.push(l1({domain:t,types:o})),n!=="EIP712Domain"&&s.push(ly({data:r,primaryType:n,types:o})),ue(Ze(s))}function l1({domain:e,types:t}){return ly({data:e,primaryType:"EIP712Domain",types:t})}function ly({data:e,primaryType:t,types:r}){let n=my({data:e,primaryType:t,types:r});return ue(n)}function my({data:e,primaryType:t,types:r}){let n=[{type:"bytes32"}],o=[m1({primaryType:t,types:r})];for(let s of r[t]){let[i,a]=hy({types:r,name:s.name,type:s.type,value:e[s.name]});n.push(i),o.push(a)}return De(n,o)}function m1({primaryType:e,types:t}){let r=z(d1({primaryType:e,types:t}));return ue(r)}function d1({primaryType:e,types:t}){let r="",n=dy({primaryType:e,types:t});n.delete(e);let o=[e,...Array.from(n).sort()];for(let s of o)r+=`${s}(${t[s].map(({name:i,type:a})=>`${a} ${i}`).join(",")})`;return r}function dy({primaryType:e,types:t},r=new Set){let o=e.match(/^\w*/u)?.[0];if(r.has(o)||t[o]===void 0)return r;r.add(o);for(let s of t[o])dy({primaryType:s.type,types:t},r);return r}function hy({types:e,name:t,type:r,value:n}){if(e[r]!==void 0)return[{type:"bytes32"},ue(my({data:n,primaryType:r,types:e}))];if(r==="bytes")return n=`0x${(n.length%2?"0":"")+n.slice(2)}`,[{type:"bytes32"},ue(n)];if(r==="string")return[{type:"bytes32"},ue(z(n))];if(r.lastIndexOf("]")===r.length-1){let o=r.slice(0,r.lastIndexOf("[")),s=n.map(i=>hy({name:t,type:o,types:e,value:i}));return[{type:"bytes32"},ue(De(s.map(([i])=>i),s.map(([,i])=>i)))]}return[{type:r},n]}qe();function yy(e){let{domain:t,message:r,primaryType:n,types:o}=e,s=(c,u)=>{let p={...u};for(let f of c){let{name:l,type:m}=f;m==="address"&&(p[l]=p[l].toLowerCase())}return p},i=o.EIP712Domain?t?s(o.EIP712Domain,t):{}:{},a=(()=>{if(n!=="EIP712Domain")return s(o[n],r)})();return X({domain:i,message:a,primaryType:n,types:o})}function mu(e){let{domain:t,message:r,primaryType:n,types:o}=e,s=(i,a)=>{for(let c of i){let{name:u,type:p}=c,f=a[u],l=p.match(Na);if(l&&(typeof f=="number"||typeof f=="bigint")){let[x,d,h]=l;_(f,{signed:d==="int",size:Number.parseInt(h)/8})}if(p==="address"&&typeof f=="string"&&!re(f))throw new ae({address:f});let m=p.match(Wm);if(m){let[x,d]=m;if(d&&ee(f)!==Number.parseInt(d))throw new xa({expectedSize:Number.parseInt(d),givenSize:ee(f)})}let y=o[p];y&&(h1(p),s(y,f))}};if(o.EIP712Domain&&t){if(typeof t!="object")throw new pu({domain:t});s(o.EIP712Domain,t)}if(n!=="EIP712Domain")if(o[n])s(o[n],r);else throw new fu({primaryType:n,types:o})}function du({domain:e}){return[typeof e?.name=="string"&&{name:"name",type:"string"},e?.version&&{name:"version",type:"string"},(typeof e?.chainId=="number"||typeof e?.chainId=="bigint")&&{name:"chainId",type:"uint256"},e?.verifyingContract&&{name:"verifyingContract",type:"address"},e?.salt&&{name:"salt",type:"bytes32"}].filter(Boolean)}function h1(e){if(e==="address"||e==="bool"||e==="string"||e.startsWith("bytes")||e.startsWith("uint")||e.startsWith("int"))throw new lu({type:e})}ct();V();_t();et();hn();V();gc();Rt();W();Qo();hr();yt();mt();Rr();He();function xy(e){let{authorizationList:t}=e;if(t)for(let r of t){let{chainId:n}=r,o=r.address;if(!re(o))throw new ae({address:o});if(n<0)throw new yr({chainId:n})}hu(e)}function by(e){let{blobVersionedHashes:t}=e;if(t){if(t.length===0)throw new Wo;for(let r of t){let n=ee(r),o=xe(xt(r,0,1));if(n!==32)throw new Sc({hash:r,size:n});if(o!==1)throw new Cc({hash:r,version:o})}}hu(e)}function hu(e){let{chainId:t,maxPriorityFeePerGas:r,maxFeePerGas:n,to:o}=e;if(t<=0)throw new yr({chainId:t});if(o&&!re(o))throw new ae({address:o});if(n&&n>Gr)throw new nt({maxFeePerGas:n});if(r&&n&&r>n)throw new gt({maxFeePerGas:n,maxPriorityFeePerGas:r})}function gy(e){let{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:o,to:s}=e;if(t<=0)throw new yr({chainId:t});if(s&&!re(s))throw new ae({address:s});if(r||o)throw new g("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(n&&n>Gr)throw new nt({maxFeePerGas:n})}function wy(e){let{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:o,to:s}=e;if(s&&!re(s))throw new ae({address:s});if(typeof t<"u"&&t<=0)throw new yr({chainId:t});if(r||o)throw new g("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(n&&n>Gr)throw new nt({maxFeePerGas:n})}Rt();_t();yt();function Nn(e){if(!e||e.length===0)return[];let t=[];for(let r=0;r"u"||typeof m>"u")){let v=typeof e.blobs[0]=="string"?e.blobs:e.blobs.map(S=>te(S)),A=e.kzg,k=Vo({blobs:v,kzg:A});if(typeof l>"u"&&(l=Ac({commitments:k})),typeof m>"u"){let S=Go({blobs:v,commitments:k,kzg:A});m=Ic({blobs:v,commitments:k,proofs:S})}}let y=Nn(p),x=[z(r),o?z(o):"0x",u?z(u):"0x",c?z(c):"0x",n?z(n):"0x",s??"0x",i?z(i):"0x",f??"0x",y,a?z(a):"0x",l??[],...nn(e,t)],d=[],h=[],b=[];if(m)for(let v=0;v{if(t.v>=35n)return(t.v-35n)/2n>0?t.v:27n+(t.v===35n?0n:1n);if(r>0)return BigInt(r*2)+BigInt(35n+t.v-27n);let m=27n+(t.v===27n?0n:1n);if(t.v!==m)throw new Ka({v:t.v});return m})(),f=Ie(t.r),l=Ie(t.s);u=[...u,z(p),f==="0x00"?"0x":f,l==="0x00"?"0x":l]}else r>0&&(u=[...u,z(r),"0x","0x"]);return ft(u)}function nn(e,t){let r=t??e,{v:n,yParity:o}=r;if(typeof r.r>"u")return[];if(typeof r.s>"u")return[];if(typeof n>"u"&&typeof o>"u")return[];let s=Ie(r.r),i=Ie(r.s);return[typeof o=="number"?o?z(1):"0x":n===0n?"0x":n===1n?z(1):n===27n?"0x":z(1),s==="0x00"?"0x":s,i==="0x00"?"0x":i]}function Ey(e){if(!e||e.length===0)return[];let t=[];for(let r of e){let{chainId:n,nonce:o,...s}=r,i=r.address;t.push([n?z(n):"0x",i,o?z(o):"0x",...nn({},s)])}return t}He();Bt();var Ay=`Ethereum Signed Message: +`;et();mt();V();function Ty(e){let t=typeof e=="string"?Lt(e):typeof e.raw=="string"?e.raw:te(e.raw),r=Lt(`${Ay}${ee(t)}`);return Ze([r,t])}function yu(e,t){return ue(Ty(e),t)}var xu="0x6492649264926492649264926492649264926492649264926492649264926492";Rr();function Sy(e){return $p(e,-32)===xu}Dt();et();ze();function Cy(e){let{address:t,data:r,signature:n,to:o="hex"}=e,s=Te([De([{type:"address"},{type:"bytes"},{type:"bytes"}],[t,r,n]),xu]);return o==="hex"?s:Pe(s)}W();var bu=class extends g{constructor({value:t}){super(`Number \`${t}\` is not a valid decimal number.`,{name:"InvalidDecimalNumberError"})}};function Iy(e,t){if(!/^(-?)([0-9]*)\.?([0-9]*)$/.test(e))throw new bu({value:e});let[r,n="0"]=e.split("."),o=r.startsWith("-");if(o&&(r=r.slice(1)),n=n.replace(/(0+)$/,""),t===0)Math.round(+`.${n}`)===1&&(r=`${BigInt(r)+1n}`),n="";else if(n.length>t){let[s,i,a]=[n.slice(0,t-1),n.slice(t-1,t),n.slice(t)],c=Math.round(+`${i}.${a}`);c>9?n=`${BigInt(s)+BigInt(1)}0`.padStart(s.length+1,"0"):n=`${s}${c}`,n.length>t&&(n=n.slice(1),r=`${BigInt(r)+1n}`),n=n.slice(0,t)}else n=n.padEnd(t,"0");return BigInt(`${o?"-":""}${r}${n}`)}ja();function cs(e,t="wei"){return Iy(e,Da[t])}function v1(e){return e.map(t=>({...t,value:BigInt(t.value)}))}function Py(e){return{...e,balance:e.balance?BigInt(e.balance):void 0,nonce:e.nonce?xe(e.nonce):void 0,storageProof:e.storageProof?v1(e.storageProof):void 0}}async function ky(e,{address:t,blockNumber:r,blockTag:n,storageKeys:o}){let s=n??"latest",i=r!==void 0?_(r):void 0,a=await e.request({method:"eth_getProof",params:[t,o,i||s]});return Py(a)}V();async function By(e,{address:t,blockNumber:r,blockTag:n="latest",slot:o}){let s=r!==void 0?_(r):void 0;return await e.request({method:"eth_getStorageAt",params:[t,o,s||n]})}_t();V();async function us(e,{blockHash:t,blockNumber:r,blockTag:n,hash:o,index:s}){let i=n||"latest",a=r!==void 0?_(r):void 0,c=null;if(o?c=await e.request({method:"eth_getTransactionByHash",params:[o]},{dedupe:!0}):t?c=await e.request({method:"eth_getTransactionByBlockHashAndIndex",params:[t,_(s)]},{dedupe:!0}):(a||i)&&(c=await e.request({method:"eth_getTransactionByBlockNumberAndIndex",params:[a||i,_(s)]},{dedupe:!!a})),!c)throw new oo({blockHash:t,blockNumber:r,blockTag:i,hash:o,index:s});return(e.chain?.formatters?.transaction?.format||Bn)(c)}async function Ry(e,{hash:t,transactionReceipt:r}){let[n,o]=await Promise.all([$(e,Jt,"getBlockNumber")({}),t?$(e,us,"getTransaction")({hash:t}):void 0]),s=r?.blockNumber||o?.blockNumber;return s?n-s+1n:0n}_t();async function fi(e,{hash:t}){let r=await e.request({method:"eth_getTransactionReceipt",params:[t]},{dedupe:!0});if(!r)throw new so({hash:t});return(e.chain?.formatters?.transactionReceipt?.format||Lh)(r)}Jr();ye();W();Nr();Zr();ct();$n();async function _y(e,t){let{allowFailure:r=!0,batchSize:n,blockNumber:o,blockTag:s,multicallAddress:i,stateOverride:a}=t,c=t.contracts,u=n??(typeof e.batch?.multicall=="object"&&e.batch.multicall.batchSize||1024),p=i;if(!p){if(!e.chain)throw new Error("client chain not configured. multicallAddress is required.");p=Et({blockNumber:o,chain:e.chain,contract:"multicall3"})}let f=[[]],l=0,m=0;for(let d=0;d0&&m>u&&f[l].length>0&&(l++,m=(k.length-2)/2,f[l]=[]),f[l]=[...f[l],{allowFailure:!0,callData:k,target:b}]}catch(k){let S=ut(k,{abi:h,address:b,args:v,docsPath:"/docs/contract/multicall",functionName:A});if(!r)throw S;f[l]=[...f[l],{allowFailure:!0,callData:"0x",target:b}]}}let y=await Promise.allSettled(f.map(d=>$(e,je,"readContract")({abi:ai,address:p,args:[d],blockNumber:o,blockTag:s,functionName:"aggregate3",stateOverride:a}))),x=[];for(let d=0;d{if(r.cause instanceof e){if(r.cause.details)return r.cause.details;if(r.cause.shortMessage)return r.cause.shortMessage}return r.cause?.message?r.cause.message:r.details})(),o=r.cause instanceof e&&r.cause.docsPath||r.docsPath,i=`https://oxlib.sh${o??""}`,a=[t||"An error occurred.",...r.metaMessages?["",...r.metaMessages]:[],...n||o?["",n?`Details: ${n}`:void 0,o?`See: ${i}`:void 0]:[]].filter(c=>typeof c=="string").join(` +`);super(a,r.cause?{cause:r.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:`ox@${Ny()}`}),this.cause=r.cause,this.details=n,this.docs=i,this.docsPath=o,this.shortMessage=t}walk(t){return Fy(this,t)}};function Fy(e,t){return t?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause?Fy(e.cause,t):t?null:e}var E1="#__bigint";function Oy(e,t,r){return JSON.stringify(e,(n,o)=>typeof t=="function"?t(n,o):typeof o=="bigint"?o.toString()+E1:o,r)}function My(e,t){if(Df(e)>t)throw new gu({givenSize:Df(e),maxSize:t})}var xr={zero:48,nine:57,A:65,F:70,a:97,f:102};function jf(e){if(e>=xr.zero&&e<=xr.nine)return e-xr.zero;if(e>=xr.A&&e<=xr.F)return e-(xr.A-10);if(e>=xr.a&&e<=xr.f)return e-(xr.a-10)}function zy(e,t={}){let{dir:r,size:n=32}=t;if(n===0)return e;if(e.length>n)throw new wu({size:e.length,targetSize:n,type:"Bytes"});let o=new Uint8Array(n);for(let s=0;st)throw new vu({givenSize:Le(e),maxSize:t})}function Uy(e,t){if(typeof t=="number"&&t>0&&t>Le(e)-1)throw new mi({offset:t,position:"start",size:Le(e)})}function Ly(e,t,r){if(typeof t=="number"&&typeof r=="number"&&Le(e)!==r-t)throw new mi({offset:r,position:"end",size:Le(e)})}function Vf(e,t={}){let{dir:r,size:n=32}=t;if(n===0)return e;let o=e.replace("0x","");if(o.length>n*2)throw new Eu({size:Math.ceil(o.length/2),targetSize:n,type:"Hex"});return`0x${o[r==="right"?"padEnd":"padStart"](n*2,"0")}`}var S1=new TextEncoder;function Dy(e){return e instanceof Uint8Array?e:typeof e=="string"?I1(e):C1(e)}function C1(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function I1(e,t={}){let{size:r}=t,n=e;r&&(li(e,r),n=Qt(e,r));let o=n.slice(2);o.length%2&&(o=`0${o}`);let s=o.length/2,i=new Uint8Array(s);for(let a=0,c=0;at.toString(16).padStart(2,"0"));function R1(e,t={}){let{strict:r=!1}=t;if(!e)throw new Au(e);if(typeof e!="string")throw new Au(e);if(r&&!/^0x[0-9a-fA-F]*$/.test(e))throw new Tu(e);if(!e.startsWith("0x"))throw new Tu(e)}function it(...e){return`0x${e.reduce((t,r)=>t+r.replace("0x",""),"")}`}function Su(e,t={}){let r=`0x${Number(e)}`;return typeof t.size=="number"?(li(r,t.size),br(r,t.size)):r}function ps(e,t={}){let r="";for(let o=0;os||o{let h=d,b=h.account?K(h.account):void 0,v={...h,data:h.abi?de(h):h.data,from:h.from??b?.address};return ot(v),lt(v)}),x=l.stateOverrides?Ho(l.stateOverrides):void 0;c.push({blockOverrides:m,calls:y,stateOverrides:x})}let p=(r?_(r):void 0)||n;return(await e.request({method:"eth_simulateV1",params:[{blockStateCalls:c,returnFullTransactions:s,traceTransfers:i,validation:a},p]})).map((l,m)=>({...ii(l),calls:l.calls.map((y,x)=>{let{abi:d,args:h,functionName:b,to:v}=o[m].calls[x],A=y.error?.data??y.returnData,k=BigInt(y.gasUsed),S=y.logs?.map(H=>We(H)),T=y.status==="0x1"?"success":"failure",B=d&&T==="success"&&A!=="0x"?st({abi:d,data:A,functionName:b}):null,P=(()=>{if(T==="success")return;let H;if(y.error?.data==="0x"?H=new dt:y.error&&(H=new Gt(y.error)),!!H)return ut(H,{abi:d??[],address:v,args:h,functionName:b??""})})();return{data:A,gasUsed:k,logs:S,status:T,...T==="success"?{result:B}:{error:P}}})}))}catch(c){let u=c,p=jr(u,{});throw p instanceof wt?u:p}}aa();function Wf(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function N1(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function yi(e,...t){if(!N1(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function Kf(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Gy(e,t){yi(e);let r=t.outputLen;if(e.length>>8&65280|e>>>24&255}function Zf(e){for(let t=0;te().update(Iu(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function Yy(e){let t=(n,o)=>e(o).update(Iu(n)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=n=>e(n),t}var Pu=BigInt(4294967295),Zy=BigInt(32);function M1(e,t=!1){return t?{h:Number(e&Pu),l:Number(e>>Zy&Pu)}:{h:Number(e>>Zy&Pu)|0,l:Number(e&Pu)|0}}function Jy(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let o=0;oe<>>32-r,Qy=(e,t,r)=>t<>>32-r,ex=(e,t,r)=>t<>>64-r,tx=(e,t,r)=>e<>>64-r;var ox=[],sx=[],ix=[],z1=BigInt(0),xi=BigInt(1),U1=BigInt(2),L1=BigInt(7),H1=BigInt(256),D1=BigInt(113);for(let e=0,t=xi,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],ox.push(2*(5*n+r)),sx.push((e+1)*(e+2)/2%64);let o=z1;for(let s=0;s<7;s++)t=(t<>L1)*D1)%H1,t&U1&&(o^=xi<<(xi<r>32?ex(e,t,r):Xy(e,t,r),nx=(e,t,r)=>r>32?tx(e,t,r):Qy(e,t,r);function V1(e,t=24){let r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let i=0;i<10;i++)r[i]=e[i]^e[i+10]^e[i+20]^e[i+30]^e[i+40];for(let i=0;i<10;i+=2){let a=(i+8)%10,c=(i+2)%10,u=r[c],p=r[c+1],f=rx(u,p,1)^r[a],l=nx(u,p,1)^r[a+1];for(let m=0;m<50;m+=10)e[i+m]^=f,e[i+m+1]^=l}let o=e[2],s=e[3];for(let i=0;i<24;i++){let a=sx[i],c=rx(o,s,a),u=nx(o,s,a),p=ox[i];o=e[p],s=e[p+1],e[p]=c,e[p+1]=u}for(let i=0;i<50;i+=10){for(let a=0;a<10;a++)r[a]=e[i+a];for(let a=0;a<10;a++)e[i+a]^=~r[(a+2)%10]&r[(a+4)%10]}e[0]^=j1[n],e[1]^=q1[n]}r.fill(0)}var ku=class e extends Cu{constructor(t,r,n,o=!1,s=24){if(super(),this.blockLen=t,this.suffix=r,this.outputLen=n,this.enableXOF=o,this.rounds=s,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,Wf(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=Wy(this.state)}keccak(){Yf||Zf(this.state32),V1(this.state32,this.rounds),Yf||Zf(this.state32),this.posOut=0,this.pos=0}update(t){Kf(this);let{blockLen:r,state:n}=this;t=Iu(t);let o=t.length;for(let s=0;s=n&&this.keccak();let i=Math.min(n-this.posOut,s-o);t.set(r.subarray(this.posOut,this.posOut+i),o),this.posOut+=i,o+=i}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return Wf(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(Gy(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){let{blockLen:r,suffix:n,outputLen:o,rounds:s,enableXOF:i}=this;return t||(t=new e(r,n,o,i,s)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=s,t.suffix=n,t.outputLen=o,t.enableXOF=i,t.destroyed=this.destroyed,t}},on=(e,t,r)=>Ky(()=>new ku(t,e,r)),iM=on(6,144,224/8),aM=on(6,136,256/8),cM=on(6,104,384/8),uM=on(6,72,512/8),pM=on(1,144,224/8),ax=on(1,136,256/8),fM=on(1,104,384/8),lM=on(1,72,512/8),cx=(e,t,r)=>Yy((n={})=>new ku(t,e,n.dkLen===void 0?r:n.dkLen,!0)),mM=cx(31,168,128/8),dM=cx(31,136,256/8);function Bu(e,t={}){let{as:r=typeof e=="string"?"Hex":"Bytes"}=t,n=ax(Dy(e));return r==="Bytes"?n:ps(n)}var Ru=class extends Map{constructor(t){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=t}get(t){let r=super.get(t);return super.has(t)&&r!==void 0&&(this.delete(t),super.set(t,r)),r}set(t,r){if(super.set(t,r),this.maxSize&&this.size>this.maxSize){let n=this.keys().next().value;n&&this.delete(n)}return this}};var G1={checksum:new Ru(8192)},_u=G1.checksum;var K1=/^0x[a-fA-F0-9]{40}$/;function ms(e,t={}){let{strict:r=!0}=t;if(!K1.test(e))throw new $u({address:e,cause:new Jf});if(r){if(e.toLowerCase()===e)return;if(px(e)!==e)throw new $u({address:e,cause:new Xf})}}function px(e){if(_u.has(e))return _u.get(e);ms(e,{strict:!1});let t=e.substring(2).toLowerCase(),r=Bu(jy(t),{as:"Bytes"}),n=t.split("");for(let s=0;s<40;s+=2)r[s>>1]>>4>=8&&n[s]&&(n[s]=n[s].toUpperCase()),(r[s>>1]&15)>=8&&n[s+1]&&(n[s+1]=n[s+1].toUpperCase());let o=`0x${n.join("")}`;return _u.set(e,o),o}function Nu(e,t={}){let{strict:r=!0}=t??{};try{return ms(e,{strict:r}),!0}catch{return!1}}var $u=class extends oe{constructor({address:t,cause:r}){super(`Address "${t}" is invalid.`,{cause:r}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}},Jf=class extends oe{constructor(){super("Address is not a 20 byte (40 hexadecimal character) value."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidInputError"})}},Xf=class extends oe{constructor(){super("Address does not match its checksum counterpart."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}};function Ou(e){let t=!0,r="",n=0,o="",s=!1;for(let i=0;iFu(Object.values(e)[s],o)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(n)?r==="number"||r==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(n)?r==="string"||e instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(n)?Array.isArray(e)&&e.every(o=>Fu(o,{...t,type:n.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function el(e,t,r){for(let n in e){let o=e[n],s=t[n];if(o.type==="tuple"&&s.type==="tuple"&&"components"in o&&"components"in s)return el(o.components,s.components,r[n]);let i=[o.type,s.type];if(i.includes("address")&&i.includes("bytes20")?!0:i.includes("address")&&i.includes("string")?Nu(r[n],{strict:!1}):i.includes("address")&&i.includes("bytes")?Nu(r[n],{strict:!1}):!1)return i}}function Mu(e,t={}){let{prepare:r=!0}=t,n=Array.isArray(e)?ia(e):typeof e=="string"?ia(e):e;return{...n,...r?{hash:ds(n)}:{}}}function fx(e,t,r){let{args:n=[],prepare:o=!0}=r??{},s=Gf(t,{strict:!1}),i=e.filter(u=>s?u.type==="function"||u.type==="error"?rl(u)===ls(t,0,4):u.type==="event"?ds(u)===t:!1:"name"in u&&u.name===t);if(i.length===0)throw new On({name:t});if(i.length===1)return{...i[0],...o?{hash:ds(i[0])}:{}};let a;for(let u of i){if(!("inputs"in u))continue;if(!n||n.length===0){if(!u.inputs||u.inputs.length===0)return{...u,...o?{hash:ds(u)}:{}};continue}if(!u.inputs||u.inputs.length===0||u.inputs.length!==n.length)continue;if(n.every((f,l)=>{let m="inputs"in u&&u.inputs[l];return m?Fu(f,m):!1})){if(a&&"inputs"in a&&a.inputs){let f=el(u.inputs,a.inputs,n);if(f)throw new tl({abiItem:u,type:f[0]},{abiItem:a,type:f[1]})}a=u}}let c=(()=>{if(a)return a;let[u,...p]=i;return{...u,overloads:p}})();if(!c)throw new On({name:t});return{...c,...o?{hash:ds(c)}:{}}}function rl(e){return ls(ds(e),0,4)}function Z1(e){let t=typeof e=="string"?e:dn(e);return Ou(t)}function ds(e){return typeof e!="string"&&"hash"in e&&e.hash?e.hash:Bu(fs(Z1(e)))}var tl=class extends oe{constructor(t,r){super("Found ambiguous types in overloaded ABI Items.",{metaMessages:[`\`${t.type}\` in \`${Ou(dn(t.abiItem))}\`, and`,`\`${r.type}\` in \`${Ou(dn(r.abiItem))}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.AmbiguityError"})}},On=class extends oe{constructor({name:t,data:r,type:n="item"}){let o=t?` with name "${t}"`:r?` with data "${r}"`:"";super(`ABI ${n}${o} not found.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.NotFoundError"})}};var mx=/^(.*)\[([0-9]*)\]$/,dx=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,zu=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,gM=2n**(8n-1n)-1n,wM=2n**(16n-1n)-1n,vM=2n**(24n-1n)-1n,EM=2n**(32n-1n)-1n,AM=2n**(40n-1n)-1n,TM=2n**(48n-1n)-1n,SM=2n**(56n-1n)-1n,CM=2n**(64n-1n)-1n,IM=2n**(72n-1n)-1n,PM=2n**(80n-1n)-1n,kM=2n**(88n-1n)-1n,BM=2n**(96n-1n)-1n,RM=2n**(104n-1n)-1n,_M=2n**(112n-1n)-1n,$M=2n**(120n-1n)-1n,NM=2n**(128n-1n)-1n,FM=2n**(136n-1n)-1n,OM=2n**(144n-1n)-1n,MM=2n**(152n-1n)-1n,zM=2n**(160n-1n)-1n,UM=2n**(168n-1n)-1n,LM=2n**(176n-1n)-1n,HM=2n**(184n-1n)-1n,DM=2n**(192n-1n)-1n,jM=2n**(200n-1n)-1n,qM=2n**(208n-1n)-1n,VM=2n**(216n-1n)-1n,GM=2n**(224n-1n)-1n,WM=2n**(232n-1n)-1n,KM=2n**(240n-1n)-1n,YM=2n**(248n-1n)-1n,ZM=2n**(256n-1n)-1n,JM=-(2n**(8n-1n)),XM=-(2n**(16n-1n)),QM=-(2n**(24n-1n)),ez=-(2n**(32n-1n)),tz=-(2n**(40n-1n)),rz=-(2n**(48n-1n)),nz=-(2n**(56n-1n)),oz=-(2n**(64n-1n)),sz=-(2n**(72n-1n)),iz=-(2n**(80n-1n)),az=-(2n**(88n-1n)),cz=-(2n**(96n-1n)),uz=-(2n**(104n-1n)),pz=-(2n**(112n-1n)),fz=-(2n**(120n-1n)),lz=-(2n**(128n-1n)),mz=-(2n**(136n-1n)),dz=-(2n**(144n-1n)),hz=-(2n**(152n-1n)),yz=-(2n**(160n-1n)),xz=-(2n**(168n-1n)),bz=-(2n**(176n-1n)),gz=-(2n**(184n-1n)),wz=-(2n**(192n-1n)),vz=-(2n**(200n-1n)),Ez=-(2n**(208n-1n)),Az=-(2n**(216n-1n)),Tz=-(2n**(224n-1n)),Sz=-(2n**(232n-1n)),Cz=-(2n**(240n-1n)),Iz=-(2n**(248n-1n)),Pz=-(2n**(256n-1n)),kz=2n**8n-1n,Bz=2n**16n-1n,Rz=2n**24n-1n,_z=2n**32n-1n,$z=2n**40n-1n,Nz=2n**48n-1n,Fz=2n**56n-1n,Oz=2n**64n-1n,Mz=2n**72n-1n,zz=2n**80n-1n,Uz=2n**88n-1n,Lz=2n**96n-1n,Hz=2n**104n-1n,Dz=2n**112n-1n,jz=2n**120n-1n,qz=2n**128n-1n,Vz=2n**136n-1n,Gz=2n**144n-1n,Wz=2n**152n-1n,Kz=2n**160n-1n,Yz=2n**168n-1n,Zz=2n**176n-1n,Jz=2n**184n-1n,Xz=2n**192n-1n,Qz=2n**200n-1n,eU=2n**208n-1n,tU=2n**216n-1n,rU=2n**224n-1n,nU=2n**232n-1n,oU=2n**240n-1n,sU=2n**248n-1n,iU=2n**256n-1n;function hx({checksumAddress:e,parameters:t,values:r}){let n=[];for(let o=0;o0?it(u,c):u}}if(i)return{dynamic:!0,encoded:c}}return{dynamic:!1,encoded:it(...a.map(({encoded:c})=>c))}}function ew(e,{type:t}){let[,r]=t.split("bytes"),n=Le(e);if(!r){let o=e;return n%32!==0&&(o=Qt(o,Math.ceil((e.length-2)/2/32)*32)),{dynamic:!0,encoded:it(br(Se(n,{size:32})),o)}}if(n!==Number.parseInt(r))throw new bi({expectedSize:Number.parseInt(r),value:e});return{dynamic:!1,encoded:Qt(e)}}function tw(e){if(typeof e!="boolean")throw new oe(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:br(Su(e))}}function rw(e,{signed:t,size:r}){if(typeof r=="number"){let n=2n**(BigInt(r)-(t?1n:0n))-1n,o=t?-n-1n:0n;if(e>n||ei))}}function sw(e){let t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}function ju(e,t,r){let{checksumAddress:n=!1}=r??{};if(e.length!==t.length)throw new Du({expectedLength:e.length,givenLength:t.length});let o=hx({checksumAddress:n,parameters:e,values:t}),s=Uu(o);return s.length===0?"0x":s}function sl(e,t){if(e.length!==t.length)throw new Du({expectedLength:e.length,givenLength:t.length});let r=[];for(let n=0;n0?ju(n.inputs,t[0]):void 0;return s?it(o,s):o}function Mn(e,t={}){return Mu(e,t)}function uw(e,t,r){let n=fx(e,t,r);if(n.type!=="function")throw new On({name:t,type:"function"});return n}function pw(e){return rl(e)}ve();var gx="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",Nt="0x0000000000000000000000000000000000000000";Nc();W();ct();var lw="0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033";async function wx(e,t){let{blockNumber:r,blockTag:n,calls:o,stateOverrides:s,traceAssetChanges:i,traceTransfers:a,validation:c}=t,u=t.account?K(t.account):void 0;if(i&&!u)throw new g("`account` is required when `traceAssetChanges` is true");let p=u?yx(xx("constructor(bytes, bytes)"),{bytecode:$c,args:[lw,bx(Mn("function getBalance(address)"),[u.address])]}):void 0,f=i?await Promise.all(t.calls.map(async F=>{if(!F.data&&!F.abi)return;let{accessList:Q}=await iu(e,{account:u.address,...F,data:F.abi?de(F):F.data});return Q.map(({address:fe,storageKeys:w})=>w.length>0?fe:null)})).then(F=>F.flat().filter(Boolean)):[],l=s?.map(F=>F.address===u?.address?{...F,nonce:0}:F),m=await hi(e,{blockNumber:r,blockTag:n,blocks:[...i?[{calls:[{data:p}],stateOverrides:s},{calls:f.map((F,Q)=>({abi:[Mn("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[u.address],to:F,from:Nt,nonce:Q})),stateOverrides:[{address:Nt,nonce:0}]}]:[],{calls:[...o,{}].map((F,Q)=>({...F,from:u?.address,nonce:Q})),stateOverrides:l},...i?[{calls:[{data:p}]},{calls:f.map((F,Q)=>({abi:[Mn("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[u.address],to:F,from:Nt,nonce:Q})),stateOverrides:[{address:Nt,nonce:0}]},{calls:f.map((F,Q)=>({to:F,abi:[Mn("function decimals() returns (uint256)")],functionName:"decimals",from:Nt,nonce:Q})),stateOverrides:[{address:Nt,nonce:0}]},{calls:f.map((F,Q)=>({to:F,abi:[Mn("function tokenURI(uint256) returns (string)")],functionName:"tokenURI",args:[0n],from:Nt,nonce:Q})),stateOverrides:[{address:Nt,nonce:0}]},{calls:f.map((F,Q)=>({to:F,abi:[Mn("function symbol() returns (string)")],functionName:"symbol",from:Nt,nonce:Q})),stateOverrides:[{address:Nt,nonce:0}]}]:[]],traceTransfers:a,validation:c}),y=i?m[2]:m[0],[x,d,,h,b,v,A,k]=i?m:[],{calls:S,...T}=y,B=S.slice(0,-1)??[],P=x?.calls??[],H=d?.calls??[],U=[...P,...H].map(F=>F.status==="success"?he(F.data):null),L=h?.calls??[],ne=b?.calls??[],R=[...L,...ne].map(F=>F.status==="success"?he(F.data):null),O=(v?.calls??[]).map(F=>F.status==="success"?F.result:null),N=(k?.calls??[]).map(F=>F.status==="success"?F.result:null),q=(A?.calls??[]).map(F=>F.status==="success"?F.result:null),D=[];for(let[F,Q]of R.entries()){let fe=U[F];if(typeof Q!="bigint"||typeof fe!="bigint")continue;let w=O[F-1],I=N[F-1],G=q[F-1],Z=F===0?{address:gx,decimals:18,symbol:"ETH"}:{address:f[F-1],decimals:G||w?Number(w??1):void 0,symbol:I??void 0};D.some(Y=>Y.token.address===Z.address)||D.push({token:Z,value:{pre:fe,post:Q,diff:Q-fe}})}return{assetChanges:D,block:T,results:B}}Jr();Nc();Nr();Mc();bn();Yo();St();V();xf();He();ze();function vx({r:e,s:t,to:r="hex",v:n,yParity:o}){let s=(()=>{if(o===0||o===1)return o;if(n&&(n===27n||n===28n||n>=35n))return n%2n===0n?1:0;throw new Error("Invalid `v` or `yParity` value")})(),i=`0x${new kn.Signature(he(e),he(t)).toCompactHex()}${s===0?"1b":"1c"}`;return r==="hex"?i:Pe(i)}rs();async function hs(e,t){let{address:r,factory:n,factoryData:o,hash:s,signature:i,universalSignatureVerifierAddress:a=e.chain?.contracts?.universalSignatureVerifier?.address,...c}=t,u=we(i)?i:typeof i=="object"&&"r"in i&&"s"in i?vx(i):te(i),p=await(async()=>!n&&!o||Sy(u)?u:Cy({address:n,data:o,signature:u}))();try{let f=a?{to:a,data:de({abi:Tf,functionName:"isValidSig",args:[r,s,p]}),...c}:{data:_n({abi:Tf,args:[r,s,p],bytecode:Eh}),...c},{data:l}=await $(e,Zt,"call")(f);return Sp(l??"0x0")}catch(f){try{if(Yt($a(r),await dc({hash:s,signature:i})))return!0}catch{}if(f instanceof io)return!1;throw f}}async function Ex(e,{address:t,message:r,factory:n,factoryData:o,signature:s,...i}){let a=yu(r);return hs(e,{address:t,factory:n,factoryData:o,hash:a,signature:s,...i})}async function Ax(e,t){let{address:r,factory:n,factoryData:o,signature:s,message:i,primaryType:a,types:c,domain:u,...p}=t,f=fy({message:i,primaryType:a,types:c,domain:u});return hs(e,{address:r,factory:n,factoryData:o,hash:f,signature:s,...p})}_t();Uc();qe();He();qe();function qu(e,{emitOnBegin:t=!1,emitMissed:r=!1,onBlockNumber:n,onError:o,poll:s,pollingInterval:i=e.pollingInterval}){let a=typeof s<"u"?s:!(e.transport.type==="webSocket"||e.transport.type==="fallback"&&e.transport.transports[0].config.type==="webSocket"),c;return a?(()=>{let f=X(["watchBlockNumber",e.uid,t,r,i]);return Ke(f,{onBlockNumber:n,onError:o},l=>At(async()=>{try{let m=await $(e,Jt,"getBlockNumber")({cacheTime:0});if(c){if(m===c)return;if(m-c>1&&r)for(let y=c+1n;yc)&&(l.onBlockNumber(m,c),c=m)}catch(m){l.onError?.(m)}},{emitOnBegin:t,interval:i}))})():(()=>{let f=X(["watchBlockNumber",e.uid,t,r]);return Ke(f,{onBlockNumber:n,onError:o},l=>{let m=!0,y=()=>m=!1;return(async()=>{try{let x=(()=>{if(e.transport.type==="fallback"){let h=e.transport.transports.find(b=>b.config.type==="webSocket");return h?h.value:e.transport}return e.transport})(),{unsubscribe:d}=await x.subscribe({params:["newHeads"],onData(h){if(!m)return;let b=he(h.result?.number);l.onBlockNumber(b,c),c=b},onError(h){l.onError?.(h)}});y=d,m||y()}catch(x){o?.(x)}})(),()=>y()})})()}async function Tx(e,{confirmations:t=1,hash:r,onReplaced:n,pollingInterval:o=e.pollingInterval,retryCount:s=6,retryDelay:i=({count:c})=>~~(1<x(new Xa({hash:r})),a):void 0,h=Ke(c,{onReplaced:n,resolve:y,reject:x},b=>{let v=$(e,qu,"watchBlockNumber")({emitMissed:!0,emitOnBegin:!0,poll:!0,pollingInterval:o,async onBlockNumber(A){let k=T=>{clearTimeout(d),v(),T(),h()},S=A;if(!l)try{if(f){if(t>1&&(!f.blockNumber||S-f.blockNumber+1nb.resolve(f));return}if(u||(l=!0,await pi(async()=>{u=await $(e,us,"getTransaction")({hash:r}),u.blockNumber&&(S=u.blockNumber)},{delay:i,retryCount:s}),l=!1),f=await $(e,fi,"getTransactionReceipt")({hash:r}),t>1&&(!f.blockNumber||S-f.blockNumber+1nb.resolve(f))}catch(T){if(T instanceof oo||T instanceof so){if(!u){l=!1;return}try{p=u,l=!0;let B=await pi(()=>$(e,Ge,"getBlock")({blockNumber:S,includeTransactions:!0}),{delay:i,retryCount:s,shouldRetry:({error:U})=>U instanceof Do});l=!1;let P=B.transactions.find(({from:U,nonce:L})=>U===p.from&&L===p.nonce);if(!P||(f=await $(e,fi,"getTransactionReceipt")({hash:P.hash}),t>1&&(!f.blockNumber||S-f.blockNumber+1n{b.onReplaced?.({reason:H,replacedTransaction:p,transaction:P,transactionReceipt:f}),b.resolve(f)})}catch(B){k(()=>b.reject(B))}}else k(()=>b.reject(T))}}})});return m}qe();function Sx(e,{blockTag:t="latest",emitMissed:r=!1,emitOnBegin:n=!1,onBlock:o,onError:s,includeTransactions:i,poll:a,pollingInterval:c=e.pollingInterval}){let u=typeof a<"u"?a:!(e.transport.type==="webSocket"||e.transport.type==="fallback"&&e.transport.transports[0].config.type==="webSocket"),p=i??!1,f;return u?(()=>{let y=X(["watchBlocks",e.uid,t,r,n,p,c]);return Ke(y,{onBlock:o,onError:s},x=>At(async()=>{try{let d=await $(e,Ge,"getBlock")({blockTag:t,includeTransactions:p});if(d.number&&f?.number){if(d.number===f.number)return;if(d.number-f.number>1&&r)for(let h=f?.number+1n;hf.number)&&(x.onBlock(d,f),f=d)}catch(d){x.onError?.(d)}},{emitOnBegin:n,interval:c}))})():(()=>{let y=!0,x=!0,d=()=>y=!1;return(async()=>{try{n&&$(e,Ge,"getBlock")({blockTag:t,includeTransactions:p}).then(v=>{y&&x&&(o(v,void 0),x=!1)});let h=(()=>{if(e.transport.type==="fallback"){let v=e.transport.transports.find(A=>A.config.type==="webSocket");return v?v.value:e.transport}return e.transport})(),{unsubscribe:b}=await h.subscribe({params:["newHeads"],async onData(v){if(!y)return;let A=await $(e,Ge,"getBlock")({blockNumber:v.blockNumber,includeTransactions:p}).catch(()=>{});y&&(o(A,f),x=!1,f=A)},onError(v){s?.(v)}});d=b,y||d()}catch(h){s?.(h)}})(),()=>d()})()}qe();ye();Zs();function Cx(e,{address:t,args:r,batch:n=!0,event:o,events:s,fromBlock:i,onError:a,onLogs:c,poll:u,pollingInterval:p=e.pollingInterval,strict:f}){let l=typeof u<"u"?u:typeof i=="bigint"?!0:!(e.transport.type==="webSocket"||e.transport.type==="fallback"&&e.transport.transports[0].config.type==="webSocket"),m=f??!1;return l?(()=>{let d=X(["watchEvent",t,r,n,e.uid,o,p,i]);return Ke(d,{onLogs:c,onError:a},h=>{let b;i!==void 0&&(b=i-1n);let v,A=!1,k=At(async()=>{if(!A){try{v=await $(e,au,"createEventFilter")({address:t,args:r,event:o,events:s,strict:m,fromBlock:i})}catch{}A=!0;return}try{let S;if(v)S=await $(e,Xr,"getFilterChanges")({filter:v});else{let T=await $(e,Jt,"getBlockNumber")({});b&&b!==T?S=await $(e,Xo,"getLogs")({address:t,args:r,event:o,events:s,fromBlock:b+1n,toBlock:T}):S=[],b=T}if(S.length===0)return;if(n)h.onLogs(S);else for(let T of S)h.onLogs([T])}catch(S){v&&S instanceof Wt&&(A=!1),h.onError?.(S)}},{emitOnBegin:!0,interval:p});return async()=>{v&&await $(e,Qr,"uninstallFilter")({filter:v}),k()}})})():(()=>{let d=!0,h=()=>d=!1;return(async()=>{try{let b=(()=>{if(e.transport.type==="fallback"){let S=e.transport.transports.find(T=>T.config.type==="webSocket");return S?S.value:e.transport}return e.transport})(),v=s??(o?[o]:void 0),A=[];v&&(A=[v.flatMap(T=>qt({abi:[T],eventName:T.name,args:r}))],o&&(A=A[0]));let{unsubscribe:k}=await b.subscribe({params:["logs",{address:t,topics:A}],onData(S){if(!d)return;let T=S.result;try{let{eventName:B,args:P}=Zo({abi:v??[],data:T.data,topics:T.topics,strict:m}),H=We(T,{args:P,eventName:B});c([H])}catch(B){let P,H;if(B instanceof It||B instanceof Ut){if(f)return;P=B.abiItem.name,H=B.abiItem.inputs?.some(L=>!("name"in L&&L.name))}let U=We(T,{args:H?[]:{},eventName:P});c([U])}},onError(S){a?.(S)}});h=k,d||h()}catch(b){a?.(b)}})(),()=>h()})()}qe();function Ix(e,{batch:t=!0,onError:r,onTransactions:n,poll:o,pollingInterval:s=e.pollingInterval}){return(typeof o<"u"?o:e.transport.type!=="webSocket")?(()=>{let u=X(["watchPendingTransactions",e.uid,t,s]);return Ke(u,{onTransactions:n,onError:r},p=>{let f,l=At(async()=>{try{if(!f)try{f=await $(e,cu,"createPendingTransactionFilter")({});return}catch(y){throw l(),y}let m=await $(e,Xr,"getFilterChanges")({filter:f});if(m.length===0)return;if(t)p.onTransactions(m);else for(let y of m)p.onTransactions([y])}catch(m){p.onError?.(m)}},{emitOnBegin:!0,interval:s});return async()=>{f&&await $(e,Qr,"uninstallFilter")({filter:f}),l()}})})():(()=>{let u=!0,p=()=>u=!1;return(async()=>{try{let{unsubscribe:f}=await e.transport.subscribe({params:["newPendingTransactions"],onData(l){if(!u)return;let m=l.result;n([m])},onError(l){r?.(l)}});p=f,u||p()}catch(f){r?.(f)}})(),()=>p()})()}function Px(e){let{scheme:t,statement:r,...n}=e.match(mw)?.groups??{},{chainId:o,expirationTime:s,issuedAt:i,notBefore:a,requestId:c,...u}=e.match(dw)?.groups??{},p=e.split("Resources:")[1]?.split(` +- `).slice(1);return{...n,...u,...o?{chainId:Number(o)}:{},...s?{expirationTime:new Date(s)}:{},...i?{issuedAt:new Date(i)}:{},...a?{notBefore:new Date(a)}:{},...c?{requestId:c}:{},...p?{resources:p}:{},...t?{scheme:t}:{},...r?{statement:r}:{}}}var mw=/^(?:(?[a-zA-Z][a-zA-Z0-9+-.]*):\/\/)?(?[a-zA-Z0-9+-.]*(?::[0-9]{1,5})?) (?:wants you to sign in with your Ethereum account:\n)(?
0x[a-fA-F0-9]{40})\n\n(?:(?.*)\n\n)?/,dw=/(?:URI: (?.+))\n(?:Version: (?.+))\n(?:Chain ID: (?\d+))\n(?:Nonce: (?[a-zA-Z0-9]+))\n(?:Issued At: (?.+))(?:\nExpiration Time: (?.+))?(?:\nNot Before: (?.+))?(?:\nRequest ID: (?.+))?/;Yo();function kx(e){let{address:t,domain:r,message:n,nonce:o,scheme:s,time:i=new Date}=e;if(r&&n.domain!==r||o&&n.nonce!==o||s&&n.scheme!==s||n.expirationTime&&i>=n.expirationTime||n.notBefore&&iZt(e,t),createAccessList:t=>iu(e,t),createBlockFilter:()=>ny(e),createContractEventFilter:t=>Oa(e,t),createEventFilter:t=>au(e,t),createPendingTransactionFilter:()=>cu(e),estimateContractGas:t=>hh(e,t),estimateGas:t=>Ko(e,t),getBalance:t=>kc(e,t),getBlobBaseFee:()=>oy(e),getBlock:t=>Ge(e,t),getBlockNumber:t=>Jt(e,t),getBlockTransactionCount:t=>sy(e,t),getBytecode:t=>Hf(e,t),getChainId:()=>vt(e),getCode:t=>Hf(e,t),getContractEvents:t=>Bc(e,t),getEip712Domain:t=>iy(e,t),getEnsAddress:t=>Kh(e,t),getEnsAvatar:t=>ey(e,t),getEnsName:t=>ty(e,t),getEnsResolver:t=>ry(e,t),getEnsText:t=>su(e,t),getFeeHistory:t=>cy(e,t),estimateFeesPerGas:t=>ph(e,t),getFilterChanges:t=>Xr(e,t),getFilterLogs:t=>uy(e,t),getGasPrice:()=>jo(e),getLogs:t=>Xo(e,t),getProof:t=>ky(e,t),estimateMaxPriorityFeePerGas:t=>uh(e,t),getStorageAt:t=>By(e,t),getTransaction:t=>us(e,t),getTransactionConfirmations:t=>Ry(e,t),getTransactionCount:t=>qo(e,t),getTransactionReceipt:t=>fi(e,t),multicall:t=>_y(e,t),prepareTransactionRequest:t=>Yr(e,t),readContract:t=>je(e,t),sendRawTransaction:t=>ns(e,t),simulate:t=>hi(e,t),simulateBlocks:t=>hi(e,t),simulateCalls:t=>wx(e,t),simulateContract:t=>Nh(e,t),verifyMessage:t=>Ex(e,t),verifySiweMessage:t=>Bx(e,t),verifyTypedData:t=>Ax(e,t),uninstallFilter:t=>Qr(e,t),waitForTransactionReceipt:t=>Tx(e,t),watchBlocks:t=>Sx(e,t),watchBlockNumber:t=>qu(e,t),watchContractEvent:t=>zh(e,t),watchEvent:t=>Cx(e,t),watchPendingTransactions:t=>Ix(e,t)}}function il(e){let{key:t="public",name:r="Public Client"}=e;return Jc({...e,key:t,name:r,type:"publicClient"}).extend(Rx)}V();async function _x(e,{chain:t}){let{id:r,name:n,nativeCurrency:o,rpcUrls:s,blockExplorers:i}=t;await e.request({method:"wallet_addEthereumChain",params:[{chainId:_(r),chainName:n,nativeCurrency:o,rpcUrls:s.default.http,blockExplorerUrls:i?Object.values(i).map(({url:a})=>a):void 0}]},{dedupe:!0,retryCount:0})}Mc();function $x(e,t){let{abi:r,args:n,bytecode:o,...s}=t,i=_n({abi:r,args:n,bytecode:o});return os(e,{...s,...s.authorizationList?{to:null}:{},data:i})}bn();async function Nx(e){return e.account?.type==="local"?[e.account.address]:(await e.request({method:"eth_accounts"},{dedupe:!0})).map(r=>sr(r))}ve();V();async function Fx(e,t={}){let{account:r=e.account,chainId:n}=t,o=r?K(r):void 0,s=n?[o?.address,[_(n)]]:[o?.address],i=await e.request({method:"wallet_getCapabilities",params:s}),a={};for(let[c,u]of Object.entries(i))a[Number(c)]=u;return typeof n=="number"?a[n]:a}async function Ox(e){return await e.request({method:"wallet_getPermissions"},{dedupe:!0})}ve();Yo();async function Vu(e,t){let{account:r=e.account,chainId:n,nonce:o}=t;if(!r)throw new Ue({docsPath:"/docs/eip7702/prepareAuthorization"});let s=K(r),i=(()=>{if(t.executor)return t.executor==="self"?t.executor:K(t.executor)})(),a={address:t.contractAddress??t.address,chainId:n,nonce:o};return typeof a.chainId>"u"&&(a.chainId=e.chain?.id??await $(e,vt,"getChainId")({})),typeof a.nonce>"u"&&(a.nonce=await $(e,qo,"getTransactionCount")({address:s.address,blockTag:"pending"}),(i==="self"||i?.address&&Yt(i.address,s.address))&&(a.nonce+=1)),a}bn();async function Mx(e){return(await e.request({method:"eth_requestAccounts"},{dedupe:!0,retryCount:0})).map(r=>$a(r))}async function zx(e,t){return e.request({method:"wallet_requestPermissions",params:[t]},{retryCount:0})}ve();ct();V();async function Ux(e,t){let{account:r=e.account,chain:n=e.chain,forceAtomic:o=!1,id:s,version:i="2.0.0"}=t;if(typeof r>"u")throw new Ue({docsPath:"/docs/actions/wallet/sendCalls"});let a=r?K(r):null,c=t.calls.map(u=>{let p=u;return{data:p.abi?de({abi:p.abi,functionName:p.functionName,args:p.args}):p.data,to:p.to,value:p.value?_(p.value):void 0}});try{let u=await e.request({method:"wallet_sendCalls",params:[{atomicRequired:o,calls:c,capabilities:hw(t.capabilities),chainId:_(n.id),from:a?.address,id:s,version:i}]},{retryCount:0});return typeof u=="string"?{id:u}:u}catch(u){throw Gc(u,{...t,account:a,chain:t.chain})}}function hw(e){let t=e?.paymasterService?Object.entries(e.paymasterService).reduce((r,[n,o])=>({...r??{},[_(Number(n))]:o}),{}):void 0;return{...e,...t?{paymasterService:t}:{}}}async function Lx(e,t){let{id:r}=t;await e.request({method:"wallet_showCallsStatus",params:[r]})}ve();async function Hx(e,t){let{account:r=e.account}=t;if(!r)throw new Ue({docsPath:"/docs/eip7702/signAuthorization"});let n=K(r);if(!n.signAuthorization)throw new en({docsPath:"/docs/eip7702/signAuthorization",metaMessages:["The `signAuthorization` Action does not support JSON-RPC Accounts."],type:n.type});let o=await Vu(e,t);return n.signAuthorization(o)}ve();V();async function Dx(e,{account:t=e.account,message:r}){if(!t)throw new Ue({docsPath:"/docs/actions/wallet/signMessage"});let n=K(t);if(n.signMessage)return n.signMessage({message:r});let o=typeof r=="string"?Lt(r):r.raw instanceof Uint8Array?z(r.raw):r.raw;return e.request({method:"personal_sign",params:[o,n.address]},{retryCount:0})}ve();V();Vr();Wr();async function jx(e,t){let{account:r=e.account,chain:n=e.chain,...o}=t;if(!r)throw new Ue({docsPath:"/docs/actions/wallet/signTransaction"});let s=K(r);ot({account:s,...t});let i=await $(e,vt,"getChainId")({});n!==null&&Vc({currentChainId:i,chain:n});let c=(n?.formatters||e.chain?.formatters)?.transactionRequest?.format||lt;return s.signTransaction?s.signTransaction({...o,chainId:i},{serializer:e.chain?.serializers?.transaction}):await e.request({method:"eth_signTransaction",params:[{...c(o),chainId:_(i),from:s.address}]},{retryCount:0})}ve();async function qx(e,t){let{account:r=e.account,domain:n,message:o,primaryType:s}=t;if(!r)throw new Ue({docsPath:"/docs/actions/wallet/signTypedData"});let i=K(r),a={EIP712Domain:du({domain:n}),...t.types};if(mu({domain:n,message:o,primaryType:s,types:a}),i.signTypedData)return i.signTypedData({domain:n,message:o,primaryType:s,types:a});let c=yy({domain:n,message:o,primaryType:s,types:a});return e.request({method:"eth_signTypedData_v4",params:[i.address,c]},{retryCount:0})}V();async function Vx(e,{id:t}){await e.request({method:"wallet_switchEthereumChain",params:[{chainId:_(t)}]},{retryCount:0})}async function Gx(e,t){return await e.request({method:"wallet_watchAsset",params:t},{retryCount:0})}function Wx(e){return{addChain:t=>_x(e,t),deployContract:t=>$x(e,t),getAddresses:()=>Nx(e),getCallsStatus:t=>Wc(e,t),getCapabilities:t=>Fx(e,t),getChainId:()=>vt(e),getPermissions:()=>Ox(e),prepareAuthorization:t=>Vu(e,t),prepareTransactionRequest:t=>Yr(e,t),requestAddresses:()=>Mx(e),requestPermissions:t=>zx(e,t),sendCalls:t=>Ux(e,t),sendRawTransaction:t=>ns(e,t),sendTransaction:t=>os(e,t),showCallsStatus:t=>Lx(e,t),signAuthorization:t=>Hx(e,t),signMessage:t=>Dx(e,t),signTransaction:t=>jx(e,t),signTypedData:t=>qx(e,t),switchChain:t=>Vx(e,t),waitForCallsStatus:t=>Hh(e,t),watchAsset:t=>Gx(e,t),writeContract:t=>Uh(e,t)}}function al(e){let{key:t="wallet",name:r="Wallet Client",transport:n}=e;return Jc({...e,key:t,name:r,transport:n,type:"walletClient"}).extend(Wx)}Ks();var Kx={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}};Rt();yt();et();V();function Yx(e,t){return xw(e)?yw(e):vy(e,t)}function yw(e){bw(e);let{sourceHash:t,data:r,from:n,gas:o,isSystemTx:s,mint:i,to:a,value:c}=e,u=[t,n,a??"0x",i?z(i):"0x",c?z(c):"0x",o?z(o):"0x",s?"0x1":"0x",r??"0x"];return Te(["0x7e",ft(u)])}function xw(e){return e.type==="deposit"||typeof e.sourceHash<"u"}function bw(e){let{from:t,to:r}=e;if(t&&!re(t))throw new ae({address:t});if(r&&!re(r))throw new ae({address:r})}var Zx={estimateFeesPerGas:async e=>{if(!e.request?.feeCurrency)return null;let[t,r]=await Promise.all([gw(e.client,e.request.feeCurrency),ww(e.client,e.request.feeCurrency)]);return{maxFeePerGas:e.multiply(t-r)+r,maxPriorityFeePerGas:r}}};async function gw(e,t){let r=await e.request({method:"eth_gasPrice",params:[t]});return BigInt(r)}async function ww(e,t){let r=await e.request({method:"eth_maxPriorityFeePerGas",params:[t]});return BigInt(r)}He();Vr();hn();function cl(e){return e===0||e===0n||e===void 0||e===null||e==="0"||e===""||typeof e=="string"&&(Ie(e).toLowerCase()==="0x"||Ie(e).toLowerCase()==="0x00")}function ys(e){return!cl(e)}function vw(e){return typeof e.maxFeePerGas<"u"&&typeof e.maxPriorityFeePerGas<"u"}function Gu(e){return e.type==="cip64"?!0:vw(e)&&ys(e.feeCurrency)}var Jx={block:ch({format(e){return{transactions:e.transactions?.map(r=>typeof r=="string"?r:{...Bn(r),...r.gatewayFee?{gatewayFee:he(r.gatewayFee),gatewayFeeRecipient:r.gatewayFeeRecipient}:{},feeCurrency:r.feeCurrency}),...e.randomness?{randomness:e.randomness}:{}}}}),transaction:ah({format(e){if(e.type==="0x7e")return{isSystemTx:e.isSystemTx,mint:e.mint?he(e.mint):void 0,sourceHash:e.sourceHash,type:"deposit"};let t={feeCurrency:e.feeCurrency};return e.type==="0x7b"?t.type="cip64":(e.type==="0x7c"&&(t.type="cip42"),t.gatewayFee=e.gatewayFee?he(e.gatewayFee):null,t.gatewayFeeRecipient=e.gatewayFeeRecipient),t}}),transactionRequest:sh({format(e){let t={};return e.feeCurrency&&(t.feeCurrency=e.feeCurrency),Gu(e)&&(t.type="0x7b"),t}})};gc();Rt();W();Qo();hr();yt();et();V();function Ew(e,t){return Gu(e)?Aw(e,t):Yx(e,t)}var Xx={transaction:Ew};function Aw(e,t){Sw(e);let{chainId:r,gas:n,nonce:o,to:s,value:i,maxFeePerGas:a,maxPriorityFeePerGas:c,accessList:u,feeCurrency:p,data:f}=e,l=[z(r),o?z(o):"0x",c?z(c):"0x",a?z(a):"0x",n?z(n):"0x",s??"0x",i?z(i):"0x",f??"0x",Nn(u),p,...nn(e,t)];return Te(["0x7b",ft(l)])}var Tw=Gr;function Sw(e){let{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:o,to:s,feeCurrency:i}=e;if(t<=0)throw new yr({chainId:t});if(s&&!re(s))throw new ae({address:s});if(n)throw new g("`gasPrice` is not a valid CIP-64 Transaction attribute.");if(ys(o)&&o>Tw)throw new nt({maxFeePerGas:o});if(ys(r)&&ys(o)&&r>o)throw new gt({maxFeePerGas:o,maxPriorityFeePerGas:r});if(ys(i)&&!re(i))throw new g("`feeCurrency` MUST be a token address for CIP-64 transactions.");if(cl(i))throw new g("`feeCurrency` must be provided for CIP-64 transactions.")}var Qx={contracts:Kx,formatters:Jx,serializers:Xx,fees:Zx};var Wu=py({...Qx,id:42220,name:"Celo",nativeCurrency:{decimals:18,name:"CELO",symbol:"CELO"},rpcUrls:{default:{http:["https://forno.celo.org"]}},blockExplorers:{default:{name:"Celo Explorer",url:"https://celoscan.io",apiUrl:"https://api.celoscan.io/api"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:13112599}},testnet:!1});B0();F0();var Uw=Object.create,O0=Object.defineProperty,Lw=Object.getOwnPropertyDescriptor,M0=Object.getOwnPropertyNames,Hw=Object.getPrototypeOf,Dw=Object.prototype.hasOwnProperty,bl=(e,t)=>function(){return t||(0,e[M0(e)[0]])((t={exports:{}}).exports,t),t.exports},jw=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of M0(t))!Dw.call(e,o)&&o!==r&&O0(e,o,{get:()=>t[o],enumerable:!(n=Lw(t,o))||n.enumerable});return e},qw=(e,t,r)=>(r=e!=null?Uw(Hw(e)):{},jw(O0(r,"default",{value:e,enumerable:!0}),e)),Vw=bl({"../../node_modules/react/cjs/react.production.min.js"(e){var t=Symbol.for("react.element"),r=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),i=Symbol.for("react.provider"),a=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),l=Symbol.iterator;function m(w){return w===null||typeof w!="object"?null:(w=l&&w[l]||w["@@iterator"],typeof w=="function"?w:null)}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},x=Object.assign,d={};function h(w,I,G){this.props=w,this.context=I,this.refs=d,this.updater=G||y}h.prototype.isReactComponent={},h.prototype.setState=function(w,I){if(typeof w!="object"&&typeof w!="function"&&w!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,w,I,"setState")},h.prototype.forceUpdate=function(w){this.updater.enqueueForceUpdate(this,w,"forceUpdate")};function b(){}b.prototype=h.prototype;function v(w,I,G){this.props=w,this.context=I,this.refs=d,this.updater=G||y}var A=v.prototype=new b;A.constructor=v,x(A,h.prototype),A.isPureReactComponent=!0;var k=Array.isArray,S=Object.prototype.hasOwnProperty,T={current:null},B={key:!0,ref:!0,__self:!0,__source:!0};function P(w,I,G){var Z,Y={},le=null,se=null;if(I!=null)for(Z in I.ref!==void 0&&(se=I.ref),I.key!==void 0&&(le=""+I.key),I)S.call(I,Z)&&!B.hasOwnProperty(Z)&&(Y[Z]=I[Z]);var ie=arguments.length-2;if(ie===1)Y.children=G;else if(10&&tBigInt(0)){let i=BigInt(31536e3);s=this.toEtherNumber(this.cachedRewardRate*i)*100/this.toEtherNumber(e)}return{totalStaked:e,annualAPR:s}}async getUserStats(){let e=await this.getAccount(),[t,r,n]=await Promise.all([this.publicClient.readContract({...tp,functionName:"balanceOf",args:[e]}),this.publicClient.readContract({...an,functionName:"balanceOf",args:[e]}),this.publicClient.readContract({...an,functionName:"earned",args:[e]})]),o=BigInt(0);if(r>BigInt(0)&&this.totalStaked==BigInt(0)){await this.getGlobalStats();let s=BigInt(7*24*60*60);o=this.cachedRewardRate*s*r/this.totalStaked}return{walletBalance:t,currentStake:r,unclaimedRewards:n,userWeeklyRewards:o}}async stake(e,t){if(e<=BigInt(0))throw new Error("Amount must be greater than zero");let r=await this.getAccount();if(await this.publicClient.readContract({...tp,functionName:"balanceOf",args:[r]})this.refreshData(),3e4),this.refreshData()}disconnectedCallback(){this.interval&&clearInterval(this.interval)}updated(r){r.has("web3Provider")&&this.refreshData(),(r.has("walletBalance")||r.has("currentStake"))&&this.validateInput()}render(){let r=!!(this.web3Provider&&this.web3Provider.isConnected&&this.userAddress);return Er` +
+
+ +

Gooddollar Savings

+
+ +
+ + +
+ +
+
+ + ${this.activeTab==="stake"?`Wallet Balance: ${this.isLoading?"Loading...":this.formatBigInt(this.walletBalance)}`:`Current Stake: ${this.isLoading?"Loading...":this.formatBigInt(this.currentStake)}`} + +
+
+ + +
+ ${this.inputError?Er`
${this.inputError}
`:""} +
+ +
+ Unclaimed Rewards +
+ + ${this.isLoading?"Loading...":this.formatBigInt(this.unclaimedRewards)} +
+
+ + ${this.transactionError?Er`
${this.transactionError}
`:""} + + ${r?Er` + + `:Er` + + `} + +
+

Staking Statistics

+ +
+ Total G$ Staked + ${this.isLoading?"Loading...":this.formatBigInt(this.totalStaked)} +
+ + ${r?Er` +
+ Your G$ Stake Pool Share + ${this.isLoading?"Loading...":this.formatBigInt(this.currentStake)} +
+ +
+ Your Weekly Rewards + ${this.isLoading?"Loading...":this.formatBigInt(this.userWeeklyRewards)} +
+ `:""} + +
+ Annual Stake APR + ${this.isLoading?"Loading...":this.formatPercent(this.annualAPR)} +
+
+ ${this.txLoading||this.isClaiming?Er`
`:""} +
+ `}async refreshData(){if(this.publicClient||(this.publicClient=il({chain:Wu,transport:zf()})),this.web3Provider&&this.web3Provider.isConnected){this.walletClient=al({chain:Wu,transport:Of(this.web3Provider)}),this.sdk=new gl(this.publicClient,this.walletClient),await this.loadStats();let r=await this.web3Provider.request({method:"eth_accounts"});r.length>0?(this.userAddress=r[0],await this.loadUserStats()):this.resetUserStats()}else this.sdk=new gl(this.publicClient),await this.loadStats()}async loadStats(){if(this.sdk)try{let r=await this.sdk.getGlobalStats();this.totalStaked=r.totalStaked,this.annualAPR=r.annualAPR}catch(r){console.error("Error loading global stats:",r)}}async loadUserStats(){if(!(!this.sdk||!this.userAddress))try{let r=await this.sdk.getUserStats();this.walletBalance=r.walletBalance,this.currentStake=r.currentStake,this.unclaimedRewards=r.unclaimedRewards,this.userWeeklyRewards=r.userWeeklyRewards}catch(r){console.error("Error loading user stats:",r)}}resetUserStats(){this.walletBalance=0n,this.currentStake=0n,this.unclaimedRewards=0n,this.userWeeklyRewards=0n}formatBigInt(r){return Intl.NumberFormat().format(this.toEtherNumber(r))}toEtherNumber(r){return Number(ar(r))}formatPercent(r){return`${r.toFixed(2)}%`}handleTabClick(r){this.activeTab=r,this.inputError="",this.transactionError=""}handleMaxClick(){this.activeTab==="stake"?this.inputAmount=this.toEtherNumber(this.walletBalance).toString():this.inputAmount=this.toEtherNumber(this.currentStake).toString(),this.inputError=""}handleInputChange(r){let n=r.target;this.inputAmount=n.value,this.validateInput()}validateInput(r=!1){if(this.inputError="",!this.inputAmount||this.inputAmount.trim()==="")return;if(!/^[0-9]*\.?[0-9]*$/.test(this.inputAmount)){this.inputError="Invalid value";return}let o=parseFloat(this.inputAmount);if(isNaN(o)||o<0){this.inputError="Invalid value";return}if(o===0&&r){this.inputError="Please enter a valid amount";return}if(this.activeTab==="stake"&&cs(this.inputAmount)>this.walletBalance){this.inputError="Insufficient balance";return}if(this.activeTab==="unstake"&&cs(this.inputAmount)>this.currentStake){this.inputError="Max amount exceeded";return}}handleConnectWallet(){this.connectWallet&&this.connectWallet()}async handleStake(){if(!(!this.sdk||!this.userAddress)&&(this.validateInput(!0),!this.inputError))try{this.txLoading=!0,this.transactionError="";let r=cs(this.inputAmount);(await this.sdk.stake(r)).status==="success"&&(await this.refreshData(),this.inputAmount="0.0",this.inputError="",this.transactionError="")}catch(r){console.error("Staking error:",r),this.transactionError=r.message||"Staking failed"}finally{this.txLoading=!1}}async handleUnstake(){if(!(!this.sdk||!this.userAddress)&&(this.validateInput(!0),!this.inputError))try{this.txLoading=!0,this.transactionError="";let r=cs(this.inputAmount);(await this.sdk.unstake(r)).status==="success"&&(await this.refreshData(),this.inputAmount="0.0",this.inputError="",this.transactionError="")}catch(r){console.error("Unstaking error:",r),this.transactionError=r.message||"Unstaking failed"}finally{this.txLoading=!1}}async handleClaim(){if(!(!this.sdk||!this.userAddress))try{this.isClaiming=!0,this.transactionError="",(await this.sdk.claimReward()).status==="success"&&(await this.refreshData(),this.transactionError="")}catch(r){console.error("Claim error:",r),this.transactionError=r.message||"Claim failed"}finally{this.isClaiming=!1}}};ge.styles=sp` + :host { + display: block; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + max-width: 480px; + margin: 0 auto; + } + + .container { + background: white; + border-radius: 16px; + padding: 24px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + border: 1px solid #e5e7eb; + position: relative; + } + + .header { + display: flex; + align-items: center; + gap: 12px; + margin-bottom: 24px; + } + + .logo { + width: 48px; + height: 48px; + background-color: white; + display: flex; + align-items: center; + justify-content: center; + } + .logo img { + width: 44px; + height: 44px; + box-shadow: rgba(0, 0, 0, 0.075) 0px 6px 10px; + border-radius: 50%; + background-color: white; + } + + .title { + font-size: 24px; + font-weight: 600; + color: #111827; + margin: 0; + } + + .tab-container { + display: flex; + background: #f9fafb; + border-radius: 12px; + padding: 4px; + margin-bottom: 16px; + border: 1px solid #e5e7eb; + } + + .tab { + flex: 1; + padding: 10px 16px; + border: none; + background: transparent; + border-radius: 8px; + font-size: 16px; + font-weight: 500; + cursor: pointer; + transition: all 0.2s ease; + color: #6b7280; + } + + .tab.active { + background: #00b0ff; + color: #ffffff; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); + } + + .input-section { + background: #f9fafb; + border-radius: 12px; + padding: 16px; + margin-bottom: 16px; + border: 1px solid #e5e7eb; + } + + .balance-info { + display: flex; + justify-content: flex-end; + align-items: center; + margin-bottom: 12px; + font-size: 14px; + color: #6b7280; + } + + .input-container { + display: flex; + align-items: center; + gap: 12px; + } + + .amount-input { + flex: 1; + border: none; + background: transparent; + font-size: 24px; + font-weight: 600; + color: #111827; + outline: none; + } + + .max-button { + background: #ffffff; + border-radius: 8px; + padding: 6px 12px; + font-size: 12px; + font-weight: 400; + color: #374151; + border: 1px solid #374151; + cursor: pointer; + transition: background-color 0.2s ease; + } + + .max-button:hover { + border: 1px solid #00b0ff; + color: #00b0ff; + } + + .rewards-section { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 16px; + padding: 0 4px; + } + + .rewards-label { + font-size: 16px; + color: #374151; + } + + .rewards-value { + display: flex; + align-items: center; + gap: 8px; + } + + .claim-button { + background: none; + border: none; + color: #0387c3; + font-size: 16px; + font-weight: 600; + text-decoration: underline; + cursor: pointer; + padding: 0; + } + + .main-button { + width: 100%; + background: #00b0ff; + border: none; + border-radius: 12px; + padding: 16px; + font-size: 18px; + font-weight: 600; + color: #ffffff; + cursor: pointer; + margin-bottom: 24px; + transition: background-color 0.2s ease; + box-shadow: rgba(11, 27, 102, 0.306) 3px 3px 10px -1px; + } + + .main-button:hover { + background: #0387c3; + } + + .main-button.primary { + background: #00b0ff; + color: white; + } + + .main-button.primary:hover { + background: #0387c3; + } + + .stats-section { + background: #f9fafb; + border-radius: 12px; + padding: 20px; + border: 1px solid #e5e7eb; + } + + .stats-title { + font-size: 18px; + font-weight: 600; + color: #111827; + margin: 0 0 16px 0; + } + + .stat-row { + display: flex; + justify-content: space-between; + align-items: center; + padding: 8px 0; + border-bottom: 1px solid #e5e7eb; + } + + .stat-row:last-child { + border-bottom: none; + } + + .stat-label { + font-size: 14px; + color: #6b7280; + } + + .stat-value { + font-size: 14px; + font-weight: 600; + color: #111827; + } + + .hidden { + display: none; + } + + .overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(255, 255, 255, 0.2); + border-radius: 16px; + z-index: 10; + display: flex; + align-items: center; + justify-content: center; + pointer-events: none; + } + + .error-message { + color: #dc2626; + font-size: 12px; + margin-top: 4px; + padding-left: 4px; + } + `,Oe([Is({type:Object})],ge.prototype,"web3Provider",2),Oe([Is({type:Function})],ge.prototype,"connectWallet",2),Oe([Ye()],ge.prototype,"activeTab",2),Oe([Ye()],ge.prototype,"inputAmount",2),Oe([Ye()],ge.prototype,"walletBalance",2),Oe([Ye()],ge.prototype,"currentStake",2),Oe([Ye()],ge.prototype,"unclaimedRewards",2),Oe([Ye()],ge.prototype,"totalStaked",2),Oe([Ye()],ge.prototype,"userWeeklyRewards",2),Oe([Ye()],ge.prototype,"annualAPR",2),Oe([Ye()],ge.prototype,"interval",2),Oe([Ye()],ge.prototype,"isLoading",2),Oe([Ye()],ge.prototype,"txLoading",2),Oe([Ye()],ge.prototype,"isClaiming",2),Oe([Ye()],ge.prototype,"inputError",2),Oe([Ye()],ge.prototype,"transactionError",2),ge=Oe([Ml("gooddollar-savings-widget")],ge);return H0(Zw);})(); +/*! Bundled license information: + +react/cjs/react.production.min.js: + (** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +react/cjs/react.development.js: + (** + * @license React + * react.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) +*/ +/*! Bundled license information: + +@noble/hashes/esm/utils.js: + (*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *) + +@noble/curves/esm/abstract/utils.js: + (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) + +@noble/curves/esm/abstract/modular.js: + (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) + +@noble/curves/esm/abstract/curve.js: + (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) + +@noble/curves/esm/abstract/weierstrass.js: + (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) + +@noble/curves/esm/_shortw_utils.js: + (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) + +@noble/curves/esm/secp256k1.js: + (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) + +@lit/reactive-element/css-tag.js: + (** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/reactive-element.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/lit-html.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-element/lit-element.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/is-server.js: + (** + * @license + * Copyright 2022 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/custom-element.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/property.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/state.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/event-options.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/base.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/query.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/query-all.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/query-async.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/query-assigned-elements.js: + (** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/query-assigned-nodes.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@noble/hashes/esm/utils.js: + (*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *) +*/ diff --git a/src/language/locales/af/catalog.po b/src/language/locales/af/catalog.po index b25ebf9c3..bd5c259de 100644 --- a/src/language/locales/af/catalog.po +++ b/src/language/locales/af/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/ar/catalog.po b/src/language/locales/ar/catalog.po index ff65b275b..c3f700b1e 100644 --- a/src/language/locales/ar/catalog.po +++ b/src/language/locales/ar/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/ca/catalog.po b/src/language/locales/ca/catalog.po index b007f56e0..d48263003 100644 --- a/src/language/locales/ca/catalog.po +++ b/src/language/locales/ca/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/cs/catalog.po b/src/language/locales/cs/catalog.po index c525376d7..adac9083e 100644 --- a/src/language/locales/cs/catalog.po +++ b/src/language/locales/cs/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/da/catalog.po b/src/language/locales/da/catalog.po index 7e9a6479a..ddc768ac4 100644 --- a/src/language/locales/da/catalog.po +++ b/src/language/locales/da/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/de/catalog.po b/src/language/locales/de/catalog.po index c57c6fc10..9e827a39f 100644 --- a/src/language/locales/de/catalog.po +++ b/src/language/locales/de/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/el/catalog.po b/src/language/locales/el/catalog.po index 372889dc3..8835130d0 100644 --- a/src/language/locales/el/catalog.po +++ b/src/language/locales/el/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/en/catalog.po b/src/language/locales/en/catalog.po index 7f28cf042..b18fec504 100644 --- a/src/language/locales/en/catalog.po +++ b/src/language/locales/en/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/es-419/catalog.po b/src/language/locales/es-419/catalog.po index 4eb37d02b..83d9586b6 100644 --- a/src/language/locales/es-419/catalog.po +++ b/src/language/locales/es-419/catalog.po @@ -304,9 +304,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/es/catalog.po b/src/language/locales/es/catalog.po index 712bc9730..5982bb613 100644 --- a/src/language/locales/es/catalog.po +++ b/src/language/locales/es/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/fi/catalog.po b/src/language/locales/fi/catalog.po index 398c834e9..13ad5622c 100644 --- a/src/language/locales/fi/catalog.po +++ b/src/language/locales/fi/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/fr/catalog.po b/src/language/locales/fr/catalog.po index da98915c3..e902b5c10 100644 --- a/src/language/locales/fr/catalog.po +++ b/src/language/locales/fr/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/he/catalog.po b/src/language/locales/he/catalog.po index 8fda79720..8040e047d 100644 --- a/src/language/locales/he/catalog.po +++ b/src/language/locales/he/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/hi/catalog.po b/src/language/locales/hi/catalog.po index 4716be939..a5d6d2032 100644 --- a/src/language/locales/hi/catalog.po +++ b/src/language/locales/hi/catalog.po @@ -1709,9 +1709,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/hu/catalog.po b/src/language/locales/hu/catalog.po index 4fcf49e00..7909de91b 100644 --- a/src/language/locales/hu/catalog.po +++ b/src/language/locales/hu/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/it/catalog.po b/src/language/locales/it/catalog.po index f3b369744..26598acac 100644 --- a/src/language/locales/it/catalog.po +++ b/src/language/locales/it/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/ja/catalog.po b/src/language/locales/ja/catalog.po index 6be45fac7..514bd80f1 100644 --- a/src/language/locales/ja/catalog.po +++ b/src/language/locales/ja/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/ko/catalog.po b/src/language/locales/ko/catalog.po index 9bcad4dfd..919f1caf2 100644 --- a/src/language/locales/ko/catalog.po +++ b/src/language/locales/ko/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/nl/catalog.po b/src/language/locales/nl/catalog.po index ebf9384f7..dd4abae0d 100644 --- a/src/language/locales/nl/catalog.po +++ b/src/language/locales/nl/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/no/catalog.po b/src/language/locales/no/catalog.po index 7956951ae..6cf3d14c3 100644 --- a/src/language/locales/no/catalog.po +++ b/src/language/locales/no/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/pl/catalog.po b/src/language/locales/pl/catalog.po index 8d1a322fb..695c72de5 100644 --- a/src/language/locales/pl/catalog.po +++ b/src/language/locales/pl/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/pt-BR/catalog.po b/src/language/locales/pt-BR/catalog.po index 006711011..a61bb6e6c 100644 --- a/src/language/locales/pt-BR/catalog.po +++ b/src/language/locales/pt-BR/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/pt/catalog.po b/src/language/locales/pt/catalog.po index 91d3a7cbf..e33fdf7ce 100644 --- a/src/language/locales/pt/catalog.po +++ b/src/language/locales/pt/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/ro/catalog.po b/src/language/locales/ro/catalog.po index 9a3481157..1642a036c 100644 --- a/src/language/locales/ro/catalog.po +++ b/src/language/locales/ro/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/ru/catalog.po b/src/language/locales/ru/catalog.po index ae1f4f0b9..0883e0385 100644 --- a/src/language/locales/ru/catalog.po +++ b/src/language/locales/ru/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/sr/catalog.po b/src/language/locales/sr/catalog.po index 9cc0eb746..722c44477 100644 --- a/src/language/locales/sr/catalog.po +++ b/src/language/locales/sr/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/sv/catalog.po b/src/language/locales/sv/catalog.po index 501f60b6a..e6b70a56c 100644 --- a/src/language/locales/sv/catalog.po +++ b/src/language/locales/sv/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/tr/catalog.po b/src/language/locales/tr/catalog.po index 0f34c435e..b39a6b3fe 100644 --- a/src/language/locales/tr/catalog.po +++ b/src/language/locales/tr/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/uk/catalog.po b/src/language/locales/uk/catalog.po index 9391426fc..9752d8d58 100644 --- a/src/language/locales/uk/catalog.po +++ b/src/language/locales/uk/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/vi/catalog.po b/src/language/locales/vi/catalog.po index df54f784f..a23cbe451 100644 --- a/src/language/locales/vi/catalog.po +++ b/src/language/locales/vi/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/zh-CN/catalog.po b/src/language/locales/zh-CN/catalog.po index 20c5bf14b..639c93561 100644 --- a/src/language/locales/zh-CN/catalog.po +++ b/src/language/locales/zh-CN/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/zh-TW/catalog.po b/src/language/locales/zh-TW/catalog.po index c0a13800d..3c08708ca 100644 --- a/src/language/locales/zh-TW/catalog.po +++ b/src/language/locales/zh-TW/catalog.po @@ -2954,9 +2954,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/language/locales/zh/catalog.po b/src/language/locales/zh/catalog.po index d0830f330..b21ce9378 100644 --- a/src/language/locales/zh/catalog.po +++ b/src/language/locales/zh/catalog.po @@ -2425,9 +2425,17 @@ msgstr "" #~ msgid "Donate" #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:14 +#: src/pages/gd/Savings/index.tsx:23 +#~ msgid "" +#~ "Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +#~ "Savings provides a simple way to generate yield on your digital assets.\n" +#~ "Securely lock your assets and watch them grow over time.\n" +#~ "Please be patient, loading information may take some time." +#~ msgstr "" + +#: src/pages/gd/Savings/index.tsx:13 msgid "" -"Earn rewards by saving your GoodDollars with Ubeswap savings products!\n" +"Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" "Securely lock your assets and watch them grow over time.\n" "Please be patient, loading information may take some time." diff --git a/src/pages/Savings/index.global.js b/src/pages/Savings/index.global.js new file mode 100644 index 000000000..cb78b2bb7 --- /dev/null +++ b/src/pages/Savings/index.global.js @@ -0,0 +1,544 @@ +"use strict";var GooddollarSavingsWidget=(()=>{var $i=Object.defineProperty;var wl=Object.getOwnPropertyDescriptor;var z0=Object.getOwnPropertyNames;var U0=Object.prototype.hasOwnProperty;var E=(e,t)=>()=>(e&&(t=e(e=0)),t);var np=(e,t)=>{for(var r in t)$i(e,r,{get:t[r],enumerable:!0})},L0=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of z0(t))!U0.call(e,o)&&o!==r&&$i(e,o,{get:()=>t[o],enumerable:!(n=wl(t,o))||n.enumerable});return e};var H0=e=>L0($i({},"__esModule",{value:!0}),e),Oe=(e,t,r,n)=>{for(var o=n>1?void 0:n?wl(t,r):t,s=e.length-1,i;s>=0;s--)(i=e[s])&&(o=(n?i(t,r,o):i(o))||o);return n&&o&&$i(t,r,o),o};var zl,Ul=E(()=>{"use strict";zl="1.0.8"});var Ae,qn=E(()=>{"use strict";Ul();Ae=class e extends Error{constructor(t,r={}){let n=r.cause instanceof e?r.cause.details:r.cause?.message?r.cause.message:r.details,o=r.cause instanceof e&&r.cause.docsPath||r.docsPath,s=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...o?[`Docs: https://abitype.dev${o}`]:[],...n?[`Details: ${n}`]:[],`Version: abitype@${zl}`].join(` +`);super(s),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),r.cause&&(this.cause=r.cause),this.details=n,this.docsPath=o,this.metaMessages=r.metaMessages,this.shortMessage=t}}});function at(e,t){return e.exec(t)?.groups}var xp,bp,Li,Ps=E(()=>{"use strict";xp=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,bp=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,Li=/^\(.+?\).*?$/});function Hi(e){let t=e.type;if(Ll.test(e.type)&&"components"in e){t="(";let r=e.components.length;for(let o=0;o{"use strict";Ps();Ll=/^tuple(?(\[(\d*)\])*)$/});function Vn(e){let t="",r=e.length;for(let n=0;n{"use strict";Hl()});function dn(e){return e.type==="function"?`function ${e.name}(${Vn(e.inputs)})${e.stateMutability&&e.stateMutability!=="nonpayable"?` ${e.stateMutability}`:""}${e.outputs?.length?` returns (${Vn(e.outputs)})`:""}`:e.type==="event"?`event ${e.name}(${Vn(e.inputs)})`:e.type==="error"?`error ${e.name}(${Vn(e.inputs)})`:e.type==="constructor"?`constructor(${Vn(e.inputs)})${e.stateMutability==="payable"?" payable":""}`:e.type==="fallback"?`fallback() external${e.stateMutability==="payable"?" payable":""}`:"receive() external payable"}var jl=E(()=>{"use strict";Dl()});function Vl(e){return ql.test(e)}function Gl(e){return at(ql,e)}function Kl(e){return Wl.test(e)}function Yl(e){return at(Wl,e)}function Jl(e){return Zl.test(e)}function Xl(e){return at(Zl,e)}function Gn(e){return Ql.test(e)}function em(e){return at(Ql,e)}function rm(e){return tm.test(e)}function nm(e){return at(tm,e)}function sm(e){return om.test(e)}function im(e){return at(om,e)}function am(e){return nb.test(e)}var ql,Wl,Zl,Ql,tm,om,nb,cm,Di,ks=E(()=>{"use strict";Ps();ql=/^error (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)$/;Wl=/^event (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)$/;Zl=/^function (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)(?: (?external|public{1}))?(?: (?pure|view|nonpayable|payable{1}))?(?: returns\s?\((?.*?)\))?$/;Ql=/^struct (?[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?.*?)\}$/;tm=/^constructor\((?.*?)\)(?:\s(?payable{1}))?$/;om=/^fallback\(\) external(?:\s(?payable{1}))?$/;nb=/^receive\(\) external payable$/;cm=new Set(["indexed"]),Di=new Set(["calldata","memory","storage"])});var ji,qi,Vi,Gi=E(()=>{"use strict";qn();ji=class extends Ae{constructor({signature:t}){super("Failed to parse ABI item.",{details:`parseAbiItem(${JSON.stringify(t,null,2)})`,docsPath:"/api/human#parseabiitem-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiItemError"})}},qi=class extends Ae{constructor({type:t}){super("Unknown type.",{metaMessages:[`Type "${t}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}},Vi=class extends Ae{constructor({type:t}){super("Unknown type.",{metaMessages:[`Type "${t}" is not a valid ABI type.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}}});var Wi,Ki,Yi,Zi,Ji,gp=E(()=>{"use strict";qn();Wi=class extends Ae{constructor({param:t}){super("Invalid ABI parameter.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}},Ki=class extends Ae{constructor({param:t,name:r}){super("Invalid ABI parameter.",{details:t,metaMessages:[`"${r}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}},Yi=class extends Ae{constructor({param:t,type:r,modifier:n}){super("Invalid ABI parameter.",{details:t,metaMessages:[`Modifier "${n}" not allowed${r?` in "${r}" type`:""}.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}},Zi=class extends Ae{constructor({param:t,type:r,modifier:n}){super("Invalid ABI parameter.",{details:t,metaMessages:[`Modifier "${n}" not allowed${r?` in "${r}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${n}" was given.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}},Ji=class extends Ae{constructor({abiParameter:t}){super("Invalid ABI parameter.",{details:JSON.stringify(t,null,2),metaMessages:["ABI parameter type is invalid."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}}});var zt,Xi,Qi,wp=E(()=>{"use strict";qn();zt=class extends Ae{constructor({signature:t,type:r}){super(`Invalid ${r} signature.`,{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}},Xi=class extends Ae{constructor({signature:t}){super("Unknown signature.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}},Qi=class extends Ae{constructor({signature:t}){super("Invalid struct signature.",{details:t,metaMessages:["No properties exist."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}}});var ea,um=E(()=>{"use strict";qn();ea=class extends Ae{constructor({type:t}){super("Circular reference detected.",{metaMessages:[`Struct "${t}" is a circular reference.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}}});var ta,pm=E(()=>{"use strict";qn();ta=class extends Ae{constructor({current:t,depth:r}){super("Unbalanced parentheses.",{metaMessages:[`"${t.trim()}" has too many ${r>0?"opening":"closing"} parentheses.`],details:`Depth "${r}"`}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}}});function fm(e,t,r){let n="";if(r)for(let o of Object.entries(r)){if(!o)continue;let s="";for(let i of o[1])s+=`[${i.type}${i.name?`:${i.name}`:""}]`;n+=`(${o[0]}{${s}})`}return t?`${t}:${e}${n}`:e}var ra,lm=E(()=>{"use strict";ra=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]])});function Bs(e,t={}){if(Jl(e))return ob(e,t);if(Kl(e))return sb(e,t);if(Vl(e))return ib(e,t);if(rm(e))return ab(e,t);if(sm(e))return cb(e);if(am(e))return{type:"receive",stateMutability:"payable"};throw new Xi({signature:e})}function ob(e,t={}){let r=Xl(e);if(!r)throw new zt({signature:e,type:"function"});let n=Tt(r.parameters),o=[],s=n.length;for(let a=0;a{"use strict";Ps();Gi();gp();wp();pm();lm();ks();ub=/^(?[a-zA-Z$_][a-zA-Z0-9$_]*)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,pb=/^\((?.+?)\)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,fb=/^u?int$/;lb=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/});function oa(e){let t={},r=e.length;for(let i=0;i{"use strict";Ps();Gi();gp();wp();um();ks();na();hb=/^(?[a-zA-Z$_][a-zA-Z0-9$_]*)(?(?:\[\d*?\])+?)?$/});function sa(e){let t=oa(e),r=[],n=e.length;for(let o=0;o{"use strict";ks();Ep();na()});function ia(e){let t;if(typeof e=="string")t=Bs(e);else{let r=oa(e),n=e.length;for(let o=0;o{"use strict";Gi();ks();Ep();na()});var aa=E(()=>{"use strict";jl();dm();hm()});function Ce(e,{includeName:t=!1}={}){if(e.type!=="function"&&e.type!=="event"&&e.type!=="error")throw new ca(e.type);return`${e.name}(${Rs(e.inputs,{includeName:t})})`}function Rs(e,{includeName:t=!1}={}){return e?e.map(r=>xb(r,{includeName:t})).join(t?", ":","):""}function xb(e,{includeName:t}){return e.type.startsWith("tuple")?`(${Rs(e.components,{includeName:t})})${e.type.slice(5)}`:e.type+(t&&e.name?` ${e.name}`:"")}var tr=E(()=>{"use strict";ye()});function we(e,{strict:t=!0}={}){return!e||typeof e!="string"?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}var St=E(()=>{"use strict"});function ee(e){return we(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}var mt=E(()=>{"use strict";St()});var Ap,ym=E(()=>{"use strict";Ap="2.28.4"});function xm(e,t){return t?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause!==void 0?xm(e.cause,t):t?null:e}var Tp,g,W=E(()=>{"use strict";ym();Tp={getDocsUrl:({docsBaseUrl:e,docsPath:t="",docsSlug:r})=>t?`${e??"https://viem.sh"}${t}${r?`#${r}`:""}`:void 0,version:`viem@${Ap}`},g=class e extends Error{constructor(t,r={}){let n=r.cause instanceof e?r.cause.details:r.cause?.message?r.cause.message:r.details,o=r.cause instanceof e&&r.cause.docsPath||r.docsPath,s=Tp.getDocsUrl?.({...r,docsPath:o}),i=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...s?[`Docs: ${s}`]:[],...n?[`Details: ${n}`]:[],...Tp.version?[`Version: ${Tp.version}`]:[]].join(` +`);super(i,r.cause?{cause:r.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=n,this.docsPath=o,this.metaMessages=r.metaMessages,this.name=r.name??this.name,this.shortMessage=t,this.version=Ap}walk(t){return xm(this,t)}}});var ua,_s,Wn,dt,pa,fa,la,ma,$s,Kn,da,Yn,Ns,Ct,Zn,ha,ya,xa,It,Ut,ba,ga,Jn,ca,ye=E(()=>{"use strict";tr();mt();W();ua=class extends g{constructor({docsPath:t}){super(["A constructor was not found on the ABI.","Make sure you are using the correct ABI and that the constructor exists on it."].join(` +`),{docsPath:t,name:"AbiConstructorNotFoundError"})}},_s=class extends g{constructor({docsPath:t}){super(["Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.","Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists."].join(` +`),{docsPath:t,name:"AbiConstructorParamsNotFoundError"})}},Wn=class extends g{constructor({data:t,params:r,size:n}){super([`Data size of ${n} bytes is too small for given parameters.`].join(` +`),{metaMessages:[`Params: (${Rs(r,{includeName:!0})})`,`Data: ${t} (${n} bytes)`],name:"AbiDecodingDataSizeTooSmallError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=t,this.params=r,this.size=n}},dt=class extends g{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.',{name:"AbiDecodingZeroDataError"})}},pa=class extends g{constructor({expectedLength:t,givenLength:r,type:n}){super([`ABI encoding array length mismatch for type ${n}.`,`Expected length: ${t}`,`Given length: ${r}`].join(` +`),{name:"AbiEncodingArrayLengthMismatchError"})}},fa=class extends g{constructor({expectedSize:t,value:r}){super(`Size of bytes "${r}" (bytes${ee(r)}) does not match expected size (bytes${t}).`,{name:"AbiEncodingBytesSizeMismatchError"})}},la=class extends g{constructor({expectedLength:t,givenLength:r}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${t}`,`Given length (values): ${r}`].join(` +`),{name:"AbiEncodingLengthMismatchError"})}},ma=class extends g{constructor(t,{docsPath:r}){super([`Arguments (\`args\`) were provided to "${t}", but "${t}" on the ABI does not contain any parameters (\`inputs\`).`,"Cannot encode error result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the inputs exist on it."].join(` +`),{docsPath:r,name:"AbiErrorInputsNotFoundError"})}},$s=class extends g{constructor(t,{docsPath:r}={}){super([`Error ${t?`"${t}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it."].join(` +`),{docsPath:r,name:"AbiErrorNotFoundError"})}},Kn=class extends g{constructor(t,{docsPath:r}){super([`Encoded error signature "${t}" not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${t}.`].join(` +`),{docsPath:r,name:"AbiErrorSignatureNotFoundError"}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.signature=t}},da=class extends g{constructor({docsPath:t}){super("Cannot extract event signature from empty topics.",{docsPath:t,name:"AbiEventSignatureEmptyTopicsError"})}},Yn=class extends g{constructor(t,{docsPath:r}){super([`Encoded event signature "${t}" not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${t}.`].join(` +`),{docsPath:r,name:"AbiEventSignatureNotFoundError"})}},Ns=class extends g{constructor(t,{docsPath:r}={}){super([`Event ${t?`"${t}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it."].join(` +`),{docsPath:r,name:"AbiEventNotFoundError"})}},Ct=class extends g{constructor(t,{docsPath:r}={}){super([`Function ${t?`"${t}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it."].join(` +`),{docsPath:r,name:"AbiFunctionNotFoundError"})}},Zn=class extends g{constructor(t,{docsPath:r}){super([`Function "${t}" does not contain any \`outputs\` on ABI.`,"Cannot decode function result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the function exists on it."].join(` +`),{docsPath:r,name:"AbiFunctionOutputsNotFoundError"})}},ha=class extends g{constructor(t,{docsPath:r}){super([`Encoded function signature "${t}" not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${t}.`].join(` +`),{docsPath:r,name:"AbiFunctionSignatureNotFoundError"})}},ya=class extends g{constructor(t,r){super("Found ambiguous types in overloaded ABI items.",{metaMessages:[`\`${t.type}\` in \`${Ce(t.abiItem)}\`, and`,`\`${r.type}\` in \`${Ce(r.abiItem)}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."],name:"AbiItemAmbiguityError"})}},xa=class extends g{constructor({expectedSize:t,givenSize:r}){super(`Expected bytes${t}, got bytes${r}.`,{name:"BytesSizeMismatchError"})}},It=class extends g{constructor({abiItem:t,data:r,params:n,size:o}){super([`Data size of ${o} bytes is too small for non-indexed event parameters.`].join(` +`),{metaMessages:[`Params: (${Rs(n,{includeName:!0})})`,`Data: ${r} (${o} bytes)`],name:"DecodeLogDataMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=t,this.data=r,this.params=n,this.size=o}},Ut=class extends g{constructor({abiItem:t,param:r}){super([`Expected a topic for indexed event parameter${r.name?` "${r.name}"`:""} on event "${Ce(t,{includeName:!0})}".`].join(` +`),{name:"DecodeLogTopicsMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=t}},ba=class extends g{constructor(t,{docsPath:r}){super([`Type "${t}" is not a valid encoding type.`,"Please provide a valid ABI type."].join(` +`),{docsPath:r,name:"InvalidAbiEncodingType"})}},ga=class extends g{constructor(t,{docsPath:r}){super([`Type "${t}" is not a valid decoding type.`,"Please provide a valid ABI type."].join(` +`),{docsPath:r,name:"InvalidAbiDecodingType"})}},Jn=class extends g{constructor(t){super([`Value "${t}" is not a valid array.`].join(` +`),{name:"InvalidArrayError"})}},ca=class extends g{constructor(t){super([`"${t}" is not a valid definition type.`,'Valid types: "function", "event", "error"'].join(` +`),{name:"InvalidDefinitionTypeError"})}}});var Fs,Os,Ms,va=E(()=>{"use strict";W();Fs=class extends g{constructor({offset:t,position:r,size:n}){super(`Slice ${r==="start"?"starting":"ending"} at offset "${t}" is out-of-bounds (size: ${n}).`,{name:"SliceOffsetOutOfBoundsError"})}},Os=class extends g{constructor({size:t,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${t}) exceeds padding size (${r}).`,{name:"SizeExceedsPaddingSizeError"})}},Ms=class extends g{constructor({size:t,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} is expected to be ${r} ${n} long, but is ${t} ${n} long.`,{name:"InvalidBytesLengthError"})}}});function Sr(e,{dir:t,size:r=32}={}){return typeof e=="string"?rr(e,{dir:t,size:r}):bb(e,{dir:t,size:r})}function rr(e,{dir:t,size:r=32}={}){if(r===null)return e;let n=e.replace("0x","");if(n.length>r*2)throw new Os({size:Math.ceil(n.length/2),targetSize:r,type:"hex"});return`0x${n[t==="right"?"padEnd":"padStart"](r*2,"0")}`}function bb(e,{dir:t,size:r=32}={}){if(r===null)return e;if(e.length>r)throw new Os({size:e.length,targetSize:r,type:"bytes"});let n=new Uint8Array(r);for(let o=0;o{"use strict";va()});var Xn,Aa,Ta,Sa,zs=E(()=>{"use strict";W();Xn=class extends g{constructor({max:t,min:r,signed:n,size:o,value:s}){super(`Number "${s}" is not in safe ${o?`${o*8}-bit ${n?"signed":"unsigned"} `:""}integer range ${t?`(${r} to ${t})`:`(above ${r})`}`,{name:"IntegerOutOfRangeError"})}},Aa=class extends g{constructor(t){super(`Bytes value "${t}" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`,{name:"InvalidBytesBooleanError"})}},Ta=class extends g{constructor(t){super(`Hex value "${t}" is not a valid boolean. The hex value must be "0x0" (false) or "0x1" (true).`,{name:"InvalidHexBooleanError"})}},Sa=class extends g{constructor({givenSize:t,maxSize:r}){super(`Size cannot exceed ${r} bytes. Given size: ${t} bytes.`,{name:"SizeOverflowError"})}}});function Ie(e,{dir:t="left"}={}){let r=typeof e=="string"?e.replace("0x",""):e,n=0;for(let o=0;o{"use strict"});function Qe(e,{size:t}){if(ee(e)>t)throw new Sa({givenSize:ee(e),maxSize:t})}function he(e,t={}){let{signed:r}=t;t.size&&Qe(e,{size:t.size});let n=BigInt(e);if(!r)return n;let o=(e.length-2)/2,s=(1n<{"use strict";zs();mt();hn()});function z(e,t={}){return typeof e=="number"||typeof e=="bigint"?_(e,t):typeof e=="string"?Lt(e,t):typeof e=="boolean"?Cp(e,t):te(e,t)}function Cp(e,t={}){let r=`0x${Number(e)}`;return typeof t.size=="number"?(Qe(r,{size:t.size}),Sr(r,{size:t.size})):r}function te(e,t={}){let r="";for(let o=0;os||o{"use strict";zs();Ea();He();gb=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));wb=new TextEncoder});function ht(e,t={}){return typeof e=="number"||typeof e=="bigint"?Ab(e,t):typeof e=="boolean"?Eb(e,t):we(e)?Pe(e,t):Pt(e,t)}function Eb(e,t={}){let r=new Uint8Array(1);return r[0]=Number(e),typeof t.size=="number"?(Qe(r,{size:t.size}),Sr(r,{size:t.size})):r}function bm(e){if(e>=nr.zero&&e<=nr.nine)return e-nr.zero;if(e>=nr.A&&e<=nr.F)return e-(nr.A-10);if(e>=nr.a&&e<=nr.f)return e-(nr.a-10)}function Pe(e,t={}){let r=e;t.size&&(Qe(r,{size:t.size}),r=Sr(r,{dir:"right",size:t.size}));let n=r.slice(2);n.length%2&&(n=`0${n}`);let o=n.length/2,s=new Uint8Array(o);for(let i=0,a=0;i{"use strict";W();St();Ea();He();V();vb=new TextEncoder;nr={zero:48,nine:57,A:65,F:70,a:97,f:102}});function Us(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function Tb(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Cr(e,...t){if(!Tb(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function gm(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Us(e.outputLen),Us(e.blockLen)}function or(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Ca(e,t){Cr(e);let r=t.outputLen;if(e.length{"use strict"});function Sb(e,t=!1){return t?{h:Number(e&Ia),l:Number(e>>wm&Ia)}:{h:Number(e>>wm&Ia)|0,l:Number(e&Ia)|0}}function vm(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let o=0;o{"use strict";Ia=BigInt(4294967295),wm=BigInt(32);Em=(e,t,r)=>e<>>32-r,Am=(e,t,r)=>t<>>32-r,Tm=(e,t,r)=>t<>>64-r,Sm=(e,t,r)=>e<>>64-r});var yn,Im=E(()=>{"use strict";yn=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0});function Pm(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Pa(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function kt(e,t){return e<<32-t|e>>>t}function Cb(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function Pp(e){for(let t=0;te().update(Pr(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function Bm(e){let t=(n,o)=>e(o).update(Pr(n)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=n=>e(n),t}function Ba(e=32){if(yn&&typeof yn.getRandomValues=="function")return yn.getRandomValues(new Uint8Array(e));if(yn&&typeof yn.randomBytes=="function")return Uint8Array.from(yn.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}var Ip,DA,Ir,xn=E(()=>{"use strict";Im();Ls();Ip=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;DA=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function";Ir=class{clone(){return this._cloneInto()}}});function Fb(e,t=24){let r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let i=0;i<10;i++)r[i]=e[i]^e[i+10]^e[i+20]^e[i+30]^e[i+40];for(let i=0;i<10;i+=2){let a=(i+8)%10,c=(i+2)%10,u=r[c],p=r[c+1],f=Rm(u,p,1)^r[a],l=_m(u,p,1)^r[a+1];for(let m=0;m<50;m+=10)e[i+m]^=f,e[i+m+1]^=l}let o=e[2],s=e[3];for(let i=0;i<24;i++){let a=Nm[i],c=Rm(o,s,a),u=_m(o,s,a),p=$m[i];o=e[p],s=e[p+1],e[p]=c,e[p+1]=u}for(let i=0;i<50;i+=10){for(let a=0;a<10;a++)r[a]=e[i+a];for(let a=0;a<10;a++)e[i+a]^=~r[(a+2)%10]&r[(a+4)%10]}e[0]^=$b[n],e[1]^=Nb[n]}r.fill(0)}var $m,Nm,Fm,Pb,Hs,kb,Bb,Rb,_b,$b,Nb,Rm,_m,Ra,kr,WA,KA,YA,ZA,JA,Om,XA,QA,Mm,eT,tT,zm=E(()=>{"use strict";Ls();Cm();xn();$m=[],Nm=[],Fm=[],Pb=BigInt(0),Hs=BigInt(1),kb=BigInt(2),Bb=BigInt(7),Rb=BigInt(256),_b=BigInt(113);for(let e=0,t=Hs,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],$m.push(2*(5*n+r)),Nm.push((e+1)*(e+2)/2%64);let o=Pb;for(let s=0;s<7;s++)t=(t<>Bb)*_b)%Rb,t&kb&&(o^=Hs<<(Hs<r>32?Tm(e,t,r):Em(e,t,r),_m=(e,t,r)=>r>32?Sm(e,t,r):Am(e,t,r);Ra=class e extends Ir{constructor(t,r,n,o=!1,s=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=t,this.suffix=r,this.outputLen=n,this.enableXOF=o,this.rounds=s,Us(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=Pm(this.state)}keccak(){Ip||Pp(this.state32),Fb(this.state32,this.rounds),Ip||Pp(this.state32),this.posOut=0,this.pos=0}update(t){or(this);let{blockLen:r,state:n}=this;t=Pr(t);let o=t.length;for(let s=0;s=n&&this.keccak();let i=Math.min(n-this.posOut,s-o);t.set(r.subarray(this.posOut,this.posOut+i),o),this.posOut+=i,o+=i}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return Us(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(Ca(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){let{blockLen:r,suffix:n,outputLen:o,rounds:s,enableXOF:i}=this;return t||(t=new e(r,n,o,i,s)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=s,t.suffix=n,t.outputLen=o,t.enableXOF=i,t.destroyed=this.destroyed,t}},kr=(e,t,r)=>ka(()=>new Ra(t,e,r)),WA=kr(6,144,224/8),KA=kr(6,136,256/8),YA=kr(6,104,384/8),ZA=kr(6,72,512/8),JA=kr(1,144,224/8),Om=kr(1,136,256/8),XA=kr(1,104,384/8),QA=kr(1,72,512/8),Mm=(e,t,r)=>Bm((n={})=>new Ra(t,e,n.dkLen===void 0?r:n.dkLen,!0)),eT=Mm(31,168,128/8),tT=Mm(31,136,256/8)});function ue(e,t){let r=t||"hex",n=Om(we(e,{strict:!1})?ht(e):e);return r==="bytes"?n:z(n)}var Bt=E(()=>{"use strict";zm();St();ze();V()});function Um(e){return Ob(e)}var Ob,Lm=E(()=>{"use strict";ze();Bt();Ob=e=>ue(ht(e))});function Hm(e){let t=!0,r="",n=0,o="",s=!1;for(let i=0;i{"use strict";W()});var jm,qm=E(()=>{"use strict";aa();Dm();jm=e=>{let t=typeof e=="string"?e:dn(e);return Hm(t)}});function _a(e){return Um(jm(e))}var kp=E(()=>{"use strict";Lm();qm()});var Br,Ds=E(()=>{"use strict";kp();Br=_a});var ae,Rt=E(()=>{"use strict";W();ae=class extends g{constructor({address:t}){super(`Address "${t}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}});var Ht,js=E(()=>{"use strict";Ht=class extends Map{constructor(t){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=t}get(t){let r=super.get(t);return super.has(t)&&r!==void 0&&(this.delete(t),super.set(t,r)),r}set(t,r){if(super.set(t,r),this.maxSize&&this.size>this.maxSize){let n=this.keys().next().value;n&&this.delete(n)}return this}}});function sr(e,t){if(Bp.has(`${e}.${t}`))return Bp.get(`${e}.${t}`);let r=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),n=ue(Pt(r),"bytes"),o=(t?r.substring(`${t}0x`.length):r).split("");for(let i=0;i<40;i+=2)n[i>>1]>>4>=8&&o[i]&&(o[i]=o[i].toUpperCase()),(n[i>>1]&15)>=8&&o[i+1]&&(o[i+1]=o[i+1].toUpperCase());let s=`0x${o.join("")}`;return Bp.set(`${e}.${t}`,s),s}function $a(e,t){if(!re(e,{strict:!1}))throw new ae({address:e});return sr(e,t)}var Bp,bn=E(()=>{"use strict";Rt();ze();Bt();js();yt();Bp=new Ht(8192)});function re(e,t){let{strict:r=!0}=t??{},n=`${e}.${r}`;if(Rp.has(n))return Rp.get(n);let o=Mb.test(e)?e.toLowerCase()===e?!0:r?sr(e)===e:!0:!1;return Rp.set(n,o),o}var Mb,Rp,yt=E(()=>{"use strict";js();bn();Mb=/^0x[a-fA-F0-9]{40}$/,Rp=new Ht(8192)});function Ze(e){return typeof e[0]=="string"?Te(e):zb(e)}function zb(e){let t=0;for(let o of e)t+=o.length;let r=new Uint8Array(t),n=0;for(let o of e)r.set(o,n),n+=o.length;return r}function Te(e){return`0x${e.reduce((t,r)=>t+r.replace("0x",""),"")}`}var et=E(()=>{"use strict"});function xt(e,t,r,{strict:n}={}){return we(e,{strict:!1})?$p(e,t,r,{strict:n}):_p(e,t,r,{strict:n})}function Vm(e,t){if(typeof t=="number"&&t>0&&t>ee(e)-1)throw new Fs({offset:t,position:"start",size:ee(e)})}function Gm(e,t,r){if(typeof t=="number"&&typeof r=="number"&&ee(e)!==r-t)throw new Fs({offset:r,position:"end",size:ee(e)})}function _p(e,t,r,{strict:n}={}){Vm(e,t);let o=e.slice(t,r);return n&&Gm(o,t,r),o}function $p(e,t,r,{strict:n}={}){Vm(e,t);let o=`0x${e.replace("0x","").slice((t??0)*2,(r??e.length)*2)}`;return n&&Gm(o,t,r),o}var Rr=E(()=>{"use strict";va();St();mt()});var Wm,Na,Np=E(()=>{"use strict";Wm=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Na=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/});function De(e,t){if(e.length!==t.length)throw new la({expectedLength:e.length,givenLength:t.length});let r=Ub({params:e,values:t}),n=Op(r);return n.length===0?"0x":n}function Ub({params:e,values:t}){let r=[];for(let n=0;n0?Ze([a,i]):a}}if(o)return{dynamic:!0,encoded:i}}return{dynamic:!1,encoded:Ze(s.map(({encoded:i})=>i))}}function Db(e,{param:t}){let[,r]=t.type.split("bytes"),n=ee(e);if(!r){let o=e;return n%32!==0&&(o=rr(o,{dir:"right",size:Math.ceil((e.length-2)/2/32)*32})),{dynamic:!0,encoded:Ze([rr(_(n,{size:32})),o])}}if(n!==Number.parseInt(r))throw new fa({expectedSize:Number.parseInt(r),value:e});return{dynamic:!1,encoded:rr(e,{dir:"right"})}}function jb(e){if(typeof e!="boolean")throw new g(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:rr(Cp(e))}}function qb(e,{signed:t,size:r=256}){if(typeof r=="number"){let n=2n**(BigInt(r)-(t?1n:0n))-1n,o=t?-n-1n:0n;if(e>n||eo))}}function Fa(e){let t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}var Dt=E(()=>{"use strict";ye();Rt();W();zs();yt();et();Ea();mt();Rr();V();Np()});var jt,Qn=E(()=>{"use strict";Rr();kp();jt=e=>xt(_a(e),0,4)});function tt(e){let{abi:t,args:r=[],name:n}=e,o=we(n,{strict:!1}),s=t.filter(a=>o?a.type==="function"?jt(a)===n:a.type==="event"?Br(a)===n:!1:"name"in a&&a.name===n);if(s.length===0)return;if(s.length===1)return s[0];let i;for(let a of s){if(!("inputs"in a))continue;if(!r||r.length===0){if(!a.inputs||a.inputs.length===0)return a;continue}if(!a.inputs||a.inputs.length===0||a.inputs.length!==r.length)continue;if(r.every((u,p)=>{let f="inputs"in a&&a.inputs[p];return f?Mp(u,f):!1})){if(i&&"inputs"in i&&i.inputs){let u=Km(a.inputs,i.inputs,r);if(u)throw new ya({abiItem:a,type:u[0]},{abiItem:i,type:u[1]})}i=a}}return i||s[0]}function Mp(e,t){let r=typeof e,n=t.type;switch(n){case"address":return re(e,{strict:!1});case"bool":return r==="boolean";case"function":return r==="string";case"string":return r==="string";default:return n==="tuple"&&"components"in t?Object.values(t.components).every((o,s)=>Mp(Object.values(e)[s],o)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(n)?r==="number"||r==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(n)?r==="string"||e instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(n)?Array.isArray(e)&&e.every(o=>Mp(o,{...t,type:n.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function Km(e,t,r){for(let n in e){let o=e[n],s=t[n];if(o.type==="tuple"&&s.type==="tuple"&&"components"in o&&"components"in s)return Km(o.components,s.components,r[n]);let i=[o.type,s.type];if(i.includes("address")&&i.includes("bytes20")?!0:i.includes("address")&&i.includes("string")?re(r[n],{strict:!1}):i.includes("address")&&i.includes("bytes")?re(r[n],{strict:!1}):!1)return i}}var _r=E(()=>{"use strict";ye();St();yt();Ds();Qn()});function K(e){return typeof e=="string"?{address:e,type:"json-rpc"}:e}var ve=E(()=>{"use strict"});function Xm(e){let{abi:t,args:r,functionName:n}=e,o=t[0];if(n){let s=tt({abi:t,args:r,name:n});if(!s)throw new Ct(n,{docsPath:Jm});o=s}if(o.type!=="function")throw new Ct(void 0,{docsPath:Jm});return{abi:[o],functionName:jt(Ce(o))}}var Jm,Qm=E(()=>{"use strict";ye();Qn();tr();_r();Jm="/docs/contract/encodeFunctionData"});function de(e){let{args:t}=e,{abi:r,functionName:n}=e.abi.length===1&&e.functionName?.startsWith("0x")?e:Xm(e),o=r[0],s=n,i="inputs"in o&&o.inputs?De(o.inputs,t??[]):void 0;return Te([s,i??"0x"])}var ct=E(()=>{"use strict";et();Dt();Qm()});var Ma,za,ed,qs=E(()=>{"use strict";Ma={1:"An `assert` condition failed.",17:"Arithmetic operation resulted in underflow or overflow.",18:"Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).",33:"Attempted to convert to an invalid type.",34:"Attempted to access a storage byte array that is incorrectly encoded.",49:"Performed `.pop()` on an empty array",50:"Array index is out of bounds.",65:"Allocated too much memory or created an array which is too large.",81:"Attempted to call a zero-initialized variable of internal function type."},za={inputs:[{name:"message",type:"string"}],name:"Error",type:"error"},ed={inputs:[{name:"reason",type:"uint256"}],name:"Panic",type:"error"}});var Vs,eo,Ua,zp=E(()=>{"use strict";W();Vs=class extends g{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`,{name:"NegativeOffsetError"})}},eo=class extends g{constructor({length:t,position:r}){super(`Position \`${r}\` is out of bounds (\`0 < position < ${t}\`).`,{name:"PositionOutOfBoundsError"})}},Ua=class extends g{constructor({count:t,limit:r}){super(`Recursive read limit of \`${r}\` exceeded (recursive read count: \`${t}\`).`,{name:"RecursiveReadLimitExceededError"})}}});function to(e,{recursiveReadLimit:t=8192}={}){let r=Object.create(Wb);return r.bytes=e,r.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=t,r}var Wb,La=E(()=>{"use strict";zp();Wb={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new Ua({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new eo({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new Vs({offset:e});let t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new Vs({offset:e});let t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){let t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){let r=t??this.position;return this.assertPosition(r+e-1),this.bytes.subarray(r,r+e)},inspectUint8(e){let t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){let t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){let t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){let t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();let e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();let r=this.inspectBytes(e);return this.position+=t??e,r},readUint8(){this.assertReadLimit(),this._touch();let e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();let e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();let e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();let e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){let t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;let e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}}});function td(e,t={}){typeof t.size<"u"&&Qe(e,{size:t.size});let r=te(e,t);return he(r,t)}function rd(e,t={}){let r=e;if(typeof t.size<"u"&&(Qe(r,{size:t.size}),r=Ie(r)),r.length>1||r[0]>1)throw new Aa(r);return!!r[0]}function Vt(e,t={}){typeof t.size<"u"&&Qe(e,{size:t.size});let r=te(e,t);return xe(r,t)}function nd(e,t={}){let r=e;return typeof t.size<"u"&&(Qe(r,{size:t.size}),r=Ie(r,{dir:"right"})),new TextDecoder().decode(r)}var od=E(()=>{"use strict";zs();hn();He();V()});function ir(e,t){let r=typeof t=="string"?Pe(t):t,n=to(r);if(ee(r)===0&&e.length>0)throw new dt;if(ee(t)&&ee(t)<32)throw new Wn({data:typeof t=="string"?t:te(t),params:e,size:ee(t)});let o=0,s=[];for(let i=0;i48?td(o,{signed:r}):Vt(o,{signed:r}),32]}function Qb(e,t,{staticPosition:r}){let n=t.components.length===0||t.components.some(({name:i})=>!i),o=n?[]:{},s=0;if(Gs(t)){let i=Vt(e.readBytes(Up)),a=r+i;for(let c=0;c{"use strict";ye();bn();La();mt();Rr();hn();od();ze();V();Dt();sd=32,Up=32});function Ha(e){let{abi:t,data:r}=e,n=xt(r,0,4);if(n==="0x")throw new dt;let s=[...t||[],za,ed].find(i=>i.type==="error"&&n===jt(Ce(i)));if(!s)throw new Kn(n,{docsPath:"/docs/contract/decodeErrorResult"});return{abiItem:s,args:"inputs"in s&&s.inputs&&s.inputs.length>0?ir(s.inputs,xt(r,4)):void 0,errorName:s.name}}var Lp=E(()=>{"use strict";qs();ye();Rr();Qn();Ws();tr()});var X,qe=E(()=>{"use strict";X=(e,t,r)=>JSON.stringify(e,(n,o)=>{let s=typeof o=="bigint"?o.toString():o;return typeof t=="function"?t(n,s):s},r)});function Hp({abiItem:e,args:t,includeFunctionName:r=!0,includeName:n=!1}){if("name"in e&&"inputs"in e&&e.inputs)return`${r?e.name:""}(${e.inputs.map((o,s)=>`${n&&o.name?`${o.name}: `:""}${typeof t[s]=="object"?X(t[s]):t[s]}`).join(", ")})`}var id=E(()=>{"use strict";qe()});var Da,ad,ja=E(()=>{"use strict";Da={gwei:9,wei:18},ad={ether:-9,wei:9}});function qa(e,t){let r=e.toString(),n=r.startsWith("-");n&&(r=r.slice(1)),r=r.padStart(t,"0");let[o,s]=[r.slice(0,r.length-t),r.slice(r.length-t)];return s=s.replace(/(0+)$/,""),`${n?"-":""}${o||"0"}${s?`.${s}`:""}`}var Dp=E(()=>{"use strict"});function ar(e,t="wei"){return qa(e,Da[t])}var Ks=E(()=>{"use strict";ja();Dp()});function ke(e,t="wei"){return qa(e,ad[t])}var no=E(()=>{"use strict";ja();Dp()});function cd(e){return e.reduce((t,{slot:r,value:n})=>`${t} ${r}: ${n} +`,"")}function ud(e){return e.reduce((t,{address:r,...n})=>{let o=`${t} ${r}: +`;return n.nonce&&(o+=` nonce: ${n.nonce} +`),n.balance&&(o+=` balance: ${n.balance} +`),n.code&&(o+=` code: ${n.code} +`),n.state&&(o+=` state: +`,o+=cd(n.state)),n.stateDiff&&(o+=` stateDiff: +`,o+=cd(n.stateDiff)),o},` State Override: +`).slice(0,-1)}var Va,Ga,jp=E(()=>{"use strict";W();Va=class extends g{constructor({address:t}){super(`State for account "${t}" is set multiple times.`,{name:"AccountStateConflictError"})}},Ga=class extends g{constructor(){super("state and stateDiff are set on the same account.",{name:"StateAssignmentConflictError"})}}});function gn(e){let t=Object.entries(e).map(([n,o])=>o===void 0||o===!1?null:[n,o]).filter(Boolean),r=t.reduce((n,[o])=>Math.max(n,o.length),0);return t.map(([n,o])=>` ${`${n}:`.padEnd(r+1)} ${o}`).join(` +`)}var Wa,Ka,Ya,Za,Ja,oo,so,Xa,_t=E(()=>{"use strict";Ks();no();W();Wa=class extends g{constructor(){super(["Cannot specify both a `gasPrice` and a `maxFeePerGas`/`maxPriorityFeePerGas`.","Use `maxFeePerGas`/`maxPriorityFeePerGas` for EIP-1559 compatible networks, and `gasPrice` for others."].join(` +`),{name:"FeeConflictError"})}},Ka=class extends g{constructor({v:t}){super(`Invalid \`v\` value "${t}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}},Ya=class extends g{constructor({transaction:t}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",gn(t),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}},Za=class extends g{constructor({storageKey:t}){super(`Size for storage key "${t}" is invalid. Expected 32 bytes. Got ${Math.floor((t.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}},Ja=class extends g{constructor(t,{account:r,docsPath:n,chain:o,data:s,gas:i,gasPrice:a,maxFeePerGas:c,maxPriorityFeePerGas:u,nonce:p,to:f,value:l}){let m=gn({chain:o&&`${o?.name} (id: ${o?.id})`,from:r?.address,to:f,value:typeof l<"u"&&`${ar(l)} ${o?.nativeCurrency?.symbol||"ETH"}`,data:s,gas:i,gasPrice:typeof a<"u"&&`${ke(a)} gwei`,maxFeePerGas:typeof c<"u"&&`${ke(c)} gwei`,maxPriorityFeePerGas:typeof u<"u"&&`${ke(u)} gwei`,nonce:p});super(t.shortMessage,{cause:t,docsPath:n,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Request Arguments:",m].filter(Boolean),name:"TransactionExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}},oo=class extends g{constructor({blockHash:t,blockNumber:r,blockTag:n,hash:o,index:s}){let i="Transaction";n&&s!==void 0&&(i=`Transaction at block time "${n}" at index "${s}"`),t&&s!==void 0&&(i=`Transaction at block hash "${t}" at index "${s}"`),r&&s!==void 0&&(i=`Transaction at block number "${r}" at index "${s}"`),o&&(i=`Transaction with hash "${o}"`),super(`${i} could not be found.`,{name:"TransactionNotFoundError"})}},so=class extends g{constructor({hash:t}){super(`Transaction receipt with hash "${t}" could not be found. The Transaction may not be processed on a block yet.`,{name:"TransactionReceiptNotFoundError"})}},Xa=class extends g{constructor({hash:t}){super(`Timed out while waiting for transaction with hash "${t}" to be confirmed.`,{name:"WaitForTransactionReceiptTimeoutError"})}}});var pd,wn,Qa=E(()=>{"use strict";pd=e=>e,wn=e=>e});var io,ec,vn,tc,rc,Gt,Nr=E(()=>{"use strict";ve();qs();Lp();tr();id();_r();Ks();no();ye();W();jp();_t();Qa();io=class extends g{constructor(t,{account:r,docsPath:n,chain:o,data:s,gas:i,gasPrice:a,maxFeePerGas:c,maxPriorityFeePerGas:u,nonce:p,to:f,value:l,stateOverride:m}){let y=r?K(r):void 0,x=gn({from:y?.address,to:f,value:typeof l<"u"&&`${ar(l)} ${o?.nativeCurrency?.symbol||"ETH"}`,data:s,gas:i,gasPrice:typeof a<"u"&&`${ke(a)} gwei`,maxFeePerGas:typeof c<"u"&&`${ke(c)} gwei`,maxPriorityFeePerGas:typeof u<"u"&&`${ke(u)} gwei`,nonce:p});m&&(x+=` +${ud(m)}`),super(t.shortMessage,{cause:t,docsPath:n,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Raw Call Arguments:",x].filter(Boolean),name:"CallExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}},ec=class extends g{constructor(t,{abi:r,args:n,contractAddress:o,docsPath:s,functionName:i,sender:a}){let c=tt({abi:r,args:n,name:i}),u=c?Hp({abiItem:c,args:n,includeFunctionName:!1,includeName:!1}):void 0,p=c?Ce(c,{includeName:!0}):void 0,f=gn({address:o&&pd(o),function:p,args:u&&u!=="()"&&`${[...Array(i?.length??0).keys()].map(()=>" ").join("")}${u}`,sender:a});super(t.shortMessage||`An unknown error occurred while executing the contract function "${i}".`,{cause:t,docsPath:s,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],f&&"Contract Call:",f].filter(Boolean),name:"ContractFunctionExecutionError"}),Object.defineProperty(this,"abi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"args",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"contractAddress",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"formattedArgs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"functionName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sender",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abi=r,this.args=n,this.cause=t,this.contractAddress=o,this.functionName=i,this.sender=a}},vn=class extends g{constructor({abi:t,data:r,functionName:n,message:o}){let s,i,a,c;if(r&&r!=="0x")try{i=Ha({abi:t,data:r});let{abiItem:p,errorName:f,args:l}=i;if(f==="Error")c=l[0];else if(f==="Panic"){let[m]=l;c=Ma[m]}else{let m=p?Ce(p,{includeName:!0}):void 0,y=p&&l?Hp({abiItem:p,args:l,includeFunctionName:!1,includeName:!1}):void 0;a=[m?`Error: ${m}`:"",y&&y!=="()"?` ${[...Array(f?.length??0).keys()].map(()=>" ").join("")}${y}`:""]}}catch(p){s=p}else o&&(c=o);let u;s instanceof Kn&&(u=s.signature,a=[`Unable to decode signature "${u}" as it was not found on the provided ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${u}.`]),super(c&&c!=="execution reverted"||u?[`The contract function "${n}" reverted with the following ${u?"signature":"reason"}:`,c||u].join(` +`):`The contract function "${n}" reverted.`,{cause:s,metaMessages:a,name:"ContractFunctionRevertedError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reason",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=i,this.raw=r,this.reason=c,this.signature=u}},tc=class extends g{constructor({functionName:t}){super(`The contract function "${t}" returned no data ("0x").`,{metaMessages:["This could be due to any of the following:",` - The contract does not have the function "${t}",`," - The parameters passed to the contract function may be invalid, or"," - The address is not a contract."],name:"ContractFunctionZeroDataError"})}},rc=class extends g{constructor({factory:t}){super(`Deployment for counterfactual contract call failed${t?` for factory "${t}".`:""}`,{metaMessages:["Please ensure:","- The `factory` is a valid contract deployment factory (ie. Create2 Factory, ERC-4337 Factory, etc).","- The `factoryData` is a valid encoded function call for contract deployment function on the factory."],name:"CounterfactualDeploymentFailedError"})}},Gt=class extends g{constructor({data:t,message:r}){super(r||"",{name:"RawContractError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=t}}});var bt,Fr,Ys,En=E(()=>{"use strict";qe();W();Qa();bt=class extends g{constructor({body:t,cause:r,details:n,headers:o,status:s,url:i}){super("HTTP request failed.",{cause:r,details:n,metaMessages:[s&&`Status: ${s}`,`URL: ${wn(i)}`,t&&`Request body: ${X(t)}`].filter(Boolean),name:"HttpRequestError"}),Object.defineProperty(this,"body",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.body=t,this.headers=o,this.status=s,this.url=i}},Fr=class extends g{constructor({body:t,error:r,url:n}){super("RPC Request failed.",{cause:r,details:r.message,metaMessages:[`URL: ${wn(n)}`,`Request body: ${X(t)}`],name:"RpcRequestError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=r.code,this.data=r.data}},Ys=class extends g{constructor({body:t,url:r}){super("The request took too long to respond.",{details:"The request timed out.",metaMessages:[`URL: ${wn(r)}`,`Request body: ${X(t)}`],name:"TimeoutError"})}}});var tg,Ve,Je,ao,co,uo,po,cr,Wt,fo,lo,mo,Or,An,ho,Tn,yo,xo,bo,go,wo,vo,Eo,Ao,To,So,Co,Io,nc,Zs=E(()=>{"use strict";W();En();tg=-1,Ve=class extends g{constructor(t,{code:r,docsPath:n,metaMessages:o,name:s,shortMessage:i}){super(i,{cause:t,docsPath:n,metaMessages:o||t?.metaMessages,name:s||"RpcError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=s||t.name,this.code=t instanceof Fr?t.code:r??tg}},Je=class extends Ve{constructor(t,r){super(t,r),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=r.data}},ao=class e extends Ve{constructor(t){super(t,{code:e.code,name:"ParseRpcError",shortMessage:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text."})}};Object.defineProperty(ao,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700});co=class e extends Ve{constructor(t){super(t,{code:e.code,name:"InvalidRequestRpcError",shortMessage:"JSON is not a valid request object."})}};Object.defineProperty(co,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600});uo=class e extends Ve{constructor(t,{method:r}={}){super(t,{code:e.code,name:"MethodNotFoundRpcError",shortMessage:`The method${r?` "${r}"`:""} does not exist / is not available.`})}};Object.defineProperty(uo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601});po=class e extends Ve{constructor(t){super(t,{code:e.code,name:"InvalidParamsRpcError",shortMessage:["Invalid parameters were provided to the RPC method.","Double check you have provided the correct parameters."].join(` +`)})}};Object.defineProperty(po,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602});cr=class e extends Ve{constructor(t){super(t,{code:e.code,name:"InternalRpcError",shortMessage:"An internal error was received."})}};Object.defineProperty(cr,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603});Wt=class e extends Ve{constructor(t){super(t,{code:e.code,name:"InvalidInputRpcError",shortMessage:["Missing or invalid parameters.","Double check you have provided the correct parameters."].join(` +`)})}};Object.defineProperty(Wt,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32e3});fo=class e extends Ve{constructor(t){super(t,{code:e.code,name:"ResourceNotFoundRpcError",shortMessage:"Requested resource not found."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ResourceNotFoundRpcError"})}};Object.defineProperty(fo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001});lo=class e extends Ve{constructor(t){super(t,{code:e.code,name:"ResourceUnavailableRpcError",shortMessage:"Requested resource not available."})}};Object.defineProperty(lo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002});mo=class e extends Ve{constructor(t){super(t,{code:e.code,name:"TransactionRejectedRpcError",shortMessage:"Transaction creation failed."})}};Object.defineProperty(mo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003});Or=class e extends Ve{constructor(t,{method:r}={}){super(t,{code:e.code,name:"MethodNotSupportedRpcError",shortMessage:`Method${r?` "${r}"`:""} is not supported.`})}};Object.defineProperty(Or,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004});An=class e extends Ve{constructor(t){super(t,{code:e.code,name:"LimitExceededRpcError",shortMessage:"Request exceeds defined limit."})}};Object.defineProperty(An,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005});ho=class e extends Ve{constructor(t){super(t,{code:e.code,name:"JsonRpcVersionUnsupportedError",shortMessage:"Version of JSON-RPC protocol is not supported."})}};Object.defineProperty(ho,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006});Tn=class e extends Je{constructor(t){super(t,{code:e.code,name:"UserRejectedRequestError",shortMessage:"User rejected the request."})}};Object.defineProperty(Tn,"code",{enumerable:!0,configurable:!0,writable:!0,value:4001});yo=class e extends Je{constructor(t){super(t,{code:e.code,name:"UnauthorizedProviderError",shortMessage:"The requested method and/or account has not been authorized by the user."})}};Object.defineProperty(yo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4100});xo=class e extends Je{constructor(t,{method:r}={}){super(t,{code:e.code,name:"UnsupportedProviderMethodError",shortMessage:`The Provider does not support the requested method${r?` " ${r}"`:""}.`})}};Object.defineProperty(xo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4200});bo=class e extends Je{constructor(t){super(t,{code:e.code,name:"ProviderDisconnectedError",shortMessage:"The Provider is disconnected from all chains."})}};Object.defineProperty(bo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4900});go=class e extends Je{constructor(t){super(t,{code:e.code,name:"ChainDisconnectedError",shortMessage:"The Provider is not connected to the requested chain."})}};Object.defineProperty(go,"code",{enumerable:!0,configurable:!0,writable:!0,value:4901});wo=class e extends Je{constructor(t){super(t,{code:e.code,name:"SwitchChainError",shortMessage:"An error occurred when attempting to switch chain."})}};Object.defineProperty(wo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4902});vo=class e extends Je{constructor(t){super(t,{code:e.code,name:"UnsupportedNonOptionalCapabilityError",shortMessage:"This Wallet does not support a capability that was not marked as optional."})}};Object.defineProperty(vo,"code",{enumerable:!0,configurable:!0,writable:!0,value:5700});Eo=class e extends Je{constructor(t){super(t,{code:e.code,name:"UnsupportedChainIdError",shortMessage:"This Wallet does not support the requested chain ID."})}};Object.defineProperty(Eo,"code",{enumerable:!0,configurable:!0,writable:!0,value:5710});Ao=class e extends Je{constructor(t){super(t,{code:e.code,name:"DuplicateIdError",shortMessage:"There is already a bundle submitted with this ID."})}};Object.defineProperty(Ao,"code",{enumerable:!0,configurable:!0,writable:!0,value:5720});To=class e extends Je{constructor(t){super(t,{code:e.code,name:"UnknownBundleIdError",shortMessage:"This bundle id is unknown / has not been submitted"})}};Object.defineProperty(To,"code",{enumerable:!0,configurable:!0,writable:!0,value:5730});So=class e extends Je{constructor(t){super(t,{code:e.code,name:"BundleTooLargeError",shortMessage:"The call bundle is too large for the Wallet to process."})}};Object.defineProperty(So,"code",{enumerable:!0,configurable:!0,writable:!0,value:5740});Co=class e extends Je{constructor(t){super(t,{code:e.code,name:"AtomicReadyWalletRejectedUpgradeError",shortMessage:"The Wallet can support atomicity after an upgrade, but the user rejected the upgrade."})}};Object.defineProperty(Co,"code",{enumerable:!0,configurable:!0,writable:!0,value:5750});Io=class e extends Je{constructor(t){super(t,{code:e.code,name:"AtomicityNotSupportedError",shortMessage:"The wallet does not support atomic execution but the request requires it."})}};Object.defineProperty(Io,"code",{enumerable:!0,configurable:!0,writable:!0,value:5760});nc=class extends Ve{constructor(t){super(t,{name:"UnknownRpcError",shortMessage:"An unknown RPC error occurred."})}}});function ng(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let o=BigInt(32),s=BigInt(4294967295),i=Number(r>>o&s),a=Number(r&s),c=n?4:0,u=n?0:4;e.setUint32(t+c,i,n),e.setUint32(t+u,a,n)}function ld(e,t,r){return e&t^~e&r}function md(e,t,r){return e&t^e&r^t&r}var oc,dd=E(()=>{"use strict";Ls();xn();oc=class extends Ir{constructor(t,r,n,o){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(t),this.view=Pa(this.buffer)}update(t){or(this);let{view:r,buffer:n,blockLen:o}=this;t=Pr(t);let s=t.length;for(let i=0;io-i&&(this.process(n,0),i=0);for(let f=i;fp.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;f{"use strict";dd();xn();og=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Mr=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),zr=new Uint32Array(64),qp=class extends oc{constructor(t=32){super(64,t,8,!1),this.A=Mr[0]|0,this.B=Mr[1]|0,this.C=Mr[2]|0,this.D=Mr[3]|0,this.E=Mr[4]|0,this.F=Mr[5]|0,this.G=Mr[6]|0,this.H=Mr[7]|0}get(){let{A:t,B:r,C:n,D:o,E:s,F:i,G:a,H:c}=this;return[t,r,n,o,s,i,a,c]}set(t,r,n,o,s,i,a,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=o|0,this.E=s|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,r){for(let f=0;f<16;f++,r+=4)zr[f]=t.getUint32(r,!1);for(let f=16;f<64;f++){let l=zr[f-15],m=zr[f-2],y=kt(l,7)^kt(l,18)^l>>>3,x=kt(m,17)^kt(m,19)^m>>>10;zr[f]=x+zr[f-7]+y+zr[f-16]|0}let{A:n,B:o,C:s,D:i,E:a,F:c,G:u,H:p}=this;for(let f=0;f<64;f++){let l=kt(a,6)^kt(a,11)^kt(a,25),m=p+l+ld(a,c,u)+og[f]+zr[f]|0,x=(kt(n,2)^kt(n,13)^kt(n,22))+md(n,o,s)|0;p=u,u=c,c=a,a=i+m|0,i=s,s=o,o=n,n=m+x|0}n=n+this.A|0,o=o+this.B|0,s=s+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,p=p+this.H|0,this.set(n,o,s,i,a,c,u,p)}roundClean(){zr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},Ur=ka(()=>new qp)});var hd=E(()=>{"use strict";Vp()});var sc,Gp,yd=E(()=>{"use strict";Ls();xn();sc=class extends Ir{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,gm(t);let n=Pr(r);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let o=this.blockLen,s=new Uint8Array(o);s.set(n.length>o?t.create().update(n).digest():n);for(let i=0;inew sc(e,t).update(r).digest();Gp.create=(e,t)=>new sc(e,t)});function Sn(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function pr(e){if(!Sn(e))throw new Error("Uint8Array expected")}function Po(e,t){if(typeof t!="boolean")throw new Error(e+" boolean expected, got "+t)}function Js(e){let t=e.toString(16);return t.length&1?"0"+t:t}function gd(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?Zp:BigInt("0x"+e)}function ko(e){if(pr(e),wd)return e.toHex();let t="";for(let r=0;r=ur._0&&e<=ur._9)return e-ur._0;if(e>=ur.A&&e<=ur.F)return e-(ur.A-10);if(e>=ur.a&&e<=ur.f)return e-(ur.a-10)}function Xs(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(wd)return Uint8Array.fromHex(e);let t=e.length,r=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(r);for(let o=0,s=0;oZp;e>>=Yp,t+=1);return t}function Ed(e,t,r){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof r!="function")throw new Error("hmacFn must be a function");let n=Kp(e),o=Kp(e),s=0,i=()=>{n.fill(1),o.fill(0),s=0},a=(...f)=>r(o,n,...f),c=(f=Kp(0))=>{o=a(bd([0]),f),n=a(),f.length!==0&&(o=a(bd([1]),f),n=a())},u=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let f=0,l=[];for(;f{i(),c(f);let m;for(;!(m=l(u()));)c();return i(),m}}function lr(e,t,r={}){let n=(o,s,i)=>{let a=ig[s];if(typeof a!="function")throw new Error("invalid validator function");let c=e[o];if(!(i&&c===void 0)&&!a(c,e))throw new Error("param "+String(o)+" is invalid. Expected "+s+", got "+c)};for(let[o,s]of Object.entries(t))n(o,s,!1);for(let[o,s]of Object.entries(r))n(o,s,!0);return e}function Qp(e){let t=new WeakMap;return(r,...n)=>{let o=t.get(r);if(o!==void 0)return o;let s=e(r,...n);return t.set(r,s),s}}var Zp,Yp,wd,sg,ur,Wp,In,Kp,bd,ig,Bo=E(()=>{"use strict";Zp=BigInt(0),Yp=BigInt(1);wd=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",sg=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));ur={_0:48,_9:57,A:65,F:70,a:97,f:102};Wp=e=>typeof e=="bigint"&&Zp<=e;In=e=>(Yp<new Uint8Array(e),bd=e=>Uint8Array.from(e);ig={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||Sn(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)}});function Ee(e,t){let r=e%t;return r>=Re?r:t+r}function pg(e,t,r){if(tRe;)t&be&&(n=n*e%r),e=e*e%r,t>>=be;return n}function pt(e,t,r){let n=e;for(;t-- >Re;)n*=n,n%=r;return n}function ac(e,t){if(e===Re)throw new Error("invert: expected non-zero number");if(t<=Re)throw new Error("invert: expected positive modulus, got "+t);let r=Ee(e,t),n=t,o=Re,s=be,i=be,a=Re;for(;r!==Re;){let u=n/r,p=n%r,f=o-i*u,l=s-a*u;n=r,r=p,o=i,s=a,i=f,a=l}if(n!==be)throw new Error("invert: does not exist");return Ee(o,t)}function fg(e){let t=(e-be)/Pn,r,n,o;for(r=e-be,n=0;r%Pn===Re;r/=Pn,n++);for(o=Pn;o1e3)throw new Error("Cannot find square root: likely non-prime P");if(n===1){let i=(e+be)/ef;return function(c,u){let p=c.pow(u,i);if(!c.eql(c.sqr(p),u))throw new Error("Cannot find square root");return p}}let s=(r+be)/Pn;return function(a,c){if(a.pow(c,t)===a.neg(a.ONE))throw new Error("Cannot find square root");let u=n,p=a.pow(a.mul(a.ONE,o),r),f=a.pow(c,s),l=a.pow(c,r);for(;!a.eql(l,a.ONE);){if(a.eql(l,a.ZERO))return a.ZERO;let m=1;for(let x=a.sqr(l);m(n[o]="function",n),t);return lr(e,r)}function dg(e,t,r){if(rRe;)r&be&&(n=e.mul(n,o)),o=e.sqr(o),r>>=be;return n}function hg(e,t){let r=new Array(t.length),n=t.reduce((s,i,a)=>e.is0(i)?s:(r[a]=s,e.mul(s,i)),e.ONE),o=e.inv(n);return t.reduceRight((s,i,a)=>e.is0(i)?s:(r[a]=e.mul(s,r[a]),e.mul(s,i)),o),r}function tf(e,t){let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function uc(e,t,r=!1,n={}){if(e<=Re)throw new Error("invalid field: expected ORDER > 0, got "+e);let{nBitLength:o,nByteLength:s}=tf(e,t);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let i,a=Object.freeze({ORDER:e,isLE:r,BITS:o,BYTES:s,MASK:In(o),ZERO:Re,ONE:be,create:c=>Ee(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof c);return Re<=c&&cc===Re,isOdd:c=>(c&be)===be,neg:c=>Ee(-c,e),eql:(c,u)=>c===u,sqr:c=>Ee(c*c,e),add:(c,u)=>Ee(c+u,e),sub:(c,u)=>Ee(c-u,e),mul:(c,u)=>Ee(c*u,e),pow:(c,u)=>dg(a,c,u),div:(c,u)=>Ee(c*ac(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>ac(c,e),sqrt:n.sqrt||(c=>(i||(i=lg(e)),i(a,c))),invertBatch:c=>hg(a,c),cmov:(c,u,p)=>p?u:c,toBytes:c=>r?Xp(c,s):Kt(c,s),fromBytes:c=>{if(c.length!==s)throw new Error("Field.fromBytes: expected "+s+" bytes, got "+c.length);return r?Jp(c):rt(c)}});return Object.freeze(a)}function Sd(e){if(typeof e!="bigint")throw new Error("field order must be bigint");let t=e.toString(2).length;return Math.ceil(t/8)}function rf(e){let t=Sd(e);return t+Math.ceil(t/2)}function Cd(e,t,r=!1){let n=e.length,o=Sd(t),s=rf(t);if(n<16||n1024)throw new Error("expected "+s+"-1024 bytes of input, got "+n);let i=r?Jp(e):rt(e),a=Ee(i,t-be)+be;return r?Xp(a,o):Kt(a,o)}var Re,be,Pn,ag,ef,Ad,Td,cg,ug,mg,Qs=E(()=>{"use strict";Bo();Re=BigInt(0),be=BigInt(1),Pn=BigInt(2),ag=BigInt(3),ef=BigInt(4),Ad=BigInt(5),Td=BigInt(8),cg=BigInt(9),ug=BigInt(16);mg=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"]});function nf(e,t){let r=t.negate();return e?r:t}function kd(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function of(e,t){kd(e,t);let r=Math.ceil(t/e)+1,n=2**(e-1),o=2**e,s=In(e),i=BigInt(e);return{windows:r,windowSize:n,mask:s,maxNumber:o,shiftBy:i}}function Pd(e,t,r){let{windowSize:n,mask:o,maxNumber:s,shiftBy:i}=r,a=Number(e&o),c=e>>i;a>n&&(a-=s,c+=cf);let u=t*n,p=u+Math.abs(a)-1,f=a===0,l=a<0,m=t%2!==0;return{nextN:c,offset:p,isZero:f,isNeg:l,isNegF:m,offsetF:u}}function yg(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((r,n)=>{if(!(r instanceof t))throw new Error("invalid point at index "+n)})}function xg(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((r,n)=>{if(!t.isValid(r))throw new Error("invalid scalar at index "+n)})}function af(e){return Bd.get(e)||1}function Rd(e,t){return{constTimeNegate:nf,hasPrecomputes(r){return af(r)!==1},unsafeLadder(r,n,o=e.ZERO){let s=r;for(;n>Id;)n&cf&&(o=o.add(s)),s=s.double(),n>>=cf;return o},precomputeWindow(r,n){let{windows:o,windowSize:s}=of(n,t),i=[],a=r,c=a;for(let u=0;u12?s-3:s>4?s-2:s?2:1,a=In(i),c=new Array(Number(a)+1).fill(o),u=Math.floor((t.BITS-1)/i)*i,p=o;for(let f=u;f>=0;f-=i){c.fill(o);for(let m=0;m>BigInt(f)&a);c[x]=c[x].add(r[m])}let l=o;for(let m=c.length-1,y=o;m>0;m--)y=y.add(c[m]),l=l.add(y);if(p=p.add(l),f!==0)for(let m=0;m{"use strict";Qs();Bo();Id=BigInt(0),cf=BigInt(1);sf=new WeakMap,Bd=new WeakMap});function Nd(e){e.lowS!==void 0&&Po("lowS",e.lowS),e.prehash!==void 0&&Po("prehash",e.prehash)}function bg(e){let t=uf(e);lr(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:r,Fp:n,a:o}=t;if(r){if(!n.eql(o,n.ZERO))throw new Error("invalid endomorphism, can only be defined for Koblitz curves that have a=0");if(typeof r!="object"||typeof r.beta!="bigint"||typeof r.splitScalar!="function")throw new Error("invalid endomorphism, expected beta: bigint and splitScalar: function")}return Object.freeze({...t})}function gg(e){let t=bg(e),{Fp:r}=t,n=uc(t.n,t.nBitLength),o=t.toBytes||((x,d,h)=>{let b=d.toAffine();return Xe(Uint8Array.from([4]),r.toBytes(b.x),r.toBytes(b.y))}),s=t.fromBytes||(x=>{let d=x.subarray(1),h=r.fromBytes(d.subarray(0,r.BYTES)),b=r.fromBytes(d.subarray(r.BYTES,2*r.BYTES));return{x:h,y:b}});function i(x){let{a:d,b:h}=t,b=r.sqr(x),v=r.mul(b,x);return r.add(r.add(v,r.mul(x,d)),h)}if(!r.eql(r.sqr(t.Gy),i(t.Gx)))throw new Error("bad generator point: equation left != right");function a(x){return Cn(x,ce,t.n)}function c(x){let{allowedPrivateKeyLengths:d,nByteLength:h,wrapPrivateKey:b,n:v}=t;if(d&&typeof x!="bigint"){if(Sn(x)&&(x=ko(x)),typeof x!="string"||!d.includes(x.length))throw new Error("invalid private key");x=x.padStart(h*2,"0")}let A;try{A=typeof x=="bigint"?x:rt(Be("private key",x,h))}catch{throw new Error("invalid private key, expected hex or "+h+" bytes, got "+typeof x)}return b&&(A=Ee(A,v)),fr("private key",A,ce,v),A}function u(x){if(!(x instanceof l))throw new Error("ProjectivePoint expected")}let p=Qp((x,d)=>{let{px:h,py:b,pz:v}=x;if(r.eql(v,r.ONE))return{x:h,y:b};let A=x.is0();d==null&&(d=A?r.ONE:r.inv(v));let k=r.mul(h,d),S=r.mul(b,d),T=r.mul(v,d);if(A)return{x:r.ZERO,y:r.ZERO};if(!r.eql(T,r.ONE))throw new Error("invZ was invalid");return{x:k,y:S}}),f=Qp(x=>{if(x.is0()){if(t.allowInfinityPoint&&!r.is0(x.py))return;throw new Error("bad point: ZERO")}let{x:d,y:h}=x.toAffine();if(!r.isValid(d)||!r.isValid(h))throw new Error("bad point: x or y not FE");let b=r.sqr(h),v=i(d);if(!r.eql(b,v))throw new Error("bad point: equation left != right");if(!x.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class l{constructor(d,h,b){if(d==null||!r.isValid(d))throw new Error("x required");if(h==null||!r.isValid(h))throw new Error("y required");if(b==null||!r.isValid(b))throw new Error("z required");this.px=d,this.py=h,this.pz=b,Object.freeze(this)}static fromAffine(d){let{x:h,y:b}=d||{};if(!d||!r.isValid(h)||!r.isValid(b))throw new Error("invalid affine point");if(d instanceof l)throw new Error("projective point not allowed");let v=A=>r.eql(A,r.ZERO);return v(h)&&v(b)?l.ZERO:new l(h,b,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(d){let h=r.invertBatch(d.map(b=>b.pz));return d.map((b,v)=>b.toAffine(h[v])).map(l.fromAffine)}static fromHex(d){let h=l.fromAffine(s(Be("pointHex",d)));return h.assertValidity(),h}static fromPrivateKey(d){return l.BASE.multiply(c(d))}static msm(d,h){return _d(l,n,d,h)}_setWindowSize(d){y.setWindowSize(this,d)}assertValidity(){f(this)}hasEvenY(){let{y:d}=this.toAffine();if(r.isOdd)return!r.isOdd(d);throw new Error("Field doesn't support isOdd")}equals(d){u(d);let{px:h,py:b,pz:v}=this,{px:A,py:k,pz:S}=d,T=r.eql(r.mul(h,S),r.mul(A,v)),B=r.eql(r.mul(b,S),r.mul(k,v));return T&&B}negate(){return new l(this.px,r.neg(this.py),this.pz)}double(){let{a:d,b:h}=t,b=r.mul(h,pc),{px:v,py:A,pz:k}=this,S=r.ZERO,T=r.ZERO,B=r.ZERO,P=r.mul(v,v),H=r.mul(A,A),U=r.mul(k,k),L=r.mul(v,A);return L=r.add(L,L),B=r.mul(v,k),B=r.add(B,B),S=r.mul(d,B),T=r.mul(b,U),T=r.add(S,T),S=r.sub(H,T),T=r.add(H,T),T=r.mul(S,T),S=r.mul(L,S),B=r.mul(b,B),U=r.mul(d,U),L=r.sub(P,U),L=r.mul(d,L),L=r.add(L,B),B=r.add(P,P),P=r.add(B,P),P=r.add(P,U),P=r.mul(P,L),T=r.add(T,P),U=r.mul(A,k),U=r.add(U,U),P=r.mul(U,L),S=r.sub(S,P),B=r.mul(U,H),B=r.add(B,B),B=r.add(B,B),new l(S,T,B)}add(d){u(d);let{px:h,py:b,pz:v}=this,{px:A,py:k,pz:S}=d,T=r.ZERO,B=r.ZERO,P=r.ZERO,H=t.a,U=r.mul(t.b,pc),L=r.mul(h,A),ne=r.mul(b,k),R=r.mul(v,S),O=r.add(h,b),N=r.add(A,k);O=r.mul(O,N),N=r.add(L,ne),O=r.sub(O,N),N=r.add(h,v);let q=r.add(A,S);return N=r.mul(N,q),q=r.add(L,R),N=r.sub(N,q),q=r.add(b,v),T=r.add(k,S),q=r.mul(q,T),T=r.add(ne,R),q=r.sub(q,T),P=r.mul(H,N),T=r.mul(U,R),P=r.add(T,P),T=r.sub(ne,P),P=r.add(ne,P),B=r.mul(T,P),ne=r.add(L,L),ne=r.add(ne,L),R=r.mul(H,R),N=r.mul(U,N),ne=r.add(ne,R),R=r.sub(L,R),R=r.mul(H,R),N=r.add(N,R),L=r.mul(ne,N),B=r.add(B,L),L=r.mul(q,N),T=r.mul(O,T),T=r.sub(T,L),L=r.mul(O,ne),P=r.mul(q,P),P=r.add(P,L),new l(T,B,P)}subtract(d){return this.add(d.negate())}is0(){return this.equals(l.ZERO)}wNAF(d){return y.wNAFCached(this,d,l.normalizeZ)}multiplyUnsafe(d){let{endo:h,n:b}=t;fr("scalar",d,$t,b);let v=l.ZERO;if(d===$t)return v;if(this.is0()||d===ce)return this;if(!h||y.hasPrecomputes(this))return y.wNAFCachedUnsafe(this,d,l.normalizeZ);let{k1neg:A,k1:k,k2neg:S,k2:T}=h.splitScalar(d),B=v,P=v,H=this;for(;k>$t||T>$t;)k&ce&&(B=B.add(H)),T&ce&&(P=P.add(H)),H=H.double(),k>>=ce,T>>=ce;return A&&(B=B.negate()),S&&(P=P.negate()),P=new l(r.mul(P.px,h.beta),P.py,P.pz),B.add(P)}multiply(d){let{endo:h,n:b}=t;fr("scalar",d,ce,b);let v,A;if(h){let{k1neg:k,k1:S,k2neg:T,k2:B}=h.splitScalar(d),{p:P,f:H}=this.wNAF(S),{p:U,f:L}=this.wNAF(B);P=y.constTimeNegate(k,P),U=y.constTimeNegate(T,U),U=new l(r.mul(U.px,h.beta),U.py,U.pz),v=P.add(U),A=H.add(L)}else{let{p:k,f:S}=this.wNAF(d);v=k,A=S}return l.normalizeZ([v,A])[0]}multiplyAndAddUnsafe(d,h,b){let v=l.BASE,A=(S,T)=>T===$t||T===ce||!S.equals(v)?S.multiplyUnsafe(T):S.multiply(T),k=A(this,h).add(A(d,b));return k.is0()?void 0:k}toAffine(d){return p(this,d)}isTorsionFree(){let{h:d,isTorsionFree:h}=t;if(d===ce)return!0;if(h)return h(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:d,clearCofactor:h}=t;return d===ce?this:h?h(l,this):this.multiplyUnsafe(t.h)}toRawBytes(d=!0){return Po("isCompressed",d),this.assertValidity(),o(l,this,d)}toHex(d=!0){return Po("isCompressed",d),ko(this.toRawBytes(d))}}l.BASE=new l(t.Gx,t.Gy,r.ONE),l.ZERO=new l(r.ZERO,r.ONE,r.ZERO);let m=t.nBitLength,y=Rd(l,t.endo?Math.ceil(m/2):m);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:i,isWithinCurveOrder:a}}function wg(e){let t=uf(e);return lr(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function Od(e){let t=wg(e),{Fp:r,n}=t,o=r.BYTES+1,s=2*r.BYTES+1;function i(R){return Ee(R,n)}function a(R){return ac(R,n)}let{ProjectivePoint:c,normPrivateKeyToScalar:u,weierstrassEquation:p,isWithinCurveOrder:f}=gg({...t,toBytes(R,O,N){let q=O.toAffine(),D=r.toBytes(q.x),F=Xe;return Po("isCompressed",N),N?F(Uint8Array.from([O.hasEvenY()?2:3]),D):F(Uint8Array.from([4]),D,r.toBytes(q.y))},fromBytes(R){let O=R.length,N=R[0],q=R.subarray(1);if(O===o&&(N===2||N===3)){let D=rt(q);if(!Cn(D,ce,r.ORDER))throw new Error("Point is not on curve");let F=p(D),Q;try{Q=r.sqrt(F)}catch(I){let G=I instanceof Error?": "+I.message:"";throw new Error("Point is not on curve"+G)}let fe=(Q&ce)===ce;return(N&1)===1!==fe&&(Q=r.neg(Q)),{x:D,y:Q}}else if(O===s&&N===4){let D=r.fromBytes(q.subarray(0,r.BYTES)),F=r.fromBytes(q.subarray(r.BYTES,2*r.BYTES));return{x:D,y:F}}else{let D=o,F=s;throw new Error("invalid Point, expected length of "+D+", or uncompressed "+F+", got "+O)}}}),l=R=>ko(Kt(R,t.nByteLength));function m(R){let O=n>>ce;return R>O}function y(R){return m(R)?i(-R):R}let x=(R,O,N)=>rt(R.slice(O,N));class d{constructor(O,N,q){fr("r",O,ce,n),fr("s",N,ce,n),this.r=O,this.s=N,q!=null&&(this.recovery=q),Object.freeze(this)}static fromCompact(O){let N=t.nByteLength;return O=Be("compactSignature",O,N*2),new d(x(O,0,N),x(O,N,2*N))}static fromDER(O){let{r:N,s:q}=mr.toSig(Be("DER",O));return new d(N,q)}assertValidity(){}addRecoveryBit(O){return new d(this.r,this.s,O)}recoverPublicKey(O){let{r:N,s:q,recovery:D}=this,F=S(Be("msgHash",O));if(D==null||![0,1,2,3].includes(D))throw new Error("recovery id invalid");let Q=D===2||D===3?N+t.n:N;if(Q>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let fe=(D&1)===0?"02":"03",w=c.fromHex(fe+l(Q)),I=a(Q),G=i(-F*I),Z=i(q*I),Y=c.BASE.multiplyAndAddUnsafe(w,G,Z);if(!Y)throw new Error("point at infinify");return Y.assertValidity(),Y}hasHighS(){return m(this.s)}normalizeS(){return this.hasHighS()?new d(this.r,i(-this.s),this.recovery):this}toDERRawBytes(){return Xs(this.toDERHex())}toDERHex(){return mr.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Xs(this.toCompactHex())}toCompactHex(){return l(this.r)+l(this.s)}}let h={isValidPrivateKey(R){try{return u(R),!0}catch{return!1}},normPrivateKeyToScalar:u,randomPrivateKey:()=>{let R=rf(t.n);return Cd(t.randomBytes(R),t.n)},precompute(R=8,O=c.BASE){return O._setWindowSize(R),O.multiply(BigInt(3)),O}};function b(R,O=!0){return c.fromPrivateKey(R).toRawBytes(O)}function v(R){let O=Sn(R),N=typeof R=="string",q=(O||N)&&R.length;return O?q===o||q===s:N?q===2*o||q===2*s:R instanceof c}function A(R,O,N=!0){if(v(R))throw new Error("first arg must be private key");if(!v(O))throw new Error("second arg must be public key");return c.fromHex(O).multiply(u(R)).toRawBytes(N)}let k=t.bits2int||function(R){if(R.length>8192)throw new Error("input is too large");let O=rt(R),N=R.length*8-t.nBitLength;return N>0?O>>BigInt(N):O},S=t.bits2int_modN||function(R){return i(k(R))},T=In(t.nBitLength);function B(R){return fr("num < 2^"+t.nBitLength,R,$t,T),Kt(R,t.nByteLength)}function P(R,O,N=H){if(["recovered","canonical"].some(se=>se in N))throw new Error("sign() legacy options not supported");let{hash:q,randomBytes:D}=t,{lowS:F,prehash:Q,extraEntropy:fe}=N;F==null&&(F=!0),R=Be("msgHash",R),Nd(N),Q&&(R=Be("prehashed msgHash",q(R)));let w=S(R),I=u(O),G=[B(I),B(w)];if(fe!=null&&fe!==!1){let se=fe===!0?D(r.BYTES):fe;G.push(Be("extraEntropy",se))}let Z=Xe(...G),Y=w;function le(se){let ie=k(se);if(!f(ie))return;let pe=a(ie),$e=c.BASE.multiply(ie).toAffine(),gr=i($e.x);if(gr===$t)return;let zn=i(pe*i(Y+gr*I));if(zn===$t)return;let cn=($e.x===gr?0:2)|Number($e.y&ce),rp=zn;return F&&m(zn)&&(rp=y(zn),cn^=1),new d(gr,rp,cn)}return{seed:Z,k2sig:le}}let H={lowS:t.lowS,prehash:!1},U={lowS:t.lowS,prehash:!1};function L(R,O,N=H){let{seed:q,k2sig:D}=P(R,O,N),F=t;return Ed(F.hash.outputLen,F.nByteLength,F.hmac)(q,D)}c.BASE._setWindowSize(8);function ne(R,O,N,q=U){let D=R;O=Be("msgHash",O),N=Be("publicKey",N);let{lowS:F,prehash:Q,format:fe}=q;if(Nd(q),"strict"in q)throw new Error("options.strict was renamed to lowS");if(fe!==void 0&&fe!=="compact"&&fe!=="der")throw new Error("format must be compact or der");let w=typeof D=="string"||Sn(D),I=!w&&!fe&&typeof D=="object"&&D!==null&&typeof D.r=="bigint"&&typeof D.s=="bigint";if(!w&&!I)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let G,Z;try{if(I&&(G=new d(D.r,D.s)),w){try{fe!=="compact"&&(G=d.fromDER(D))}catch(cn){if(!(cn instanceof mr.Err))throw cn}!G&&fe!=="der"&&(G=d.fromCompact(D))}Z=c.fromHex(N)}catch{return!1}if(!G||F&&G.hasHighS())return!1;Q&&(O=t.hash(O));let{r:Y,s:le}=G,se=S(O),ie=a(le),pe=i(se*ie),$e=i(Y*ie),gr=c.BASE.multiplyAndAddUnsafe(Z,pe,$e)?.toAffine();return gr?i(gr.x)===Y:!1}return{CURVE:t,getPublicKey:b,getSharedSecret:A,sign:L,verify:ne,ProjectivePoint:c,Signature:d,utils:h}}function vg(e,t){let r=e.ORDER,n=$t;for(let y=r-ce;y%Lr===$t;y/=Lr)n+=ce;let o=n,s=Lr<{let d=f,h=e.pow(x,u),b=e.sqr(h);b=e.mul(b,x);let v=e.mul(y,b);v=e.pow(v,c),v=e.mul(v,h),h=e.mul(v,x),b=e.mul(v,y);let A=e.mul(b,h);v=e.pow(A,p);let k=e.eql(v,e.ONE);h=e.mul(b,l),v=e.mul(A,d),b=e.cmov(h,b,k),A=e.cmov(v,A,k);for(let S=o;S>ce;S--){let T=S-Lr;T=Lr<{let b=e.sqr(h),v=e.mul(d,h);b=e.mul(b,v);let A=e.pow(b,y);A=e.mul(A,v);let k=e.mul(A,x),S=e.mul(e.sqr(A),h),T=e.eql(S,d),B=e.cmov(k,A,T);return{isValid:T,value:B}}}return m}function Md(e,t){if(cc(e),!e.isValid(t.A)||!e.isValid(t.B)||!e.isValid(t.Z))throw new Error("mapToCurveSimpleSWU: invalid opts");let r=vg(e,t.Z);if(!e.isOdd)throw new Error("Fp.isOdd is not implemented!");return n=>{let o,s,i,a,c,u,p,f;o=e.sqr(n),o=e.mul(o,t.Z),s=e.sqr(o),s=e.add(s,o),i=e.add(s,e.ONE),i=e.mul(i,t.B),a=e.cmov(t.Z,e.neg(s),!e.eql(s,e.ZERO)),a=e.mul(a,t.A),s=e.sqr(i),u=e.sqr(a),c=e.mul(u,t.A),s=e.add(s,c),s=e.mul(s,i),u=e.mul(u,a),c=e.mul(u,t.B),s=e.add(s,c),p=e.mul(o,i);let{isValid:l,value:m}=r(s,u);f=e.mul(o,n),f=e.mul(f,m),p=e.cmov(p,i,l),f=e.cmov(f,m,l);let y=e.isOdd(n)===e.isOdd(f);return f=e.cmov(e.neg(f),f,y),p=e.div(p,a),{x:p,y:f}}}var pf,mr,$t,ce,Lr,pc,Fd,ff=E(()=>{"use strict";$d();Qs();Bo();pf=class extends Error{constructor(t=""){super(t)}},mr={Err:pf,_tlv:{encode:(e,t)=>{let{Err:r}=mr;if(e<0||e>256)throw new r("tlv.encode: wrong tag");if(t.length&1)throw new r("tlv.encode: unpadded data");let n=t.length/2,o=Js(n);if(o.length/2&128)throw new r("tlv.encode: long form length too big");let s=n>127?Js(o.length/2|128):"";return Js(e)+s+o+t},decode(e,t){let{Err:r}=mr,n=0;if(e<0||e>256)throw new r("tlv.encode: wrong tag");if(t.length<2||t[n++]!==e)throw new r("tlv.decode: wrong tlv");let o=t[n++],s=!!(o&128),i=0;if(!s)i=o;else{let c=o&127;if(!c)throw new r("tlv.decode(long): indefinite length not supported");if(c>4)throw new r("tlv.decode(long): byte length is too big");let u=t.subarray(n,n+c);if(u.length!==c)throw new r("tlv.decode: length bytes not complete");if(u[0]===0)throw new r("tlv.decode(long): zero leftmost byte");for(let p of u)i=i<<8|p;if(n+=c,i<128)throw new r("tlv.decode(long): not minimal encoding")}let a=t.subarray(n,n+i);if(a.length!==i)throw new r("tlv.decode: wrong value length");return{v:a,l:t.subarray(n+i)}}},_int:{encode(e){let{Err:t}=mr;if(e<$t)throw new t("integer: negative integers are not allowed");let r=Js(e);if(Number.parseInt(r[0],16)&8&&(r="00"+r),r.length&1)throw new t("unexpected DER parsing assertion: unpadded hex");return r},decode(e){let{Err:t}=mr;if(e[0]&128)throw new t("invalid signature integer: negative");if(e[0]===0&&!(e[1]&128))throw new t("invalid signature integer: unnecessary leading zero");return rt(e)}},toSig(e){let{Err:t,_int:r,_tlv:n}=mr,o=Be("signature",e),{v:s,l:i}=n.decode(48,o);if(i.length)throw new t("invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,s),{v:u,l:p}=n.decode(2,c);if(p.length)throw new t("invalid signature: left bytes after parsing");return{r:r.decode(a),s:r.decode(u)}},hexFromSig(e){let{_tlv:t,_int:r}=mr,n=t.encode(2,r.encode(e.r)),o=t.encode(2,r.encode(e.s)),s=n+o;return t.encode(48,s)}},$t=BigInt(0),ce=BigInt(1),Lr=BigInt(2),pc=BigInt(3),Fd=BigInt(4)});function Eg(e){return{hash:e,hmac:(t,...r)=>Gp(e,t,km(...r)),randomBytes:Ba}}function zd(e,t){let r=n=>Od({...e,...Eg(n)});return{...r(t),create:r}}var Ud=E(()=>{"use strict";yd();xn();ff();});function Hr(e,t){if(ei(e),ei(t),e<0||e>=1<<8*t)throw new Error("invalid I2OSP input: "+e);let r=Array.from({length:t}).fill(0);for(let n=t-1;n>=0;n--)r[n]=e&255,e>>>=8;return new Uint8Array(r)}function Tg(e,t){let r=new Uint8Array(e.length);for(let n=0;n255&&(t=n(Xe(ic("H2C-OVERSIZE-DST-"),t)));let{outputLen:o,blockLen:s}=n,i=Math.ceil(r/o);if(r>65535||i>255)throw new Error("expand_message_xmd: invalid lenInBytes");let a=Xe(t,Hr(t.length,1)),c=Hr(0,s),u=Hr(r,2),p=new Array(i),f=n(Xe(c,e,u,Hr(0,1),a));p[0]=n(Xe(f,Hr(1,1),a));for(let m=1;m<=i;m++){let y=[Tg(f,p[m-1]),Hr(m+1,1),a];p[m]=n(Xe(...y))}return Xe(...p).slice(0,r)}function Cg(e,t,r,n,o){if(pr(e),pr(t),ei(r),t.length>255){let s=Math.ceil(2*n/8);t=o.create({dkLen:s}).update(ic("H2C-OVERSIZE-DST-")).update(t).digest()}if(r>65535||t.length>255)throw new Error("expand_message_xof: invalid lenInBytes");return o.create({dkLen:r}).update(e).update(Hr(r,2)).update(t).update(Hr(t.length,1)).digest()}function Ld(e,t,r){lr(r,{DST:"stringOrUint8Array",p:"bigint",m:"isSafeInteger",k:"isSafeInteger",hash:"hash"});let{p:n,k:o,m:s,hash:i,expand:a,DST:c}=r;pr(e),ei(t);let u=typeof c=="string"?ic(c):c,p=n.toString(2).length,f=Math.ceil((p+o)/8),l=t*s*f,m;if(a==="xmd")m=Sg(e,u,l,i);else if(a==="xof")m=Cg(e,u,l,o,i);else if(a==="_internal_pass")m=e;else throw new Error('expand must be "xmd" or "xof"');let y=new Array(t);for(let x=0;xArray.from(n).reverse());return(n,o)=>{let[s,i,a,c]=r.map(u=>u.reduce((p,f)=>e.add(e.mul(p,n),f)));if(e.is0(i)||e.is0(c))throw new Error("bad point: ZERO");return n=e.div(s,i),o=e.mul(o,e.div(a,c)),{x:n,y:o}}}function Dd(e,t,r){if(typeof t!="function")throw new Error("mapToCurve() must be defined");return{hashToCurve(n,o){let s=Ld(n,2,{...r,DST:r.DST,...o}),i=e.fromAffine(t(s[0])),a=e.fromAffine(t(s[1])),c=i.add(a).clearCofactor();return c.assertValidity(),c},encodeToCurve(n,o){let s=Ld(n,1,{...r,DST:r.encodeDST,...o}),i=e.fromAffine(t(s[0])).clearCofactor();return i.assertValidity(),i},mapToCurve(n){if(!Array.isArray(n))throw new Error("mapToCurve: expected array of bigints");for(let s of n)if(typeof s!="bigint")throw new Error("mapToCurve: expected array of bigints");let o=e.fromAffine(t(n)).clearCofactor();return o.assertValidity(),o}}}var Ag,jd=E(()=>{"use strict";Qs();Bo();Ag=rt});var Xd={};np(Xd,{encodeToCurve:()=>Ng,hashToCurve:()=>$g,schnorr:()=>Bg,secp256k1:()=>kn});function Gd(e){let t=ni,r=BigInt(3),n=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,p=u*u*e%t,f=pt(p,r,t)*p%t,l=pt(f,r,t)*p%t,m=pt(l,lc,t)*u%t,y=pt(m,o,t)*m%t,x=pt(y,s,t)*y%t,d=pt(x,a,t)*x%t,h=pt(d,c,t)*d%t,b=pt(h,a,t)*x%t,v=pt(b,r,t)*p%t,A=pt(v,i,t)*y%t,k=pt(A,n,t)*u%t,S=pt(k,lc,t);if(!Dr.eql(Dr.sqr(S),e))throw new Error("Cannot find square root");return S}function mc(e,...t){let r=Vd[e];if(r===void 0){let n=Ur(Uint8Array.from(e,o=>o.charCodeAt(0)));r=Xe(n,n),Vd[e]=r}return Ur(Xe(r,...t))}function df(e){let t=kn.utils.normPrivateKeyToScalar(e),r=yf.fromPrivateKey(t);return{scalar:r.hasEvenY()?t:ri(-t),bytes:hf(r)}}function Kd(e){fr("x",e,ti,ni);let t=lf(e*e),r=lf(t*e+BigInt(7)),n=Gd(r);n%lc!==Wd&&(n=lf(-n));let o=new yf(e,n,ti);return o.assertValidity(),o}function Yd(...e){return ri(Ro(mc("BIP0340/challenge",...e)))}function Pg(e){return df(e).bytes}function kg(e,t,r=Ba(32)){let n=Be("message",e),{bytes:o,scalar:s}=df(t),i=Be("auxRand",r,32),a=mf(s^Ro(mc("BIP0340/aux",i))),c=mc("BIP0340/nonce",a,o,n),u=ri(Ro(c));if(u===Wd)throw new Error("sign failed: k is zero");let{bytes:p,scalar:f}=df(u),l=Yd(p,o,n),m=new Uint8Array(64);if(m.set(p,0),m.set(mf(ri(f+l*s)),32),!Zd(m,n,o))throw new Error("sign: Invalid signature produced");return m}function Zd(e,t,r){let n=Be("signature",e,64),o=Be("message",t),s=Be("publicKey",r,32);try{let i=Kd(Ro(s)),a=Ro(n.subarray(0,32));if(!Cn(a,ti,ni))return!1;let c=Ro(n.subarray(32,64));if(!Cn(c,ti,fc))return!1;let u=Yd(mf(a),hf(i),o),p=Ig(i,c,ri(-u));return!(!p||!p.hasEvenY()||p.toAffine().x!==a)}catch{return!1}}var ni,fc,ti,lc,qd,Dr,kn,Wd,Vd,hf,mf,lf,ri,yf,Ig,Ro,Bg,Rg,_g,Jd,$g,Ng,xf=E(()=>{"use strict";hd();xn();Ud();jd();Qs();Bo();ff();ni=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),fc=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),ti=BigInt(1),lc=BigInt(2),qd=(e,t)=>(e+t/lc)/t;Dr=uc(ni,void 0,void 0,{sqrt:Gd}),kn=zd({a:BigInt(0),b:BigInt(7),Fp:Dr,n:fc,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=fc,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-ti*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),o=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=r,i=BigInt("0x100000000000000000000000000000000"),a=qd(s*e,t),c=qd(-n*e,t),u=Ee(e-a*r-c*o,t),p=Ee(-a*n-c*s,t),f=u>i,l=p>i;if(f&&(u=t-u),l&&(p=t-p),u>i||p>i)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:f,k1:u,k2neg:l,k2:p}}}},Ur),Wd=BigInt(0),Vd={};hf=e=>e.toRawBytes(!0).slice(1),mf=e=>Kt(e,32),lf=e=>Ee(e,ni),ri=e=>Ee(e,fc),yf=kn.ProjectivePoint,Ig=(e,t,r)=>yf.BASE.multiplyAndAddUnsafe(e,t,r);Ro=rt;Bg={getPublicKey:Pg,sign:kg,verify:Zd,utils:{randomPrivateKey:kn.utils.randomPrivateKey,lift_x:Kd,pointToBytes:hf,numberToBytesBE:Kt,bytesToNumberBE:rt,taggedHash:mc,mod:Ee}},Rg=Hd(Dr,[["0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7","0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581","0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262","0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c"],["0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b","0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14","0x0000000000000000000000000000000000000000000000000000000000000001"],["0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c","0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3","0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931","0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84"],["0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b","0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573","0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f","0x0000000000000000000000000000000000000000000000000000000000000001"]].map(e=>e.map(t=>BigInt(t)))),_g=Md(Dr,{A:BigInt("0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533"),B:BigInt("1771"),Z:Dr.create(BigInt("-11"))}),Jd=Dd(kn.ProjectivePoint,e=>{let{x:t,y:r}=_g(Dr.create(e[0]));return Rg(t,r)},{DST:"secp256k1_XMD:SHA-256_SSWU_RO_",encodeDST:"secp256k1_XMD:SHA-256_SSWU_NU_",p:Dr.ORDER,m:1,k:128,expand:"xmd",hash:Ur}),$g=Jd.hashToCurve,Ng=Jd.encodeToCurve});var dr,nt,_o,$o,No,Fo,Oo,Mo,zo,Uo,gt,wt,hr=E(()=>{"use strict";no();W();dr=class extends g{constructor({cause:t,message:r}={}){let n=r?.replace("execution reverted: ","")?.replace("execution reverted","");super(`Execution reverted ${n?`with reason: ${n}`:"for an unknown reason"}.`,{cause:t,name:"ExecutionRevertedError"})}};Object.defineProperty(dr,"code",{enumerable:!0,configurable:!0,writable:!0,value:3});Object.defineProperty(dr,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted/});nt=class extends g{constructor({cause:t,maxFeePerGas:r}={}){super(`The fee cap (\`maxFeePerGas\`${r?` = ${ke(r)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:t,name:"FeeCapTooHighError"})}};Object.defineProperty(nt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});_o=class extends g{constructor({cause:t,maxFeePerGas:r}={}){super(`The fee cap (\`maxFeePerGas\`${r?` = ${ke(r)}`:""} gwei) cannot be lower than the block base fee.`,{cause:t,name:"FeeCapTooLowError"})}};Object.defineProperty(_o,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/});$o=class extends g{constructor({cause:t,nonce:r}={}){super(`Nonce provided for the transaction ${r?`(${r}) `:""}is higher than the next one expected.`,{cause:t,name:"NonceTooHighError"})}};Object.defineProperty($o,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});No=class extends g{constructor({cause:t,nonce:r}={}){super([`Nonce provided for the transaction ${r?`(${r}) `:""}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join(` +`),{cause:t,name:"NonceTooLowError"})}};Object.defineProperty(No,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/});Fo=class extends g{constructor({cause:t,nonce:r}={}){super(`Nonce provided for the transaction ${r?`(${r}) `:""}exceeds the maximum allowed nonce.`,{cause:t,name:"NonceMaxValueError"})}};Object.defineProperty(Fo,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/});Oo=class extends g{constructor({cause:t}={}){super(["The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."].join(` +`),{cause:t,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."],name:"InsufficientFundsError"})}};Object.defineProperty(Oo,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/});Mo=class extends g{constructor({cause:t,gas:r}={}){super(`The amount of gas ${r?`(${r}) `:""}provided for the transaction exceeds the limit allowed for the block.`,{cause:t,name:"IntrinsicGasTooHighError"})}};Object.defineProperty(Mo,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});zo=class extends g{constructor({cause:t,gas:r}={}){super(`The amount of gas ${r?`(${r}) `:""}provided for the transaction is too low.`,{cause:t,name:"IntrinsicGasTooLowError"})}};Object.defineProperty(zo,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});Uo=class extends g{constructor({cause:t}){super("The transaction type is not supported for this chain.",{cause:t,name:"TransactionTypeNotSupportedError"})}};Object.defineProperty(Uo,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});gt=class extends g{constructor({cause:t,maxPriorityFeePerGas:r,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${r?` = ${ke(r)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${ke(n)} gwei`:""}).`].join(` +`),{cause:t,name:"TipAboveFeeCapError"})}};Object.defineProperty(gt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});wt=class extends g{constructor({cause:t}){super(`An error occurred while executing: ${t?.shortMessage}`,{cause:t,name:"UnknownNodeError"})}}});function jr(e,t){let r=(e.details||"").toLowerCase(),n=e instanceof g?e.walk(o=>o?.code===dr.code):e;return n instanceof g?new dr({cause:e,message:n.details}):dr.nodeMessage.test(r)?new dr({cause:e,message:e.details}):nt.nodeMessage.test(r)?new nt({cause:e,maxFeePerGas:t?.maxFeePerGas}):_o.nodeMessage.test(r)?new _o({cause:e,maxFeePerGas:t?.maxFeePerGas}):$o.nodeMessage.test(r)?new $o({cause:e,nonce:t?.nonce}):No.nodeMessage.test(r)?new No({cause:e,nonce:t?.nonce}):Fo.nodeMessage.test(r)?new Fo({cause:e,nonce:t?.nonce}):Oo.nodeMessage.test(r)?new Oo({cause:e}):Mo.nodeMessage.test(r)?new Mo({cause:e,gas:t?.gas}):zo.nodeMessage.test(r)?new zo({cause:e,gas:t?.gas}):Uo.nodeMessage.test(r)?new Uo({cause:e}):gt.nodeMessage.test(r)?new gt({cause:e,maxFeePerGas:t?.maxFeePerGas,maxPriorityFeePerGas:t?.maxPriorityFeePerGas}):new wt({cause:e})}var oi=E(()=>{"use strict";W();hr()});function qr(e,{format:t}){if(!t)return{};let r={};function n(s){let i=Object.keys(s);for(let a of i)a in e&&(r[a]=e[a]),s[a]&&typeof s[a]=="object"&&!Array.isArray(s[a])&&n(s[a])}let o=t(e||{});return n(o),r}var si=E(()=>{"use strict"});function Lo(e,t){return({exclude:r,format:n})=>({exclude:r,format:o=>{let s=t(o);if(r)for(let i of r)delete s[i];return{...s,...n(o)}},type:e})}var xc=E(()=>{"use strict"});function lt(e){let t={};return typeof e.authorizationList<"u"&&(t.authorizationList=zg(e.authorizationList)),typeof e.accessList<"u"&&(t.accessList=e.accessList),typeof e.blobVersionedHashes<"u"&&(t.blobVersionedHashes=e.blobVersionedHashes),typeof e.blobs<"u"&&(typeof e.blobs[0]!="string"?t.blobs=e.blobs.map(r=>te(r)):t.blobs=e.blobs),typeof e.data<"u"&&(t.data=e.data),typeof e.from<"u"&&(t.from=e.from),typeof e.gas<"u"&&(t.gas=_(e.gas)),typeof e.gasPrice<"u"&&(t.gasPrice=_(e.gasPrice)),typeof e.maxFeePerBlobGas<"u"&&(t.maxFeePerBlobGas=_(e.maxFeePerBlobGas)),typeof e.maxFeePerGas<"u"&&(t.maxFeePerGas=_(e.maxFeePerGas)),typeof e.maxPriorityFeePerGas<"u"&&(t.maxPriorityFeePerGas=_(e.maxPriorityFeePerGas)),typeof e.nonce<"u"&&(t.nonce=_(e.nonce)),typeof e.to<"u"&&(t.to=e.to),typeof e.type<"u"&&(t.type=Mg[e.type]),typeof e.value<"u"&&(t.value=_(e.value)),t}function zg(e){return e.map(t=>({address:t.address,r:t.r?_(BigInt(t.r)):t.r,s:t.s?_(BigInt(t.s)):t.s,chainId:_(t.chainId),nonce:_(t.nonce),...typeof t.yParity<"u"?{yParity:_(t.yParity)}:{},...typeof t.v<"u"&&typeof t.yParity>"u"?{v:_(t.v)}:{}}))}var Mg,sh,Vr=E(()=>{"use strict";V();xc();Mg={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"};sh=Lo("transactionRequest",lt)});function ih(e){if(!(!e||e.length===0))return e.reduce((t,{slot:r,value:n})=>{if(r.length!==66)throw new Ms({size:r.length,targetSize:66,type:"hex"});if(n.length!==66)throw new Ms({size:n.length,targetSize:66,type:"hex"});return t[r]=n,t},{})}function Ug(e){let{balance:t,nonce:r,state:n,stateDiff:o,code:s}=e,i={};if(s!==void 0&&(i.code=s),t!==void 0&&(i.balance=_(t)),r!==void 0&&(i.nonce=_(r)),n!==void 0&&(i.state=ih(n)),o!==void 0){if(i.state)throw new Ga;i.stateDiff=ih(o)}return i}function Ho(e){if(!e)return;let t={};for(let{address:r,...n}of e){if(!re(r,{strict:!1}))throw new ae({address:r});if(t[r])throw new Va({address:r});t[r]=Ug(n)}return t}var bc=E(()=>{"use strict";Rt();va();jp();yt();V()});var PI,kI,BI,RI,_I,$I,NI,FI,OI,MI,zI,UI,LI,HI,DI,jI,qI,VI,GI,WI,KI,YI,ZI,JI,XI,QI,eP,tP,rP,nP,oP,sP,iP,aP,cP,uP,pP,fP,lP,mP,dP,hP,yP,xP,bP,gP,wP,vP,EP,AP,TP,SP,CP,IP,PP,kP,BP,RP,_P,$P,NP,FP,OP,MP,zP,UP,LP,HP,DP,jP,qP,VP,GP,WP,KP,YP,ZP,JP,XP,QP,ek,tk,rk,nk,ok,sk,ik,ak,ck,uk,pk,fk,lk,mk,dk,Gr,gc=E(()=>{"use strict";PI=2n**(8n-1n)-1n,kI=2n**(16n-1n)-1n,BI=2n**(24n-1n)-1n,RI=2n**(32n-1n)-1n,_I=2n**(40n-1n)-1n,$I=2n**(48n-1n)-1n,NI=2n**(56n-1n)-1n,FI=2n**(64n-1n)-1n,OI=2n**(72n-1n)-1n,MI=2n**(80n-1n)-1n,zI=2n**(88n-1n)-1n,UI=2n**(96n-1n)-1n,LI=2n**(104n-1n)-1n,HI=2n**(112n-1n)-1n,DI=2n**(120n-1n)-1n,jI=2n**(128n-1n)-1n,qI=2n**(136n-1n)-1n,VI=2n**(144n-1n)-1n,GI=2n**(152n-1n)-1n,WI=2n**(160n-1n)-1n,KI=2n**(168n-1n)-1n,YI=2n**(176n-1n)-1n,ZI=2n**(184n-1n)-1n,JI=2n**(192n-1n)-1n,XI=2n**(200n-1n)-1n,QI=2n**(208n-1n)-1n,eP=2n**(216n-1n)-1n,tP=2n**(224n-1n)-1n,rP=2n**(232n-1n)-1n,nP=2n**(240n-1n)-1n,oP=2n**(248n-1n)-1n,sP=2n**(256n-1n)-1n,iP=-(2n**(8n-1n)),aP=-(2n**(16n-1n)),cP=-(2n**(24n-1n)),uP=-(2n**(32n-1n)),pP=-(2n**(40n-1n)),fP=-(2n**(48n-1n)),lP=-(2n**(56n-1n)),mP=-(2n**(64n-1n)),dP=-(2n**(72n-1n)),hP=-(2n**(80n-1n)),yP=-(2n**(88n-1n)),xP=-(2n**(96n-1n)),bP=-(2n**(104n-1n)),gP=-(2n**(112n-1n)),wP=-(2n**(120n-1n)),vP=-(2n**(128n-1n)),EP=-(2n**(136n-1n)),AP=-(2n**(144n-1n)),TP=-(2n**(152n-1n)),SP=-(2n**(160n-1n)),CP=-(2n**(168n-1n)),IP=-(2n**(176n-1n)),PP=-(2n**(184n-1n)),kP=-(2n**(192n-1n)),BP=-(2n**(200n-1n)),RP=-(2n**(208n-1n)),_P=-(2n**(216n-1n)),$P=-(2n**(224n-1n)),NP=-(2n**(232n-1n)),FP=-(2n**(240n-1n)),OP=-(2n**(248n-1n)),MP=-(2n**(256n-1n)),zP=2n**8n-1n,UP=2n**16n-1n,LP=2n**24n-1n,HP=2n**32n-1n,DP=2n**40n-1n,jP=2n**48n-1n,qP=2n**56n-1n,VP=2n**64n-1n,GP=2n**72n-1n,WP=2n**80n-1n,KP=2n**88n-1n,YP=2n**96n-1n,ZP=2n**104n-1n,JP=2n**112n-1n,XP=2n**120n-1n,QP=2n**128n-1n,ek=2n**136n-1n,tk=2n**144n-1n,rk=2n**152n-1n,nk=2n**160n-1n,ok=2n**168n-1n,sk=2n**176n-1n,ik=2n**184n-1n,ak=2n**192n-1n,ck=2n**200n-1n,uk=2n**208n-1n,pk=2n**216n-1n,fk=2n**224n-1n,lk=2n**232n-1n,mk=2n**240n-1n,dk=2n**248n-1n,Gr=2n**256n-1n});function ot(e){let{account:t,gasPrice:r,maxFeePerGas:n,maxPriorityFeePerGas:o,to:s}=e,i=t?K(t):void 0;if(i&&!re(i.address))throw new ae({address:i.address});if(s&&!re(s))throw new ae({address:s});if(typeof r<"u"&&(typeof n<"u"||typeof o<"u"))throw new Wa;if(n&&n>Gr)throw new nt({maxFeePerGas:n});if(o&&n&&o>n)throw new gt({maxFeePerGas:n,maxPriorityFeePerGas:o})}var Wr=E(()=>{"use strict";ve();gc();Rt();hr();_t();yt()});function Yt(e,t){if(!re(e,{strict:!1}))throw new ae({address:e});if(!re(t,{strict:!1}))throw new ae({address:t});return e.toLowerCase()===t.toLowerCase()}var Yo=E(()=>{"use strict";Rt();yt()});function st(e){let{abi:t,args:r,functionName:n,data:o}=e,s=t[0];if(n){let a=tt({abi:t,args:r,name:n});if(!a)throw new Ct(n,{docsPath:vf});s=a}if(s.type!=="function")throw new Ct(void 0,{docsPath:vf});if(!s.outputs)throw new Zn(s.name,{docsPath:vf});let i=ir(s.outputs,o);if(i&&i.length>1)return i;if(i&&i.length===1)return i[0]}var vf,Zr=E(()=>{"use strict";ye();Ws();_r();vf="/docs/contract/decodeFunctionResult"});var ai,Rc,xh,_c,bh,Ef,Af,Tf,Jr=E(()=>{"use strict";ai=[{inputs:[{components:[{name:"target",type:"address"},{name:"allowFailure",type:"bool"},{name:"callData",type:"bytes"}],name:"calls",type:"tuple[]"}],name:"aggregate3",outputs:[{components:[{name:"success",type:"bool"},{name:"returnData",type:"bytes"}],name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"}],Rc=[{name:"query",type:"function",stateMutability:"view",inputs:[{type:"tuple[]",name:"queries",components:[{type:"address",name:"sender"},{type:"string[]",name:"urls"},{type:"bytes",name:"data"}]}],outputs:[{type:"bool[]",name:"failures"},{type:"bytes[]",name:"responses"}]},{name:"HttpError",type:"error",inputs:[{type:"uint16",name:"status"},{type:"string",name:"message"}]}],xh=[{inputs:[],name:"ResolverNotFound",type:"error"},{inputs:[],name:"ResolverWildcardNotSupported",type:"error"},{inputs:[],name:"ResolverNotContract",type:"error"},{inputs:[{name:"returnData",type:"bytes"}],name:"ResolverError",type:"error"},{inputs:[{components:[{name:"status",type:"uint16"},{name:"message",type:"string"}],name:"errors",type:"tuple[]"}],name:"HttpError",type:"error"}],_c=[...xh,{name:"resolve",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes"},{name:"data",type:"bytes"}],outputs:[{name:"",type:"bytes"},{name:"address",type:"address"}]},{name:"resolve",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes"},{name:"data",type:"bytes"},{name:"gateways",type:"string[]"}],outputs:[{name:"",type:"bytes"},{name:"address",type:"address"}]}],bh=[...xh,{name:"reverse",type:"function",stateMutability:"view",inputs:[{type:"bytes",name:"reverseName"}],outputs:[{type:"string",name:"resolvedName"},{type:"address",name:"resolvedAddress"},{type:"address",name:"reverseResolver"},{type:"address",name:"resolver"}]},{name:"reverse",type:"function",stateMutability:"view",inputs:[{type:"bytes",name:"reverseName"},{type:"string[]",name:"gateways"}],outputs:[{type:"string",name:"resolvedName"},{type:"address",name:"resolvedAddress"},{type:"address",name:"reverseResolver"},{type:"address",name:"resolver"}]}],Ef=[{name:"text",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"key",type:"string"}],outputs:[{name:"",type:"string"}]}],Af=[{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"}],outputs:[{name:"",type:"address"}]},{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"coinType",type:"uint256"}],outputs:[{name:"",type:"bytes"}]}],Tf=[{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],outputs:[{type:"bool"}],stateMutability:"nonpayable",type:"function",name:"isValidSig"}]});var gh,wh=E(()=>{"use strict";gh="0x82ad56cb"});var $c,vh,Eh,Nc=E(()=>{"use strict";$c="0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe",vh="0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe",Eh="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572"});var Rn,Fc,Oc,ci,yr,Qo=E(()=>{"use strict";W();Rn=class extends g{constructor({blockNumber:t,chain:r,contract:n}){super(`Chain "${r.name}" does not support contract "${n.name}".`,{metaMessages:["This could be due to any of the following:",...t&&n.blockCreated&&n.blockCreated>t?[`- The contract "${n.name}" was not deployed until block ${n.blockCreated} (current block ${t}).`]:[`- The chain does not have the contract "${n.name}" configured.`]],name:"ChainDoesNotSupportContract"})}},Fc=class extends g{constructor({chain:t,currentChainId:r}){super(`The current chain of the wallet (id: ${r}) does not match the target chain for the transaction (id: ${t.id} \u2013 ${t.name}).`,{metaMessages:[`Current Chain ID: ${r}`,`Expected Chain ID: ${t.id} \u2013 ${t.name}`],name:"ChainMismatchError"})}},Oc=class extends g{constructor(){super(["No chain was provided to the request.","Please provide a chain with the `chain` argument on the Action, or by supplying a `chain` to WalletClient."].join(` +`),{name:"ChainNotFoundError"})}},ci=class extends g{constructor(){super("No chain was provided to the Client.",{name:"ClientChainNotConfiguredError"})}},yr=class extends g{constructor({chainId:t}){super(typeof t=="number"?`Chain ID "${t}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}});function _n(e){let{abi:t,args:r,bytecode:n}=e;if(!r||r.length===0)return n;let o=t.find(i=>"type"in i&&i.type==="constructor");if(!o)throw new ua({docsPath:Sf});if(!("inputs"in o))throw new _s({docsPath:Sf});if(!o.inputs||o.inputs.length===0)throw new _s({docsPath:Sf});let s=De(o.inputs,r);return Te([n,s])}var Sf,Mc=E(()=>{"use strict";ye();et();Dt();Sf="/docs/contract/encodeDeployData"});function Et({blockNumber:e,chain:t,contract:r}){let n=t?.contracts?.[r];if(!n)throw new Rn({chain:t,contract:{name:r}});if(e&&n.blockCreated&&n.blockCreated>e)throw new Rn({blockNumber:e,chain:t,contract:{name:r,blockCreated:n.blockCreated}});return n.address}var $n=E(()=>{"use strict";Qo()});function zc(e,{docsPath:t,...r}){let n=(()=>{let o=jr(e,r);return o instanceof wt?e:o})();return new io(n,{docsPath:t,...r})}var Cf=E(()=>{"use strict";Nr();hr();oi()});function es(){let e=()=>{},t=()=>{};return{promise:new Promise((n,o)=>{e=n,t=o}),resolve:e,reject:t}}var Uc=E(()=>{"use strict"});function Lc({fn:e,id:t,shouldSplitBatch:r,wait:n=0,sort:o}){let s=async()=>{let p=c();i();let f=p.map(({args:l})=>l);f.length!==0&&e(f).then(l=>{o&&Array.isArray(l)&&l.sort(o);for(let m=0;m{for(let m=0;mIf.delete(t),a=()=>c().map(({args:p})=>p),c=()=>If.get(t)||[],u=p=>If.set(t,[...c(),p]);return{flush:i,async schedule(p){let{promise:f,resolve:l,reject:m}=es();return r?.([...a(),p])&&s(),c().length>0?(u({args:p,resolve:l,reject:m}),f):(u({args:p,resolve:l,reject:m}),setTimeout(s,n),f)}}}var If,Pf=E(()=>{"use strict";Uc();If=new Map});var Hc,Dc,jc,Ah=E(()=>{"use strict";qe();W();Qa();Hc=class extends g{constructor({callbackSelector:t,cause:r,data:n,extraData:o,sender:s,urls:i}){super(r.shortMessage||"An error occurred while fetching for an offchain result.",{cause:r,metaMessages:[...r.metaMessages||[],r.metaMessages?.length?"":[],"Offchain Gateway Call:",i&&[" Gateway URL(s):",...i.map(a=>` ${wn(a)}`)],` Sender: ${s}`,` Data: ${n}`,` Callback selector: ${t}`,` Extra data: ${o}`].flat(),name:"OffchainLookupError"})}},Dc=class extends g{constructor({result:t,url:r}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${wn(r)}`,`Response: ${X(t)}`],name:"OffchainLookupResponseMalformedError"})}},jc=class extends g{constructor({sender:t,to:r}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${r}`,`OffchainLookup sender address: ${t}`],name:"OffchainLookupSenderMismatchError"})}}});function Th(e){let{abi:t,data:r}=e,n=xt(r,0,4),o=t.find(s=>s.type==="function"&&n===jt(Ce(s)));if(!o)throw new ha(n,{docsPath:"/docs/contract/decodeFunctionData"});return{functionName:o.name,args:"inputs"in o&&o.inputs&&o.inputs.length>0?ir(o.inputs,xt(r,4)):void 0}}var Sh=E(()=>{"use strict";ye();Rr();Qn();Ws();tr()});function Bf(e){let{abi:t,errorName:r,args:n}=e,o=t[0];if(r){let c=tt({abi:t,args:n,name:r});if(!c)throw new $s(r,{docsPath:kf});o=c}if(o.type!=="error")throw new $s(void 0,{docsPath:kf});let s=Ce(o),i=jt(s),a="0x";if(n&&n.length>0){if(!o.inputs)throw new ma(o.name,{docsPath:kf});a=De(o.inputs,n)}return Te([i,a])}var kf,Ch=E(()=>{"use strict";ye();et();Qn();Dt();tr();_r();kf="/docs/contract/encodeErrorResult"});function Ih(e){let{abi:t,functionName:r,result:n}=e,o=t[0];if(r){let i=tt({abi:t,name:r});if(!i)throw new Ct(r,{docsPath:Rf});o=i}if(o.type!=="function")throw new Ct(void 0,{docsPath:Rf});if(!o.outputs)throw new Zn(o.name,{docsPath:Rf});let s=(()=>{if(o.outputs.length===0)return[];if(o.outputs.length===1)return[n];if(Array.isArray(n))return n;throw new Jn(n)})();return De(o.outputs,s)}var Rf,Ph=E(()=>{"use strict";ye();Dt();_r();Rf="/docs/contract/encodeFunctionResult"});async function kh(e){let{data:t,ccipRequest:r}=e,{args:[n]}=Th({abi:Rc,data:t}),o=[],s=[];return await Promise.all(n.map(async(i,a)=>{try{s[a]=await r(i),o[a]=!1}catch(c){o[a]=!0,s[a]=Vg(c)}})),Ih({abi:Rc,functionName:"query",result:[o,s]})}function Vg(e){return e.name==="HttpRequestError"&&e.status?Bf({abi:Rc,errorName:"HttpError",args:[e.status,e.shortMessage]}):Bf({abi:[za],errorName:"Error",args:["shortMessage"in e?e.shortMessage:e.message]})}var ts,qc=E(()=>{"use strict";Jr();qs();Sh();Ch();Ph();ts="x-batch-gateway:true"});var _h={};np(_h,{ccipRequest:()=>Rh,offchainLookup:()=>Wg,offchainLookupAbiItem:()=>Bh,offchainLookupSignature:()=>Gg});async function Wg(e,{blockNumber:t,blockTag:r,data:n,to:o}){let{args:s}=Ha({data:n,abi:[Bh]}),[i,a,c,u,p]=s,{ccipRead:f}=e,l=f&&typeof f?.request=="function"?f.request:Rh;try{if(!Yt(o,i))throw new jc({sender:i,to:o});let m=a.includes(ts)?await kh({data:c,ccipRequest:l}):await l({data:c,sender:i,urls:a}),{data:y}=await Zt(e,{blockNumber:t,blockTag:r,data:Ze([u,De([{type:"bytes"},{type:"bytes"}],[m,p])]),to:o});return y}catch(m){throw new Hc({callbackSelector:u,cause:m,data:n,extraData:p,sender:i,urls:a})}}async function Rh({data:e,sender:t,urls:r}){let n=new Error("An unknown error occurred.");for(let o=0;o{"use strict";rs();Ah();En();Lp();Dt();Yo();et();St();qc();qe();Gg="0x556f1830",Bh={name:"OffchainLookup",type:"error",inputs:[{name:"sender",type:"address"},{name:"urls",type:"string[]"},{name:"callData",type:"bytes"},{name:"callbackFunction",type:"bytes4"},{name:"extraData",type:"bytes"}]}});async function Zt(e,t){let{account:r=e.account,batch:n=!!e.batch?.multicall,blockNumber:o,blockTag:s="latest",accessList:i,blobs:a,code:c,data:u,factory:p,factoryData:f,gas:l,gasPrice:m,maxFeePerBlobGas:y,maxFeePerGas:x,maxPriorityFeePerGas:d,nonce:h,to:b,value:v,stateOverride:A,...k}=t,S=r?K(r):void 0;if(c&&(p||f))throw new g("Cannot provide both `code` & `factory`/`factoryData` as parameters.");if(c&&b)throw new g("Cannot provide both `code` & `to` as parameters.");let T=c&&u,B=p&&f&&b&&u,P=T||B,H=T?Zg({code:c,data:u}):B?Jg({data:u,factory:p,factoryData:f,to:b}):u;try{ot(t);let L=(o?_(o):void 0)||s,ne=Ho(A),R=e.chain?.formatters?.transactionRequest?.format,N=(R||lt)({...qr(k,{format:R}),from:S?.address,accessList:i,blobs:a,data:H,gas:l,gasPrice:m,maxFeePerBlobGas:y,maxFeePerGas:x,maxPriorityFeePerGas:d,nonce:h,to:P?void 0:b,value:v});if(n&&Kg({request:N})&&!ne)try{return await Yg(e,{...N,blockNumber:o,blockTag:s})}catch(D){if(!(D instanceof ci)&&!(D instanceof Rn))throw D}let q=await e.request({method:"eth_call",params:ne?[N,L,ne]:[N,L]});return q==="0x"?{data:void 0}:{data:q}}catch(U){let L=Xg(U),{offchainLookup:ne,offchainLookupSignature:R}=await Promise.resolve().then(()=>($h(),_h));if(e.ccipRead!==!1&&L?.slice(0,10)===R&&b)return{data:await ne(e,{data:L,to:b})};throw P&&L?.slice(0,10)==="0x101bb98d"?new rc({factory:p}):zc(U,{...t,account:S,chain:e.chain})}}function Kg({request:e}){let{data:t,to:r,...n}=e;return!(!t||t.startsWith(gh)||!r||Object.values(n).filter(o=>typeof o<"u").length>0)}async function Yg(e,t){let{batchSize:r=1024,wait:n=0}=typeof e.batch?.multicall=="object"?e.batch.multicall:{},{blockNumber:o,blockTag:s="latest",data:i,multicallAddress:a,to:c}=t,u=a;if(!u){if(!e.chain)throw new ci;u=Et({blockNumber:o,chain:e.chain,contract:"multicall3"})}let f=(o?_(o):void 0)||s,{schedule:l}=Lc({id:`${e.uid}.${f}`,wait:n,shouldSplitBatch(x){return x.reduce((h,{data:b})=>h+(b.length-2),0)>r*2},fn:async x=>{let d=x.map(v=>({allowFailure:!0,callData:v.data,target:v.to})),h=de({abi:ai,args:[d],functionName:"aggregate3"}),b=await e.request({method:"eth_call",params:[{data:h,to:u},f]});return st({abi:ai,args:[d],functionName:"aggregate3",data:b||"0x"})}}),[{returnData:m,success:y}]=await l({data:i,to:c});if(!y)throw new Gt({data:m});return m==="0x"?{data:void 0}:{data:m}}function Zg(e){let{code:t,data:r}=e;return _n({abi:sa(["constructor(bytes, bytes)"]),bytecode:$c,args:[t,r]})}function Jg(e){let{data:t,factory:r,factoryData:n,to:o}=e;return _n({abi:sa(["constructor(address, bytes, address, bytes)"]),bytecode:vh,args:[o,t,r,n]})}function Xg(e){if(!(e instanceof g))return;let t=e.walk();return typeof t?.data=="object"?t.data?.data:t.data}var rs=E(()=>{"use strict";aa();ve();Jr();wh();Nc();W();Qo();Nr();Zr();Mc();ct();$n();V();Cf();si();Vr();Pf();bc();Wr()});var e0,t0=E(()=>{"use strict";e0="1.0.8"});var _e,xs=E(()=>{"use strict";t0();_e=class e extends Error{constructor(t,r={}){let n=r.cause instanceof e?r.cause.details:r.cause?.message?r.cause.message:r.details,o=r.cause instanceof e&&r.cause.docsPath||r.docsPath,s=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...o?[`Docs: https://abitype.dev${o}`]:[],...n?[`Details: ${n}`]:[],`Version: abitype@${e0}`].join(` +`);super(s),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),r.cause&&(this.cause=r.cause),this.details=n,this.docsPath=o,this.metaMessages=r.metaMessages,this.shortMessage=t}}});function Ft(e,t){return e.exec(t)?.groups}var ul,pl,Ku,Yu=E(()=>{"use strict";ul=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,pl=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,Ku=/^\(.+?\).*?$/});function n0(e){return r0.test(e)}function o0(e){return Ft(r0,e)}function i0(e){return s0.test(e)}function a0(e){return Ft(s0,e)}function u0(e){return c0.test(e)}function p0(e){return Ft(c0,e)}function Zu(e){return f0.test(e)}function l0(e){return Ft(f0,e)}function d0(e){return m0.test(e)}function h0(e){return Ft(m0,e)}function x0(e){return y0.test(e)}function b0(e){return Ft(y0,e)}function g0(e){return Cw.test(e)}var r0,s0,c0,f0,m0,y0,Cw,w0,Ju,Xu=E(()=>{"use strict";Yu();r0=/^error (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)$/;s0=/^event (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)$/;c0=/^function (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)(?: (?external|public{1}))?(?: (?pure|view|nonpayable|payable{1}))?(?: returns\s?\((?.*?)\))?$/;f0=/^struct (?[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?.*?)\}$/;m0=/^constructor\((?.*?)\)(?:\s(?payable{1}))?$/;y0=/^fallback\(\) external(?:\s(?payable{1}))?$/;Cw=/^receive\(\) external payable$/;w0=new Set(["indexed"]),Ju=new Set(["calldata","memory","storage"])});var wi,Qu,fl=E(()=>{"use strict";xs();wi=class extends _e{constructor({type:t}){super("Unknown type.",{metaMessages:[`Type "${t}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}},Qu=class extends _e{constructor({type:t}){super("Unknown type.",{metaMessages:[`Type "${t}" is not a valid ABI type.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}}});var vi,Ei,Ai,Ti,Si,ll=E(()=>{"use strict";xs();vi=class extends _e{constructor({param:t}){super("Invalid ABI parameter.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}},Ei=class extends _e{constructor({param:t,name:r}){super("Invalid ABI parameter.",{details:t,metaMessages:[`"${r}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}},Ai=class extends _e{constructor({param:t,type:r,modifier:n}){super("Invalid ABI parameter.",{details:t,metaMessages:[`Modifier "${n}" not allowed${r?` in "${r}" type`:""}.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}},Ti=class extends _e{constructor({param:t,type:r,modifier:n}){super("Invalid ABI parameter.",{details:t,metaMessages:[`Modifier "${n}" not allowed${r?` in "${r}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${n}" was given.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}},Si=class extends _e{constructor({abiParameter:t}){super("Invalid ABI parameter.",{details:JSON.stringify(t,null,2),metaMessages:["ABI parameter type is invalid."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}}});var Ot,Ci,Ii,ml=E(()=>{"use strict";xs();Ot=class extends _e{constructor({signature:t,type:r}){super(`Invalid ${r} signature.`,{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}},Ci=class extends _e{constructor({signature:t}){super("Unknown signature.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}},Ii=class extends _e{constructor({signature:t}){super("Invalid struct signature.",{details:t,metaMessages:["No properties exist."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}}});var Pi,v0=E(()=>{"use strict";xs();Pi=class extends _e{constructor({type:t}){super("Circular reference detected.",{metaMessages:[`Struct "${t}" is a circular reference.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}}});var ki,E0=E(()=>{"use strict";xs();ki=class extends _e{constructor({current:t,depth:r}){super("Unbalanced parentheses.",{metaMessages:[`"${t.trim()}" has too many ${r>0?"opening":"closing"} parentheses.`],details:`Depth "${r}"`}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}}});function A0(e,t,r){let n="";if(r)for(let o of Object.entries(r)){if(!o)continue;let s="";for(let i of o[1])s+=`[${i.type}${i.name?`:${i.name}`:""}]`;n+=`(${o[0]}{${s}})`}return t?`${t}:${e}${n}`:e}var ep,T0=E(()=>{"use strict";ep=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]])});function S0(e,t={}){if(u0(e))return Iw(e,t);if(i0(e))return Pw(e,t);if(n0(e))return kw(e,t);if(d0(e))return Bw(e,t);if(x0(e))return Rw(e);if(g0(e))return{type:"receive",stateMutability:"payable"};throw new Ci({signature:e})}function Iw(e,t={}){let r=p0(e);if(!r)throw new Ot({signature:e,type:"function"});let n=Mt(r.parameters),o=[],s=n.length;for(let a=0;a{"use strict";Yu();fl();ll();ml();E0();T0();Xu();_w=/^(?[a-zA-Z$_][a-zA-Z0-9$_]*)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,$w=/^\((?.+?)\)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,Nw=/^u?int$/;Fw=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/});function C0(e){let t={},r=e.length;for(let i=0;i{"use strict";Yu();fl();ll();ml();v0();Xu();hl();zw=/^(?[a-zA-Z$_][a-zA-Z0-9$_]*)(?(?:\[\d*?\])+?)?$/});function Bi(e){let t=C0(e),r=[],n=e.length;for(let o=0;o{"use strict";Xu();P0();hl()});var B0=E(()=>{"use strict";k0()});var R0,_0=E(()=>{"use strict";R0={gwei:9,wei:18}});function $0(e,t){let r=e.toString(),n=r.startsWith("-");n&&(r=r.slice(1)),r=r.padStart(t,"0");let[o,s]=[r.slice(0,r.length-t),r.slice(r.length-t)];return s=s.replace(/(0+)$/,""),`${n?"-":""}${o||"0"}${s?`.${s}`:""}`}var N0=E(()=>{"use strict"});function yl(e,t="wei"){return $0(e,R0[t])}var F0=E(()=>{"use strict";_0();N0()});var Zw={};np(Zw,{GooddollarSavingsWidget:()=>ge});var Ni=globalThis,Fi=Ni.ShadowRoot&&(Ni.ShadyCSS===void 0||Ni.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,op=Symbol(),vl=new WeakMap,gs=class{constructor(t,r,n){if(this._$cssResult$=!0,n!==op)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=r}get styleSheet(){let t=this.o,r=this.t;if(Fi&&t===void 0){let n=r!==void 0&&r.length===1;n&&(t=vl.get(r)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),n&&vl.set(r,t))}return t}toString(){return this.cssText}},El=e=>new gs(typeof e=="string"?e:e+"",void 0,op),sp=(e,...t)=>{let r=e.length===1?e[0]:t.reduce((n,o,s)=>n+(i=>{if(i._$cssResult$===!0)return i.cssText;if(typeof i=="number")return i;throw Error("Value passed to 'css' function must be a 'css' function result: "+i+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(o)+e[s+1],e[0]);return new gs(r,e,op)},Al=(e,t)=>{if(Fi)e.adoptedStyleSheets=t.map(r=>r instanceof CSSStyleSheet?r:r.styleSheet);else for(let r of t){let n=document.createElement("style"),o=Ni.litNonce;o!==void 0&&n.setAttribute("nonce",o),n.textContent=r.cssText,e.appendChild(n)}},ip=Fi?e=>e:e=>e instanceof CSSStyleSheet?(t=>{let r="";for(let n of t.cssRules)r+=n.cssText;return El(r)})(e):e;var{is:D0,defineProperty:j0,getOwnPropertyDescriptor:q0,getOwnPropertyNames:V0,getOwnPropertySymbols:G0,getPrototypeOf:W0}=Object,Oi=globalThis,Tl=Oi.trustedTypes,K0=Tl?Tl.emptyScript:"",Y0=Oi.reactiveElementPolyfillSupport,ws=(e,t)=>e,vs={toAttribute(e,t){switch(t){case Boolean:e=e?K0:null;break;case Object:case Array:e=e==null?e:JSON.stringify(e)}return e},fromAttribute(e,t){let r=e;switch(t){case Boolean:r=e!==null;break;case Number:r=e===null?null:Number(e);break;case Object:case Array:try{r=JSON.parse(e)}catch{r=null}}return r}},Mi=(e,t)=>!D0(e,t),Sl={attribute:!0,type:String,converter:vs,reflect:!1,useDefault:!1,hasChanged:Mi};Symbol.metadata??=Symbol("metadata"),Oi.litPropertyMetadata??=new WeakMap;var er=class extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,r=Sl){if(r.state&&(r.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((r=Object.create(r)).wrapped=!0),this.elementProperties.set(t,r),!r.noAccessor){let n=Symbol(),o=this.getPropertyDescriptor(t,n,r);o!==void 0&&j0(this.prototype,t,o)}}static getPropertyDescriptor(t,r,n){let{get:o,set:s}=q0(this.prototype,t)??{get(){return this[r]},set(i){this[r]=i}};return{get:o,set(i){let a=o?.call(this);s?.call(this,i),this.requestUpdate(t,a,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??Sl}static _$Ei(){if(this.hasOwnProperty(ws("elementProperties")))return;let t=W0(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(ws("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(ws("properties"))){let r=this.properties,n=[...V0(r),...G0(r)];for(let o of n)this.createProperty(o,r[o])}let t=this[Symbol.metadata];if(t!==null){let r=litPropertyMetadata.get(t);if(r!==void 0)for(let[n,o]of r)this.elementProperties.set(n,o)}this._$Eh=new Map;for(let[r,n]of this.elementProperties){let o=this._$Eu(r,n);o!==void 0&&this._$Eh.set(o,r)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){let r=[];if(Array.isArray(t)){let n=new Set(t.flat(1/0).reverse());for(let o of n)r.unshift(ip(o))}else t!==void 0&&r.push(ip(t));return r}static _$Eu(t,r){let n=r.attribute;return n===!1?void 0:typeof n=="string"?n:typeof t=="string"?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),this.renderRoot!==void 0&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){let t=new Map,r=this.constructor.elementProperties;for(let n of r.keys())this.hasOwnProperty(n)&&(t.set(n,this[n]),delete this[n]);t.size>0&&(this._$Ep=t)}createRenderRoot(){let t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return Al(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,r,n){this._$AK(t,n)}_$ET(t,r){let n=this.constructor.elementProperties.get(t),o=this.constructor._$Eu(t,n);if(o!==void 0&&n.reflect===!0){let s=(n.converter?.toAttribute!==void 0?n.converter:vs).toAttribute(r,n.type);this._$Em=t,s==null?this.removeAttribute(o):this.setAttribute(o,s),this._$Em=null}}_$AK(t,r){let n=this.constructor,o=n._$Eh.get(t);if(o!==void 0&&this._$Em!==o){let s=n.getPropertyOptions(o),i=typeof s.converter=="function"?{fromAttribute:s.converter}:s.converter?.fromAttribute!==void 0?s.converter:vs;this._$Em=o;let a=i.fromAttribute(r,s.type);this[o]=a??this._$Ej?.get(o)??a,this._$Em=null}}requestUpdate(t,r,n){if(t!==void 0){let o=this.constructor,s=this[t];if(n??=o.getPropertyOptions(t),!((n.hasChanged??Mi)(s,r)||n.useDefault&&n.reflect&&s===this._$Ej?.get(t)&&!this.hasAttribute(o._$Eu(t,n))))return;this.C(t,r,n)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(t,r,{useDefault:n,reflect:o,wrapped:s},i){n&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,i??r??this[t]),s!==!0||i!==void 0)||(this._$AL.has(t)||(this.hasUpdated||n||(r=void 0),this._$AL.set(t,r)),o===!0&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(r){Promise.reject(r)}let t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(let[o,s]of this._$Ep)this[o]=s;this._$Ep=void 0}let n=this.constructor.elementProperties;if(n.size>0)for(let[o,s]of n){let{wrapped:i}=s,a=this[o];i!==!0||this._$AL.has(o)||a===void 0||this.C(o,void 0,s,a)}}let t=!1,r=this._$AL;try{t=this.shouldUpdate(r),t?(this.willUpdate(r),this._$EO?.forEach(n=>n.hostUpdate?.()),this.update(r)):this._$EM()}catch(n){throw t=!1,this._$EM(),n}t&&this._$AE(r)}willUpdate(t){}_$AE(t){this._$EO?.forEach(r=>r.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(r=>this._$ET(r,this[r])),this._$EM()}updated(t){}firstUpdated(t){}};er.elementStyles=[],er.shadowRootOptions={mode:"open"},er[ws("elementProperties")]=new Map,er[ws("finalized")]=new Map,Y0?.({ReactiveElement:er}),(Oi.reactiveElementVersions??=[]).push("2.1.1");var mp=globalThis,zi=mp.trustedTypes,Cl=zi?zi.createPolicy("lit-html",{createHTML:e=>e}):void 0,_l="$lit$",vr=`lit$${Math.random().toFixed(9).slice(2)}$`,$l="?"+vr,Z0=`<${$l}>`,ln=document,As=()=>ln.createComment(""),Ts=e=>e===null||typeof e!="object"&&typeof e!="function",dp=Array.isArray,J0=e=>dp(e)||typeof e?.[Symbol.iterator]=="function",ap=`[ +\f\r]`,Es=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Il=/-->/g,Pl=/>/g,pn=RegExp(`>|${ap}(?:([^\\s"'>=/]+)(${ap}*=${ap}*(?:[^ +\f\r"'\`<>=]|("|')|))|$)`,"g"),kl=/'/g,Bl=/"/g,Nl=/^(?:script|style|textarea|title)$/i,hp=e=>(t,...r)=>({_$litType$:e,strings:t,values:r}),Er=hp(1),xE=hp(2),bE=hp(3),mn=Symbol.for("lit-noChange"),Me=Symbol.for("lit-nothing"),Rl=new WeakMap,fn=ln.createTreeWalker(ln,129);function Fl(e,t){if(!dp(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return Cl!==void 0?Cl.createHTML(t):t}var X0=(e,t)=>{let r=e.length-1,n=[],o,s=t===2?"":t===3?"":"",i=Es;for(let a=0;a"?(i=o??Es,f=-1):p[1]===void 0?f=-2:(f=i.lastIndex-p[2].length,u=p[1],i=p[3]===void 0?pn:p[3]==='"'?Bl:kl):i===Bl||i===kl?i=pn:i===Il||i===Pl?i=Es:(i=pn,o=void 0);let m=i===pn&&e[a+1].startsWith("/>")?" ":"";s+=i===Es?c+Z0:f>=0?(n.push(u),c.slice(0,f)+_l+c.slice(f)+vr+m):c+vr+(f===-2?a:m)}return[Fl(e,s+(e[r]||"")+(t===2?"":t===3?"":"")),n]},Ss=class e{constructor({strings:t,_$litType$:r},n){let o;this.parts=[];let s=0,i=0,a=t.length-1,c=this.parts,[u,p]=X0(t,r);if(this.el=e.createElement(u,n),fn.currentNode=this.el.content,r===2||r===3){let f=this.el.content.firstChild;f.replaceWith(...f.childNodes)}for(;(o=fn.nextNode())!==null&&c.length0){o.textContent=zi?zi.emptyScript:"";for(let m=0;m2||n[0]!==""||n[1]!==""?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=Me}_$AI(t,r=this,n,o){let s=this.strings,i=!1;if(s===void 0)t=Dn(this,t,r,0),i=!Ts(t)||t!==this._$AH&&t!==mn,i&&(this._$AH=t);else{let a=t,c,u;for(t=s[0],c=0;c{let n=r?.renderBefore??t,o=n._$litPart$;if(o===void 0){let s=r?.renderBefore??null;n._$litPart$=o=new Cs(t.insertBefore(As(),s),s,void 0,r??{})}return o._$AI(e),o};var yp=globalThis,Ar=class extends er{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){let r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=Ol(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return mn}};Ar._$litElement$=!0,Ar.finalized=!0,yp.litElementHydrateSupport?.({LitElement:Ar});var eb=yp.litElementPolyfillSupport;eb?.({LitElement:Ar});(yp.litElementVersions??=[]).push("4.2.1");var Ml=e=>(t,r)=>{r!==void 0?r.addInitializer(()=>{customElements.define(e,t)}):customElements.define(e,t)};var tb={attribute:!0,type:String,converter:vs,reflect:!1,hasChanged:Mi},rb=(e=tb,t,r)=>{let{kind:n,metadata:o}=r,s=globalThis.litPropertyMetadata.get(o);if(s===void 0&&globalThis.litPropertyMetadata.set(o,s=new Map),n==="setter"&&((e=Object.create(e)).wrapped=!0),s.set(r.name,e),n==="accessor"){let{name:i}=r;return{set(a){let c=t.get.call(this);t.set.call(this,a),this.requestUpdate(i,c,e)},init(a){return a!==void 0&&this.C(i,void 0,e,a),a}}}if(n==="setter"){let{name:i}=r;return function(a){let c=this[i];t.call(this,a),this.requestUpdate(i,c,e)}}throw Error("Unsupported decorator location: "+n)};function Is(e){return(t,r)=>typeof r=="object"?rb(e,t,r):((n,o,s)=>{let i=o.hasOwnProperty(s);return o.constructor.createProperty(s,n),i?Object.getOwnPropertyDescriptor(o,s):void 0})(e,t,r)}function Ye(e){return Is({...e,state:!0,attribute:!1})}function $(e,t,r){let n=e[t.name];if(typeof n=="function")return n;let o=e[r];return typeof o=="function"?o:s=>t(e,s)}ye();W();var wa=class extends g{constructor(t){super(`Filter type "${t}" is not supported.`,{name:"FilterTypeNotSupportedError"})}};ze();Bt();Ds();Dt();tr();_r();var Ym="/docs/contract/encodeEventTopics";function qt(e){let{abi:t,eventName:r,args:n}=e,o=t[0];if(r){let c=tt({abi:t,name:r});if(!c)throw new Ns(r,{docsPath:Ym});o=c}if(o.type!=="event")throw new Ns(void 0,{docsPath:Ym});let s=Ce(o),i=Br(s),a=[];if(n&&"inputs"in o){let c=o.inputs?.filter(p=>"indexed"in p&&p.indexed),u=Array.isArray(n)?n:Object.values(n).length>0?c?.map(p=>n[p.name])??[]:[];u.length>0&&(a=c?.map((p,f)=>Array.isArray(u[f])?u[f].map((l,m)=>Zm({param:p,value:u[f][m]})):typeof u[f]<"u"&&u[f]!==null?Zm({param:p,value:u[f]}):null)??[])}return[i,...a]}function Zm({param:e,value:t}){if(e.type==="string"||e.type==="bytes")return ue(ht(t));if(e.type==="tuple"||e.type.match(/^(.*)\[(\d+)?\]$/))throw new wa(e.type);return De([e],[t])}V();function $r(e,{method:t}){let r={};return e.transport.type==="fallback"&&e.transport.onResponse?.(({method:n,response:o,status:s,transport:i})=>{s==="success"&&t===n&&(r[o]=i.request)}),n=>r[n]||e.request}async function Oa(e,t){let{address:r,abi:n,args:o,eventName:s,fromBlock:i,strict:a,toBlock:c}=t,u=$r(e,{method:"eth_newFilter"}),p=s?qt({abi:n,args:o,eventName:s}):void 0,f=await e.request({method:"eth_newFilter",params:[{address:r,fromBlock:typeof i=="bigint"?_(i):i,toBlock:typeof c=="bigint"?_(c):c,topics:p}]});return{abi:n,args:o,eventName:s,id:f,request:u(f),strict:!!a,type:"event"}}ve();ct();ye();W();Nr();En();Zs();var rg=3;function ut(e,{abi:t,address:r,args:n,docsPath:o,functionName:s,sender:i}){let a=e instanceof Gt?e:e instanceof g?e.walk(y=>"data"in y)||e.walk():{},{code:c,data:u,details:p,message:f,shortMessage:l}=a,m=e instanceof dt?new tc({functionName:s}):[rg,cr.code].includes(c)&&(u||p||f||l)?new vn({abi:t,data:typeof u=="object"?u.data:u,functionName:s,message:a instanceof Fr?p:l??f}):e;return new ec(m,{abi:t,args:n,contractAddress:r,docsPath:o,functionName:s,sender:i})}ve();W();bn();Bt();function fd(e){let t=ue(`0x${e.substring(4)}`).substring(26);return sr(`0x${t}`)}St();mt();He();V();async function eh({hash:e,signature:t}){let r=we(e)?e:z(e),{secp256k1:n}=await Promise.resolve().then(()=>(xf(),Xd));return`0x${(()=>{if(typeof t=="object"&&"r"in t&&"s"in t){let{r:u,s:p,v:f,yParity:l}=t,m=Number(l??f),y=Qd(m);return new n.Signature(he(u),he(p)).addRecoveryBit(y)}let i=we(t)?t:z(t);if(ee(i)!==65)throw new Error("invalid signature length");let a=xe(`0x${i.slice(130)}`),c=Qd(a);return n.Signature.fromCompact(i.substring(2,130)).addRecoveryBit(c)})().recoverPublicKey(r.substring(2)).toHex(!1)}`}function Qd(e){if(e===0||e===1)return e;if(e===27)return 0;if(e===28)return 1;throw new Error("Invalid yParityOrV value")}async function dc({hash:e,signature:t}){return fd(await eh({hash:e,signature:t}))}et();ze();V();W();La();ze();V();function ft(e,t="hex"){let r=th(e),n=to(new Uint8Array(r.length));return r.encode(n),t==="hex"?te(n.bytes):n.bytes}function th(e){return Array.isArray(e)?Fg(e.map(t=>th(t))):Og(e)}function Fg(e){let t=e.reduce((o,s)=>o+s.length,0),r=rh(t);return{length:t<=55?1+t:1+r+t,encode(o){t<=55?o.pushByte(192+t):(o.pushByte(247+r),r===1?o.pushUint8(t):r===2?o.pushUint16(t):r===3?o.pushUint24(t):o.pushUint32(t));for(let{encode:s}of e)s(o)}}}function Og(e){let t=typeof e=="string"?Pe(e):e,r=rh(t.length);return{length:t.length===1&&t[0]<128?1:t.length<=55?1+t.length:1+r+t.length,encode(o){t.length===1&&t[0]<128?o.pushBytes(t):t.length<=55?(o.pushByte(128+t.length),o.pushBytes(t)):(o.pushByte(183+r),r===1?o.pushUint8(t.length):r===2?o.pushUint16(t.length):r===3?o.pushUint24(t.length):o.pushUint32(t.length),o.pushBytes(t))}}}function rh(e){if(e<2**8)return 1;if(e<2**16)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new g("Length is too large.")}Bt();function nh(e){let{chainId:t,nonce:r,to:n}=e,o=e.contractAddress??e.address,s=ue(Te(["0x05",ft([t?_(t):"0x",o,r?_(r):"0x"])]));return n==="bytes"?Pe(s):s}async function hc(e){let{authorization:t,signature:r}=e;return dc({hash:nh(t),signature:r??t})}V();Ks();no();W();_t();var yc=class extends g{constructor(t,{account:r,docsPath:n,chain:o,data:s,gas:i,gasPrice:a,maxFeePerGas:c,maxPriorityFeePerGas:u,nonce:p,to:f,value:l}){let m=gn({from:r?.address,to:f,value:typeof l<"u"&&`${ar(l)} ${o?.nativeCurrency?.symbol||"ETH"}`,data:s,gas:i,gasPrice:typeof a<"u"&&`${ke(a)} gwei`,maxFeePerGas:typeof c<"u"&&`${ke(c)} gwei`,maxPriorityFeePerGas:typeof u<"u"&&`${ke(u)} gwei`,nonce:p});super(t.shortMessage,{cause:t,docsPath:n,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Estimate Gas Arguments:",m].filter(Boolean),name:"EstimateGasExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}};hr();oi();function oh(e,{docsPath:t,...r}){let n=(()=>{let o=jr(e,r);return o instanceof wt?e:o})();return new yc(n,{docsPath:t,...r})}si();Vr();bc();Wr();ve();no();W();var wc=class extends g{constructor(){super("`baseFeeMultiplier` must be greater than 1.",{name:"BaseFeeScalarError"})}},Kr=class extends g{constructor(){super("Chain does not support EIP-1559 fees.",{name:"Eip1559FeesNotSupportedError"})}},vc=class extends g{constructor({maxPriorityFeePerGas:t}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${ke(t)} gwei).`,{name:"MaxFeePerGasTooLowError"})}};He();W();var Do=class extends g{constructor({blockHash:t,blockNumber:r}){let n="Block";t&&(n=`Block at hash "${t}"`),r&&(n=`Block at number "${r}"`),super(`${n} could not be found.`,{name:"BlockNotFoundError"})}};V();xc();He();xc();var bf={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function Bn(e){let t={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?xe(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?xe(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?bf[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(t.authorizationList=Lg(e.authorizationList)),t.yParity=(()=>{if(e.yParity)return Number(e.yParity);if(typeof t.v=="bigint"){if(t.v===0n||t.v===27n)return 0;if(t.v===1n||t.v===28n)return 1;if(t.v>=35n)return t.v%2n===0n?1:0}})(),t.type==="legacy"&&(delete t.accessList,delete t.maxFeePerBlobGas,delete t.maxFeePerGas,delete t.maxPriorityFeePerGas,delete t.yParity),t.type==="eip2930"&&(delete t.maxFeePerBlobGas,delete t.maxFeePerGas,delete t.maxPriorityFeePerGas),t.type==="eip1559"&&delete t.maxFeePerBlobGas,t}var ah=Lo("transaction",Bn);function Lg(e){return e.map(t=>({address:t.address,chainId:Number(t.chainId),nonce:Number(t.nonce),r:t.r,s:t.s,yParity:Number(t.yParity)}))}function ii(e){let t=(e.transactions??[]).map(r=>typeof r=="string"?r:Bn(r));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:t,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}var ch=Lo("block",ii);async function Ge(e,{blockHash:t,blockNumber:r,blockTag:n,includeTransactions:o}={}){let s=n??"latest",i=o??!1,a=r!==void 0?_(r):void 0,c=null;if(t?c=await e.request({method:"eth_getBlockByHash",params:[t,i]},{dedupe:!0}):c=await e.request({method:"eth_getBlockByNumber",params:[a||s,i]},{dedupe:!!a}),!c)throw new Do({blockHash:t,blockNumber:r});return(e.chain?.formatters?.block?.format||ii)(c)}async function jo(e){let t=await e.request({method:"eth_gasPrice"});return BigInt(t)}async function uh(e,t){return gf(e,t)}async function gf(e,t){let{block:r,chain:n=e.chain,request:o}=t||{};try{let s=n?.fees?.maxPriorityFeePerGas??n?.fees?.defaultPriorityFee;if(typeof s=="function"){let a=r||await $(e,Ge,"getBlock")({}),c=await s({block:a,client:e,request:o});if(c===null)throw new Error;return c}if(typeof s<"u")return s;let i=await e.request({method:"eth_maxPriorityFeePerGas"});return he(i)}catch{let[s,i]=await Promise.all([r?Promise.resolve(r):$(e,Ge,"getBlock")({}),$(e,jo,"getGasPrice")({})]);if(typeof s.baseFeePerGas!="bigint")throw new Kr;let a=i-s.baseFeePerGas;return a<0n?0n:a}}async function ph(e,t){return Ec(e,t)}async function Ec(e,t){let{block:r,chain:n=e.chain,request:o,type:s="eip1559"}=t||{},i=await(async()=>typeof n?.fees?.baseFeeMultiplier=="function"?n.fees.baseFeeMultiplier({block:r,client:e,request:o}):n?.fees?.baseFeeMultiplier??1.2)();if(i<1)throw new wc;let c=10**(i.toString().split(".")[1]?.length??0),u=l=>l*BigInt(Math.ceil(i*c))/BigInt(c),p=r||await $(e,Ge,"getBlock")({});if(typeof n?.fees?.estimateFeesPerGas=="function"){let l=await n.fees.estimateFeesPerGas({block:r,client:e,multiply:u,request:o,type:s});if(l!==null)return l}if(s==="eip1559"){if(typeof p.baseFeePerGas!="bigint")throw new Kr;let l=typeof o?.maxPriorityFeePerGas=="bigint"?o.maxPriorityFeePerGas:await gf(e,{block:p,chain:n,request:o}),m=u(p.baseFeePerGas);return{maxFeePerGas:o?.maxFeePerGas??m+l,maxPriorityFeePerGas:l}}return{gasPrice:o?.gasPrice??u(await $(e,jo,"getGasPrice")({}))}}He();V();async function qo(e,{address:t,blockTag:r="latest",blockNumber:n}){let o=await e.request({method:"eth_getTransactionCount",params:[t,n?_(n):r]},{dedupe:!!n});return xe(o)}ze();V();function Vo(e){let{kzg:t}=e,r=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),n=typeof e.blobs[0]=="string"?e.blobs.map(s=>Pe(s)):e.blobs,o=[];for(let s of n)o.push(Uint8Array.from(t.blobToKzgCommitment(s)));return r==="bytes"?o:o.map(s=>te(s))}ze();V();function Go(e){let{kzg:t}=e,r=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),n=typeof e.blobs[0]=="string"?e.blobs.map(i=>Pe(i)):e.blobs,o=typeof e.commitments[0]=="string"?e.commitments.map(i=>Pe(i)):e.commitments,s=[];for(let i=0;ite(i))}V();Vp();St();ze();V();function fh(e,t){let r=t||"hex",n=Ur(we(e,{strict:!1})?ht(e):e);return r==="bytes"?n:z(n)}function lh(e){let{commitment:t,version:r=1}=e,n=e.to??(typeof t=="string"?"hex":"bytes"),o=fh(t,"bytes");return o.set([r],0),n==="bytes"?o:te(o)}function Ac(e){let{commitments:t,version:r}=e,n=e.to??(typeof t[0]=="string"?"hex":"bytes"),o=[];for(let s of t)o.push(lh({commitment:s,to:n,version:r}));return o}W();var Tc=class extends g{constructor({maxSize:t,size:r}){super("Blob size is too large.",{metaMessages:[`Max: ${t} bytes`,`Given: ${r} bytes`],name:"BlobSizeTooLargeError"})}},Wo=class extends g{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}},Sc=class extends g{constructor({hash:t,size:r}){super(`Versioned hash "${t}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${r}`],name:"InvalidVersionedHashSizeError"})}},Cc=class extends g{constructor({hash:t,version:r}){super(`Versioned hash "${t}" version is invalid.`,{metaMessages:[`Expected: ${1}`,`Received: ${r}`],name:"InvalidVersionedHashVersionError"})}};La();mt();ze();V();function mh(e){let t=e.to??(typeof e.data=="string"?"hex":"bytes"),r=typeof e.data=="string"?Pe(e.data):e.data,n=ee(r);if(!n)throw new Wo;if(n>761855)throw new Tc({maxSize:761855,size:n});let o=[],s=!0,i=0;for(;s;){let a=to(new Uint8Array(131072)),c=0;for(;c<4096;){let u=r.slice(i,i+31);if(a.pushByte(0),a.pushBytes(u),u.length<31){a.pushByte(128),s=!1;break}c++,i+=31}o.push(a)}return t==="bytes"?o.map(a=>a.bytes):o.map(a=>te(a.bytes))}function Ic(e){let{data:t,kzg:r,to:n}=e,o=e.blobs??mh({data:t,to:n}),s=e.commitments??Vo({blobs:o,kzg:r,to:n}),i=e.proofs??Go({blobs:o,commitments:s,kzg:r,to:n}),a=[];for(let c=0;c"u"&&f)if(c){let h=await d();l.nonce=await c.consume({address:f.address,chainId:h,client:e})}else l.nonce=await $(e,qo,"getTransactionCount")({address:f.address,blockTag:"pending"});if((u.includes("blobVersionedHashes")||u.includes("sidecars"))&&n&&i){let h=Vo({blobs:n,kzg:i});if(u.includes("blobVersionedHashes")){let b=Ac({commitments:h,to:"hex"});l.blobVersionedHashes=b}if(u.includes("sidecars")){let b=Go({blobs:n,commitments:h,kzg:i}),v=Ic({blobs:n,commitments:h,proofs:b,to:"hex"});l.sidecars=v}}if(u.includes("chainId")&&(l.chainId=await d()),(u.includes("fees")||u.includes("type"))&&typeof p>"u")try{l.type=Pc(l)}catch{let h=dh.get(e.uid);typeof h>"u"&&(h=typeof(await y())?.baseFeePerGas=="bigint",dh.set(e.uid,h)),l.type=h?"eip1559":"legacy"}if(u.includes("fees"))if(l.type!=="legacy"&&l.type!=="eip2930"){if(typeof l.maxFeePerGas>"u"||typeof l.maxPriorityFeePerGas>"u"){let h=await y(),{maxFeePerGas:b,maxPriorityFeePerGas:v}=await Ec(e,{block:h,chain:o,request:l});if(typeof t.maxPriorityFeePerGas>"u"&&t.maxFeePerGas&&t.maxFeePerGas"u"){let h=await y(),{gasPrice:b}=await Ec(e,{block:h,chain:o,request:l,type:"legacy"});l.gasPrice=b}}return u.includes("gas")&&typeof s>"u"&&(l.gas=await $(e,Ko,"estimateGas")({...l,account:f&&{address:f.address,type:"json-rpc"}})),ot(l),delete l.parameters,l}V();async function kc(e,{address:t,blockNumber:r,blockTag:n="latest"}){let o=r?_(r):void 0,s=await e.request({method:"eth_getBalance",params:[t,o||n]});return BigInt(s)}async function Ko(e,t){let{account:r=e.account}=t,n=r?K(r):void 0;try{let L=function(R){let{block:O,request:N,rpcStateOverride:q}=R;return e.request({method:"eth_estimateGas",params:q?[N,O??"latest",q]:O?[N,O]:[N]})};var o=L;let{accessList:s,authorizationList:i,blobs:a,blobVersionedHashes:c,blockNumber:u,blockTag:p,data:f,gas:l,gasPrice:m,maxFeePerBlobGas:y,maxFeePerGas:x,maxPriorityFeePerGas:d,nonce:h,value:b,stateOverride:v,...A}=await Yr(e,{...t,parameters:n?.type==="local"?void 0:["blobVersionedHashes"]}),S=(u?_(u):void 0)||p,T=Ho(v),B=await(async()=>{if(A.to)return A.to;if(i&&i.length>0)return await hc({authorization:i[0]}).catch(()=>{throw new g("`to` is required. Could not infer from `authorizationList`")})})();ot(t);let P=e.chain?.formatters?.transactionRequest?.format,U=(P||lt)({...qr(A,{format:P}),from:n?.address,accessList:s,authorizationList:i,blobs:a,blobVersionedHashes:c,data:f,gas:l,gasPrice:m,maxFeePerBlobGas:y,maxFeePerGas:x,maxPriorityFeePerGas:d,nonce:h,to:B,value:b}),ne=BigInt(await L({block:S,request:U,rpcStateOverride:T}));if(i){let R=await kc(e,{address:U.from}),O=await Promise.all(i.map(async N=>{let{address:q}=N,D=await L({block:S,request:{authorizationList:void 0,data:f,from:n?.address,to:q,value:_(R)},rpcStateOverride:T}).catch(()=>100000n);return 2n*BigInt(D)}));ne+=O.reduce((N,q)=>N+q,0n)}return ne}catch(s){throw oh(s,{...t,account:n,chain:e.chain})}}async function hh(e,t){let{abi:r,address:n,args:o,functionName:s,dataSuffix:i,...a}=t,c=de({abi:r,args:o,functionName:s});try{return await $(e,Ko,"estimateGas")({data:`${c}${i?i.replace("0x",""):""}`,to:n,...a})}catch(u){let p=a.account?K(a.account):void 0;throw ut(u,{abi:r,address:n,args:o,docsPath:"/docs/contract/estimateContractGas",functionName:s,sender:p?.address})}}_r();ye();Yo();ze();Bt();Ds();ye();mt();Ds();zp();Ws();tr();var yh="/docs/contract/decodeEventLog";function Zo(e){let{abi:t,data:r,strict:n,topics:o}=e,s=n??!0,[i,...a]=o;if(!i)throw new da({docsPath:yh});let c=t.length===1?t[0]:t.find(x=>x.type==="event"&&i===Br(Ce(x)));if(!(c&&"name"in c)||c.type!=="event")throw new Yn(i,{docsPath:yh});let{name:u,inputs:p}=c,f=p?.some(x=>!("name"in x&&x.name)),l=f?[]:{},m=p.filter(x=>"indexed"in x&&x.indexed);for(let x=0;x!("indexed"in x&&x.indexed));if(y.length>0){if(r&&r!=="0x")try{let x=ir(y,r);if(x)if(f)l=[...l,...x];else for(let d=0;d0?l:void 0}}function jg({param:e,value:t}){return e.type==="string"||e.type==="bytes"||e.type==="tuple"||e.type.match(/^(.*)\[(\d+)?\]$/)?t:(ir([e],t)||[])[0]}function Jo(e){let{abi:t,args:r,logs:n,strict:o=!0}=e,s=(()=>{if(e.eventName)return Array.isArray(e.eventName)?e.eventName:[e.eventName]})();return n.map(i=>{try{let a=t.find(u=>u.type==="event"&&i.topics[0]===Br(u));if(!a)return null;let c=Zo({...i,abi:[a],strict:o});return s&&!s.includes(c.eventName)||!qg({args:c.args,inputs:a.inputs,matchArgs:r})?null:{...c,...i}}catch(a){let c,u;if(a instanceof Yn)return null;if(a instanceof It||a instanceof Ut){if(o)return null;c=a.abiItem.name,u=a.abiItem.inputs?.some(p=>!("name"in p&&p.name))}return{...i,args:u?[]:{},eventName:c}}}).filter(Boolean)}function qg(e){let{args:t,inputs:r,matchArgs:n}=e;if(!n)return!0;if(!t)return!1;function o(s,i,a){try{return s.type==="address"?Yt(i,a):s.type==="string"||s.type==="bytes"?ue(ht(i))===a:i===a}catch{return!1}}return Array.isArray(t)&&Array.isArray(n)?n.every((s,i)=>{if(s==null)return!0;let a=r[i];return a?(Array.isArray(s)?s:[s]).some(u=>o(a,u,t[i])):!1}):typeof t=="object"&&!Array.isArray(t)&&typeof n=="object"&&!Array.isArray(n)?Object.entries(n).every(([s,i])=>{if(i==null)return!0;let a=r.find(u=>u.name===s);return a?(Array.isArray(i)?i:[i]).some(u=>o(a,u,t[s])):!1}):!1}V();function We(e,{args:t,eventName:r}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...r?{args:t,eventName:r}:{}}}async function Xo(e,{address:t,blockHash:r,fromBlock:n,toBlock:o,event:s,events:i,args:a,strict:c}={}){let u=c??!1,p=i??(s?[s]:void 0),f=[];p&&(f=[p.flatMap(x=>qt({abi:[x],eventName:x.name,args:i?void 0:a}))],s&&(f=f[0]));let l;r?l=await e.request({method:"eth_getLogs",params:[{address:t,topics:f,blockHash:r}]}):l=await e.request({method:"eth_getLogs",params:[{address:t,topics:f,fromBlock:typeof n=="bigint"?_(n):n,toBlock:typeof o=="bigint"?_(o):o}]});let m=l.map(y=>We(y));return p?Jo({abi:p,args:a,logs:m,strict:u}):m}async function Bc(e,t){let{abi:r,address:n,args:o,blockHash:s,eventName:i,fromBlock:a,toBlock:c,strict:u}=t,p=i?tt({abi:r,name:i}):void 0,f=p?void 0:r.filter(l=>l.type==="event");return $(e,Xo,"getLogs")({address:n,args:o,blockHash:s,event:p,events:f,fromBlock:a,toBlock:c,strict:u})}Zr();ct();rs();async function je(e,t){let{abi:r,address:n,args:o,functionName:s,...i}=t,a=de({abi:r,args:o,functionName:s});try{let{data:c}=await $(e,Zt,"call")({...i,data:a,to:n});return st({abi:r,args:o,functionName:s,data:c||"0x"})}catch(c){throw ut(c,{abi:r,address:n,args:o,docsPath:"/docs/contract/readContract",functionName:s})}}ve();Zr();ct();rs();async function Nh(e,t){let{abi:r,address:n,args:o,dataSuffix:s,functionName:i,...a}=t,c=a.account?K(a.account):e.account,u=de({abi:r,args:o,functionName:i});try{let{data:p}=await $(e,Zt,"call")({batch:!1,data:`${u}${s?s.replace("0x",""):""}`,to:n,...a,account:c}),f=st({abi:r,args:o,functionName:i,data:p||"0x"}),l=r.filter(m=>"name"in m&&m.name===t.functionName);return{result:f,request:{abi:l,address:n,args:o,dataSuffix:s,functionName:i,...a,account:c}}}catch(p){throw ut(p,{abi:r,address:n,args:o,docsPath:"/docs/contract/simulateContract",functionName:i,sender:c?.address})}}ye();Zs();var _f=new Map,Fh=new Map,Qg=0;function Ke(e,t,r){let n=++Qg,o=()=>_f.get(e)||[],s=()=>{let p=o();_f.set(e,p.filter(f=>f.id!==n))},i=()=>{let p=o();if(!p.some(l=>l.id===n))return;let f=Fh.get(e);p.length===1&&f&&f(),s()},a=o();if(_f.set(e,[...a,{id:n,fns:t}]),a&&a.length>0)return i;let c={};for(let p in t)c[p]=(...f)=>{let l=o();if(l.length!==0)for(let m of l)m.fns[p]?.(...f)};let u=r(c);return typeof u=="function"&&Fh.set(e,u),i}async function ui(e){return new Promise(t=>setTimeout(t,e))}function At(e,{emitOnBegin:t,initialWaitTime:r,interval:n}){let o=!0,s=()=>o=!1;return(async()=>{let a;t&&(a=await e({unpoll:s}));let c=await r?.(a)??n;await ui(c);let u=async()=>{o&&(await e({unpoll:s}),await ui(n),u())};u()})(),s}qe();var e1=new Map,t1=new Map;function Oh(e){let t=(o,s)=>({clear:()=>s.delete(o),get:()=>s.get(o),set:i=>s.set(o,i)}),r=t(e,e1),n=t(e,t1);return{clear:()=>{r.clear(),n.clear()},promise:r,response:n}}async function Mh(e,{cacheKey:t,cacheTime:r=Number.POSITIVE_INFINITY}){let n=Oh(t),o=n.response.get();if(o&&r>0&&new Date().getTime()-o.created.getTime()`blockNumber.${e}`;async function Jt(e,{cacheTime:t=e.cacheTime}={}){let r=await Mh(()=>e.request({method:"eth_blockNumber"}),{cacheKey:r1(e.uid),cacheTime:t});return BigInt(r)}async function Xr(e,{filter:t}){let r="strict"in t&&t.strict,n=await t.request({method:"eth_getFilterChanges",params:[t.id]});if(typeof n[0]=="string")return n;let o=n.map(s=>We(s));return!("abi"in t)||!t.abi?o:Jo({abi:t.abi,logs:o,strict:r})}async function Qr(e,{filter:t}){return t.request({method:"eth_uninstallFilter",params:[t.id]})}function zh(e,t){let{abi:r,address:n,args:o,batch:s=!0,eventName:i,fromBlock:a,onError:c,onLogs:u,poll:p,pollingInterval:f=e.pollingInterval,strict:l}=t;return(typeof p<"u"?p:typeof a=="bigint"?!0:!(e.transport.type==="webSocket"||e.transport.type==="fallback"&&e.transport.transports[0].config.type==="webSocket"))?(()=>{let d=l??!1,h=X(["watchContractEvent",n,o,s,e.uid,i,f,d,a]);return Ke(h,{onLogs:u,onError:c},b=>{let v;a!==void 0&&(v=a-1n);let A,k=!1,S=At(async()=>{if(!k){try{A=await $(e,Oa,"createContractEventFilter")({abi:r,address:n,args:o,eventName:i,strict:d,fromBlock:a})}catch{}k=!0;return}try{let T;if(A)T=await $(e,Xr,"getFilterChanges")({filter:A});else{let B=await $(e,Jt,"getBlockNumber")({});v&&v{A&&await $(e,Qr,"uninstallFilter")({filter:A}),S()}})})():(()=>{let d=l??!1,h=X(["watchContractEvent",n,o,s,e.uid,i,f,d]),b=!0,v=()=>b=!1;return Ke(h,{onLogs:u,onError:c},A=>((async()=>{try{let k=(()=>{if(e.transport.type==="fallback"){let B=e.transport.transports.find(P=>P.config.type==="webSocket");return B?B.value:e.transport}return e.transport})(),S=i?qt({abi:r,eventName:i,args:o}):[],{unsubscribe:T}=await k.subscribe({params:["logs",{address:n,topics:S}],onData(B){if(!b)return;let P=B.result;try{let{eventName:H,args:U}=Zo({abi:r,data:P.data,topics:P.topics,strict:l}),L=We(P,{args:U,eventName:H});A.onLogs([L])}catch(H){let U,L;if(H instanceof It||H instanceof Ut){if(l)return;U=H.abiItem.name,L=H.abiItem.inputs?.some(R=>!("name"in R&&R.name))}let ne=We(P,{args:L?[]:{},eventName:U});A.onLogs([ne])}},onError(B){A.onError?.(B)}});v=T,b||v()}catch(k){c?.(k)}})(),()=>v()))})()}ve();W();var Ue=class extends g{constructor({docsPath:t}={}){super(["Could not find an Account to execute with this Action.","Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the Client."].join(` +`),{docsPath:t,docsSlug:"account",name:"AccountNotFoundError"})}},en=class extends g{constructor({docsPath:t,metaMessages:r,type:n}){super(`Account type "${n}" is not supported.`,{docsPath:t,metaMessages:r,name:"AccountTypeNotSupportedError"})}};ct();ve();W();Qo();function Vc({chain:e,currentChainId:t}){if(!e)throw new Oc;if(t!==e.id)throw new Fc({chain:e,currentChainId:t})}hr();_t();oi();function Gc(e,{docsPath:t,...r}){let n=(()=>{let o=jr(e,r);return o instanceof wt?e:o})();return new Ja(n,{docsPath:t,...r})}si();Vr();js();Wr();async function ns(e,{serializedTransaction:t}){return e.request({method:"eth_sendRawTransaction",params:[t]},{retryCount:0})}var $f=new Ht(128);async function os(e,t){let{account:r=e.account,chain:n=e.chain,accessList:o,authorizationList:s,blobs:i,data:a,gas:c,gasPrice:u,maxFeePerBlobGas:p,maxFeePerGas:f,maxPriorityFeePerGas:l,nonce:m,type:y,value:x,...d}=t;if(typeof r>"u")throw new Ue({docsPath:"/docs/actions/wallet/sendTransaction"});let h=r?K(r):null;try{ot(t);let b=await(async()=>{if(t.to)return t.to;if(t.to!==null&&s&&s.length>0)return await hc({authorization:s[0]}).catch(()=>{throw new g("`to` is required. Could not infer from `authorizationList`.")})})();if(h?.type==="json-rpc"||h===null){let v;n!==null&&(v=await $(e,vt,"getChainId")({}),Vc({currentChainId:v,chain:n}));let A=e.chain?.formatters?.transactionRequest?.format,S=(A||lt)({...qr(d,{format:A}),accessList:o,authorizationList:s,blobs:i,chainId:v,data:a,from:h?.address,gas:c,gasPrice:u,maxFeePerBlobGas:p,maxFeePerGas:f,maxPriorityFeePerGas:l,nonce:m,to:b,type:y,value:x}),T=$f.get(e.uid),B=T?"wallet_sendTransaction":"eth_sendTransaction";try{return await e.request({method:B,params:[S]},{retryCount:0})}catch(P){if(T===!1)throw P;let H=P;if(H.name==="InvalidInputRpcError"||H.name==="InvalidParamsRpcError"||H.name==="MethodNotFoundRpcError"||H.name==="MethodNotSupportedRpcError")return await e.request({method:"wallet_sendTransaction",params:[S]},{retryCount:0}).then(U=>($f.set(e.uid,!0),U)).catch(U=>{let L=U;throw L.name==="MethodNotFoundRpcError"||L.name==="MethodNotSupportedRpcError"?($f.set(e.uid,!1),H):L});throw H}}if(h?.type==="local"){let v=await $(e,Yr,"prepareTransactionRequest")({account:h,accessList:o,authorizationList:s,blobs:i,chain:n,data:a,gas:c,gasPrice:u,maxFeePerBlobGas:p,maxFeePerGas:f,maxPriorityFeePerGas:l,nonce:m,nonceManager:h.nonceManager,parameters:[...wf,"sidecars"],type:y,value:x,...d,to:b}),A=n?.serializers?.transaction,k=await h.signTransaction(v,{serializer:A});return await $(e,ns,"sendRawTransaction")({serializedTransaction:k})}throw h?.type==="smart"?new en({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"}):new en({docsPath:"/docs/actions/wallet/sendTransaction",type:h?.type})}catch(b){throw b instanceof en?b:Gc(b,{...t,account:h,chain:t.chain||void 0})}}async function Uh(e,t){let{abi:r,account:n=e.account,address:o,args:s,dataSuffix:i,functionName:a,...c}=t;if(typeof n>"u")throw new Ue({docsPath:"/docs/contract/writeContract"});let u=n?K(n):null,p=de({abi:r,args:s,functionName:a});try{return await $(e,os,"sendTransaction")({data:`${p}${i?i.replace("0x",""):""}`,to:o,account:u,...c})}catch(f){throw ut(f,{abi:r,address:o,args:s,docsPath:"/docs/contract/writeContract",functionName:a,sender:u?.address})}}W();Uc();qe();He();He();var Nf={"0x0":"reverted","0x1":"success"};function Lh(e){let t={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map(r=>We(r)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?xe(e.transactionIndex):null,status:e.status?Nf[e.status]:null,type:e.type?bf[e.type]||e.type:null};return e.blobGasPrice&&(t.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(t.blobGasUsed=BigInt(e.blobGasUsed)),t}async function Wc(e,t){let{atomic:r=!1,chainId:n,receipts:o,version:s="2.0.0",...i}=await e.request({method:"wallet_getCallsStatus",params:[t.id]}),[a,c]=(()=>{let u=i.status;return u>=100&&u<200?["pending",u]:u>=200&&u<300?["success",u]:u>=300&&u<700?["failure",u]:u==="CONFIRMED"?["success",200]:u==="PENDING"?["pending",100]:[void 0,u]})();return{...i,atomic:r,chainId:n?xe(n):void 0,receipts:o?.map(u=>({...u,blockNumber:he(u.blockNumber),gasUsed:he(u.gasUsed),status:Nf[u.status]}))??[],statusCode:c,status:a,version:s}}async function Hh(e,t){let{id:r,pollingInterval:n=e.pollingInterval,status:o=({statusCode:l})=>l>=200,timeout:s=6e4}=t,i=X(["waitForCallsStatus",e.uid,r]),{promise:a,resolve:c,reject:u}=es(),p,f=Ke(i,{resolve:c,reject:u},l=>{let m=At(async()=>{let y=x=>{clearTimeout(p),m(),x(),f()};try{let x=await Wc(e,{id:r});if(!o(x))return;y(()=>l.resolve(x))}catch(x){y(()=>l.reject(x))}},{interval:n,emitOnBegin:!0});return m});return p=s?setTimeout(()=>{f(),clearTimeout(p),u(new Ff({id:r}))},s):void 0,await a}var Ff=class extends g{constructor({id:t}){super(`Timed out while waiting for call bundle with id "${t}" to be confirmed.`,{name:"WaitForCallsStatusTimeoutError"})}};ve();var Kc=256,Yc;function Zc(e=11){if(!Yc||Kc+e>256*2){Yc="",Kc=0;for(let t=0;t<256;t++)Yc+=(256+Math.random()*256|0).toString(16).substring(1)}return Yc.substring(Kc,Kc+++e)}function Jc(e){let{batch:t,cacheTime:r=e.pollingInterval??4e3,ccipRead:n,key:o="base",name:s="Base Client",pollingInterval:i=4e3,type:a="base"}=e,c=e.chain,u=e.account?K(e.account):void 0,{config:p,request:f,value:l}=e.transport({chain:c,pollingInterval:i}),m={...p,...l},y={account:u,batch:t,cacheTime:r,ccipRead:n,chain:c,key:o,name:s,pollingInterval:i,request:f,transport:m,type:a,uid:Zc()};function x(d){return h=>{let b=h(d);for(let A in y)delete b[A];let v={...d,...b};return Object.assign(v,{extend:x(v)})}}return Object.assign(y,{extend:x(y)})}W();En();Zs();V();js();var Xc=new Ht(8192);function Dh(e,{enabled:t=!0,id:r}){if(!t||!r)return e();if(Xc.get(r))return Xc.get(r);let n=e().finally(()=>Xc.delete(r));return Xc.set(r,n),n}function pi(e,{delay:t=100,retryCount:r=2,shouldRetry:n=()=>!0}={}){return new Promise((o,s)=>{let i=async({count:a=0}={})=>{let c=async({error:u})=>{let p=typeof t=="function"?t({count:a,error:u}):t;p&&await ui(p),i({count:a+1})};try{let u=await e();o(u)}catch(u){if(a{let{dedupe:o=!1,methods:s,retryDelay:i=150,retryCount:a=3,uid:c}={...t,...n},{method:u}=r;if(s?.exclude?.includes(u))throw new Or(new Error("method not supported"),{method:u});if(s?.include&&!s.include.includes(u))throw new Or(new Error("method not supported"),{method:u});let p=o?Lt(`${c}.${X(r)}`):void 0;return Dh(()=>pi(async()=>{try{return await e(r)}catch(f){let l=f;switch(l.code){case ao.code:throw new ao(l);case co.code:throw new co(l);case uo.code:throw new uo(l,{method:r.method});case po.code:throw new po(l);case cr.code:throw new cr(l);case Wt.code:throw new Wt(l);case fo.code:throw new fo(l);case lo.code:throw new lo(l);case mo.code:throw new mo(l);case Or.code:throw new Or(l,{method:r.method});case An.code:throw new An(l);case ho.code:throw new ho(l);case Tn.code:throw new Tn(l);case yo.code:throw new yo(l);case xo.code:throw new xo(l);case bo.code:throw new bo(l);case go.code:throw new go(l);case wo.code:throw new wo(l);case vo.code:throw new vo(l);case Eo.code:throw new Eo(l);case Ao.code:throw new Ao(l);case To.code:throw new To(l);case So.code:throw new So(l);case Co.code:throw new Co(l);case Io.code:throw new Io(l);case 5e3:throw new Tn(l);default:throw f instanceof g?f:new nc(l)}}},{delay:({count:f,error:l})=>{if(l&&l instanceof bt){let m=l?.headers?.get("Retry-After");if(m?.match(/\d/))return Number.parseInt(m)*1e3}return~~(1<n1(f)}),{enabled:o,id:p})}}function n1(e){return"code"in e&&typeof e.code=="number"?e.code===-1||e.code===An.code||e.code===cr.code:e instanceof bt&&e.status?e.status===403||e.status===408||e.status===413||e.status===429||e.status===500||e.status===502||e.status===503||e.status===504:!0}function Qc({key:e,methods:t,name:r,request:n,retryCount:o=3,retryDelay:s=150,timeout:i,type:a},c){let u=Zc();return{config:{key:e,methods:t,name:r,request:n,retryCount:o,retryDelay:s,timeout:i,type:a},request:jh(n,{methods:t,retryCount:o,retryDelay:s,uid:u}),value:c}}function Of(e,t={}){let{key:r="custom",methods:n,name:o="Custom Provider",retryDelay:s}=t;return({retryCount:i})=>Qc({key:r,methods:n,name:o,request:e.request.bind(e),retryCount:t.retryCount??i,retryDelay:s,type:"custom"})}En();W();var eu=class extends g{constructor(){super("No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.",{docsPath:"/docs/clients/intro",name:"UrlRequiredError"})}};Pf();En();function qh(e,{errorInstance:t=new Error("timed out"),timeout:r,signal:n}){return new Promise((o,s)=>{(async()=>{let i;try{let a=new AbortController;r>0&&(i=setTimeout(()=>{n?a.abort():s(t)},r)),o(await e({signal:a?.signal||null}))}catch(a){a?.name==="AbortError"&&s(t),s(a)}finally{clearTimeout(i)}})()})}qe();function o1(){return{current:0,take(){return this.current++},reset(){this.current=0}}}var Mf=o1();function Vh(e,t={}){return{async request(r){let{body:n,onRequest:o=t.onRequest,onResponse:s=t.onResponse,timeout:i=t.timeout??1e4}=r,a={...t.fetchOptions??{},...r.fetchOptions??{}},{headers:c,method:u,signal:p}=a;try{let f=await qh(async({signal:m})=>{let y={...a,body:Array.isArray(n)?X(n.map(b=>({jsonrpc:"2.0",id:b.id??Mf.take(),...b}))):X({jsonrpc:"2.0",id:n.id??Mf.take(),...n}),headers:{"Content-Type":"application/json",...c},method:u||"POST",signal:p||(i>0?m:null)},x=new Request(e,y),d=await o?.(x,y)??{...y,url:e};return await fetch(d.url??e,d)},{errorInstance:new Ys({body:n,url:e}),timeout:i,signal:!0});s&&await s(f);let l;if(f.headers.get("Content-Type")?.startsWith("application/json"))l=await f.json();else{l=await f.text();try{l=JSON.parse(l||"{}")}catch(m){if(f.ok)throw m;l={error:l}}}if(!f.ok)throw new bt({body:n,details:X(l.error)||f.statusText,headers:f.headers,status:f.status,url:e});return l}catch(f){throw f instanceof bt||f instanceof Ys?f:new bt({body:n,cause:f,url:e})}}}}function zf(e,t={}){let{batch:r,fetchOptions:n,key:o="http",methods:s,name:i="HTTP JSON-RPC",onFetchRequest:a,onFetchResponse:c,retryDelay:u,raw:p}=t;return({chain:f,retryCount:l,timeout:m})=>{let{batchSize:y=1e3,wait:x=0}=typeof r=="object"?r:{},d=t.retryCount??l,h=m??t.timeout??1e4,b=e||f?.rpcUrls.default.http[0];if(!b)throw new eu;let v=Vh(b,{fetchOptions:n,onRequest:a,onResponse:c,timeout:h});return Qc({key:o,methods:s,name:i,async request({method:A,params:k}){let S={method:A,params:k},{schedule:T}=Lc({id:b,wait:x,shouldSplitBatch(U){return U.length>y},fn:U=>v.request({body:U}),sort:(U,L)=>U.id-L.id}),B=async U=>r?T(U):[await v.request({body:U})],[{error:P,result:H}]=await B(S);if(p)return{error:P,result:H};if(P)throw new Fr({body:S,error:P,url:b});return H},retryCount:d,retryDelay:u,timeout:h,type:"http"},{fetchOptions:n,url:b})}}Jr();Zr();ct();$n();hn();V();qs();W();Nr();function ss(e,t){if(!(e instanceof g))return!1;let r=e.walk(n=>n instanceof vn);return r instanceof vn?!!(r.data?.errorName==="ResolverNotFound"||r.data?.errorName==="ResolverWildcardNotSupported"||r.data?.errorName==="ResolverNotContract"||r.data?.errorName==="ResolverError"||r.data?.errorName==="HttpError"||r.reason?.includes("Wildcard on non-extended resolvers is not supported")||t==="reverse"&&r.reason===Ma[50]):!1}qc();et();ze();V();Bt();St();function tu(e){if(e.length!==66||e.indexOf("[")!==0||e.indexOf("]")!==65)return null;let t=`0x${e.slice(1,65)}`;return we(t)?t:null}function is(e){let t=new Uint8Array(32).fill(0);if(!e)return te(t);let r=e.split(".");for(let n=r.length-1;n>=0;n-=1){let o=tu(r[n]),s=o?ht(o):ue(Pt(r[n]),"bytes");t=ue(Ze([t,s]),"bytes")}return te(t)}ze();function Gh(e){return`[${e.slice(2)}]`}ze();V();Bt();function Wh(e){let t=new Uint8Array(32).fill(0);return e?tu(e)||ue(Pt(e)):te(t)}function tn(e){let t=e.replace(/^\.|\.$/gm,"");if(t.length===0)return new Uint8Array(1);let r=new Uint8Array(Pt(t).byteLength+2),n=0,o=t.split(".");for(let s=0;s255&&(i=Pt(Gh(Wh(o[s])))),r[n]=i.length,r.set(i,n+1),n+=i.length+1}return r.byteLength!==n+1?r.slice(0,n+1):r}async function Kh(e,t){let{blockNumber:r,blockTag:n,coinType:o,name:s,gatewayUrls:i,strict:a}=t,{chain:c}=e,u=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!c)throw new Error("client chain not configured. universalResolverAddress is required.");return Et({blockNumber:r,chain:c,contract:"ensUniversalResolver"})})(),p=c?.ensTlds;if(p&&!p.some(f=>s.endsWith(f)))return null;try{let f=de({abi:Af,functionName:"addr",...o!=null?{args:[is(s),BigInt(o)]}:{args:[is(s)]}}),l={address:u,abi:_c,functionName:"resolve",args:[z(tn(s)),f,i??[ts]],blockNumber:r,blockTag:n},y=await $(e,je,"readContract")(l);if(y[0]==="0x")return null;let x=st({abi:Af,args:o!=null?[is(s),BigInt(o)]:void 0,functionName:"addr",data:y[0]});return x==="0x"||Ie(x)==="0x00"?null:x}catch(f){if(a)throw f;if(ss(f,"resolve"))return null;throw f}}W();var ru=class extends g{constructor({data:t}){super("Unable to extract image from metadata. The metadata may be malformed or invalid.",{metaMessages:["- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.","",`Provided data: ${JSON.stringify(t)}`],name:"EnsAvatarInvalidMetadataError"})}},rn=class extends g{constructor({reason:t}){super(`ENS NFT avatar URI is invalid. ${t}`,{name:"EnsAvatarInvalidNftUriError"})}},as=class extends g{constructor({uri:t}){super(`Unable to resolve ENS avatar URI "${t}". The URI may be malformed, invalid, or does not respond with a valid image.`,{name:"EnsAvatarUriResolutionError"})}},nu=class extends g{constructor({namespace:t}){super(`ENS NFT avatar namespace "${t}" is not supported. Must be "erc721" or "erc1155".`,{name:"EnsAvatarUnsupportedNamespaceError"})}};var s1=/(?https?:\/\/[^\/]*|ipfs:\/|ipns:\/|ar:\/)?(?\/)?(?ipfs\/|ipns\/)?(?[\w\-.]+)(?\/.*)?/,i1=/^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\/(?[\w\-.]+))?(?\/.*)?$/,a1=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,c1=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;async function u1(e){try{let t=await fetch(e,{method:"HEAD"});return t.status===200?t.headers.get("content-type")?.startsWith("image/"):!1}catch(t){return typeof t=="object"&&typeof t.response<"u"||!globalThis.hasOwnProperty("Image")?!1:new Promise(r=>{let n=new Image;n.onload=()=>{r(!0)},n.onerror=()=>{r(!1)},n.src=e})}}function Yh(e,t){return e?e.endsWith("/")?e.slice(0,-1):e:t}function Uf({uri:e,gatewayUrls:t}){let r=a1.test(e);if(r)return{uri:e,isOnChain:!0,isEncoded:r};let n=Yh(t?.ipfs,"https://ipfs.io"),o=Yh(t?.arweave,"https://arweave.net"),s=e.match(s1),{protocol:i,subpath:a,target:c,subtarget:u=""}=s?.groups||{},p=i==="ipns:/"||a==="ipns/",f=i==="ipfs:/"||a==="ipfs/"||i1.test(e);if(e.startsWith("http")&&!p&&!f){let m=e;return t?.arweave&&(m=e.replace(/https:\/\/arweave.net/g,t?.arweave)),{uri:m,isOnChain:!1,isEncoded:!1}}if((p||f)&&c)return{uri:`${n}/${p?"ipns":"ipfs"}/${c}${u}`,isOnChain:!1,isEncoded:!1};if(i==="ar:/"&&c)return{uri:`${o}/${c}${u||""}`,isOnChain:!1,isEncoded:!1};let l=e.replace(c1,"");if(l.startsWith("o.json());return await ou({gatewayUrls:e,uri:Lf(r)})}catch{throw new as({uri:t})}}async function ou({gatewayUrls:e,uri:t}){let{uri:r,isOnChain:n}=Uf({uri:t,gatewayUrls:e});if(n||await u1(r))return r;throw new as({uri:t})}function Jh(e){let t=e;t.startsWith("did:nft:")&&(t=t.replace("did:nft:","").replace(/_/g,"/"));let[r,n,o]=t.split("/"),[s,i]=r.split(":"),[a,c]=n.split(":");if(!s||s.toLowerCase()!=="eip155")throw new rn({reason:"Only EIP-155 supported"});if(!i)throw new rn({reason:"Chain ID not found"});if(!c)throw new rn({reason:"Contract address not found"});if(!o)throw new rn({reason:"Token ID not found"});if(!a)throw new rn({reason:"ERC namespace not found"});return{chainID:Number.parseInt(i),namespace:a.toLowerCase(),contractAddress:c,tokenID:o}}async function Xh(e,{nft:t}){if(t.namespace==="erc721")return je(e,{address:t.contractAddress,abi:[{name:"tokenURI",type:"function",stateMutability:"view",inputs:[{name:"tokenId",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"tokenURI",args:[BigInt(t.tokenID)]});if(t.namespace==="erc1155")return je(e,{address:t.contractAddress,abi:[{name:"uri",type:"function",stateMutability:"view",inputs:[{name:"_id",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"uri",args:[BigInt(t.tokenID)]});throw new nu({namespace:t.namespace})}async function Qh(e,{gatewayUrls:t,record:r}){return/eip155:/i.test(r)?p1(e,{gatewayUrls:t,record:r}):ou({uri:r,gatewayUrls:t})}async function p1(e,{gatewayUrls:t,record:r}){let n=Jh(r),o=await Xh(e,{nft:n}),{uri:s,isOnChain:i,isEncoded:a}=Uf({uri:o,gatewayUrls:t});if(i&&(s.includes("data:application/json;base64,")||s.startsWith("{"))){let u=a?atob(s.replace("data:application/json;base64,","")):s,p=JSON.parse(u);return ou({uri:Lf(p),gatewayUrls:t})}let c=n.tokenID;return n.namespace==="erc1155"&&(c=c.replace("0x","").padStart(64,"0")),Zh({gatewayUrls:t,uri:s.replace(/(?:0x)?{id}/,c)})}Jr();Zr();ct();$n();V();qc();async function su(e,t){let{blockNumber:r,blockTag:n,key:o,name:s,gatewayUrls:i,strict:a}=t,{chain:c}=e,u=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!c)throw new Error("client chain not configured. universalResolverAddress is required.");return Et({blockNumber:r,chain:c,contract:"ensUniversalResolver"})})(),p=c?.ensTlds;if(p&&!p.some(f=>s.endsWith(f)))return null;try{let f={address:u,abi:_c,functionName:"resolve",args:[z(tn(s)),de({abi:Ef,functionName:"text",args:[is(s),o]}),i??[ts]],blockNumber:r,blockTag:n},m=await $(e,je,"readContract")(f);if(m[0]==="0x")return null;let y=st({abi:Ef,functionName:"text",data:m[0]});return y===""?null:y}catch(f){if(a)throw f;if(ss(f,"resolve"))return null;throw f}}async function ey(e,{blockNumber:t,blockTag:r,assetGatewayUrls:n,name:o,gatewayUrls:s,strict:i,universalResolverAddress:a}){let c=await $(e,su,"getEnsText")({blockNumber:t,blockTag:r,key:"avatar",name:o,universalResolverAddress:a,gatewayUrls:s,strict:i});if(!c)return null;try{return await Qh(e,{record:c,gatewayUrls:n})}catch{return null}}Jr();$n();V();async function ty(e,{address:t,blockNumber:r,blockTag:n,gatewayUrls:o,strict:s,universalResolverAddress:i}){let a=i;if(!a){if(!e.chain)throw new Error("client chain not configured. universalResolverAddress is required.");a=Et({blockNumber:r,chain:e.chain,contract:"ensUniversalResolver"})}let c=`${t.toLowerCase().substring(2)}.addr.reverse`;try{let u={address:a,abi:bh,functionName:"reverse",args:[z(tn(c))],blockNumber:r,blockTag:n},p=$(e,je,"readContract"),[f,l]=o?await p({...u,args:[...u.args,o]}):await p(u);return t.toLowerCase()!==l.toLowerCase()?null:f}catch(u){if(s)throw u;if(ss(u,"reverse"))return null;throw u}}$n();V();async function ry(e,t){let{blockNumber:r,blockTag:n,name:o}=t,{chain:s}=e,i=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!s)throw new Error("client chain not configured. universalResolverAddress is required.");return Et({blockNumber:r,chain:s,contract:"ensUniversalResolver"})})(),a=s?.ensTlds;if(a&&!a.some(u=>o.endsWith(u)))throw new Error(`${o} is not a valid ENS TLD (${a?.join(", ")}) for chain "${s.name}" (id: ${s.id}).`);let[c]=await $(e,je,"readContract")({address:i,abi:[{inputs:[{type:"bytes"}],name:"findResolver",outputs:[{type:"address"},{type:"bytes32"}],stateMutability:"view",type:"function"}],functionName:"findResolver",args:[z(tn(o))],blockNumber:r,blockTag:n});return c}rs();ve();V();Cf();si();Vr();Wr();async function iu(e,t){let{account:r=e.account,blockNumber:n,blockTag:o="latest",blobs:s,data:i,gas:a,gasPrice:c,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:f,to:l,value:m,...y}=t,x=r?K(r):void 0;try{ot(t);let h=(n?_(n):void 0)||o,b=e.chain?.formatters?.transactionRequest?.format,A=(b||lt)({...qr(y,{format:b}),from:x?.address,blobs:s,data:i,gas:a,gasPrice:c,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:f,to:l,value:m}),k=await e.request({method:"eth_createAccessList",params:[A,h]});return{accessList:k.accessList,gasUsed:BigInt(k.gasUsed)}}catch(d){throw zc(d,{...t,account:x,chain:e.chain})}}async function ny(e){let t=$r(e,{method:"eth_newBlockFilter"}),r=await e.request({method:"eth_newBlockFilter"});return{id:r,request:t(r),type:"block"}}V();async function au(e,{address:t,args:r,event:n,events:o,fromBlock:s,strict:i,toBlock:a}={}){let c=o??(n?[n]:void 0),u=$r(e,{method:"eth_newFilter"}),p=[];c&&(p=[c.flatMap(m=>qt({abi:[m],eventName:m.name,args:r}))],n&&(p=p[0]));let f=await e.request({method:"eth_newFilter",params:[{address:t,fromBlock:typeof s=="bigint"?_(s):s,toBlock:typeof a=="bigint"?_(a):a,...p.length?{topics:p}:{}}]});return{abi:c,args:r,eventName:n?n.name:void 0,fromBlock:s,id:f,request:u(f),strict:!!i,toBlock:a,type:"event"}}async function cu(e){let t=$r(e,{method:"eth_newPendingTransactionFilter"}),r=await e.request({method:"eth_newPendingTransactionFilter"});return{id:r,request:t(r),type:"transaction"}}async function oy(e){let t=await e.request({method:"eth_blobBaseFee"});return BigInt(t)}He();V();async function sy(e,{blockHash:t,blockNumber:r,blockTag:n="latest"}={}){let o=r!==void 0?_(r):void 0,s;return t?s=await e.request({method:"eth_getBlockTransactionCountByHash",params:[t]},{dedupe:!0}):s=await e.request({method:"eth_getBlockTransactionCountByNumber",params:[o||n]},{dedupe:!!o}),xe(s)}V();async function Hf(e,{address:t,blockNumber:r,blockTag:n="latest"}){let o=r!==void 0?_(r):void 0,s=await e.request({method:"eth_getCode",params:[t,o||n]},{dedupe:!!o});if(s!=="0x")return s}W();var uu=class extends g{constructor({address:t}){super(`No EIP-712 domain found on contract "${t}".`,{metaMessages:["Ensure that:",`- The contract is deployed at the address "${t}".`,"- `eip712Domain()` function exists on the contract.","- `eip712Domain()` function matches signature to ERC-5267 specification."],name:"Eip712DomainNotFoundError"})}};async function iy(e,t){let{address:r,factory:n,factoryData:o}=t;try{let[s,i,a,c,u,p,f]=await $(e,je,"readContract")({abi:f1,address:r,functionName:"eip712Domain",factory:n,factoryData:o});return{domain:{name:i,version:a,chainId:Number(c),verifyingContract:u,salt:p},extensions:f,fields:s}}catch(s){let i=s;throw i.name==="ContractFunctionExecutionError"&&i.cause.name==="ContractFunctionZeroDataError"?new uu({address:r}):i}}var f1=[{inputs:[],name:"eip712Domain",outputs:[{name:"fields",type:"bytes1"},{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"},{name:"salt",type:"bytes32"},{name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"}];V();function ay(e){return{baseFeePerGas:e.baseFeePerGas.map(t=>BigInt(t)),gasUsedRatio:e.gasUsedRatio,oldestBlock:BigInt(e.oldestBlock),reward:e.reward?.map(t=>t.map(r=>BigInt(r)))}}async function cy(e,{blockCount:t,blockNumber:r,blockTag:n="latest",rewardPercentiles:o}){let s=r?_(r):void 0,i=await e.request({method:"eth_feeHistory",params:[_(t),s||n,o]},{dedupe:!!s});return ay(i)}async function uy(e,{filter:t}){let r=t.strict??!1,o=(await t.request({method:"eth_getFilterLogs",params:[t.id]})).map(s=>We(s));return t.abi?Jo({abi:t.abi,logs:o,strict:r}):o}V();function py(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}ye();Rt();qe();W();var pu=class extends g{constructor({domain:t}){super(`Invalid domain "${X(t)}".`,{metaMessages:["Must be a valid EIP-712 domain."]})}},fu=class extends g{constructor({primaryType:t,types:r}){super(`Invalid primary type \`${t}\` must be one of \`${JSON.stringify(Object.keys(r))}\`.`,{docsPath:"/api/glossary/Errors#typeddatainvalidprimarytypeerror",metaMessages:["Check that the primary type is a key in `types`."]})}},lu=class extends g{constructor({type:t}){super(`Struct type "${t}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."],name:"InvalidStructTypeError"})}};yt();mt();V();Np();Dt();et();V();Bt();function fy(e){let{domain:t={},message:r,primaryType:n}=e,o={EIP712Domain:du({domain:t}),...e.types};mu({domain:t,message:r,primaryType:n,types:o});let s=["0x1901"];return t&&s.push(l1({domain:t,types:o})),n!=="EIP712Domain"&&s.push(ly({data:r,primaryType:n,types:o})),ue(Ze(s))}function l1({domain:e,types:t}){return ly({data:e,primaryType:"EIP712Domain",types:t})}function ly({data:e,primaryType:t,types:r}){let n=my({data:e,primaryType:t,types:r});return ue(n)}function my({data:e,primaryType:t,types:r}){let n=[{type:"bytes32"}],o=[m1({primaryType:t,types:r})];for(let s of r[t]){let[i,a]=hy({types:r,name:s.name,type:s.type,value:e[s.name]});n.push(i),o.push(a)}return De(n,o)}function m1({primaryType:e,types:t}){let r=z(d1({primaryType:e,types:t}));return ue(r)}function d1({primaryType:e,types:t}){let r="",n=dy({primaryType:e,types:t});n.delete(e);let o=[e,...Array.from(n).sort()];for(let s of o)r+=`${s}(${t[s].map(({name:i,type:a})=>`${a} ${i}`).join(",")})`;return r}function dy({primaryType:e,types:t},r=new Set){let o=e.match(/^\w*/u)?.[0];if(r.has(o)||t[o]===void 0)return r;r.add(o);for(let s of t[o])dy({primaryType:s.type,types:t},r);return r}function hy({types:e,name:t,type:r,value:n}){if(e[r]!==void 0)return[{type:"bytes32"},ue(my({data:n,primaryType:r,types:e}))];if(r==="bytes")return n=`0x${(n.length%2?"0":"")+n.slice(2)}`,[{type:"bytes32"},ue(n)];if(r==="string")return[{type:"bytes32"},ue(z(n))];if(r.lastIndexOf("]")===r.length-1){let o=r.slice(0,r.lastIndexOf("[")),s=n.map(i=>hy({name:t,type:o,types:e,value:i}));return[{type:"bytes32"},ue(De(s.map(([i])=>i),s.map(([,i])=>i)))]}return[{type:r},n]}qe();function yy(e){let{domain:t,message:r,primaryType:n,types:o}=e,s=(c,u)=>{let p={...u};for(let f of c){let{name:l,type:m}=f;m==="address"&&(p[l]=p[l].toLowerCase())}return p},i=o.EIP712Domain?t?s(o.EIP712Domain,t):{}:{},a=(()=>{if(n!=="EIP712Domain")return s(o[n],r)})();return X({domain:i,message:a,primaryType:n,types:o})}function mu(e){let{domain:t,message:r,primaryType:n,types:o}=e,s=(i,a)=>{for(let c of i){let{name:u,type:p}=c,f=a[u],l=p.match(Na);if(l&&(typeof f=="number"||typeof f=="bigint")){let[x,d,h]=l;_(f,{signed:d==="int",size:Number.parseInt(h)/8})}if(p==="address"&&typeof f=="string"&&!re(f))throw new ae({address:f});let m=p.match(Wm);if(m){let[x,d]=m;if(d&&ee(f)!==Number.parseInt(d))throw new xa({expectedSize:Number.parseInt(d),givenSize:ee(f)})}let y=o[p];y&&(h1(p),s(y,f))}};if(o.EIP712Domain&&t){if(typeof t!="object")throw new pu({domain:t});s(o.EIP712Domain,t)}if(n!=="EIP712Domain")if(o[n])s(o[n],r);else throw new fu({primaryType:n,types:o})}function du({domain:e}){return[typeof e?.name=="string"&&{name:"name",type:"string"},e?.version&&{name:"version",type:"string"},(typeof e?.chainId=="number"||typeof e?.chainId=="bigint")&&{name:"chainId",type:"uint256"},e?.verifyingContract&&{name:"verifyingContract",type:"address"},e?.salt&&{name:"salt",type:"bytes32"}].filter(Boolean)}function h1(e){if(e==="address"||e==="bool"||e==="string"||e.startsWith("bytes")||e.startsWith("uint")||e.startsWith("int"))throw new lu({type:e})}ct();V();_t();et();hn();V();gc();Rt();W();Qo();hr();yt();mt();Rr();He();function xy(e){let{authorizationList:t}=e;if(t)for(let r of t){let{chainId:n}=r,o=r.address;if(!re(o))throw new ae({address:o});if(n<0)throw new yr({chainId:n})}hu(e)}function by(e){let{blobVersionedHashes:t}=e;if(t){if(t.length===0)throw new Wo;for(let r of t){let n=ee(r),o=xe(xt(r,0,1));if(n!==32)throw new Sc({hash:r,size:n});if(o!==1)throw new Cc({hash:r,version:o})}}hu(e)}function hu(e){let{chainId:t,maxPriorityFeePerGas:r,maxFeePerGas:n,to:o}=e;if(t<=0)throw new yr({chainId:t});if(o&&!re(o))throw new ae({address:o});if(n&&n>Gr)throw new nt({maxFeePerGas:n});if(r&&n&&r>n)throw new gt({maxFeePerGas:n,maxPriorityFeePerGas:r})}function gy(e){let{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:o,to:s}=e;if(t<=0)throw new yr({chainId:t});if(s&&!re(s))throw new ae({address:s});if(r||o)throw new g("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(n&&n>Gr)throw new nt({maxFeePerGas:n})}function wy(e){let{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:o,to:s}=e;if(s&&!re(s))throw new ae({address:s});if(typeof t<"u"&&t<=0)throw new yr({chainId:t});if(r||o)throw new g("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(n&&n>Gr)throw new nt({maxFeePerGas:n})}Rt();_t();yt();function Nn(e){if(!e||e.length===0)return[];let t=[];for(let r=0;r"u"||typeof m>"u")){let v=typeof e.blobs[0]=="string"?e.blobs:e.blobs.map(S=>te(S)),A=e.kzg,k=Vo({blobs:v,kzg:A});if(typeof l>"u"&&(l=Ac({commitments:k})),typeof m>"u"){let S=Go({blobs:v,commitments:k,kzg:A});m=Ic({blobs:v,commitments:k,proofs:S})}}let y=Nn(p),x=[z(r),o?z(o):"0x",u?z(u):"0x",c?z(c):"0x",n?z(n):"0x",s??"0x",i?z(i):"0x",f??"0x",y,a?z(a):"0x",l??[],...nn(e,t)],d=[],h=[],b=[];if(m)for(let v=0;v{if(t.v>=35n)return(t.v-35n)/2n>0?t.v:27n+(t.v===35n?0n:1n);if(r>0)return BigInt(r*2)+BigInt(35n+t.v-27n);let m=27n+(t.v===27n?0n:1n);if(t.v!==m)throw new Ka({v:t.v});return m})(),f=Ie(t.r),l=Ie(t.s);u=[...u,z(p),f==="0x00"?"0x":f,l==="0x00"?"0x":l]}else r>0&&(u=[...u,z(r),"0x","0x"]);return ft(u)}function nn(e,t){let r=t??e,{v:n,yParity:o}=r;if(typeof r.r>"u")return[];if(typeof r.s>"u")return[];if(typeof n>"u"&&typeof o>"u")return[];let s=Ie(r.r),i=Ie(r.s);return[typeof o=="number"?o?z(1):"0x":n===0n?"0x":n===1n?z(1):n===27n?"0x":z(1),s==="0x00"?"0x":s,i==="0x00"?"0x":i]}function Ey(e){if(!e||e.length===0)return[];let t=[];for(let r of e){let{chainId:n,nonce:o,...s}=r,i=r.address;t.push([n?z(n):"0x",i,o?z(o):"0x",...nn({},s)])}return t}He();Bt();var Ay=`Ethereum Signed Message: +`;et();mt();V();function Ty(e){let t=typeof e=="string"?Lt(e):typeof e.raw=="string"?e.raw:te(e.raw),r=Lt(`${Ay}${ee(t)}`);return Ze([r,t])}function yu(e,t){return ue(Ty(e),t)}var xu="0x6492649264926492649264926492649264926492649264926492649264926492";Rr();function Sy(e){return $p(e,-32)===xu}Dt();et();ze();function Cy(e){let{address:t,data:r,signature:n,to:o="hex"}=e,s=Te([De([{type:"address"},{type:"bytes"},{type:"bytes"}],[t,r,n]),xu]);return o==="hex"?s:Pe(s)}W();var bu=class extends g{constructor({value:t}){super(`Number \`${t}\` is not a valid decimal number.`,{name:"InvalidDecimalNumberError"})}};function Iy(e,t){if(!/^(-?)([0-9]*)\.?([0-9]*)$/.test(e))throw new bu({value:e});let[r,n="0"]=e.split("."),o=r.startsWith("-");if(o&&(r=r.slice(1)),n=n.replace(/(0+)$/,""),t===0)Math.round(+`.${n}`)===1&&(r=`${BigInt(r)+1n}`),n="";else if(n.length>t){let[s,i,a]=[n.slice(0,t-1),n.slice(t-1,t),n.slice(t)],c=Math.round(+`${i}.${a}`);c>9?n=`${BigInt(s)+BigInt(1)}0`.padStart(s.length+1,"0"):n=`${s}${c}`,n.length>t&&(n=n.slice(1),r=`${BigInt(r)+1n}`),n=n.slice(0,t)}else n=n.padEnd(t,"0");return BigInt(`${o?"-":""}${r}${n}`)}ja();function cs(e,t="wei"){return Iy(e,Da[t])}function v1(e){return e.map(t=>({...t,value:BigInt(t.value)}))}function Py(e){return{...e,balance:e.balance?BigInt(e.balance):void 0,nonce:e.nonce?xe(e.nonce):void 0,storageProof:e.storageProof?v1(e.storageProof):void 0}}async function ky(e,{address:t,blockNumber:r,blockTag:n,storageKeys:o}){let s=n??"latest",i=r!==void 0?_(r):void 0,a=await e.request({method:"eth_getProof",params:[t,o,i||s]});return Py(a)}V();async function By(e,{address:t,blockNumber:r,blockTag:n="latest",slot:o}){let s=r!==void 0?_(r):void 0;return await e.request({method:"eth_getStorageAt",params:[t,o,s||n]})}_t();V();async function us(e,{blockHash:t,blockNumber:r,blockTag:n,hash:o,index:s}){let i=n||"latest",a=r!==void 0?_(r):void 0,c=null;if(o?c=await e.request({method:"eth_getTransactionByHash",params:[o]},{dedupe:!0}):t?c=await e.request({method:"eth_getTransactionByBlockHashAndIndex",params:[t,_(s)]},{dedupe:!0}):(a||i)&&(c=await e.request({method:"eth_getTransactionByBlockNumberAndIndex",params:[a||i,_(s)]},{dedupe:!!a})),!c)throw new oo({blockHash:t,blockNumber:r,blockTag:i,hash:o,index:s});return(e.chain?.formatters?.transaction?.format||Bn)(c)}async function Ry(e,{hash:t,transactionReceipt:r}){let[n,o]=await Promise.all([$(e,Jt,"getBlockNumber")({}),t?$(e,us,"getTransaction")({hash:t}):void 0]),s=r?.blockNumber||o?.blockNumber;return s?n-s+1n:0n}_t();async function fi(e,{hash:t}){let r=await e.request({method:"eth_getTransactionReceipt",params:[t]},{dedupe:!0});if(!r)throw new so({hash:t});return(e.chain?.formatters?.transactionReceipt?.format||Lh)(r)}Jr();ye();W();Nr();Zr();ct();$n();async function _y(e,t){let{allowFailure:r=!0,batchSize:n,blockNumber:o,blockTag:s,multicallAddress:i,stateOverride:a}=t,c=t.contracts,u=n??(typeof e.batch?.multicall=="object"&&e.batch.multicall.batchSize||1024),p=i;if(!p){if(!e.chain)throw new Error("client chain not configured. multicallAddress is required.");p=Et({blockNumber:o,chain:e.chain,contract:"multicall3"})}let f=[[]],l=0,m=0;for(let d=0;d0&&m>u&&f[l].length>0&&(l++,m=(k.length-2)/2,f[l]=[]),f[l]=[...f[l],{allowFailure:!0,callData:k,target:b}]}catch(k){let S=ut(k,{abi:h,address:b,args:v,docsPath:"/docs/contract/multicall",functionName:A});if(!r)throw S;f[l]=[...f[l],{allowFailure:!0,callData:"0x",target:b}]}}let y=await Promise.allSettled(f.map(d=>$(e,je,"readContract")({abi:ai,address:p,args:[d],blockNumber:o,blockTag:s,functionName:"aggregate3",stateOverride:a}))),x=[];for(let d=0;d{if(r.cause instanceof e){if(r.cause.details)return r.cause.details;if(r.cause.shortMessage)return r.cause.shortMessage}return r.cause?.message?r.cause.message:r.details})(),o=r.cause instanceof e&&r.cause.docsPath||r.docsPath,i=`https://oxlib.sh${o??""}`,a=[t||"An error occurred.",...r.metaMessages?["",...r.metaMessages]:[],...n||o?["",n?`Details: ${n}`:void 0,o?`See: ${i}`:void 0]:[]].filter(c=>typeof c=="string").join(` +`);super(a,r.cause?{cause:r.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:`ox@${Ny()}`}),this.cause=r.cause,this.details=n,this.docs=i,this.docsPath=o,this.shortMessage=t}walk(t){return Fy(this,t)}};function Fy(e,t){return t?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause?Fy(e.cause,t):t?null:e}var E1="#__bigint";function Oy(e,t,r){return JSON.stringify(e,(n,o)=>typeof t=="function"?t(n,o):typeof o=="bigint"?o.toString()+E1:o,r)}function My(e,t){if(Df(e)>t)throw new gu({givenSize:Df(e),maxSize:t})}var xr={zero:48,nine:57,A:65,F:70,a:97,f:102};function jf(e){if(e>=xr.zero&&e<=xr.nine)return e-xr.zero;if(e>=xr.A&&e<=xr.F)return e-(xr.A-10);if(e>=xr.a&&e<=xr.f)return e-(xr.a-10)}function zy(e,t={}){let{dir:r,size:n=32}=t;if(n===0)return e;if(e.length>n)throw new wu({size:e.length,targetSize:n,type:"Bytes"});let o=new Uint8Array(n);for(let s=0;st)throw new vu({givenSize:Le(e),maxSize:t})}function Uy(e,t){if(typeof t=="number"&&t>0&&t>Le(e)-1)throw new mi({offset:t,position:"start",size:Le(e)})}function Ly(e,t,r){if(typeof t=="number"&&typeof r=="number"&&Le(e)!==r-t)throw new mi({offset:r,position:"end",size:Le(e)})}function Vf(e,t={}){let{dir:r,size:n=32}=t;if(n===0)return e;let o=e.replace("0x","");if(o.length>n*2)throw new Eu({size:Math.ceil(o.length/2),targetSize:n,type:"Hex"});return`0x${o[r==="right"?"padEnd":"padStart"](n*2,"0")}`}var S1=new TextEncoder;function Dy(e){return e instanceof Uint8Array?e:typeof e=="string"?I1(e):C1(e)}function C1(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function I1(e,t={}){let{size:r}=t,n=e;r&&(li(e,r),n=Qt(e,r));let o=n.slice(2);o.length%2&&(o=`0${o}`);let s=o.length/2,i=new Uint8Array(s);for(let a=0,c=0;at.toString(16).padStart(2,"0"));function R1(e,t={}){let{strict:r=!1}=t;if(!e)throw new Au(e);if(typeof e!="string")throw new Au(e);if(r&&!/^0x[0-9a-fA-F]*$/.test(e))throw new Tu(e);if(!e.startsWith("0x"))throw new Tu(e)}function it(...e){return`0x${e.reduce((t,r)=>t+r.replace("0x",""),"")}`}function Su(e,t={}){let r=`0x${Number(e)}`;return typeof t.size=="number"?(li(r,t.size),br(r,t.size)):r}function ps(e,t={}){let r="";for(let o=0;os||o{let h=d,b=h.account?K(h.account):void 0,v={...h,data:h.abi?de(h):h.data,from:h.from??b?.address};return ot(v),lt(v)}),x=l.stateOverrides?Ho(l.stateOverrides):void 0;c.push({blockOverrides:m,calls:y,stateOverrides:x})}let p=(r?_(r):void 0)||n;return(await e.request({method:"eth_simulateV1",params:[{blockStateCalls:c,returnFullTransactions:s,traceTransfers:i,validation:a},p]})).map((l,m)=>({...ii(l),calls:l.calls.map((y,x)=>{let{abi:d,args:h,functionName:b,to:v}=o[m].calls[x],A=y.error?.data??y.returnData,k=BigInt(y.gasUsed),S=y.logs?.map(H=>We(H)),T=y.status==="0x1"?"success":"failure",B=d&&T==="success"&&A!=="0x"?st({abi:d,data:A,functionName:b}):null,P=(()=>{if(T==="success")return;let H;if(y.error?.data==="0x"?H=new dt:y.error&&(H=new Gt(y.error)),!!H)return ut(H,{abi:d??[],address:v,args:h,functionName:b??""})})();return{data:A,gasUsed:k,logs:S,status:T,...T==="success"?{result:B}:{error:P}}})}))}catch(c){let u=c,p=jr(u,{});throw p instanceof wt?u:p}}aa();function Wf(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function N1(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function yi(e,...t){if(!N1(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function Kf(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Gy(e,t){yi(e);let r=t.outputLen;if(e.length>>8&65280|e>>>24&255}function Zf(e){for(let t=0;te().update(Iu(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function Yy(e){let t=(n,o)=>e(o).update(Iu(n)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=n=>e(n),t}var Pu=BigInt(4294967295),Zy=BigInt(32);function M1(e,t=!1){return t?{h:Number(e&Pu),l:Number(e>>Zy&Pu)}:{h:Number(e>>Zy&Pu)|0,l:Number(e&Pu)|0}}function Jy(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let o=0;oe<>>32-r,Qy=(e,t,r)=>t<>>32-r,ex=(e,t,r)=>t<>>64-r,tx=(e,t,r)=>e<>>64-r;var ox=[],sx=[],ix=[],z1=BigInt(0),xi=BigInt(1),U1=BigInt(2),L1=BigInt(7),H1=BigInt(256),D1=BigInt(113);for(let e=0,t=xi,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],ox.push(2*(5*n+r)),sx.push((e+1)*(e+2)/2%64);let o=z1;for(let s=0;s<7;s++)t=(t<>L1)*D1)%H1,t&U1&&(o^=xi<<(xi<r>32?ex(e,t,r):Xy(e,t,r),nx=(e,t,r)=>r>32?tx(e,t,r):Qy(e,t,r);function V1(e,t=24){let r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let i=0;i<10;i++)r[i]=e[i]^e[i+10]^e[i+20]^e[i+30]^e[i+40];for(let i=0;i<10;i+=2){let a=(i+8)%10,c=(i+2)%10,u=r[c],p=r[c+1],f=rx(u,p,1)^r[a],l=nx(u,p,1)^r[a+1];for(let m=0;m<50;m+=10)e[i+m]^=f,e[i+m+1]^=l}let o=e[2],s=e[3];for(let i=0;i<24;i++){let a=sx[i],c=rx(o,s,a),u=nx(o,s,a),p=ox[i];o=e[p],s=e[p+1],e[p]=c,e[p+1]=u}for(let i=0;i<50;i+=10){for(let a=0;a<10;a++)r[a]=e[i+a];for(let a=0;a<10;a++)e[i+a]^=~r[(a+2)%10]&r[(a+4)%10]}e[0]^=j1[n],e[1]^=q1[n]}r.fill(0)}var ku=class e extends Cu{constructor(t,r,n,o=!1,s=24){if(super(),this.blockLen=t,this.suffix=r,this.outputLen=n,this.enableXOF=o,this.rounds=s,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,Wf(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=Wy(this.state)}keccak(){Yf||Zf(this.state32),V1(this.state32,this.rounds),Yf||Zf(this.state32),this.posOut=0,this.pos=0}update(t){Kf(this);let{blockLen:r,state:n}=this;t=Iu(t);let o=t.length;for(let s=0;s=n&&this.keccak();let i=Math.min(n-this.posOut,s-o);t.set(r.subarray(this.posOut,this.posOut+i),o),this.posOut+=i,o+=i}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return Wf(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(Gy(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){let{blockLen:r,suffix:n,outputLen:o,rounds:s,enableXOF:i}=this;return t||(t=new e(r,n,o,i,s)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=s,t.suffix=n,t.outputLen=o,t.enableXOF=i,t.destroyed=this.destroyed,t}},on=(e,t,r)=>Ky(()=>new ku(t,e,r)),iM=on(6,144,224/8),aM=on(6,136,256/8),cM=on(6,104,384/8),uM=on(6,72,512/8),pM=on(1,144,224/8),ax=on(1,136,256/8),fM=on(1,104,384/8),lM=on(1,72,512/8),cx=(e,t,r)=>Yy((n={})=>new ku(t,e,n.dkLen===void 0?r:n.dkLen,!0)),mM=cx(31,168,128/8),dM=cx(31,136,256/8);function Bu(e,t={}){let{as:r=typeof e=="string"?"Hex":"Bytes"}=t,n=ax(Dy(e));return r==="Bytes"?n:ps(n)}var Ru=class extends Map{constructor(t){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=t}get(t){let r=super.get(t);return super.has(t)&&r!==void 0&&(this.delete(t),super.set(t,r)),r}set(t,r){if(super.set(t,r),this.maxSize&&this.size>this.maxSize){let n=this.keys().next().value;n&&this.delete(n)}return this}};var G1={checksum:new Ru(8192)},_u=G1.checksum;var K1=/^0x[a-fA-F0-9]{40}$/;function ms(e,t={}){let{strict:r=!0}=t;if(!K1.test(e))throw new $u({address:e,cause:new Jf});if(r){if(e.toLowerCase()===e)return;if(px(e)!==e)throw new $u({address:e,cause:new Xf})}}function px(e){if(_u.has(e))return _u.get(e);ms(e,{strict:!1});let t=e.substring(2).toLowerCase(),r=Bu(jy(t),{as:"Bytes"}),n=t.split("");for(let s=0;s<40;s+=2)r[s>>1]>>4>=8&&n[s]&&(n[s]=n[s].toUpperCase()),(r[s>>1]&15)>=8&&n[s+1]&&(n[s+1]=n[s+1].toUpperCase());let o=`0x${n.join("")}`;return _u.set(e,o),o}function Nu(e,t={}){let{strict:r=!0}=t??{};try{return ms(e,{strict:r}),!0}catch{return!1}}var $u=class extends oe{constructor({address:t,cause:r}){super(`Address "${t}" is invalid.`,{cause:r}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}},Jf=class extends oe{constructor(){super("Address is not a 20 byte (40 hexadecimal character) value."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidInputError"})}},Xf=class extends oe{constructor(){super("Address does not match its checksum counterpart."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}};function Ou(e){let t=!0,r="",n=0,o="",s=!1;for(let i=0;iFu(Object.values(e)[s],o)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(n)?r==="number"||r==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(n)?r==="string"||e instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(n)?Array.isArray(e)&&e.every(o=>Fu(o,{...t,type:n.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function el(e,t,r){for(let n in e){let o=e[n],s=t[n];if(o.type==="tuple"&&s.type==="tuple"&&"components"in o&&"components"in s)return el(o.components,s.components,r[n]);let i=[o.type,s.type];if(i.includes("address")&&i.includes("bytes20")?!0:i.includes("address")&&i.includes("string")?Nu(r[n],{strict:!1}):i.includes("address")&&i.includes("bytes")?Nu(r[n],{strict:!1}):!1)return i}}function Mu(e,t={}){let{prepare:r=!0}=t,n=Array.isArray(e)?ia(e):typeof e=="string"?ia(e):e;return{...n,...r?{hash:ds(n)}:{}}}function fx(e,t,r){let{args:n=[],prepare:o=!0}=r??{},s=Gf(t,{strict:!1}),i=e.filter(u=>s?u.type==="function"||u.type==="error"?rl(u)===ls(t,0,4):u.type==="event"?ds(u)===t:!1:"name"in u&&u.name===t);if(i.length===0)throw new On({name:t});if(i.length===1)return{...i[0],...o?{hash:ds(i[0])}:{}};let a;for(let u of i){if(!("inputs"in u))continue;if(!n||n.length===0){if(!u.inputs||u.inputs.length===0)return{...u,...o?{hash:ds(u)}:{}};continue}if(!u.inputs||u.inputs.length===0||u.inputs.length!==n.length)continue;if(n.every((f,l)=>{let m="inputs"in u&&u.inputs[l];return m?Fu(f,m):!1})){if(a&&"inputs"in a&&a.inputs){let f=el(u.inputs,a.inputs,n);if(f)throw new tl({abiItem:u,type:f[0]},{abiItem:a,type:f[1]})}a=u}}let c=(()=>{if(a)return a;let[u,...p]=i;return{...u,overloads:p}})();if(!c)throw new On({name:t});return{...c,...o?{hash:ds(c)}:{}}}function rl(e){return ls(ds(e),0,4)}function Z1(e){let t=typeof e=="string"?e:dn(e);return Ou(t)}function ds(e){return typeof e!="string"&&"hash"in e&&e.hash?e.hash:Bu(fs(Z1(e)))}var tl=class extends oe{constructor(t,r){super("Found ambiguous types in overloaded ABI Items.",{metaMessages:[`\`${t.type}\` in \`${Ou(dn(t.abiItem))}\`, and`,`\`${r.type}\` in \`${Ou(dn(r.abiItem))}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.AmbiguityError"})}},On=class extends oe{constructor({name:t,data:r,type:n="item"}){let o=t?` with name "${t}"`:r?` with data "${r}"`:"";super(`ABI ${n}${o} not found.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.NotFoundError"})}};var mx=/^(.*)\[([0-9]*)\]$/,dx=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,zu=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,gM=2n**(8n-1n)-1n,wM=2n**(16n-1n)-1n,vM=2n**(24n-1n)-1n,EM=2n**(32n-1n)-1n,AM=2n**(40n-1n)-1n,TM=2n**(48n-1n)-1n,SM=2n**(56n-1n)-1n,CM=2n**(64n-1n)-1n,IM=2n**(72n-1n)-1n,PM=2n**(80n-1n)-1n,kM=2n**(88n-1n)-1n,BM=2n**(96n-1n)-1n,RM=2n**(104n-1n)-1n,_M=2n**(112n-1n)-1n,$M=2n**(120n-1n)-1n,NM=2n**(128n-1n)-1n,FM=2n**(136n-1n)-1n,OM=2n**(144n-1n)-1n,MM=2n**(152n-1n)-1n,zM=2n**(160n-1n)-1n,UM=2n**(168n-1n)-1n,LM=2n**(176n-1n)-1n,HM=2n**(184n-1n)-1n,DM=2n**(192n-1n)-1n,jM=2n**(200n-1n)-1n,qM=2n**(208n-1n)-1n,VM=2n**(216n-1n)-1n,GM=2n**(224n-1n)-1n,WM=2n**(232n-1n)-1n,KM=2n**(240n-1n)-1n,YM=2n**(248n-1n)-1n,ZM=2n**(256n-1n)-1n,JM=-(2n**(8n-1n)),XM=-(2n**(16n-1n)),QM=-(2n**(24n-1n)),ez=-(2n**(32n-1n)),tz=-(2n**(40n-1n)),rz=-(2n**(48n-1n)),nz=-(2n**(56n-1n)),oz=-(2n**(64n-1n)),sz=-(2n**(72n-1n)),iz=-(2n**(80n-1n)),az=-(2n**(88n-1n)),cz=-(2n**(96n-1n)),uz=-(2n**(104n-1n)),pz=-(2n**(112n-1n)),fz=-(2n**(120n-1n)),lz=-(2n**(128n-1n)),mz=-(2n**(136n-1n)),dz=-(2n**(144n-1n)),hz=-(2n**(152n-1n)),yz=-(2n**(160n-1n)),xz=-(2n**(168n-1n)),bz=-(2n**(176n-1n)),gz=-(2n**(184n-1n)),wz=-(2n**(192n-1n)),vz=-(2n**(200n-1n)),Ez=-(2n**(208n-1n)),Az=-(2n**(216n-1n)),Tz=-(2n**(224n-1n)),Sz=-(2n**(232n-1n)),Cz=-(2n**(240n-1n)),Iz=-(2n**(248n-1n)),Pz=-(2n**(256n-1n)),kz=2n**8n-1n,Bz=2n**16n-1n,Rz=2n**24n-1n,_z=2n**32n-1n,$z=2n**40n-1n,Nz=2n**48n-1n,Fz=2n**56n-1n,Oz=2n**64n-1n,Mz=2n**72n-1n,zz=2n**80n-1n,Uz=2n**88n-1n,Lz=2n**96n-1n,Hz=2n**104n-1n,Dz=2n**112n-1n,jz=2n**120n-1n,qz=2n**128n-1n,Vz=2n**136n-1n,Gz=2n**144n-1n,Wz=2n**152n-1n,Kz=2n**160n-1n,Yz=2n**168n-1n,Zz=2n**176n-1n,Jz=2n**184n-1n,Xz=2n**192n-1n,Qz=2n**200n-1n,eU=2n**208n-1n,tU=2n**216n-1n,rU=2n**224n-1n,nU=2n**232n-1n,oU=2n**240n-1n,sU=2n**248n-1n,iU=2n**256n-1n;function hx({checksumAddress:e,parameters:t,values:r}){let n=[];for(let o=0;o0?it(u,c):u}}if(i)return{dynamic:!0,encoded:c}}return{dynamic:!1,encoded:it(...a.map(({encoded:c})=>c))}}function ew(e,{type:t}){let[,r]=t.split("bytes"),n=Le(e);if(!r){let o=e;return n%32!==0&&(o=Qt(o,Math.ceil((e.length-2)/2/32)*32)),{dynamic:!0,encoded:it(br(Se(n,{size:32})),o)}}if(n!==Number.parseInt(r))throw new bi({expectedSize:Number.parseInt(r),value:e});return{dynamic:!1,encoded:Qt(e)}}function tw(e){if(typeof e!="boolean")throw new oe(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:br(Su(e))}}function rw(e,{signed:t,size:r}){if(typeof r=="number"){let n=2n**(BigInt(r)-(t?1n:0n))-1n,o=t?-n-1n:0n;if(e>n||ei))}}function sw(e){let t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}function ju(e,t,r){let{checksumAddress:n=!1}=r??{};if(e.length!==t.length)throw new Du({expectedLength:e.length,givenLength:t.length});let o=hx({checksumAddress:n,parameters:e,values:t}),s=Uu(o);return s.length===0?"0x":s}function sl(e,t){if(e.length!==t.length)throw new Du({expectedLength:e.length,givenLength:t.length});let r=[];for(let n=0;n0?ju(n.inputs,t[0]):void 0;return s?it(o,s):o}function Mn(e,t={}){return Mu(e,t)}function uw(e,t,r){let n=fx(e,t,r);if(n.type!=="function")throw new On({name:t,type:"function"});return n}function pw(e){return rl(e)}ve();var gx="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",Nt="0x0000000000000000000000000000000000000000";Nc();W();ct();var lw="0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033";async function wx(e,t){let{blockNumber:r,blockTag:n,calls:o,stateOverrides:s,traceAssetChanges:i,traceTransfers:a,validation:c}=t,u=t.account?K(t.account):void 0;if(i&&!u)throw new g("`account` is required when `traceAssetChanges` is true");let p=u?yx(xx("constructor(bytes, bytes)"),{bytecode:$c,args:[lw,bx(Mn("function getBalance(address)"),[u.address])]}):void 0,f=i?await Promise.all(t.calls.map(async F=>{if(!F.data&&!F.abi)return;let{accessList:Q}=await iu(e,{account:u.address,...F,data:F.abi?de(F):F.data});return Q.map(({address:fe,storageKeys:w})=>w.length>0?fe:null)})).then(F=>F.flat().filter(Boolean)):[],l=s?.map(F=>F.address===u?.address?{...F,nonce:0}:F),m=await hi(e,{blockNumber:r,blockTag:n,blocks:[...i?[{calls:[{data:p}],stateOverrides:s},{calls:f.map((F,Q)=>({abi:[Mn("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[u.address],to:F,from:Nt,nonce:Q})),stateOverrides:[{address:Nt,nonce:0}]}]:[],{calls:[...o,{}].map((F,Q)=>({...F,from:u?.address,nonce:Q})),stateOverrides:l},...i?[{calls:[{data:p}]},{calls:f.map((F,Q)=>({abi:[Mn("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[u.address],to:F,from:Nt,nonce:Q})),stateOverrides:[{address:Nt,nonce:0}]},{calls:f.map((F,Q)=>({to:F,abi:[Mn("function decimals() returns (uint256)")],functionName:"decimals",from:Nt,nonce:Q})),stateOverrides:[{address:Nt,nonce:0}]},{calls:f.map((F,Q)=>({to:F,abi:[Mn("function tokenURI(uint256) returns (string)")],functionName:"tokenURI",args:[0n],from:Nt,nonce:Q})),stateOverrides:[{address:Nt,nonce:0}]},{calls:f.map((F,Q)=>({to:F,abi:[Mn("function symbol() returns (string)")],functionName:"symbol",from:Nt,nonce:Q})),stateOverrides:[{address:Nt,nonce:0}]}]:[]],traceTransfers:a,validation:c}),y=i?m[2]:m[0],[x,d,,h,b,v,A,k]=i?m:[],{calls:S,...T}=y,B=S.slice(0,-1)??[],P=x?.calls??[],H=d?.calls??[],U=[...P,...H].map(F=>F.status==="success"?he(F.data):null),L=h?.calls??[],ne=b?.calls??[],R=[...L,...ne].map(F=>F.status==="success"?he(F.data):null),O=(v?.calls??[]).map(F=>F.status==="success"?F.result:null),N=(k?.calls??[]).map(F=>F.status==="success"?F.result:null),q=(A?.calls??[]).map(F=>F.status==="success"?F.result:null),D=[];for(let[F,Q]of R.entries()){let fe=U[F];if(typeof Q!="bigint"||typeof fe!="bigint")continue;let w=O[F-1],I=N[F-1],G=q[F-1],Z=F===0?{address:gx,decimals:18,symbol:"ETH"}:{address:f[F-1],decimals:G||w?Number(w??1):void 0,symbol:I??void 0};D.some(Y=>Y.token.address===Z.address)||D.push({token:Z,value:{pre:fe,post:Q,diff:Q-fe}})}return{assetChanges:D,block:T,results:B}}Jr();Nc();Nr();Mc();bn();Yo();St();V();xf();He();ze();function vx({r:e,s:t,to:r="hex",v:n,yParity:o}){let s=(()=>{if(o===0||o===1)return o;if(n&&(n===27n||n===28n||n>=35n))return n%2n===0n?1:0;throw new Error("Invalid `v` or `yParity` value")})(),i=`0x${new kn.Signature(he(e),he(t)).toCompactHex()}${s===0?"1b":"1c"}`;return r==="hex"?i:Pe(i)}rs();async function hs(e,t){let{address:r,factory:n,factoryData:o,hash:s,signature:i,universalSignatureVerifierAddress:a=e.chain?.contracts?.universalSignatureVerifier?.address,...c}=t,u=we(i)?i:typeof i=="object"&&"r"in i&&"s"in i?vx(i):te(i),p=await(async()=>!n&&!o||Sy(u)?u:Cy({address:n,data:o,signature:u}))();try{let f=a?{to:a,data:de({abi:Tf,functionName:"isValidSig",args:[r,s,p]}),...c}:{data:_n({abi:Tf,args:[r,s,p],bytecode:Eh}),...c},{data:l}=await $(e,Zt,"call")(f);return Sp(l??"0x0")}catch(f){try{if(Yt($a(r),await dc({hash:s,signature:i})))return!0}catch{}if(f instanceof io)return!1;throw f}}async function Ex(e,{address:t,message:r,factory:n,factoryData:o,signature:s,...i}){let a=yu(r);return hs(e,{address:t,factory:n,factoryData:o,hash:a,signature:s,...i})}async function Ax(e,t){let{address:r,factory:n,factoryData:o,signature:s,message:i,primaryType:a,types:c,domain:u,...p}=t,f=fy({message:i,primaryType:a,types:c,domain:u});return hs(e,{address:r,factory:n,factoryData:o,hash:f,signature:s,...p})}_t();Uc();qe();He();qe();function qu(e,{emitOnBegin:t=!1,emitMissed:r=!1,onBlockNumber:n,onError:o,poll:s,pollingInterval:i=e.pollingInterval}){let a=typeof s<"u"?s:!(e.transport.type==="webSocket"||e.transport.type==="fallback"&&e.transport.transports[0].config.type==="webSocket"),c;return a?(()=>{let f=X(["watchBlockNumber",e.uid,t,r,i]);return Ke(f,{onBlockNumber:n,onError:o},l=>At(async()=>{try{let m=await $(e,Jt,"getBlockNumber")({cacheTime:0});if(c){if(m===c)return;if(m-c>1&&r)for(let y=c+1n;yc)&&(l.onBlockNumber(m,c),c=m)}catch(m){l.onError?.(m)}},{emitOnBegin:t,interval:i}))})():(()=>{let f=X(["watchBlockNumber",e.uid,t,r]);return Ke(f,{onBlockNumber:n,onError:o},l=>{let m=!0,y=()=>m=!1;return(async()=>{try{let x=(()=>{if(e.transport.type==="fallback"){let h=e.transport.transports.find(b=>b.config.type==="webSocket");return h?h.value:e.transport}return e.transport})(),{unsubscribe:d}=await x.subscribe({params:["newHeads"],onData(h){if(!m)return;let b=he(h.result?.number);l.onBlockNumber(b,c),c=b},onError(h){l.onError?.(h)}});y=d,m||y()}catch(x){o?.(x)}})(),()=>y()})})()}async function Tx(e,{confirmations:t=1,hash:r,onReplaced:n,pollingInterval:o=e.pollingInterval,retryCount:s=6,retryDelay:i=({count:c})=>~~(1<x(new Xa({hash:r})),a):void 0,h=Ke(c,{onReplaced:n,resolve:y,reject:x},b=>{let v=$(e,qu,"watchBlockNumber")({emitMissed:!0,emitOnBegin:!0,poll:!0,pollingInterval:o,async onBlockNumber(A){let k=T=>{clearTimeout(d),v(),T(),h()},S=A;if(!l)try{if(f){if(t>1&&(!f.blockNumber||S-f.blockNumber+1nb.resolve(f));return}if(u||(l=!0,await pi(async()=>{u=await $(e,us,"getTransaction")({hash:r}),u.blockNumber&&(S=u.blockNumber)},{delay:i,retryCount:s}),l=!1),f=await $(e,fi,"getTransactionReceipt")({hash:r}),t>1&&(!f.blockNumber||S-f.blockNumber+1nb.resolve(f))}catch(T){if(T instanceof oo||T instanceof so){if(!u){l=!1;return}try{p=u,l=!0;let B=await pi(()=>$(e,Ge,"getBlock")({blockNumber:S,includeTransactions:!0}),{delay:i,retryCount:s,shouldRetry:({error:U})=>U instanceof Do});l=!1;let P=B.transactions.find(({from:U,nonce:L})=>U===p.from&&L===p.nonce);if(!P||(f=await $(e,fi,"getTransactionReceipt")({hash:P.hash}),t>1&&(!f.blockNumber||S-f.blockNumber+1n{b.onReplaced?.({reason:H,replacedTransaction:p,transaction:P,transactionReceipt:f}),b.resolve(f)})}catch(B){k(()=>b.reject(B))}}else k(()=>b.reject(T))}}})});return m}qe();function Sx(e,{blockTag:t="latest",emitMissed:r=!1,emitOnBegin:n=!1,onBlock:o,onError:s,includeTransactions:i,poll:a,pollingInterval:c=e.pollingInterval}){let u=typeof a<"u"?a:!(e.transport.type==="webSocket"||e.transport.type==="fallback"&&e.transport.transports[0].config.type==="webSocket"),p=i??!1,f;return u?(()=>{let y=X(["watchBlocks",e.uid,t,r,n,p,c]);return Ke(y,{onBlock:o,onError:s},x=>At(async()=>{try{let d=await $(e,Ge,"getBlock")({blockTag:t,includeTransactions:p});if(d.number&&f?.number){if(d.number===f.number)return;if(d.number-f.number>1&&r)for(let h=f?.number+1n;hf.number)&&(x.onBlock(d,f),f=d)}catch(d){x.onError?.(d)}},{emitOnBegin:n,interval:c}))})():(()=>{let y=!0,x=!0,d=()=>y=!1;return(async()=>{try{n&&$(e,Ge,"getBlock")({blockTag:t,includeTransactions:p}).then(v=>{y&&x&&(o(v,void 0),x=!1)});let h=(()=>{if(e.transport.type==="fallback"){let v=e.transport.transports.find(A=>A.config.type==="webSocket");return v?v.value:e.transport}return e.transport})(),{unsubscribe:b}=await h.subscribe({params:["newHeads"],async onData(v){if(!y)return;let A=await $(e,Ge,"getBlock")({blockNumber:v.blockNumber,includeTransactions:p}).catch(()=>{});y&&(o(A,f),x=!1,f=A)},onError(v){s?.(v)}});d=b,y||d()}catch(h){s?.(h)}})(),()=>d()})()}qe();ye();Zs();function Cx(e,{address:t,args:r,batch:n=!0,event:o,events:s,fromBlock:i,onError:a,onLogs:c,poll:u,pollingInterval:p=e.pollingInterval,strict:f}){let l=typeof u<"u"?u:typeof i=="bigint"?!0:!(e.transport.type==="webSocket"||e.transport.type==="fallback"&&e.transport.transports[0].config.type==="webSocket"),m=f??!1;return l?(()=>{let d=X(["watchEvent",t,r,n,e.uid,o,p,i]);return Ke(d,{onLogs:c,onError:a},h=>{let b;i!==void 0&&(b=i-1n);let v,A=!1,k=At(async()=>{if(!A){try{v=await $(e,au,"createEventFilter")({address:t,args:r,event:o,events:s,strict:m,fromBlock:i})}catch{}A=!0;return}try{let S;if(v)S=await $(e,Xr,"getFilterChanges")({filter:v});else{let T=await $(e,Jt,"getBlockNumber")({});b&&b!==T?S=await $(e,Xo,"getLogs")({address:t,args:r,event:o,events:s,fromBlock:b+1n,toBlock:T}):S=[],b=T}if(S.length===0)return;if(n)h.onLogs(S);else for(let T of S)h.onLogs([T])}catch(S){v&&S instanceof Wt&&(A=!1),h.onError?.(S)}},{emitOnBegin:!0,interval:p});return async()=>{v&&await $(e,Qr,"uninstallFilter")({filter:v}),k()}})})():(()=>{let d=!0,h=()=>d=!1;return(async()=>{try{let b=(()=>{if(e.transport.type==="fallback"){let S=e.transport.transports.find(T=>T.config.type==="webSocket");return S?S.value:e.transport}return e.transport})(),v=s??(o?[o]:void 0),A=[];v&&(A=[v.flatMap(T=>qt({abi:[T],eventName:T.name,args:r}))],o&&(A=A[0]));let{unsubscribe:k}=await b.subscribe({params:["logs",{address:t,topics:A}],onData(S){if(!d)return;let T=S.result;try{let{eventName:B,args:P}=Zo({abi:v??[],data:T.data,topics:T.topics,strict:m}),H=We(T,{args:P,eventName:B});c([H])}catch(B){let P,H;if(B instanceof It||B instanceof Ut){if(f)return;P=B.abiItem.name,H=B.abiItem.inputs?.some(L=>!("name"in L&&L.name))}let U=We(T,{args:H?[]:{},eventName:P});c([U])}},onError(S){a?.(S)}});h=k,d||h()}catch(b){a?.(b)}})(),()=>h()})()}qe();function Ix(e,{batch:t=!0,onError:r,onTransactions:n,poll:o,pollingInterval:s=e.pollingInterval}){return(typeof o<"u"?o:e.transport.type!=="webSocket")?(()=>{let u=X(["watchPendingTransactions",e.uid,t,s]);return Ke(u,{onTransactions:n,onError:r},p=>{let f,l=At(async()=>{try{if(!f)try{f=await $(e,cu,"createPendingTransactionFilter")({});return}catch(y){throw l(),y}let m=await $(e,Xr,"getFilterChanges")({filter:f});if(m.length===0)return;if(t)p.onTransactions(m);else for(let y of m)p.onTransactions([y])}catch(m){p.onError?.(m)}},{emitOnBegin:!0,interval:s});return async()=>{f&&await $(e,Qr,"uninstallFilter")({filter:f}),l()}})})():(()=>{let u=!0,p=()=>u=!1;return(async()=>{try{let{unsubscribe:f}=await e.transport.subscribe({params:["newPendingTransactions"],onData(l){if(!u)return;let m=l.result;n([m])},onError(l){r?.(l)}});p=f,u||p()}catch(f){r?.(f)}})(),()=>p()})()}function Px(e){let{scheme:t,statement:r,...n}=e.match(mw)?.groups??{},{chainId:o,expirationTime:s,issuedAt:i,notBefore:a,requestId:c,...u}=e.match(dw)?.groups??{},p=e.split("Resources:")[1]?.split(` +- `).slice(1);return{...n,...u,...o?{chainId:Number(o)}:{},...s?{expirationTime:new Date(s)}:{},...i?{issuedAt:new Date(i)}:{},...a?{notBefore:new Date(a)}:{},...c?{requestId:c}:{},...p?{resources:p}:{},...t?{scheme:t}:{},...r?{statement:r}:{}}}var mw=/^(?:(?[a-zA-Z][a-zA-Z0-9+-.]*):\/\/)?(?[a-zA-Z0-9+-.]*(?::[0-9]{1,5})?) (?:wants you to sign in with your Ethereum account:\n)(?
0x[a-fA-F0-9]{40})\n\n(?:(?.*)\n\n)?/,dw=/(?:URI: (?.+))\n(?:Version: (?.+))\n(?:Chain ID: (?\d+))\n(?:Nonce: (?[a-zA-Z0-9]+))\n(?:Issued At: (?.+))(?:\nExpiration Time: (?.+))?(?:\nNot Before: (?.+))?(?:\nRequest ID: (?.+))?/;Yo();function kx(e){let{address:t,domain:r,message:n,nonce:o,scheme:s,time:i=new Date}=e;if(r&&n.domain!==r||o&&n.nonce!==o||s&&n.scheme!==s||n.expirationTime&&i>=n.expirationTime||n.notBefore&&iZt(e,t),createAccessList:t=>iu(e,t),createBlockFilter:()=>ny(e),createContractEventFilter:t=>Oa(e,t),createEventFilter:t=>au(e,t),createPendingTransactionFilter:()=>cu(e),estimateContractGas:t=>hh(e,t),estimateGas:t=>Ko(e,t),getBalance:t=>kc(e,t),getBlobBaseFee:()=>oy(e),getBlock:t=>Ge(e,t),getBlockNumber:t=>Jt(e,t),getBlockTransactionCount:t=>sy(e,t),getBytecode:t=>Hf(e,t),getChainId:()=>vt(e),getCode:t=>Hf(e,t),getContractEvents:t=>Bc(e,t),getEip712Domain:t=>iy(e,t),getEnsAddress:t=>Kh(e,t),getEnsAvatar:t=>ey(e,t),getEnsName:t=>ty(e,t),getEnsResolver:t=>ry(e,t),getEnsText:t=>su(e,t),getFeeHistory:t=>cy(e,t),estimateFeesPerGas:t=>ph(e,t),getFilterChanges:t=>Xr(e,t),getFilterLogs:t=>uy(e,t),getGasPrice:()=>jo(e),getLogs:t=>Xo(e,t),getProof:t=>ky(e,t),estimateMaxPriorityFeePerGas:t=>uh(e,t),getStorageAt:t=>By(e,t),getTransaction:t=>us(e,t),getTransactionConfirmations:t=>Ry(e,t),getTransactionCount:t=>qo(e,t),getTransactionReceipt:t=>fi(e,t),multicall:t=>_y(e,t),prepareTransactionRequest:t=>Yr(e,t),readContract:t=>je(e,t),sendRawTransaction:t=>ns(e,t),simulate:t=>hi(e,t),simulateBlocks:t=>hi(e,t),simulateCalls:t=>wx(e,t),simulateContract:t=>Nh(e,t),verifyMessage:t=>Ex(e,t),verifySiweMessage:t=>Bx(e,t),verifyTypedData:t=>Ax(e,t),uninstallFilter:t=>Qr(e,t),waitForTransactionReceipt:t=>Tx(e,t),watchBlocks:t=>Sx(e,t),watchBlockNumber:t=>qu(e,t),watchContractEvent:t=>zh(e,t),watchEvent:t=>Cx(e,t),watchPendingTransactions:t=>Ix(e,t)}}function il(e){let{key:t="public",name:r="Public Client"}=e;return Jc({...e,key:t,name:r,type:"publicClient"}).extend(Rx)}V();async function _x(e,{chain:t}){let{id:r,name:n,nativeCurrency:o,rpcUrls:s,blockExplorers:i}=t;await e.request({method:"wallet_addEthereumChain",params:[{chainId:_(r),chainName:n,nativeCurrency:o,rpcUrls:s.default.http,blockExplorerUrls:i?Object.values(i).map(({url:a})=>a):void 0}]},{dedupe:!0,retryCount:0})}Mc();function $x(e,t){let{abi:r,args:n,bytecode:o,...s}=t,i=_n({abi:r,args:n,bytecode:o});return os(e,{...s,...s.authorizationList?{to:null}:{},data:i})}bn();async function Nx(e){return e.account?.type==="local"?[e.account.address]:(await e.request({method:"eth_accounts"},{dedupe:!0})).map(r=>sr(r))}ve();V();async function Fx(e,t={}){let{account:r=e.account,chainId:n}=t,o=r?K(r):void 0,s=n?[o?.address,[_(n)]]:[o?.address],i=await e.request({method:"wallet_getCapabilities",params:s}),a={};for(let[c,u]of Object.entries(i))a[Number(c)]=u;return typeof n=="number"?a[n]:a}async function Ox(e){return await e.request({method:"wallet_getPermissions"},{dedupe:!0})}ve();Yo();async function Vu(e,t){let{account:r=e.account,chainId:n,nonce:o}=t;if(!r)throw new Ue({docsPath:"/docs/eip7702/prepareAuthorization"});let s=K(r),i=(()=>{if(t.executor)return t.executor==="self"?t.executor:K(t.executor)})(),a={address:t.contractAddress??t.address,chainId:n,nonce:o};return typeof a.chainId>"u"&&(a.chainId=e.chain?.id??await $(e,vt,"getChainId")({})),typeof a.nonce>"u"&&(a.nonce=await $(e,qo,"getTransactionCount")({address:s.address,blockTag:"pending"}),(i==="self"||i?.address&&Yt(i.address,s.address))&&(a.nonce+=1)),a}bn();async function Mx(e){return(await e.request({method:"eth_requestAccounts"},{dedupe:!0,retryCount:0})).map(r=>$a(r))}async function zx(e,t){return e.request({method:"wallet_requestPermissions",params:[t]},{retryCount:0})}ve();ct();V();async function Ux(e,t){let{account:r=e.account,chain:n=e.chain,forceAtomic:o=!1,id:s,version:i="2.0.0"}=t;if(typeof r>"u")throw new Ue({docsPath:"/docs/actions/wallet/sendCalls"});let a=r?K(r):null,c=t.calls.map(u=>{let p=u;return{data:p.abi?de({abi:p.abi,functionName:p.functionName,args:p.args}):p.data,to:p.to,value:p.value?_(p.value):void 0}});try{let u=await e.request({method:"wallet_sendCalls",params:[{atomicRequired:o,calls:c,capabilities:hw(t.capabilities),chainId:_(n.id),from:a?.address,id:s,version:i}]},{retryCount:0});return typeof u=="string"?{id:u}:u}catch(u){throw Gc(u,{...t,account:a,chain:t.chain})}}function hw(e){let t=e?.paymasterService?Object.entries(e.paymasterService).reduce((r,[n,o])=>({...r??{},[_(Number(n))]:o}),{}):void 0;return{...e,...t?{paymasterService:t}:{}}}async function Lx(e,t){let{id:r}=t;await e.request({method:"wallet_showCallsStatus",params:[r]})}ve();async function Hx(e,t){let{account:r=e.account}=t;if(!r)throw new Ue({docsPath:"/docs/eip7702/signAuthorization"});let n=K(r);if(!n.signAuthorization)throw new en({docsPath:"/docs/eip7702/signAuthorization",metaMessages:["The `signAuthorization` Action does not support JSON-RPC Accounts."],type:n.type});let o=await Vu(e,t);return n.signAuthorization(o)}ve();V();async function Dx(e,{account:t=e.account,message:r}){if(!t)throw new Ue({docsPath:"/docs/actions/wallet/signMessage"});let n=K(t);if(n.signMessage)return n.signMessage({message:r});let o=typeof r=="string"?Lt(r):r.raw instanceof Uint8Array?z(r.raw):r.raw;return e.request({method:"personal_sign",params:[o,n.address]},{retryCount:0})}ve();V();Vr();Wr();async function jx(e,t){let{account:r=e.account,chain:n=e.chain,...o}=t;if(!r)throw new Ue({docsPath:"/docs/actions/wallet/signTransaction"});let s=K(r);ot({account:s,...t});let i=await $(e,vt,"getChainId")({});n!==null&&Vc({currentChainId:i,chain:n});let c=(n?.formatters||e.chain?.formatters)?.transactionRequest?.format||lt;return s.signTransaction?s.signTransaction({...o,chainId:i},{serializer:e.chain?.serializers?.transaction}):await e.request({method:"eth_signTransaction",params:[{...c(o),chainId:_(i),from:s.address}]},{retryCount:0})}ve();async function qx(e,t){let{account:r=e.account,domain:n,message:o,primaryType:s}=t;if(!r)throw new Ue({docsPath:"/docs/actions/wallet/signTypedData"});let i=K(r),a={EIP712Domain:du({domain:n}),...t.types};if(mu({domain:n,message:o,primaryType:s,types:a}),i.signTypedData)return i.signTypedData({domain:n,message:o,primaryType:s,types:a});let c=yy({domain:n,message:o,primaryType:s,types:a});return e.request({method:"eth_signTypedData_v4",params:[i.address,c]},{retryCount:0})}V();async function Vx(e,{id:t}){await e.request({method:"wallet_switchEthereumChain",params:[{chainId:_(t)}]},{retryCount:0})}async function Gx(e,t){return await e.request({method:"wallet_watchAsset",params:t},{retryCount:0})}function Wx(e){return{addChain:t=>_x(e,t),deployContract:t=>$x(e,t),getAddresses:()=>Nx(e),getCallsStatus:t=>Wc(e,t),getCapabilities:t=>Fx(e,t),getChainId:()=>vt(e),getPermissions:()=>Ox(e),prepareAuthorization:t=>Vu(e,t),prepareTransactionRequest:t=>Yr(e,t),requestAddresses:()=>Mx(e),requestPermissions:t=>zx(e,t),sendCalls:t=>Ux(e,t),sendRawTransaction:t=>ns(e,t),sendTransaction:t=>os(e,t),showCallsStatus:t=>Lx(e,t),signAuthorization:t=>Hx(e,t),signMessage:t=>Dx(e,t),signTransaction:t=>jx(e,t),signTypedData:t=>qx(e,t),switchChain:t=>Vx(e,t),waitForCallsStatus:t=>Hh(e,t),watchAsset:t=>Gx(e,t),writeContract:t=>Uh(e,t)}}function al(e){let{key:t="wallet",name:r="Wallet Client",transport:n}=e;return Jc({...e,key:t,name:r,transport:n,type:"walletClient"}).extend(Wx)}Ks();var Kx={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}};Rt();yt();et();V();function Yx(e,t){return xw(e)?yw(e):vy(e,t)}function yw(e){bw(e);let{sourceHash:t,data:r,from:n,gas:o,isSystemTx:s,mint:i,to:a,value:c}=e,u=[t,n,a??"0x",i?z(i):"0x",c?z(c):"0x",o?z(o):"0x",s?"0x1":"0x",r??"0x"];return Te(["0x7e",ft(u)])}function xw(e){return e.type==="deposit"||typeof e.sourceHash<"u"}function bw(e){let{from:t,to:r}=e;if(t&&!re(t))throw new ae({address:t});if(r&&!re(r))throw new ae({address:r})}var Zx={estimateFeesPerGas:async e=>{if(!e.request?.feeCurrency)return null;let[t,r]=await Promise.all([gw(e.client,e.request.feeCurrency),ww(e.client,e.request.feeCurrency)]);return{maxFeePerGas:e.multiply(t-r)+r,maxPriorityFeePerGas:r}}};async function gw(e,t){let r=await e.request({method:"eth_gasPrice",params:[t]});return BigInt(r)}async function ww(e,t){let r=await e.request({method:"eth_maxPriorityFeePerGas",params:[t]});return BigInt(r)}He();Vr();hn();function cl(e){return e===0||e===0n||e===void 0||e===null||e==="0"||e===""||typeof e=="string"&&(Ie(e).toLowerCase()==="0x"||Ie(e).toLowerCase()==="0x00")}function ys(e){return!cl(e)}function vw(e){return typeof e.maxFeePerGas<"u"&&typeof e.maxPriorityFeePerGas<"u"}function Gu(e){return e.type==="cip64"?!0:vw(e)&&ys(e.feeCurrency)}var Jx={block:ch({format(e){return{transactions:e.transactions?.map(r=>typeof r=="string"?r:{...Bn(r),...r.gatewayFee?{gatewayFee:he(r.gatewayFee),gatewayFeeRecipient:r.gatewayFeeRecipient}:{},feeCurrency:r.feeCurrency}),...e.randomness?{randomness:e.randomness}:{}}}}),transaction:ah({format(e){if(e.type==="0x7e")return{isSystemTx:e.isSystemTx,mint:e.mint?he(e.mint):void 0,sourceHash:e.sourceHash,type:"deposit"};let t={feeCurrency:e.feeCurrency};return e.type==="0x7b"?t.type="cip64":(e.type==="0x7c"&&(t.type="cip42"),t.gatewayFee=e.gatewayFee?he(e.gatewayFee):null,t.gatewayFeeRecipient=e.gatewayFeeRecipient),t}}),transactionRequest:sh({format(e){let t={};return e.feeCurrency&&(t.feeCurrency=e.feeCurrency),Gu(e)&&(t.type="0x7b"),t}})};gc();Rt();W();Qo();hr();yt();et();V();function Ew(e,t){return Gu(e)?Aw(e,t):Yx(e,t)}var Xx={transaction:Ew};function Aw(e,t){Sw(e);let{chainId:r,gas:n,nonce:o,to:s,value:i,maxFeePerGas:a,maxPriorityFeePerGas:c,accessList:u,feeCurrency:p,data:f}=e,l=[z(r),o?z(o):"0x",c?z(c):"0x",a?z(a):"0x",n?z(n):"0x",s??"0x",i?z(i):"0x",f??"0x",Nn(u),p,...nn(e,t)];return Te(["0x7b",ft(l)])}var Tw=Gr;function Sw(e){let{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:o,to:s,feeCurrency:i}=e;if(t<=0)throw new yr({chainId:t});if(s&&!re(s))throw new ae({address:s});if(n)throw new g("`gasPrice` is not a valid CIP-64 Transaction attribute.");if(ys(o)&&o>Tw)throw new nt({maxFeePerGas:o});if(ys(r)&&ys(o)&&r>o)throw new gt({maxFeePerGas:o,maxPriorityFeePerGas:r});if(ys(i)&&!re(i))throw new g("`feeCurrency` MUST be a token address for CIP-64 transactions.");if(cl(i))throw new g("`feeCurrency` must be provided for CIP-64 transactions.")}var Qx={contracts:Kx,formatters:Jx,serializers:Xx,fees:Zx};var Wu=py({...Qx,id:42220,name:"Celo",nativeCurrency:{decimals:18,name:"CELO",symbol:"CELO"},rpcUrls:{default:{http:["https://forno.celo.org"]}},blockExplorers:{default:{name:"Celo Explorer",url:"https://celoscan.io",apiUrl:"https://api.celoscan.io/api"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:13112599}},testnet:!1});B0();F0();var Uw=Object.create,O0=Object.defineProperty,Lw=Object.getOwnPropertyDescriptor,M0=Object.getOwnPropertyNames,Hw=Object.getPrototypeOf,Dw=Object.prototype.hasOwnProperty,bl=(e,t)=>function(){return t||(0,e[M0(e)[0]])((t={exports:{}}).exports,t),t.exports},jw=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of M0(t))!Dw.call(e,o)&&o!==r&&O0(e,o,{get:()=>t[o],enumerable:!(n=Lw(t,o))||n.enumerable});return e},qw=(e,t,r)=>(r=e!=null?Uw(Hw(e)):{},jw(O0(r,"default",{value:e,enumerable:!0}),e)),Vw=bl({"../../node_modules/react/cjs/react.production.min.js"(e){var t=Symbol.for("react.element"),r=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),i=Symbol.for("react.provider"),a=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),l=Symbol.iterator;function m(w){return w===null||typeof w!="object"?null:(w=l&&w[l]||w["@@iterator"],typeof w=="function"?w:null)}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},x=Object.assign,d={};function h(w,I,G){this.props=w,this.context=I,this.refs=d,this.updater=G||y}h.prototype.isReactComponent={},h.prototype.setState=function(w,I){if(typeof w!="object"&&typeof w!="function"&&w!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,w,I,"setState")},h.prototype.forceUpdate=function(w){this.updater.enqueueForceUpdate(this,w,"forceUpdate")};function b(){}b.prototype=h.prototype;function v(w,I,G){this.props=w,this.context=I,this.refs=d,this.updater=G||y}var A=v.prototype=new b;A.constructor=v,x(A,h.prototype),A.isPureReactComponent=!0;var k=Array.isArray,S=Object.prototype.hasOwnProperty,T={current:null},B={key:!0,ref:!0,__self:!0,__source:!0};function P(w,I,G){var Z,Y={},le=null,se=null;if(I!=null)for(Z in I.ref!==void 0&&(se=I.ref),I.key!==void 0&&(le=""+I.key),I)S.call(I,Z)&&!B.hasOwnProperty(Z)&&(Y[Z]=I[Z]);var ie=arguments.length-2;if(ie===1)Y.children=G;else if(10&&tBigInt(0)){let i=BigInt(31536e3);s=this.toEtherNumber(this.cachedRewardRate*i)*100/this.toEtherNumber(e)}return{totalStaked:e,annualAPR:s}}async getUserStats(){let e=await this.getAccount(),[t,r,n]=await Promise.all([this.publicClient.readContract({...tp,functionName:"balanceOf",args:[e]}),this.publicClient.readContract({...an,functionName:"balanceOf",args:[e]}),this.publicClient.readContract({...an,functionName:"earned",args:[e]})]),o=BigInt(0);if(r>BigInt(0)&&this.totalStaked==BigInt(0)){await this.getGlobalStats();let s=BigInt(7*24*60*60);o=this.cachedRewardRate*s*r/this.totalStaked}return{walletBalance:t,currentStake:r,unclaimedRewards:n,userWeeklyRewards:o}}async stake(e,t){if(e<=BigInt(0))throw new Error("Amount must be greater than zero");let r=await this.getAccount();if(await this.publicClient.readContract({...tp,functionName:"balanceOf",args:[r]})this.refreshData(),3e4),this.refreshData()}disconnectedCallback(){this.interval&&clearInterval(this.interval)}updated(r){r.has("web3Provider")&&this.refreshData(),(r.has("walletBalance")||r.has("currentStake"))&&this.validateInput()}render(){let r=!!(this.web3Provider&&this.web3Provider.isConnected&&this.userAddress);return Er` +
+
+ +

Gooddollar Savings

+
+ +
+ + +
+ +
+
+ + ${this.activeTab==="stake"?`Wallet Balance: ${this.isLoading?"Loading...":this.formatBigInt(this.walletBalance)}`:`Current Stake: ${this.isLoading?"Loading...":this.formatBigInt(this.currentStake)}`} + +
+
+ + +
+ ${this.inputError?Er`
${this.inputError}
`:""} +
+ +
+ Unclaimed Rewards +
+ + ${this.isLoading?"Loading...":this.formatBigInt(this.unclaimedRewards)} +
+
+ + ${this.transactionError?Er`
${this.transactionError}
`:""} + + ${r?Er` + + `:Er` + + `} + +
+

Staking Statistics

+ +
+ Total G$ Staked + ${this.isLoading?"Loading...":this.formatBigInt(this.totalStaked)} +
+ + ${r?Er` +
+ Your G$ Stake Pool Share + ${this.isLoading?"Loading...":this.formatBigInt(this.currentStake)} +
+ +
+ Your Weekly Rewards + ${this.isLoading?"Loading...":this.formatBigInt(this.userWeeklyRewards)} +
+ `:""} + +
+ Annual Stake APR + ${this.isLoading?"Loading...":this.formatPercent(this.annualAPR)} +
+
+ ${this.txLoading||this.isClaiming?Er`
`:""} +
+ `}async refreshData(){if(this.publicClient||(this.publicClient=il({chain:Wu,transport:zf()})),this.web3Provider&&this.web3Provider.isConnected){this.walletClient=al({chain:Wu,transport:Of(this.web3Provider)}),this.sdk=new gl(this.publicClient,this.walletClient),await this.loadStats();let r=await this.web3Provider.request({method:"eth_accounts"});r.length>0?(this.userAddress=r[0],await this.loadUserStats()):this.resetUserStats()}else this.sdk=new gl(this.publicClient),await this.loadStats()}async loadStats(){if(this.sdk)try{let r=await this.sdk.getGlobalStats();this.totalStaked=r.totalStaked,this.annualAPR=r.annualAPR}catch(r){console.error("Error loading global stats:",r)}}async loadUserStats(){if(!(!this.sdk||!this.userAddress))try{let r=await this.sdk.getUserStats();this.walletBalance=r.walletBalance,this.currentStake=r.currentStake,this.unclaimedRewards=r.unclaimedRewards,this.userWeeklyRewards=r.userWeeklyRewards}catch(r){console.error("Error loading user stats:",r)}}resetUserStats(){this.walletBalance=0n,this.currentStake=0n,this.unclaimedRewards=0n,this.userWeeklyRewards=0n}formatBigInt(r){return Intl.NumberFormat().format(this.toEtherNumber(r))}toEtherNumber(r){return Number(ar(r))}formatPercent(r){return`${r.toFixed(2)}%`}handleTabClick(r){this.activeTab=r,this.inputError="",this.transactionError=""}handleMaxClick(){this.activeTab==="stake"?this.inputAmount=this.toEtherNumber(this.walletBalance).toString():this.inputAmount=this.toEtherNumber(this.currentStake).toString(),this.inputError=""}handleInputChange(r){let n=r.target;this.inputAmount=n.value,this.validateInput()}validateInput(r=!1){if(this.inputError="",!this.inputAmount||this.inputAmount.trim()==="")return;if(!/^[0-9]*\.?[0-9]*$/.test(this.inputAmount)){this.inputError="Invalid value";return}let o=parseFloat(this.inputAmount);if(isNaN(o)||o<0){this.inputError="Invalid value";return}if(o===0&&r){this.inputError="Please enter a valid amount";return}if(this.activeTab==="stake"&&cs(this.inputAmount)>this.walletBalance){this.inputError="Insufficient balance";return}if(this.activeTab==="unstake"&&cs(this.inputAmount)>this.currentStake){this.inputError="Max amount exceeded";return}}handleConnectWallet(){this.connectWallet&&this.connectWallet()}async handleStake(){if(!(!this.sdk||!this.userAddress)&&(this.validateInput(!0),!this.inputError))try{this.txLoading=!0,this.transactionError="";let r=cs(this.inputAmount);(await this.sdk.stake(r)).status==="success"&&(await this.refreshData(),this.inputAmount="0.0",this.inputError="",this.transactionError="")}catch(r){console.error("Staking error:",r),this.transactionError=r.message||"Staking failed"}finally{this.txLoading=!1}}async handleUnstake(){if(!(!this.sdk||!this.userAddress)&&(this.validateInput(!0),!this.inputError))try{this.txLoading=!0,this.transactionError="";let r=cs(this.inputAmount);(await this.sdk.unstake(r)).status==="success"&&(await this.refreshData(),this.inputAmount="0.0",this.inputError="",this.transactionError="")}catch(r){console.error("Unstaking error:",r),this.transactionError=r.message||"Unstaking failed"}finally{this.txLoading=!1}}async handleClaim(){if(!(!this.sdk||!this.userAddress))try{this.isClaiming=!0,this.transactionError="",(await this.sdk.claimReward()).status==="success"&&(await this.refreshData(),this.transactionError="")}catch(r){console.error("Claim error:",r),this.transactionError=r.message||"Claim failed"}finally{this.isClaiming=!1}}};ge.styles=sp` + :host { + display: block; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + max-width: 480px; + margin: 0 auto; + } + + .container { + background: white; + border-radius: 16px; + padding: 24px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + border: 1px solid #e5e7eb; + position: relative; + } + + .header { + display: flex; + align-items: center; + gap: 12px; + margin-bottom: 24px; + } + + .logo { + width: 48px; + height: 48px; + background-color: white; + display: flex; + align-items: center; + justify-content: center; + } + .logo img { + width: 44px; + height: 44px; + box-shadow: rgba(0, 0, 0, 0.075) 0px 6px 10px; + border-radius: 50%; + background-color: white; + } + + .title { + font-size: 24px; + font-weight: 600; + color: #111827; + margin: 0; + } + + .tab-container { + display: flex; + background: #f9fafb; + border-radius: 12px; + padding: 4px; + margin-bottom: 16px; + border: 1px solid #e5e7eb; + } + + .tab { + flex: 1; + padding: 10px 16px; + border: none; + background: transparent; + border-radius: 8px; + font-size: 16px; + font-weight: 500; + cursor: pointer; + transition: all 0.2s ease; + color: #6b7280; + } + + .tab.active { + background: #00b0ff; + color: #ffffff; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); + } + + .input-section { + background: #f9fafb; + border-radius: 12px; + padding: 16px; + margin-bottom: 16px; + border: 1px solid #e5e7eb; + } + + .balance-info { + display: flex; + justify-content: flex-end; + align-items: center; + margin-bottom: 12px; + font-size: 14px; + color: #6b7280; + } + + .input-container { + display: flex; + align-items: center; + gap: 12px; + } + + .amount-input { + flex: 1; + border: none; + background: transparent; + font-size: 24px; + font-weight: 600; + color: #111827; + outline: none; + } + + .max-button { + background: #ffffff; + border-radius: 8px; + padding: 6px 12px; + font-size: 12px; + font-weight: 400; + color: #374151; + border: 1px solid #374151; + cursor: pointer; + transition: background-color 0.2s ease; + } + + .max-button:hover { + border: 1px solid #00b0ff; + color: #00b0ff; + } + + .rewards-section { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 16px; + padding: 0 4px; + } + + .rewards-label { + font-size: 16px; + color: #374151; + } + + .rewards-value { + display: flex; + align-items: center; + gap: 8px; + } + + .claim-button { + background: none; + border: none; + color: #0387c3; + font-size: 16px; + font-weight: 600; + text-decoration: underline; + cursor: pointer; + padding: 0; + } + + .main-button { + width: 100%; + background: #00b0ff; + border: none; + border-radius: 12px; + padding: 16px; + font-size: 18px; + font-weight: 600; + color: #ffffff; + cursor: pointer; + margin-bottom: 24px; + transition: background-color 0.2s ease; + box-shadow: rgba(11, 27, 102, 0.306) 3px 3px 10px -1px; + } + + .main-button:hover { + background: #0387c3; + } + + .main-button.primary { + background: #00b0ff; + color: white; + } + + .main-button.primary:hover { + background: #0387c3; + } + + .stats-section { + background: #f9fafb; + border-radius: 12px; + padding: 20px; + border: 1px solid #e5e7eb; + } + + .stats-title { + font-size: 18px; + font-weight: 600; + color: #111827; + margin: 0 0 16px 0; + } + + .stat-row { + display: flex; + justify-content: space-between; + align-items: center; + padding: 8px 0; + border-bottom: 1px solid #e5e7eb; + } + + .stat-row:last-child { + border-bottom: none; + } + + .stat-label { + font-size: 14px; + color: #6b7280; + } + + .stat-value { + font-size: 14px; + font-weight: 600; + color: #111827; + } + + .hidden { + display: none; + } + + .overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(255, 255, 255, 0.2); + border-radius: 16px; + z-index: 10; + display: flex; + align-items: center; + justify-content: center; + pointer-events: none; + } + + .error-message { + color: #dc2626; + font-size: 12px; + margin-top: 4px; + padding-left: 4px; + } + `,Oe([Is({type:Object})],ge.prototype,"web3Provider",2),Oe([Is({type:Function})],ge.prototype,"connectWallet",2),Oe([Ye()],ge.prototype,"activeTab",2),Oe([Ye()],ge.prototype,"inputAmount",2),Oe([Ye()],ge.prototype,"walletBalance",2),Oe([Ye()],ge.prototype,"currentStake",2),Oe([Ye()],ge.prototype,"unclaimedRewards",2),Oe([Ye()],ge.prototype,"totalStaked",2),Oe([Ye()],ge.prototype,"userWeeklyRewards",2),Oe([Ye()],ge.prototype,"annualAPR",2),Oe([Ye()],ge.prototype,"interval",2),Oe([Ye()],ge.prototype,"isLoading",2),Oe([Ye()],ge.prototype,"txLoading",2),Oe([Ye()],ge.prototype,"isClaiming",2),Oe([Ye()],ge.prototype,"inputError",2),Oe([Ye()],ge.prototype,"transactionError",2),ge=Oe([Ml("gooddollar-savings-widget")],ge);return H0(Zw);})(); +/*! Bundled license information: + +react/cjs/react.production.min.js: + (** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +react/cjs/react.development.js: + (** + * @license React + * react.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) +*/ +/*! Bundled license information: + +@noble/hashes/esm/utils.js: + (*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *) + +@noble/curves/esm/abstract/utils.js: + (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) + +@noble/curves/esm/abstract/modular.js: + (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) + +@noble/curves/esm/abstract/curve.js: + (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) + +@noble/curves/esm/abstract/weierstrass.js: + (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) + +@noble/curves/esm/_shortw_utils.js: + (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) + +@noble/curves/esm/secp256k1.js: + (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) + +@lit/reactive-element/css-tag.js: + (** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/reactive-element.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/lit-html.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-element/lit-element.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/is-server.js: + (** + * @license + * Copyright 2022 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/custom-element.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/property.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/state.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/event-options.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/base.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/query.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/query-all.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/query-async.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/query-assigned-elements.js: + (** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/query-assigned-nodes.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@noble/hashes/esm/utils.js: + (*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *) +*/ diff --git a/src/pages/gd/Savings/index.tsx b/src/pages/gd/Savings/index.tsx index 582023536..97533cf57 100644 --- a/src/pages/gd/Savings/index.tsx +++ b/src/pages/gd/Savings/index.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useRef, useState } from 'react' -import { VStack, Text, useBreakpointValue, Spinner } from 'native-base' +import { VStack, Text, useBreakpointValue, Spinner, Button } from 'native-base' import { i18n } from '@lingui/core' import { t } from '@lingui/macro' import { useEthers } from '@usedapp/core' @@ -24,6 +24,7 @@ const SavingsWidgetContainer: React.FC = () => { const [isLoading, setIsLoading] = useState(true) const [hasError, setHasError] = useState(false) const { account } = useEthers() + const scriptLoadedRef = useRef(false) const containerStyles = useBreakpointValue({ base: { @@ -36,30 +37,83 @@ const SavingsWidgetContainer: React.FC = () => { useEffect(() => { const loadWidget = async () => { + if (scriptLoadedRef.current) return + try { setIsLoading(true) setHasError(false) - // Try to load the savings widget script from CDN - // The widget is available as a web component from GoodSDKs/savings-widget + // Load the widget script from public folder const script = document.createElement('script') - script.src = 'https://unpkg.com/@gooddollar/savings-widget@latest/dist/index.js' + script.src = '/index.global.js' + script.type = 'text/javascript' script.async = true - script.defer = true script.onload = () => { - setIsLoading(false) + scriptLoadedRef.current = true + + // Use a timeout to ensure the custom element is registered + const initWidget = () => { + try { + if (!containerRef.current) return + + const widget = document.createElement('gooddollar-savings-widget') + if (account) { + widget.setAttribute('account', account) + } + widget.style.width = '100%' + widget.style.minHeight = '500px' + + containerRef.current.innerHTML = '' + containerRef.current.appendChild(widget) + setIsLoading(false) + } catch (error) { + console.error('Error initializing widget:', error) + setHasError(true) + setIsLoading(false) + } + } + + // Try immediately first + if (customElements.get('gooddollar-savings-widget')) { + initWidget() + } else { + // Wait for the element to be defined + customElements.whenDefined('gooddollar-savings-widget').then(() => { + initWidget() + }).catch((error) => { + console.error('Custom element error:', error) + setHasError(true) + setIsLoading(false) + }) + + // Timeout fallback after 3 seconds + setTimeout(() => { + if (customElements.get('gooddollar-savings-widget')) { + initWidget() + } + }, 3000) + } } - script.onerror = () => { - console.error('Failed to load savings widget from CDN') + script.onerror = (event) => { + console.error('Failed to load savings widget script', event) setHasError(true) setIsLoading(false) } - if (containerRef.current) { - containerRef.current.appendChild(script) - } + document.head.appendChild(script) + + // Overall timeout fallback + const timeout = setTimeout(() => { + if (!scriptLoadedRef.current) { + console.error('Widget script did not load within timeout') + setHasError(true) + setIsLoading(false) + } + }, 5000) + + return () => clearTimeout(timeout) } catch (error) { console.error('Error loading savings widget:', error) setHasError(true) @@ -67,15 +121,7 @@ const SavingsWidgetContainer: React.FC = () => { } } - loadWidget() - - return () => { - // Cleanup - if (containerRef.current) { - const scripts = containerRef.current.querySelectorAll('script') - scripts.forEach((script) => script.remove()) - } - } + void loadWidget() }, [account]) return ( @@ -90,9 +136,27 @@ const SavingsWidgetContainer: React.FC = () => { )} {hasError && ( - - Unable to load the savings widget. Please try again later. + + Unable to Load Savings Widget + + + The widget script is not available. To enable this feature: + + 1. Clone GoodSDKs/packages/savings-widget + 2. Run: yarn install && yarn build + 3. Copy dist/index.global.js to public/ + 4. Restart the development server + + )}
{ style={{ width: '100%', minHeight: '500px', - display: isLoading || hasError ? 'none' : 'flex', + display: isLoading || hasError ? 'none' : 'block', + position: 'relative', }} /> From 3e104f45fbc8fa66aeeb89e532153dd8945becfc Mon Sep 17 00:00:00 2001 From: Oluwatomilola Date: Thu, 5 Mar 2026 18:18:07 +0100 Subject: [PATCH 4/6] feat: integrate savings widget --- src/pages/gd/Savings/index.tsx | 160 ++++++++++++++++----------------- 1 file changed, 79 insertions(+), 81 deletions(-) diff --git a/src/pages/gd/Savings/index.tsx b/src/pages/gd/Savings/index.tsx index 97533cf57..23c6c70a9 100644 --- a/src/pages/gd/Savings/index.tsx +++ b/src/pages/gd/Savings/index.tsx @@ -35,93 +35,91 @@ const SavingsWidgetContainer: React.FC = () => { }, }) - useEffect(() => { - const loadWidget = async () => { - if (scriptLoadedRef.current) return + const initializeWidget = () => { + try { + if (!containerRef.current) return - try { - setIsLoading(true) - setHasError(false) - - // Load the widget script from public folder - const script = document.createElement('script') - script.src = '/index.global.js' - script.type = 'text/javascript' - script.async = true - - script.onload = () => { - scriptLoadedRef.current = true - - // Use a timeout to ensure the custom element is registered - const initWidget = () => { - try { - if (!containerRef.current) return - - const widget = document.createElement('gooddollar-savings-widget') - if (account) { - widget.setAttribute('account', account) - } - widget.style.width = '100%' - widget.style.minHeight = '500px' - - containerRef.current.innerHTML = '' - containerRef.current.appendChild(widget) - setIsLoading(false) - } catch (error) { - console.error('Error initializing widget:', error) - setHasError(true) - setIsLoading(false) - } - } - - // Try immediately first - if (customElements.get('gooddollar-savings-widget')) { - initWidget() - } else { - // Wait for the element to be defined - customElements.whenDefined('gooddollar-savings-widget').then(() => { - initWidget() - }).catch((error) => { - console.error('Custom element error:', error) - setHasError(true) - setIsLoading(false) - }) - - // Timeout fallback after 3 seconds - setTimeout(() => { - if (customElements.get('gooddollar-savings-widget')) { - initWidget() - } - }, 3000) - } - } + const widget = document.createElement('gooddollar-savings-widget') + if (account) { + widget.setAttribute('account', account) + } + widget.style.width = '100%' + widget.style.minHeight = '500px' + + containerRef.current.innerHTML = '' + containerRef.current.appendChild(widget) + setIsLoading(false) + } catch (error) { + console.error('Error initializing widget:', error) + setHasError(true) + setIsLoading(false) + } + } + + const handleScriptLoad = () => { + scriptLoadedRef.current = true + + // Try immediately first + if (customElements.get('gooddollar-savings-widget')) { + initializeWidget() + return + } + + // Wait for the element to be defined + customElements.whenDefined('gooddollar-savings-widget').then(() => { + initializeWidget() + }).catch((error) => { + console.error('Custom element error:', error) + setHasError(true) + setIsLoading(false) + }) + + // Timeout fallback after 3 seconds + setTimeout(() => { + if (customElements.get('gooddollar-savings-widget')) { + initializeWidget() + } + }, 3000) + } + + const handleScriptError = (event: string | Event) => { + console.error('Failed to load savings widget script', event) + setHasError(true) + setIsLoading(false) + } - script.onerror = (event) => { - console.error('Failed to load savings widget script', event) + useEffect(() => { + if (scriptLoadedRef.current) return + + try { + setIsLoading(true) + setHasError(false) + + // Load the widget script from public folder + const script = document.createElement('script') + script.src = '/index.global.js' + script.type = 'text/javascript' + script.async = true + script.onload = handleScriptLoad + script.onerror = handleScriptError + + document.head.appendChild(script) + + // Overall timeout fallback + const timeout = setTimeout(() => { + if (!scriptLoadedRef.current) { + console.error('Widget script did not load within timeout') setHasError(true) setIsLoading(false) } + }, 5000) - document.head.appendChild(script) - - // Overall timeout fallback - const timeout = setTimeout(() => { - if (!scriptLoadedRef.current) { - console.error('Widget script did not load within timeout') - setHasError(true) - setIsLoading(false) - } - }, 5000) - - return () => clearTimeout(timeout) - } catch (error) { - console.error('Error loading savings widget:', error) - setHasError(true) - setIsLoading(false) - } + return () => clearTimeout(timeout) + } catch (error) { + console.error('Error loading savings widget:', error) + setHasError(true) + setIsLoading(false) } - - void loadWidget() }, [account]) return ( @@ -142,7 +140,7 @@ const SavingsWidgetContainer: React.FC = () => { The widget script is not available. To enable this feature: - + 1. Clone GoodSDKs/packages/savings-widget 2. Run: yarn install && yarn build 3. Copy dist/index.global.js to public/ From 22fd77cb4696d8583860d157e121494dfb3745e7 Mon Sep 17 00:00:00 2001 From: Oluwatomilola Date: Tue, 10 Mar 2026 19:43:01 +0100 Subject: [PATCH 5/6] feat: savings widget buttons-fix --- .kombai/resources/image-b0682ce1-1.png | Bin 0 -> 308685 bytes src/language/locales/af/catalog.po | 2 +- src/language/locales/ar/catalog.po | 2 +- src/language/locales/ca/catalog.po | 2 +- src/language/locales/cs/catalog.po | 2 +- src/language/locales/da/catalog.po | 2 +- src/language/locales/de/catalog.po | 2 +- src/language/locales/el/catalog.po | 2 +- src/language/locales/en/catalog.po | 2 +- src/language/locales/es-419/catalog.po | 2 +- src/language/locales/es/catalog.po | 2 +- src/language/locales/fi/catalog.po | 2 +- src/language/locales/fr/catalog.po | 2 +- src/language/locales/he/catalog.po | 2 +- src/language/locales/hi/catalog.po | 2 +- src/language/locales/hu/catalog.po | 2 +- src/language/locales/it/catalog.po | 2 +- src/language/locales/ja/catalog.po | 2 +- src/language/locales/ko/catalog.po | 2 +- src/language/locales/nl/catalog.po | 2 +- src/language/locales/no/catalog.po | 2 +- src/language/locales/pl/catalog.po | 2 +- src/language/locales/pt-BR/catalog.po | 2 +- src/language/locales/pt/catalog.po | 2 +- src/language/locales/ro/catalog.po | 2 +- src/language/locales/ru/catalog.po | 2 +- src/language/locales/sr/catalog.po | 2 +- src/language/locales/sv/catalog.po | 2 +- src/language/locales/tr/catalog.po | 2 +- src/language/locales/uk/catalog.po | 2 +- src/language/locales/vi/catalog.po | 2 +- src/language/locales/zh-CN/catalog.po | 2 +- src/language/locales/zh-TW/catalog.po | 2 +- src/language/locales/zh/catalog.po | 2 +- src/pages/App.tsx | 2 +- src/pages/gd/Savings/index.tsx | 22 +++++++++++++++++++++- 36 files changed, 55 insertions(+), 35 deletions(-) create mode 100644 .kombai/resources/image-b0682ce1-1.png diff --git a/.kombai/resources/image-b0682ce1-1.png b/.kombai/resources/image-b0682ce1-1.png new file mode 100644 index 0000000000000000000000000000000000000000..c92920ef3d849ecf84c5a6d8499a55795bca64d7 GIT binary patch literal 308685 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

=2596E7^21vgdK) zaFUrl&z7?HI)`(2|M!tqeZRl@KOP<)=iI$N@AqrJU+>rJ`7Uer<6|{VeQb96i2YPg z*+Mn!T`d9USyQT_-SlincYQi1?zRt}TPu5kgSQQ(AU6L@xA<6|MyRhNVPWt!Z*|?t zXkxiZJ-5in97ew_kXKJCIcv3y`G0pYKY)DAAB(azI~6Ui2g!DHpGeE(Ffx5$+tg;P z9T$r98+qG$9VZ9d&c{cAKio22=BToZYu2ckKwKZqH zRi;8NSit>CN`k1j&1CpxN39DNoS%FOgB>Q-MjFtQ1c+}tu3j_`mok91N6O5FMwJ5& zO!rk~7^0=t zB|q;;iPR$#HukPm2r@+1J7`s*%7rM0plTc9qdqJt$>S*OZH4%`F>vkgbZ9yXZ-Ro(O)x9@4L{%Q<`Fy)e!SRqq3l8Eu}57Fn9#KGzRF-I zt^=oNPXZeAs?$na@9=2aut}>yKf0{7_31boFF&4(_t0v}-r1_F5&HOBS(;LGB4P)< zW8HmE@o*ZR^VOtx;ttujRZvuv&I9)Sm2SuCR8U8Msj$yKLUHl;XAjPr+d~?oZ{g%l zl@=+!zClZ6#MAt)wC|Q@Ct6j*q@t|4h3|u@^%ix0|Ev# zO?7XuKB~8@#(RgyN1S$t#rIuMUkOK&SY06rSs#_0WfepA*=kcsx4G3nDprf(5=bVu zK|KThNx{Vo!wz8`gO)U3{zR4DG7c8Z>x13TzQIDRZ21Py(-r1BYYgU0bJxglz{5F{ zbJVvTwn*76HgiTxaK_ehu&&WmH~O-_-`hD%2BG=USILft-{pj-Vj>!WWk!q0enI-c zO%I4)KMJvFNsb?r?zuH2#o?op$&Yp6lr^C@}K8LfYN{qrivG$y9It2Ty1qy`18uq=TF1 za9>6u%1d@0J6~oaHyJb)eKX>U`{MAN_2R2*tk9-?c>c+<4_1_j+v?}y9aOlXP0vbP zU)R2Oc%knzKiz*hc{E%BF7C*VIL4dl3Dv7U#TfiqS;I6jK8Y!u9ECBPeDv;m&{uJg zxTA(B_sUa(w5SvzPTZa0X#Pui+OvDZeF679mBu@BN7F8z z%@lXQ8@h2JZ?Wx>y_l&KNGr0q9i5oi+nyCDB9nC^qIjVkg2WX0YknAh(G`Ox5jO4L zzrT!_0}SuN+;`8BbE9cSE$1%FQ;aucnYWJDl0gUcn<=H%P()UG`hEe7@jB@2CU~-u zfZm239C=b)!mU0n46yMXyw~f|16AA-_a*e3##xy0UT~qy(0r zn%a&wK8Ue)W9T;X*Ghk#(*TO^NM{3#_{qKPjZp~Q7!J1z1SZ}Wm+6(c<+#%2tvhA)JUeV zDgGFPDZ(8G+tMt@{{_T{%*Kb+f}JQGwPN^sU>pl61iDz-x0#;pDn#HkGiIC3c{(1~ zbG`Z}6Fpx%>>C`F0~f}64osV9p)Rj;F*m6v{sq!;MQA}UrG?4O4=4ee!GZCo3s&L= zkb@Tzr9+#8+FILKR7=`uvO*RpQ2T~!#4Z`u1@!c5X7ef&_NKs2=D&G2YJCswzrZ`a zvzkx3V^Sgi&;{w|sXh)g)CHub#t|XJ(Z<^GEi?>Ql7oTigJc@+m%oP$mf|3CtES|$ zoP1MgB$%k4k;YT`POO~dK~e>o6Ly)@(N^R%>;8QVaW>O^L~M+L#3Z_&pqlo;wMqzo z9eq7mz%mhI)nSa&??{h@N_c{B=(L(GqEbL5F0D7;S-ZRk)>wGn#*`m6MZk3pyY$1S zMViThPvJe%@lPe&#?i^voi-ZYg?)3!i;BAGa}$$fe2&jXnRFDm7MbUWy*+WTlS$4U zG1edy(oBRYNJNn{8nj|_PW)=|%{%G^RP64^OncLZjON9iTbQnnkQ=d>7}&+QeuM6H z)9J+R_F-1nDPLQzDdVDc< zYXVP(p**F9RszNSKDgxFyK}fZXd1jj^Y}j`-NDY+An)>&f3z{)Ut-9*%kev`1ZF>t zRUsOqth%2)K&k14a=-dV7DggiE8l)^kL$=JI{0&I5lr#Tcb@JVk)?+b)x7IN3Do1? z+di7LSr2?|d`4;onlhH2!NZb>U9 zDk0DLCS6_$U=@JENOom;Hs8VhM4{TmzpSqK%P1vWuuUH`8yGcub_X>6%uRYwF$@ z8t1D8)54=Y@aHCEJ~R|*GJOjG$ayx6de!d|?Z&g(c)WdVGFx;tU=2X320^N65sIHP zTb$FM8ep*-(YfuIN_9(wqQ#{1F@e7_;USs3cwBvJ(?D;o;gc&?df=Zz|8ZC!$Rye*=sqd35Xjb zk4N4xhKjNmLSZ@H`5Db3G^Hca(u$rG*R2eR<#_kF0`=zfg>2(CB+(Kn5eGGzPW@-n z`zYi_50!CzyiDL=kv&GsdMC1&|uFHF{qdv3K*6o|Z z01}5@Fnle}B{7MT_I#ICk03D8**81R0iQF|9N{_8s3N_+RQ6Ch z-6$H-kQR8=X*Xh`WfK+qj_Og3Yj)#oB1}T0^QPi2 zKqg~74vVxzvDi-#2W)pS+ZtQsdI%5cld?dFOQH3!yU4KpV=BDevHvh>wj|Zz0sfnh zf;du_iBF%oh=bjF5R_xUr+7#$AwmetdUwG&sE)bNa78_~@Vn={d1mAgy}W3dsmlC! zK(pFFy`8hTdL;$%_aKySHBIY&&OG==mU|lK4EeMT>_xp!QY`#F-rTrB4Qr(g4SqX_ zOuUv3!`#$5hm`cUSBl~3dqioGab$XAi^gZSoQ!mSa2mvq%&0;b#F>3RH%h?V)3R1} z-Q9+`K5XUNni0poL%8e79r5jvNA}2AAqlyTw1Z(<<%5f;T%)>?rfQW8b9Kum4q9W4_vtTk903RXrL8(-P}Z-`|{Ebn1&NaCVm6 zml@-MNpP$TccIbYz%%UIrw`)TIvI}8ZZ`#=&_u&5JH&G&%LkZtKL@q?{5|1b_$UiJ>(EtLhI4lOz1uH2= z)PEQ)E*2Tjq1h+o(lV3=bo0=5s)js=Z7}uWB-A^SR=ww&k4kA=6vAq1xrVnbUS2fK z<@q?lZk*WxSrnf3NKgTe!Ln$-ia`gqX&Qc6JllFaDLyIh3bScD1Z)?v^nOS2rA>og zmv&9i&O0%+quH@lx6Rlx17nJx9ZfuCkcvbiHB5vQ zIo?^MRSDw{kz;oQJC+~m8_CKokLfq^_2=3?3M#`>Z`5W}#d9-R(V|B4UW{eo#5*je6L%bOBw$t0j%1>NyeOA?dd&`wkVsgU znLqrQp=+sihePsKxZ?+SA(H_k$ylb0oTo6!!dhuP8q~=)8Ng;wC)uTwx@bWwgM6Ha zDeHEsbdX`5zprW6p-2jCBRRZyu4$gwG+1{m&%k9E_{BjuNwm(htT=n_jV!nL0O45X;LPvAgEY^QI`Nw%d6rK5zvgEF>HMZZDIt(MNc?_~P^6MQcx?zVjKz zn4|*EV54*S5Yk*g#iu56mB)Nm0nNHI4z~Z<_hWc61?K6+(vhUQuwy-08T2f5%l;M@%RIijx^`oJ{MRzaz`^)WZT z_w1quk8aZWn@<`e$18^c0wi^0b-`E9ez=jY76xpF`! z2K8cYL|oZ@Mf$1@NB*;wt;gz&{|#Vc4URtMB0wHLukDC2KI^3qrA?zIykT?OAq|--jbVSQ{Nihq!7$!5MEGFppLt= zZH>eyw>(~VH^L9%|FStHNBK)gmyu-1{$sSX8xE|U7ufSfH@rih*zcAec9(|lbz%SW z+~Qxh#2_WbcI|%#MPV1fYTCp6;a{2GY)bv3y!jd!)>2N`3$W9qG+to@&_MDt9h>_9 zeC86FS68E-5AdV~zZP*={P?22K4syrrz`(XLOx9Z-pV}IN-wld(swC1z5F8zZlciJ z67E`Eb>-@vH75RewP*iV%Kt4K`M1IIwY1c}#kp?!0qDAtlmO%W?&M)31)ZEC00l&{ zQEK{4dZq7;2KN5FTnPrzNLuHm7n%!|6Rhonj#;9 z10XG|X=T7!aP&Be0$~tU z-}zw`g5u*bNxl^htU9!R7idW$`3eCE=%?%JRVkmJ;@h8W8Ndu49aq$Itrl|ga$Y~c zlHm%gqB?Nke_I7M6*3jB1)1$p)o^0^|L~&J8wj+}6Ws&kFFQ+7HvC6<;3`dksIOVd zEHZwhVAbnYGXBF5_Fv%i>(;s~D{LI(MLY|TY-nuw7XZ=57!)0BZD_B}B?lokJT zKeo)H^+pFkO#UMtUDthZc@0=;r@+6AI3%foiB|eLv4)l&Ccfj0%3m;pEemK>nek7; z*T6%e`)4u7E>*VkcMGWapIv;Nz`Jz)Sqw^SV)(60_|F%kdAW(@9~j~N%d5R=CT8-T|a@ubNDxO;Y%aw1lPSbWy zq{Xi1{C(C{zkg`exU)dQS!l)5f0>$DQa)RP`lzHkpbYHtr}fvz%}Q==*}T~0xY(7q z?gq3CH_bhS(WVq9oZWEi+&cQUcWnkwYR{jQ^f@kf>(;HvFkFfFiBD`lmbCu9I;MP< zuM(Rl;SRsjart8#Z-M(|`RB8@?Zbcme_r*qiBg`LD)jZMust!Un|S_G1(wW(lN-<^ z)W^6&@~uJ*SDdW>+B9w>hl~$z?AY}a@3(ysSjhz}#{mCjCC5O_G13`C zw|AX!%Gm$a;g9vQpB;pcS;vmCZTtqX-8Gxnjk!F*-`Gg39I%cH$b0i=Abl%VdTljp z9&zoxpDk?zFFE*Yd2&_@RIt!e=q?q!Y#8c)jiQJq2Y-;^BBNzylrmEE{oN>%xghq+ z(&l3HSquJ3St)c^{r74#_OEln%8&_>u3oVbYPXbwqVLZ}vH1shDnEv&CVwqa%dDG{ z1`}9RqtSih1f?weDf3g*)Ll~R zxOo5Zi&uV$H=VQh-7)vv!2Q-NN0>xI7xx7OXu=tTplVE(@1z!DAqFx=V@f%HfM zRvu#GrCK4Q*EJ`-6*euIA@Z;PvI{MYAOOV|zuurnv0EO$TK)FQfBr=*ys+B=u)Xlv z&8w3Csq)PH zF<~}A%C(Subz%QPfu+k&B@@Y}Wj`y=x=pPYCq?lu()D}v1|Xvatw5eMnZ*EZ_Nu~= zUzLV#I{HVN@gwqTh?f4zw2)Qgw@UD{lCF!qu(D1q>qxvT1pm3SUiygFEg+DQe4@)* z8J4%>4CH@n5_!3+rs3*wpxEaQ4y}m}NE`6}{<5nLbXr~I8?s(fJvZF&;4pFOGkP1| zA=CC}0+8R+kD=Ukax&|E(pj^0yj)scjThC+jaGa0p=;)5kA4^sCczpPj*;i5B-{T= z8<#)KcOA$xb6+++KTzJ9hg)9$;e~jst6_=+Dz)oT%MNk^l{`hJv`wi$FXq4UUb}7p zHa`D2RQP($3`l-vU;{|I%bX<>YU$PLGuQtk|AO;1*XrF@u3r6R^@=i18*waG*$@M# zgjEHoNN`jotnvO4+04ra9E{Z7aYpSAAHLz{*N5^>g?jydZ=JyW{y0`yZ!*6I0a_*{ zo|yb$1|*MD4gA@5?uT^clkd3v&M-snknxsgnJo{$O!NKS!*vK*l9%Y&wEuW{0l?zXBW`X@H(#}DuYAuNj1DATzatw;X=Ghvi!$alN3(caXK4<|I=(49V&c!wvHYEf?RMgdnI3zXhr9r%- zJjXihr0hCB!bk)BpseTXvrQLP4f@KU|I@BD9Hoe+gR3N}M+KW?ANc|+1V}dJ$*&uB z33f)3dm$JhwwL=uVHalRK}XaFUrv=PFxpvmMGgDUyUA&}PNBk&!aBPrvNpGBm z8SXs(V}>u?V?5+3nL@mtF%&3{AAy19H74}?V`8k3P|AQ}v+ba_6+B#U_EwHlgO_XMontyKP@8<4(cxrOK z*I#?4n}(X&LSOR{0&)T+i5RfF&4|#gtixhx8}Ghg2`Av%N_a{RIYgR# z?6w8xsSgt|q`B|3E#{n{7r?HzpI5KybrbBYZMrs$z#l3;$A?Bg-7PA)ZP7uZ!)lmI z9cd9us-l&!PoAz8!6aw)<3~}MplH*? z+b^cd3r|uJi1_hZTN!nPZN^BJZ&BwWJMHK#!+6A_(TqzL<6_pspg--lfkA9n;X94+ znS**eo5=dfo!fIyE?`25PaKLX=b^W33XC4cKw#Le?q7|{kd)JfHBjtw z-{k~{L9fg>CRsJLK;h1;Y1}+0g5(Gln6uE5Slk*qQduIOfaLD02#kn+XIsZ@nJ=-s zq2?}TxK5Tw1)R|lgz+Ey$510~PbA+_pW*sDQC?ce)TR8u!hX=9Bz+lWG02o#RanFb zvEM7^KA(W7uJx8aoVZJ%T`|}gnMH0#TA0=9Vl9@}+3j+XXlW@vh9+G&{4if4z1MHE z<;15K`g6Mkl^+vE%&Qs=qIWeZYZxbnT6L;fx10H^BaM19Q+?nB8u8`l{{0QTlG@wP z`^@D$>iu#;e_FRP0u%VL8FbZH4jX6Ubuv4wAo1lF+ICJ2Uz3%^maxL+FoTZiP>j4> zFn@fFeZG_2ej#iN3%Lwxc0U&=6$ia)n@F9-nnp7QbDpHj7=(8kS80gQFj^FI8YUKUJQaG7DtKo}pd^kpPy`hxs+;Qf} zpD`L-#`NjXYwvq6E5wGH-``J1*pQ2uc`eUck7;T-wj2{4DuoTTLSGCJ@mB`2KxrH) zZz2aMq0;xet=0ox6CI%KXbvl8J2QdCEL`>4nXAlvYKgu$I<}=m|4QidAMwwI5TrEQ30ys=g|c$L=Ku;iYlo#6i;9Yb zM{1s07IwcF3^A{|))0BIqtrWD|I?E#jvZ%94#kt~`qV-ls_^w#7jjSCn(^SgK7Hw`zI<3RI55V^||!m%(n+h%$T_)7_L!@)f0 z)dLNl+el`hjf7~^bA#+%K#?sgtehN+E*n}ciq^l0CAU9N1FEiPF8uv9?`Sy>Fhuor z$7DhEyC-NK9ReaC6>lYfbW-TeKgM0Mey2V1pp2mOv971gXQYltM@NS!$hzjQwzDZ7 zrfB_Rm-RsKBJkUSEf1Ww?rd&g3_g4Rxx55{FPAW@kv0s%l1jAra0M?PwCOauGT(V~ z28dGTF|p#vHWSpqci?nDu*82w>BIF}z?^}%J_;V<2sfQ_{}#rd&&!;LcGRo{+iRk_ zM*fxeoYi-n_nkAM!)V%tB3lhPQ4KjZ(-xo_uStf3CAoeZsT}R`kC-W{!-`x`DiF)4D$)BXutzg>QTr8q-vKsud3aV(*Q~(DtZD3TQgG|T+GSQU zQ}olpgZZH!-hX~R+yD#x06d>^iUB}UC-=UAz6~lZ2P{AJR?g=TMb!hwkOS5oNMjMP ziTq1MgSstSw$ut(O=hA;!!=BDD?#lmxjn8;{0&y+)~yGg(A(!~r4x_mmxD?`C`IxA zMgd-;(K?dFxJVXNbg5gsHBDxD{PluuPi+adb=Y*sc^hlfXHU@&-pP4MZ6>75-4fs6 z)S!b$ZXOi0HENimhy7W^Y;Qg8jI)Gx*q0~TVlxCSs&jD$g$}d>?t)!SP3FtC#|cHb5$k11Qhyh8tRyo*om_~Vy@ywGS*4iW?5#|b4))s_3rMAK{LEm4 zcCKxr-xHhWo7tR_BN^J&lmPHl~1s*DC`oeo&MZ@UtQXP2QH{o zzy6=m$FeQlc$`N;wYCF~0dDQ!27|fLEUoAT_{jR5BtVw{0N+;cmybf77f$A{+Y|oy z&d-6+#;LF^U)mM3*5(rf>Z;aVJN08y>*Vc6K(#WJtK>8*`~IPIQv_Sc1ZXVYBA;N>T*Uq5+rVMjp4NBbU?&;VxSrrN)qAKY}x+aQ!= zX<23323Fv<9D3zdsP}@wNAag`oa2-v4h!AgOI zmTj8i^|do`0M8Kc7pH?wv}8h*2%r4{&HIC%Y>+JhjDIwj9v6^EQq$Th{QoPS+5;kf zaAtCMf52u+Zkj#+ABS(l1}qxOX-cIf8F{GTH1Ly9{JR(}7jFW13&2V||DCNXqT@77 zS@>du29YJ{-yL8B`E1`ZkLvm#=s(11`+CE%^bNK)N=x`$$msULb#)p)O!*%cgFR3K zqHub1y%^=-_T?Ly|8_2*MCF^gmBZj+@`KsLDAfN-rO5D|jM9JAG~Q7>MHc z(`P1l>b}r1+P|b&9chJw>l{f;ERZyQ-|s8vQ>D3^j;`M~NIu;^_wYI2gz;b`Jkm~2 z7M}1HTtL-zwC`&4buR&XS=;-DPmi%bq-x*GM)z;4b7lfu(7beBdtGoF2FiU_jg0Rs=_w|N-%?LML2QnIzHOa7%B9a~3&zvH^ z1tN$OTt3A4%h)I4i?RlCF}CBY+Yk5NYSKzB0ElNYRlv@TqimwwK`s+2y$RtA6#V&L z%N~&LwDTlQB;;B=BO-KB)a(Yf^Zn}nZz-Jgf>2g0-DbW*c{*}U<5d@7PB3y zqi%fhWa5d~dHcso)Gme}6o(RZDm#0)sD@r_LaYUsD_(ac624;$lmjF1evL+9jx=Y$ z)tSp547);UD(53$qtt4D>%8|o!k2%j7&ho%_wdP#cGuO)E-w$#tp$@j(o0W6YNLki zAfC5^<0_wVUm*QUodIm5EdfV<&$)zSlHaD)|GBj+OUt4ECQ7W9)BKXe-ID&=UsOjN zm&Mz265dAD2f|g^jD@ZV4}6|*t!oT~TrzD#8&^^p2A$DD)IMHqLx`cFDE@h|Vck2< z2hQbyR5VDt2Q!(Ci)GJ+(^&TI_aAH_iAJ!(4kds4_Dxu;HyKU*0@ragT&|{{Qa+1leEj_nVN@3gRff8Bx=`q&iDi|-X1@! zzTRF*itW4eWyKef?On}Rst{RwVi&+t>V9!Jj(p&eoI4u_@>}tsN$mR{<&BtuoqjSU`v+w0lW*zHFIWpZjs% z%6-PEUN=ZLbJE#2gE&7L5lz>>tP{9sQ8GWbT}SZv)fN=bBuyPn11K znzn1BxsBsZmA+S9$=UGIx0?tX8u8HF)Ss$(+$)Sy6$LO4dV>o z+0HgRL}U@wT#|$u`|y-js3AEevLEiaP>YtIO$Dd`4?GQTcSXrEZh1ObOGf8=uNb5L zJyG+Z_++*^kBxg}wPubiaUF42Lu&mL%KMC0dAQ0P=8QMjiHkjwNOC)hJoQGvn8Ub9 zo2f?Gu)70wfMcb81r)>%{MwWdLU%R5L4);Z2tQQUqE!r|#bc{Ae{VQ3(?i(-9I4bo zQ7K9hASJ~WYWqc|)wCuk5WGk}Pw^0$)dw((eCn() zv$n*{Ib(UD`9l4vDYPlNGMQO)4l*f+&EJf}WBcLONuYc%iVRMNCY4a&phl%dj6L|sXYiW8J1KCZ_hdbg{vd&r z2mlTYszQVoX6h9Z<1VK5^a4N~F|^!tA6GbsXm!BZ&j2^U($HlVp;tXM%yE5A#_t3H zK=sYxysywOoUY-@Y>yP|d@OczKLOd(=c6Eefs9sJda_Z#ba)u#i0h!q9y9nLQJb4H zhf#BrC6mIF&%V#h>%lK~A#B~ciY36Ys}4Xp#%!WFvfe~4MS)IFDRs23E1aGXFMvf6 zgd(G7>g8_^c15My$wth2F+9e|;&x!r{EFG8mkg@=%21+6(a$vN8NE5=@`MfS;*C3M|P|&#PAydBi%GholJz)=L%`mlx;nc4ADM) zc)~foLuAmGUfLI}`ZRgEI8yL=Wv}}biMo=`9yfWf?Gx|SXjQt$;j!-1O`QvJ(IHBc z6;$q!6M+T_rn`dBN3hr&tC`l3Q6bs|QKPPkc-A?j#Wy#94j8>?S=$v^o&sv+r{e*aPQQJ`@kMLuteznKs5CKbDRGedGG}mGA4Fv+K{2PNvI^&Du5DdF(t#Xup`%7N{8f(1K?i`;0PAIZ~uN9{%-Ub+VmMX2Ua2J z=4$8ifde`wv#!m;5T@K<1Pt1iBGO8jO`{hznma+)w8lNd5gKAEmZNb*O$9$m+P4v#yGe^#kqsAST zeN&q4KX=ssX=nLq*FM!6Z=QK5Z<5Fp+q zpIwYkmR-p3e&YOUJad9Ld@Q~z9%a#brLGMnLvQVuG;(87YT%NF>~KcRoJkrg3L5$1 z_%+mHlCKiRIx3=AHnY-8Jod`Xn2f{3=yW{hW-=xhmn-hKpM&`ZQKrEsmxxw97Nx`z z%p<2Bl7oJrK-A>!ILn)R)`%rIgBCYK8VTJIa{D`}1f5y);cc4fF_)3Fe(5p>*fZtJ zYOfMna9ZJ|d8W1Dx1=Jk(uALg{fF9nB-V?)fs_Xi?6>Nx%Ca8IHP;Kunw}gIs?N)W z_lx!i%!iEIvy2X7dv$#x?q4q=U`@4i=Q#a>3@3JRQuWIC6G= zax4N}S>;LGZq{a|+rbfhcm90d^=vaKOlSn*s0C;Z6FdOBVZ2lG4VsvI8Rj^zr9C(v zfrn?uo}ay|omi;ChkY5}U9bP7B@iC8OU>`2y?xclfHsUjJ88t#M>oirrDHsuUv%NV zx*E4YkpIbZeZ~t9hv_}cn}Sju zN6yh{7JIUeKLY34I<(?*DTg0^b#4l~uvuiPG-3p)orx0V2FI>2jeWb=-hH^vrw?}& zj`ngH%q*6MAui}P5XNCIq>^Jv(AsZjP`Et&=)`Bwl+C-(*Cb^RF}3kRUcb&i$XTD4 zVclg@qGoA=pD-K3=(`SxwK9cSvb` z_JlN5L+$C$*Ji%>)^?rP>rGFwcMrwh6K+&|$H_0&ew_KX+apBX3u?o;;(`xgX6D3Gj))O2U~X^=+#;blcp|4if`gp5?H1?9)npN!OJmfEtlS ze7IlPNj#Es=E>MJlD1m*t?)p+l#pxvwksvx=QHofzW{(*m=giYL8*$gugaT$~3Hc^XXwl@xH+ zbHV2gE}m}x-adWWabz259G1Fx=PQ~-bh}Ji7*19Vko<=(l|`&71JpyPW0Im@OofMp ztjXfrU6f2NYkx+{e|^DMRH&gWlRG;1rm=|^ipe*+C5yO(d|AzPs7oiIf`zf5&{LRDQ6b%n*|# zmu6n>$A#d4KW@*q7O8)t>{BMy{<_UDJ~3oVzuEWB^iNN>wkj!z8B~i-^IZttm|-r%AAz*Cp?bx>{rRP#a=8D=&(Sjwtm?UsEU?Sf>)veH})%zr){t=X`@@XOf5&eP1OF9zDXwRpV3)K+o<`1=Wb&<`qy zj*Ql9aT#t%G_)G~;8IT?#a81ujgrc8sV|X&y}le;AmpMHl%Qv&PknE)fWO@2TFFUW zS(3c5{mVj;Jm~Bf)>vPj%9{xPfKj}*1^2OkYH;RRY+E=7^AhZTOfKdO72l1G6aAsu zn^4Aq7_FA@M~!3__q&Gey?oTe%C#s*ioLr}&XG8% zhk4XtYZ(e3Ap=h%&Us%g1el)8^d{B8xU3F41&LvcYtkaquag8UN~dS>rs!i(d7EFA zm0eMHyFMGc*D2@9xG42U##u;24DV^BGvj2rv7U7F_K zcv45}iEQb%E9XLV#I-IP#ATM2ZlMf%x~6N(E}l|@(1i;H$0p;a9p6LMXxSBY3bX-szfPG~6$P2ero&SDaBwoY%)w65>?o_vJ&4q%1!{RoLeKXmf*xkEy#H?tZi!waqpL$I+>AT`*EE zcAWIua_~`5C0>*UR?XX#MmhY_DSQ8V%f0ftlq1DvYk^*z{CxRHMV2nJ=UEYhCu&_S zy5G@)8dHKK4E>})q`P~vC7E8R_z z!M*?+75@?f~y2m4@lI;HN|JTYT1`XrH*95D=oVLG20?MMMnzwp-tzg>VVZX z?#PB48@FX-`Y4#tBVLbCZ{dC!2Lko`{^!Oj1&xbedxp#fK8x@)aZw3R($4d;D|-WR z8;Q0WZFTu_D^a}>RJ7=Oip@UT#X1?TWi`K_Tw8#81S4eBac4zFe=0dPur#|~Kc}s~ zm@6A9fmq$9(?e7D0=4$ywI_Ym%4sWyJb=-&L_nj1-L)Pdjc)52FQ`WuU=Qvci!QgX zh7zW&RGH%)<}S?m`#(l?B&boLYkQ7$eUf=)7LQTS|V z{o#Hh{aL7zM15-<#~P*96k^$8l7-Uwl{}l?vuZeOHjr$jp3~ZWA};c#1_lD?8VO_{ zY>|kf;h8(N5PXX9926kiHO6PkI2t8p8s7farEU{n4fZ~1HzKsneD@p_>@<^R0kdhJJgtL*Pz6Lf~Z(n2esmq2a<0f9nC{EH19=Xo1AOyG20YzOAP=l&ED*xU!G~u* zv^bcbLu}2(7waCThM~0eLsWG>w0HAYAWs%6%%xYmXu+9U zKI{OR;iN_nDB59St^pYO2WU#Rbpix`zx47XRQ8!~+Kex?9f|Y(0~ue@{tyadUC9_&fAI1j1F1n#WGiK4n? zX0V=8$mWxAraSTZ5gz?=f1YaEvh@aOkMoqQLdu;f+rlpH4)x4^!-KsYy+JfPi+b_mEM>Y_9aLM=nMKf?)}2i zN{_2lh;k{=5pFzdXU~B!sH|X+#udNaT*+c+)MN!N{pOXMzwdhx8hXtkK>*Fz5!^p& zgzPT{!QPp+oNP6pR^1oUxF!RUfR2>tmYD(1+h_v=tNK>f%dLa8X3=#ozWfNkCD|#j ztt@wgT`4uD+zvOt_gp&DPzP9wN9KWN?&e@~1}+Al>vhn`nPb#Q>rn|l`~4_tvUoW3 zwm$XkB+V93Xa#%H6k~S(s617C?bEHhQ+UvebsywI?>UU+d}eXzxtkWE!E#T|)<;et z^|^=?Onv-XkCq4Z%lFeaul0fAJ!v%nH>>qM87|NIXK9Nbq_Yi2e zJ!M9dAoHU;j*-uD+w%C^7UU4q(E(fpk&LQ6uaNPfDh$q}(Jz9;4ij$3yKz+_WA7@T zeB;lUGp1NRGO25G4|B)%MmNSkn1F?J-_)We#>78#{`i&%DLzIOPV2Du<-Wb5Je7`a z`rObKxhCG=ba=}v5TJ{Snu_fi&9igTd0=KY`K91eaBhRq7l=!}+qF-&Q~8%FvPbos z(%-3d#OdNqLDW*E%fly#;*n)Y_a`VdTy5&RpRtg+uiO;%zQx@xkYH=U@;!0Nu^|h2 z)@60a^e<}WRZsQk%3MzEm5fp1HkS0b+woaj@Zd&}k-lJ)bR`k%H2G+YbZAoEmmGdw z>h{O=mCx@4J_G?W2#)D2Oupt*SP^Z+Mm{i`o{?(cK1-S+Saa1-W%OWDW-Q|wz!jXunt3jz)-zE?z^ z`UMg8vG;|}x~U1@>!i=r5=lyU$N6{y{H~2e?{S_M zghk#&+zG@42i+CRx?}jM*+s5mYd@hI_2i&I@sN~Iq*7G(V}uob<-5gpqggscm)o9; zrkck*&4e9d5`JF6GkV3ib?-@X)0ZCX=5>44{J6A+aU{W{<9-udhBh12xi`FX>{DyA z?iw)lq&!G=&F>f?_duQd?#Q6M=y^YlM1%SP)4kzB@ydy5U{55(bZRcyW||@OS=e@A zzW`QM)7+dc4>r{*fQ}EgJmZUV7XAmU)l3OF0`^lNKVypPBHcNXYS|dqI8s;6?V0-W z)~S!}p~7%O6-_hWM$?*n!Tr<2jq&|cz_%ZeRRX(mwvrwCwm;i&#ZTMQTZ@gV-s{?_ zoD6k^EhM*G@TthtxM2a)xW)VVm3i75&WO>(m*%RbCRqk)>Mqlc8n@58zhyB{r)EJq zsc-2}nx-lCDN1T-O(mkB^K87h3zaw?}`=NO@AWhS*5e9a_r3_dGRdw+%rZWbLZ;HXTM(ZR0UiAj8E0H zshEv zU8I-SKin$rnmhin-q&v4SH-pX(D(3B6^NafAHz2H+q=Ln!=d7La%mKTBZs|}b+qsvF#`*c5 zu4tzu6#U?h*Dw{|`WVsqm2{YlF~UGP(A^*?FRJIdK9|;gtDy%7m`b!VzGS~{MBZ7H zVNlE7?-f>_#DVRT`aL>`q2$2E?Pe-GR}+mPh6XQ-^rrSSHo5M(Rw+g|YAt8sn8)|6 zQyMmz8ctBMK9POhz+Ydv(r7&UGOpD&IJ}%nb}?j2H}Ac^JHeM-L`)&KT*If^Om0~O zJ~)==K86SOvm>uGfp8je+^3?6S;vaF4-tqy9v>^Zx0IVAXwL1&6i-@5>w=6w zKeRdJJ;)2v$1CZ5e;ch1jc_*tIRpO1x15QepMWNfrCn^$fT>^H?c}jyZIsnv!En&A z&^E6*+YaT)QB;Y&d8`d+!!8O-cP8fNemBC`D`ypb4b|o4bX3?yx|dQF9<8k-m7gm= z9MW%kZ&h|LAf;d=!;~I3*~NtLN1qj$+lAoj5k=wd2rRg#965Gma z?`Fi^5D~VARbje*?w(7w2#&Be+e+1Af+pGNWqi%H3{bU;-SRfO1R0>*>9U zygw`HQn;0+z^11cP+!m=qLqN07MGhzJyhU1Ou?2nI-jAu2I8fd0jk-qhLQP8mCA>p0tOO@;7neTFvHncQG(9nU>g5^ zR|yT6k${cPqwQyMJGb^!L$OQ<{PgG8^oLdl(`PF_X3E^C$+^sbtv?T%;oc$? z{I*?m{zO>s3*BVy(^=vTX=}{r*;{k_7Yz=}q4S!^%1P2BejILyy$_1pQFp23eOGb; zZVro+J4H}Kqw8$M$&kXq(j~gq4A6 zzT=F4j*Z;hC!9RRui#`2kJ0XV43Q^ zwa5cgh`Kd(&X--6mgSC>ZAVYSZ1id>qe4rMRQ}WL+2ySl;_qat1@) zYth4mJeopW7}iK`8&3f#oXR*Ao<)t!O2IDCpsqI12~^>WxlAP$_L%CH#;-KJM;D{g zI1-asY0_S9w7A!X;XTCtxo2{qkSFVA%KqE&mGbr&qrsqxHqO|f4(2G#lx$akn79O1 zxZgw%dEp@bWE87I;}`K;Q$(ZzHGJELyElSsX%}BXC$)M9)WsYX%hVlp-{i#Js|4%|WoIXjdbaEmY=7Xe(5Z72 z!lF|>1FM?tL=CnUP`fVYl_e*)#~{~4XeoGjyNThwXGhaW@8^oVm)Y``;jRWmyjf8z z^-C8Cg0*qZX%}^)yG`eJQA`AyS8A*JE$o!f(mbctJw57HaV1)R|3U8=glw9$ zY3_i6FRM`LNc=!&3AJtL)!EkFNWSxOX4WZ51x3fhwyyb^m6SGk=MmgV_XL@dy>BFE zq#Jr4wKG|4cfR`1ybSVD?%3?tn+)behj+3irFj6kxbfi02kVF z$-GjTLFr+8$_F*l)5@URvYr*=qy(<6{^^YFTNgq2iHd*U;?+^v*@`i$bA)Q4^=(fX zN2-6gSvXQ~I&%;|rr2f_KP0XU_NDywa8fF3;QnK~bv@w=G7H84zyE?oh3W;;*a3tf z?(F^X$-VgkY74Q`G+oi>sD1a6cgkoQ-$aQP{u}oE#9S;VjYkJLwm=G)TUd{MR zUZJ`rLzccrPWeIny8adCL}2e)Jd%UONKq}YcwYDchKHH$Y`F`;eKb)ji_qEHu2_ti zwGyJGBtR=WUJbuh_l2>6RVf2ht6X0c+jNt&CCSmSw~nhZ_eM7Vqs+x5%ZlAGLBvI2 z2fB_DrHW3HP2x*ZHLRkOP@917(bu-{jP5eDPoKx0il*aXd7@UDc580!S2qf{^ z=_nxVtj|DEH*Ae>GI0*nYWRk&W{C5%*}}wsv+S^)z#a*eyM_0yXWQy)GV4`|JFWvf z|Jk@48+%mi$XkU9rW{=>{B;BmtXfu~f1!gKaTgt>^tnP~PHRTb7HiAT|C!o6T%C3C z%?Xa_8M(N?P=rh$_Os!=jD;Gmf=8!JS}z}@{ser%2*@JGN#h;@&%H}Jm|z;$LhmN~ zyjQFi-}{X=99Q$Ea1;}J4+*jXCB}MIwcOeX-H`ohYa3 zjATDCLk(}csn#3EtfKZFhteh)llMsr1A(^ck zgp;n@ig*{h^(Uq+i{Ps1VOMP0esxZ>Nm=SUS&M%x`Tr>U%CM@os9i-65S5bdM(Ggg z5@`iYx>H)Zr9rx+Lli;jl&3^MahWET*V`$M_L(iNy zM)6C9;fse{$K3okb2eCmLk*UZiqC6I_UaWrm4vGh*^Uwzw1009KG@fS7`v~AbtlxCmbEJv%d#atNYDG8ZHQWJ$wOOd$PAgZ2? zseAq0dLneKS=G>G5Dak-$&S;3+MCPvy#wfN%pells@GNK(wPHT@7o@D8u{gPkH*W& zS>^|&#uEwp?*@xbxpm)Ec!EVS^r&n=^O(oZv>Uoy<#uXTlFsw%%%|z2XW9MdllIdU zu=+qU1n%$tC)6!qMaxpaW{g5U@+e&Qw;Le$ZL_lWZZt9A$XL8;_`*!3I)Y4bFvp~3 zwlre3H2W!!%b9lZxtc$I7)?ZD^s#|9ON|xNrwo`zOHPOn% zpRYXn4mj3wcwhK&FDr=F{`0p#T&D@{!Ldm3B!+D9aHCtu*s$4t2u5aV+5MT4qJ;ho zr7cN&F}?)TEko7n(cRApHLh{cD=qVDQhoL`6tdm=lZ!1zv5pmrTGKsC?+7&y0ShT{Vw<8Woolr{u|$cSm?B9^c+n+dx?Zuh}li+ zlUhR-TxGdDwL!C;NhmCLe)Q$zF~9@FmufNS+BcTP59S7x-g)4ZJk@O0dfxTua}3et zxZ*GTA5DZR7LQPlU0!N7ICd0Xzjkx18y3#OnU!_tKWrQ&(yHHU=U+Ji&&RZ2$K7sx z{^GAsV$r4*{IQIpD?g5R?|l$F#8p_`i^8VCNwEu12|`Xcnlj8b?;@XSZ{ys@%zA0x zJrqBzkg-@nq-wri7^4!h`(#DTzzcbAe8fxwqxgYT+yt({6m4a!_o0rCPk;Wp!Cq6L zAuN~e42>y<*L>^-#v&P+M%B|J7Gou z@!qYJdo1_SOCj5_KA5+6`ocZwTvyjm_dmynSXh*)d<%ng8j@0((~noe!n>88R+p81 zwivP@DCTQR$PK7O>8rVWc&V6RpPi&M7V6(uQ_NoZ<@~5l@ZC<~Si-YUNo^|=TH7a2 z^VKAdue}x05hzy4O<$AT=T85wt!do^%aBTUIfok`y9_f~nEt}cidWH%rT=;_e?aC6 zg|u&mj59W$-aVK4j}Kreh*|@iV)uX&XYHW=VfXq-8!Q$e1EX_6rgoOu=9E5NlT%Z5 zD6G?B21Dq|s!vxoD_pdU`V=p|PNKSio0&qjYH zPF~6w%NQ2VzR^vb$(y>P%Bt=>hkX6}GZu9olG`!qrooQ)NX${j4s

wk!v7!2E@UqySo8wA@T5m*0sgEIcE_KC2YKmW6-bF z<|=+<*L7xjznGO|$rsyo@3ZCJNT`#+63@Nklk+Z%iLv0l>Wm5bj{%oT+^!T8q?@yv z8}Q`DLs$E@Zj20?!GsM@6XQYxTaC^jW?M>z_utP6>0<;1=CB1X=JPc$<2f8Wf7|CV zydI%??0)^dn&G#QY-EM0M|a$tRP$8dVXS=mwr{ZfMUjRIJzy-BG?hP0?)@rZzx=xo zE+QON3u?t=Q`{s68PKV7ygQHe8zX@j=B)gyF3L61FD9PG#`^DXbg4@1p9>wwKji0h zo|0HPZ_(+q;tt(iX{d^?x;K&!k=Uo9UXkgmCh8M9wkZ)DdSCHk!~?e9`zZPc=KpJ# zg$p2aJ5xET3y_YY$$gQb}G*QbAP+6;wDR69MT-72P%X>WMpXIHwelI!w( z&QLi&UjXZ=S?sT}pS<0%{#1M@*wj)R@X63VwM07$WBd8%h8o22WO!g2Y@x~oPLZzq z(L9qym=4#ubA?Lk2K?3AJPv_f++r3@t|})#Xl7^Eki@|DtET+y=ZQjm5HtTm!zsz8 znT*CKVS($pn@P=|lmjf32d-Zh9?BH3NOiC*(5jN$H(fn)a&oaSE0Za0UIQ|i3+Q`s z@hax^BHeHE9!`dYBW&dVUiAWnFcKlX{8yZRht{*U7(;>N^3FqyZu@xs=MK>-$5{#$ zMoWn`JEc$?t+hX6uYNV5O5--sXI0qEW~f~2QKE(Ji|gcT|Nh@Bulp|7=O9ZWk{iGFF6;vAt&_X#6CyM!v5QV z{*9}Df>LY*j6n)7`X@3^6U6Ezy!hcO?|SFH)RB}vz$(1&UJp7#ecF9iP5gq##ZjvG zlT_TAD#P(w_JiN|@r0(J+gBh^w7-9PD3UzW=SJ+|0^2(@svMy$shYIS_3JHL7{AGuFa^sJ5@wvp*>HzkXom1r6lT=f1lU+ z2|NtwUb;a^hf>wTTeTdZlCwWr$sB_krJ4_`+l1_{jSYk0D+YBZ+j1o(XFn;i5BEh4 z9;8v@g2P0eU;7W`7+%n8!~fkhf(Hd53E)^FKGfwm?||KXMFd7 z2+H88R!mp(?`;jdwhyGDvM3?;_sIbb;-3DOf0y`iwEt#w6m`&CclxCE2EbfG?y0lW z?f)04F&Anoa+KE-2tK9Uiu zsj6S$wm&hfV(Gs8&flynj)TXzml8-CNOCpC%AQxeTKKTr7Di$DUMlR7s$~4dR|`a& zH+0SzPkL*3foFbuC-4~}9L2l8t@LmA{EN{6E^`zdroO_ds}xE;l4^ zRLq;n`e5=U49FNUx=HT7jMi!Ak0@O%vBp+ zui4i`bQ@Cd8C~v(VbV}DeRAuxl-SEJ<))07uxI37(mIH8~g5gITa$T88uVjtm!ARW!digl4geBai zp5#?;-;xtj5BdIS>8S-X>rH5(!wD?;KBp~^= zLbvyK>lh|h0HTBB6nFoD4kXf$aC)Qv`NJP(<_~s~9~tyy(*x;S*-k2pN8FVhdaWZs zwIW_T_QjGy&Jr{~90au__?TBy-1eZ_C8Cap+Y2bO4br7A2hHAx@LZ$Mz?%fK>v7&{ zRr6|@zb)|L{I$0LA164_1=~82!qYXB=x%qWt@AjW3v!;Ymw&G6^aI$lKQVRmHBYeS6RefX z=_Tr%TU($H)BUy@FzSw1!(frc&7?bg0A?IZrf==XxVXq|Ye2-UY#?N0g) ziaoCzE;?C4M_-#{R+u#^yJ9jj5 z+Px8-;g&2M-RXI%n^|sZ7oiSNfe+z#Q6hT&_>@Kl*5E#W{Cl%RU%D*O6%g+>@Nnv` z%PhQ_Fx_a@iNgjz{r1M(c8~&PrVm7n)Uuibu>g4TkAGV#*|69DBBOrn`d`t?-;ZT9 z2ND=NiAmN6YKOF?NUbH_RRi+?P)YZ-j3{=uBim!p(GVTqip0D`$b=`9h5^DfvIh0ObcaraidY( z_~a@NaG!W$e|lrj$Mk9I|4-IT(H_n9ba$A?s3)oS^6Aw1X=-lW+0i>EowsRj4PxF` z54F1#3}X&KV!Id!@R~b5k{q1CU2Wp2@PbSq@_&$_`vvQyMOzxtDPKyC!)%V(_Nch} z_aB}3UmwDM%4m+n$KtA4W)?4WIFD;`A3Zx92C?;tf!Grxt)HJAvyF9s7W$hJ0Xe<@ zjw${`wt)Tg5zUbGr4!MiHV`QXJq`Q70M0B$hn0-jBVFH`qeFtzWlQZbQbp2iTh&)0%3}XXzHS8^;tq-I%&sK67NcHXo%rCc}`T%|LqYF$7P?Fh5bV#LL=h z?4`1Qx%4DSt<22CQ;>RC!=<#8zjf61#cwX)NE%dvIyzW{*{Dw(Z&ZB|9Rko#8#s#M zY^kYp2Q#MC$u)VG>9b>4*pvsG;`9Fs>lj^-xvBrYa6c{a&m6>Sv|F*F2zS|lN+Ayw zI$C}&nXFw$h)R0TLY@7SBH??NK=pTxhv;bW*bkSa^fbZt)SWq~Pj;9jN{xPe0#fxQ zz8D1b%vAuk(f(y_b4-yS5)>iIPOVzQdhNSsHjfX2mk&=cSc7xPW@muYzlX0t$8Is6 z_(=a`#-CyobOBVy(>xPCKjB&(+kfP;>3OU{9E%uni_fMB8wXlgnKyiAuKo(|lR@Xt z=4~`)P_u#0e9$qNTiPc{%XiPHhrzyeMFUpT9;J60wYBzTY7|kou)l6Z)M(s4-*Nl$ zjekoBfI0s+3jFQ60qGjYH4cVbGn0J*(?RjSTOVxB`1TjYub7qu9E&L&_l5uzx$xY>r{4s=d%6X&M!GYGsCR92n)?y*Qw$rviic{e1N*E1A|{%H z38~cWZ&}m~zwB3b``Z0Tif_w`&i#Lc2cqpb2LO?pjTGq64Yh;a&N7*>dMf^hiYSX!xK3g$2W&EHzo?J&rVaVb!r*Mbo?b* z1=pG|lQ-DF(2{MjC4~guzQZ$4H&x9;M8%K2arE%jM$?@8Pd+}&)`R5~S3)hS)+|sZ zw1_P?-26c~(Eh?CfmYW&P1f5C7u1X*E4p#-pKkKv`Zon}fnPjv=-3Ur;y$F$nAr+z z*S|*U&H+c#e#VyoUm8QQ0LyKyba*u6-Xub@jcJI77Dgs8gaCfZfvn-!0o*UYeZ47s zFfID#2jihgk8Z38?v)`yndu7w?TkO^ybxUMPDYKCLS7Xb>+r0pVg5H|s`qGJ|X0i+pmWqZ|5tUaY<5#9#T zliKP~?i$c+-OUlzi%;0nwCTPJ-Zn`UIAqLOQGxjiCtzlEThs+B#|TH3HF_N*o0(`g zEVnwupz3{ftm-nQH2L<4HmFcI1b5X_iMjKvXn)EjKO93<T5- zt1JOcYoYwMf-Q)e5fGR=m{k4>lK*hz(NB)=(1M&qGSDIqQy1ypk^?Q8bAN_Du|juF!DuI)fHI>jtDhD58e`g3ipu| z_ahUR^V9vcVJ)~V`__W@78pF-Q*b~k|KvCJkVwuQzc(o57qt26&G>~;P#Xv<8K}gv z1*bp_agJC?JydF4ojhro*%)j`9|Q)iojnUX%2KkTDpJJe7zsj6xx4C z;ST%{7ui6j+w!dPhdg|viVCHU4d^yyr@u1JHj{)7ox%~I3w*4~bo!5!EvlJ)a zs#%zP*Z>rP?>47Qy`nZ^PC4ja8~>E8(~g_xw`ccc#>&EKG~zAY=cOFwh0gO=uveqoM%tW_u1#=u-_jl#M!Rg+ltey(?~$ME`rM(<~2 z1ZXa*|ApqdFrnbW(-!?YDKEQD%--45AFJ`R8e1SVfcelyWuH98Xld- z17%)9W5qf#W`4Wx(aO9r^_nhgWK8xOLZ|9+`Mvg|CPoCHy=v&7W%%$JV0;YFKD6^@ zsff+Mo6&KB*3`&+GtIN-6}Q35ZzH{`WrE{JJ2jm*MNZHnlLnV7Y((sIG%j{FxOf%! z`s05JB>v*>e|&ps@A~h9*=qow+{{&~cx3>pz-jKoAInITy8;C@Ju|=cY;$ilu*_(& zQo)2e2>NmjaE-0X;uvjo{Y!urOtPx9n5Zlq7dbm=3!tp@Os@UjX%+No4FrjZ zwYdKo0P~@b=G!9Pg<#9703*j}q1P5#2yjb<)n<_y^l{Z$r70|ktrm@*gn9`emhKGD z#-!`8JAup$RB8HFkPgkV3m$XUS%5Q?3oJWpx7MNu$JA9!Vts^t8OT(Cw{v)a9TDOi z%cez+!Ss)lO^H+?EBY_q`^Q3D#6u8%QD*)oF-zMeTxaR(Gn8`dN%{SXkigDkf&Z}TTJ+3jE#Y7oWkZx zA1tt0@4b1g9MD?4_#1X(=6ib|WXg0~uBj2(Z9GhYoqh0UE0BxQa8>+o*~&UjZ`Yq& z>f-vR;pCH|#0gYx^1HFN)kg6J>{y|d6JRm)llkq6@L5!q5nRoSe9b+8&|1HPFWrWS z&V&AXBZ?g8PkCqHfD1PQ%(hg)1uc#Fp(2b8S(AA$8|3X^7?FAzQ8Q=$QfE(1XpGc>; zEyTQ_XG>GRuzg7k;ZcoC0FW|hl(!138@G{pi052?o}w3VQjhmSa{;+uXXxGPJ!9?t ziT&4PppW)p#;`MJX0O6rv^%6mBEG6D?w;lpRQfz^f7E5;4lQ0I&u-&)D0N zT3-GrElK^=2txD$9r*AC2B_z!F3@g3B4O8lZ3E7vUSNoBa{zW;7)Xf3DpR}!4myqf z^4Vy79mtO)JS(r~myH*2$P>UN94j*D)P1j9q%XtlHd*adXp7QMQ{Z~IP1wd~v-sgf zg^%nxc+&~KsXRX*zmh#T`8II6w##8T(wSeKVB4<`Y^+lr^Fm>gylS;T zmI@arVlFVQCX+C0WBiN*;I=kU7_R%xgZI;<#;+`m`Q&w_z=;1qD5-lx&11 z)+0K3`NNW7VEoDX8LBxb^O%VHit+Z@1vU{yzQcdH8~ADM2`s{U7D>1~writ^yc# zk?aXR1xbJ+kkhG8@i=n=tl!x9DDanGKPseJfTwV&NMP`I^!AvfO&H^5iqWN|^LB<* zQkSdO$puH~A0-)s&Q7_xnl=2&g4r{GKl_%99*h_e5mZ`ZyV9?GgaBl6`B|5Tn4^j> z&v2PpLyvG9t5G*Ye*pi^hLrcDtc;b5lRARsW+As%M59$K(DW-Io!!WtP|>MGK|cGN zvEO=!pH;cew?Td8$Q(67?w|gZ?GRRq;}l^q*!vWQt}(o2b7!No+uC@HF#b@CC0a8YE0_< zPFl$6+QYXr0-}5qv_0(kLLRo-gY*edeuBu{3FugvE^9*%thgIE~2r^X}SV)nH7HOqJMyJm2^SnW!K1 z9{89rgI1m{&h#8f5AQhOcBAmnz?7Wez{WLjpt%k)QsQ)d5fI^@Fbn6NCV+d3z*v2JgbX^kSb}n@QYQ{}j}=qkl}iE1Ol+!m zcusX)5-pjc8y%8*o@iDi<9QfNe7B=VXkYyp_@`?hm>%;ZM<(9@wLbC5fCIMgzB?S< zqx~%i=sP_1kE?wupB68?t_SdDf~bwJO-dR{$SL{KRiL3jA?jx$5y%R^fn=5_EB1)( zz{6arF!EN2Ea1MU&(fh>5WzWNMh^gJgEtX}U)i-M!^xEO!Ysst{3)M}{pZ_AKrQ6UGBi+?Jd6# zYvpen-AWVl2KAVh_KlC3DYTpxVhUZi526kWeaujX!~|e`=ht610F(l%%+_Cd2!+g? z0KaQL7jjRvjM<|9qxwr^Tb>WCG8rBBF0aA2Yup!1cEk#~Ahp}v_8}K~8cJ03`ORq1 z`@@{DFH7x99?DdM{P|zG4N+lF*~8kORYU-EJ0T^c{RZ8lQ2I^a-Jl6~P5a5`0ncQF zNH9h08rOXlzl|@Q0WsT)oh`U_>lg&hHvr++f`-&1@gUyii5)<89LSI1QANwit*pR#w2cm2%ru&-kLwXj~iFd1J1LtpR+SX?H5pMNYTLdM=eJ z9XGstH?9VMDPLs^wTKnrlI3ziRdk zQw|7QT2uK?Ks0F%jDn=FMMv~)9-Bq^VPON~I)F^=0UdKf^vc4koxAH3VvsS0<8DKh>gKu|$Kyg5M~Y6ZfcU40J{M`OSiFOKfSg6s|NdclV^ zn;yP4M8c-mZrcv4q55z!@zJtO4P{h&6vMHu$uVfrXO~2jZHfCar_S;^_Dwx~i+kf% z-U_VKZ0hCgJm>5~DA$&xro(n$4dLrB!F3_J3-~%l?uAI?)Wmz-dOBgnS}HWmm%$jI zd{HQv=hG1qSjeVTTP>OrCJ2JAyeJPjMgkHNxX)r^o)*Q%+0C79twG(36z73WD5N?-gS>{D-e0VSt#_7 zZtA-Vi(_*McAmTCM9Bfh0@$&E z&(Cwee-0z%>u(&L%W(wse6SE6tPTKLe2=hlzcMpF(67702PMj`;lFNs?(oyBAzm|o=Xzy z8cfX|rva@;B_4OqCe6T@daOJ=Hpd^?-+b)v;>q9Mb4sZ;bjRKOL!o{7)8R0l5w)ZU zK~vr!CrKMEE{mQ!9nAvkbVE^?oB&^&D<@{M+AONi$!h=@=UPfV_o)btC%Wfg3MA^O z_o?@ZY?@e<3+nCg>L41rJB@sgKqn$kK>|lh{WTp_htUKPk6MuLh_cAppK#DB$@Dts zoOxQ{Tdf?9YQ(TX+~x1~l`F}JYQxAWV_1{OVSjyM;$VcvN_!&y{t29UVCe?M{AN$1 zTN{^mapG3*)M&)5>p~}+O&0ReOmR^JbL2YiypwY9$HSUVkTsA_?qj$ip=`oh2_G!^#A1|l>pWU15a3_l~^%Ok!efcl`fgzkbS{Ug3x zef_%fmghA&pjoWEs9!51S(7(j^)Yrg11pkT1DHMg-N6?my4O=f z!=`6|r7lHi2^MJF>B+vl9K2&R6X!}g8xG=%7UL;3pZ8sW{W3<&z%oPtN57<9ihUI|S>KA` zhQIcD%nMEHS^3$mQ0IFSwo#o@PnU-4xx~u7tnSuoDs2H&)Cl|>zjrYOlldbca_a8e z2n4~bG6*QijGB#gkd%>Gy2!qO1UuefDOI`fMm5|Fa2b-RwMeFZ#*67etenk{gvmfP zw!$9wX}F(W2oNPK>~S>G_gn3*4m;@iv6;%K_7<`R7?_wg5#QCtPg(KjmS}9)c0Yeb zQGkkd4bQblEl{bxvLnm-KOt3$WUQ*8Y;*q zaJQF3u-~b$0)w)IHdv|DrOO4JD}=XN;(w)0U3 zf(*mtPu;Ej{yE!hy56%jMVDN^o*Y{cf+W%R0dLqk^@EK_zt-m^eV(2w@M`Jp^L-}H z1GI>6L%A?TmPaUHs{k5PzU@kqf$!fw_Tps)y&Nb*F;dL?^!GOqbgG%4f`*<-<#iIC zt_dmEo%zIhaxr9QU~cdoZyvcep9lCuU%01?QwS>XqB?~h7fmWGjk5*r&RxGh((cqy z+&V?!KA!Xp&1w$vtfMH!)vR%H9=fvn%F_Ddw)}Jo+=it?!Qa=CX=3Z1#W=4$rq$IW zdoN+ruJHpjec-(8Rkn`D=_J_%DHs#mxx$MHC9CgU-N!JuHmm`pyhYAg4b5osaV$E+ z3y%41z++Si$K40{>Fe}9Zb~V>)u~jBdnN~;gduTy^bnFgtm8;b_wtS9sM8k5k*I2i zNc;^)3jLEa!8Z`hlrKro8eAtm4haJs?oBZq!e%09q$(ZEzelwSP@H1jF3)B`h7qVGBM*feD7Fi z32h2DF?9KI`Wg|rH(Otqxv3eqPR2(R(W;ML-{1g(1szQ=;D>AI<4ci*7#ZV4WicLyY(7YCw_5$i! zK>dlUDknt)vFQU8T7%&7HH%-v8)M=e(gpCx6V^7W`2)p=^+sIiGNWS5)h>KtSJmd+XQp@+e-AI-9;y8Yj`UpP4a0xEIPrBgJ17_7HgfhU*5{3vrGz#D=0M)!Ug|CQN@D3WG(307Bxg$(Ss5dTg6kvb z1fvXQv1*tW5ON!bV;p0c1e~9$BgmtD0-~&q4a}4|*Gu!OR(T(6)?=HGwjxG=4_fnU zK5cNS7ix0Bg)?~X6M0}_hdDHqHg(j2ZF7p_YS=oA(K=u-v-(lMy{84_i>kf{9ILPq zwAWGE?+M=IoxZeBCFA})g4{^sGemR|Xn(XECi~fUwQqV%3dmsCe3LVR_>@L4-oUTk z*bHsw4HZ6GR#p<$^nAfgMT-TBbb8=^O9AK0uaEs51lI2}ixf|ZSF%0FS?z&ezslV# zKzX{Q**I^e-us&ih?gYZ=Y`yC+?){+ga^M3{|5O(`uuUm!_nMwA^b9J;(%&~($r>kAO~KnkS4 zKR{77*jbo$lSoA4IxHSUi>+4XR1Oufo+#9lLZImD*v#qZsT6FrJ1gxc1;W_o!lyd} zdBo{V5;<#yx{YaH@2ECUIxUe^$6;K1CzB-P!jrNFG94VI zbpbjmS2(d~znG5=VG;LZ4yj^yg!{)df(Q)vx*gj4!ZeIxfOK0_79WhyVieZ~s1_Jw zC`jlFvrQVw3y0kGCDVP@Jgtnq=Y+=L#`}z7^_#M}`Dn=}s;ez8S=s;mYi%0o00tnP*Yp`e9V5=!$_Ll5L72{EE4?@)<1rwF+a z+bNTr(F%I0b`;ucmiTGg0boN19eKa?9O8|%?tPR0YmD5kS1)eg-Qy@e8p=H{Dv3Gw zoRWJ$_9(bCf(gTrFl0A4&D!96Qe6PlDAT73s){)+&XImijkkqEg)1P?fnZM;Xqcy6 z^EIA@$9A8h@2dxhCJ9lHzEIX^ogSEL=@J&gJNG5fWUuqUa@JFd0%z3!D+LGFT7eN( zHg2o+O&w?q``ezw-q{hou)D&cyg<~kHtDhv;zrttN(Xz`d2R_}&O<7$MPhZ+b*DNh zU0+T#noi&x)`s6;=N_CpC(L$$ z+;vlIe+CzFFc&5=S#HF4-vrfki=8%j4jLRbM>;q zQT;KBxO&eO7G*f&A_7=g6=}#%CNoQs;T784-sX~gQtilCP@Xv>mZIMUt)WZL;R~ZmJG~2O~3E@_Y4%?i4pDB@|;#Qq{P zz=@>yl&#=n>6ZQBQz`Ewef}enM1(8K8}+pXBMy6-QeDEe1O%f5%f-M*4p|+qX^fs6 z!jmcNSNh&d$sdrs4Rdq`Hkl=S5O6ecr8*K;D4b6Me0JN%u|gh`VPue4lv6dt-DmV> z_d#aclyLM5_bW+5QD82oPN14ldva5CSG~kosq08vam4S^t(0<*RZy&XeVuYkw`hX7w(ba8Ja)0}HZ{0Cj9fJn5Xmh)l!kTG}S>Pj}0 zu;)tJfTOcGHzu`7Sdv0^OMx!oin${}QW(LP#)*9r0M0-rj=6ieJSRG5pM`QiKetn6BLA-5(bpQad#E=8A4qehT>} zF1X88L-A>qZ2#WUn=lsRkl&g2jlDnIT5Hg7|-i}!*&xbN5eQR+pR{F#A0k#-? z2FY%us=)}`gtwJ^Pq1^x3Ady+4DSGlTm~L?wbTu_alXNxhRWFWh@8t)h6YJcxALOR zomBD6q^n!ioVabQ(mKEJ&17q;3c&2VsGvZgOixbGGxC@4!!rp{tNe&HoBl$!9?o}p z@F%VNHM;(tKl#f*QhX`zHR?3+0`I}QKILc|1%86s^_QBu<)|I^)+n8~XV~jhiVbzz z7g30HX2W~0c{UdagTP}|6rBs1YO4oBn1D@_lqo2NpE}@E^$0X5j4`a&&-H+El$x|; zIbbt}o0MA0akjup<{YT%d6-``+JGFzEt_?KDDB)&d@Hw1&{EwJ2z(FA_Z>z}7$}&h zQCr%TmzwxlW;L6QZ%Jqe8i*nnHV3_`)l7dCJQbwmH75)LbiHR@Z~bbr0{I&XTd%dD zfEbkoz8Yq=-@%k$0_b;Mo6$vKGH!Yw z)8hpC2xp$Ui8={KH$djcA$v!KOIA62OZ4K?An2`dpi9{b#w9p6+h0-~5qfwyExeT^ ztuW82Bc>Ki7Ta@R`YlTbP?ijX6RKPC)LsTI=k5X1_i%1AB7KzSY$L)-t!t-GY>qtP z3P(PdpNWrNHcJPYpOo%s+_hT^gmTL9(=}KnI2)aQLXeRS-VQ4dhEawF_^^njAc+=% z$mF4sjjJ=g_0YtIr-YZy~aZ%#-pBj*iGRL@0o(Vm_Ka&FWz49IhrvkxUP@} z)QY#gYA043|V z*hxj%==@2ptB&$>E$}$N(plu4BdAJE*R2O_(eCgdx*h6>Mx^w#aujR3#tteXAR*N{k$=??CAkE1hu#p>^!i@`L68_L^M>5uv_nt#Suzu5z)#m#w)?TI?dEXY4SyiZwFoQRH$ZpmQm>TeJMkH!=tOzLd)(vtv^|_re}?ma1@E5_wH21U)PTvFqbz zKFDoG*ax;)A_wq{ex>q}ZZ*@YG{W@xv`JqkAC8HcHfw%}H4EX}$nuBJ(I*9V&bwdV z!wvM=*fmRW01Aq|2_uT(+;c{4kl$T=@J5iLy0;G_b*52BG-F!p3T4WTSThmB_owos z0UlS6c)X5BHa4bhjzC9UTgcY~BfDPN90Fk}>Xp>v2eQ6?gR1WMpiR#YF{g=GYbpk)1HL8%Vphg%w@*Xlw#E4G>JTQSr4DOUvA{tO;dTE~EsK6`#ot-@-^uzPc6^*69C*J?K2(BdPyWdx zcosdH1`(_+^<%b_EUmg)GMg?A`;Ob0%CW2(MVu$nwCY`vvU4lZ4LHec8xKO-T`h^Q z#6A%iKTH*#DBwOgTuQC_Sddo@hC{~_e0h{22+e@RbG03AHS)At4L*AjPk>8fA#v+l zt(!|*RC#vXB1%MBK2Ayh_kqYm@Ja$lUG~?_(RQ&`ACqGb%cJtC>Yl&?*Dpink=s7=w zhh=w=+jt@qKsw?#?tyPrxMhts|}*9NcC#?9sA1LmDz{z(30_IjJUb991?H_ifmu zL>U}oSFHj$a zB-U%)43v-sl>NFwozcKdRE`;KdBEIBTFUpWlkc-NAHD7!8o9lJrPb(kjjzH$kW6?uWQ9;(ZBJHr~7{8Nai0ZjoW z(cWoA)9dYXZ~PkrCYiup+XIE?7|1$V2HYeHBH#jJ*wprbL;oT}{ zZd5c)D;dFO{#k>uyKi5*2`(S=MJ=KXt63J`P?`%q0L-KYFKl*r0DdDyOXsb4)96>) zZZ+1A7Mt%cpKnPO9bSc>xSB9%yhu9c7_2R_o3s`=5H8%=fH0rSYv()K2c*|*I)PnO zGR@WcMd`U~k3wssPzYACRh$|KK$!U)S(|a*UlzuHgf%JEKO?(UpQqYH|;Zt@{Q6b1O`$x8dR?A`x=-_=k0m>;07j zzqe&(Hl_2LFNT%70G2()18ypCJXalB1F`FJ8eD(J z{ZvB|pAD@{a6@9XCuLW|nOr!fYroN`LlAt!!n^Pj={A&Hr=u_=X-xj+0U-2@m)k~? zq86iyB-o2s*Wjc|V~Yxe)W`|7E(`}benyN_TR;0){bl_jK$#mv9${CVP*@UBSBof4 zD-X8|woOmL&Oi-nYiwC)@h1vsFu`gdUAm-`L?EU|Hx^U`S{PGeh^%Y7f7V&t==|s| zazq?>8p*q%9DDT!arq-DP?)|WHlOBwv(ctU%}w&w+7hDEZDn$S5;=AD%z2Zv*Gn%&eg0i9c5fQT0@S3qiHN8*%MmwnmBY)fUnK9%D2PR^gkMzk>vtY%e~u^0aG?jubUE!5#q{ zc|#ZhU!Repv=@q`Rz4$zwH!#OX>dpwZi#CgkqFr5bYf~|!5cBy2zxNfybqOWci@_Z zx)0cyG71QsQ88%Lx3+*h=SaIt1Xj?bPS_KiD6QxtCm8Qd1t;Rv5Aa2I(_UCT<~wwk zmJ;;cAX~+1ZC#o>=D^)+q-R5>$)zPb4&KAQS_7n6$QZoLjs()u9A4VSKxAf%({nRVOD}EPW2CUpbS+`$=~~KQI4mxRpziAaWrH`b zV(u)Q8WR?}D;X3=)B$Z=OM;Hb)!}9%tNc1pUM~DnY_+|x+4!{)+0qkk!sE7D3cgqR z%5#LHg}M9NutnsbT89cYr_vv++2fr`qS+ONW9iC8=-JFoK2 z5bxToF1i8x>t~PHDkWa~6<}IZBjq5?k4XS{q6Lph3MY<)*LXbU^XFiul?m^Wq|a*hk-aw(459A>s>x;MCp5+e zspnv%V(l9ity)3+y~{c8i|SlSMaT+y7P#!(Cq6-3K@RuX7eBO6teXmP?4CKn>eY@U z9P>a0rj^Em953X&6Od5|R5%+#ZRmZ}x}&k0&g}~{py6<3DTWQYszZzTy;bk52p25V zaGgfG?|8#h--Xx9=hV5-l)&g%RT5sSH0v^|e*N*TnW9csE@sjvy+Iu4bCp1*U2N7~ zYZy9i8BC!w3`Ryua4dPbE+5C~g<7w`vJpA6-Jsr}Fd2*TnX7Q>Vj%EoL%*i+e<*tk zs3`aEjaLx_L6MMBkQNjqL>h(`6r?4jTctq|7=}i=L`qUXG3ZblX{i~cK^kP}8eo7S z?)N=?&i{AsT6e9pT%2=MW|;SVzk5IXc|Ln)@f|Sq{IH#Ds7K%)I~71?l2rO%8A+-8 zopoy{Uk{6S$p_fwK`xz-ATmMiSa1Y(ehBhvqwA;bzIlmbsnB|;3`q-}Ml~>Gia=A@ zN(4(gZ?wxBy&mvvN06@yoEXm8P19qn_SO9m({ms9i2`nhRKD4jQ=)gL*0^zP9r)^^ z3z%2nMmyJMnu#X~ib*5iJzsY_O*8jpE4$YXLmM80mM03mKB#NLP!>J0niXh{r;kjU z4!N+(wY+6Uh8+^$sI|!Df6rA^+gItB?05qW+jSb%YhZ96VRpaHv?%Y_RhEwCMV~`6 zA!behwxd?PJtgqh^Pxmsgup~Ye2JqbdACgy%eA=}U*r9TATqHZ+&8vo$Whd9=6Mx1 zX^2fx;+N0{n|3*oFH)Sg-6FQpJ(-T6u8xGqnAUk_Y$DMs=`Ni&VacyDmoVqI?x4uU zW~$osQG`#&L&kLhrk_CnZM5W!fXId?%=uI+2K^cpfu;MbRs)o{3EUMl^~OYK(E(?a zcYe035Jek-6g3@i35zp&TxRE;C`%O+L52YLmVIO(F6{0<^UHs=oc`lXS^BSeq1viw zx9`bcC)FRKNmf1?=Uvj44;|y6^0x~;{V)QKhvZ}%V8u|S^`3AW)>oH!Aeu%)M8WfU zy;}fvH;5_n@>#-Jd3?^$=uG&!=&K2DNRyx;H4b1&X^Xn54+8uFqtv`g#E-`?1gXM~ z4tnRVBU3p%%vE5qz1?~Eyd?n|(#Bj3sMcc( zK4ZQBENwNfRCoG{GMQ;x8-woNNs0Md8M@y_@{_!Y#pm8Yi0P$9phe zxygma{3AMIW_uXO2>m%=B)me-GFXH^F;3>2!Kd9vlwnompRNP{aUt!|dOglT?&x_V z0S#@o&z)kt?qo6{igqZ6N~T9)T~rJk&(Skdlu+`zFWOSYk^WpW-!rHy%^tiB!L}ZH zG7n9^5?4m@z339xjm;ltpAzL&P0^lO#7N$IXoP$e zzS2K_4xQ#os$foPMr%{5MpWpQtnk8wXA+B+s>NY99P8B#o=o6`s^ z&DY{f$92;zPL7(q)&cC{VO*pUFs#a_V^>G}OA(VL^~N6e8)Ud9TAUlpJ>K3vP^bd) zrIzqwpL}w(8#jNKKbWG>p{K1=?H3;3`yNJ=BAU zFw7_C{HAHk=w4pJ0%ZS|!0P=uZ;Q(ZwON@L@=TAjo4k{ou5Rbgc+PIntpA$!RM!@t zr$Ku*>o+3qiF<3ig0u4~mKjThi`wC9*GIaBN=zn!yAGuhbNRE1_Fr(U*4B5sv84^r62+E48O85UE z&Hr`ZfiL{;C;*v~LZ4LdPeRGxXKHNZ866*TW)>x)L^-CA=}R&pYS>xPS&$OFoc@mt?YFaHo!yZK!_Sw_VVGtG^qVIJxWU_pyueg(yz+t!N-H{Iqw zMl-|WOZe51OMd4_`C2&V2^r>O%LB=Hk~26X2~4-i%voP;HQnuVIts&zuU9sMF%fU} zTV#a6_m(%TK4PRZLQTuSxxmvf_V_Ya;5zO)C|IZwS;4w)1j?05XUo+tue+L@ zm*S)#4bSQz5ktXzqBKW=vNiQGhBa5=`;~?~Glnaq2Nhep;oEcAO>m#Z6%#kz$gk|P zDJH{!EUe^OoZ|Ho;I|h|{?$a3Tl-{;ect2=p}&pKK!7Xh%Lp+k?_&=}>d+|i8|I^Z zMUKVvxY)8;@GSXqXN#NbPc5Lh?s=~aAsv=O1Ja=hXO`hUY#7M^R4wI#sUh9WC3RSRgPW5v}28dw`#noZNGrvv-z zW;2E<`QCNBULY_`6(_4nEQ;ia)`%1ZE(KN5c)o0rx(2mVmy@D)Ar%D55Jw@# z?z1_UkutMHrsS_ENX0x{65FQ?#($=0yuPeYdwD4hw?Aps)G_>U!S&v7kx7Fz`9hcYc}AM^?K7V0BBRHt zOPH7NBwQp`^>8zKYjc=T1c!Ls8w18$0wQ)(%vWuq>%E;wbDfR()nJya>kRNz*T}6+ z<`}hh@O$ntv?1c}H^1l@R-@oXDFq>U{&z^9z z#46+8{cEopbk7mXOaop+IS9|>uGT8yix5eDlmb12jU?^N?+TP<@y_B;$O?LMeVjeX zc=^x^#M2EWP6B#6h9hXQ4ogEfIRmAe^4KvE%l*R&P5~ZH-~7(L6g0=zzAU*DTV@Vr ztgf2#0B+x1MSRAJ8t9| zaWBD8B@T=o1%&hG&Fo)^{t&YDOU5S|7-(-LF(s>HxzjAhqGL&Jsx=kErQ)sg0do`t zf{IlYiaU`bQ6kg@aIjlduT?=W!;bVWW!QY!;v!AlwWmvB_&-DUlFv2S%WLTETARet zOc}FL@N-j?x_2|YrGsa95j|H5VZhy}=W&)do}Z&wyWDAJA9tr*al9sbk9SDmV~E9V zgye?nDZdbR3ClvTcs>Gl0+h3uq*6@NgIi2@EPcsU=gIE=;DD#%h?Qej6;8S(uxfge zLB^r)Z?^j=C|!IpW|n!!gr3F9L@EK(oOHWW@mp~4qoH%kJ*x=s{4psYzaYc8Y*Rll z1Q`wFNz9=$7Bc3>i7CGwx`XU=1@N*|qD4X$lW;+9bJzFGZ=1jt%cy+{mg2>LYqD7I zN$)rPfk?E15pt898Ffa4RnLaI(KS=djFfuy5vprLP_Klrc^N;GlBfwm7vvvFMdOQ- zXIYwx`Ir$83>im;#cf>@PH{?;2fr|zC2eZgdE(CS{uq@;tV<4sVNwLb%AyWlC3PNu zt5Td=RbI|rCW~fSu*%%Wy}`suBI_^vY?9kil5-!=a5iK7;AsN>W&VfWADS_Idc3sv zn2?oANdjr2{pWqMZHR2d4}bty-(Z)|XkT)}o3l~OS#6F|F}X{W=rX;zc4xczWJu*# zk@jPOcz7zdc)wJkRlrPRd`m!>9{o6bi+v28#x-E&7&Lf$nU086Z!6<0+&6>e8J2pf zIm182iTIicUsMdiXxXaKx-QJp%(&LViI=eJz02w0b_&d~66LWme=Ex^?$;$it5y$DUX{v8(^yMfX1*nrpJP#@xH33)ag8a`8{MTj(79|;P*<-sX zk{?`6Qu6U;i1Yn`b7BY1U+4R`AD27%IP-L$^=Hri0B}mV16N!X%R4jFJ~oN*>;Np@ z7$Kwg^gVy|FkCr^jq#iS{D(*;i7eZZ_5|SXT;mG=ev|qpi(hgIj`)WL80I5_Tb1^> zbb^PeUf@4jMSuZIg){sLs8DF7u+OWp^k}kUm(2Y=%`JV~!yT}sFWoNDU(2b;s%*{F zfZbCnvBi^y9{!~{GN~-`vTWakO)Eo0Ly>-r%2+sf@}+zmjYW?9c4fG#=JvfPb(Kmu zY`xtKT@N;W)L8dVsP61B;5eA$LGDLf)%t?*w2_YOY8R`u;dA%Rs0SKL$vOq%xwOBE zhz4(p#fD46_Lg?3%hG}ZONyjprLRZZd-&z%*Iptb?*xq3-C!OwlWOm-uW2RPM3^)e zd-=rNp;-<}V2%=0`jvCN6N-fYCALCtH|n!Jzk@)tR>=TNay38r-aj~rRrjPZe;|GR z@5q=g^}Ty3s4kVv8Y9t1_=|&y&#LoE^C!+B-4eW7fREFqI4i32xP#-ZYP#5kf|Pj1 zjRjPuqn-hKdUfa~QP&^eT3VlZ6EvH&zJqwmje3H{(Om}{aA{vtxYugq`t*7Bd<7X-z?#N$gBPfg`@;7+%qF?t>crF}rh zZ4M2El+i9=@UfDPM+T`W2l(^<`3U~Fg{b}AIJ|iZ=sq$2eVhGlEcSO(G-cR30(O3g zpJvWF0{W$V;Jq!W#0$GH09NV(*QHGegL^WxxsmD!WL47C=*@N{vEvpXEbva5Yk3=p z|8I)aM!{z@3i>QXb=5yC%AHsIf%rNFb^R;7Zv%1PIeeTz_BW+VYTEDIY}u7R3@8wN zwd`MJ6zHJUWPy13{yM@eWcQ?>{$1JrDHyRUnnGbfC{Kd~b0&ykvI=g|FJSglG%wa& zl4v{l$qK0G8JB4JzHQa)^eL|ay|a{A?&WXc%FrCG^lgx3w@DX&;l3uh(<|rRcc0_k zV?mD2rxeh41L;36?D`tgo|`Jkx}j=77o=sr*#8^@6{C&!qANJ0s~cSSz|jxip9!%C z9|z~w60q4dIxu*KJO$y`ygy!(f+9mXq|EF0yMTxzOZ#6R4<|n! zRI@RF#?ZZ+zg-U`gC68(8ah@!NVpX}1sEEZL`AnAJveQ@58_C55c3fkumjS887tqR zy>9+Z_^&m?@j*6o1G%PMu$?s9+i9c=9z9-Tu5l!Ow{**l*$gi?0ek%K!ZHC;jU6dFTfa zSo#kp^>4pZNkv-p|9;%yzx=<3)WMnYj!zE!WoJvP|NGsbOUV-d_5X^|{LSq4j{T1(;gwWCC~dv>;kQjsS-BTJApXw}1bT`8Mf?8sSNsbh znNk?vq<#a5XA1z_ECacSCg?F$ z1D+oCfFbZwDX7*>6bD3sAK)Qi57mf(!Dq7K!nrIS^evK3U_1j-EM#3MIUtEp$Yov$ z{e;!Iqp$m>0U{xDJ{t5HPSXYfXWN7`%U_6xNA1#20Af1x)dEz;2QLB&-G`_U;OSXgsc<1*b*$*PHtvT=UpS@Gd(R zf1BGMk@YJ5Q-yO$Jfp(^j-Y2T65F9sbOLPri$cdL|Bb zeB%Gdz2M)1|N5`WjtTERgrUceF8$*Xnk7NrtM|v-Vxqag#O4ELf#!*?p`CuvZg-H3 z`uS`qf9d@Z@CS}o3>(|7bl%zkJ;p{`<2!&)@o=#Um4?FQPeyoukCwk;z#GGj&gdl? z$gKXB>V&A+f#)yX>XIwiv`7_m`((f|^vp=|a{TQ8WQ67OK9p8e0Dfs*!zb;J<|pZ9 zdFk$@)4pOffp;I=FdVA5^<3>wEdW*aDy8D_zh)QE?FJsmzdtu)lfkDIHu|sK2VijB z3yG&LkzmuA?JDT*!g`h=%LB;R_7zqwT;+J)Mll8AsbpOn6E$C%1ESeqYfeK6fw`va zO|VMc;6dG|RP76f-dn9NE7}0PZtRwBVcIjn1Z97}Js;v&ZFzk8Z{)q6GklAhve4TA zZ4vzI-0@5}S0U$HjnAXz6zczb4bksx`u|Cj1rG*JM|>CCS}0-&N}$e%&%mUhlr>tU zDL61`p(pj{1&*}oS7egDd!sfyX^W-6`zx>C`k5S=?!zH#=Y`mZi64=Y846EZBAP$kZBt|%SB#8z5;Ali z$`NrB7}ZKarq{pX=lW=)`+lzHxsjG6Z+Mx*mPH^JCQ^;pAx-G1c)za~qdxrE)dDe7GZV>ZFj+bF3iu~lYzvbJtkKG3U5%@N zb$94H!gF94_r5D{Jb-}2ka~@>9Rc_QJW*W`$e`2w?bWz;AQLal0?2PT)GZ^$R=D9{ zpmp==GSnWu7I=JFBg~-m!}#U(w*Dr9K7=dSJ$gocrX%yRFrFoJ;7b4)ey*rnJf_bl(G$C zp{$}&2}f(gx*KF8esX%yRBc!Cer=7DZdAF zC-mZ6v>bEj>o^dJ)p`~vszFH8;QQ3C&Ka1TYT)r6wNR-#FnL})Vk-Bb-VvuP2j~)h+xj81te^Jv@DMw zyB{N8$;cU^><+s_xXwEi&d&ySKM+J`m`R8X1;9i|LJ5t;<}M9kW&kOtWv>yKt~TOH z_9N3zoYUeh&-d%e^#w$W=9M`#R-4VtrmdN+#U-x8E*D~7-_)`LC(nA3PVxIy-bqCd zWJo&A4$bov7p#4*xO-=rPbHvnA6gUd*T%=91p008(P?%uxNS2So>|7Vam={ZiNxEw z;_Y0jiUwMm{NuVy@V3m=^zepTO-CNSIWf;s3P{Rz<&1~jXBFYc>-9Cg;-qUf%at#Z zeQ%)^iepqJY5Earo5%0G)^lAm_&4n8wGK-DSR%k_gMargq!D;jLr?3!($yXcY+0gz zGl#&vDecM93pg7iP8@&%wIwT_Sp`1&5fJ=Hllwl~Um_c#v<)O>{(MD?lxT^3B~+@^ z6j=)lC{!<<0(RP>uKfi3oMn1h;=Wl1S(8pC%`pImG7_3q>2umyqR64a=goxz{VzQh zfa}!BUa@Sv0f1MpWbI*^~DTS9YR@|YL-UgEp{$v$A zw}rWbamW55^gdwT7|g5l-3BEA7*<1{b$Km#532JAL2qd{pm208Unw16HajkSC*N%! zUIM9j$_M9H*hmD5APNB)@f|6X#4Xet!LGvk!)J2b>-`bi`i{vl0O~T*UoT+~{2w?~ zQ~Fc0v%kK#6JTNXaWCaIBmELYaYA%+phTIF45g*@zlQ5Tv&Lqt;cqoc%E90%?&O9| z7{FNzylc!TjZyAT;5Lf9lQ88HIpLPN-Of+KVFqJksvu zEAYkNHB|47pp7dd*jv5OS=L}CWZpu=8iR@5(WcKAxi*I-usMf|FN@=!7Euhew=PXg zyHws<)tO%R{r~z%e(-9Tk2QHa*AJbySm6s%H zM#LNI5jMFcL$K(~b&rpf8y-UaLeZG?-EiJ!*C=m8fTJ=Jf(MF3i&nQBDc@L0G!Y!= z+OfNA&n?9tkGO8=*s}F?+$Ca*-p1qyH_9yoL-gyW@?(~yn=i(?ELZc%ZG-1j^3pxf z*y~_sY;k>{ksVIB`D+fbhlk5VpT|lZY|erkvV$3Y)#}w6@1(GZu<6={{YV-0c+NO3 zQuri298JCCsW5>?@d&x0jOjFzc~GaC_ILhe2dSk`ROQRk|PT3|ky&tNKklv9b_yDK*VKsGmne_*k~FPrOYyz7tnJ>E6h))5n%y+hU}Mms8=MN zOa};LD`k5M)6o16UvcX-HI^bx-xT^PnK)&hw_fd?1Orxv&r#nl8kYpc zeuLpwE%d4(xx$FYTnC@a_~LWO6t`OiW@iNeLSJ|hqo}tU95rgpIK;*|2AhwSTLlN< zS8xZ6xPzIT@Jo3bV35d{v9d{CCLiED_nFw=w?lTjeRN%SLj6kz6N z56$X;tMlsTKy?bPcZKTYG>4e%fz#s+Ux$Jc>o9f=6RNJ!RT4(E1=cs)EB;h&+-8$t zSp}q5R6bih+ZOS?lRekt?RAM!@$#jgIbu5UAV=44 z1sNu*Ib%i9T)5Fp{Z$*iJ_gTF#|s=TuX}>vLTwpOR6f2Ja9FokFUVfrJWI?-sveEz zLMg5La!WPG>^!GOtKQhqHbd|cu2*Cu74}RwjXr}&ej6sG>__H?gzmlvcRmRF^hxqQ zxpqSWbzx2uVKNW1D$)!=GoYR?%xA8oWtLy_R#U=`-`|z!+7qX8{qG8H&ae1)o&Go| zA7p6~qY0BBD!mCyHA;SMl|HzeL#Oc+*z{N3FNy{vI9^rNRO#`T3XjyMkuAAp~{ z_?9;EN&KFw*itUuAQ=^C>$lF!1=Wlf)l1)D7J*Z6Z2;PF66m!$$;2H?TB!?fnHzAM z)F{0oS%WVC-+LZqY#EI+RF`{h3FvSJ+9>G76Hy*W`_F&2N!d7hVfis^DlCZCdo-w2NdL!-(EO(~%3^{XJ5el{rHWvL9 zUUigjOnWh3cHKtzuQFzE&$jwa z7S=9m0-IXM_@$k)qOs=k(8mt+!2_d=xbaho5Rb`MNzq+9>9_J@v{4EfSP9>!=ltPd z2}cw>F2=9;`bH*YZTtBGv=+=rcgHhs*nIOKVF`D(%BA5?Ex`Q7#)YK}@sAlce8|)k zedno<-s0Q;lxP0bH;yQJzbj<@Cdru>)>!}JZUVv&Rg#~zaUqfE&213TcMUL*atdl9 zvM9bAB267p9Qw<<9!oCFdP}x)LBR{=2r9rmnN$HARqjaXQN`kWE6w{GwZ}pkW=mJL z!Xt7$WcDe5^W`-uF|jYWWc7^I$vgqnsx|*C4o^>UZzhZJ3d%#H1O*1?FQ>1ZW#)-Y z;=Q)OdM{d@IGT}}i`w+&DO5fJ=VA8XiULMAlt@W0EqCOHqIbM@hlSsoX+%tdoAR)3WhHo9HPtD59A|!PmGKB(d1gT2O zQ9f++8>J6`{9!J0?M0YYXneHXnV8J(183k}#AZ!lmNM3M7#B(_Q2HBSto22jCe182 zUP)@d!?1e%slZR{lhUnLH2>G)7k>LLuoF;)>}Q$LU3=@y&3tuwlx(-}FlkBr(c|Xl0t`ibVDHggJ^xr9dQ`z1g(5n<*(AVTfC&N$ZXCW2Nx zh|PAqvZM?@a^0qi@VCZFv0<{%y_?LnbEm4`xK9bcF8?ipjU z%K=f=!;-Jgp}6At(8@(16$|fSL&;gq2T#G*dLsH~B1+~hoGCvK>V4h|;LaBk5TYNV zy_xh0GrMnkVEUMko_mg<$tT_WIwOpX)Br4P0g8(R7#mkfzaq&-WJXbS?^m=uD@Ccj zliZ8vjZwbb9~YNPT${V}CFaA#hQPW;M#+4$&ED!LegVj(B`%K6 z5YL;GRynka{=|f6eeW8Asg-AfG2`0d#d^ZZpjhSV@iM`^*tfZ_Uq6ZA_(U(kO0l(# zzMm~L+mA?HZGArZaTY9cfoK48*V~|A$+{h_q*pl{J5MJG)OXCOv*V%D4H#m&Pn7o# z!bAlt>0d>KO;c%MOWn{8J5;ZRrZV#sXM6r6rvG)xy2MF?wIB!VBP&HQUqTqYdJ8L$ z?$oT0eYXFO3A9J1shKxqeQ#|YNGp|<{`bOHzQ!oeTgVkF*~Sh5lEcUYM1R4jg#lC^ z1(uoFr@Yhm`1G`Kq1uQPfNJ2|%r?MJg?e?jm7yMx?DvLmwbB6Ozc046Y?hF~UnZ`| zu@;ztV6+%=|3jtXdNs@mVAn4NE)Z0*d7QNBXJ!%oAhCNYPDOKN2}&)wgENBK#m8v> z0DmsmD1X2!VlcN3iVwfL$8C(Q!8xP~+ETY_x)X&%yCVS_&W%IDd*A76L*2B{ueNN0 z1CKK^+IOE22@#UgKaqs*-R0H*Tw<-4B1yG&;@lQ5E5g3QnnY&X7K z{2A}x#IvZdE8jHq>h8AF$s}9acjk+Vri%3@guEgPIZ+HR#(!KDekKo^vD}k1W`52E zmW&Ru=JP*p?urrubOFx7J8HXKIz`23v;Lybck-!>uZum$n-Fx{h9;D7I8dNL+FFT? zLLVM|ex=mG3@J=*sN7PWYY}%vY7&@vahskJuHLjWj(R5Ja`h@BAy3z|dJgbdZ~Sijb7UDCi0`7hF9Ejp4AmPM z)STAC?FT;S+U>3CzZ^`k$y{?xGV%&bA35{@S7L>4n+V~s_HW@|Fys5Ds?UkThuFm& zH#`BRjsb)D>zFN*Za$UpO?z+oV(`Jvf7pXM^O<0ZipNWtkbl|`Hp z{)MLeJbIVk9Rl4aCMi+Qa-hN27aAd%{Xps7(|eh)a$VAE}C$Y!uG2vy*l3pJxf_ z$ySm|RD3oh<(Pui(<>dN;u@@bu5z5TcMAMUIXA?wCbq=J5ww@6M>%*|xxG}3k&wxK z5-bhsHqZu*rVmZiv(bN){Rggmz`Z4T01{XBZ#h;2ca zVfVZ->5A}(^``d)F6FC{o6aeP?>0F0O9tyAoExmRSBbxnGpb5V zep=@x;H&qbnY!mqza=p=ecvXggnGZlIn8xnp-N@=cD~U%M<%jrvAK0C5MC;Rlc2cC zorSVATyg>z9c5I1g9&@5ny{qEq!OEW?UBI96nZK8X8d+7hoRfxqms*SD%C{d0S0Sh zQYy@*&p|I;1r_nT^vN0K+Aa_(Uy4=z^%MB@{~9NPFRFn5;!pI)IBTp{6Z+;xgX4>- z!Qqob+jj;xxkXoNrhM9X6>NvP%kWz+f8(v2H%}E>lheKT4{s!=y!3_N|5mF2;AlK| zk(tvc`z*5;gkCfs1?ya0&4PIJhFJsj$o+SKWa$V2Vu1?z1HvdIZ@#`G6EfXTawShC z{TY!S8K36)8DgLNVhi#(y@^(}g<_^_nK67MXIH@p#1?E+N;7h5BzPH{;G#F)d?@H0 zN;B-K99|yCN#6jHzBK0xT-%0m;FPequlHj&&MqGXm4vAR`FGk_ZsG^Hjam?O##eci zJOabtHAo);Pm#&6Bmi4r_!$A!33WifSBMTkK&w}Eqbq)0ubO|QoHl(NM5*coAGdn% z2~i0iJ>ymqfN^Vn1!UKuPGDU!hxWa+4qGvC#zruPe053-Z#6{{E;|CsNTMA>2Q*#2 z`8f9{03#dG;ireD)+JzoBsua9Y?JjzqHVM@y|=>u}|OY znoYPif5ji9^`vpVHiH4h@I(CfgaMDbU9*has}>EYy-Bzu#|PEB8KzQzGBTNc18 zf$)S!;1h$1=A>b3tNnV!FB@e(T3bH0>EOoDlSFQP3Qco+&ED)^z~5&JM3f3} z%!+cAz5b+;^HR`pa-6L6utXpaBvjH?UmHQG&{s55uc)t7lBvxDhaeT@p$|auhJ~ll z^lE$)V2)pg=2=cU1ux}uX-Ciz3;c>gW&>LOiqg~($`lBn|>?d3uVGgAoaEgE0AC1iv2LY3c1qe=i`2V-U)cBaej0Su@T(h zs+{)u4m$XAJEHmu|DzEB!yaI4sS;{VBZq-+_O*nua04JQhdvGR2M>L+>S|t_7qT}J zYruy#dhvjzRe*hKIo{Km;7Oe?;2=%)-(Eh8o&vDnB+YZ$9vgF0&`@`%$N#AXB;S3i z$qiZ3+|5ohQ3TmZS&wF)3>-IK%_L!~gqG$m6sW6$^G^2@xX50HHY+^XY%;mM-O~Uh zDNx#h)rfQ?gy%x9-IM}r@JJ{x5)ddXok%TX0tpFgT+FynS%R1Yl3kiF39}`?!X(<0 zvjku8gGkBUA#Gr*lp+anvG-%=;r0#QHnJN+*Cn2i8Bw_a4akPO!1we7+GW;03pcwR66(VD>$* zQ>gL_v=m^nv<#%VFEYX;tUabd|JI@QaFyA64=Xe)!P|lrG`;g|fRpj|bW+P>>P04= zfC{%)9&LQSO)~9z2cHQjIaDv+;JBpKPLpNCxaU)9qw7>qnTKH5NNVu_q0au~&{L3v zcwxjJJ?+}fegjl`6L%zkQeG+nkHzeI&4+3UaObw`N9txklL&sf2lj>1Jm7MW-R!*1^E8=Pc}vQZjtx>lr88L^?qOQco*g1iW*g#5^;$pPr$J3jathPm-m5>Y z0zR_;tdeVE3J#xewERvugfx)3EsgWFGDM$GnVg-ijfE(s^B5x1Bg- zPn!M+@xcDqNf)<|G5ce~^GWs=ZM6;)HR(^G1()InxkK(vTcL_0Uplr$A>Gkcy2=vi&#Q-Zrf4)t~YK6THs#49fL zbMkZ_*tn~Q1b|&rA};-F>+zqnv0*e-n%@m%IMTkaRj(A5?3%`y38qy*YalOntwatF zKeY0$x4Vyn_FI7eA$rHRt)oi1fyiaaN9GMdWM{moe*OSw`H z&aH5Sw__ndJPqe^Fbc-MkGYkpGwwDCB&2+BWYvqJg~7RY@X`1~OpXNH>qoZ29vJf1 z96$c3$xbqvsdpZ2XDUh7=z?@{)JhU404*tgyx7<(uzqkgAIqesnWSA#n`$g;q#`za z@a*j?)hRnnRp7+k8|)!DQBf(3V9-+i@UaQ7j_wZYbriC7VmW7o6f zce5=s40r@0XkfkDvL47-+Z-&}P<&O92hzy7b*y0_`PtW$dM$R_OaXGmlzrE@@@Y?G z4F&oviV9{}2_CRFDO^8#uU_Gzr}@59`+Xk4-~Zc9XbDJ^8``ybM!v_p?rn57l`ky+ zQEWKlU-_5K%YR#e$tDN|H2m;5#?zt7MPBoy_Swd7>opr@fXrIz3NA4>U*jZ3JPgTe zXUBSS?&T&>9YqcJu9Y% zz>#grK%p06_j8Yco zZwUD1IzW1%iIQi5eD5?10ZN2%^I&I~L#W(+%sODjZ#LrjbS2&kCnj+}C|5ziBn4SjK(nrtPT{4I>;H$%4f>fQ~OU(fRev9R zHgGSd>Xi}Ipu{&MI38aY7di^GGD&u3>1BydP-sbZQs~_Q&Y!r|pcZfw)swiI)rUG? zu(%mt5B`3e{m_B??R~e`$W#}|OaLliy^u)CR$8xPjEN=YH07-9BVE3ZV7KX$#ynab zrW95@?Vtgo>idd2^t_Ag2qV$_o6r)7m$4ZKtg%+y-GLRM^5G}G9Gw6-@TiF4JV9Kwp&E)pNN~zyp0*mHAv))YH+)r}yYpqqSq?eKorRhnHLWTj&kxN7knr%y`{X(nH=bXwfAHvHL{>Z|vU;cE zp!ML}LAr{xp{DKAi)<}huHQga&XL&M&R)C(I`yp|=TO{t4%7o&UpYY(vZK*fpMbN7 zZh-QFY+n|Rld}?rbdIi5cz5Z9d`IYQ1a1wE1fv} zdrZ3&4P+z5(p)@3)gXMncpuK|E5S{?w}K%g{`xtR4A-=S+`PFF6A51g1M)f2qwf%_ zcBJ~Ni(@-JJ;K|xNu1lwvwdD7OAU7Z003&0qD4==qu6uFL*?&?^NN`CBTRxUz#Jtd zLtG)V`j-mDtxzxRb(k z!jNK^i*Uzn%jWG;fY_5~AqR`J-ngF7@DK`il~v10`k1Ad40u8uEf~#7i?uhr%o@qk z1qSEBm^ElY`WMqiU7k9h!1F&CdnfHKOKm3`d3U^1ee$sFgRb$H1Iz;XMYkiqlDV7d ztBC;FbRC^xa}>LII$A@ypYrK6W-gOlp@HaKd6+!>>D%%=#1tpHhW=wq`y{)t2Sh)t zZ`x}7sLy*;{zNPMWGyvT=fN+jjpnL}jpPF#n}wPltdEIg8XWY#;3D>%w5mrS7Svl4 zxO7J@ojc@GmObNthnvs(hnLQ;jtB4EZZxYOzjx&t3wGtQa-nr2mp*eApG+G3972x zDxT>Er@SA%%|Gdtn5$nw>OM9oJZ&JkmHRy?MvIEz*3CtO#>BC`kHAjw-cNQ{(dv+; zXb5&QR>wc=XW{Xwg-KzBwZlL?a5NgF(y;BZ*O>uo+JifKLdb;&q4 z?6At%-~imZ0zG<_UpVz{N^8li!?Ny-kat>oAqJ*;XLvqOdqh1f`%xWGK~iPAXX>ls zq4FvFoAa)be}7o}vxWd;K`kdRA1z;cwQj|bb4J(qcs#m-gh27ulX5T$`tpTyYS3-i z$Yxtt{b?n%x$WWE-g)K6E5Gf zNxm?p)j>Ll$YFBcyIYnIBW9Byc$^%IKk{;NGC_DH znUp)F{cv}%{^d)*s`y9Fg50?)oF8xo2b(g)^}|V`-ukmAc7^YJ)z~MMPv~ddxc8=x zi(Ckv+AjR`+L}6jDxS8J)}`8!6tW@dYutb;Dmz{cZ#7>>&g%Q=bAO}R zDP0@u;;}kY8{M-|eIV2{_sHPEX#Gz&yHBrs5bL-PLRv;gnk% ztZT-$AYYf0~&5i$8mKP7f@ zfUfo5E_m?EcU7i4{-~=b-~0oC)8$s@n}B2hHn7c0^Uh8+I{;7S=f66rXY^};btNh* z+&bX`V_w#rQ*r4D-J=AMT$eqyTmltP5zFVt6>p;GMLYK*PTAv6@a8|{M1NT!9G~8M zx&?yo&l2uVh@luq6y&|1W$2gb~AT7w#Q_n!^p$UJ}p<|(` z`RzleCi}5(VSv4$)~5hMH~YbLKxZnL8Pm7cV)*QmE_btGC1;f7kqsDnh*_o&09#Kg zfQ14Uh|zo4cfIw)Q;%JR_GbWsbWYHLV0dW+^r-EivYyA=6ikFbE5PTU;t_gN{h>hW zr-o`8HzTU@BHIM+&}ZrAWeH03y620WKVBlhL43-dSA}$Hj|%HQ`@U`7?s?V?fPQ=o zpG_bA0tdXq*8--Sk`XiKH79WG^sXwKDo?CCHu*cbI8_i@n$j7a6!Gf>Ye|o0VGRX1 zWyD~GmdS4Z;@HyYmfO)|f7~;*`;D&k<3-06KLmBj$_w){MD4l0iRn+LN(l`;S4gD2hIWru=*7Nf z_#P|cgK#Yo%*4Fpv_4e5_xK%(00CPZ9k3~y+&HX7ZP?sO*P823`bB~Jgnd((ewesg zx7ePA)_@%z$ZilJhE_x$)jW7}VeG3>FRgc7OGRPaO@32!Q0tV$jmGl;qN@iGka(@&Wg=8%zB$<$ITarm49eW%c7}!_m~~2@UVfBSr$> zPm%;f)b$mok3(C{-)GSp85~RP`@$da=$2VO944HwNXdBADEy{GyD_U|#MfW%pdtsZ zG5n}~@$oO+uUUv^a{jX&0e48mga&;6UAYqigz6__jUC-n z*^G?{yi7zr-%56^gO}7IhCTHK{1g9`Rz$|9wc1}Fzm~e8-fw{C#?JVPsESaH!?H28 zLyWcLP=24-3$w?!!ZSZ=rkfzTHtIg0RUE1b6VwJ(HD0eszRlz+N9IcIa;0X{lpTo5 zpgZU5at@bjQFpDQjE3dfbFVh|v~e%GvJRHKX8rRb1LxBjyjBkBuHU{GC6d3jsek60 zz4oA&p?lSYxY?`piBAc^zHyM(w+2@zULc1f+3qIIF?o3~S}~b|jeg_26s(V`sn}!i z9MIr7-B#wUt^jDPbcV+bk;A-)+V69xt=W5ac4tB`Ye1zf>4?8EmdyX+CqRWfYJK?j?L&gJp|JY`invnnC>*lUXZ4e&qf!SKTJj)*Kv37S^i^FM_lC(uTZ3O? zMP8qZ=3a9!gO~nG$Il;nGvqY;Kx--h5Z?Ft>v!j%ePV0%-*6zyF$&5%`!`|3l&c_> z1nasA4qzgDP|H}osqz9T@4{7RgtAgvtlo=(R!BobAOJ%f4X5H77gsOSwOtql5Z;bU zIT|_l9D1^M@BtR{$(vmr$=)Qk9RmDc_glIA;D_}`Dhc(EkVCl^zx^El`3o81?7dKF zYP>iS@4fTD`Bpkq@N?w#N9@nT zjzK76Z_mK7s#NZ>JtRgYck$|%w%nbI6oTS31^G{(e6i6bGXef~3-<-O+xd!E2luY& zRQskNxcy-{&M15XiH)(&zpukg9RaQV9_Kmk8?w>^RY?l9I$2pj$}!U$WWf^)>H@S7 z)lR2oZ=Po?oHgj%g@ougI#+pMc5UDcUfM50v09}DCD$f3q4vOB+ z5bhS(b16_;gy6@k$C|~f1d`@sV6WvrDtn#)TFnc29gV;kaSs^wD@mU(_BNWABzKi@UOzi7 z@Zy)vr|upRytDW&YJS(DOW~hCbiZ%acp4<$#xH`lULF2)bfhuq>$stkX89&v)ObE1 z)5K?q-O6a}#S~)VafI+>vMpwzjsgGP3a=p$ra3+vR)xF&ROUsx`2Lu+d7^sMm6IZ1 zGZH%Ubqq`nW|#jT#=bkA>i+*b>ZFcJT^R|bX+~yN2W=sH6J;FPWn~<*Qi)0=TjAJb zmUYmw;@Ep8dynJbINYyK*VT1h-|z4KJ?{IT>(Q0U$LGAq>-Bs+2fTxR2#rtfSsODp zndx?QFz*ro--q#iS|){c?~$HHFy6!hB}Vae($}mMh&HJCBu~tX+OSO3bS z=lVYu+k&03oyTmnL@NQxc{5n18-|-zy{h=t>4I6J{B^v?^3V}mi zRLTr}M0Ov>Jv7(O#R6quENc>9FxS|mAAJ`e?6eXK&Ao4+Rxj}6UNzd%ZAqZ#Ck@MYnrHI=QYD+5boyzxZ~-$Ke~MtO3zTP7c*_r@8LDp_#|vg!+ZSq z20L&7?qO|kJ3aSmRG?&9{hdg(cDi=`VNuILb;t%jalH0yZLu5zgr2XNyBuO%0|#mM zfvfDd05?yI64L9bv3?z-UKX%C+fx1w=Fm#CFZgtjnV%zBH*a-L87Npr#eKY2u~lUb zEYi$;WpSzK4#(hsw#~2Cb#~XEukG6Y$4Y}sU?It|XQuGw34hPqqea-by-!`boI5zP zzx&d$r-ac9tW?&}aX7u;YXO&v!>BwlP=7{l8{58b!@hj-!B#}o*FctZZk0$$$1AZj z^N$!jwY!>=6!X!|AP9i8q$;`|<;ZEapEYo3=I^kx&#kRr%y7=X^34)zqLU~Imj66? zkY35y=fK}D?Drm%TSgr^M!V}L6Y|7DRY$DB;=nP%W9Z>nrgeD3%KB8EZB58g(2ysI z+xPdhm$(X^G(m>3Vs1u|99_aIEh(+9pPm*JGA9b*?-__Lu5A+UPxhuhHK}*E_+AUH=rVzZdX2 zt=pAD5fx)W=d$cRUwxKe8Jdn);A4~|0mfT+WnHevdRv`yg* zf``R>E4vHN3lgVWy0aJda=53@6ph{NKFM^&$Mpa9qMz;me|#pjVRDJIan2)%I0*QD zqb^(d6DxxkMQnfCCfHUt-V%4K)%5sLlMM1)k8WlIo408SEpG!jMkiD40Hp#|ZK`^b zi8rY9JG$oRA*Ak5lrYH)hDUeAS6?5q%bYo_yizblw`Wgxr%hh{#xb{cY@tk@1!f~f zIa;*Kj#aqz$bE-LL2TaHVwRm}RnCjU>-V)mN$mT7JoZ0J>93#Ack$%@qKdKkuj%SZ zPusGM2jEo2rmH1b+}C+Bl5Sg?Gm~4Fg?AR`>N9(#jATCMfWG5w)Mv?^e|;x)`u9jl z@(=ie{OW&OzsNVOeJPi?J+7|F*(~Mv&V`L&cC6wU{IA^Ffj45-ua)1NtpsRao8SLt zp-qIf@z^Sutv?-MpAdywqZ~zjBkS!Y6`)GzTfMs!uIEa}_s{}W2MNBSLC7?|UqenQ z3QLMk6@xZCQhE%OsJV9j+kbt|PxXCP{_A1)%W=8ItYMsux4ym4;bIsmj0rBC_h*WhTlH#5Z!w4iJ45C7oN z7|dIbUxsPW>ut+{3BR#`YDvl6v_+@qyVJ9G5>2y6nTeEy3TzoeC~W4cKP0Ij8lK)r zR*AcLd~EpSuF%j50CDWWJt!Ya+N$2)9%1r9aU$h%2^)x z&ku%^yo0e-1}wC#2MA?RYD=KMc#mXsBa{KKZwyDsrUEd?G$44o%{s>(8A;q0^E9>s zR94oJeL8o5+}Xrta_Oq(>#Qik^jpdlJk|5@HWS?uEzWWe3ShbgFg|KoHctaz=GQvM zzXknOK$z?LWc{lj+RsEo8|OHFeIJK-uU(n*10%1mVUn$U#eQ-{%qH{yS`$B`D>`#b z5x2(O>qth7K9sh|5-fy$JrHKCP0TVXiEPjELDB9Cu$G00EZ1|UmM=uY+^zdyYJ$eit)cz3TOBZBz4^bK0Bju#-B2ljht*kw;v$k z;4lXBj*@Z9po*Kcw6y?ev*z@z4&r08yvs%aend;HiYt!pi>p znUD@rl3Oku`M#FB_OG%BO;vOMvxuK6`nbTO__F^2iRKJ`{oqtq3)RAY8@_{3F#=Vn z5GK9aQ83A%H7KwOt4r1gUl!rEtk98koos>keW7&NoM9*l^FfTyHS)4M87F;Hzv)B1$zjI zQqR|uz3|;}#%|)crXr_?jqWq`xXGw>U3Oe!S*&tNmju=^c3wz$71qw@%cxQM7NVa` zzHtY>;zpvHylGwGnIN^QWT~L;dVBA*;p@4EuTR~@=$TXcTXQZqRe?jBZWymtv(+Tn zNHmbgl5DbV72J}=s#COX%lv+)e|>nnIFY{a&~8|3C+@Pc?)Z-vs_IFbA1zG_CKg7G z5lFUiHJ1hGDYN5&q=Z2)VwRvm=xNh2GDjLD9v_&Dw%dIhM*`J#^st%n=`gs~gEA`9 zZE3U}B3oI^&I6uGfxooWx&<`ZOyG?PKr|{J5mSD*UaaFI6(|L-1n*5DU}o3=m{8$O zrJX0u5ToK4nAF*o8*`73!C!ZEE-=Qa4~R}VOZhqjmLjt(C(!ZefhBgI#FDiNPPqe9?($Rk=WB!BH)2^JA4|%}a%BE?m0SVp zGfQLwTH=L`b;CQuu($qtEdQz!sg3KD5!sAG(S^tlmIa510DIftv+60#EXlS9v5r}N zh6dha0?I$_Dd;dXZu!{^%F%znpdOw9;ABzSGiiwN=kpO^a2`f6NK>(bY^Q z^LhZg&CiS9nBW;>6{(Ckrk^8WV`3KkfWh%`*ctaDsxnSVM!3jMsuCDJ_K4q3fsse{ zl+n8>3cv%Ft^^*9F$dFIe8!u=!Yf*slG+4z4?#i~{sg&bWlE~Rvgs2tFh)EeRJnu_ zOd6qEjf~~;mK|R;urF(afp7Si$ZcF@x-zWlE>riIexsu%zH7U&Jhy>>G}B1*xd6Dcr%v=uv9(KICy_9%*jXkW!y!zd z^9I7UOOM#|Gt;|Ce#WYN9b)%<66a0@Da=@9$e(!oZ1z@?S)93hILuj;V&jxBEu#Ah zvMHjinVftljO^Q*ocFnW5y`Fo>2-}f_V|8FDDQvkAxDnO%AD0I`v3<7cIHN;Q;ZXpB%qG#8(!DD zF?Pd!+e75$eof2%=l&h7+D$E7HIvL&HvEm zirVDarZuK6m$+{eOagi{dJiYlS~78_EINd!oL(6+{p@B$xpgrBF7~p~Z>3FF*t!(B zVi>bRxQq`SMKz=n(NCA;4TV?XP*&==N&%yl=rPZ(ei5`6sbd__Ge>d?gVc@Dh_S?l zy=ymt?~IR^DmW;3&%5;-blzB42nF;eP7mKcB&a&noC@!ZmUL7iJ|7@~KJU$}Vvw3G z!4DTZSJ{TA}*&Sie+S67P-t)XU7bZ18Ha1!1Mlg`9Cd*{vsN=wvS zFs*M@Bc`k;C1PDRRu|m*1@FZOnLg^fS9fMATCL-%Zz%eRCTBYDs)rKUch)g1>6Q3^ zrz2S@<>=g(0skS><=$0c5|_|f{eA%0ilhn9b5y>Ka8Kcgk+n3jy@G@}|Cne=Hi*OE zY`}QsG+o$)(L0Kk{73h=lmT89CG_itFOm!QQ7P#vn;fI$bfp?P=kPgy5Q~hOOU_Ql$T?_LFSQUL5N#J5k4oe%5||kUUko&fXYa7J_qu z8>J3+K(51h?l?y><+5xYoGC;X-V=Xeb8;_tHSYTNH5W?bi#Csc?gVAvJ$;{se?xe3 z3cHaUj6!fHD{A49Qx~D~a5pnOU{2F0x@WGT-an__7;bU4wa_n-@kM*G%2C7v+TVpq zE@9h|wgrXCd+0qaD_~hQVbL)S=2Qr|n)e=!1-e^vFqn_~)8)^gjNiI(o}}54Mr+h| z6m=kV5N=i%c^|ZBnof4?Qzc(BsCVM(#y&`Zxwl^*I)z@m-GXtoRNNX!(Ah+bQYe@L z>giS|A}yKCg5KgNEBLASolJ7+6#^rl6-ZA%dBKQWU|i3Z@4a&69NMnkB`q}Q`7~4K zNKdPC%bqxZNAe(&p^}O3O&JW&Uh_({Xz_lz4dQ;GdK>rZV*!kvPiMWo2abS=H{NUS zVbSXPib;ke7|;8$gtUR7u0$2gnwe{KEY0}@sT-Ad(TSSP^l>AwzC0 zwX<)#_tLePyO*ak9BzRsb)viVlk5p#{}qWF)#3#$W*ZafV?;En94?}nTk{+seEXMA zS>&m48#BFT>i+`5fbn+xWh`)}-$QHfqK@O?taYR7Qv zugyyz*Ld!f9mT)#tPBnwLey?!`A~Gq05oN-do_H1wx((rVeY=QKAG(lbMSeGV^R*! zc<)>b<&ydJb>Sz1WNV`y;BNIVyCujC0OzoAPPpDHV~mIUG1kdmKtG>5R-^~WOnof0 zKOHM*=spUga8?$EA6}Zhoyul)ahBz-?kX8yQ}59~XVqH0ER!NTME-*Kf!6rlcoqFk zQ^&Wso2$iUR-Sa3+9HzXY7Tt3*64}8p}mOrBsSUg)wiUD)DS;Q_?NO<^Y3V68lnfn zc^juE_4#k+u~Gk59BA@I(>wPtdQH?)Bbz&bpmnqC6|&L-nYa>cuCr zS5x?f%pL8y3Wq*88zGkSu6@g~OR}=M&aT`g296@M| zcX1ACI8QbtXFH7>e`+jCc3B)HkK z=o@8!cewEncEAd@1E$-a27JUOV<|*6NFycwo!3n!*b7(k(t|mq+rwb|(Z={4;oWxw z*Tw?fSqzNBKFpa6o0@C#uPF=zz>R!FqvdT!P zwe3PVXUbmPfLOkkaJ~kK;XN#^Q&V6q(}?ZM$cfZ4L_q-*IaS9dbtBm7Dy3O@UHAgx zh(mI-&VJeRSn!jv*JJxE5y}UKLt6WXq5Vtdon>uUCR`sY=8@|x|ID4^CgkUiL)4|&XLzBiX)TZu%B>m<>uIN{o`vL;hatb*5wu% zB<=2YrTXtvY*nvJ*Xe$f?i_7f#@#(mJ31@Vd6*_`q7`*30^`n8r)* zQ;ANr-FLS+Xa@tXVpi>p2BrqA(q8@ z;}$CCTFMuPmi{$=|JAjkc`Al}b!(D>FShK39SIbtf8aJwmL1~|xC`5^W;gd)g~~jP zstUG!PcTxe-EmPw1)SP>J~h}cgvku=3G`E2;IXQUUqkQL*cOfkK96#y;i3qW^+lRy z{eV{%xD|QxY+@`&zt*^CZbch3Ki>+{Id7x(mjo3Af~{@@?ahKzllM?$>UM=H?1W?M z9)$^_XYMb_>vl(E9OYHvLUdtxLQ0mOBu*~8Fbr&hEN=*IF^VXY|7@xa}77huZJ zy&?Srk&?Qo^&j5=QVXqrC49HR(d3x;^7pFS);69ZL)H{Xv|7ErL@q&#ig@wACV!kS z5#EqYTF0C!9w#gsUs2^iF<5il7}|U=SKtuifbq0L_2>YxxU@&S$0kpvCskauCA&Xx zh&n|6aT$n+>xT4m9oTYAwiaHHW{p#?O~WC-mde5w+CijS&waGGiD@4TDGWnIUF2+W z?rcFH%NXP4oGwrN*V{r%)Yl6?z6ScYjOTUB>cGV}pvFkPcnedGlNC0asymyb+wY+x zzcS=f*lm?QkDn+@BA22^5(=6D-LCguxMI61sB0M)(yg|wY%!8mwvV+=tNiSf{{$Jb;N#Exr1`4@M7)?a!gxNa zStot!=95zv@l8K-s-8Xa(EZHC4fWHQA;J_vsXc4<*wF`v_KB)!pKB4u@o>H}6`d-u z=+{m&EXuvJQxDaB=h5u$gQws4eZzSGZ+20y2e{WtB(3-eP4IBK-tw$F5~XdvmrYz0 zb&+?1omZpzd#pYmx0XnTwS}{{x8)<%Hl60BO!u#M%hQdLlql~^)lUVfJ-U8Rp+l%Q z)Q(aXqYjGceMo`&PC1V4ZCC+t$NtZSoreQb5HY4C?2n!T3ecX1+9Ea^{J!F zhxZ*K`L?8~G9Izw5=xaNDCNykJnv`fnUe&xukZP$Ri+fJRn8qE^9Q_HazJ(_rrgsg z=-dKzcDtMw7km8d_PbiK{5&bG;Q>no8#uYhT{6Bi^0zLW_GG{pGuLDsjNILSV(4C< zPIo&s?$DRad#8@dWq7WZP0d|I9jH^GkOb*0Gl{NLzP+_mWeGm|BcxKR%vPXUWG*U8 zwd+(bi=1I^&2UY&=Ze-*Ef*xNc+FRZw@Z1-u3;Y3eR3-|wl;Fibf)HOqm2h(>hgs6 zpzt$^8h*lwe>csJr&>PW{<~3@iw{LzhbB7oYW2i_f9-LK99U2(Z9StPz#*i&Fvq@i zX^56YB+w>5hqk>dnJunk+!6JL@kQ!(QIULxlS}4nsPDXQob&3%4X~qH1!1<=nLi%d zC$15%a(k=b483>5{Id`O|J_VELDaeQUOEg+mFFt=1VULQR&MMptUMHds$M2?dKI1> z?b$|fP}RFNb8ve()h0wrrI_bnoWsCp-=HUB&3nRlTX3hXM*@%EIo+z%qvnu9OBTC` zg?Lq^HE0EUz)<-+UB&4_RygmRnXaYa(BIg_tU@8D2WLzU@PL&Iilc)!2^= z-A#5sity|03UAd*7(&veb6y2w;3-#u`HBmgkH3b*iO95M_K($s$l6L&w0Pg-neU%d zDG>Nh>HWYun~d4=bh~eq;7&3TVOGTS$6w$cmi@5k5wK2vypO)z^)t-|oX#z?gNicf zr|raDUK@Z37x&Cfr7D9J+S$0vw=gY?)ieHH*!oDO=#ixGoA=!6OR42sRN_d%E@`e3 z7EQeS^&yIU&-EIwU{$v}T=l)t84OSIywh*2Vn3YgzkgzaXt!B+C@t>0{K&~ai`J(% zeVG4a>G(D?!HROCN_w~*Fp2(k6aW5?oDiD(g#wK-+6zwDDSx>>#Ep0(BN%c_4H~zj z0+>QY6Ye?4$-J`LZ&Yff@9hPwi2TWie5ZESFpKV-VK^GcpM94D#Laf$w2v4KQwEO% zcP25iNP@tZDeIjb!_!GugO|ESZN#9ItT=9X8Gq!D+5js@TVM>Za-=yXPaT{sp*^b+ zbIo=gH)QImm*y-^R!S?>6bOWNzDu+&kCw|hNYwwmMZFg1^05H+cUB6o{4%OQ9SCm3 z_eA6<*AZu8Fp#VHHOcts@K(^p8bx>xTo}gbQUqcmPJn6FEx7VOA~YM2D(UIy1pfFq z(3Yi+$2AG1s^4PQD2On2TaA74wV8ptK3jQaNj_m|jOa>y68BJ>{9xs1>57-CN&YO$ z(X;v=?2PD%R)&U0hFo*|*CsVuLkN3@suIbrUNv-S>4aFLOz;LX$b5Q!Vx98p%Wc$v ze=(OQ)vujk8+2Z)Z(dqdhOLbD2Q{N|o#lXN6vD%qj%@NUtb*}mtQ`en2%W9_=4z** zhSXF{VB;_7kbG)()5?{__VP9#owVv-p}U>> z4hk@uTWCBmw)-@rox9zmYYA9RJp~WAs&4@zyePyS-!cvHZLV)DN`z_)lcU&si)THqs;h5zcdC zWV;RmX_)@#$7l&tZ%>_hu2Pk}FgocU ztlmfY;`O!`FP2v0YLE;N)%G&)&?ahnyk*~9_evE{oH6frY-IP|@;T9#ye&Up48yYE zo|Iq}^AWFk>X~5YRh;XuFmFedTizBt!9tCv{|ymc((!@B6a=;70A)vnXGe_H+9-F}~EoFviwoXQ>*xJTF)`c#{UR zDj0{J$NSijR47dQ(+ZklxRjywG7;?minj@f;f2hE1M$HMVT}B<+cQKdbFjFl(s<>> zm=$GB>N!H+r)VVKQ2irTL5lksmeB`qQhUGs6Dco8hYd3kiRiTO+YC{6(+$bNv_C>s z&Lts72E#{1nSj~1h&R`5)VX3MPc=ibQt3pf_s>~ZtI^Rf5yE0@sRKuEmP0k~0w+Wl zbk^So{M|9Yh)`u|oZe1xQfAUkF)e5px=t`ct>0N`gF&3$2fIGa`cw8ghGY+M++7aE zoa%O=%Z?~!%Gd=aP=9e`wkt&R4_nC*pSE9zeIBKaAH#!`Tfn%?oiwPp10ABmbXFhE zhHckmd-A7rEf-)&TI8D3UzO_j>0+Csz|_Do^mP5m;4D;t!tWKG86MS9J&sFo$9)&K zF6Uo@@b8GN3re?1Fi_ojx&J%M>Nblq@8ySk!uZC!$_GAGenrN%E+v#w2=x*$ZanTu zP=cSPTtOj?I%p1j;I7qlig$^CEi9ll(7AP`u~vv-&&sb3c=Vjf4PeVsAM)QG1Gl9(;w42yAJ(ba zicEeK#VPM;k0V||L#+H%{$#0DfXAA6RhoqmQzQCnB%-H>WuK)MXDr{IGoPsROvzy+ zkxB3ne*W5K)Eec%Gj0!^?VW-#K1hK0ZqAgFDV~29AVF)bl%M{Mt<|9Q?YP@f1hbPP zGcGkmf%G7oY3FDa0LeepS?z2>CO@Uj=K#u&wa&=(QMw@&-h`hO~5t$*hQrs+`@#C>$^Tya0nl7etCV8z9WBp@kLl{4L#MSbT$lRLj=5t%Rjo}F++6+QTp0Xh zCb6WfU)d@vj{s2d^+X~ajm5*_J z+8NxrcrtK-<1_D?R_$DK7=6MO`#xs@=YHk$$f*bh@7PKD{ZGgyKPV?(5!O7Es>a>n zE?$pr!)DbozL^_1(5>CfqP0O$xy ze`9K>otH-0MxHO{A9VS~l5|)0e#z=YCik3eLAbIyrza5B`rf)1BIN_HaGX>OK~-Bx z+B0|Jx!eTW!R0rq_ICsIm>@S1^rB*{IdAOyKljqFUyUfozZgDGna=ZPMkYGH#A31O za^|QAq*Q57Qeb$F_E54&{E@mHd zK(LBjqhrD973(A6#&-8q=O;crq(?N~d0^#UL`5&6<3!jzI#fd*cCSzyi|F*xftM$Ge>fhsBo+0NruJ#)s2`!HLIa} zWF0rlf~xa|nIupc1-rChid}pYq(MTKnTaO4nPEE_j@V=q*3;-;XuODyl}EW+$Ay%~ zqD5N|LCd{=6??&0vk@2XlCQ$UUj1f7bT35u2AibD`goAv)lFs^y0yeW~JYv7v2Pa@wu-{8) zqJA#wTN==~MCz&cpeI|47#)%-tdEWZDJ5JFifxbv0ROM3fEoR!y$A{WZsE_{JTy}$ z%JTw&eE00r@Mg5>Nz>xfs952mXDP;^r>`?#8*w?U$K9yp`@<{TkLXEwZ_Rqnrm;dS zfzwekr5v55HCXI2-aB+RmEXXFBZ?o1l@RqvT;X}F>QbBhs+pwLnC#cqiuYTxD;i<8 zZovm3riCkT=%;r&3G!6mq%q1enR)kdHlm7P@Jli*GR!ka%8!d_Mbv~YQDfv zjvFNqcZ>vzta*dcR^(Kms5`@yqS!;p!K&9aD{yRB ztw&s`8Xw~-8*2#M>P_}gl?_<)xFCCR6?=7#0k@_&cM&(FR2A~OXYg&_4^HNP%cgcQ zhQoN|>nX(&_&vE%T6Q3{{{E_*FD=@=tC&Bc#xDS?a<@X4$a=)`o zCtFJ099#ATf|9PS(4sX%BRN>`o;AvpxABVa7xblj4;LOT!aTn0&WZ`@*4IEkS*s}+ zmy46Qpc-_#S$}hUyMvgbL#f2-u>Y-t&*^!;h+IA5mUxF*33ce(xup%Y_iy~>LqAE2 z8l)ArVKZMP0cmK*R~VhrFHV?!npt;T8)kHJ`3zH(!Sf_yxOFDyDI-Nx&m&?s?s`Ob z0CDC_TX4vF$~Ljgg3Q4lLBi^Vu6*^6-fL@?j}%bt?XV+MN~G+8^KJtZNId7JjPx*D zSFgw#P;AV6;o>N?XunZ9Fxio9UwoR-OP4~~NrYL&xsr7l?@tB#6!?x!X5hBq!Dl#D)ab^jlqo3u<#x{fnXOGT$8r!qX{cs=$0;JzexiOMZujA9)n>zo zW(`)QPK(ZnA0$upAI5looLF;UY8Pn5TZnh$fzCN0%p#9O$K5HrP}-f`6G{-6a*sa6BSZb`({818))AKn%umK_8smNY5Ej#5pTmIj<3f_*L|1ExhWX`}e^6fB zh$_}m@AG$04)6~&&Dn~baI#rmOCkTH0rE{l$%VOFs0cnz8D>x`IK+LH{|cO5hx_4m zQ&^fZ$NaYig<&e^CN^tVMC#)%&WXjTY_Om_i`u(-88-7&Of}dd@Efx;^JO8taT9Bv z)Gu)X@Wshj1jZMu-|xg>0+trOw*ab7X)>c0kj+kDjz4F2wQRh4L&o~9Z_ zUjAKpX5N1N8sP$$g5BV+6GS+*ISTC?aJ-E|DQRAYacUpmu^B#$fP8$e#l04^;7 zf-XhMu%btTE-KKxoD$WQlZV28ABWV(u`A>W0Bn@W(-4MW2K1)_KAj%-n}0+#gQ7Lo znZe4!nj;~ig_N{?MlmCM2L7!sum&_NLEC8FG&XC*rJ7jPKS*)#Hp--Q;iofq#VAh5F6i}iGrt*-A! zm|!lT{o183nYI>Mu&wxJ67I$&zB!t>DoDs@xS+M6NG zcrszna%{`k5)kiZ_qB{UuTpQm2$JRo>Q2t2m5p#?=d#;d0Bd|dEnMuA);3kUzT%cB zWu-$YXm`Q$FxPF0D33LV3m&;YNaK2R+$cR)6JD9TES;qdipu_S(i8aZuEs}NNJ^z2 z5EP^XTTtGnZGci9A3GezGhvL{<&sgKqCBHxQd`0_)^nIc%i^zVS zQaq4FyR5AVEUw;v{jSfK$Skc_` z*X3VE_Nn-)N3ds^97ol0>z-j&6qGp292jA7K`UNe;tgM$8?4P#97>P(g^*U6O&!zE zWI_s6sp=?Z3<@BT&RwyI;Q&9t)ACX|G}V+))g5V3W0AklCFCy=B8~s=gYfS=-v+AF zhAWxN!9)Muhyg-yi56h&Jmd^Sc##NxW=(>zeSxxg*Ow8+yDtwWf8*j3*dBwhk`Kb` zf+|_0gAXV46X|)7>>ot92r!aRJ#A(TSG0p42jr;M{#|fDp?vL>oaEnC1*}K2V{(Iz z%$Dqa+h~(`DvJIS&wh7c6?%mkz|zr&d*E?0YaOdpN}j)A0_b@ zWBl?lRgi5<1ClZW{(^bnqQH3h)k~}Gao3D)?DU5xIr$#xM}fO_2U>*>@D4KHG+fBr z6>3a#<)0tyHxs6b#pJ;*GhTT0_}i^l|M`aStLw%-NB$`Z|N7Nm60HCF{gb;cot>Aw z^}yzTuJj$KLx24HWB&Cw|EIdk4fznJDw%1U_M0&N`xN^1puYsbe}5?d@$7#;i5s$< zKUeNVzL}injze_+AKw-Eqkn43kbmYDFv&k31_|GvufcbG*V#Y*_YdjcdKlkv`m+~6 z6uld$`=2-i|NW$Df0*$9fB!tI_MlPO!pi@*$Oq)G^8hS%J=lHF5Y8&Mh@&dEcFqIW zSSo-=1J8(O4L);`7UA2KjDlq4UIW=3a@n%7K{%|`KrT2by$X7hPDGl0@zI_ffX;Nc zHmSCN+??t{H9V9{-Ms>rFR8BSt3`?% zs`KB)7cdaj2BE6o>le$o%6Q||Y2{p?JJ%qQ^#d~hT>knH;OAc0=p2DxZ@WF~JWG~5>o6z>PDhNsLkEhFF|KBi{h9%T zW_$ZG?D<=n#p)ACkeLU_J!-3bSWo?4C@)NDo&M3<#BU(yvsaeb38aSn1J(HtSXwPl zgTn9)^60q(CNcv?F$IbOMPCrc5;B@_blBmh+R??#oR$eNkrX%dq#0FU(zGXuvk3x#nbfX0BZVAcs05K)_M!Nnmicye@8@U zOkpJ_>Cacy#0DYsXoLv^E-GU-01BYG-j^TR!I+pamFKy(c-u1Ow4>S}yc4H5o#I&l zyc$|A*DJ{aYTLrn2xPTF8A|8BS1)Y!Yd$T1ZX{JZ1hY679_jnnRt6P#=$~JD(L;+6 z6KxCHwB-R3)@~ev&!@_wAsSg#La3sh($$>%S>A|XgPo^4n@-g?unE>KB|}iFT?v$S zh0q6;c;4Y>Z0rI)U584&<;}ym>H^2n+JYKllEiw7Yd5@)$r~kKnGN31(veO*2Y9|H zcd?LrysHx)nl=P98av&DPjNW_z)|Gd0Z5<5J+2X@hx@rV-oiQS*kKr#jrQC3Aw|$~ zmDmE-^FpP8GQU6D-)F|I&^Oz-z*lSWI2?IyMa|C+{)5^0n$dtT_{<}8xayX&lzp*z$b!Jm6R+(HwvfIXee`+gQAX7m}abdU9Haupuze~rWEIoDk{ zJ>-&G52BYIUQO;*or_X&4N>)Oxj7A^GF|MiWpnzMO+u;~&;ED;M3?}q}bk@Xgckn(^L#j6$h zhlgG9+EM~S2w|;3cNn1=)jwBWK~(#*eI-3`zDL~GeShXTT>Bjb$LJ&S0iF9x&7+{I z!WyJD_A;k1%&v6difhKCwSj_&dRlCQtp#uGE2kR+DlsZ!^>c>}-A2M@*(b+Z%=kFZ5k2p-@NR=!Y7{aT|?jFeYnz5nsrN zij#Dh!7WB?7g>WG(=c{sx!2IKUaZhz=#xW%%$jD0MeoPE4Ogr9-poTpn?uiJ;A{dw zm0gO0WueKL^WW%>dYTlEk$R^Nk&JO5RV+e;c3GKlJV<$7tMyb{xeI6BY%f%oyBo%O z!d+JhYN$T8;&ULl`Wb6#^qF3;w6XqKc23HT+l%Dn@6fQDOKITrHp~|i7Pp%oMrh&lSuNI!OW@CWs1$XfJvFjfDn7GuDrJ^npY>_ zdLwE17c`_6I@yZt3(^@rbk?LoYHqK$>a97UfnZ};`sCT}wCBYQ?!*bB_|0l1;%7*P znTD`O$AEEM1_d!*@zClJC?^KOO&b-ghC5|+5J#AB+bi3Wt127X??th7C49NON>C)Z zr7WfHO#&uElh^`K@OBI%mn7d(pv?fs=IXpYdEkYC-R=f4kaf@7wG=Jeq}Uht=T^^^ z#f%L;*xM(In1*=lbK)>dCnLAL@>cVu3nUYbsv4oSm|_sSl?fL`JuspN)C z^6UOSsVCn_lF1%=6tOGkw@{?ivvDKnQ0=Wyvv*$H2yw?K5U_ZaC;tn=RG z<&>#mkFxe(6^<%q$DzNkQ#f*8f;vd@kMNiBP-iXdZWR94X#Z^#BL7E%|yF)D`>GAQvkE)HLyitf&ocpF0R7XX+#nhWJje)O>n~m&<{R zy@zo+@m?IGC}KN-2+D2`naIUh!^{$IQV0ebbvg{~APm~VqHn7^yqsL;K$1Am&sS{E z+QM9Gm{Y`N=9Gc$@Gp;)$-`AZpUi+n9Q?KmI*0VlOqrx)RJ5572Zqol{ZVy#2`M>X z&=@u*Vax3>kN9<>Y$xuA@uYeq#x6!+tBS9%0%1)_jhhNHY2WEyrG8Jg z$@1-1^FSQ9>3Q1<_8K4sjtd4Ef(yMYH_tJCO(?IMbc3iYb^3?#*|I9VT}xA zZv^jt;(NVKHWvn=0%WY?Jf2+(PbXx%LL!nxwwSWqG9{L!sCeHXj4BM9kQ>CF8c zKb?=XsiD!sthRh>*z-5d+;8N%xsG=N^SkqJJy*_eJ(p%3xY@8rzW{~n8OBSQV{#qx zTB3!BObyb0eh?lf<~r1_5SHQ$AX?vTrmd$KAiN;Tniiao_E1f{9mvsXy3{`Luk&9b)NB=oO6 zwI2l)cY*^G>o3kU6b?LczhRsguV~Rq>T*$1A8JlVz440=B?|J~*ONC(%Uf!YE*UgM zaUON3py9nIFB4hNYMWui{r)>$G-4DodkA%iXVns@U9JU;(~~{UsD+0ONj?ep+o8}A zJa+<%1Rp_nsqr%E?fN4&yR)dMBEQuOl@^G!a%~vg3@lmRWXN5rci_nWVX=1~F)Jn4 zDa0=Ykocb#ceM8R$ApA?KvQo6{B(1> zr1i4^_Ir;fJP{!fQW_?=KFjTvfMBM+g0_Oj!VrtIIs;*d){luvPkn!`-!jhsPyZAH zY7a024Ric%jZB>Z4&mEPvwM4g1bm!&E2rY!3!RX?yM+@jSZb16i$_!4B&NF+mpF*{ zc%QXY`8Fh!l0|z6_Yimm5+B9k=qZUh)jr2pThI`7<0#uXyXo178aE_QNl*a{pQ|;S zn>&hPwC*WC8VSar{Z}LRu0SW`S~a=Z^6cB*#ydg3u>dr!D~gACFPrFl!~w_Y=t=D+ zY6-0GNE@+N@4d09v3^cWtEsNWQR23SN11G9=5$bxFd!C5JDjLA@b>b8%{a%*fU zHGlC3=r8U-YZE&a<@b(hbyhrtzq!myVV|;|Cg?IWIN$pjjEqs=e86%If0_GUM4%5X>~DIzf*JJV94PF@3ZrFdn& zX^$SUA1n(61l@SnAH#YrVl4%YW6qGk=uf$7%&g{r=mLF_%-^#gG86G`D*M*DOR(>GFE5lcrfi<=a^tyEtzQ~&K*QBUms9}B`w#!^rIZh7b9 zwn-v|b_e(>NPv5m$(2i}+f1!jQQY-lt*oWd_`+{6QuNO4>yZjgbh6gkpXQ&XLI<8J zjfd*n1@5tub#$Tz@C#n`Hmn}^RPtTI+8r z^@mbR{eDO}jhmp4Yp5a#*!6UBcM2PnusH3rMu_ZqShKeLYT|@0iGXWx$7|9LXmT~|m>V!cg>$0)03Ff^uED#q9 z5cLJ@b5!Us2$pJK`kBZ5)H>dzpdm)O2ihJix>~Cunn7X%d^vi%#0-ko840d9S*@&! zvpPACnbBTL%6CSGk!YB{=aX@MGr&eU`oW-*C|El0S7-gQUaavh!a;}%({k%03pa`+ zjAbIeWZR4>xytBwn%hcePk^)UlYaHe@=byoWk?W>bY1v}OlrZ)hrv2!?`}-2~aRx7`kyO0kW6MG#(i{*t9OkYV%g-^y{kolQ#RUO#XJEra zi>7}Qm*9F8GWL|_)Jcj8Gz*LB7@;H&>L1VR>1D#Ne!WF;x0Pq7jI&G|uJ}88Af8$dJa!7VOcrRHk6CsP^h74<(tNHAE?`BiWYsfI@V>&}9dFAzX8Vo5Lh(<< z43)FLC7Y&EGUCZe{Y*K!Hw{p_k0>8uDD?0gV)lf`UU`U)?dVSaM7W5Pp2+%4o?|hWNl+nW@JCyKeu!lM`ct!vah|(O>}#ddsYp73d@&r!$}~7+@FIN+&{1U(x<}hz^aY=!N42j1uqUj2WBkc-!AI`1jv6Au7#5C8WF4KuTJ=rQ^_@|J=0t-n;ky!!aC3IPSe-t~uwL z@qIsz(Pxict9em^+%=vHV;c}~$W-qupk0C_xd@*{30?mn^z6%ryW6!y9yu`l!;CKi z4$;sZ3Eo(z^yCNg6Fu@7uUoYAD$#djMmlhg+Rapd)q!Vh&qOfmQSJ0z0iXGnT_YKn<`hC@xEWX^6qh8ut|&`-yFL;U=G;KH8uu; zxpR8jtEDr?=U9oC(t%MmTKD3-;7IXo2)%UP;n^p7H#+j>;#4GX{iF0CwpPD4UnT?R zeG2{HYdy*u_E88QIX4E8FvmJHs20vUC}Rlmd9^rOL-OmtW_BhTa4S~eD@Db18gbCP{6jVMI|q%F4H%9oDFAFd`=c$X=duvZ|OU%=R2mD+q za2#W~_}#XzS-QDck}aMqVAk|Yh3ec%n(_)G`w^3Rki!9a@q=q2LdV3vco{Zx18dQ@ zdR*FWEBqu3dPTB0e2n4Iv=Be;H7F@y?Fw5)ISk}mX>0742ztbuL5j7WQP>DIJ{RG2 zOziv-&$o+nB)w}GYWPyBKHO4(isB1_tDm8TK1lGb4JU#sQjs~0K(7K`M$q(dV+~Rj z2?4|u;AT$mradEP0-ZC&{XkKEH;B#fy(ussGfQ=^HO>fV=Dj*dEUoM)1UXUGWK=Oe zJ{`)Z+qq+E5r@bB;l1cYj1XJ8e(|fbd`tvdSxB#GQsoT5J-!AAhs-2|HOtxRrYFsJ zmND!{exA&7fbwj*>$q1fof{+W%>}b%AbIahK^Mqkd*rRISjW@(Yj?!mv+J9ruAJx^h2ZxT)ToWhvrI#dC(qp)ui{&Y_W67yGon zQbr}}@|9ut`tP0G==Abl3cm*a%;uF=pZ1)-_A)IdU#}9c(7PA1hQd>)dT?TncpbEv zsX+Z)xqD%n9jVNpmHSu$J}OvUvdbSFD$el?CAH1#XOBPO49pepW*jeoMv}v*qh)BF zHi}Lr7c}Y(wRPUn-kca#ud~Zh`w(cu=CjnxLr45F6q9rgKI6;-U7&}uknmX)?GslZ zAgbrcdp#(0u-J{}WyOT*vbdb(u@Bz_wi6&vJ+Q8CDJmmHs#lH`3%LD(<}WX!0W?*| zooD>@bo%f_hmmmBD)-{FH_8cP!g!0qG+D&&Y5^d<@i*Bg1c+w+SbN6#MVuE~5_A55 zBdcyx11Po05JzXcMyLr?aXD%A5hCyxF*US4HL@}W5_STPb-5$Z3a)3~V(0>#O>waw z0ZPmaI7yn=`vM*eqUnSa8y;m3fuviDrusPxP1<#7`Y1>lz1CFd5#&affl~0! zYod+3a~$0hv7mhNn~&D;Z&`Xqq zX3tZ}z^}xRTS(%kWzz*XsW7tBU-&fq5*8r#Z0r(&qCbK$GSgi`J3l8<5>vUbG^5q9?^E#B(#NDU!vIbi<6v}HbZA$AU;%?gm!8iuQZ zS$#g{!u!YHhWu%ZwL2>06ya1S+R0R__ANkTp;Cg=o8=r249iEr$JEw_x9J78zXz{= z9z*{lcWk(5VCw8qA+9XFcN~&M&R?*npCxrX@t>&|S3}BfC6g-rMRb_rhL{6>dZ0FiFn1>bQ z5q5--$vL+Br>!hV0QT*@YJ!F@&N5#Ug%ta5`P|U+`4NYTG#!nO%nip~3)D@UmLps> zHeVq8R@WDxD~KS?LoFS~jNi4_tSN$8VRR_gwD9VD_Ypk=JN21J8dGk7HIeaVECBqG zXMnt0D9VE&Hg74W4peE)GEEWVUSZ3fd78nM;URYfuLhI{x(f14tA_HEO=sB&m@iFiX8aFWC1W2yE#hQWtQ#55pV zb1hKzo&pU$tyVL`WV=s51i7`h0!?{`Zg4iWO?F{eh5)Srv9~0oyA@o&;{lvY**!mP z`$jRsb|ZW7WceAv-B9b6tSmF4$q(M?X{_0TU}jvwb7L9Iw|opn;I7JWz7dK_oR^@1 zPIrOudg#0BdI@9)xgO@NEVwr38TFv`mM15A_yWJ?H7Ly$Q`e0+5$eo9a{-R)#TE3R z%~X|3U1(`2pThXhtM*f_3;ud1RMXr~s-fcodjv_CcU4_K$gP5D4x|h)1~}a&k`OV{ zi;1j#sj1Mv_`P@W9!IZ4z+X z8XD%fS8p~M01hkL7t=SufL55Yzz|awqnJ@WlDBH-4NT@$DWR(|HoxM)VmKgia-5;pV&O1`c0wqmZKdoP_j`MXl4HbU0;fr94<4ZJl zS&U#Xr>+C4kk#op#j_(q<_b(r3vzEvQI9on!F>9N_f^k)!l#UWBa|yl?yKnh?IrmT zk@wVvbm52N5KVuQ`us{1!-@WV1P=oM#0v(jZd@ki@qrw%OGCb~UmzdWJ<(Z!K-$?= zW8r?G?dQzSW1i?-yfvEgl{>`BB~qEM;>q9{q0SDavcu@RxAG27F-_C@wD3$mn=UCa zOY9hVOi0?>yo|&y8&;trJ<|qon}o4v^iG%Ed`zHimlA7!=jUIY+Huyb*?GaUX>myX zLRNIH$&U}W4tm%BgwSt1%1&<5T3dHf8w&JB+1@<%T6i_05xx?7Jtyh)E8B1VOeO99 zE9M;>vh;1{1>?2&*|%EbKcnSlJ`-xMFv{jJ*Uc|X=e5yeS_)VJz2lCHFHQ=A6iXGnFxMp( z&j*#suCCJb&p==~ z4M|l&o5AH8VRsIT#kp0~;HvZ+d#K`2q)KwLgqU1Qv^x}vRMC5X#{P~Jp80pmah|m7 zJ|tC{01hKPZpi+VSMO#iPGBoE^*1DZkfEo!Erjj6a6jJ3mD##4h0EG+;qv{jdk8DS z1`eE8d3RaU=6DoN>q)ErzsR|)ObmXIX#^bVPD&s+KuZb80CL2)q?`)Fc`1k8&LPT&mQ^x+qj^*aBeeh$luYo-$#(f0xDwg~Rw75ohKA-$ z4V8D>ow#|N;q{RG+}lRyXDU-KjOwn>y7>*s2`^CQw(;GgQBAaUiHx$MfBjl) zM(5*IIiy$UdxcqyIq;I!Szkw8sI*RoMzXNt<0ivUK0$ufzKNa=xrVL|i^q>5rO%mY zo`wF?HGNOo-0dz{d7q!xjp+e+3TZjMyjAJIuiYB#kiJ8Upwug^WkyMAOJ`c&J@7g^ zJqw8w-(XO*fhBj|q z^3p>YTnCz{33IVVHQKbl_$pDqSS8<)6v1r*PhZ+2jKlBlR`yC0#{;_s$Jm25QX z7*Ot9z2^zTkGS#FofA&44@`!-Y*w4Ey7XwR%UV+u;N9A5H_u$j8lem#@a1YvFc~9J<|VQiS3@1R#8;hj{Y+ zm>cUU%whAhsPw_rvFHo596xIh!0+k1+wP|JPB&{xJWh5-lMF{M3`%wRt!hcv9o|v3 zasDPY?j;l;aPoOHLjqnGp$6VZm^LKiZa-C^nBzw|+^|@C`wE%%+^<4xe)Su1pzQJuMl5Jh3Uc{N^ zk)pHL;n2nnqMeiBa{=O9A)-egFF)2eRZE%*92w^IAvh!?OVM4#Qv({Qrkq`bxcdra zKcOLnbZQI@WIpina^|q$YtMxZQO>I2x()H~=<0^wAqik5W1j1gcIH3LjvBqAx`F#N zf=sSN$uT*TbSXN^Z&_ycR;b{rZ54B~cChvBdci)a>d8=zaFA>>@Q1s7%M=z}nUI<- zGdNfH;m5A%1t=L6pB>4tpD3nwo=~i~Ctnj8zDAn|GY05BK5C>QPHt2sT8 z-Rl}8{_?)T|A%#RJE3v!cf;99;HuSLXt{mWa&EGCloLP!ZR%nUvUOmkm8-rpPmODj zL-EW8O(#V{1bhs0Rv}HdnKeC)q#si#|6>$`;6S6#qPnUUub~c9FVv=ZJ?~$sCY7|| zd63YOHELqtZ!G3GGN{49Gy72)fEgY~xh+lSR(VGzD;=k4z8pDfMGE!D_+fXB+xG2j zbfO~Ki;cH_wxA3W$fD>{YP`#z9pva&nOxP;Nj%w4`edQUB+<6GB*?xqBY5t;E5qKE z`&FbTZHoTl_ScA!V`O&qB$y^O$Qn+JO603Xr3YG67k@GX2d2wCL!|7aNePYi%C#nv zucREYBF&RO*^TWz!}2;z$lpC)5x7})oPstHZf(WDcs^9!>tBCh^b}kHZ(cC4_L62b zT4ecDN}w(yZfqA`xnlh`CgNQeeZvZxh5Q2WOuX1zsk9ywWjyi`*c;XHziPX<@9pc# ziiT$KFsx4y)zJ@JHLqPIq+^rhOX0qKyYT#;1*m&Tg;u7!{(RM`PB#!b$P!}VNZ%{1 z{5A=YRBJ+zgh2*A46I6Z-TXwUi-yXcIw(Sd+Dg6*Mn4)^Cc!$Pi8yAON*{DF{X&WlOq=#pjy#y;?!b1L8`DULF%U91A;bT({a7g)3qtjg;WAAs6jQ+Zhss zVYG(Zcb+k3s6K8~y>+GsFxABkJ)kL0TTFNH+A@89-*V2Ow$WKN-=RXG{zpiRl_Yf&bpQyLb=OdbBV*;b43Cfqu2?6E~L{M8Fs9D+Z8xabAH+inq?_cu@5CB+$HQu-vtd=R#hA+ z@!D(`*oa+1E|eVG4ZQg3!%uZOj4@4?yUYT(UzA>G@>!43H zw7JQuEPo|{C`TfvOd%c7CBwYjJ<+^{;CQ#=@*M=|P$*q~&?IA^ny3;8rC2TB+$gmD zXk?h4XvOH_mQMi{4jbC({Fgo{hf3&#(m`S_R9AagnBJ$dSa(Cxn<(~V_w;IrGycI; z!0gWGQ0`&L8iIhH2(~O=0S=>|lKcTE5zEr-{lPh!U4yQP;(Cb(xd zHEO*$?mFn=#S%pTFTGlJH#!+^9tUs zX1||UoE7d|=IsOAb;eAZ)n_=TDzA&k3`UiF=@T*4&7AG;jP?C?EOvC#FF^)Fb9S+{ z4tQ-kM=VD;FoAfT+?gkWMkyCUsOi@JelxL}iw;V|J#- z)QcfPh84ddifC)TWkKP{xXVRMhUiqn%)&d=0aGWUxI&L!lz(K7YdH-O!DXk<;`~f2 z+Ig?+^2nRitaAC?PH0+DYuPLWR9TSdoSYG0Z5taE0t?$>kfhm1G91ew)z2g`IthM| zPi%@l)zQ+W)_0e+q6Le;1Ni-|#W$bxT+63&FpIuA7%0r<(Y9F_uFsM~mloqp*g|`$ zd8Ybt*VuRZ)Y(XrxAkmXP3-uO4pXD3;nIA$_lQLd}6{@h0H#a zoZ7bweNlra25B z;{>-?)OGWd&Caa!#Ft2hf{#wykYdzB04ltKL$f74fiDnAW)`6g3*Lm~QAvJER4e^y zZ^-qHez>6xB3iHKP}kfOAsr=|1pz1VYd8e=WiBQ0DAi<;=zf1c-4f;$l!9UXNmwhj zZ1I+7+tUTUHSf$=EZVXsA3HKl7D79Y;Zkb_iY^-jLh|Z6adu=Q|CgTm9+Ep@9m=@k zbUw6snFAwIoCG@2K)sOZl5XWIpW!?qcRpW{&-yruyLMtYQYkBya9DWXiE=5Ld)J>V za5;Pn7%@F?GZy;B#gHxmd)>hgQb1BXPTtWmSh>OnG}pzi{%|5+n`v#8U?kJ&R30!Ci3 zj6rip_NKC{t<_mf{^lP?vc{4;!>gECr&b71lgtNbq@<^=BBCac)uJoAIiHAQi#Udn-}DN(ZDuKZ;*1>s60hD3}CLi6bT>fI7Z! z;&CxVhj~T}Qbrl)FEC$EYLD^tw^g?9?487oLE6r)N<*E{{rON@XHg=LE}1D5pa)!GdT&e{Z~JtK9h;M@MaK;UrKWFTkhbz7^y;99;4bB z+}9|w!dg3NdUpqz2o&nT=EuZp^P{BiTpEF!O6Ua|LPrSVwU*V{LAiS-8G8Dr1O!)2fdKpV|@5EjT3} zi-SI!E>RmvfBWwIV?v&)$VyEw5mrOp3rd+^V`{d70JG0~sT%-SL|N~f;)z{IPl5FlRTX_RH>BlTp47&=K9$6=#$hs)hmsvH7a516yd&tb;HH>^H4R>^l0yF`V=In zGD}G4WRh)XGvs%hwgp!yB1T=$OH(A2Qm8X$FCvzZ-Rkesn8yXSE7DLAJl*97-0nVifvVy)C z8ny$DjDL+?Uoub2{eU#FC|P4tda0AgdZLByI@J7D9|p^@(G(`W52uHI%yQW0GWG*V zzc|_4V_aluty-;Eow{h!@A#*)oaTN4eMzdzNgJvl zh1m*-^^Fja=s;=c$^z;B*wp zICO0vk&RElp!6cXANLg5Ty!uBmwYiq&U4hCqaf340Fs+4cY_;DR(B!m1GLN0xUt@aOHpo_^@WvoLJMv!=xm%cjD{%f`*>g_7QTXrqwIk*5dM3_)caj z+19?%LnRi324>+E5E$h41&t$Zxc*N5ENv%Svl;b!JlJLQq%aPAWuCb=dWTsIjY9~~zD zd3!^HoEOAy+D-wlw^UI*aJ-GjE%dIBMb=-8;Oa>py8tLV!oe^uOFg;n(xzoP_`|UI zvC^IByH&B73x2`Apb=Z>F(wH#9`hqvBh0ug_?$-=0bL^i-dP?y1&bRG&RJ7NjDj4x ztsWPg7tO9jyq5X|7dp_Q3vygD>ZD+3ga)6xy;hDXS`Z9)K0 zUBRC(@&wPQnm6juZc2pX@)Nh(kMa(MCk^9;XrkR`q7(&|xkj@m-*MJx-8aGcK-?BOYh&Mml~Fh)PI zr~55d&UThzqwQ^@U-Q={xb6O1K?ql&=}Uj$b~X2*KM=-jqH*+vI$(Jl-?yWopE1t3JnQrwir1D+hB6 zC^(I}KVB_-czrecVYm=y^J#Z($kClS(LH7|4L&`Fe4cv zppF5=!BX2>y7B36T4{av0(~)i(mPTVhL&9KApufvIEWk64QZwniL{r=kY#KtOH>5% zO7m!S^A&ImFw^xKS*!?Ter;5}!MrLVuGmlmM2g#3U!Zy90#()g-pMEN)JJCsB(_3( z-G&~|pykc`k2>ZT0bBdV8r59UZKNeS{dw*L5Q;WH38D_EnT~!1_u`9~xvqmyJClMi z5Y@$KlS28kFXsRNPj%J(N?GX0f&*cbEl+s;(;qUu_R7yVRr_oXxL+!q#6M}`p=s8K zbUNyh*(3#;HPIj`)#d_H(`0x%PyOPP{pRta-ezXooL^g}DqhBcWQTXLz5{>uKK}&; z{@0I%dbS!@+4DecH> ztS{Z)ogFHq=O_65vT(}FD?kp>+HlFH2?ZQB2>Z&8UWBYm+9 zvVMl=js*X6I?o;YGB^O~Cl;k={(|)QzakX>4fg@wwbqQk-fX+^=1#Q3(q>%%NYeJ< zg$@xw__a~g;NL7(kJx?wU+tBn5dyf7k^X((;q66q{DCw4kF_PQ<*~mUD|$LDkxrH|u@z2>o1wP0M4rzjg3-8e8+Hakn?a6Na=+8BJZHx4yudt}@hTCKd zPV!d$%+@mghu7|0NVr`ngKA;4-%GafngWJ=vVV8R924nbDdqBBIG*-+v5vBlLA@kJMGQ)^EMt1PTTy)mL&WS;pmP< zxLvGu`^k3d-q$SH3%>v}tUdBSu8g=A&e@}Lidv_;zy9%F@%uOd|3K+LcoeoXxtm?z zl33+Wc$NP#`YpK)Jpt7jH5|0i^+4la z>;Lz>*1-PuU(iUlR$y(|1yryMmxHTS@9kzg`j20`L+@fazDJH$zlbJ6mU=z_>(;Nq zh3(n?`r@4w)V!V`*oxgD%uhE2@G(h;#lPE+;E!Oz=(Qx8c5q4jLP@ms_Wvl8h{W9e z3TK1#^7*pg>=p52EZwdDy|LGuJNWC*eF2~(z*ko9M;Phm_x{O=+VKz%Pml;QLkTj# z`?%>~x8pbKYW`2liTwN*8S@1@81U?<>AFl6QD9pE z;L@e7e{D+apJz22=Ai7vf>U)w<;FjJ=dY`x4FaW1_-U=9f$BNVi(dj;|I-)RI33^+ z@8*s(RN3?(_S}$ikoZluwp77yJH5W64&YTbUM6n;+2gI8c=^FdDqtOvvDacQ zk_7QcRAHx*`tSVF$L~QUEi?--SpR%hsEc%UJTGNP(zaICl?oS5ouA~1hs?8P%h|We zKGWGEXtTW5E2e_a0=K5nAJzvA$$E%C1l2tVS@AbP6UF$v`?4>W?RK0j&a_zvYZ z_YlB^VaS~%T91(Fdr$Z4g$EhEvYqQ(3L!Oza=00YV>Lm9=dB6PV+mpv;s4k6_3%+i zI#vL8k#5?)+(wyL#m-nIfP0BC^g34ubR$vnDSmW|fGih%YgTUt>VMO9^Tgwgqmn8T zjTO=o0rq*}ejPG{ZTzAg!}#UEZT@`6S9^F7Qg$Rf>bMJkw>Lx*Vp%mO?hMtBS`F3P zJGAoXW-6J@lYClP=f}jL~c&yZw_Y_>C>e> zr;p4b;5xXZQRS(o&NlbMfYX<+3J5iaR~EzMhm6Zpjpb7aN+_*|C1k@U;DUScylgN0 zhoq6#%%+I&0G;qat3(R(;i|fK%eV-8v)WbXsik?!yZ*)%hJBeGOQ|!H6{V)nscfNO z&rB&U$ZSC~Jl#0Zrh0E(ijao&N=Ba(hw5)~|NNQ*!sPzzdH4^P(BNpo8&K^DiTqC~ z7AqMV7cZ+cj<(p&at(iSQP2DlCZeE_spET5F7YcOIZ^2;C9hYO`%q~y1^rbYhLJPl z&b@F+%(jemIe$u%{yclFrKt@YK!p^=X8$x&$hJt}T*W0#PJ4MJR&ON_%ILr0-pK=q zo;3`F`(+Q8#|sIELF$q{Pd~{@JS=DM?~t&zW>}KWtBQjLC?ieN)YdvBx1LgOg)GAI zwV)qV`e90zP91fX1IlMb1Q!OW>p?E3P(j-hbr;i=qU2k0WvP8tF{8=KqIaKnoMOgv z)1kI6{4aCAKqa>}QYB7@f&xCSiLo#A==PtGZ%KwoAs*9>sF>x0Y*cJF9Dg9k3xfjY zxnUVGzCHNC>w_5H0`O zeAueo*nSpuyg#2m2k0+}$cd1{KK(6LBCC*fw$X(aCe zZNqr6!(HyA>86PV6FoeQp@H-XZ|G#xTQyRzmWuM^WRxxzi1A!Z0yN78UDif(6cW>; zA0Nu|5C;c}#Uho$8n{#vLSF=m>x?HUihwO}Oe zuq$$x>FD#m0~$YRnk6)ILbpX9#PP?W_7C45iDfs&<)n(rC)^k5NT$`o(~J?=mLK@U zn?Pvr8~h-g{y+TzsH||oJw-Y<9HU(uspc1I2^m@4?ji}Khi6`CX1bm$mrQgs7JyQy z(2h-ns1)^iA!-DgyeXvC*m@we95Xcg+ap>@!7@x>p%8A?O$%4z6@Gqi0-5p;sKGO zI!r99-ENg@G`jfS5)}F1`sb}o2zgX6Bw0;sA;rm2i9pkng{7W$NIn}-YTm_kH?Gtl zj1L2V3H9ePFX4dQg^m)YlsMf`E7Kv(o@zv;v8;^_F*Cv6_f$&!?tcA8`NLYjI~v_V zRGRf@jybPQbCD+>_vOi!qzb&7S;Lvy9&zILa;R3J31Ij9*YDM#LWf<4z1(?}!!OA3 z0VlkYq00e^nDW%-%%ws~hWKYkMold*-cimlB2iPKnuU}t2I|>CGswkh$0a~2^s#I4 z&MoFWu%{CD9}czp(D~y0zWWrNmkUp7gHLGOXVLk%FGkzDd}d)NNw@eFC1ff?S@qkR z>!2r{R5)4?!Ng$EOpHsUmj*gioBRZI`4y;r#<)=0#Y4`g8S2g;@IDgT23bx>Z0F7( zX-ly84M1f2Kq*ska7J?+ItzSWO+>sZw_TpT(f|?K(MaJS=Cy>Bcm0bWf%MC9IY>?m z3hCxBZVZCQlsKVG{JH{j*Ruv0_W(+IZ-pm zs?)dJ;1*Tb7ttJi@477OgWl7zW#hBL@sQ)u(g;=6a= zc)Y-ScOleSQzaMbtnNBsuw2EiM{b(+^0=)F*F=98D@U$g`j-QigNd7QLA6^BL0j5# zQ#<`BYTNgA-eSTV^keM8cS8k9qELCcNMbT9xOXgf3CL4o!GsTe9~pL+Fi2@?0sabG ziG)~|s3|Bz(*T2;gdpV(Wjx#wF>*Xi)bYXCf#CFd8dV?LF^QXJc{#Vox$)`0+n<{>@CXU5>Z3az0so1&YH#H~f$4?L z!1dTmkEHa%zYW_UQ$c3D9ebfl+ugta*O9`p z5sSxTvHXL#{J`{Z5A5Z@nD8(C!px&OMRG#cex$#=z{P?{x zWy8JueS}aEnhd#7A0z^?7af6y)BVMuJd#yhT?qr&(1=kxw4 zw!f|b@-L$Er69`QJyEyXp|jx(E*t5;T7tFBc#Yt9myQ*D*hnS5j>gjXZ9)YBI1JjMfAFY`@Gvd;%w6U0dzc7TX7D zZ4uV~Dw2k2xQ>+kLw)?GhU)$ZlVG>H*MAg8P0B%er-QwAGXIyU-#EG%h?US&CbfEu z{6Jg=xBuVejliIYBKpLgJ@o)u^==&-CPHgA$i@(L~=lo@95vlyo z>Vam@YXiukz3`CwO+Uc+_7WO!Y;E%9o@~m&wrB_<$>CR5`d;)XIgIZdJ+JSPyHIuF zd8y-M$H}7plN~vqti7xqHvXstS_gk$cE_SX$|%;JMsQeV1Hd0GgC$FhDm4ksPjofE;8_~^GbNI8wC``8m3w~X zO|rOW%K61t7bR!T5=Y!{J*7ZUEIDJ_$5TPp*TTf4F%p>N$2nVHXkDHaIGa6c{>@}0 zr@|K5W{LAe^yj;NL`c0a)~ml-tnakzKsLU`!LgGaT=~`xvsk0pZM*j7;5(r|U=r;F zRQjf)dyWYsyx2RZ01I{>(ODm^SKW^O5mzid-gv)CUgO$m@2#pVwy8k*T6$;X+Ksj|H8WiiVlVRBmf+BOX`n zATZepXY%ELdl}JfIXH|`bxdmf4~TyqrQ;paN-RPVtJ7S~pGaK}P+s>b0bD@218zBb?q>r9`ZQH zZ@d#ItWUy|54dVs($r|#7i()Y)o)nr%aj#huJ;#>;-$RqGGn*y@19DD>Sd>V8PyJd zAYEtYki6l*xAw~W3cTpRX)<|q=(MjqI%b+o0i81KtANg#CQ~$bs?#vCWv$mRk*-QQ zSGJ=|s5%WRX{!!JQj$ta@W8jb8wc3qKF+>P--zZyFy9fgYKP}Xs70TK?ZQ7;T;6JZ zvzg#%5#3{gUN1#<hoPiQczLykMc^~rx~so@ zb!{Q5{jnx*QuROqktn+m|F33QQpTZ5@&@m&Gt8Qmj{*-+veR16QocUHZgiLPsz#~b z*_$H;R2!?eW_>-Fv7zaJA{b_juATO6wX>^F;;zvaZ0c8h%=?<~64&NhZR#DOr+2AZ z@wjhge>Q0vuSah3(sV z4J(o7_s}fc1iJTcIH+x(up8%zq#P?yHr&N~M{2Q9=Epfqo@O`X2L6arQ1D~XJq0MO z&ppofWKysj-AL7M*9$dhe_hj|v%evAR2~ZXBIJ_ZzMc)lWWK(tO*I$nNLl)vq%_n# zE{KMm`2nIwHL3D1u1OB^mp=BQHa(YiHSgZmiz8p3NlAWG;Vuqf56e9H8p9Id^1DRd=W}4$@Lhd*zpsR(S&aYuDGIA%d?Qu2 z`P@acEq`6CT-T4#o9Z2flmcGg4k`#Z2j`5;Lu!Ss7I5!h>y2j9T|{f2y&@gi{UcoU z+%2~guXyb3s#Z&s4Ic+VSI@ej2JQBtL(UrSQwIvHcN+WMDoy5!B-qV{9}!>h5Mxw( z-pKIy`h}0%j?dFWj{7qAAzLu_pit~7cg;{z&NOBswgoiu zeMfk)fFq~~4J+H!H1y>3iGmt+tq7`okL_cz@rh^=$20oUxn1Zl7niap%e`h8%sdeM z>OrH4ZUJafNqKY7oXuv=AU(`tNNmn7-VT7yEfy_UPO=%~N0xh0>wnGiIBV)w_tM5i z*q2cN@QZ9S9Grz1%}=l%;%>ye01 zIlAS!F3F)`?h7j`)|LsjoDmA)sfhe*waW@ATja)k4_pk*^7mQ=u%M9f(+7)z6Y8ve zv=UuKijB-jjH&yN2-~=5g|u?5ni=5jWvjnBVQ@Oi?#IVNGD<@-6>>e(L#v4;i?gFi zC04DRqb4bXEiPZnt88@*R*I=lCXLj_>7zT&MJ)jmPAPOY(7!xhmsS^|U6XQvl3SQL zzj=^21^?VHH&HSX-d&W#A*&}+R}wWwjE&Tp@#0$Z z^ogM%b=!?!bsVMIaXoan{RH}BNOOP+(<-rgL@6sK>7)t%!~H9m>d>S$Eyn({9WxK| zmuS>8I$`HNGSTa=WHWs$Im>Hh+1!7)A>le}G>QQ@tROM5V$kG9$)ld4nI$z)dV<5G zD6&1{L3rGm_n!(r*(OJ8PV)H2a9iCTJTcv5pb4N#b&9Eat%s}CKzC2vnWXMs9L@FO zvYxq%;lNiKnlpS51IIX3Zu$h|lLT>nw&FYKZeGPnbXk%h|qQo27a z><_u^d8#@|R)1ioJWHl6w-+D+(gu^=>vGzYyrt{11E-FQ#55+G!=omUsN-@e$DFSuFv`4@P^ki#+Og2G^+pn+>J#II&LJwFoMaZk zBUXi-li{8-7}8BEe(H(7UD_vK{J@=y{xJbbs?(#=H*^dnw2IU-_B|!u-bT5Z00k;1 zjW7aB)5}d9jtZa_Q;v$Z74)XptquKgBIeU6wyA;U=7HLjX3jb*X7Qy|U^{addw!)w zB}IE|(i>HtFaZLv=>xo%bP)K9XcEUP-Z=%(tuOabL4wb85`Z z=IJ-}!9Rh5NLwaXc`QY0b?o%Z9sqey8N^&~vzZUEoD9djPhv`zGCWt4X{u2Cn#T05 zl$M)D*zr*TXWv!DwDLhI0EDGMt;o~qQ<}Vl{-jjbiGn^f=WiLx{6?ZmUVKgpE-S@E z)#6iffvrIm-(I9sZ~1m`B@9V+;O-hq%H^JHu2{7a9ay|{5`HL)-3#P98^?OhP!SD5 z2J#&_uGX#v`|~5r14+-2Q!8p<{POs0QL|DOJJYgt7eBRqeV{qJrFmFMOd3bQOY%BS zOY?IY2gSXaWlJBG&av9>e)2v>-F6^UEjqQ#e>I_e$2PzkIwsKsV;@`) zQ>FyNV$}QHjy3#q&Y`E=*y@{p@t&_w9k_>vnDV$6hw8B|Cti5F?)CGQ?72j+W8jzR ziIN;EEGN22%xNVpLjdfttRbV?#ozD;0-uvn}2a5h+4KRjw zl1AN7vAvud`5g)9-=@IkU!&J~y5I3cW0LFoQrEp{)Yy3=V2s70+qe-pHXMBlSv$mD zhaWkI7joz{k0%)53;U0=zM_lErtOyIvRg`*_P(gVI&@+rc-6))HIU8lnwX|vwUJw) z8>MmGTNVY2BhA-2(fg0&Fs!-SR5y1Y+r1{BjwTm_u@Cr}94d52dqCgs?Q;*3Z*RNX zPmfT!@CxryEm4iuu(O@1#~rB0@nhch@zzD0Xb-YYK5OF)$-WPmk_o21BZ@ZNMTbCt zHDnlvODkp1-K=B3cuP{n{os2DeZk!KZEpg>uY)0Yt z%Q2*^SqI)@*pb_kvc8133n6fWwj8IG&YTw(Rh=7q2X{}2@MyCA7AKhvg4JV80HQ#y z@9PP00=u}4x()8rr!0gOoQNTxKaiPa^2rI;mfe%xSiKaG@?x?VFPRM=qbACR2FsCi z6FX0?L%!UhN-7sU{xnc(ZqpJDARAw}OIyK9pXXGWoo&`TB@UsQNHG8Ub6JWeTzUsGxAEkf23xB4x zx6EHH-(iKZvu0cdnBFoF>lc01#pkGs;r4L%+(>bt7z_S%(3felNAFJFU12b{@8uja z){U?S{ciBl(95QYGa$G-Ec1;sywqC?x|LweOQl|Dw*P}jsIYHow4aDStH7ce!|j~R zlu*;5KGmL*_Lv3Wwpu7L#Qr3s_Q)ksEzZEoje<%3IO|7-{?_bFE9fc4FU9d9&#bWrOUEKDO4HOjSqm3gdBW z0EDDKoXdz}OO!b!Kny$sisdT+9|*2S&TQ>lcl-lyfw2cSxsfk#Z)@6}2+4`LBVu@p z%s5rL^KMgz^D7c~5n*WssoyjR@YcdYN;AeZ|Q;MCUds&Vb6RPZdj_P)9WE_g><$kBV!i9w(Z+dy6@{4;BXu*<4d(i^!v(_ch zYuG)>a8AheXvK5cN`peT!01I$e{QBvi`--R&bbL;w^y+#h0xr~Axc@KyJ81w($Fk* z4TfmEA6bOo&e*vj?gC5f!jD*`Lau=R?35Ki@*((`MhGkdUN4T#KkJD!K6zEuM>vr6 zdYe_2Kk<3-%8_q7Ds>(A{gr>}gDmeZ3g(-m`+R@to&aNNw?CLBv{3Ep@3VvzaqK59 zdhJy6JmZ~FU-4;KMMJgc__Mu5p4SE6UZC-QOLIEY+1RKrGF}fT6Fmk^cdOI& z^Xm<{pt2>rv=M*ZAt_J)7(Vij1crQqLy#STxR6_J{Ufp+uC_-TuFrO~c++3`b@&?w z#<79)X(q|xxf7-gdyi}zyS3lmUd4&t6vpl0Y!83U|3Ur=NkM|G7t5D#T-tc-wgrM0 zs676=m2qS~3Vy-MPZ`K|2IKsb9o$}mwINdJLJmn(L4RcP(q@P4_IGdH806-JG?9p? zpOG=s4iVMCF8>!#2}7hxGombKd$ra+{oGv?>YG1M6MmMRrtDnF%in%|U(A7I$L_5y ztA`VaMmUwa;DLh8@aNWYpOK+bG%&tjxOW6C--Xvsefq5&)33+i4`GEv_8N-q*?TUK zf!BjX4R?-#3J2R<+-P^JRB~x!w)u1VN1upzJ9G#P^mnYp`uBek#SkBuE)9P%@A?vj zBx7}LO`{WcIJj$!t2*^;Q?FNQRG;4Zch1~$(EjhIjaLw9Fp+%qVjCpcV*=;J+R-JV zQo$!3Vh{f7vy-y74{>Kac56!)KC}1^fujn*n*PtbIA_HUMToqDDjVzKpF{EGwK`zqrt^5}w}ZwD-qXXe_^?NB zgKb*|@+h*p1MR+qNVs~3_M5VF+e;4$wDw{`3xmZ}zlM-ajFu}Ib@xlKpAC-*v5cun zRmZf)FSHr0dcBGp)-|fypQ1VujXTjC$#a-uk8TCcyZOQz(IbB=AK1H3A!~H%9LHZo zF*x4|cP`X@X{u_6d**qq)-!US%8y4!JC?WNz3?DI*?a4}&sjWp+pCY$m10i}U*!<1 zPU1Jy_V&m<#!r(`KBW=-RL+F)Hve0WsED3{AbFmzT4T?pvcmP*G9E#PS9nKij{i3QMevEge)6;#dy z@jCzG)x5hA_3Lnhbn`n@ez-p5$V&0*>^(z#EE?lyQp;&RO0wUgt~KzMu-`jrO}{1+ z%l0N*`CY-L^j5}!{^!bEg!ZPmWVu;wJ>)cDyxHbIw$$gw!P$%S4aFbg`sMUx;`&hF zT>dNgQ@-Eli~P;ZjhN9X@^juTiVEfY`AJ;(i_zGX9NxuAM;oNy8`pN<*{zl=A|=l9 ztHbc$gnw_WM}FV#XZ>5+W5Yi24ibDN#fsMT8zx&yd*J;;d*!_e`K8aXhduj?SS@pt z0%UVD`%hrV23lAedpeA5bU)eB>`Y)HR>dO$_b%6OlI2*DjlZc;w@-isZ7^S+-)9kq zblq~Nf{8rZY1Ov(XFKWHho*12olNQdXlyEW&f?-H-SL#H#aFkeqOtaG|L2WQzgknO zFUV4Mw&P&IcJULbyxjhN6*UnmI4)H)Q6pyF(5tV=xguLt7N}wRB8}@Zn!ReX&t;vk zaf`c{&Y*_ulcPAc*3SJ{whb+f)>gi_HhxvbTFi$%EOFWx^J`q#~}<36MZ7|(v!j>F>k z;#58dn0T%|>ARd*;s$)ZGmDD^n5w@_arHIyz6^S=U77MQkuziR|M>dOuqLx;YZ1kQ z$XF0WDJp_UQv?x^qKJYt1?g1*>Agfs2n=GQca$oENDaLtgn)$(krt!|r4y1!34w&b zcjAmQj`x1|j}HP5N#1kLK6|gd*4n;2cE4^owUQl!zb{p=@*=CvBDm<&$}C|9zo3y| z9c@mAoHKT)4Yq`!(g(-lTC~%ToV}z&mGWjoI8{Yi!Nsn?ZRP7|Uw+TCL58aqto`qE z|MAsDh74E}T^}nEmGRq;@+JNd&l)s$n{CnA(DkmF>d(|49=!%B#!AnRElRV@Ryhkn z_>fUv%e%S$Q{MhqoZt4;9}L1r%W`4IFbK96cdq_2rk7uT_xs(;2s~jknH3fTRz+)I zBQ3JYM+ChIz#w}YCQrunCXALTkm%Q zGR4UX2{G3H@>vc`G;#<_OmKAKOT1=GE)98R(Xeg6*>$ zr?EPx=n8|HFnKq~_kxNM-StlQ|8q@#?1$cbaA(Y~hFK5qP2*uA{zoVtyI(-?jv?(J zpOSR%Ym5o{JV%E{Z9;-Ns>dm2Zuku9@{1a!De=8t<&zu1K0$ygt$C@FQ z+p*J5BbfHjM{4`SeGhTiPeH;Gr9E8VbLsdQA)+pu1+l;UW#`Eu836~>+lfO}uGCh= zZ;7t?M&h*rH>MB8KWtq~N2X8MRh3G3&l2SR&M$Lb?vVLCD*(IVXYM?&3!bO++H17c)UmJAv>EdR(Y0Q$Y}x`6iP^vZ6h{iMJPn&WF{;nivj;|rHQE<7~-Vpr@vTUFFnsEz+ceX#c-21;F^g zIrk47Ncm6dnWn`=j8uNHpUXPO)B2Zm6P z%!iCuQtsb7Ct(~&8$0Y*)e#_RM;!G0_Ob2V%M(Zb_ALmJIx=zdf4+&Zox&&APlk!u z-2VM%Ij@6RI(Fl_&Fy9hE1VUayC6Dcce=(#XAyL?%97^)_qj~yr{Qph|HPZ@c4cI}F=_=CgQYyT&?CA4@&vB6oXU#5K-tq+WEShEzIyiF%(r z>?29St1`{EWCm#+IyUArsIazJXW8)tEtA{&Wgpuz-c5uVo3pY`!CiuHybPCd89v!- zH@%?LUHO(2PxQR{XwF{POUu@wzcMU>`_kPYi)yn~QYfmNd_txTqO^HV!Jj=w-bp&4 zeZaAU(ojB@!HWULMW>G_W^!L3f6{;@Wx_VZvZ8(?YlHrj)$@NJ#$6$>f%{PcnhZaN z|CG9|?{-==AuN2VF>C4h6;AE~*D&EpqDQp2KQ3yU*kLgEA}DUlD#cJQ4u4F1L-kw5 zcgfWPjrLtpyz+uBBao!#=$gZ9&YGQE*3CL`P9plr7$J;ir|qgLzxm$9A*4}Np-em;tly|{AQ$>D|a(s(U`ecc=uVO=%9mvIlAF?@Pd6JGG zUb0+qf}yl&3&wbuk*7BSL!~k6RAy^$W>Q!>k<8KFb|#XTOmj3~-}i^F<*H*c#I{e# zbX0%-bf&PL;PHO+)Bd6$q%_X-ynaG#C{3-zOtx5Z&)-4Woi*kk?$XbUk^!)kFaQ>F z_@0ViJ|ZK_RLk3WDx|K&=ZnkQkn5`@GQ{_?YBvbhl#{n0j@V#3O!KbuWW#yj^(dMsKQQwgHRBoPR) zUt5ZQ82^4&zFz!RG|!4-_Q4SEGg(Ll${a0rHqca&p5i?6y|DA;Wo;@s(Ddd3;u$50 zE!|^XsiKA!7R@WKf|#H9V{Zl6hB?7wb)LY^nGQUnv>*Rd^Cu?w-(+%Yb47 zYe8W=;bhnSigf&o@nlIsFMQTC?yQDYqt|!xSq%%(K1DtbGnYhk%GD2YEs!hztM4>3 z2j;D5I{X?TYvK1c?3j^1II7l9IhsbvP=12 zcSTes_1BV4`5~smmx(mK_I7kLt!JFuumx7uXDaEqdZWku>13**fD3-h%q?=e(~GC5uJ9I$CEC?9a4y+odp)_ZrfC+H=QZ6h6oBbeCr?NH_~6-+NXkQd{9 zdt~tvyG~wx)GEBkF3$S(-~y50%G|YG{lNCS%k_50T~|L^}g@$z3of7g1`r6sV6rpBpOmh(CDfZtv2=t_(M* z#TR&9gXOBi@}y2j+C|^RFUKX5UslY>5-g6><+BgUB?TRu#~q?~e#T^vL-z>IU;2Po z?Emk90fht8E~B5ev^lSpHFqoO0Djye4vqQN*J!0R*%Fz^JBEwT%ktfWP3qZd6wv z$l*Zg#Y;MN-q;{Mlz*Z02 z4uUT{TOj6pAnS+fRFoI`=vr;DXS|c`c`no)w&r04c8^zx~&;x?%lp)*_oVc_sNDYn}#{B!P6(93A$vn<>LP-oSvq_LWn7H?bxU$Ya7s*f5@h8rlldk-> z5~)8to)372+4+F*!z7a-HGjzgTlu`m60Mk(@oSRjAl}FZ@REn1{$D`gImNexKVe}S zpFA_HbMwYBe3(Wcq@MW1Q3HcdFI8%(m%8?4cqik4>G0E4r_ImIy5GKiJ4Ig7uXG!^ z?(Yp1<9CR$%eY#nBHp(Hb5kqh5Sw7Xd4h`EE`8^5gx0GXX9)!Ja@k}{sLA9DM7USg z0;NO9S}D9RLa1gn&(=VhFjp4;ZT{@?!n-9L^43U+Ktd!Xr(=YKEd18RclD7P zZ%}2}W7gJ62`pJ=ncSD|N%HxYOLavWN`00AlQ48%3MUp0BxMF|Nyib}h$|}+ zX!Yp=iZK%@_P|^Cpcte-)(vfWSRGP`!Mjm3zx!0kJ&{d=jn`#}(Uo`)kq-9z#}cWd z%kvMvX>0NN-I28GF6v?uJ}c@y+8oKdm&=f~Vm3%@iH`MOIFu+3 zxj8?10iqk~ync&yyCed(K6PVVabM*ezk7EfB5k2Nkt)$3Md!Y{oM2z-TU$0tMsKYl zM|}+y@SF!n$zPWpji&uZTN8U?%|fLVqSlKbQMQ!|nd7eIIQmDz-jbPh_3S zcKFz;V?&KFUT%8IoO5r!_t;_-k9^LDaKf3bkYJxfKU1#13!jjqoUP}W5urYW&2jo3 zJ?9OOC$JwEK@rx9SWC5>&lG#jR;7(rdXl*@r-%)cmoe1!^B5)cv#aBauY+^0Wek-+ zWUE~SM5|?^mFjF{6^qo3JD+)CaF39Ac0l?JQ6Hmr9X=4Tim07lk8$7|IMR8$ z!cRjPdYcnVud{GP=QY^hfjnp_(T6`@eAal4xxwca@naN;2%FE%9aR;=!6w}Oa)v6F zM_wfEBi>syJ1Q6-cg)9eaBp4smSh(4en1*%7a_vy40t^ zmO=s;vS2Z=4?C|E5U}{=A|d%*j?!L5|5f|!lAdn=NQ=Uaj{+#r;XU)b?&EyG+~-q5 zd}()`w3^5X|9RaIdydcW==WV>W~o?=1s4MEUh8qV0Dkge%k1M4R#&)gSv>=2>B-mY zc-W+JHor*Fani@5)}L^~GPN4nw?;sMXK0zPt16V)`|_H~%??9WH2Gw;+SlvLH~OCD z+@&MpKUuAGlE35pz4wPPN0?F@9ld4D83tEnRcG=CbU3122RORVG4O-OF zo;wD`o)t%h&CX3A)b?{mHb!Ix`j zn39S|XThM2Kj9MQ1v#US=v7Sv27WVX@F}c3zD=K_pj`xx7U32^2YtXjKloT%JzNA{ zt9jc}_x-C(+J(V0wL`9%a?on9E7&)-4$6fcZJ(nNw&bK$EkoT^)`&6}a`HcjxIOK! z6FEQTo}Pd#C_gMp9xGTX;d0Y&w+QZSUsk4BKm z-3n!IMO6{YbSH1|#<`A-Cn*H@B9SapU~sgd!`OmsKGaey->{~-zra{!xYG5k^-WmZ z1beWc7F9FDe?cA3joRAs_pxb>Y1+qP4kl%GA&42=1G(CSfaxB=Xtiy2rDqTsJaA<& z1zra}4*jJKK9MC$FYPkoK=S=5K#6UJ_v)jVcVXjj*L0fbn`C+47$9HRZDjv7HH@{m zVHh@0khnbT1UI^jsFrA0H$z?lxHr7q~hCgw)dG>@`gkp6jU81?rp z{wr4~UwW+b5w$f+TuJYir04tq{Fi;L|GAb#?wtv*QuR{f>|;mYu2gSV2UJgCl7al9 zE|IG7!3{My;+681nbx|1JEl%?g{yBXj@i%)&i0l;MKBEry>jH&yi8c)e8p^CVNpE` zVyo005qJq!?(J8V9&v&kyIDcB!zkZmTcbZ}6~g+g-KTce-4D&b#ZFhQc3IaKjO2UJ z70{H1`NlR^*;0uKeHvL-!89Ak$(am)sFeUlBc3_Zaxlr|1T223!EcZE?W_x)oi{M) z32^uw?aM_L54twUhQn?3FON(Oo?W@hT;o$S6&Bv0Goh{Sr0DT2Cs5J$Ve6+ZJ~vTN zLiYNzOF4}yTLhIQif%87+>M{;_L`MAP_p0DbzRw|htkw6tuam8-FE{sn`tTFygl*6 z)ve*A8ONRRdY@E#<*he5)v-=)2n}(>s+`F8z|LCrawsh-xS?sc8*A*8(bdtpkcpAj z%Hx(#`W-%5!dzBImuj&J5J#^UIp-7I637jd^adOY`y-q`o8scYfY;&=JZLN02NpKQ z)8Lioi>3KdIWt=gy#(6|ERVInVIO3#Rcv^VL6_`xC<(A+JN^ZY95u_&PC#wy`c-;B zH@sJsd!%z- ztHIr_c&la8BZGTJ-0w0-0!;2>;zs<@N?6Uy&R?ty{eSE%hoVAj0?*)NSmLO4>+vr?B7$U1Cbph!#Sd)gB=uGK(GaVWPWiA1e zhqi4N`h}OB!}Dyn8=y_et!c6q)A=(xt$@iV6tK2fHtdse0t@Ff53P2Xs2P}$a~?zJ z^E&q5QB1vZt^d8N?i(;NPj$H3Ma&XLPBeE(rx0*<o6WB94 zgPs0$5Bv_tV)kwi> zLNod{o3F`ur`8t#i8#C7@u`VEHVxZmV+&l{FX>~s(v|&b8I*gcwONk^&6+807pi8+ z7galKC{@%3C&km`|7&Wk4sKK>sDd8qxzoR zvUN7fXox~6RO$GoYuf2@)2o?Z4`~)h@~tkOr}WpVl-prSRGr4bq>Hc!-nG~I+H+aB zfbaV^2k_=}$Id~iXG99wqg_ld2qPg ziPU16lS(7*I1;)w7`|BKg-vh9$dksUvVW&POPUHg`w2U99oD)188a|b_bw>*+Gt=T%!>rduLe%kM#S|ejo?c0kTt0Z_! z?c2Vc9;N!?PVnF4jbAY5e_CXKJ}YT9QBh#->o+R1D&zVkOW$C)%oc4_CGgiy4Ol6^)g=j3gPHzbUU@PFbHSbHX6pl9Uj7X(&+XKp=3`D#m9#Dz5{y zzQKiW8S(mGp?ud zqn(HcX)ICv$&}0%%D7o8?W70Q>jSQvOHaW!UCg&>V|h8eI9-t#!SXKXGqMob-lmhO zfNRr9lNx9ndHIyPzhdVTLOIRsofXsk7@ZB0n79qHOk>}NoJMTgTMrgQ3&)}F^e46b zYVRsQ664WRapATTd&bf|Ydc9Ih5;5*pJjNGp;zoNbFA@k+Z%#y`T6M(aBA zxBaiprI9a9j@8J^LPuW$es=5U=zzMy_cK1XW+$4NLT|Q4D~Yj|RQtj#0RHKbcb|DE zi+|UP{a{7zGO_%(^9kyYzj|vqkCopha0#Fy?^fDhv}=da$;t7Sz};|;eWUU^vm2lP z`k}f?&Es`5uRNC*3e$7F=eHf=i%hB{tz>dCgQz_PgCH^FnH~=yRqT9Ds-4t6{=KIq zn+Y|%M#y$soqEZ_#(Nq_595JW%Yrv3r_BCB#h3?qLErcC)K#0g3q3m?qKI2GzL;pm zEhEpV@7tf9*A|Vxjg#wiaJ78e-h{O%A9nK*7yZK9fZ}-@aED8q2PbAF&}r7wWB}yi z4|cv9-0_`LzFxr45*lgSSG)8kyQzKntuL&IZSDlct8}Oq)ilRne*@^s1mb0c9|+s;+x z0YLE6-So7e<`dt#ziDFXpA!3o-G&Y$`iguJb-JnwVOo$ei?hzDW2N(%UA~tm0$uz_ z9ENKt`n%&XvdJi(a;`CUUX_;;V-Sv6rD+No%^ed_?2YJ$`Mv@RYH{#%I z4c~jW6XVn;pSJ!fA=Fl(BVFOU;~?>fh<-IX5O zTg=M??>{$wTY!we?GlbFscYWu*s=)akg(`4l$%(wo5XEDUd>;m1w0^C^Y+daejY3E z$#by0Jg$@&n5odjvsy9LZNfI4&~U-9JPc>?mbna{63ejnw;eVpA!iZwC$pUO6qG zjrCjxpuf-ZtG0Cc==$|<8re+^Rrvmaf|#79hGERuovq>h+IN{_)BhBC!_*zdnu#ws zBy3a~(~m@F=;y6$f{9T@^-)W+2p@w6VGnt|pIE^4u>HCXffM3a5O3}Qi?Cu}g+SnC z=wGh86}WLSIY}(D0%+}kZIj%mX^|u#bGbQ~DX+r|Npv2sHwJ*_{Q+~xn2+Zt4nq?^ zT9(r1d<(iOvh~08xo5&53yE}e;H$&oCY1u-HQj2>sN4s#ezT$XpWn8iEEj}NZ8bsP zr|zO?`VWbGH@-DeKg73LxG^PY9dYTS(zdh5vhQ2xFC`}(+@@Tx9DhuzAfP`}EQc;2vyrnvHatNY7#=hUEiU?~LEW_%B8#W4JUx=d`**>F!fLsh$0?^@kV1|T`q z*U{m{-RclMHlkj^y|#&hnC0!Oe+t!X;o0wu*LfML!HUoMEvfqNPmQ?fS$B)SOrZs+ zFa0f2KiB&AaM()p>3ymEaORx}^Mwk#aM)khhL*ayDn0gfy|ioKcKv zZaC*`qSkI5S6F2hh9pw7Tc}%9Is4>ka2=b~#@s`n@t%DMDP2kPV^zU!TA7nbgJIqg zrKi1SL=UYUAiPZ#IeEqXLeAH?!=F?Z{uH^Lyn4{ym(sU`OeVeBP1tq;9Ywr~_Z_dr3`0W?mQJzEYge^-gj z(MaxI?g7G=pi!fjSH9{2`FBbmCSCY$_T$RHl0>~K_okhGlaYhd01e22A~_k31ldRl zd7jg)T-Jvd6Vb{+7{ysc&@<3FGbqFW(OOXjZ?`<@s)FC!Z=dK&YCToFSGhR(gT8&- zH$PYteRW+~VSd%~*8E6bO$5)SVNYX(cmAvq@wWB#!3saGQ6*K=FVc1tpD6%Sg{bYC z`-i8Tb1TH_L!ef2LX|ho%BaW^!^xk*c3($g5qf`0GHv`Q#Jjc;i@&Uv@ zORbNhOW)P6Ew6xGvuAp9gN{USAE8#2j($PzJiX}Gf#aEDxSQ; z#eL!Us2zp)IXxN7#CG-RNE(yh>xag3wiZY6J{?0s0{WZvr`x}xZ<$3t8|~9~(~D2udXK!*ou$s9l|@H<5e!zSU+g^n=4;mW>C|rF zN8%&ZVZ@z0qjoEox1+u{k(+GCHlS;j9?Mh_!kPWSSbXwUrDnmPBNqo!2_N`V=>IQ| z<&Tk_MSlr|Lmuyvw3%3WHBiWttRY_av5oHw+H$xuNIPib6FNX2D7T-e3phGLDQ0_X&LxIkhB|kpRZVt4L^h z%lUnK>=hX`f3)@QLP+_+?ztb3cFe(Dt4<;mDG_s6Br>IF^Ln&-iccfxl;MRx>E>Oy zhCw)a-yY3Tw%FEgTQh2U=nM7i&J`CvWf2m_7btbF+Jz=@S7n<#cynnuo&4tt#;ds} z{b~C9mz@RDu(Y-?rD6-z<(#{a;emE9R?c2MHR@zE`uf5s$E|2yj(F%_1&R`qDUTj-zWV@5o}T9_V_Sm)C<+3 zZ9hBX11lcvP|=O`LP2)3&!;?lq0<~FhzqO{n0j%#VX$03TxjZpg}LqKyJ#Ei)I|m= zDCv7+JEp-w|25P5CgHdMyY>Y2@kazz4BFDv{90YUgU29G%@a*>MO&ZhU`61k^F3pE zV>}DvhAQvrr$dmICNmfbPuEsL5DluYX72u}+|qEDVVD@FXpE(a60KI$SW0h3n@@sg zq$X~}EnI1b8NsBI$mOfa4XB=7yJ`>p3ON2)ioYqeyLNp$ZF6LfOQQ=&DZP@s%A8t2 z6@iWc!=sE{KvopnW8JJ?h;^Cz3N{X%qQuXB)d=Uv3b_IvMee5xv0}W`UTWKnj(Y4R zrK_W*K`3whu=HrIdV!MnT*er4d`G5s#vBL^}3wzq5u%l#qZ&LbceSH*XXFR_}Zw9HC@Bk8Ta+4 z-}b*mE`IvH1XQKX3vK_NxLUXmAtWz)@r*FXX3^v$!rEq3i)-H+{YZfLy~b@H`v-6h zO_+7W)zOI{j0TmBYr&YW#Pj?2i>I`>??H`U_G&|ySi@!g?rT|?!H1DK5As@$&10;Lmd){i}!tT2agMci5%p;DiHP}kxe~3dGlybdb!OK zR7qGT1CZ(hadzb*dVSZox1{$DlZ|1rUu&jCraLxR!7R?%Jq!Kb%RO;*>)ExWZIgz66ZB*+m~kUC=!C**X(EJg z29r7~F1G=ODYU-3d&Y)1Dv>V7_GgJ9Dd@P=qjz)A%4-mq;@9D6BYa%^OjkPIZ$n3k zKG)AFvao%>O_j4{w;~KoGS^1Rzfr0+s_Wej9bgr&ZFDf%8gbKZ7_yFj9$;wivQ9$7 z$O&`zDvd_jVX#e){8_ToV9`=h-fxyTH$x^GD<{eWx@V7_pAZ+6N1y8~!SH-o>`nV} z;>n5G6Vbu=k5MiZ^m4hzqI0Y47s=X_p4YB&5QY^Abs{d?As=i3OYvKsWXb%SkTbT8 zS%*A0>^!T84JzKVBbQV~Vg|ZLX5q(zL<%Q|$bQ(x4XkUcFN_vAR%K{v%qETkr94Ay z>%S?mkD}2#?6z9_dBU_9JyRgEDgf9wN8vmLd)PK^yeD)P!9U0=D3+E)liW9Kll?DK zh%&9z!Q6Uo3h11ml(^;wj^4=&dC$aQxBpCw=GAys1s?ezvzyU$(VT08pwJwTp-ve* zB0L)_>AI9uH~0lW%gY7YWQ13D+u2XzSCpm{75v%u=C2g2L#Mfi>ZMmXi4wvdv3&|v zV!ZDRJL;0tH$1mwB>O0oc5%EhWTeDfPqpi&e!)W7$}#{!ranYJeVT5EjBx0tE&5`F+S_{24tK;E;%M2j7dvcE5Q$Wos#;GZ3@Yw}mB(-H{jZ z6Cmk{*KRuylp$LVpSvQLAwTbmVg0bn3`tXsGh~&1p5x|8J1TzfjzvIz@$7|YrIq^n zWhxTTebq6(>63Uja!gb@(!UyFKPZ{i;9HE`+3x##$r`iK@YMZ_xZEtj24aOwt0C>g zPJ+Ih#|tuF5n+nZ36f4VS~7~6-ww8s2-rjykcD0)CesgPN%dao%g`#K@3QXo4+-(R@ zMN@EdeJJqd^S1k1HmL+Ll-;Po%>$;KDKUZ2d4>%IVXhg`Tds%T6fs}H-J2J2@={ZU znAmx@`q$T6U1p#tweh*(z7+*0$oND+@o>YJA#s+pZ9};&9->}vcDtBN*yaNj+*YWH z1!)fntpnQrR@ry&ybEe6&Zu}))qz|d__Hzi5j`LqosvcJ!GxP777iB0@8NS5XX92P zkIP#i+2GoUh2Pr&c-<;QYdKy^2Gx z-SYbtm+2})OAiY|0I5(6=x!$yq`msIWais$Ghl!2b969H<^@r$vRwQp7I2t8bwtOA zy!N%RiP_h{HUA_fwB>SfW;}pYsX@yA*L_LjXOAfINT9bCwr8J&9~D0AE5v74dgEb+ z(?(HM-zwJqgJlhfaFSdQ-b>l#CqV`&m)Q{fX zQq+oW$HVNVj$xVcsB4kKu7&f{ zM~TsftHVe`MFh7(&;A1^C7mO#jxDR!Q4x;4vmcs<#RO18b)gBhwU3nPwzgYBgNElg z@8s=f({){)yCi8lEIL#H$=sxoe0%uEsO&NnXmQXT~r6&OJINtzKGHbuH@Q%6XW-cwid_0TUhQ#W$$VDR>4cE3HMHTHdX z{V6=>M1m~E7}gkkNt>c@Uq2nGKd??|2p{57fwr&tyvFUv5k16QnIdHaI%jR=T?}_t z5KV!sfMXsO64RZ$Ii7@~vL(Dobb3bgRU{R<+0dzx%Pk1B4K{6~7d5y;7&e(+zACg$ zX&hbYufl=mn_jMMo;!o@0LU4M00_=FJ_M6<=U*k=Lk&xBM&9)m1+DS^+QNd_q6O)| z>m_LL%qhB@_?7wcLXq$m+%=3-hnb0-0Kb{M;>e6`PnJ*Dh`NlyBMP0J@SqW(H?=T* z@vM+v2}FOf!*gnJCj!&P6;pjMKelXVt|^!-TcuG+EOC}*v^$R0Onzo&$0mDDx0{NYYzK~9_H-)_ zn0kGa%@&X!3{boli{Ilibfp|(Du_~Jt3A!xA@4zZuBI6iF9g53bi)h8Vb|KPH}lO~ zwnHy7l~kCR#Lf5rO+$F&#Brr40$ddfm=_ zG2QXD|IVSvH%+l5pGey7`H67vysuv~Ba#gW7C#UtUkUW7Nu|`&sWr{?WjO7Xh=jx$ z9i^U+=F?NO1`>*O<-Kb7G+@oBwRN0tx1Dy41u}zna5tyn7c~KMcPcT;g^=xoH7}%5 zhz~)di2F*Bd|d`?X~0t@@zruWp7e;N*U{ZJowgJ5NF36YxNJ2R5c;&T9Y_EEX8I19 zxQD?$OnN%-$Jf`!lT_WsKUWk2bk+k4=3GZ=^wE}5?xrqR<)7pi`8!R=SQ#Rnl3f+1 zljIlFV#7-kkWNYhpla)P-G2p5rfPWJU3$ReBdq^!`p~-)c?Tzcryh;=4y_vOVFelI z<%n6QMBSBVHfg4X_u|0h=cUC05^RjH8S*qEfuRg|Q8RiblGo*wIgWL^gA-ogZ?Kw- zBQW*7|F$)}w5K$=zP2_&0+OhZ`%WIcf)%+xn}e3RX!Fsi2O|V!4}_I}8QU@9FoCCMhdnBJpvmW)-i#y=yJs?-th8N{M2*t|v7*N5^@f7sB72AEq1nKC z>jld}Bz~0&TzhVV9*HOzcu{hUxwj8^f2CWJPB*ReUp#;B9sh@05l2yq6Q?b&4H{NF z6cceDHT2#}5T`3`Jesh|0|giiGJM+j&Dz~TFmFWS<0fzuYdhiAOgNbfO>g>plo6w} z60iss0Xf*f?ud&_lna8TCqK`L92HNolxqEwthLIA5^rdna%Wy3V*JyIQ=|E|mpp`k zgenK@YaZ7FYyc`5%OEQ{zMge&OHtOa-r4cBBphxLYTI&<#AliOY*-vwS$SY<4%*Xr z9nLB)vZ6HKHzvP6R0wk)`y7J$DDtKBZYZL6VvF`C^42}<4v?UZAGN;D16u35G3oa| zuoZ<2>7U1Ol?>%$US7&u-FIXc(R+XUXprgjv)NukWYm4g(n0RaIYx9)M9m9vKkd)E z_bEPFL3H7$YyCtpgsqcpP)2M4OnOI}rS1%Ag8SN^sUj8gUYM>dt=&R+-Va^$kz~UU zk^@OjrcybKR<-(MJtT?pDl>>>K5E6ng@`Z^<7KBoZU9+x%Q_~nb9Hk!JH2ymRo98) z&H%f9HIn%kvH2k?o#1E&lg?vaf3Te?l0C(s?E%zIX8QG0zSygNlek0yw}!xF3kt8K z?Sl8l#0REcSYwMMv{|%g?3FbC7hbepo+0!2lo618aEO`o*AantS*||*vZT-Of#blRgu|@Z zk4>OESpw}#(PVg+Nb97hve@9O{Krh)AV=7?))1{+XMh2vZL!^4>7m|2L%xj%%lGCf zO;0_+C?8|891bJ60g1w1JZ$o2ttSDfJ{*>uHJo_lsu5bLihARI6a_}>tlJ+9rQ;@O z|5vmZC;EpAXNDrwj`0XLRR(4uT=6REEy+5yf=S^1? zn-blGK*)~eR^7l4H_THVLBqo5JoycWLiO>oAAdI>r6B z{CxH6XGaRhPsg&PI(>KBRwSvFoRs~>)92cmECKJNbkQ1K4G;>Rb-S1-3TGamU6|r5 zKZCgPUfWR)GV{3fS|0JfYyFnV@%8%&ubrQoR5Eq&PKL68gcy^3w=0BdrK$?qW2rAOzB;vP%bAVTmZn=$mPvC>* z?yt0vQQ+p6c=+t?EApp=W~d+6q?^^s9(*dASopa3qDWpJh@~x@BA%~TbDFt_nE7r@ z#{uB|8T@(9n~OKSoqhUv-kqs?qWIUv_Y>grKXjq_kv6&P$@7sinYgUkFpZ!?Y}#0U zTTH58nJ#mI&!~U}?^^jQ$mrtG!-$%fcC$A3ET97%KzCwv{L-RIzA=66*-ZpmTWiC1 zDY=(A)N(czZ|V4g^bJX@)k+Gwqz7PmpL*o>0CuO-^(;(^E-=bTpycJwMaeZF*?6eaug~!7F_+=wgNa~hHkEqB6 zQ)ctfmc52ptCdfzZ`)MZ7Q*nS)8#6YNKh!F+?h>_7jZ^Uu&^zjRD4&%VUzLMX+!M| zZMwr@GRG^A^F0xpE@nE1?&Y|eDas37o{|-M9p9!^rq2cB8AQtGs;<1niZ3gPriqi#G{jMHGqq}Gn#{ThBQzqB1yAUry_CuHfr4jiCjhx?sw-8Jm%A3c=`Dpd&N77RGJ#1&}R^ z%88Hbp?xIDM~yTFA^myAhmBdz*fp2TSRBmwoDxi_Wf-&tWH_74l;0RAXH3=D&t0rCUw=Ye)_zdKGmJJq(x9+e1 zT-HSMV5yQlSbRsq$;y2*YP`!j4}k8J}%_!BPLDY9Zoc_O%(R$-+9W zlm7k{lBF6C^%mPMq8T%^W+jDpx)Fk-_ebAFUniQwwI^_ccA1Xcy|-|eEUX#D`* zzDb)^3w!X=nM&_CQxK&_cQH$oG}|CH19o1$4#)e^g-9IS5`A|x zA0W6nS{*_~m^XJDFfVG5^#TlX{V3BYZu|Qig~whE?`kP_3EfLgG!h3CJx9~t&aii{ zA~q}feA^40W=`Yj>-i)Sa?OiH;GZVa&!~eqY*qgEKK!GQVRNt`(t-GEtE#=&G5GV> zvUf#XJVcfe+zR5!gi2+5RQA0;i&hI%r|rtiVNrH!tY9(1lbfvH-rIOpo;%6Yp0Z9@ z43B(XlsTrnl>M!!h<9J-yln`siR}xJ;TGSL%V~}qn&LQvd6ARewiT{Fda(?~i?)T<#Rw#cn zgBh5?g(V(vwO$-sEUG3b0iyk!96I1Y)Vhn zF4C|wMF(g$_c%>dHSAg3v0PaXdqB!Td4ABKfH$T+39TPwStqzSrbr7!h?-Si$w6tpT!&OwOMFHPQ7!t% zzKGxgLu;Aq35sdfcY@FUi;nz!yo;=**8zmbe{;9wr#XbtKTfzHKBym_IL-J`F<5~I z5lS4QF)}?!MIqY^?#3c{8K(;sEYeOUl{PQGsCNv%1*&@(Te)^S>U7;rNPsvE9TydP zQ82FKNAvJwQDfCKeA&!&dc>*2)I6Xq;-!}@{R!F@*tacrlu!4*9dlZ~5zcwNqzwpa z^C6azG5&u=t#7+p|JV2Y{>xF|Byri&(BQ}Lji1qMuYi6qURSL#<@>ez=Ev1OjssF* z#I)}hxI2rkb-i+wayaYTTVCyO`%%Iav8N1)e@w=1@4+?5 z_}o<8V+su_%C3afEkVtTZ{YN0G^)7S+n@Dh`mYhbU)N{@8HL@6#GjEA7~lTx5wbT& z19+z$A(!|3m-hjhsvq}p9pNf+(zF`l6|>A3m8@)W^1V2NL12N;|D%$=6y-A@{m$Ub zwLcrm`1p1@6KySg3>K*R@~#YM!OO}(1b|{@87ub}b%tq|WYi9ke>=|LHGZ)!u+s|; z_=W5ctX#jd`7wL1wBT0ttAX=vghY{M`5;lL1#X|>=8vR9uEoud(c+`h{bz!ePw$=! z!tRo^Z5Lo%uBt179aYmMFCOs%2-@-{+q{SyYW&nUr@4Pv!GGMX=4OLbjxN5Km zDg3aT&xddhaoIfPq6dDUT>iLqTK2`Q`iol?eagRCh50bK{&SZ84iR8tk6_Gl2&Sj{ z`po|b;@qrUlRP<2n)axR&HElz=Q%{g4nuI~fpPhLLsgt?>?Qy0#LK$064R@LjuHEg zccpxm1Md!ks*e44=l=Z_f7ouWpU&BTee0Pd!+UUX_kFptQ;q-0Vs1T`7BiZpwc? z<$wJGpNTVG5>K|e3=Xz((caR7KaUu{%08}mcdL?%9?*#A9U=)An=kF90x4B5vSTG1 zdDaQNn&LgUU;(e;Fb}^dXtl4I3*$4A9&yq4^5Rg+W7=a>$`9pH$kcxK-_4|c^<3mH zU^pEXB!~X2>y;Pxmi`zk9TFjK6#-EOZ-5N`cB7?r#D_ejfJ^~2ZxvP;s+Vjb$yjBQ zkK_E}YSGH&W`Wv=))BsJ>dlV^pL*x~qi0dO#N_(ZX7p$9`p0JR730O<8iv;Wv-V&s zYwRrA9dba>N^?C6>@k<-blhH*&!y zO2FX}A5Uqlzc_Ad9l>#-Xb{Y6Fx)bcQh(wD(+aw$ZCr1J?79p>RQx%t#{XS{zrXs2bN)9cQi@?{*!8ZC!3X$5RQcblgde*r zVrkDJV$fF8KE3+HB%JX)*13=0u*sXl7)n;=N zFXk(ZKi5CJQ(@Uz}I60wvVxs*xf2G?NaI5?mb=^wBwPXX{2vzEL@2pwP7FCt{XDSqroltM-eo_c zA?RlRmBvJZ4Xk~}-u0J26`Z`o2Ryofoz3gakpIWno5w@lg?+#gZCXgOC8DS#*|V$c zYZ0HZxy<`)&Kh^`nS&G}Isqp7{Bk*#uz-8h9|LVEF2;DbWT|w*F6k z8?vKG3nEL^WUI+P#;=lE&^Skc^wz}edIzGuk9jgd{|Z^EYy-RAM*@*8Ls1o?K?Cn(b$~TKu-`BOb%m(Hm>{stVn<6BmMA8Hh;;d%zWlUz2^F?<9 z4?Yw_Jam;y&|{i}Bmd>y;ozpaL-nsZT;K$NE3dAk^>YONgX9%@nmX{{kr5H@+;*VT z(X|D+ebJ>7W|g=);zGUviDX!vy`rE;yYh;^q47;>PmbKTgT#uaad!!oNePju%InmC zTwozwB`{JL?mD!#H5nwoY5f+*PQ%^&*4-4;dR`9Y4;k2IHmhecV+cA36Xnir1OCkQ z-O^q4y9olMe0UQx1m`BmojaPVwr#2ROCp23+`IVH|J$rZW z(hU#;?OSA-gbN|A`c)&CZ2AzhU6jHnEsB z1+CW67}E2i1x&gT@g?F1Hf6Dv=<&rYzjkqFb9Y2>gAn3jf2J7sWq2flDSeD7Sy$75 z2JsZ$<0i>Gxnvmy>Q3bXX+Hi>jNo7G;5)V`#TUrR1>Z*6A8(hEw#V$}?Bxh2u5goT zP0S{Sf|h541oT2b<_-Xxl4YxIY|0xXpjic+dxZ=@X462dZ?e!28o=`+1V}c8w(1YZ zm|zJ4iWPToJ%Iw;9PGL6xk%?y^T2~h`JYbd2W8Ce5Ce?=OTG5^O_AXUy>BS~4m)X; zO(+z}#gE-NAd>SdCyOtAlskVn6Rb+W(Gp0poNZtpDEf03MLaD8TI2)PWR%IQufhEa zf@(z!ac2~~LDk7X@FvSiixQi*fi>hMqd*!kT-$H9MJya5hcqJ0^oHrHe-LwjlKK22 z0Xw$S&zw9*+w1%O%#r-0ZRES$Qvl{jQL&?99jrT3qB_KCc4?nkV4sEhhyiQhOJ3H= z1f)-F;Ih3K0s@B$Gf(of(vwc*CYi8%iy~z89#w(4n5~=$1!_<8P40IVZ)Y(7gA^zK zN#%hV9z2+`T|4_!Px*f^^4&UrSKasu{6{RNiDaTbK5nbN<%&U%c$fvAj1Wl_@H6}7 zi-4flg5H56Pk`iR zHqm|vtj1t;Z%2c>Rt4WWFn$1N(C`WZlJ4Oyh^QDFeX#>EDfj&N-Ms&o!TlbC<3?~4 z06qE@SXLdlvV*?yq^+LPrbEI3mIK1YIYs?NZz-1fH_JML%`gSWjMt8aL_@i1|(0lsM*$J z>1HVo@zjAVoC2Qt;R22xS)W|5fRk$$tHG~VCC3bn4=J-5f6Ky;C<2_CARLM0i0ar; zjepk;z?KVq-Rl|j(nbjJlu80^3`83Uza?cQ}YWXlR+!`tP1rH8SwpHD6(Op6(OHK7eu%}0_&bH;0HG20Wi0rg#siA zGs=!vJI3B`x_-?OkE{f}4vE?3WWyGC@RChJLf}D^1^#QGoD`+-|Fz&h^&XJcfEn!b zSvHUW;Ge=2{ePSptp<4p-^nuoIyYbo{}SCP3TyzdRJlS3Sih>-mWSDdtk>$1T<0he z5U_2R)_L&R2qL~U2{F@Gx8W!+?r4=1)rY??M!*vM=(yU^QgdUV0zw#@j^-aa*!Y+- zn`vif{La%~LEQ0cGVK8|R~yr$iwJ_s*e0+BOn|^-mhA?Payi0e&CD-Aiq!2$A56V% zX96m~Q^{yP<26%X7u6U0l|l2BGpGC?c+0=$5_%74MEgg6X_`M(>W%)C*&vpDuT#rJ z?{*(SRm^NgN$DR1LP3FcCInMfhybFXooTX=l^!;Bx;DDhC#-i6x&m}E!jhaVnWetH z3joSj?mtSGzs>EBm1z9Hd-l6{ay2%a+%x#+6OGZ7w<@g7KJDMbYL+ec06!IU5MmkV zSPmjBn;@03!PA}5rH%^{(jcluR)ReT5f*uD`hUYJzt<=4{^Ljen8+BTijaX6zJRP< zLy`w?PxBR6-cJd}3R*@on~n78$(jW^AAP7UUl&~}0B%n8S%LD5-VVd2V##!1*(*4mD*&GH%VLF*YBUngYW%=)_b5n1%w9z8~OR? zf2?cx<=S7lC|Wj3L^Ku8{lL8cQi22$L7=Ny0bGowQV5W1V$e%TFBcjnRMw~oSaHUt zpFu^f!HMx7;GetA!!MKWuK*<3Y+3igF5}TeH*N^V2B+#k0lmA9XXynIDB!{z+|2?( z47!{&$yy&>YBPzpECErE13BvX9aYd$Q>y>%Imx?2UQxtb@@uWX&;R4<$%4b-L21lp z2eL4i9}O_UV8Br9fCKR)e=S?( z{TIjB!q42;XEYZD@d=J)?uZjZ#`Z*aB~i7`;Zgc`RwZTuvc&$vTgv6N`J;-7rm?#1 zF$s^ltDR012%7H|$w#z20q(Y0^T0C$;%$9pJ9vw7EQcQP?pD>E ziT#dDL))qDi+D(cRbLGCqEd+{;2{ zzzexI>jUsnK$pqOK$7`u7tB^><(f55*V`$S&!%qhX=#?V@)Xh5Sn(e4RszX;pWn&z zF4KiOk5x%}=I{VCjG+>*I!`UCOB{!2SQ@=?;g@S(@)_2j!)3% ze@GZ@%$^_21n+MFyCr9Crv6H+i)oTdg4Imh+k4+GY70?{|B=x8nF&#bP=4j&>_JLU zT2y%UT?936W^;hH4m8Uc3g3CWfkl~bmF8hRXOSuQo)84xF;NuA6#S>>M_5w~dbqJe zS#WYuN%%S0Ee^G)%aON|6?f1Mh^zDd`{dH`uG|(Ravkg9aEZ~}%3Kdcl=a=MT@05L zc3pQK?H3fgd>(r(L+4&k34@k$K{rprgNK8drQ3;3r47oY?og% z;w(J==$qCPyQ4n9iokGJ_qJ~dssXZ|?CAt4k8W^~ z-k43wc2c~0cx#=@3KU%NTG1AIwTU}TkqgHHNcx~HZRJE?(^!$g-e}o!QYpg#s6aQ( zF!rnEaNx74VRvg7f#5&*wEcBU$qe{7cl(?}IVyW(5JdXYT?nZZsmO}#` zRA;>DsENL`RJoa0xr{Kv&OLqEUFOV~4h20y`43u7rpKQaV(Hw(RE)-Fh}o`$7R``( zI~^)FioHeWXskB3Xf(ajqa) zmM+wXI$Hd%=!a}<{>eFV`l;U%jxyJJ&^jRSUXm3pM{d4H1hIpj^z!AjxD<`y*#wEv zGeZ}iHpP>%hn`slmq=W=h5(7rlSdu~yN?S60hGl^z&~UFZfJd0y3#-ubSXM_9$Wil zH6fGzB)=QhG^Tz8g(lSZ&Y@km)|cyz@2_gS%5r^&4h5wj7YqwOWN}aDlRIr()ywE2 zWV9c37GOy6D_y0>{pt^N{%`T*U+(XRZQr#c@0E7AYXJpP7<8PpKi>OM8sMe^2$dFD zgck9F9Ov&}$LscX!yVW?w(`=*b%NO|4Dg;el(roNtM@U!w6YO41^|uN znKg-A$Hek60@l3;(lKQI&G{AA{$|)V5qS|^gz*`&NMA)GC822=an|}qmPZi%c`F2o zqNPYL>)TQ3iJscekFj%uhUR=i%BtVn*}{{vKIB70=$^mwrGJ~_KQ0wK{YZWQe|(=C zSm<{*+S?nD5Lnd|AV$691p0T(r#@(z4}1^n&T>bE`hf0=Fbj>i=0N722cVHia}!LI z2UH$MriF-xfs*N_j1r-8ue^QLZgbrRWVDLlQ{uKFbHS~=`lQQC_;2>qf?kU=QeJD9 ztWX&0E+2_t(^A;B%m!xIAyqf)jp1Pxmb2MrHlN!fdCBHM7#(xDbexjh2i?U64>-wp zveR;DOu9SGm6uu6_QO`0eL{gv@fZx4+3sRHo36Ltd;`Mo4AeLzxx&vp+1~_KE&dj0 ztUd#Qia=sTylxAZ4p?1{V3xEfd>D!gktLm%;LqtVvbnP2OJX-HX1ST8($Jj(U2ti{ zlRC>2B;AH|^FeoHS9y*R5x(p(o4^Bvy=fP#nK?}sV+Ne=p3?{_xl zSM>DLxBoO#;3Q_K$0X#}f!Qx?c&XT)z*PVdbR0B*~lmzRWPA`t~OVkxbI+Q6$ zxMMhhHG0EvH9J9Md=1pChnZAN{P(cPr`wV~r&hmhwlPd6(UZVDx9p?kQ9SKT<`~W? zri^)Ul-YKA@pCZSFqtyh?UswuJefj}%uH;PdttVBzojUVp7E;p*JlUeWx&3q7C7)} z$qY)}{a|lW(F|aDvdfR3Q)>orB`sc~UdodQjqHS!qH9myyYkqy@$jr-dRoemk@}|R z5}-Jb#Uf-XV0<+EZ0+lWEI}1w*RCx|I;FtUEshw%0CGvHR|r1UHLh5@^wGVnI80g& zw6F>kzjZGrxbHPJs(R5ceW%8+Pj=)TVbtA7L*m#G-;zVQpOKKZ5>-Im7zudfY^Js1 zubzQdV)Jo{WMb$_9LDSYSgLANF(KOs{{kQfH8-b!IRk)`t6*i6=?W1uyWrhHR%4#+z(TemWY4$CM{pF@EM&SLg-U0ti@4XT)~WLZZy>wb>gTH8e4T~_5 zA+o2>Qq!C)90H1de^Jzy!TZH6E+s-RNj5}g=r*}N`ZnOGEX%Rh<@GHF-j#%So9xxb zXna%ngGl}ayyh~!#!v-dtV?k~9h(Z4#JtYREjK(3@H^)EvO+`+GPIIR+wD8`6gZFZ z>Rl?KtXa(m{o{>b3-1&IChD`GHPY$7r0tDac1tC@(K?S>-(#!Cc@I>CIQS6CA9k*c zx+6nLMA_pu`vU2a_-8VcO=b~QWh^Z`d>z6FL#$V?K@+SUT`r^&%8zSmmRguV3rvmlyvx zhZSl;IYP!K|5s7|axtNzlrh~iq8YHLCohglh&9ED!6Qn9P?wC)gErx#Dm09jK33eB zwbDs9v>eSVQ;ARljaoO;HBERzb>V%ZK1D<{HAM1S-7(qjJMGeV;~Y2bpKPlMSYQJa zwyvW_3g6;;-0WqI*pvuz0jg|=WP13H4TKeD^|42 zfRBx3ID+XLe~=aW^mE{xqm9q}+{yca2bodqI;%$J?6ic}~lvWVa2a?YF%btn>&eHMB0hKC`Xu7hBx+ zSMR$vdOq#h9{k^{3KsdVL&k5l*ln%4cX;p!54^3D*)wjM=f$!c~-NBm%Dlm zV>nrqy{G(Tqu2Y593n3nHWbM! zmR&-QFI?TCtLM_(-a>9ybmEjn!y>HS|{jFM`)m#L-ERYs(_rSu(Y^+(0jrT_o==62}ds`#V1 zAlf{1^3uaTTPgbURpiG0>=&P|Rmj_zc+ZV|a;#8Y8Yttc&b>EGBH|%gIm%(*(M3AAT0KX}q~E40!@@)_i>O%`X)r~B_gS17P}1owTt|s^>0MVF-vh_o zM|@uNIFD_4=$R%g;B|w9{JMrdTIq~z2|paO(E!+PeYtwwj@jxL*zBj0`L^k9iQ+&Q62#|1EB0^GPjY0I1vWX484H(ql@-1yoz(~U|G ztl?)M1I-fXx~i;_H#)r2ZBbgF_TSoO9X``h(hh-5%i4Th8+JfOM1n5fy9tX=kcK0! z%i_akXYt0lwR2NP>vnUorR41?`6mnUe`woT2wA~!(=GgNcNh3&w>dGs6Us4{FP&sm zt^_jpF{*5D7XKv-inuWmz+X(Td9)P9rIcNXyf@pPpy#?gL6Td%uMlAPK-v~nZKCCO zAyNAlvPhO#Dx8?e$@0;7yKXZToJ_mRSDiIcK%tC0@a;W%&(I%T)kboAF?*c#qx|zd z+Np%lm{tsj3)~y@I2f6kKDrj)k!#{3nRO=e7(RZm&tsbe#WoBT32v*8^mX#cmP%y}uDzDYTZa`t4<8>DQ z$a%V1lY_Xf)v#mXZuEa}3~?dUE{p~d&{$U)Z6(%mQO=4n;>jVig!t7i+~n1 zD8U@dn#Z=Zr~-}7@lI70GqRLE%r0{qq*O8uc&uu1Z~gWrVC_mqXQtpeH|v_w(lwi+ z!sCVw1rm=>B|?i+b%u-3M)@$5OuDV*(NhEb>_@&iFiwl=k308Smq@PO*mn$^mn=FG zM+E`nx8AM2g>ax8yh*PC=k3@x$;jL}{-#-m87yU2;xY1xw(_G%{@T&hgM_iwLRX?)R5gOQztzal#36{=h}EK_Gw~)9yBjcHYgy6Kzf9^ zbNfcj)|Xj9>t5xoB#bq2U{dRj#}QL|04K7AZRvQQ3!n{OwgR##_JNxlmA z^h62Q%!Sbko`u~0A=#^=&RT80nXC@wO$S}v#iWp#K{~yAX6d+|8;waQiS**%?X$pt zBPFgTK9Y#|S;*rjf1q>cQt+?H``?u6k7LzNSw}bzt&U%Z>btr!kQeFBjud`W20(C9 ze2Du&g>2kQ%&STtB1A6^b9bab-vP7`VrTg|z(L1_@}bD1asYdldh7E(a-yLkPHJ^U z$Z7ctqvV4&DZ)dY3!sCmtr^$}`6VNeU9cJ@h+E?4-tVwJ`{fU90M`_*cuYFmfcFSU zW|8w0SkTib2qg$-U9SF&HW>>AfOqZl?<*AXbE7Tg)nA0PUd}86@|F?kWLrs&&srT5 z7rb)F05C|{=<=--Y`V}GxW1C9*DAwc4XWlzA;!mhsS0lZ4fpJ1i-4?-wj33O04Sb9 z?=|MKrLow4LjbsO??}$Isa3StN33V*CWggHCsj3;VN`cxI+*`uxeT#4A|GU3<+pY4 zGg{I)20W2`Ue6-f!Kql-_9ldY-|oy%JD*H3y=LDtBzBe75G`!-sE)cDv~<`=*e@`V z0p>-NM2rFYsvG^0)_ytHtlC|PdB6HYo$UW#arw?smt0aRK)1eNdM`~qCdI19;ypzh zK&?^~E*%`r-2lwfhJJ`i1oYxLwKu()zAkE!7qMLpPvqgp9)4$d#mIjd0E&c3xXu$) z{b0h%#rjJ!-KCE7JfQ=acXieHF?}PM(^v0+XviF3$8u|&jx6q|;gEQ)GuQHv_EF6- zf~4O7(3aJ{eWWg%G4HIbhvV>ldKE^lM3z0--0-Tk@(&>uCODQ_Y43XF3@3EX8B=Pg zUe0h~BskD9fFe2fa10`w`pConf&@X!ru&v(FlPFo9V;-9W%cEVaan!=cZEg+=&TiS zTDp|8DuL&TlRdYAn=Pp@vgAW%7Rw3Urg7=maBUZjtb5toMT zww|3m{UWDj!Pua>^8%07UuBx_b;beejnnr|y1^>T8e3GEQ8BSZr`Uct>aXNh8LZ{_~S$K*+;J7*Q4KE1Qb(8S)^=5O8;5A=Rqe^4E|`S<WZCjfU{Zc>kn>FQ1NUR%kjG!2^{);=_8N+;Kb|jS z7JSr6Teg60xj`6a0G)2%zA8=i9Hf8n>1jtw!=^OIZaQK&7$Z^@0xWM(`YobYypbk- z(*-J!MxNvbGHrKDN(WEN$FE!ff3jQ9j-VbRZWGMVn**)V9xY!rZ|wZ~9@jhmweH4q z12nA0lE2IMKDa?_wf?~ZPMS~koAiVgb+biPVUQrTkRzUvS3&gKf4XqqwVLHT#=gfJ zBjqs#!kB{o6#P8s+A3D!i|ijPDCXt!&De0B7GXX0hahj@zbQB!+;Ui?IS-LG808FueZNLokq z1L{(=mm)+9%743p=(ZR><#NMMr@tuK?d3@2*?@QW^b&=syQ%w+&HjGc ze_i@*M-X8v8nn!!J+zZ}S2whigpzRwqYeICn8(wN|EU3`4e^zw6ihst*GWdXYbM8e zo}hfx8r(E@`RW~!IXYH#^_`z^EuNgjprmfMMaFefTMp4MT(n)3UmROqSJ#o}Ntjh& zG&%d_6+^%W*drd-a*#I&@7>%V!U!=~O0AINK`1{dbWO)7!vTrMi|Gt}m(66HmTKW# z?$A7ZDdu%K1YB@TKhY+Q&%TaM-X|?x0qtP!m?xi`hS`U5$J}Tq=L@ZeU&_`>MEh5)aLZMjL6! zymOk2!@RR)idomOzpR_G5yektZMnyOhw0W&`D_$&g!)hkuW#I4oeV!dmy8afsgO=j zLMFzLuOsMaI(I6{IZSBcr94#K7RPwX_oBpSr^2N?+QR^jNg7&2z~gsb!|yh&G9r}V z4fVl4VQ7j!A__LTf>bp*4)r7!bZ zYKK3KW!qmDvvMv6zqNZ-;4x8^9!>$Ig2}ao1z!ukVGn8YvF+f)Ua7g)cYUvY^V$<} zN1&@iTBH25^l%e#@Wal5-IqK8@!LsCt7W&7w0=*396nkBCa*u|6TwXK1Xd$0K~Ynv z0QDV_-)abW8_7GnwlK=?;grM$7CCQbnxQw{m1SjClSeD@@PYL{!MT*Xz7$J-E8D02 zmkKn8SA@DW33YSrHZd-WzT{?rP-P0}>AqQQs7&8%ue_as+HOIW2RT zOwGOz`qe=6$N0>;zOFy-H2EmK@NA){#PcO3rER_^N{hAGbaTi`@(o_@wsbvdMY!RX zQOc1%6&KZ_0`A|q&K`bz448svc;C$e4O#Sxke2M`iclv>s<*&L(b@@SKjhI47TWhv z=yCqHlCo%AhDqK=In4-0*tYlxEj7{Q>T?!SZ0E^Y32Q}3gI$+G8K&ei>vqZc91M=uM$gIzY zH}VS}?p{$j4lbH_ViEh*N6Nw<D9d3*Nr=zv$Wp0@C6|);Jv@H*@?Y`^j&&EX{;amMK1Z^OkAEjSNeZH@|1G{9_h`k=XUDvR{S#?^S(w-!=jYaZrCU z9?%>P1_spS4&eJ zY+Z#a&ReGXSj=0d6U8%U-{#&65Z*a!J!R~i)rHz0K|MLS>kYeK>?!zpo9;J2Kc4;} z4lIpZsLhk}Ln0Pow5EW$`;2mGF7*N=Gf_v?k8riun4 z%0cT)UVss`=KuceK{$Wy0kB_k^9N2zyBX(Ov`jFsWMA`w*tcC`$F#;uh*{nS)8*Jl zy&|L|E4eCkJ7S-dO?T>$Wn09~mjLDH$RTXSuJiWvFtq;fhZaOEupN18ukugtS{m@B z=ct&tbg6=^#+~0>>K|YUoz*Nio9omV%n?1hBSK*`hc_iFzFB_Q6w<|oh5TfP;`ht0 zp4Ef;tXe07UYPsJzN!Bnc0mOOC~^NpgE;q(Bpx`cFkat89}Z5~Q4=iD=_-5Id`4na zEZCdlU*9X^j-(>5bN7qd?9VX@vNu)>Zp-S33<|mbCg%-12waK5%7#e(*w0Eb4&tFJ z&b!|Vltnno+G#*=7R3iR9=TDM{#DU>_S*PVlMcAzY@YAlviD62D~Z?C9*N?$DlfUR{~1KlX{? zz~e(VU&pz=n#%J9#o`*Tyw>|FMRKBPF( z=nP4DFq*K^JEw!)q^p*9AKszFJkIqt=^eo!Gbw{GIA1MVx?s=sgAB@V&%Y)AKtgt^ zx#pC8lQPqi83QtQ`(ohtuCP*t13LM~7#F}?wlR4Y@}8$J0!2@VC(KV|3yR_A{ zJ$~O#-gWEZe4CU?h{?p|?dbKNxsabiy(tv`WN!c>0{G_X$h)V>TXE^oNA5pDs6`>k zq16#9C3$OyoE~fjQN1sPk*u=X2EJea_@`fs@TX?(7P+tCbtSF(-kG@buS z!vCMdBspH<0B_5};YS z+ivQaRqT}&kz|v0Qx{IHmjiXz4|(g8jLgsg0uxv%1>)MYO+J8dG%V3srkJ8mYL*ZYQMU@ zTB1w0s+FTDOPC=NjG$9Vu;R2vK2ZlE(h!*sfkkn>2uW#-&X79r`R8Q+Xu+@28Gzmc z%)9IT-EEk1*C`8s#(^=u`=o2U5|rPllSn*T0k%@-vBQ_cYSscyiO<22W&tho7J8k= zcVllVq^yhkxxU`nCvE+^)0wVL6S^CcWn12_b4{WB6K20`tf2IJQ$c0Jjc78&# z+-i%%SAKW!{`%1Jflgqe=?+S1U(6l;&yI6eld;S^QF%jwb9+;D>J-GIGqzO5oq@iL z<6DJnxulEnF{hmotj;_lQ^1xU`FR(~L7F(bAU)0V| zS?{rj3=DpQM?RB}ZV*kUgkNC^`!Y-56${KcTBoCp-52{&mC zc94|<^S3UTKlZyHqmXZo6&kRFU0As~p#>YYLd`w@RQ+VBBaSg(OHbjf(n&}ip2tBH z=F!wv{U5sHOZBF=XJn%j1jW{;5Zr%!(7B{>C^J3n$-=K(04II!$tHJ;qq%AmZNbYy zsrbGWkfFUyh& zjWy%1UZ6S27kP$@rxCCph9yE@G}d=mHo=D7J=?ADiB*CR2vT#yu%|9QStTxL0XfCM z#It~}vyP<&+GQDG*@6u4d6WtG^Kx8KvfD%7daW#QZ|nr^X1tk&ZR0C9+V^AUS*3Fv zU4yqtB{wSM6X)iprF<`fIjKQzs1s~U^V--t$x{JJE8|EYC8&-o$ z6vXp?3sD9~ZRoFEmCL6(zLA`1J{l14(=u~3Q5yeg77y*B7EL-a=-dhqZNsy%9pP-h zzcoERS-UNtuf@V zyNPF~J#w8ydXbdk1^3JM{u1lUYClMTyFlSJm)0%vY_~Sq#UG8oT^Pty^D(McO>2wh zWs$F3L@l<91i;n}`r+Hd7q;{4t6WjKHd{5RfE(G0S9JXL>;WQsBj37@ z9b9|L43;^UY)v>b31MiMuRIPUv-!^boj&|w6AXQqcOJsIYD0p;#W<_+We+C2(Hm7n<2^SO<0)-r5V6+FG2cG@ zWl-0%=UUh@T0t=zH)>YlzlQWF%lCJwP<38TZ=YCBpFziqlgMXjYctii|0~uD@%1!$nZpKXn(j#fp!D+ zGvSW(>CG8BYw2$r8*U&7&FR@|&5^lLFIaoSBpqrL+9f;i@20c*}qjOuhf{4fLnYh3E38*O9qRALKByKSfs{N403sFfFdw>{ zaDW-z5=uv(Ew!Jj{nZ|^|Knc#>zpb60@QHD9hE{Iz0jc(`5vP(x7@8)) zQZoCYCfn5z=cbb9X57CuvB-ID=A~4j z@l;+Urx=XC`_a4N^@y>aB%F+9xnfGc0;!ljU7lqrYcq^>Jc@szOB=hS%-uV{Qo?xh!VCb%z!_qgE%9!}(zCuTd zz57(-tqmKZB5#ci{xr|SJ5N&3WA0JLMx;Y!o9!37t2LZ2+__TI=RhRXC9y7Z%(bRisMR$q)iopJ4dq zP%+8*#z=dYUMl+0`1qN*L5B~{C;+qYW)o93+IPdedup)%s^P{sQDnNw;z(-u5u|F7 zk;7|7L+P(0YVP@_)!1W;iaY72t2C4&e}hYtLy1o`^{V5}>kQq0I|s6f%j2w-@TO#8 zlDb>u&&ITn6GL-ZM;ob2VUayotWU%`h)o-r+~({i+V-Qcc$VRjB3OcJV^PaQsQLk z7olR2xv7@_pl$we0w^`jaB@~iuk>2-;e~Cj$Do?ON4hPH@PQ=MhTU<LPXg9`F>iHihiG} zaWCoL7!G~~XKJPY3cdY4QpS8L?gXngr|vuVPdsXV!tafZ0=AVlLmXnhBm#@4QNYV_O=Iw9HGi%5(dGES^x;s^s3UrM!K0f6V zH4BW&8&STvCX*60Er5(Lt#w5Ql^cskzMdwcJ)>rkF^)KVk+Zsor!Njb7BT8;Nz zYS8~0`!g5Ik#O*e$*xZeM%QNVjZ4Bg zS?w9cjn&Mf_=Cz6Qd|wf4n33i{;cA?O#w2KzR5Uz~8Cx2e&n5rcj*z;UsbBsoM$bzXTwddIE-z57_ zi^Q7OH%-T0Q=Qd;vvBE)(pPhE_xV0er)1BZH>OILBT{42+fV0+ukcLjKq`A)NO$rUAQu-qu3dr?Ju2vNR$* zab)jVA=u_ueKJG!AM)K&vCV7)yamj$iEor04oE=V1HiYL?u8C|S z_Ma_VBCqg|tA9QqRr=N@^M!PJ))>T2)fpMH$>`p< znPsQb9@(N*L+JL8g0MTTRM9cEb;R9Iu&sP8pAbygJd(OuP_54&com!L?=_Q}7*-=r z=w)kOZC=YQi!`jiHqH3jO~j?Y*gB|m<_n#r1O0N@5ee2sFr(0e*)={$#s-u_+bR$~|`_0U8`GJ0e0}SSN$u$3LjpwLqe;{;igfDojv10P=UVPhd z_skn32dxSKD!fzE0XK#gj(bMrVJ!y{c$ppHZ%TL%IiGkLoYeHWKY8i*c)O2QW@o0sm7bD0bIp#40-r+I(VyU znX7rR;yJmuc~r#%-jnlBVXz@_$BwFFw?k}rLu3VbE>~;~S@+uG#YMVksBXWpS zE^2PD8jhDpZFXvgoRp7WPs%+C8IibOu#lKBy?*J9WTHw@BkBNDO?1}XWoEO=!m$1s ze={LhTPCTvVN1x4fs#t`=G%AA$L{xN++Xdp(3{`!jv)UD2v;9aa*fu&bY##}AbQ{|USAz%g!pq+g^rp+4XTMyi+0>aG zT<{VI{R01$3s|A<$ms`nAvbd%j(w}kOT!rd*U?q&hBmi{`KuN(AAfs?9Znb?8k)?l zSPF1}Em`J0yoI#cWV~#Adl3bB0FPQ?=}C*MkzXpqlS&EYHPa?NtSJyLxi#3Sja&64 z)$Z42Le|!Tl_%50q_#1~EZq}>9)CH_pV6=Tmn(ZqOZndq&-RS=;YIlq|1r_~)kqt> z`V3E^xkTuYO^2WXt5tuz z9o=#UqkN?k(O-nyy$xRqQ}iyJ(de3MeL~Y+Y&=%(SRZDjc!>niX-b%O?8RV8gtnyr~! z5$XtFC$8u($DxPi$|G5MFWK`Bm_X* zus-9y{UZViQ-X?UUw2nc%RMWQE`yf^vC39&r;^ISb_ZCCU!PEVf}_0@(PhISuJYk9 zpIHE3VnmYK!9J_gO5TL%^;X7e=Ja?%!=2*nt&+RNqchZbqoRY`*QTT!S`_1dSi4_3 z=qtBOEwAh=M@N+}>vZut(==1N1Ukg=)4^?IR!Rw5x-)13Gr43uu#s*ztv2uJg&%cq z7_{8JK*A5BULAvdd$Jq^hw+hC(hDX4XIyr5hPektYn-ImI3uaP7x=B449lWVrl>c1S<6$GWd7WoI)b01L< zuHY*1iDd;kHfU=$pN;qV&BYLRQ|9HDvF0saj&91=dk98+Svr-F;M4&E|MAFVE4cH0^)^iHeSQ31zUTwvfjd4?3i5ziV~z zn=v_J5lsG+lZ{=L1aJV&lvz2VLNd^LFSB&E;-EKg+L29BTDm15)NDl=ZY>{UXVK9& z%@~pyP<2*wE*DOZtWJyxdchnifOfyX{wrh3mv6%|%@wuV#md7qaU<-fQ1F>d{9fu4s`K zKWt$hu^|$C%r?DHM9oUP^ouX}8vN+h?Je9y@i2)k%G6V3YkU(GfUjASUQS#Xsq}E( zOdvivCd2gN6gGH$2pRlRAs}CNabY3m(oxxk&a2a6H5gliJQF)k+^}BIItj5ze8XD; zIk_~Df@9DeTA(PF|-NV!)v2s-hy|Ea7k<0!MH_YmNqU2M+ zE}MUgGC9@dsaNmGs2IN@k1D9Pa;(qBaji8IPJ8Os+cPSh@~|vhV%?_8s~e=dU?mZ> zQHSOf6;B`8e%ioU?E;f`cI&vkwrR5wTd2{HVY?CK(pwduKwMLh(7zzthR9ec7290= zj}3k~WFu3JtJ=}I{+8IASy7RSrCa#holS-+u;+Gm^-$}U_k6_I zYvWjpcfgIuk7bHLRR9acGCbP+lY+cC>R6>269j{PAGBNB)YE%p+x)D6^1_+qV&8 zP$V0+Shz-4FD5obw?aj9&iLYz%v4ZOI<`a{HjQHs;fJmzdrYi;9VF^pYFaqQ?{mv7 zM7xA^bjKOgKBlAP*&Qn#=&g~{A!<2(u_zt$L@T7Wg6eDuWg{b_lqnRw)|Nq0PU6M6 zpxzf%nj_Cfu626^xWp4oHqGy`*R(5>L()HCh;MBpO}rRCc1M0zPEOa2Ex+HOll79Cctt%5 zfBcaTn=-dj{Ec1exFbG)Ys=q3`@fZR43Ow2bXN9UJ~za`reC4d&`6CIcUH8`Uw)o9 zjS~wPWX)w1vQTGTo*I4aTR9&%m$zXNS3lD+c)r^xVgGeIYwK4cdP$KTC1qusOCf1! zv7x(F-r3d1WA?LnDYR?F2#Sl2J$&-Gox6bRi}pp8$EI{j$X~NQbe7}9pIFG1zmw>$ zhxRFd5_i|x*?DU!o#%E7zt0Bx>g)(^(u`g9y+rMjCef}HnikJwY?u9{dCAA!T56^9 z#)f*DR?=x%$>pi5UoCmQq|3P8-ukZ8(7?wKAqwJKgoDcg;?t7pC9+XA#Z)Z1 zwUz%KPbO&mLw|dn9}nlNeGmNjn4c%(dGiTp$hTDO3#KHjzPu_`ZhXyTyX3{b@&Qo4 zFQ!Rcys%-cja}1%d0x*h>NnhQ1Pl}t^;a=*s8_E~Bn;(NtPR~Me0VEUuO&!q>}F2Q zY}Ha$zs`dWX?!NPrYyFRtB-2V#lEolt8{o`&v23wdJJ=e>|(gi-o5i@Wp}*e&XIJN zw2)`}il5^;_*idQZK;ZPuJ=*2!^dl>ETBd2QIQV{ivKb^MwqEIcIkT7w>H$QB#ZsJ zwG~yp@~l$)+y(tyK!$+E7AMAmlS$l$NCpa2RE^?XN+xOeE3XU<4PlFkre&~fDOYRL zr7|lktCvvxFu#K)5ner?S!p^b^=O;u0sM&ww|aCa(nd^j;p2_f?{)jxv-_2jIp;it zUynZdv7k&e6!@Rngx~W1bK<`QiTr!=`(-=$IYzB}!Bh_d zEgI6{GK83R<06Oo18!FmJ>+F6p8$*cGY()zZQ-$KP4SR5I$GGuNv1wXY=jm7YP6vv+aL~=dAK9(bnpRZ zxTw#K$UDUgDn#B z%6xv#<3##|p4o-*vA?JLGaCGR!Y3edPk(;QPv8VlQ=D8PKiI}RZ1ZPa+GG`eEZwt$ zhQIu+;nKHn{#o$yi?W&y4>TPN+K;^{F!*@)nva`mh}hM1#Ea9O=e3MAn_8q>K#UMw zep?Ov^WNZXs1KH0ylqD&tDP7|5iBY(Z;^-&n2*yXMh}=9y5w=^#$s+VWWrgFWHw7IzBB~uYC>%7JqqNq3 zVX$=VXn{rBs|+3erZ{r+yBw1&!v+qx8_NZQt%=f-Ku}k`{aGDK&vdiC>8Z;p8Pm>L zDngEBSk-oqjD+Je0>ju{>@RP(Jn)!sQZ>aGT;6m>#-&PDD5?68M*bhlzB(?-t!w)* zf?~H|5Q=~_h;)rbmw+IRq97n3l0(nImQY$+B}7W3YZ#S~970NBlp1M=p@;bPJwcr3 zJm34i=a2IPnYs7gtJk&G+BXh$Ku&U%Gn+UmkanT^?bY1_V&$vXJ%9U61wD#=*4`Gv zrdc#sGtHJ?nuv4ip2zA>MvU$vOSt9@8YIBKDBAGfE7FZJ zQ-518Rtoqql}ij2WKZOG4|j42E#}HC%Vx=SH^>slqxUzrw;$^;aa1!YAOBQ0?e$|E zKdqP8>w70ar2QK)QA{o+d)lwDVUSDvR!d?{TMMvL2#dv%y<$Crfy)(~0|n(P#-(^Q z`@mXfFmL5^%3-iN!Ur!HBja6?x8&98h%p2){%Mw)xSNt3)MGFfz+jwB#tAyy zSLZ^)wC;Uh9$$N4H{Z+zPHMJHpE%W|l{zNnynKaUi)@w?Wa;XkZxzV{j9kd2n)6Jl z^fpy$JDcNy15D!+>$!h9Pd2g^ywGK)%NA2M_aWcZ3I7NoQ}#yUx@ZjGqoHk{4%5fP zvqQ=$Ype6+Vb&<0wzPduTQTA}2B_sQ^Xa+IcDk=c`TADp{06G!7Rw{g-%Nm8vru8ucLyXA8JDvxB> zI_JrT*2W8zU6A#dxrRXWKdbgIE*_4usah*t`Dsm*1CO>gzB5i&ze&oFw{`<;?W&>S zl$cb6a#H7mq{_;DCQh{UI&?aZOc(EFG9 z9;Yh*F21Igo=}#ilr0!6#6ACH}*}ER_aoj0e9Hr z3y&M$asRZSrN7_{Hz-J+wb`cHc4SlZ@?L``=L|`D+0F<~9*XyI`Lgr+H-J~63{1@f zL_W+KF1hWVJ_@E@WUzX73VKZpY`uRXcT6u?MB6gACaYn_{77cR1-o(w(GeQsHJ)uc zCANr|6m}$d%ZOnRjmd4vz_+-*TGe)Hdz>B|xaK*+uAi}-1JpL0C!Z`9@L2lD?GROu z=qKbkU*fglS!3@2M|%Q}@HRE|h@qO{A%Xb93(L?}k#BY;PBqRjMWIwwk}{{--vqoB z1K*W5Ojw;NaO(P`IM%TgpL%?2YKU|{DkuOxbSdHGGt3Adtz%?!?|6iU9#a29# zoB1q`i^)j~lqz$>S(haxv0F4mg|V!SnHE%K`OMb2P1i^`)bXwPn=bbc+SxlaO3ijA z7M!y$|GKZ&V7|{X-mcnDLVWzs*LOul5>rbNb^I^pQMiwVGr=nTuN0VTaD@17`=I#M z8BT|KA=5@;VngmoD*z+MvdXji*L=^^Kn8%pHNW_E^l7q4J8AeM29Zoo$!?jd^)zObmbI^31fdLG5@>W?6+vYqoK zN=hYZ#>-%ppD#?gZ8xBpd)_tj-`GDo)j-s`=-mDc{hYq=AE57nb0{?ZmCg$=^Y+S@ z3SLXv*SO+kmV_NzlsKzw3s$7!4Q*^}Jc-@dXQ5|f#GLH<=282d+Rs4#y*e5@Q?;;A zEqkJTwJqxmySARjoOYKhcBMGB%ekYsm}&noYuV`~5A51a5yavuNEqxr2W;?xerufZ zm>qHptKt*;%d;ABLjpcmp~x%ka!TTeIcjOvdU^)C>Y{xLj}NLmJ>}-%`HK(_G9gJ$ zKg_9>E}gAto>?fZfk9M`kEzXb@Y>y>XN@5K#-@K^Ki8Q{EiRO`F>#qm6b1X4|@v&|XN|!`-=pIh65zrt&p{Boi z5YfVOd_duQTZ2(#1;otPadwteHDNW=)nhRw;$=`BW9{%Uyqasdp!{itHmZIY0YEPxWkHB_KSlz z1AsvMWtLuR@liTJK`1IWdq}s31bUHw`v!ZY>?sQ+X+=2WCQFGGf8l|X)yxc2p16`* zd2PC54A#Kb2MRYz^Jw+s=Y9UX6QBK#t!7b|Vw=ORUB?fwtX*Is5`p~0cgTUvuWin? zY^=9!>A4O_BMv-aa&cSkk0=imURy|6Xmmv}jHorG#CltJ#{|b|PdoaUXXP|XI?Oc3 zzsOm2QoonqHH;_-U5Kq(8tp(a0|>OXTh}S)tN+|`i)sC{&c)*J8zaj*d5rpeEVUC& zxn8@2a5(kD0oIR3G@R?U^n|`yZKzUnUmtT_c;1k`2Y;CIHINjC7Dm+Owm-$#{ZUMO zh>{O%?SXt`Fln$YEXXQ@#Y8=IOq)uP2kRG;8wL##C)?=}V$6BLDwl&c4?@hITek2~d-%M6JjuroXO zq{l`wR$mSZ=~+c z{P@=yb{Q5_&8J_CwT#eWg3PoPiX=CB!pLkWETsYr0~0E6%X~>(c!{v#;k$Nr&zw06 zsvUAz{4eXqb^Lr4B@1{Dc~r6Fsc$pJuTjFSQB+r0AA8J%pTk4H6L+RSyz45 z{am+w`Q=0j+q~KKuadE$%hEnsNkXTF7AC?U7s%`%t2P%TlP=*W>H!(RL&G8d3f6OZmLf0nwHW~IB>XHd7O}Ux=5dxh)YgR_AHZpI$7-hx33}9c|&>t zoeM7pL+^mlr0-J^ICL zunY>S(T9oo{QhcDKTgPc(?IITikvZyKoMG8O_%nmVjqo2WdoN-^yc+Z&_#*0qJTTW zrX*=0Z!RVu7^JNS*03FyWh)AD~ugysj&x563}_0HIi=|43Rz>EiCU85uHBQBj}rhtF}& zE?FZwDnluHyW=xiif+B%S$J@hH0Hs)=RfG0(~Yt$H7WG}^ur!hU~+a^o(5(H zBuy4{@(w#`U|;#o;2VnS%n!`yt^SJkNFiJ6xZA;f%Q3<8TB&CVVIlE`=3gG_aNH*D zZ2l1ywsYwGX&d{7(IM|4!ssdKZE;9>@9ni%tBhB32&;@0=~ma9+=oB-C?$g6qGdig z5huAOC({aqIg_p>IxhaTlz?eO@~oAyM*ARD$Y`rleBVF<$@57ZHOyJ=-d9;o;I<66`|x z`T6oD9J%225b3f)JYC+GY!Fy$Q|Jxg!c9#W^uzYXsoZfXyGu5@@h`)2G0IE)^(u3{ zHx}c@U(XnEhn*Ox!}9Lj^Un7Tz4S@squmUZ%Zs~jwE+=GR5~2rpqUBf4C`b^9y}s= z0s75pr=sWNCrvi$AJ2vR-UUb1oQEZ8Nn8|Qf1NIB({|T>>M4S7?24hG$Es-SaN{7V z)=h*ZY%Yqk2d<8e&} zuh$+f^EGk(Dw^(%?3<2JCPmpsEet-XI?7U{$SIudqtnPIx8c`_#bU?y`r|?lx5gg0 zcdT$7{#ShJI?Xf8^<7XXzitVRsKKQJSb=mLo&h0>`S6FTeUx6IftHlg}&PwD^JbD>dK@Qp}=^CgL262!hVPnQus z%!t&-W#i6ZFP8i(%5LgOI^0U`b`RHbgcV@4qw-J`Bjh@{d@rMj72HH{B(3oVdsOtw zwQIeeaE?o6kLZlZ=6!vWRYB;5mELqb;rNTt4UPb2j2eObc1V~vOgXznS^HK%n`M=< zHiv?;Dq{HcV)p&!{$*RwgGs<4G={`!pD`=SofD7y>2@gqS&RcRVupdwPvwR;ieXc{ zmR41gQd3i-7Gg$0Y}S&cm0GIdOd|0aNlD3DU7zxAl)5R^gC?dp&*|680-b7c7ld?8 zZQCNxBMw1T^#6cHK=yf7HYhsCAc59>_gxU#QFor;O{<)g`LGPMQ1E12kkC-nw{7k`Dt6t?|xK<)m|A%8N0;N}0q9zG2rjv3d~q{?k(Wb@K@k zy%)~yCdM~^9{;n)Kibl4BCi(fVP(o?lOe&QHG+uw5&CKG6T5wjgf9_x&9_RY%=j-H|7( zb{5c1O-&7P-YHclGsQfK%N0_3%~DGs4nAv1n0y`X4iJVUngU*~$*PhWxt%Qm>gl1L zo5V5*reb7)sSU8HUfZ0eC9u#m(2jEa`D8%F0&ajubIye+CynxgC&!KJad$;1?@?yo zo^;4hE46cbm;hQUm8VfTT86TQSrbfh^CKbtKRR&3uHW(WnIp7YH*(Gwp87rPj~@44 z`!b#LCaDz(I=3{rh0cYIb|m~|I&_Kbtx4obhS{mFixP11XXq6@`M;!`d;IE%py<}8 zuA^{N$%DSP8LWfT01;*QdHDzod{JH({d)^>fC!L^)|+n3TH3*{ZsRu+0D*x-T!}R7xLAC zmkZK|K2)9k*bmFxBDMdWv+EyYqya}}^R*_y0dAtOt^nkAd;LHnZ0aVB9<^s!H zhmtAQXG4;=$kti7Stk(e{Zgqkn}o?NAC|dAJOAqrzB0Y3!2LQV!VEsKN&VgCVDcMg zkF4kau>;1pKsHbRJz}ySHoVysK#%&bwuj1Av%9cE@lS@6Ajod?GMaaN@u~pyr#rSn zKA+#ZO{W&&I}dAAv8{QXVfG$$c!ab>3j;^HALGj?gNviVpmW@|w-gIyu(V2^&){q= ze$d1FmQHztK(A=)DRRUZ4DHncwAzz4@co4^f~??gck|x(c#hepKh^D4V{5isP4HbS ztH7{i)n~_B^`5;JPT|=D;&2*_FL`MOjIT51c@}Z=s^>EVS|xLS+gRZ@11Y|6^PQ0p zMEv+n(}mE+rA;!aDF)-XgzqTrS-5&cDA!i;C>5JSX0VHb+?Du_o zh|Io8U_N{kf4_&ovxi&S+nF8XJULoUF6bIqDXYd7YvtyvpVNK$c0F7IRmWVE>R5el zpXyj+?yBlolTd7EG?ax=DW`v|(Q-Ikwm0z{NcSO3mX zq~M#Ro5OZ*&3S*$Q9gz|dO&fkA$L-B43oQ0ZLIkyV--8)(06whZjKw)W9a7`tjrrn z3Sj+sx4A!(@Ll*-U$GcsI#E9IlLVl6LME*$3C`3tV$G0imAsIl&|2(Nsqlb(ogT1I+xHn`B4&oRjqo<)0ftdNmv8>28;P-g)S*ZLB6PM?{A5H+4GI7wDWr ziepW=%xYsTxw2lmenpW~F(-+eyfV5FdVUj^=KBhqFh-hfuFC`ChC98Z8e9p~dA$Fp zOS#l+0shA})7S_e{&LUz3?o;mQml!CB`W~expefdjZIKWT--^}kHy8IdN&pOEb2J* z81P?oE$$aGR9crVWN4ohFcbb)`*8<(iCuOLUoSlUp4t8Pn}uPA>Z&hvyQc?`qOQHp zdduUMoE3kk`*8c9##@m54sn}L5pdcp+?nUkj4%O|%AWPj7!}07d`1=cstC9{!Ofzx5l25COsiEx$_pI9n0AshOSj9%Qr}>p!A_uUVaxe>O-z5-w^umF2PW=S4Ls1NT z21gi7J)0L6a<3{S6!;$7w4W-tSzjq#a9lOImv5)PIn5hV0UmjAcj6!p;7>Dj8?ocM zr2v$!dIW!SIDQSljaB8V&SMYczNrY5odq?+@a~kXkQWRBf#5%s`rgj``@g;nnM614 z7k^5^Km}D{kEu%KpNamP?!{Y>!2=#1?>$*^lEg#C4%pwEaI=pv((wS+*J(4e9&CVv z!M*4sNg%5K4ycr_5nHT0n-UU7HU|twqUZ%-%zvH=ZnZ;j)A5~~5w}Y&pe<5!&2(m&)@c)4R`_T&ka}2E! zaqrc?HLSC(>IwS5Th+0)Tsx*O?8Tc5A<1jZvYPFqtwO?2AC9+dj5-drX)F(v^iS7; z6c~Xh!wrL;OaC3rZmjlwHd$o^FQ4epLeI_;>`^^a=j+n5-?b41Gs(X_CQ(vQgWs80 zsKh=!SIfbES#EV<;8krw`D}yuz)b6{$sWt;R&cL=7`m7lM?gnMgC!X26>Az?Drczae`k?>;LCt>0%kqV{@%`ez6FRQrya8^1 zeJn35^r?}A?9aBWn$`|yF6Z-I^xM0^fr z6?9-uh#-0&|Ao9oA9G*9QB~IdQsRo{8RZq%;!O5^@p+3Ln0=?~m>gG5!pFrU|@$0`MCP+6sE;}FN~ z?XqZod(~kiDdKkC(*Uuqv+brnE7FVN_P?_i8(r55emtnxD?bL>D;wQ@?Jjs8F^Tdx zHQ!)=RoOzFNo$($h{5FL2d{9J)!)_lM*^N)`(ziGvh{E$lY^w@PPU=2i;eTs4<~SP zK6P#@C;J$&;&ah$j!@fuUgr59ut^281-i_5?bRi(H6}Gbb#L{W##EoE2A8z_l-PAk z(qslx(du`6QGwe|>{NB_p{J*03-6CczRWOeUCPT>i=~*yCeUfL9xUB;LOvKaey7lE zz6wbc0D#?wR*5)EW}jtz;ZV5G@NDgHunK=Bhh+I2+Hc8A+fms9MF^CduFLOr>F#tN zvz>Oo6EaEoyx;r%14hdjZ}&VCL(r`QE{S!q)s|iyj4521>z>XJm5x31kpOxZ+{ZE) zO3G%E7Mo>Uu}r`SHI9jbGA{~^?-mG{ve!~KQLm}zN<|>9B@s9=V0@^f%rOLo)ij+H zf*D?3SH?Xr(4X?}yjoqke`C8aJ=rAL(F_3TO^|0L9XMHOb4-4Q{wb1l{tJb0Z9hyo zW+bHo=hW}JZJ%OEX^hJcmT9j$j_x=IP#Y}0-C;~r<3>&OdGJJ3n0QQRXLRUVG{zi_ zwky`}oB8Rte~=gl`tnBN1Y;Yqju;tGH4lY*&0g2LiunXA>9XgKq!+^KR4hPx>GwOU z6oB{~K!%pa1V?I%gVRkT4)@zTDvx|LXmPOCz-gP0#%HPk#K3)8Ct&A@~u(CL0~zqF>hW}j=ho;+yx;WaG2AlKpOI8|m`Q)82!Estq!8<=q! zc6u3{iNnN4eCVxp6z$FJc8~=3m6m|&Z-{GH@>NTv+kior0T; z?FTkg@iD0r#h`p25xqU#m4>j{u|Q0GF3{9;@Ys2L(cEFg#Kj%g_hY2ydrG~BkEh^> zxe`Bp^-_$ToSYyov8zPrM04ck>yF9ra3P9Ybd^doPt6y^i)DHIJ(H*uVvb0fV_peJ z1uuuLI;;o@UeS4Ak(!S@F%>&)9TJz-=dGXU9VSbS{6P8O^v}4Bos#JPpUB57ujWDp z4zwej29Ra2&-RpfZv)UcCCFbk6TIvOMgvZQ@jMHYDf^sN_mesrGE2YN+T1a_B>DCzRQ8uEXg9DKB7VMSVJ}|tV*=dwO&UtMtBSOg z8Vl_yy+4(NpSxbimgFU=J~4C*n&zNNF!Y02I$h8D%n>D&+Q2hF@OaL%-|?-_5YN0u zNvV;;;?SZuXn4v7_2{A5AzRT-Grt?oZ4Zw1(=o)bK>eOsljVyIS!p%jOQu#onc#>v zib`PeVq_UyoyV|W`Vahr3y+4(?Cn!4uQjTH{5NOxf;XyG9u@Z{CM_DqwW12IJx@=7 zeId7$Y;5&Ea>#Wg0p7dIA6VPt!ny$rWxucX%0Ap?vNC$t`h@uMcbp%~(*4;VU-wI0 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'~!G~hOKEi)GwPSJP4=%H{ zl^uMf>ZpyOzD!oK?l6KZ6kiFxUkn85)1;v5LAD-Lbm3SL6Ayt8wmY1*GGSTmFUZ1x z%yzPb0|@-{X~4|}gtMwXn>`f}z;Ei08iW$=nRz@+8UfaAP_~yx>BO_&c+Z~7E9Rz}|F?R!PZGIF$^65*IYWSmp zMJE6w2wP+(SoIq6FR2ci!sJc>%OSGi_^8$Z)aZeyvuS(voH!4w%+yH~yIffOqAa=) ziO2d9_LBFxSwQvlPV1K)4+;YEzMZY@LsWo~dNKkqQuQ4M%)sg><9csS7d}D+Oxkv^ z@wE$l6z|4^q^%H`NQ(;}j5D3Qb%FSl?#ixn$e#_e?reV1K(~j{OooAt+zj1e{E$o2 z72_Ke^5I(XAV}Z@7m(4>7`R+a%+u~5WfxmwfrSXGNH2`Jl+6#@`NrEd4|X1MDgI9^ zoh2N?48w>v0F!$-^W7nH-4NxMzM9guT+QsVadJ{lHz5O+!%fZ25vK7B?ZJ9weB4r1 zbv*~E;Q0j8VN-OR&?I$m1vP+^b&DKCVH@fei`<-PX&_LEd3v<`(x0Xu?Oh?dE~Rc< zaPHzo@r1g&s|t0X&(kGk?8Ta=jVveRzm2!&>5O#BZ2)1tHG5MDxeH{2(W^-Yr9w^gpA zVGK`xO>Dd#-rBsW3dvf&k-csgg?&|bR4!6nF1pizT*7D)A_Z}vp;0UbqtJ()U8qQCmBnVfUy!07BleTYLhN_P6G8yqD{?aqvTPT1=<;|ykg zy0g8)CsR@$8kEblSQ=Ck3_eaZlw5?0WEKGNV1GEPntvTCvqUW2!>P+cgPc)Or(?@6 zFD6ZQs*<4vXi)JgDORTOC<-pw)c)EfklRfe;-RUcLMm9$3Ovtzbhz;d$-u5FTr?)} z6zg;OsioBEr$%xHftG43OJ%0UMw-I~ul5A}9(V71NK3h-@a8|=4&7&8X63W$2LV?{ z&UUv2@0*imtb;vIg8dGK&JK&ZF7?f5Ujm@5_$RFncH{4kPlLIm+24A1B-Pmzq@7)T*F-@gnllfs44% zMWdrQm}KHgd#zi`Y{E=i?ksP`n*$-A#sQ1HeDwVdSK4vKo7&n^4tz$?z7&vg`(@KB z+L9yZ8ZqcQ5Ji4rS==0(obz3daVKf$Oy^Ru`j;=*w_1iLDkphE*M&vJT)8WX{b7jlPf`gF-Mn`lFoJ?G~7_XyQPE!)`Skb@uLE>182{-plVGFu+tK{@Po9e zn%kss%S6@jH?El3&+lERTn}*~p@XWHiAzX_*)MOL`j_6y$>V|9E1)~`IgJ!9$m8KR z;e^)~b@}wU98LmwM3mi0A4S{56WHLvFk8e*qn=&;Z$n-EZg@r!X)~DCEf_>^Ob@cW zEvzccHoVP6emK0>!$mR-^>G0u4a4?%ZW{pD!8+_T9qOVl=3SkY@37f`GpP>)6^9b3oR^4c?$3iWwx ztos{+{vW$QJR$U51z3ob=PKt!WOC;D3C2Pf*jmH^FeU)!G+*~T@@v?BY|3VrGw&}J z;0X}`s*Z+SxVIso0k#V`{|dY8p&7%=6iqhqj{9-#x2wj7J3ousRXB2V2of#+9`f0dE^+NHS+dcE@t;$P?6m=k^f zq04LC`UYiq8q&$ZRE**GDq|Es{302hB|$f;#C-53d;G9SoVxx#`y%3};=if7^1?2%@uHsAgqA(b68bZO(CiT+qMT?xq?YCfT_tgGvt z53c{ma5ZYut5$CQ%2&__Kvv}L<)8QWYxphu2T--oF`L?to9J zmN@(Ld+nZOLdT>wHDx`i`Th~mR$q}vm_00V++m-$Z~nTmV@JjMEcS1nA!e$}_8(OE zKQgMXm0uVG>?3+ke(RR)yQ20m*#Afg|9eIT{GPWMuEEVO0ZG}LzMCQqQK|1Yvaug(c#diQ z?Dw930_3;w9F737H~Bfsym`jh&-eZVZQGVDG#UrA0l#I-mYsA>*tVrqxdN)9=hq3m P*>df&+NF#??>_k-Z}npZ literal 0 HcmV?d00001 diff --git a/src/language/locales/af/catalog.po b/src/language/locales/af/catalog.po index bd5c259de..7c89c093e 100644 --- a/src/language/locales/af/catalog.po +++ b/src/language/locales/af/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/ar/catalog.po b/src/language/locales/ar/catalog.po index c3f700b1e..8d71bb0f3 100644 --- a/src/language/locales/ar/catalog.po +++ b/src/language/locales/ar/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/ca/catalog.po b/src/language/locales/ca/catalog.po index d48263003..11420855c 100644 --- a/src/language/locales/ca/catalog.po +++ b/src/language/locales/ca/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/cs/catalog.po b/src/language/locales/cs/catalog.po index adac9083e..b531192b6 100644 --- a/src/language/locales/cs/catalog.po +++ b/src/language/locales/cs/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/da/catalog.po b/src/language/locales/da/catalog.po index ddc768ac4..aff3a2a35 100644 --- a/src/language/locales/da/catalog.po +++ b/src/language/locales/da/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/de/catalog.po b/src/language/locales/de/catalog.po index 9e827a39f..814c88ae2 100644 --- a/src/language/locales/de/catalog.po +++ b/src/language/locales/de/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/el/catalog.po b/src/language/locales/el/catalog.po index 8835130d0..e44ab73dd 100644 --- a/src/language/locales/el/catalog.po +++ b/src/language/locales/el/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/en/catalog.po b/src/language/locales/en/catalog.po index b18fec504..8e84fb6de 100644 --- a/src/language/locales/en/catalog.po +++ b/src/language/locales/en/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/es-419/catalog.po b/src/language/locales/es-419/catalog.po index 83d9586b6..4785d6fc1 100644 --- a/src/language/locales/es-419/catalog.po +++ b/src/language/locales/es-419/catalog.po @@ -312,7 +312,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/es/catalog.po b/src/language/locales/es/catalog.po index 5982bb613..3a91964a8 100644 --- a/src/language/locales/es/catalog.po +++ b/src/language/locales/es/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/fi/catalog.po b/src/language/locales/fi/catalog.po index 13ad5622c..55c9ba6f6 100644 --- a/src/language/locales/fi/catalog.po +++ b/src/language/locales/fi/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/fr/catalog.po b/src/language/locales/fr/catalog.po index e902b5c10..86fb5920d 100644 --- a/src/language/locales/fr/catalog.po +++ b/src/language/locales/fr/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/he/catalog.po b/src/language/locales/he/catalog.po index 8040e047d..b9d9a4be4 100644 --- a/src/language/locales/he/catalog.po +++ b/src/language/locales/he/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/hi/catalog.po b/src/language/locales/hi/catalog.po index a5d6d2032..dbde90518 100644 --- a/src/language/locales/hi/catalog.po +++ b/src/language/locales/hi/catalog.po @@ -1717,7 +1717,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/hu/catalog.po b/src/language/locales/hu/catalog.po index 7909de91b..c90d63e5d 100644 --- a/src/language/locales/hu/catalog.po +++ b/src/language/locales/hu/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/it/catalog.po b/src/language/locales/it/catalog.po index 26598acac..9b68a8d59 100644 --- a/src/language/locales/it/catalog.po +++ b/src/language/locales/it/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/ja/catalog.po b/src/language/locales/ja/catalog.po index 514bd80f1..04d406974 100644 --- a/src/language/locales/ja/catalog.po +++ b/src/language/locales/ja/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/ko/catalog.po b/src/language/locales/ko/catalog.po index 919f1caf2..5e3159195 100644 --- a/src/language/locales/ko/catalog.po +++ b/src/language/locales/ko/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/nl/catalog.po b/src/language/locales/nl/catalog.po index dd4abae0d..a9bd50ee1 100644 --- a/src/language/locales/nl/catalog.po +++ b/src/language/locales/nl/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/no/catalog.po b/src/language/locales/no/catalog.po index 6cf3d14c3..d94a0cd01 100644 --- a/src/language/locales/no/catalog.po +++ b/src/language/locales/no/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/pl/catalog.po b/src/language/locales/pl/catalog.po index 695c72de5..753d7a56a 100644 --- a/src/language/locales/pl/catalog.po +++ b/src/language/locales/pl/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/pt-BR/catalog.po b/src/language/locales/pt-BR/catalog.po index a61bb6e6c..b3a1e217f 100644 --- a/src/language/locales/pt-BR/catalog.po +++ b/src/language/locales/pt-BR/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/pt/catalog.po b/src/language/locales/pt/catalog.po index e33fdf7ce..671ab0c4e 100644 --- a/src/language/locales/pt/catalog.po +++ b/src/language/locales/pt/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/ro/catalog.po b/src/language/locales/ro/catalog.po index 1642a036c..664b602b0 100644 --- a/src/language/locales/ro/catalog.po +++ b/src/language/locales/ro/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/ru/catalog.po b/src/language/locales/ru/catalog.po index 0883e0385..7e4ca98ae 100644 --- a/src/language/locales/ru/catalog.po +++ b/src/language/locales/ru/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/sr/catalog.po b/src/language/locales/sr/catalog.po index 722c44477..fb36be9ae 100644 --- a/src/language/locales/sr/catalog.po +++ b/src/language/locales/sr/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/sv/catalog.po b/src/language/locales/sv/catalog.po index e6b70a56c..5a02185a4 100644 --- a/src/language/locales/sv/catalog.po +++ b/src/language/locales/sv/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/tr/catalog.po b/src/language/locales/tr/catalog.po index b39a6b3fe..2e6075385 100644 --- a/src/language/locales/tr/catalog.po +++ b/src/language/locales/tr/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/uk/catalog.po b/src/language/locales/uk/catalog.po index 9752d8d58..e18b8803f 100644 --- a/src/language/locales/uk/catalog.po +++ b/src/language/locales/uk/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/vi/catalog.po b/src/language/locales/vi/catalog.po index a23cbe451..ce0f3b443 100644 --- a/src/language/locales/vi/catalog.po +++ b/src/language/locales/vi/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/zh-CN/catalog.po b/src/language/locales/zh-CN/catalog.po index 639c93561..ceda8cac4 100644 --- a/src/language/locales/zh-CN/catalog.po +++ b/src/language/locales/zh-CN/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/zh-TW/catalog.po b/src/language/locales/zh-TW/catalog.po index 3c08708ca..171520bd1 100644 --- a/src/language/locales/zh-TW/catalog.po +++ b/src/language/locales/zh-TW/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/zh/catalog.po b/src/language/locales/zh/catalog.po index b21ce9378..2c0d7b8b7 100644 --- a/src/language/locales/zh/catalog.po +++ b/src/language/locales/zh/catalog.po @@ -2433,7 +2433,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:13 +#: src/pages/gd/Savings/index.tsx:15 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/pages/App.tsx b/src/pages/App.tsx index d6de23914..5b0323463 100644 --- a/src/pages/App.tsx +++ b/src/pages/App.tsx @@ -150,7 +150,7 @@ function App(): JSX.Element { } }, [dispatch, search]) - // dont show chat and remove padding for network info if simple app + // don't show chat and remove padding for network info if simple app // eslint-disable-next-line @typescript-eslint/no-unused-vars const isSimpleApp = useIsSimpleApp() diff --git a/src/pages/gd/Savings/index.tsx b/src/pages/gd/Savings/index.tsx index 23c6c70a9..d6fb0fd2b 100644 --- a/src/pages/gd/Savings/index.tsx +++ b/src/pages/gd/Savings/index.tsx @@ -3,6 +3,8 @@ import { VStack, Text, useBreakpointValue, Spinner, Button } from 'native-base' import { i18n } from '@lingui/core' import { t } from '@lingui/macro' import { useEthers } from '@usedapp/core' +import { useAppKitProvider, useAppKit } from '@reown/appkit/react' +import type { Provider } from '@reown/appkit/react' import { PageLayout } from 'components/Layout/PageLayout' @@ -24,6 +26,8 @@ const SavingsWidgetContainer: React.FC = () => { const [isLoading, setIsLoading] = useState(true) const [hasError, setHasError] = useState(false) const { account } = useEthers() + const { walletProvider } = useAppKitProvider('eip155') + const { open: openAppKit } = useAppKit() const scriptLoadedRef = useRef(false) const containerStyles = useBreakpointValue({ @@ -43,6 +47,14 @@ const SavingsWidgetContainer: React.FC = () => { if (account) { widget.setAttribute('account', account) } + // Pass the wallet provider to the widget as a property + if (walletProvider) { + (widget as any).web3Provider = walletProvider + } + // Pass the connect wallet callback for the widget to use + (widget as any).connectWallet = async () => { + await openAppKit({ view: 'Connect' }) + } widget.style.width = '100%' widget.style.minHeight = '500px' @@ -120,7 +132,15 @@ const SavingsWidgetContainer: React.FC = () => { setHasError(true) setIsLoading(false) } - }, [account]) + }, []) + + // Reinitialize widget when wallet provider changes + // eslint-disable-next-line react-hooks-addons/no-unused-deps + useEffect(() => { + if (scriptLoadedRef.current && containerRef.current) { + initializeWidget() + } + }, [walletProvider, account, initializeWidget]) return ( From 52390d5755b78e742237093ca5ecd4bfb64852db Mon Sep 17 00:00:00 2001 From: Oluwatomilola Date: Wed, 11 Mar 2026 16:14:32 +0100 Subject: [PATCH 6/6] feat: savings widget buttons-fix --- src/hooks/useExternalScript.ts | 46 +++++++++ src/language/locales/af/catalog.po | 2 +- src/language/locales/ar/catalog.po | 2 +- src/language/locales/ca/catalog.po | 2 +- src/language/locales/cs/catalog.po | 2 +- src/language/locales/da/catalog.po | 2 +- src/language/locales/de/catalog.po | 2 +- src/language/locales/el/catalog.po | 2 +- src/language/locales/en/catalog.po | 2 +- src/language/locales/es-419/catalog.po | 2 +- src/language/locales/es/catalog.po | 2 +- src/language/locales/fi/catalog.po | 2 +- src/language/locales/fr/catalog.po | 2 +- src/language/locales/he/catalog.po | 2 +- src/language/locales/hi/catalog.po | 2 +- src/language/locales/hu/catalog.po | 2 +- src/language/locales/it/catalog.po | 2 +- src/language/locales/ja/catalog.po | 2 +- src/language/locales/ko/catalog.po | 2 +- src/language/locales/nl/catalog.po | 2 +- src/language/locales/no/catalog.po | 2 +- src/language/locales/pl/catalog.po | 2 +- src/language/locales/pt-BR/catalog.po | 2 +- src/language/locales/pt/catalog.po | 2 +- src/language/locales/ro/catalog.po | 2 +- src/language/locales/ru/catalog.po | 2 +- src/language/locales/sr/catalog.po | 2 +- src/language/locales/sv/catalog.po | 2 +- src/language/locales/tr/catalog.po | 2 +- src/language/locales/uk/catalog.po | 2 +- src/language/locales/vi/catalog.po | 2 +- src/language/locales/zh-CN/catalog.po | 2 +- src/language/locales/zh-TW/catalog.po | 2 +- src/language/locales/zh/catalog.po | 2 +- src/pages/gd/Savings/index.tsx | 125 +++++-------------------- 35 files changed, 105 insertions(+), 132 deletions(-) create mode 100644 src/hooks/useExternalScript.ts diff --git a/src/hooks/useExternalScript.ts b/src/hooks/useExternalScript.ts new file mode 100644 index 000000000..4acd23782 --- /dev/null +++ b/src/hooks/useExternalScript.ts @@ -0,0 +1,46 @@ +import { useEffect, useState } from 'react' + +type ScriptStatus = 'idle' | 'loading' | 'ready' | 'error' + +/** + * Hook to load an external script tag once and track its loading status + * @param src - The source URL of the script to load + * @returns The current loading status: 'idle' | 'loading' | 'ready' | 'error' + */ +export const useExternalScript = (src: string): ScriptStatus => { + const [status, setStatus] = useState('idle') + + useEffect(() => { + if (!src) return + + // Check if script is already loaded + const existingScript = document.querySelector(`script[src="${src}"]`) + if (existingScript) { + setStatus('ready') + return + } + + setStatus('loading') + + const script = document.createElement('script') + script.src = src + script.type = 'text/javascript' + script.async = true + + const handleLoad = () => setStatus('ready') + const handleError = () => setStatus('error') + + script.addEventListener('load', handleLoad) + script.addEventListener('error', handleError) + + document.head.appendChild(script) + + return () => { + script.removeEventListener('load', handleLoad) + script.removeEventListener('error', handleError) + // Don't remove script - it may be needed for the web component + } + }, [src]) + + return status +} diff --git a/src/language/locales/af/catalog.po b/src/language/locales/af/catalog.po index 7c89c093e..fb8a0c437 100644 --- a/src/language/locales/af/catalog.po +++ b/src/language/locales/af/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/ar/catalog.po b/src/language/locales/ar/catalog.po index 8d71bb0f3..8e111d8ea 100644 --- a/src/language/locales/ar/catalog.po +++ b/src/language/locales/ar/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/ca/catalog.po b/src/language/locales/ca/catalog.po index 11420855c..b5d015818 100644 --- a/src/language/locales/ca/catalog.po +++ b/src/language/locales/ca/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/cs/catalog.po b/src/language/locales/cs/catalog.po index b531192b6..f21192b7f 100644 --- a/src/language/locales/cs/catalog.po +++ b/src/language/locales/cs/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/da/catalog.po b/src/language/locales/da/catalog.po index aff3a2a35..ca2b47d7e 100644 --- a/src/language/locales/da/catalog.po +++ b/src/language/locales/da/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/de/catalog.po b/src/language/locales/de/catalog.po index 814c88ae2..1d3c99d5a 100644 --- a/src/language/locales/de/catalog.po +++ b/src/language/locales/de/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/el/catalog.po b/src/language/locales/el/catalog.po index e44ab73dd..b85f9b804 100644 --- a/src/language/locales/el/catalog.po +++ b/src/language/locales/el/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/en/catalog.po b/src/language/locales/en/catalog.po index 8e84fb6de..d39e03bea 100644 --- a/src/language/locales/en/catalog.po +++ b/src/language/locales/en/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/es-419/catalog.po b/src/language/locales/es-419/catalog.po index 4785d6fc1..4bb6cc99b 100644 --- a/src/language/locales/es-419/catalog.po +++ b/src/language/locales/es-419/catalog.po @@ -312,7 +312,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/es/catalog.po b/src/language/locales/es/catalog.po index 3a91964a8..7fb2f1e62 100644 --- a/src/language/locales/es/catalog.po +++ b/src/language/locales/es/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/fi/catalog.po b/src/language/locales/fi/catalog.po index 55c9ba6f6..bed48932a 100644 --- a/src/language/locales/fi/catalog.po +++ b/src/language/locales/fi/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/fr/catalog.po b/src/language/locales/fr/catalog.po index 86fb5920d..57ca99f1a 100644 --- a/src/language/locales/fr/catalog.po +++ b/src/language/locales/fr/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/he/catalog.po b/src/language/locales/he/catalog.po index b9d9a4be4..760e934a1 100644 --- a/src/language/locales/he/catalog.po +++ b/src/language/locales/he/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/hi/catalog.po b/src/language/locales/hi/catalog.po index dbde90518..a695cd8e0 100644 --- a/src/language/locales/hi/catalog.po +++ b/src/language/locales/hi/catalog.po @@ -1717,7 +1717,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/hu/catalog.po b/src/language/locales/hu/catalog.po index c90d63e5d..f9122b347 100644 --- a/src/language/locales/hu/catalog.po +++ b/src/language/locales/hu/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/it/catalog.po b/src/language/locales/it/catalog.po index 9b68a8d59..aba5df434 100644 --- a/src/language/locales/it/catalog.po +++ b/src/language/locales/it/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/ja/catalog.po b/src/language/locales/ja/catalog.po index 04d406974..0350d62b7 100644 --- a/src/language/locales/ja/catalog.po +++ b/src/language/locales/ja/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/ko/catalog.po b/src/language/locales/ko/catalog.po index 5e3159195..11ddc6f15 100644 --- a/src/language/locales/ko/catalog.po +++ b/src/language/locales/ko/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/nl/catalog.po b/src/language/locales/nl/catalog.po index a9bd50ee1..dc5435900 100644 --- a/src/language/locales/nl/catalog.po +++ b/src/language/locales/nl/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/no/catalog.po b/src/language/locales/no/catalog.po index d94a0cd01..83fc074f1 100644 --- a/src/language/locales/no/catalog.po +++ b/src/language/locales/no/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/pl/catalog.po b/src/language/locales/pl/catalog.po index 753d7a56a..3912eef63 100644 --- a/src/language/locales/pl/catalog.po +++ b/src/language/locales/pl/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/pt-BR/catalog.po b/src/language/locales/pt-BR/catalog.po index b3a1e217f..31a2c815a 100644 --- a/src/language/locales/pt-BR/catalog.po +++ b/src/language/locales/pt-BR/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/pt/catalog.po b/src/language/locales/pt/catalog.po index 671ab0c4e..682d6e5d2 100644 --- a/src/language/locales/pt/catalog.po +++ b/src/language/locales/pt/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/ro/catalog.po b/src/language/locales/ro/catalog.po index 664b602b0..6ac9a373a 100644 --- a/src/language/locales/ro/catalog.po +++ b/src/language/locales/ro/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/ru/catalog.po b/src/language/locales/ru/catalog.po index 7e4ca98ae..55551ff58 100644 --- a/src/language/locales/ru/catalog.po +++ b/src/language/locales/ru/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/sr/catalog.po b/src/language/locales/sr/catalog.po index fb36be9ae..23889ddd4 100644 --- a/src/language/locales/sr/catalog.po +++ b/src/language/locales/sr/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/sv/catalog.po b/src/language/locales/sv/catalog.po index 5a02185a4..ca7663935 100644 --- a/src/language/locales/sv/catalog.po +++ b/src/language/locales/sv/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/tr/catalog.po b/src/language/locales/tr/catalog.po index 2e6075385..55c25579a 100644 --- a/src/language/locales/tr/catalog.po +++ b/src/language/locales/tr/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/uk/catalog.po b/src/language/locales/uk/catalog.po index e18b8803f..4d7004a02 100644 --- a/src/language/locales/uk/catalog.po +++ b/src/language/locales/uk/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/vi/catalog.po b/src/language/locales/vi/catalog.po index ce0f3b443..584287fe3 100644 --- a/src/language/locales/vi/catalog.po +++ b/src/language/locales/vi/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/zh-CN/catalog.po b/src/language/locales/zh-CN/catalog.po index ceda8cac4..61a6224c3 100644 --- a/src/language/locales/zh-CN/catalog.po +++ b/src/language/locales/zh-CN/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/zh-TW/catalog.po b/src/language/locales/zh-TW/catalog.po index 171520bd1..12d536534 100644 --- a/src/language/locales/zh-TW/catalog.po +++ b/src/language/locales/zh-TW/catalog.po @@ -2962,7 +2962,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/language/locales/zh/catalog.po b/src/language/locales/zh/catalog.po index 2c0d7b8b7..08401eaa0 100644 --- a/src/language/locales/zh/catalog.po +++ b/src/language/locales/zh/catalog.po @@ -2433,7 +2433,7 @@ msgstr "" #~ "Please be patient, loading information may take some time." #~ msgstr "" -#: src/pages/gd/Savings/index.tsx:15 +#: src/pages/gd/Savings/index.tsx:16 msgid "" "Earn rewards by saving your GoodDollars with Ubeswap savings products! \n" "Savings provides a simple way to generate yield on your digital assets.\n" diff --git a/src/pages/gd/Savings/index.tsx b/src/pages/gd/Savings/index.tsx index d6fb0fd2b..86d0c3903 100644 --- a/src/pages/gd/Savings/index.tsx +++ b/src/pages/gd/Savings/index.tsx @@ -1,5 +1,5 @@ -import React, { useEffect, useRef, useState } from 'react' -import { VStack, Text, useBreakpointValue, Spinner, Button } from 'native-base' +import React, { useEffect, useRef } from 'react' +import { VStack, Text, useBreakpointValue, Spinner, Button, Box } from 'native-base' import { i18n } from '@lingui/core' import { t } from '@lingui/macro' import { useEthers } from '@usedapp/core' @@ -7,6 +7,7 @@ import { useAppKitProvider, useAppKit } from '@reown/appkit/react' import type { Provider } from '@reown/appkit/react' import { PageLayout } from 'components/Layout/PageLayout' +import { useExternalScript } from 'hooks/useExternalScript' const SavingsExplanation = () => ( @@ -23,12 +24,12 @@ Please be patient, loading information may take some time.` const SavingsWidgetContainer: React.FC = () => { const containerRef = useRef(null) - const [isLoading, setIsLoading] = useState(true) - const [hasError, setHasError] = useState(false) const { account } = useEthers() const { walletProvider } = useAppKitProvider('eip155') const { open: openAppKit } = useAppKit() - const scriptLoadedRef = useRef(false) + + // Load the widget script once and track its status + const scriptStatus = useExternalScript('/index.global.js') const containerStyles = useBreakpointValue({ base: { @@ -39,112 +40,39 @@ const SavingsWidgetContainer: React.FC = () => { }, }) - const initializeWidget = () => { + // Initialize the widget when script is ready and wallet provider changes + useEffect(() => { + if (scriptStatus !== 'ready' || !containerRef.current) return + try { - if (!containerRef.current) return - const widget = document.createElement('gooddollar-savings-widget') + + // Pass account as an attribute if (account) { widget.setAttribute('account', account) } - // Pass the wallet provider to the widget as a property + + // Pass the wallet provider to the widget if (walletProvider) { (widget as any).web3Provider = walletProvider } - // Pass the connect wallet callback for the widget to use + + // Pass the connect wallet callback (widget as any).connectWallet = async () => { await openAppKit({ view: 'Connect' }) } - widget.style.width = '100%' - widget.style.minHeight = '500px' + // Clear container and mount widget containerRef.current.innerHTML = '' containerRef.current.appendChild(widget) - setIsLoading(false) } catch (error) { console.error('Error initializing widget:', error) - setHasError(true) - setIsLoading(false) - } - } - - const handleScriptLoad = () => { - scriptLoadedRef.current = true - - // Try immediately first - if (customElements.get('gooddollar-savings-widget')) { - initializeWidget() - return - } - - // Wait for the element to be defined - customElements.whenDefined('gooddollar-savings-widget').then(() => { - initializeWidget() - }).catch((error) => { - console.error('Custom element error:', error) - setHasError(true) - setIsLoading(false) - }) - - // Timeout fallback after 3 seconds - setTimeout(() => { - if (customElements.get('gooddollar-savings-widget')) { - initializeWidget() - } - }, 3000) - } - - const handleScriptError = (event: string | Event) => { - console.error('Failed to load savings widget script', event) - setHasError(true) - setIsLoading(false) - } - - useEffect(() => { - if (scriptLoadedRef.current) return - - try { - setIsLoading(true) - setHasError(false) - - // Load the widget script from public folder - const script = document.createElement('script') - script.src = '/index.global.js' - script.type = 'text/javascript' - script.async = true - script.onload = handleScriptLoad - script.onerror = handleScriptError - - document.head.appendChild(script) - - // Overall timeout fallback - const timeout = setTimeout(() => { - if (!scriptLoadedRef.current) { - console.error('Widget script did not load within timeout') - setHasError(true) - setIsLoading(false) - } - }, 5000) - - return () => clearTimeout(timeout) - } catch (error) { - console.error('Error loading savings widget:', error) - setHasError(true) - setIsLoading(false) - } - }, []) - - // Reinitialize widget when wallet provider changes - // eslint-disable-next-line react-hooks-addons/no-unused-deps - useEffect(() => { - if (scriptLoadedRef.current && containerRef.current) { - initializeWidget() } - }, [walletProvider, account, initializeWidget]) + }, [scriptStatus, account, walletProvider, openAppKit]) return ( - {isLoading && ( + {scriptStatus === 'loading' && ( @@ -152,7 +80,7 @@ const SavingsWidgetContainer: React.FC = () => { )} - {hasError && ( + {scriptStatus === 'error' && ( Unable to Load Savings Widget @@ -177,15 +105,14 @@ const SavingsWidgetContainer: React.FC = () => { )} -